From df0fc441e286706aaeba441bd63343c73f378359 Mon Sep 17 00:00:00 2001 From: andre-dietrich Date: Fri, 1 Nov 2024 13:02:55 +0000 Subject: [PATCH] deploy: 24b5192698849c115442c6b17e84b2b6dbb9060b --- docs/{index.27c14863.js => index.54261725.js} | 4 ++-- docs/{index.27c14863.js.map => index.54261725.js.map} | 2 +- docs/index.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename docs/{index.27c14863.js => index.54261725.js} (97%) rename docs/{index.27c14863.js.map => index.54261725.js.map} (69%) diff --git a/docs/index.27c14863.js b/docs/index.54261725.js similarity index 97% rename from docs/index.27c14863.js rename to docs/index.54261725.js index dfbbd00..af92976 100644 --- a/docs/index.27c14863.js +++ b/docs/index.54261725.js @@ -83,7 +83,7 @@ PERFORMANCE OF THIS SOFTWARE. * * @author Feross Aboukhadijeh * @license MIT - */var n=e("@swc/helpers/_/_assert_this_initialized"),o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_type_of"),l=e("@swc/helpers/_/_create_super"),c=e("9c62938f1dccc73c"),u=e("aceacb6a4531a9d2"),d="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function p(e){if(e>0x7fffffff)throw RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,f.prototype),t}function f(e,t,r){if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return h(e)}return m(e,t,r)}function m(e,t,r){if("string"==typeof e)return function(e,t){if(("string"!=typeof t||""===t)&&(t="utf8"),!f.isEncoding(t))throw TypeError("Unknown encoding: "+t);var r=0|S(e,t),n=p(r),o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){var t=new Uint8Array(e);return b(t.buffer,t.byteOffset,t.byteLength)}return g(e)}(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===e?"undefined":(0,s._)(e)));if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return b(e,t,r);if("number"==typeof e)throw TypeError('The "value" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return f.from(n,t,r);var o=function(e){if(f.isBuffer(e)){var t,r=0|y(e.length),n=p(r);return 0===n.length||e.copy(n,0,0,r),n}return void 0!==e.length?"number"!=typeof e.length||(t=e.length)!=t?p(0):g(e):"Buffer"===e.type&&Array.isArray(e.data)?g(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return f.from(e[Symbol.toPrimitive]("string"),t,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===e?"undefined":(0,s._)(e)))}function _(e){if("number"!=typeof e)throw TypeError('"size" argument must be of type number');if(e<0)throw RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return _(e),p(e<0?0:0|y(e))}function g(e){for(var t=e.length<0?0:0|y(e.length),r=p(t),n=0;n=0x7fffffff)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function S(e,t){if(f.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+(void 0===e?"undefined":(0,s._)(e)));var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(o)return n?-1:U(e).length;t=(""+t).toLowerCase(),o=!0}}function E(e,t,r){var n,o,a=!1;if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",a=t;a0x7fffffff?r=0x7fffffff:r<-0x80000000&&(r=-0x80000000),(a=r=+r)!=a&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return -1;r=e.length-1}else if(r<0){if(!o)return -1;r=0}if("string"==typeof t&&(t=f.from(t,n)),f.isBuffer(t))return 0===t.length?-1:T(e,t,r,n,o);if("number"==typeof t)return(t&=255,"function"==typeof Uint8Array.prototype.indexOf)?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):T(e,[t],r,n,o);throw TypeError("val must be string, number or Buffer")}function T(e,t,r,n,o){var a,i=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;i=2,s/=2,l/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var u=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var d=!0,p=0;p239?4:a>223?3:a>191?2:1;if(o+s<=r){var l=void 0,c=void 0,u=void 0,d=void 0;switch(s){case 1:a<128&&(i=a);break;case 2:(192&(l=e[o+1]))==128&&(d=(31&a)<<6|63&l)>127&&(i=d);break;case 3:l=e[o+1],c=e[o+2],(192&l)==128&&(192&c)==128&&(d=(15&a)<<12|(63&l)<<6|63&c)>2047&&(d<55296||d>57343)&&(i=d);break;case 4:l=e[o+1],c=e[o+2],u=e[o+3],(192&l)==128&&(192&c)==128&&(192&u)==128&&(d=(15&a)<<18|(63&l)<<12|(63&c)<<6|63&u)>65535&&d<1114112&&(i=d)}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",n=0;nr)throw RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,o,a){if(!f.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw RangeError("Index out of range")}function A(e,t,r,n,o){L(t,n,o,e,r,7);var a=Number(t&BigInt(0xffffffff));e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a;var i=Number(t>>BigInt(32)&BigInt(0xffffffff));return e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,r}function N(e,t,r,n,o){L(t,n,o,e,r,7);var a=Number(t&BigInt(0xffffffff));e[r+7]=a,a>>=8,e[r+6]=a,a>>=8,e[r+5]=a,a>>=8,e[r+4]=a;var i=Number(t>>BigInt(32)&BigInt(0xffffffff));return e[r+3]=i,i>>=8,e[r+2]=i,i>>=8,e[r+1]=i,i>>=8,e[r]=i,r+8}function k(e,t,r,n,o,a){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function O(e,t,r,n,o){return t=+t,r>>>=0,o||k(e,t,r,4,34028234663852886e22,-34028234663852886e22),u.write(e,t,r,n,23,4),r+4}function D(e,t,r,n,o){return t=+t,r>>>=0,o||k(e,t,r,8,17976931348623157e292,-17976931348623157e292),u.write(e,t,r,n,52,8),r+8}r.Buffer=f,r.SlowBuffer=function(e){return+e!=e&&(e=0),f.alloc(+e)},r.INSPECT_MAX_BYTES=50,r.kMaxLength=0x7fffffff,f.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),f.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}}),f.poolSize=8192,f.from=function(e,t,r){return m(e,t,r)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array),f.alloc=function(e,t,r){return(_(e),e<=0)?p(e):void 0!==t?"string"==typeof r?p(e).fill(t,r):p(e).fill(t):p(e)},f.allocUnsafe=function(e){return h(e)},f.allocUnsafeSlow=function(e){return h(e)},f.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==f.prototype},f.compare=function(e,t){if(Y(e,Uint8Array)&&(e=f.from(e,e.offset,e.byteLength)),Y(t,Uint8Array)&&(t=f.from(t,t.offset,t.byteLength)),!f.isBuffer(e)||!f.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,o=0,a=Math.min(r,n);on.length?(f.isBuffer(a)||(a=f.from(a)),a.copy(n,o)):Uint8Array.prototype.set.call(n,a,o);else if(f.isBuffer(a))a.copy(n,o);else throw TypeError('"list" argument must be an Array of Buffers');o+=a.length}return n},f.byteLength=S,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tt&&(e+=" ... "),""},d&&(f.prototype[d]=f.prototype.inspect),f.prototype.compare=function(e,t,r,n,o){if(Y(e,Uint8Array)&&(e=f.from(e,e.offset,e.byteLength)),!f.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+(void 0===e?"undefined":(0,s._)(e)));if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var a=o-n,i=r-t,l=Math.min(a,i),c=this.slice(n,o),u=e.slice(t,r),d=0;d>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o,a,i,s,l,c,u,d,p=this.length-t;if((void 0===r||r>p)&&(r=p),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var f=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var o,a=e.length-r;n?(n=Number(n))>a&&(n=a):n=a;var i=t.length;for(n>i/2&&(n=i/2),o=0;o>8,o.push(r%256),o.push(n);return o}(e,this.length-u),this,u,d);default:if(f)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},f.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e],o=1,a=0;++a>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},f.prototype.readUint8=f.prototype.readUInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),this[e]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]|this[e+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]<<8|this[e+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+0x1000000*this[e+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),0x1000000*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},f.prototype.readBigUInt64LE=z(function(e){V(e>>>=0,"offset");var t=this[e],r=this[e+7];(void 0===t||void 0===r)&&F(e,this.length-8);var n=t+256*this[++e]+65536*this[++e]+0x1000000*this[++e],o=this[++e]+256*this[++e]+65536*this[++e]+0x1000000*r;return BigInt(n)+(BigInt(o)<>>=0,"offset");var t=this[e],r=this[e+7];(void 0===t||void 0===r)&&F(e,this.length-8);var n=0x1000000*t+65536*this[++e]+256*this[++e]+this[++e],o=0x1000000*this[++e]+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e],o=1,a=0;++a=(o*=128)&&(n-=Math.pow(2,8*t)),n},f.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||I(e,t,this.length);for(var n=t,o=1,a=this[e+--n];n>0&&(o*=256);)a+=this[e+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},f.prototype.readInt8=function(e,t){return(e>>>=0,t||I(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},f.prototype.readInt16LE=function(e,t){e>>>=0,t||I(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?0xffff0000|r:r},f.prototype.readInt16BE=function(e,t){e>>>=0,t||I(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?0xffff0000|r:r},f.prototype.readInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},f.prototype.readInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},f.prototype.readBigInt64LE=z(function(e){V(e>>>=0,"offset");var t=this[e],r=this[e+7];return(void 0===t||void 0===r)&&F(e,this.length-8),(BigInt(this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24))<>>=0,"offset");var t=this[e],r=this[e+7];return(void 0===t||void 0===r)&&F(e,this.length-8),(BigInt((t<<24)+65536*this[++e]+256*this[++e]+this[++e])<>>=0,t||I(e,4,this.length),u.read(this,e,!0,23,4)},f.prototype.readFloatBE=function(e,t){return e>>>=0,t||I(e,4,this.length),u.read(this,e,!1,23,4)},f.prototype.readDoubleLE=function(e,t){return e>>>=0,t||I(e,8,this.length),u.read(this,e,!0,52,8)},f.prototype.readDoubleBE=function(e,t){return e>>>=0,t||I(e,8,this.length),u.read(this,e,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;R(this,e,t,r,o,0)}var a=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;R(this,e,t,r,o,0)}var a=r-1,i=1;for(this[t+a]=255&e;--a>=0&&(i*=256);)this[t+a]=e/i&255;return t+r},f.prototype.writeUint8=f.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,255,0),this[t]=255&e,t+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0xffffffff,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0xffffffff,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigUInt64LE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return A(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return N(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);R(this,e,t,r,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r},f.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);R(this,e,t,r,o-1,-o)}var a=r-1,i=1,s=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/i>>0)-s&255;return t+r},f.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},f.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0x7fffffff,-0x80000000),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},f.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0x7fffffff,-0x80000000),e<0&&(e=0xffffffff+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigInt64LE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return A(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return N(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeFloatLE=function(e,t,r){return O(this,e,t,!0,r)},f.prototype.writeFloatBE=function(e,t,r){return O(this,e,t,!1,r)},f.prototype.writeDoubleLE=function(e,t,r){return D(this,e,t,!0,r)},f.prototype.writeDoubleBE=function(e,t,r){return D(this,e,t,!1,r)},f.prototype.copy=function(e,t,r,n){if(!f.isBuffer(e))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t="_".concat(e.slice(r-3,r)).concat(t);return"".concat(e.slice(0,r)).concat(t)}function L(e,t,r,n,o,a){if(e>r||e3?0===t||t===BigInt(0)?">= 0".concat(l," and < 2").concat(l," ** ").concat((a+1)*8).concat(l):">= -(2".concat(l," ** ").concat((a+1)*8-1).concat(l,") and < 2 ** ")+"".concat((a+1)*8-1).concat(l):">= ".concat(t).concat(l," and <= ").concat(r).concat(l),new j.ERR_OUT_OF_RANGE("value",i,e)}V(o,"offset"),(void 0===n[o]||void 0===n[o+a])&&F(o,n.length-(a+1))}function V(e,t){if("number"!=typeof e)throw new j.ERR_INVALID_ARG_TYPE(t,"number",e)}function F(e,t,r){if(Math.floor(e)!==e)throw V(e,r),new j.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new j.ERR_BUFFER_OUT_OF_BOUNDS;throw new j.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(t),e)}P("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?"".concat(e," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"},RangeError),P("ERR_INVALID_ARG_TYPE",function(e,t){return'The "'.concat(e,'" argument must be of type number. Received type ').concat(void 0===t?"undefined":(0,s._)(t))},TypeError),P("ERR_OUT_OF_RANGE",function(e,t,r){var n='The value of "'.concat(e,'" is out of range.'),o=r;return Number.isInteger(r)&&Math.abs(r)>0x100000000?o=M(String(r)):(void 0===r?"undefined":(0,s._)(r))==="bigint"&&(o=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(o=M(o)),o+="n"),n+=" It must be ".concat(t,". Received ").concat(o)},RangeError);var B=/[^+/0-9A-Za-z-_]/g;function U(e,t){t=t||1/0;for(var r,n=e.length,o=null,a=[],i=0;i55295&&r<57344){if(!o){if(r>56319||i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return a}function G(e){return c.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(B,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,r,n){var o;for(o=0;o=t.length)&&!(o>=e.length);++o)t[o+r]=e[o];return o}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}var H=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,o=0;o<16;++o)t[n+o]=e[r]+e[o];return t}();function z(e){return"undefined"==typeof BigInt?W:e}function W(){throw Error("BigInt not supported")}},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_type_of":"3BgET","@swc/helpers/_/_create_super":"4DJgF","9c62938f1dccc73c":"9HLib",aceacb6a4531a9d2:"iVOfv"}],"9HLib":[function(e,t,r){r.byteLength=function(e){var t=c(e),r=t[0],n=t[1];return(r+n)*3/4-n},r.toByteArray=function(e){var t,r,n=c(e),i=n[0],s=n[1],l=new a((i+s)*3/4-s),u=0,d=s>0?i-4:i;for(r=0;r>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===s&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,l[u++]=255&t),1===s&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},r.fromByteArray=function(e){for(var t,r=e.length,o=r%3,a=[],i=0,s=r-o;i>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}(e,i,i+16383>s?s:i+16383));return 1===o?a.push(n[(t=e[r-1])>>2]+n[t<<4&63]+"=="):2===o&&a.push(n[(t=(e[r-2]<<8)+e[r-1])>>10]+n[t>>4&63]+n[t<<2&63]+"="),a.join("")};for(var n=[],o=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=i.length;s0)throw Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},{}],iVOfv:[function(e,t,r){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */r.read=function(e,t,r,n,o){var a,i,s=8*o-n-1,l=(1<>1,u=-7,d=r?o-1:0,p=r?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=n;u>0;i=256*i+e[t+d],d+=p,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(f?-1:1);i+=Math.pow(2,n),a-=c}return(f?-1:1)*i*Math.pow(2,a-n)},r.write=function(e,t,r,n,o,a){var i,s,l,c=8*a-o-1,u=(1<>1,p=23===o?5960464477539062e-23:0,f=n?0:a-1,m=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),i+d>=1?t+=p/l:t+=p*Math.pow(2,1-d),t*l>=2&&(i++,l/=2),i+d>=u?(s=0,i=u):i+d>=1?(s=(t*l-1)*Math.pow(2,o),i+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,o),i=0));o>=8;e[r+f]=255&s,f+=m,s/=256,o-=8);for(i=i<0;e[r+f]=255&i,f+=m,i/=256,c-=8);e[r+f-m]|=128*_}},{}],dak8L:[function(e,t,r){var n,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"isNode",function(){return p}),o.export(r,"isBrowser",function(){return f}),o.export(r,"isMac",function(){return m}),o.export(r,"hasParam",function(){return g}),o.export(r,"getParam",function(){return b}),o.export(r,"getVariable",function(){return y}),o.export(r,"getConf",function(){return S}),o.export(r,"ensureConf",function(){return E}),o.export(r,"hasConf",function(){return x}),o.export(r,"production",function(){return C}),o.export(r,"supportsColor",function(){return T});var a=e("@swc/helpers/_/_sliced_to_array"),i=e("./map.js"),s=e("./string.js"),l=e("./conditions.js"),c=e("./storage.js"),u=e("./function.js"),d=e("2cfb8bcef1022e2a"),p=void 0!==d&&d.release&&/node|io\.js/.test(d.release.name)&&"[object process]"===Object.prototype.toString.call(void 0!==d?d:0),f="undefined"!=typeof window&&"undefined"!=typeof document&&!p,m="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),_=[],h=function(){if(void 0===n){if(p){n=i.create();for(var e=d.argv,t=null,r=0;r1)for(var r=1;r2&&void 0!==arguments[2]?arguments[2]:0;try{for(;r0||c.length>0?(r.push("%c"+s),n.push(c)):r.push(s)}else break}}for(i>0&&(a=n).unshift(r.join(""));i1&&void 0!==arguments[1]&&arguments[1];_.enqueue(function(){var n=p.element("span",[d.create("hidden",r),d.create("style","color:grey;font-size:120%;")],[p.text("▼")]),o=p.element("span",[d.create("hidden",!r),d.create("style","color:grey;font-size:125%;")],[p.text("▶")]),a=p.element("div",[d.create("style","".concat(D,";padding-left:").concat(10*t.depth,"px"))],[n,o,p.text(" ")].concat(O(e))),i=p.element("div",[d.create("hidden",r)]),s=p.element("div",[],[a,i]);p.append(t.ccontainer,[s]),t.ccontainer=i,t.depth++,p.addEventListener(a,"click",function(e){i.toggleAttribute("hidden"),n.toggleAttribute("hidden"),o.toggleAttribute("hidden")})})}},{key:"groupCollapsed",value:function(e){this.group(e,!0)}},{key:"groupEnd",value:function(){var e=this;_.enqueue(function(){e.depth>0&&(e.depth--,e.ccontainer=e.ccontainer.parentElement.parentElement)})}},{key:"print",value:function(e){var t=this;_.enqueue(function(){p.append(t.ccontainer,[p.element("div",[d.create("style","".concat(D,";padding-left:").concat(10*t.depth,"px"))],O(e))])})}},{key:"printError",value:function(e){this.print([g.RED,g.BOLD,e.toString()])}},{key:"printImg",value:function(e,t){var r=this;_.enqueue(function(){p.append(r.ccontainer,[p.element("img",[d.create("src",e),d.create("height","".concat(h.round(1.5*t),"px"))])])})}},{key:"printDom",value:function(e){var t=this;_.enqueue(function(){p.append(t.ccontainer,[e])})}},{key:"destroy",value:function(){var e=this;_.enqueue(function(){k.delete(e)})}}]),e}(),P=function(e){return new j(e)},M=function(e){return g.createModuleLogger(S,e)}},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_to_consumable_array":"glvYM","./environment.js":"dak8L","./set.js":"8eTm4","./pair.js":"gXjvN","./dom.js":"byEwB","./json.js":"72nIq","./map.js":"gBEz7","./eventloop.js":"imehW","./math.js":"2l7a2","./logging.common.js":"6RARC","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gXjvN:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Pair",function(){return a}),n.export(r,"create",function(){return i}),n.export(r,"createReversed",function(){return s}),n.export(r,"forEach",function(){return l}),n.export(r,"map",function(){return c});var o=e("@swc/helpers/_/_class_call_check"),a=function e(t,r){(0,o._)(this,e),this.left=t,this.right=r},i=function(e,t){return new a(e,t)},s=function(e,t){return new a(t,e)},l=function(e,t){return e.forEach(function(e){return t(e.left,e.right)})},c=function(e,t){return e.map(function(e){return t(e.left,e.right)})}},{"@swc/helpers/_/_class_call_check":"6tPd8","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],byEwB:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"doc",function(){return i}),n.export(r,"createElement",function(){return s}),n.export(r,"createDocumentFragment",function(){return l}),n.export(r,"createTextNode",function(){return c}),n.export(r,"domParser",function(){return u}),n.export(r,"emitCustomEvent",function(){return d}),n.export(r,"setAttributes",function(){return p}),n.export(r,"setAttributesMap",function(){return f}),n.export(r,"fragment",function(){return m}),n.export(r,"append",function(){return _}),n.export(r,"remove",function(){return h}),n.export(r,"addEventListener",function(){return g}),n.export(r,"removeEventListener",function(){return b}),n.export(r,"addEventListeners",function(){return y}),n.export(r,"removeEventListeners",function(){return S}),n.export(r,"element",function(){return E}),n.export(r,"canvas",function(){return x}),n.export(r,"text",function(){return C}),n.export(r,"pairToStyleString",function(){return T}),n.export(r,"pairsToStyleString",function(){return w}),n.export(r,"mapToStyleString",function(){return I}),n.export(r,"querySelector",function(){return R}),n.export(r,"querySelectorAll",function(){return A}),n.export(r,"getElementById",function(){return N}),n.export(r,"parseFragment",function(){return O}),n.export(r,"parseElement",function(){return D}),n.export(r,"replaceWith",function(){return j}),n.export(r,"insertBefore",function(){return P}),n.export(r,"appendChild",function(){return M}),n.export(r,"ELEMENT_NODE",function(){return L}),n.export(r,"TEXT_NODE",function(){return V}),n.export(r,"CDATA_SECTION_NODE",function(){return F}),n.export(r,"COMMENT_NODE",function(){return B}),n.export(r,"DOCUMENT_NODE",function(){return U}),n.export(r,"DOCUMENT_TYPE_NODE",function(){return G}),n.export(r,"DOCUMENT_FRAGMENT_NODE",function(){return q}),n.export(r,"checkNodeType",function(){return Y}),n.export(r,"isParentOf",function(){return H});var o=e("./pair.js"),a=e("./map.js"),i="undefined"!=typeof document?document:{},s=function(e){return i.createElement(e)},l=function(){return i.createDocumentFragment()},c=function(e){return i.createTextNode(e)},u="undefined"!=typeof DOMParser?new DOMParser:null,d=function(e,t,r){return e.dispatchEvent(new CustomEvent(t,r))},p=function(e,t){return o.forEach(t,function(t,r){!1===r?e.removeAttribute(t):!0===r?e.setAttribute(t,""):e.setAttribute(t,r)}),e},f=function(e,t){return t.forEach(function(t,r){e.setAttribute(r,t)}),e},m=function(e){for(var t=l(),r=0;r1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return _(p(s(e),t),r)},x=function(e,t){var r=s("canvas");return r.height=t,r.width=e,r},C=c,T=function(e){return"".concat(e.left,":").concat(e.right,";")},w=function(e){return e.map(T).join("")},I=function(e){return a.map(e,function(e,t){return"".concat(t,":").concat(e,";")}).join("")},R=function(e,t){return e.querySelector(t)},A=function(e,t){return e.querySelectorAll(t)},N=function(e){return i.getElementById(e)},k=function(e){return u.parseFromString("".concat(e,""),"text/html").body},O=function(e){return m(k(e).childNodes)},D=function(e){return k(e).firstElementChild},j=function(e,t){return e.replaceWith(t)},P=function(e,t,r){return e.insertBefore(t,r)},M=function(e,t){return e.appendChild(t)},L=i.ELEMENT_NODE,V=i.TEXT_NODE,F=i.CDATA_SECTION_NODE,B=i.COMMENT_NODE,U=i.DOCUMENT_NODE,G=i.DOCUMENT_TYPE_NODE,q=i.DOCUMENT_FRAGMENT_NODE,Y=function(e,t){return e.nodeType===t},H=function(e,t){for(var r=t.parentNode;r&&r!==e;)r=r.parentNode;return r===e}},{"./pair.js":"gXjvN","./map.js":"gBEz7","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"72nIq":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"stringify",function(){return o}),n.export(r,"parse",function(){return a});var o=JSON.stringify,a=JSON.parse},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],imehW:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"enqueue",function(){return l}),n.export(r,"timeout",function(){return d}),n.export(r,"interval",function(){return f}),n.export(r,"Animation",function(){return m}),n.export(r,"animationFrame",function(){return _}),n.export(r,"idleCallback",function(){return g}),n.export(r,"createDebouncer",function(){return b});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=[],s=function(){for(var e=0;e0&&n.push(r.join(""));o3&&((t=[]).push.apply(t,arguments),t.shift()),n.push.apply(n,r),this._clearOnEmit&&(r.length=0,this._clearOnEmit=!1),++this._counter;for(var i=o,s=n.length;i-1,G=B.indexOf("trident")>-1,q=B.indexOf("firefox")>-1,Y=B.indexOf("android")>-1,H=!!F()&&{passive:!0},z="touchAction",W=V(document.documentElement.style,z);function K(e,t){this._element=e,this._emitter=new D,this._isDestroyed=!1,this._cssProps={},this._touchAction="",this._isActive=!1,this._pointerId=null,this._startTime=0,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._onStart=this._onStart.bind(this),this._onMove=this._onMove.bind(this),this._onCancel=this._onCancel.bind(this),this._onEnd=this._onEnd.bind(this),this._edgeHack=null,(U||G)&&(k||O)&&(this._edgeHack=new P(this)),this.setCssProps(t),this._touchAction||this.setTouchAction("auto"),e.addEventListener("dragstart",K._preventDefault,!1),e.addEventListener(K._inputEvents.start,this._onStart,H)}K._pointerEvents={start:"pointerdown",move:"pointermove",cancel:"pointercancel",end:"pointerup"},K._msPointerEvents={start:"MSPointerDown",move:"MSPointerMove",cancel:"MSPointerCancel",end:"MSPointerUp"},K._touchEvents={start:"touchstart",move:"touchmove",cancel:"touchcancel",end:"touchend"},K._mouseEvents={start:"mousedown",move:"mousemove",cancel:"",end:"mouseup"},K._inputEvents=N?K._touchEvents:k?K._pointerEvents:O?K._msPointerEvents:K._mouseEvents,K._emitter=new D,K._emitterEvents={start:"start",move:"move",end:"end",cancel:"cancel"},K._activeInstances=[],K._preventDefault=function(e){e.preventDefault&&!1!==e.cancelable&&e.preventDefault()},K._activateInstance=function(e){K._activeInstances.indexOf(e)>-1||(K._activeInstances.push(e),K._emitter.on(K._emitterEvents.move,e._onMove),K._emitter.on(K._emitterEvents.cancel,e._onCancel),K._emitter.on(K._emitterEvents.end,e._onEnd),1===K._activeInstances.length&&K._bindListeners())},K._deactivateInstance=function(e){var t=K._activeInstances.indexOf(e);-1===t||(K._activeInstances.splice(t,1),K._emitter.off(K._emitterEvents.move,e._onMove),K._emitter.off(K._emitterEvents.cancel,e._onCancel),K._emitter.off(K._emitterEvents.end,e._onEnd),K._activeInstances.length||K._unbindListeners())},K._bindListeners=function(){window.addEventListener(K._inputEvents.move,K._onMove,H),window.addEventListener(K._inputEvents.end,K._onEnd,H),K._inputEvents.cancel&&window.addEventListener(K._inputEvents.cancel,K._onCancel,H)},K._unbindListeners=function(){window.removeEventListener(K._inputEvents.move,K._onMove,H),window.removeEventListener(K._inputEvents.end,K._onEnd,H),K._inputEvents.cancel&&window.removeEventListener(K._inputEvents.cancel,K._onCancel,H)},K._getEventPointerId=function(e){return"number"==typeof e.pointerId?e.pointerId:e.changedTouches?e.changedTouches[0]?e.changedTouches[0].identifier:null:1},K._getTouchById=function(e,t){if("number"==typeof e.pointerId)return e.pointerId===t?e:null;if(e.changedTouches){for(var r=0;r=this.maxValue:this.value<=0},eB.prototype.computeCurrentScrollValue=function(){return null===this.value?1&this.direction?eD(this.element):ej(this.element):Math.max(0,Math.min(this.value,this.maxValue))},eB.prototype.computeNextScrollValue=function(e){var t=this.speed*(e/1e3);return Math.max(0,Math.min(4&this.direction?this.value+t:this.value-t,this.maxValue))},eB.prototype.computeSpeed=(n={direction:null,threshold:0,distance:0,value:0,maxValue:0,deltaTime:0,duration:0,isEnding:!1},function(e){var t=this.item,r=eV(t).speed;return eT(r)?(n.direction=this.direction,n.threshold=this.threshold,n.distance=this.distance,n.value=this.value,n.maxValue=this.maxValue,n.duration=this.duration,n.speed=this.speed,n.deltaTime=e,n.isEnding=this.isEnding,r(t,this.element,n)):r}),eB.prototype.tick=function(e){return this.isActive||(this.isActive=!0,this.onStart()),this.value=this.computeCurrentScrollValue(),this.speed=this.computeSpeed(e),this.value=this.computeNextScrollValue(e),this.duration+=e,this.value},eB.prototype.onStart=function(){var e=this.item,t=eV(e).onStart;eT(t)&&t(e,this.element,this.direction)},eB.prototype.onStop=function(){var e=this.item,t=eV(e).onStop;eT(t)&&t(e,this.element,this.direction),e._drag&&e._drag.sort()},eU.prototype.reset=function(){this.requestX&&(this.requestX.action=null),this.requestY&&(this.requestY.action=null),this.element=null,this.requestX=null,this.requestY=null,this.scrollLeft=0,this.scrollTop=0},eU.prototype.addRequest=function(e){1&e.direction?(this.removeRequest(this.requestX),this.requestX=e):(this.removeRequest(this.requestY),this.requestY=e),e.action=this},eU.prototype.removeRequest=function(e){e&&(this.requestX===e?(this.requestX=null,e.action=null):this.requestY===e&&(this.requestY=null,e.action=null))},eU.prototype.computeScrollValues=function(){this.scrollLeft=this.requestX?this.requestX.value:eD(this.element),this.scrollTop=this.requestY?this.requestY.value:ej(this.element)},eU.prototype.scroll=function(){var e=this.element;e&&(e.scrollTo?e.scrollTo(this.scrollLeft,this.scrollTop):(e.scrollLeft=this.scrollLeft,e.scrollTop=this.scrollTop))},eG.prototype.pick=function(){return this.pool.pop()||this.createItem()},eG.prototype.release=function(e){this.releaseItem(e),-1===this.pool.indexOf(e)&&this.pool.push(e)},eG.prototype.reset=function(){this.pool.length=0};var eY={width:0,height:0,left:0,right:0,top:0,bottom:0},eH={width:0,height:0,left:0,right:0,top:0,bottom:0};function ez(){this._isDestroyed=!1,this._isTicking=!1,this._tickTime=0,this._tickDeltaTime=0,this._items=[],this._actions=[],this._requests={},this._requests[1]={},this._requests[2]={},this._requestOverlapCheck={},this._dragPositions={},this._dragDirections={},this._overlapCheckInterval=150,this._requestPool=new eG(function(){return new eB},function(e){e.reset()}),this._actionPool=new eG(function(){return new eU},function(e){e.reset()}),this._readTick=this._readTick.bind(this),this._writeTick=this._writeTick.bind(this)}ez.AXIS_X=1,ez.AXIS_Y=2,ez.FORWARD=4,ez.BACKWARD=8,ez.LEFT=9,ez.RIGHT=5,ez.UP=10,ez.DOWN=6,ez.smoothSpeed=function(e,t,r){return function(n,o,a){var i=0;if(!a.isEnding){if(a.threshold>0){var s=a.threshold-Math.max(0,a.distance);i=e/a.threshold*s}else i=e}var l=a.speed,c=i;return l===i?c:l=T&&E>0&&(g>T||h>I)&&(y=null,b=eF("number"==typeof p.threshold?p.threshold:a,i,u.width,d.width),5===l?(S=d.right+b.offset-u.right)<=b.value&&eD(f)0&&(y=9),null!==y&&(C=f,T=g,w=b.value,I=h,R=y,A=S,N=E)),_&&g>=O&&x>0&&(g>O||h>j)&&(y=null,b=eF("number"==typeof p.threshold?p.threshold:a,i,u.height,d.height),6===c?(S=d.bottom+b.offset-u.bottom)<=b.value&&ej(f)0&&(y=10),null!==y&&(k=f,O=g,D=b.value,j=h,P=y,M=S,L=x))));t&&(C?this._requestItemScroll(e,1,C,R,w,A,N):this._cancelItemScroll(e,1)),r&&(k?this._requestItemScroll(e,2,k,P,D,M,L):this._cancelItemScroll(e,2))},ez.prototype._updateScrollRequest=function(e){for(var t=e.item,r=eV(t),n=eT(r.targets)?r.targets(t):r.targets,o=n&&n.length||0,a=r.threshold,i=r.safeZone,s=this._getItemHandleRect(t,r.handle,eY),l=eH,c=null,u=null,d=!1,p=null,f=null,m=null,_=null,h=null,g=0;g=eq(s,l=eL(u,l))||(p=eF("number"==typeof c.threshold?c.threshold:a,i,d?s.width:s.height,d?l.width:l.height),(f=9===e.direction?s.left-(l.left-p.offset):5===e.direction?l.right+p.offset-s.right:10===e.direction?s.top-(l.top-p.offset):l.bottom+p.offset-s.bottom)>p.value)||(m=d?eD(u):ej(u),h=4&e.direction?m>=_:m<=0))break;return e.maxValue=_,e.threshold=p.value,e.distance=f,e.isEnding=!1,!0}return!0===r.smoothStop&&e.speed>0?(null===h&&(h=e.hasReachedEnd()),e.isEnding=!h):e.isEnding=!1,e.isEnding},ez.prototype._updateRequests=function(){for(var e,t,r,n,o,a,i,s=this._items,l=this._requests[1],c=this._requests[2],u=0;u0&&this._tickTime-n>this._overlapCheckInterval,a=!0,(t=l[e._id])&&t.isActive&&(a=!this._updateScrollRequest(t))&&(o=!0,this._cancelItemScroll(e,1)),i=!0,(r=c[e._id])&&r.isActive&&(i=!this._updateScrollRequest(r))&&(o=!0,this._cancelItemScroll(e,2)),o&&(this._requestOverlapCheck[e._id]=0,this._checkItemOverlap(e,a,i))},ez.prototype._requestAction=function(e,t){for(var r=this._actions,n=1===t,o=null,a=0;aa?5:ni?6:on?n:t<0?Math.max(n+t+1,0):t}function e0(e,t,r){if(!(e.length<2)){var n=eJ(e,t),o=eJ(e,r);n!==o&&e.splice(o,0,e.splice(n,1)[0])}}function e1(e,t,r){if(!(e.length<2)){var n,o=eJ(e,t),a=eJ(e,r);o!==a&&(n=e[o],e[o]=e[a],e[a]=n)}}var e2=V(document.documentElement.style,"transform")||"transform",e3=/([A-Z])/g,e8=/^(webkit-|moz-|ms-|o-)/,e4=/^(-m-s-)/;function e6(e){var t=e.replace(e3,"-$1").toLowerCase();return(t=t.replace(e8,"-$1")).replace(e4,"-ms-")}var e5=e6(e2);function e7(e){for(var t=document,r=e||t;r&&r!==t&&"static"===eI(r,"position")&&!function(e){var t=eI(e,e5);if(!t||"none"===t)return!1;var r=eI(e,"display");return"inline"!==r&&"none"!==r}(r);)r=r.parentElement||t;return r}var e9={},te={},tt={};function tr(e,t){var r,n=t||{};return n.left=0,n.top=0,e===document||(n.left=window.pageXOffset||0,n.top=window.pageYOffset||0,e.self===window.self||(r=e.getBoundingClientRect(),n.left+=r.left,n.top+=r.top,n.left+=eR(e,"border-left-width"),n.top+=eR(e,"border-top-width"))),n}function tn(e,t,r){return tt.left=0,tt.top=0,e===t||r&&(e=e7(e))===(t=e7(t))||(tr(e,e9),tr(t,te),tt.left=te.left-e9.left,tt.top=te.top-e9.top),tt}function to(e){return"auto"===e||"scroll"===e||"overlay"===e}function ta(e,t){for(t=t||[];e&&e!==document;){var r;if(e.getRootNode&&e instanceof DocumentFragment){e=e.getRootNode().host;continue}(to(eI(r=e,"overflow"))||to(eI(r,"overflow-x"))||to(eI(r,"overflow-y")))&&t.push(e),e=e.parentNode}return t.push(window),t}var ti={},ts=/^matrix3d/,tl=/([^,]*,){4}/,tc=/([^,]*,){12}/,tu=/[^,]*,/;function td(e){ti.x=0,ti.y=0;var t=eI(e,e5);if(!t||"none"===t)return ti;var r=ts.test(t),n=t.replace(r?tc:tl,""),o=n.replace(tu,"");return ti.x=parseFloat(n)||0,ti.y=parseFloat(o)||0,ti}function tp(e,t){t&&(e.classList?e.classList.remove(t):eQ(e,"."+t)&&(e.className=(" "+e.className+" ").replace(" "+t+" "," ").trim()))}var tf=/^(iPad|iPhone|iPod)/.test(window.navigator.platform)||/^Mac/.test(window.navigator.platform)&&window.navigator.maxTouchPoints>1,tm=!!F()&&{passive:!0};function t_(e){var t=e._element,r=e.getGrid(),n=r._settings;this._item=e,this._gridId=r._id,this._isDestroyed=!1,this._isMigrating=!1,this._startPredicate=eT(n.dragStartPredicate)?n.dragStartPredicate:t_.defaultStartPredicate,this._startPredicateState=0,this._startPredicateResult=void 0,this._isSortNeeded=!1,this._sortTimer=void 0,this._blockedSortIndex=null,this._sortX1=0,this._sortX2=0,this._sortY1=0,this._sortY2=0,this._reset(),this._preStartCheck=this._preStartCheck.bind(this),this._preEndCheck=this._preEndCheck.bind(this),this._onScroll=this._onScroll.bind(this),this._prepareStart=this._prepareStart.bind(this),this._applyStart=this._applyStart.bind(this),this._prepareMove=this._prepareMove.bind(this),this._applyMove=this._applyMove.bind(this),this._prepareScroll=this._prepareScroll.bind(this),this._applyScroll=this._applyScroll.bind(this),this._handleSort=this._handleSort.bind(this),this._handleSortDelayed=this._handleSortDelayed.bind(this),this._handle=n.dragHandle&&t.querySelector(n.dragHandle)||t,this._dragger=new K(this._handle,n.dragCssProps),this._dragger.on("start",this._preStartCheck),this._dragger.on("move",this._preStartCheck),this._dragger.on("cancel",this._preEndCheck),this._dragger.on("end",this._preEndCheck)}function th(e,t){var r,n,o={};if(Array.isArray(t))for(n=0;n=f)&&!(p>=m)&&(a.left=d,a.top=p,a.width=f-d,a.height=m-p,(n=eq(o,a))>r&&n>b&&(b=n,h=l))}return s.length=0,h}(e,u,d);if(!h)return null;var g=e.getGrid()!==h,b=0,y=0,S=0,E=-1,x=!1;for(h===u?(o.left=c._gridX+e._marginLeft,o.top=c._gridY+e._marginTop):(h._updateBorders(1,0,1,0),b=h._left+h._borderLeft,y=h._top+h._borderTop),l=0;lS&&(E=l,S=n));return(g&&S=d)?(i.grid=h,i.index=E,i.action=g?f:p,i):null}),t_.prototype.stop=function(){if(this._isActive){if(this._isMigrating){this._finishMigration();return}var e=this._item,t=e._id;if(t_.autoScroller.removeItem(e),eb(t),ey(t),eS(t),this._cancelSort(),this._isStarted){this._unbindScrollListeners();var r=e._element,n=this._getGrid(),o=n._settings.itemDraggingClass;r.parentNode!==n._element&&(n._element.appendChild(r),e._setTranslate(this._gridX,this._gridY),o&&r.clientWidth),tp(r,o)}this._reset()}},t_.prototype.sort=function(e){var t=this._item;this._isActive&&t._isActive&&this._dragMoveEvent&&(!0===e?this._handleSort():eE(t._id,this._handleSort))},t_.prototype.destroy=function(){this._isDestroyed||(this.stop(),this._dragger.destroy(),t_.autoScroller.removeItem(this._item),this._isDestroyed=!0)},t_.prototype._getGrid=function(){return p[this._gridId]||null},t_.prototype._reset=function(){this._isActive=!1,this._isStarted=!1,this._container=null,this._containingBlock=null,this._dragStartEvent=null,this._dragMoveEvent=null,this._dragPrevMoveEvent=null,this._scrollEvent=null,this._scrollers=[],this._left=0,this._top=0,this._gridX=0,this._gridY=0,this._clientX=0,this._clientY=0,this._scrollDiffX=0,this._scrollDiffY=0,this._moveDiffX=0,this._moveDiffY=0,this._containerDiffX=0,this._containerDiffY=0},t_.prototype._bindScrollListeners=function(){var e,t,r=this._getGrid()._element,n=this._container,o=this._scrollers;if(o.length=0,ta(this._item._element.parentNode,o),n!==r)for(ta(r,e=[]),t=0;to.indexOf(e[t])&&o.push(e[t]);for(t=0;tMath.abs(e.deltaX)&&2>Math.abs(e.deltaY)&&e.deltaTime<200;this._resetStartPredicate(),r&&function(e){if("a"===e.tagName.toLowerCase()){var t=e.getAttribute("href");if(t){var r=e.getAttribute("target");r&&"_self"!==r?window.open(t,r):window.location.href=t}}}(t)},t_.prototype._resetHeuristics=function(e,t){this._blockedSortIndex=null,this._sortX1=this._sortX2=e,this._sortY1=this._sortY2=t},t_.prototype._checkHeuristics=function(e,t){var r=this._getGrid()._settings.dragSortHeuristics,n=r.minDragDistance;if(n<=0)return this._blockedSortIndex=null,!0;var o=e-this._sortX2,a=t-this._sortY2,i=n>3&&r.minBounceBackAngle>0;if(i||(this._blockedSortIndex=null),Math.abs(o)>n||Math.abs(a)>n){if(i){var s=Math.atan2(o,a),l=Math.atan2(this._sortX2-this._sortX1,this._sortY2-this._sortY1);Math.abs(Math.atan2(Math.sin(s-l),Math.cos(s-l)))>r.minBounceBackAngle&&(this._blockedSortIndex=null)}return this._sortX1=this._sortX2,this._sortY1=this._sortY2,this._sortX2=e,this._sortY2=t,!0}return!1},t_.prototype._resetStartPredicate=function(){var e=this._startPredicateData;e&&(e.delayTimer&&(e.delayTimer=window.clearTimeout(e.delayTimer)),this._startPredicateData=null)},t_.prototype._handleSort=function(){if(this._isActive){var e=this._getGrid()._settings;if(!e.dragSort||!e.dragAutoScroll.sortDuringScroll&&t_.autoScroller.isItemScrolling(this._item)){this._sortX1=this._sortX2=this._gridX,this._sortY1=this._sortY2=this._gridY,this._isSortNeeded=!0,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer));return}var t=this._checkHeuristics(this._gridX,this._gridY);if(this._isSortNeeded||t){var r=e.dragSortHeuristics.sortInterval;r<=0||this._isSortNeeded?(this._isSortNeeded=!1,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer)),this._checkOverlap()):void 0===this._sortTimer&&(this._sortTimer=window.setTimeout(this._handleSortDelayed,r))}}},t_.prototype._handleSortDelayed=function(){this._isSortNeeded=!0,this._sortTimer=void 0,eE(this._item._id,this._handleSort)},t_.prototype._cancelSort=function(){var e;this._isSortNeeded=!1,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer)),e=this._item._id,eh.remove(1,ec+e)},t_.prototype._finishSort=function(){var e=this._getGrid()._settings.dragSort&&(this._isSortNeeded||void 0!==this._sortTimer);this._cancelSort(),e&&this._checkOverlap()},t_.prototype._checkOverlap=function(){if(this._isActive){var e,t,r,n,o,a,i,s,l=this._item,c=this._getGrid()._settings;(e=eT(c.dragSortPredicate)?c.dragSortPredicate(l,this._dragMoveEvent):t_.defaultSortPredicate(l,c.dragSortPredicate))&&"number"==typeof e.index&&(i=e.action===m?m:_,t=l.getGrid(),n=e.grid||t,s=t!==n,r=t._items.indexOf(l),o=eJ(n._items,e.index,s&&i===_?1:0),(s||o!==this._blockedSortIndex)&&(s?(this._blockedSortIndex=null,a=n._items[o],t._hasListeners(w)&&t._emit(w,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),n._hasListeners(R)&&n._emit(R,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),l._gridId=n._id,this._isMigrating=l._gridId!==this._gridId,t._items.splice(r,1),eZ(n._items,l,o),l._sortData=null,t._hasListeners(T)&&t._emit(T,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),n._hasListeners(I)&&n._emit(I,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),i===m&&a&&a.isActive()&&n._items.indexOf(a)>-1&&n.send(a,t,r,{appendTo:this._container||document.body,layoutSender:!1,layoutReceiver:!1}),t.layout(),n.layout()):r!==o&&(this._blockedSortIndex=r,(i===m?e1:e0)(t._items,r,o),t._hasListeners(C)&&t._emit(C,{item:l,fromIndex:r,toIndex:o,action:i}),t.layout())))}},t_.prototype._finishMigration=function(){var e,t,r=this._item,n=r._dragRelease,o=r._element,a=r._isActive,i=r.getGrid(),s=i._element,l=i._settings,c=l.dragContainer||s,u=this._getGrid()._settings,d=o.parentNode,p=a?u.itemVisibleClass:u.itemHiddenClass,f=a?l.itemVisibleClass:l.itemHiddenClass;this._isMigrating=!1,this.destroy(),u.itemClass!==l.itemClass&&(tp(o,u.itemClass),e$(o,l.itemClass)),p!==f&&(tp(o,p),e$(o,f)),c!==d&&(c.appendChild(o),t=tn(d,c,!0),e=td(o),e.x-=t.left,e.y-=t.top),r._refreshDimensions(),t=tn(c,s,!0),n._containerDiffX=t.left,n._containerDiffY=t.top,r._drag=l.dragEnabled?new t_(r):null,c!==d&&r._setTranslate(e.x,e.y),r._visibility.setStyles(a?l.visibleStyles:l.hiddenStyles),n.start()},t_.prototype._preStartCheck=function(e){0===this._startPredicateState&&(this._startPredicateState=1),1===this._startPredicateState?(this._startPredicateResult=this._startPredicate(this._item,e),!0===this._startPredicateResult?(this._startPredicateState=2,this._onStart(e)):!1===this._startPredicateResult&&(this._resetStartPredicate(e),this._dragger._reset(),this._startPredicateState=0)):2===this._startPredicateState&&this._isActive&&this._onMove(e)},t_.prototype._preEndCheck=function(e){var t=2===this._startPredicateState;this._startPredicate(this._item,e),this._startPredicateState=0,t&&this._isActive&&(this._isStarted?this._onEnd(e):this.stop())},t_.prototype._onStart=function(e){var t,r,n,o=this._item;o._isActive&&(this._isActive=!0,this._dragStartEvent=e,t_.autoScroller.addItem(o),t=o._id,r=this._prepareStart,n=this._applyStart,eh.add(0,en+t,r),eh.add(2,eo+t,n))},t_.prototype._prepareStart=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=e._element,r=this._getGrid(),n=r._settings,o=r._element,a=n.dragContainer||o,i=e7(a),s=td(t),l=t.getBoundingClientRect(),c=a!==o;if(this._container=a,this._containingBlock=i,this._clientX=l.left,this._clientY=l.top,this._left=this._gridX=s.x,this._top=this._gridY=s.y,this._scrollDiffX=this._scrollDiffY=0,this._moveDiffX=this._moveDiffY=0,this._resetHeuristics(this._gridX,this._gridY),c){var u=tn(i,o);this._containerDiffX=u.left,this._containerDiffY=u.top}}}},t_.prototype._applyStart=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=this._getGrid(),r=e._element,n=e._dragRelease,o=e._migrate,a=this._container!==t._element;e.isPositioning()&&e._layout.stop(!0,this._left,this._top),o._isActive&&(this._left-=o._containerDiffX,this._top-=o._containerDiffY,this._gridX-=o._containerDiffX,this._gridY-=o._containerDiffY,o.stop(!0,this._left,this._top)),e.isReleasing()&&n._reset(),t._settings.dragPlaceholder.enabled&&e._dragPlaceholder.create(),this._isStarted=!0,t._emit("dragInit",e,this._dragStartEvent),a&&(r.parentNode===this._container?(this._gridX-=this._containerDiffX,this._gridY-=this._containerDiffY):(this._left+=this._containerDiffX,this._top+=this._containerDiffY,this._container.appendChild(r),e._setTranslate(this._left,this._top))),e$(r,t._settings.itemDraggingClass),this._bindScrollListeners(),t._emit("dragStart",e,this._dragStartEvent)}}},t_.prototype._onMove=function(e){var t,r,n,o=this._item;if(!o._isActive){this.stop();return}this._dragMoveEvent=e,t=o._id,r=this._prepareMove,n=this._applyMove,eh.add(0,ea+t,r),eh.add(2,ei+t,n),eE(o._id,this._handleSort)},t_.prototype._prepareMove=function(){if(this._isActive&&this._item._isActive){var e=this._getGrid()._settings.dragAxis,t=this._dragMoveEvent,r=this._dragPrevMoveEvent||this._dragStartEvent||t;if("y"!==e){var n=t.clientX-r.clientX;this._left=this._left-this._moveDiffX+n,this._gridX=this._gridX-this._moveDiffX+n,this._clientX=this._clientX-this._moveDiffX+n,this._moveDiffX=n}if("x"!==e){var o=t.clientY-r.clientY;this._top=this._top-this._moveDiffY+o,this._gridY=this._gridY-this._moveDiffY+o,this._clientY=this._clientY-this._moveDiffY+o,this._moveDiffY=o}this._dragPrevMoveEvent=t}},t_.prototype._applyMove=function(){if(this._isActive){var e=this._item;e._isActive&&(this._moveDiffX=this._moveDiffY=0,e._setTranslate(this._left,this._top),this._getGrid()._emit("dragMove",e,this._dragMoveEvent),t_.autoScroller.updateItem(e))}},t_.prototype._onScroll=function(e){var t,r,n,o=this._item;if(!o._isActive){this.stop();return}this._scrollEvent=e,t=o._id,r=this._prepareScroll,n=this._applyScroll,eh.add(0,es+t,r),eh.add(2,el+t,n),eE(o._id,this._handleSort)},t_.prototype._prepareScroll=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=e._element,r=this._getGrid()._element,n=t.getBoundingClientRect();if(this._container!==r){var o=tn(this._containingBlock,r);this._containerDiffX=o.left,this._containerDiffY=o.top}var a=this._clientX-this._moveDiffX-n.left;this._left=this._left-this._scrollDiffX+a,this._scrollDiffX=a;var i=this._clientY-this._moveDiffY-n.top;this._top=this._top-this._scrollDiffY+i,this._scrollDiffY=i,this._gridX=this._left-this._containerDiffX,this._gridY=this._top-this._containerDiffY}}},t_.prototype._applyScroll=function(){if(this._isActive){var e=this._item;e._isActive&&(this._scrollDiffX=this._scrollDiffY=0,e._setTranslate(this._left,this._top),this._getGrid()._emit("dragScroll",e,this._scrollEvent))}},t_.prototype._onEnd=function(e){var t=this._item,r=t._element,n=this._getGrid(),o=n._settings,a=t._dragRelease;if(!t._isActive){this.stop();return}eb(t._id),ey(t._id),eS(t._id),this._finishSort(),this._unbindScrollListeners(),a._containerDiffX=this._containerDiffX,a._containerDiffY=this._containerDiffY,this._reset(),tp(r,o.itemDraggingClass),t_.autoScroller.removeItem(t),n._emit("dragEnd",t,e),this._isMigrating?this._finishMigration():a.start()};var tv=/^(webkit|moz|ms|o|Webkit|Moz|MS|O)(?=[A-Z])/,tg={};function tb(e,t){for(var r in t)e.style[r]=t[r]}var ty=!!(Element&&eT(Element.prototype.animate)),tS=!!(Element&&(l=Element.prototype.animate,c=window.Symbol,l&&eT(c)&&eT(c.toString)&&c(l).toString().indexOf("[native code]")>-1));function tE(e){this._element=e,this._animation=null,this._duration=0,this._easing="",this._callback=null,this._props=[],this._values=[],this._isDestroyed=!1,this._onFinish=this._onFinish.bind(this)}function tx(e,t){var r={};for(var n in e)r[t?n:function(e){var t=tg[e];return t||((t=e.replace(tv,""))!==e&&(t=t[0].toLowerCase()+t.slice(1)),tg[e]=t),t}(n)]=e[n];return r}function tC(e,t){return"translateX("+e+"px) translateY("+t+"px)"}function tT(e){this._item=e,this._animation=new tE,this._element=null,this._className="",this._didMigrate=!1,this._resetAfterLayout=!1,this._left=0,this._top=0,this._transX=0,this._transY=0,this._nextTransX=0,this._nextTransY=0,this._setupAnimation=this._setupAnimation.bind(this),this._startAnimation=this._startAnimation.bind(this),this._updateDimensions=this._updateDimensions.bind(this),this._onLayoutStart=this._onLayoutStart.bind(this),this._onLayoutEnd=this._onLayoutEnd.bind(this),this._onReleaseEnd=this._onReleaseEnd.bind(this),this._onMigrate=this._onMigrate.bind(this),this._onHide=this._onHide.bind(this)}function tw(e){this._item=e,this._isActive=!1,this._isDestroyed=!1,this._isPositioningStarted=!1,this._containerDiffX=0,this._containerDiffY=0}function tI(e){var t=e._element,r=t.style;this._item=e,this._isActive=!1,this._isDestroyed=!1,this._isInterrupted=!1,this._currentStyles={},this._targetStyles={},this._nextLeft=0,this._nextTop=0,this._offsetLeft=0,this._offsetTop=0,this._skipNextAnimation=!1,this._animOptions={onFinish:this._finish.bind(this),duration:0,easing:0},r.left="0px",r.top="0px",e._setTranslate(0,0),this._animation=new tE(t),this._queue="layout-"+e._id,this._setupAnimation=this._setupAnimation.bind(this),this._startAnimation=this._startAnimation.bind(this)}function tR(e){this._item=e,this._isActive=!1,this._isDestroyed=!1,this._container=!1,this._containerDiffX=0,this._containerDiffY=0}function tA(e){var t=e._isActive,r=e._element,n=r.children[0],o=e.getGrid()._settings;if(!n)throw Error("No valid child element found within item element.");this._item=e,this._isDestroyed=!1,this._isHidden=!t,this._isHiding=!1,this._isShowing=!1,this._childElement=n,this._currentStyleProps=[],this._animation=new tE(n),this._queue="visibility-"+e._id,this._finishShow=this._finishShow.bind(this),this._finishHide=this._finishHide.bind(this),r.style.display=t?"":"none",e$(r,t?o.itemVisibleClass:o.itemHiddenClass),this.setStyles(t?o.visibleStyles:o.hiddenStyles)}tE.prototype.start=function(e,t,r){if(!this._isDestroyed){var n,o,a,i=this._element,s=r||{};if(!ty){tb(i,t),this._callback=eT(s.onFinish)?s.onFinish:null,this._onFinish();return}var l=this._animation,c=this._props,u=this._values,d=s.duration||300,p=s.easing||"ease",f=!1;if(l&&(o=0,(d!==this._duration||p!==this._easing)&&(f=!0),!f)){for(n in t)if(++o,-1===(a=c.indexOf(n))||t[n]!==u[a]){f=!0;break}o!==c.length&&(f=!0)}if(f&&l.cancel(),this._callback=eT(s.onFinish)?s.onFinish:null,!l||f){for(n in c.length=u.length=0,t)c.push(n),u.push(t[n]);this._duration=d,this._easing=p,this._animation=i.animate([tx(e,tS),tx(t,tS)],{duration:d,easing:p}),this._animation.onfinish=this._onFinish,tb(i,t)}}},tE.prototype.stop=function(){!this._isDestroyed&&this._animation&&(this._animation.cancel(),this._animation=this._callback=null,this._props.length=this._values.length=0)},tE.prototype.getCurrentStyles=function(){return th(element,currentProps)},tE.prototype.isAnimating=function(){return!!this._animation},tE.prototype.destroy=function(){this._isDestroyed||(this.stop(),this._element=null,this._isDestroyed=!0)},tE.prototype._onFinish=function(){var e=this._callback;this._animation=this._callback=null,this._props.length=this._values.length=0,e&&e()},tT.prototype._updateDimensions=function(){this.isActive()&&tb(this._element,{width:this._item._width+"px",height:this._item._height+"px"})},tT.prototype._onLayoutStart=function(e,t){var r=this._item;if(-1===e.indexOf(r)){this.reset();return}var n=r._left,o=r._top,a=this._left,i=this._top;if(this._left=n,this._top=o,t||this._didMigrate||a!==n||i!==o){var s,l,c,u=n+r._marginLeft,d=o+r._marginTop,p=r.getGrid();if(!(!t&&p._settings.layoutDuration>0)||this._didMigrate){ex(r._id),this._element.style[e2]=tC(u,d),this._animation.stop(),this._didMigrate&&(p.getElement().appendChild(this._element),this._didMigrate=!1);return}this._nextTransX=u,this._nextTransY=d,s=r._id,l=this._setupAnimation,c=this._startAnimation,eh.add(0,eu+s,l),eh.add(2,ed+s,c)}},tT.prototype._setupAnimation=function(){if(this.isActive()){var e=td(this._element);this._transX=e.x,this._transY=e.y}},tT.prototype._startAnimation=function(){if(this.isActive()){var e=this._animation,t=this._transX,r=this._transY,n=this._nextTransX,o=this._nextTransY;if(t===n&&r===o){e.isAnimating()&&(this._element.style[e2]=tC(n,o),e.stop());return}var a=this._item.getGrid()._settings,i={},s={};i[e2]=tC(t,r),s[e2]=tC(n,o),e.start(i,s,{duration:a.layoutDuration,easing:a.layoutEasing,onFinish:this._onLayoutEnd})}},tT.prototype._onLayoutEnd=function(){this._resetAfterLayout&&this.reset()},tT.prototype._onReleaseEnd=function(e){if(e._id===this._item._id){if(!this._animation.isAnimating()){this.reset();return}this._resetAfterLayout=!0}},tT.prototype._onMigrate=function(e){if(e.item===this._item){var t=this._item.getGrid(),r=e.toGrid;t.off(A,this._onReleaseEnd),t.off(h,this._onLayoutStart),t.off(w,this._onMigrate),t.off(S,this._onHide),r.on(A,this._onReleaseEnd),r.on(h,this._onLayoutStart),r.on(w,this._onMigrate),r.on(S,this._onHide),this._didMigrate=!0}},tT.prototype._onHide=function(e){e.indexOf(this._item)>-1&&this.reset()},tT.prototype.create=function(){if(this.isActive()){this._resetAfterLayout=!1;return}var e,t=this._item,r=t.getGrid(),n=r._settings,o=this._animation;this._left=t._left,this._top=t._top,e=eT(n.dragPlaceholder.createElement)?n.dragPlaceholder.createElement(t):document.createElement("div"),this._element=e,o._element=e,this._className=n.itemPlaceholderClass||"",this._className&&e$(e,this._className),tb(e,{position:"absolute",left:"0px",top:"0px",width:t._width+"px",height:t._height+"px"}),e.style[e2]=tC(t._left+t._marginLeft,t._top+t._marginTop),r.on(h,this._onLayoutStart),r.on(A,this._onReleaseEnd),r.on(w,this._onMigrate),r.on(S,this._onHide),eT(n.dragPlaceholder.onCreate)&&n.dragPlaceholder.onCreate(t,e),r.getElement().appendChild(e)},tT.prototype.reset=function(){if(this.isActive()){var e,t=this._element,r=this._item,n=r.getGrid(),o=n._settings,a=this._animation;this._resetAfterLayout=!1,ex(r._id),e=r._id,eh.remove(2,ep+e),a.stop(),a._element=null,n.off(A,this._onReleaseEnd),n.off(h,this._onLayoutStart),n.off(w,this._onMigrate),n.off(S,this._onHide),this._className&&(tp(t,this._className),this._className=""),t.parentNode.removeChild(t),this._element=null,eT(o.dragPlaceholder.onRemove)&&o.dragPlaceholder.onRemove(r,t)}},tT.prototype.isActive=function(){return!!this._element},tT.prototype.getElement=function(){return this._element},tT.prototype.updateDimensions=function(){if(this.isActive()){var e,t;e=this._item._id,t=this._updateDimensions,eh.add(2,ep+e,t)}},tT.prototype.destroy=function(){this.reset(),this._animation.destroy(),this._item=this._animation=null},tw.prototype.start=function(){if(!this._isDestroyed&&!this._isActive){var e=this._item,t=e.getGrid(),r=t._settings;this._isActive=!0,e$(e._element,r.itemReleasingClass),r.dragRelease.useDragContainer||this._placeToGrid(),t._emit("dragReleaseStart",e),t._nextLayoutData||e._layout.start(!1)}},tw.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n=this._item,o=n.getGrid();e||void 0!==t&&void 0!==r||(t=n._left,r=n._top);var a=this._placeToGrid(t,r);this._reset(a),e||o._emit(A,n)}},tw.prototype.isJustReleased=function(){return this._isActive&&!1===this._isPositioningStarted},tw.prototype.destroy=function(){this._isDestroyed||(this.stop(!0),this._item=null,this._isDestroyed=!0)},tw.prototype._placeToGrid=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=r.getGrid()._element,a=!1;if(n.parentNode!==o){if(void 0===e||void 0===t){var i=td(n);e=i.x-this._containerDiffX,t=i.y-this._containerDiffY}o.appendChild(n),r._setTranslate(e,t),a=!0}return this._containerDiffX=0,this._containerDiffY=0,a}},tw.prototype._reset=function(e){if(!this._isDestroyed){var t=this._item,r=t.getGrid()._settings.itemReleasingClass;this._isActive=!1,this._isPositioningStarted=!1,this._containerDiffX=0,this._containerDiffY=0,r&&(e&&t._element.clientWidth,tp(t._element,r))}},tI.prototype.start=function(e,t){if(!this._isDestroyed){var r,n,o,a=this._item,i=a._dragRelease,s=a.getGrid()._settings,l=this._isActive,c=i.isJustReleased(),u=c?s.dragRelease.duration:s.layoutDuration,d=c?s.dragRelease.easing:s.layoutEasing,p=!e&&!this._skipNextAnimation&&u>0;if(l&&(ev(a._id),a._emitter.burst(this._queue,!0,a)),c&&(i._isPositioningStarted=!0),eT(t)&&a._emitter.on(this._queue,t),this._skipNextAnimation=!1,!p){this._updateOffsets(),a._setTranslate(this._nextLeft,this._nextTop),this._animation.stop(),this._finish();return}this._animation.isAnimating()&&(this._animation._animation.onfinish=null),this._isActive=!0,this._animOptions.easing=d,this._animOptions.duration=u,this._isInterrupted=l,r=a._id,n=this._setupAnimation,o=this._startAnimation,eh.add(0,J+r,n),eh.add(2,ee+r,o)}},tI.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n=this._item;if(ev(n._id),this._animation.isAnimating()){if(void 0===t||void 0===r){var o=td(n._element);t=o.x,r=o.y}n._setTranslate(t,r),this._animation.stop()}tp(n._element,n.getGrid()._settings.itemPositioningClass),this._isActive=!1,e&&n._emitter.burst(this._queue,!0,n)}},tI.prototype.destroy=function(){if(!this._isDestroyed){var e=this._item._element.style;this.stop(!0,0,0),this._item._emitter.clear(this._queue),this._animation.destroy(),e[e2]="",e.left="",e.top="",this._item=null,this._currentStyles=null,this._targetStyles=null,this._animOptions=null,this._isDestroyed=!0}},tI.prototype._updateOffsets=function(){if(!this._isDestroyed){var e=this._item,t=e._migrate,r=e._dragRelease;this._offsetLeft=r._isActive?r._containerDiffX:t._isActive?t._containerDiffX:0,this._offsetTop=r._isActive?r._containerDiffY:t._isActive?t._containerDiffY:0,this._nextLeft=this._item._left+this._offsetLeft,this._nextTop=this._item._top+this._offsetTop}},tI.prototype._finish=function(){if(!this._isDestroyed){var e=this._item,t=e._migrate,r=e._dragRelease;e._tX=this._nextLeft,e._tY=this._nextTop,this._isActive&&(this._isActive=!1,tp(e._element,e.getGrid()._settings.itemPositioningClass)),r._isActive&&r.stop(),t._isActive&&t.stop(),e._emitter.burst(this._queue,!1,e)}},tI.prototype._setupAnimation=function(){var e=this._item;if(void 0===e._tX||void 0===e._tY){var t=td(e._element);e._tX=t.x,e._tY=t.y}},tI.prototype._startAnimation=function(){var e=this._item,t=e.getGrid()._settings,r=this._animOptions.duration<=0;this._updateOffsets();var n=Math.abs(e._left-(e._tX-this._offsetLeft)),o=Math.abs(e._top-(e._tY-this._offsetTop));if(r||n<2&&o<2){(n||o||this._isInterrupted)&&e._setTranslate(this._nextLeft,this._nextTop),this._animation.stop(),this._finish();return}this._isInterrupted||e$(e._element,t.itemPositioningClass),this._currentStyles[e2]=tC(e._tX,e._tY),this._targetStyles[e2]=tC(this._nextLeft,this._nextTop),e._tX=e._tY=void 0,this._animation.start(this._currentStyles,this._targetStyles,this._animOptions)},tR.prototype.start=function(e,t,r){if(!this._isDestroyed){var n,o,a,i,s,l,c,u,d,p,f=this._item,m=f._element,_=f.isActive(),h=f.isVisible(),g=f.getGrid(),b=g._settings,y=e._settings,S=e._element,E=e._items,x=g._items.indexOf(f),C=r||document.body;if("number"==typeof t)n=eJ(E,t,1);else{if(!(o=e.getItem(t)))return;n=E.indexOf(o)}(f.isPositioning()||this._isActive||f.isReleasing())&&(c=(l=td(m)).x,u=l.y),f.isPositioning()&&f._layout.stop(!0,c,u),this._isActive&&(c-=this._containerDiffX,u-=this._containerDiffY,this.stop(!0,c,u)),f.isReleasing()&&(c-=f._dragRelease._containerDiffX,u-=f._dragRelease._containerDiffY,f._dragRelease.stop(!0,c,u)),f._visibility.stop(!0),f._drag&&f._drag.destroy(),g._hasListeners(w)&&g._emit(w,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),e._hasListeners(R)&&e._emit(R,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),b.itemClass!==y.itemClass&&(tp(m,b.itemClass),e$(m,y.itemClass)),(d=h?b.itemVisibleClass:b.itemHiddenClass)!==(p=h?y.itemVisibleClass:y.itemHiddenClass)&&(tp(m,d),e$(m,p)),g._items.splice(x,1),eZ(E,f,n),f._gridId=e._id,_?C!==(a=m.parentNode)&&(C.appendChild(m),i=tn(C,a,!0),l||(c=(l=td(m)).x,u=l.y),f._setTranslate(c+i.left,u+i.top)):S.appendChild(m),f._visibility.setStyles(h?y.visibleStyles:y.hiddenStyles),_&&(s=tn(C,S,!0)),f._refreshDimensions(),f._sortData=null,f._drag=y.dragEnabled?new t_(f):null,_?(this._isActive=!0,this._container=C,this._containerDiffX=s.left,this._containerDiffY=s.top):(this._isActive=!1,this._container=null,this._containerDiffX=0,this._containerDiffY=0),g._hasListeners(T)&&g._emit(T,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),e._hasListeners(I)&&e._emit(I,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n})}},tR.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n,o=this._item,a=o._element,i=o.getGrid()._element;this._container!==i&&((void 0===t||void 0===r)&&(e?(t=(n=td(a)).x-this._containerDiffX,r=n.y-this._containerDiffY):(t=o._left,r=o._top)),i.appendChild(a),o._setTranslate(t,r)),this._isActive=!1,this._container=null,this._containerDiffX=0,this._containerDiffY=0}},tR.prototype.destroy=function(){this._isDestroyed||(this.stop(!0),this._item=null,this._isDestroyed=!0)},tA.prototype.show=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=eT(t)?t:null,a=r.getGrid()._settings;if(!this._isShowing&&!this._isHidden){o&&o(!1,r);return}if(this._isShowing&&!e){o&&r._emitter.on(this._queue,o);return}this._isShowing||(r._emitter.burst(this._queue,!0,r),tp(n,a.itemHiddenClass),e$(n,a.itemVisibleClass),this._isHiding||(n.style.display="")),o&&r._emitter.on(this._queue,o),this._isShowing=!0,this._isHiding=this._isHidden=!1,this._startAnimation(!0,e,this._finishShow)}},tA.prototype.hide=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=eT(t)?t:null,a=r.getGrid()._settings;if(!this._isHiding&&this._isHidden){o&&o(!1,r);return}if(this._isHiding&&!e){o&&r._emitter.on(this._queue,o);return}this._isHiding||(r._emitter.burst(this._queue,!0,r),e$(n,a.itemHiddenClass),tp(n,a.itemVisibleClass)),o&&r._emitter.on(this._queue,o),this._isHidden=this._isHiding=!0,this._isShowing=!1,this._startAnimation(!1,e,this._finishHide)}},tA.prototype.stop=function(e){if(!this._isDestroyed&&(this._isHiding||this._isShowing)){var t=this._item;eg(t._id),this._animation.stop(),e&&t._emitter.burst(this._queue,!0,t)}},tA.prototype.setStyles=function(e){var t=this._childElement,r=this._currentStyleProps;for(var n in this._removeCurrentStyles(),e)r.push(n),t.style[n]=e[n]},tA.prototype.destroy=function(){if(!this._isDestroyed){var e=this._item,t=e._element,r=e.getGrid()._settings;this.stop(!0),e._emitter.clear(this._queue),this._animation.destroy(),this._removeCurrentStyles(),tp(t,r.itemVisibleClass),tp(t,r.itemHiddenClass),t.style.display="",this._isHiding=this._isShowing=!1,this._isDestroyed=this._isHidden=!0}},tA.prototype._startAnimation=function(e,t,r){if(!this._isDestroyed){var n,o,a,i,s=this._item,l=this._animation,c=this._childElement,u=s.getGrid()._settings,d=e?u.visibleStyles:u.hiddenStyles,p=e?u.showDuration:u.hideDuration,f=e?u.showEasing:u.hideEasing,m=t||p<=0;if(!d){r&&r();return}if(eg(s._id),m){tb(c,d),l.stop(),r&&r();return}l.isAnimating()&&(l._animation.onfinish=null),n=s._id,o=function(){i=th(c,d)},a=function(){l.start(i,d,{duration:p,easing:f,onFinish:r})},eh.add(0,et+n,o),eh.add(2,er+n,a)}},tA.prototype._finishShow=function(){this._isHidden||(this._isShowing=!1,this._item._emitter.burst(this._queue,!1,this._item))},tA.prototype._finishHide=function(){if(this._isHidden){var e=this._item;this._isHiding=!1,e._layout.stop(!0,0,0),e._element.style.display="none",e._emitter.burst(this._queue,!1,e)}},tA.prototype._removeCurrentStyles=function(){for(var e=this._childElement,t=this._currentStyleProps,r=0;re.width&&(e.width=l.left+l.width):l.top+l.height>e.height&&(e.height=l.top+l.height),u[++this.slotIndex]=l.left,u[++this.slotIndex]=l.top,(f||m)&&this.slotSizes.push(l.width,l.height);if(f)for(n=0;ne.height+.001&&(u.left>.5&&p.push(this.addRect(0,e.height,u.left,1/0)),u.left+u.widthe.width+.001&&(u.top>.5&&p.push(this.addRect(e.width,0,1/0,u.top)),u.top+u.height1&&this.purgeRects(p).sort(o?this.sortRectsLeftTop:this.sortRectsTopLeft),this.currentRects=p,this.nextRects=d,u},r.prototype.addRect=function(e,t,r,n){var o=++this.rectId;return this.rectStore[o]=e||0,this.rectStore[++this.rectId]=t||0,this.rectStore[++this.rectId]=r||0,this.rectStore[++this.rectId]=n||0,o},r.prototype.getRect=function(e,t){return t||(t=this.rectTarget),t.left=this.rectStore[e]||0,t.top=this.rectStore[++e]||0,t.width=this.rectStore[++e]||0,t.height=this.rectStore[++e]||0,t},r.prototype.splitRect=(n=[],o=0,a=0,function(e,t){return(n.length=0,e.left+e.width<=t.left+.001||t.left+t.width<=e.left+.001||e.top+e.height<=t.top+.001||t.top+t.height<=e.top+.001)?n.push(this.addRect(e.left,e.top,e.width,e.height)):((o=t.left-e.left)>=.5&&n.push(this.addRect(e.left,e.top,o,e.height)),(o=e.left+e.width-(t.left+t.width))>=.5&&n.push(this.addRect(t.left+t.width,e.top,o,e.height)),(a=t.top-e.top)>=.5&&n.push(this.addRect(e.left,e.top,e.width,a)),(a=e.top+e.height-(t.top+t.height))>=.5&&n.push(this.addRect(e.left,t.top+t.height,e.width,a))),n}),r.prototype.isRectAWithinRectB=function(e,t){return e.left+.001>=t.left&&e.top+.001>=t.top&&e.left+e.width-.001<=t.left+t.width&&e.top+e.height-.001<=t.top+t.height},r.prototype.purgeRects=(i={},s={},function(e){for(var t,r=e.length;r--;)if(t=e.length,e[r]){for(this.getRect(e[r],i);t--;)if(e[t]&&r!==t&&(this.getRect(e[t],s),this.isRectAWithinRectB(i,s))){e[r]=0;break}}return e}),r.prototype.sortRectsTopLeft=(l={},c={},function(e,t){return this.getRect(e,l),this.getRect(t,c),l.topc.top&&l.top-.001>c.top?1:l.leftc.left&&l.left-.001>c.left?1:0}),r.prototype.sortRectsLeftTop=(u={},d={},function(e,t){return this.getRect(e,u),this.getRect(t,d),u.leftd.left&&u.left-.001d.top&&u.top-.001>d.top?1:0}),e){var n,o,a,i,s,l,c,u,d,p=new r;self.onmessage=function(e){var t=new Float32Array(e.data),r=t.subarray(4,t.length),n=new Float32Array(r.length),o=t[3],a={items:r,slots:n,width:t[1],height:t[2]};p.computeLayout(a,o),t[1]=a.width,t[2]=a.height,t.set(a.slots,4),postMessage(t.buffer,[t.buffer])}}return r}tk.prototype.getGrid=function(){return p[this._gridId]},tk.prototype.getElement=function(){return this._element},tk.prototype.getWidth=function(){return this._width},tk.prototype.getHeight=function(){return this._height},tk.prototype.getMargin=function(){return{left:this._marginLeft,right:this._marginRight,top:this._marginTop,bottom:this._marginBottom}},tk.prototype.getPosition=function(){return{left:this._left,top:this._top}},tk.prototype.isActive=function(){return this._isActive},tk.prototype.isVisible=function(){return!!this._visibility&&!this._visibility._isHidden},tk.prototype.isShowing=function(){return!!(this._visibility&&this._visibility._isShowing)},tk.prototype.isHiding=function(){return!!(this._visibility&&this._visibility._isHiding)},tk.prototype.isPositioning=function(){return!!(this._layout&&this._layout._isActive)},tk.prototype.isDragging=function(){return!!(this._drag&&this._drag._isActive)},tk.prototype.isReleasing=function(){return!!(this._dragRelease&&this._dragRelease._isActive)},tk.prototype.isDestroyed=function(){return this._isDestroyed},tk.prototype._refreshDimensions=function(e){if(!this._isDestroyed&&(!0===e||!this._visibility._isHidden)){var t=this._element,r=this._dragPlaceholder,n=t.getBoundingClientRect();this._width=n.width,this._height=n.height,this._marginLeft=Math.max(0,eR(t,"margin-left")),this._marginRight=Math.max(0,eR(t,"margin-right")),this._marginTop=Math.max(0,eR(t,"margin-top")),this._marginBottom=Math.max(0,eR(t,"margin-bottom")),r&&r.updateDimensions()}},tk.prototype._refreshSortData=function(){if(!this._isDestroyed){var e,t=this._sortData={},r=this.getGrid()._settings.sortData;for(e in r)t[e]=r[e](this,this._element)}},tk.prototype._addToLayout=function(e,t){!0!==this._isActive&&(this._isActive=!0,this._left=e||0,this._top=t||0)},tk.prototype._removeFromLayout=function(){!1!==this._isActive&&(this._isActive=!1,this._left=0,this._top=0)},tk.prototype._canSkipLayout=function(e,t){return this._left===e&&this._top===t&&!this._migrate._isActive&&!this._layout._skipNextAnimation&&!this._dragRelease.isJustReleased()},tk.prototype._setTranslate=function(e,t){return(this._tX!==e||this._tY!==t)&&(this._tX=e,this._tY=t,this._element.style[e2]=tC(e,t),!0)},tk.prototype._destroy=function(e){if(!this._isDestroyed){var t=this._element,r=this.getGrid()._settings;this._dragPlaceholder.destroy(),this._dragRelease.destroy(),this._migrate.destroy(),this._layout.destroy(),this._visibility.destroy(),this._drag&&this._drag.destroy(),this._emitter.destroy(),tp(t,r.itemClass),e&&t.parentNode.removeChild(t),f&&f.delete(t),this._isActive=!1,this._isDestroyed=!0}};var tD=tO(),tj=null,tP=[];function tM(e,t){if(this._options=0,this._processor=null,this._layoutQueue=[],this._layouts={},this._layoutCallbacks={},this._layoutWorkers={},this._layoutWorkerData={},this._workers=[],this._onWorkerMessage=this._onWorkerMessage.bind(this),this.setOptions(t),(e="number"==typeof e?Math.max(0,e):0)&&window.Worker&&window.URL&&window.Blob)try{this._workers=function(e,t){var r=[];if(e>0){tj||(tj=URL.createObjectURL(new Blob(["("+tO.toString()+")(true)"],{type:"application/javascript"})));for(var n,o=0;o-1&&this._layoutQueue.splice(t,1)}},tM.prototype.destroy=function(){for(var e in this._layoutWorkers)this._workers.push(this._layoutWorkers[e]);(function(e){for(var t,r,n=0;n-1&&tP.splice(r,1);tj&&!tP.length&&(URL.revokeObjectURL(tj),tj=null)})(this._workers),this._workers.length=0,this._layoutQueue.length=0,this._layouts={},this._layoutCallbacks={},this._layoutWorkers={},this._layoutWorkerData={}};var tL=0;function tV(e){var t=Object.prototype.toString.call(e);return"[object HTMLCollection]"===t||"[object NodeList]"===t}var tF=Object.prototype.toString;function tB(e){return(void 0===e?"undefined":(0,d._)(e))==="object"&&"[object Object]"===tF.call(e)}function tU(){}var tG="number",tq="string",tY="instant",tH=0;function tz(e,t){if((void 0===e?"undefined":(0,d._)(e))===tq&&(e=document.querySelector(e)),!(e.getRootNode?e.getRootNode({composed:!0})===document:document.body.contains(e))||e===document.documentElement)throw Error("Container element must be an existing DOM element.");var r,n,o=(n=tW({},r=tz.defaultOptions),t&&(n=tW(n,t)),t&&t.visibleStyles?n.visibleStyles=t.visibleStyles:r&&r.visibleStyles&&(n.visibleStyles=r.visibleStyles),t&&t.hiddenStyles?n.hiddenStyles=t.hiddenStyles:r&&r.hiddenStyles&&(n.hiddenStyles=r.hiddenStyles),n);o.visibleStyles=tK(o.visibleStyles),o.hiddenStyles=tK(o.hiddenStyles),eT(o.dragSort)||(o.dragSort=!!o.dragSort),this._id=++tN,this._element=e,this._settings=o,this._isDestroyed=!1,this._items=[],this._layout={id:0,items:[],slots:[]},this._isLayoutFinished=!0,this._nextLayoutData=null,this._emitter=new D,this._onLayoutDataReceived=this._onLayoutDataReceived.bind(this),p[this._id]=this,e$(e,o.containerClass),function(e,t){if((void 0===t?"undefined":(0,d._)(t))!==tG&&(t=!0===t?0:-1),t>=0){var r,n,o,a,i,s,l;e._resizeHandler=(r=function(){e.refreshItems().layout()},n=t,o=++tL,a=0,i=0,s=!1,l=function(e){if(!s){if(i&&(a-=e-i),i=e,a>0){var t;t=l,eh.add(0,e_+o,t)}else a=i=0,r()}},function(e){if(!s){if(n<=0){!0!==e&&r();return}if(!0===e){s=!0,a=i=0,l=void 0,eh.remove(0,e_+o);return}a<=0?(a=n,l(0)):a=n}}),window.addEventListener("resize",e._resizeHandler)}}(this,o.layoutOnResize),this.add(function(e,t){if("*"===t)return e.children;if((void 0===t?"undefined":(0,d._)(t))===tq){for(var r=[],n=e.children,o=0;o-1?e:this._items.length+e]||null;if(e instanceof tk)return e._gridId===this._id?e:null;if(f){var t=f.get(e);return t&&t._gridId===this._id?t:null}for(var r=0;rl?1:0:lc?1:0)return u;return u||(n||(n=tQ(r)),u=t?t$(n,a,o):t$(n,o,a)),u}function a(o,a){var i=t?-e(o,a):e(o,a);return i||(n||(n=tQ(r)),i=t?t$(n,a,o):t$(n,o,a)),i}return function(i,s){if(this._isDestroyed||this._items.length<2)return this;var l=this._items,c=s||{},u=c.layout?c.layout:void 0===c.layout;if(t=!!c.descending,r=l.slice(0),n=null,eT(i))e=i,l.sort(a);else if((void 0===i?"undefined":(0,d._)(i))===tq)e=i.trim().split(" ").filter(function(e){return e}).map(function(e){return e.split(":")}),l.sort(o);else if(Array.isArray(i))l.length=0,l.push.apply(l,i);else throw e=t=r=n=null,Error("Invalid comparer argument provided.");return this._hasListeners(x)&&this._emit(x,l.slice(0),r),u&&this.layout(u===tY,eT(u)?u:void 0),e=t=r=n=null,this}}(),tz.prototype.move=function(e,t,r){if(this._isDestroyed||this._items.length<2)return this;var n,o,a=this._items,i=r||{},s=i.layout?i.layout:void 0===i.layout,l=i.action===m,c=this.getItem(e),u=this.getItem(t);return c&&u&&c!==u&&(n=a.indexOf(c),o=a.indexOf(u),l?e1(a,n,o):e0(a,n,o),this._hasListeners(C)&&this._emit(C,{item:c,fromIndex:n,toIndex:o,action:l?m:_}),s&&this.layout(s===tY,eT(s)?s:void 0)),this},tz.prototype.send=function(e,t,r,n){if(this._isDestroyed||t._isDestroyed||this===t||!(e=this.getItem(e)))return this;var o=n||{},a=o.appendTo||document.body,i=o.layoutSender?o.layoutSender:void 0===o.layoutSender,s=o.layoutReceiver?o.layoutReceiver:void 0===o.layoutReceiver;return e._migrate.start(t,r,a),e._migrate._isActive&&e._isActive&&(i&&this.layout(i===tY,eT(i)?i:void 0),s&&t.layout(s===tY,eT(s)?s:void 0)),this},tz.prototype.destroy=function(e){if(this._isDestroyed)return this;var t,r,n=this._element,o=this._items.slice(0),a=this._layout&&this._layout.styles||{};for(this._resizeHandler&&(this._resizeHandler(!0),window.removeEventListener("resize",this._resizeHandler),this._resizeHandler=null),t=0;t0},tz.prototype._updateBoundingRect=function(){var e=this._element.getBoundingClientRect();this._width=e.width,this._height=e.height,this._left=e.left,this._top=e.top,this._right=e.right,this._bottom=e.bottom},tz.prototype._updateBorders=function(e,t,r,n){var o=this._element;e&&(this._borderLeft=eR(o,"border-left-width")),t&&(this._borderRight=eR(o,"border-right-width")),r&&(this._borderTop=eR(o,"border-top-width")),n&&(this._borderBottom=eR(o,"border-bottom-width"))},tz.prototype._refreshDimensions=function(){this._updateBoundingRect(),this._updateBorders(1,1,1,1),this._boxSizing=eI(this._element,"box-sizing")},tz.prototype._onLayoutDataReceived=(u=[],function(e){if(!this._isDestroyed&&this._nextLayoutData&&this._nextLayoutData.id===e.id){var t,r,n,o,a=this,i=this._nextLayoutData.instant,s=this._nextLayoutData.onFinish,l=e.items.length,c=l;for(this._nextLayoutData=null,!this._isLayoutFinished&&this._hasListeners(b)&&this._emit(b,this._layout.items.slice(0)),this._layout=e,u.length=0,o=0;o0)){var t=a._layout.id!==e.id,r=eT(i)?i:s;t||(a._isLayoutFinished=!0),eT(r)&&r(e.items.slice(0),t),!t&&a._hasListeners(g)&&a._emit(g,e.items.slice(0))}};if(!u.length)return d(),this;for(o=0,this._isLayoutFinished=!1;o>>","background-color: #004400; font-weight: bold;"].concat((0,c._)(r)))}var g="Lobby",b=/*#__PURE__*/function(){function e(t,r,n){var o=this;(0,i._)(this,e),this.sync=!1,this.role="student",this.connected=!1,this.callback={},this.callbackUpdate={};var a=new p.Doc;this.y={doc:a,setup:a.getMap("setup"),users:a.getMap("users"),rooms:a.getMap("rooms"),chat:a.getArray("chat")},this.lab=t,this.peerID=(0,d.getPeerID)(),r&&(this.role="station",this.peerID="Station "+r),this.provider=new f.TrysteroProvider(this.lab.id+(this.lab.hash||""),this.y.doc,{appId:"edry-Lite",password:n,joinRoom:m.joinRoom,peerOpts:JSON.parse('{"rtcConfig":{"config":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"urls":"turn:turn.goldi-labs.de:3478","username":"goldi","credential":"goldi"}]}}}')}),this.initSetup(),this.provider.on("status",function(e){h("status",e)}),this.provider.on("synced",function(e){var t;console.log("synced---------------------------------",e),o.connected=!0,null===(t=o.provider.room)||void 0===t||t.onPeerLeave(function(e){o.removePeers([e])}),o.initPubSub(),o.rx(function(e,t){o.update("message",e)}),o.y.setup.observe(function(e){var t=o.y.setup.get("timestamp");o.lab.timestamp!==t&&o.initSetup()}),h("synced",e),o.sync=!0,o.update("connected")})}return(0,s._)(e,[{key:"user",value:function(){return this.y.users.get(this.peerID)}},{key:"isStation",value:function(){return"station"===this.role}},{key:"removePeers",value:function(e){var t=this,r=this.y.users.toJSON();this.y.doc.transact(function(){for(var n in r)if(e.includes(r[n].selfId)){t.y.users.delete(n),"station"===r[n].role&&t.y.rooms.delete(n);break}})}},{key:"initPubSub",value:function(){var e=this;if(h("initializing pubsub ..."),this.provider.room){var t=(0,l._)(this.provider.room.trysteroRoom.makeAction("p2p"),2),r=t[0],n=t[1];this.tx=r,this.rx=n,h("... done")}else h("... failed, retrying in 1s"),setTimeout(function(){e.initPubSub()},1e3)}},{key:"initSetup",value:function(){var e=this,t=this.y.setup.get("timestamp")||0,r=this.y.setup.get("config");this.lab.timestamp0&&(h("received outdated lab configuration, writing changes back"),this.y.doc.transact(function(){e.y.setup.set("config",e.lab.data),e.y.setup.set("timestamp",e.lab.timestamp)}))}},{key:"initUser",value:function(e){var t=this,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];this.role=e,n&&(clearInterval(n),n=null);var o=new p.Map;o.set("displayName",(0,d.getShortPeerID)(this.peerID)),o.set("room",this.isStation()?this.peerID:g),o.set("role",this.role),o.set("dateJoined",Date.now()),o.set("timestamp",Date.now()),o.set("selfId",_.selfId),o.set("handRaised",!1),o.set("connections",[{id:"",target:{}}]),this.y.users.set(this.peerID,o),n=setInterval(function(){if(t.y.users.has(t.peerID)){var e=Date.now();t.user().set("timestamp",e);var r=t.y.users.toJSON(),n=[];for(var o in r)r[o].timestamp0&&t.removePeers(n)}else h("user not found",t.peerID)},1e3),r&&this.y.users.observeDeep(function(e){e.every(function(e){return e.changes.keys&&1===e.changes.keys.size&&e.changes.keys.has("timestamp")})||t.update("room")})}},{key:"initRooms",value:function(){var e=this;this.y.doc.transact(function(){if(0===e.y.rooms.size){h("initializing rooms"),e.addRoom(g);var t=e.lab.data.meta.defaultNumberOfRooms;if(t)for(var r=1;r<=t;r++)e.addRoom("Room "+r)}e.isStation()&&e.addRoom(e.peerID)}),this.y.rooms.observeDeep(function(t){t.forEach(function(t){t.target===e.y.rooms&&Array.from(t.changes.keys.keys()).forEach(function(r){var n=t.changes.keys.get(r);(null==n?void 0:n.action)==="delete"&&e.user()&&e.user().get("room")===r&&(h("current room was deleted, moving to lobby"),e.user().set("room",g))})}),e.update("room")})}},{key:"initChat",value:function(){var e=this;this.y.chat.observe(function(t){e.update("chat")})}},{key:"newSetup",value:function(e){if(this.lab.hash){var t=this;(0,d.hashJsonObject)(e.data).then(function(r){r===t.lab.hash&&t.lab.timestamp2&&void 0!==arguments[2]?arguments[2]:{},l=s.appId,c=void 0===l?"yjs-trystero":l,u=s.password,p=void 0===u?"default":u,x=s.awareness,C=void 0===x?new _.awarenessProtocol.Awareness(n):x,T=s.maxConns,w=void 0===T?20+d.floor(15*m.rand()):T,I=s.filterBcConns,R=s.peerOpts,A=s.joinRoom,N=void 0===A?E.joinRoom:A;return(0,a._)(this,r),(i=t.call(this)).appId=c,e="".concat(c,"-").concat(e),i.roomName=e,i.password=p,i.key=p?h.deriveKey(p,e):f.resolve(null),i.doc=n,i.awareness=C,i.filterBcConns=void 0===I||I,i.shouldConnect=!1,i.maxConns=w,i.peerOpts=void 0===R?{}:R,i.joinRoom=N,i.room=null,i.key.then(function(t){if((0,y.rooms).has(e))throw S.create('A Yjs Doc connected to room "'.concat(e,'" already exists!'));i.room=new g.Room(n,(0,o._)(i),e,t),(0,y.rooms).set(e,i.room),i.shouldConnect?i.room.connect():i.room.disconnect(),(0,b.emitStatus)((0,o._)(i))}),i.connect(),i.destroy=i.destroy.bind((0,o._)(i)),n.on("destroy",i.destroy),i}return(0,i._)(r,[{key:"connected",get:function(){return null!==this.room&&this.shouldConnect}},{key:"connect",value:function(){this.shouldConnect=!0,this.room&&(this.room.connect(),(0,b.emitStatus)(this))}},{key:"disconnect",value:function(){this.shouldConnect=!1,this.room&&(this.room.disconnect(),(0,b.emitStatus)(this))}},{key:"destroy",value:function(){var e=this;this.doc.off("destroy",this.destroy),this.key.then(function(){e.room.destroy(),(0,y.rooms).delete(e.roomName)}),(0,s._)((0,l._)(r.prototype),"destroy",this).call(this)}}]),r}(p.ObservableV2)},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_get":"2invZ","@swc/helpers/_/_get_prototype_of":"7kA23","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_create_super":"4DJgF","lib0/math":"gYj1k","lib0/observable":"lCBQS","lib0/promise":"8ykCm","lib0/random":"g7cI4","../protocols":"7NXmU","./cryptoutils":"2VKXm","./Room":"2AWSn","./messagesSend":"5U62U","./connectionMaps":"8Onsd","lib0/error":"5ibyh",trystero:"esl3k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gYj1k:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"floor",function(){return o}),n.export(r,"ceil",function(){return a}),n.export(r,"abs",function(){return i}),n.export(r,"imul",function(){return s}),n.export(r,"round",function(){return l}),n.export(r,"log10",function(){return c}),n.export(r,"log2",function(){return u}),n.export(r,"log",function(){return d}),n.export(r,"sqrt",function(){return p}),n.export(r,"add",function(){return f}),n.export(r,"min",function(){return m}),n.export(r,"max",function(){return _}),n.export(r,"isNaN",function(){return h}),n.export(r,"pow",function(){return g}),n.export(r,"exp10",function(){return b}),n.export(r,"sign",function(){return y}),n.export(r,"isNegativeZero",function(){return S});var o=Math.floor,a=Math.ceil,i=Math.abs,s=Math.imul,l=Math.round,c=Math.log10,u=Math.log2,d=Math.log,p=Math.sqrt,f=function(e,t){return e+t},m=function(e,t){return et?e:t},h=Number.isNaN,g=Math.pow,b=function(e){return Math.pow(10,e)},y=Math.sign,S=function(e){return 0!==e?e<0:1/e<0}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lCBQS:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"ObservableV2",function(){return u}),n.export(r,"Observable",function(){return d});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("./map.js"),l=e("./set.js"),c=e("./array.js"),u=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this._observers=s.create()}return(0,a._)(e,[{key:"on",value:function(e,t){return s.setIfUndefined(this._observers,e,l.create).add(t),t}},{key:"once",value:function(e,t){var r=this,n=function(){for(var o=arguments.length,a=Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:10;return l(function(n,o){var a=s.getUnixTime(),i=e>0,l=setInterval(function(){t()?(clearInterval(l),n()):i&&s.getUnixTime()-a>e&&(clearInterval(l),o(Error("Timeout")))},r)})},_=(n=(0,a._)(function(e){var t,r,n,o,a=arguments;return(0,i._)(this,function(i){switch(i.label){case 0:t=a.length>1&&void 0!==a[1]?a[1]:0,r=a.length>2&&void 0!==a[2]?a[2]:10,n=s.getUnixTime(),o=t<=0,i.label=1;case 1:if(!(o||s.getUnixTime()-n<=t))return[3,4];return[4,e()];case 2:if(i.sent())return[2];return[4,h(r)];case 3:return i.sent(),[3,1];case 4:throw Error("Timeout")}})}),function(e){return n.apply(this,arguments)}),h=function(e){return l(function(t,r){return setTimeout(t,e)})},g=function(e){return e instanceof Promise||e&&e.then&&e.catch&&e.finally}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_ts_generator":"6UgKg","./time.js":"b9GSJ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],b9GSJ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"getDate",function(){return i}),n.export(r,"getUnixTime",function(){return s}),n.export(r,"humanizeDuration",function(){return l});var o=e("./metric.js"),a=e("./math.js"),i=function(){return new Date},s=Date.now,l=function(e){if(e<6e4){var t=o.prefix(e,-1);return a.round(100*t.n)/100+t.prefix+"s"}var r=(e=a.floor(e/1e3))%60,n=a.floor(e/60)%60,i=a.floor(e/3600)%24,s=a.floor(e/86400);return s>0?s+"d"+(i>0||n>30?" "+(n>30?i+1:i)+"h":""):i>0?i+"h"+(n>0||r>30?" "+(r>30?n+1:n)+"min":""):n+"min"+(r>0?" "+r+"s":"")}},{"./metric.js":"9EYZ6","./math.js":"gYj1k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9EYZ6":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"yotta",function(){return a}),n.export(r,"zetta",function(){return i}),n.export(r,"exa",function(){return s}),n.export(r,"peta",function(){return l}),n.export(r,"tera",function(){return c}),n.export(r,"giga",function(){return u}),n.export(r,"mega",function(){return d}),n.export(r,"kilo",function(){return p}),n.export(r,"hecto",function(){return f}),n.export(r,"deca",function(){return m}),n.export(r,"deci",function(){return _}),n.export(r,"centi",function(){return h}),n.export(r,"milli",function(){return g}),n.export(r,"micro",function(){return b}),n.export(r,"nano",function(){return y}),n.export(r,"pico",function(){return S}),n.export(r,"femto",function(){return E}),n.export(r,"atto",function(){return x}),n.export(r,"zepto",function(){return C}),n.export(r,"yocto",function(){return T}),n.export(r,"prefix",function(){return R});var o=e("./math.js"),a=1e24,i=1e21,s=1e18,l=1e15,c=1e12,u=1e9,d=1e6,p=1e3,f=100,m=10,_=.1,h=.01,g=.001,b=1e-6,y=1e-9,S=1e-12,E=1e-15,x=1e-18,C=1e-21,T=1e-24,w=["","k","M","G","T","P","E","Z","Y"],I=["","m","μ","n","p","f","a","z","y"],R=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0===e?0:o.log10(e),n=0;r<3*n&&t>-8;)t--,n--;for(;r>=3+3*n&&t<8;)t++,n++;var a=t<0?I[-t]:w[t];return{n:o.round((n>0?e/o.exp10(3*n):e*o.exp10(-3*n))*1e12)/1e12,prefix:a}}},{"./math.js":"gYj1k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],g7cI4:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"rand",function(){return s}),n.export(r,"uint32",function(){return l}),n.export(r,"uint53",function(){return c}),n.export(r,"oneOf",function(){return u}),n.export(r,"uuidv4",function(){return d});var o=e("./math.js"),a=e("./binary.js"),i=e("lib0/webcrypto"),s=Math.random,l=function(){return(0,i.getRandomValues)(new Uint32Array(1))[0]},c=function(){var e=(0,i.getRandomValues)(new Uint32Array(8));return(e[0]&a.BITS21)*(a.BITS32+1)+(e[1]>>>0)},u=function(e){return e[o.floor(s()*e.length)]},d=function(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,function(e){return(e^l()&15>>e/4).toString(16)})}},{"./math.js":"gYj1k","./binary.js":"hRqNT","lib0/webcrypto":"kmyUK","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hRqNT:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"BIT1",function(){return o}),n.export(r,"BIT2",function(){return a}),n.export(r,"BIT3",function(){return i}),n.export(r,"BIT4",function(){return s}),n.export(r,"BIT5",function(){return l}),n.export(r,"BIT6",function(){return c}),n.export(r,"BIT7",function(){return u}),n.export(r,"BIT8",function(){return d}),n.export(r,"BIT9",function(){return p}),n.export(r,"BIT10",function(){return f}),n.export(r,"BIT11",function(){return m}),n.export(r,"BIT12",function(){return _}),n.export(r,"BIT13",function(){return h}),n.export(r,"BIT14",function(){return g}),n.export(r,"BIT15",function(){return b}),n.export(r,"BIT16",function(){return y}),n.export(r,"BIT17",function(){return S}),n.export(r,"BIT18",function(){return E}),n.export(r,"BIT19",function(){return x}),n.export(r,"BIT20",function(){return C}),n.export(r,"BIT21",function(){return T}),n.export(r,"BIT22",function(){return w}),n.export(r,"BIT23",function(){return I}),n.export(r,"BIT24",function(){return R}),n.export(r,"BIT25",function(){return A}),n.export(r,"BIT26",function(){return N}),n.export(r,"BIT27",function(){return k}),n.export(r,"BIT28",function(){return O}),n.export(r,"BIT29",function(){return D}),n.export(r,"BIT30",function(){return j}),n.export(r,"BIT31",function(){return P}),n.export(r,"BIT32",function(){return M}),n.export(r,"BITS0",function(){return L}),n.export(r,"BITS1",function(){return V}),n.export(r,"BITS2",function(){return F}),n.export(r,"BITS3",function(){return B}),n.export(r,"BITS4",function(){return U}),n.export(r,"BITS5",function(){return G}),n.export(r,"BITS6",function(){return q}),n.export(r,"BITS7",function(){return Y}),n.export(r,"BITS8",function(){return H}),n.export(r,"BITS9",function(){return z}),n.export(r,"BITS10",function(){return W}),n.export(r,"BITS11",function(){return K}),n.export(r,"BITS12",function(){return Q}),n.export(r,"BITS13",function(){return $}),n.export(r,"BITS14",function(){return X}),n.export(r,"BITS15",function(){return Z}),n.export(r,"BITS16",function(){return J}),n.export(r,"BITS17",function(){return ee}),n.export(r,"BITS18",function(){return et}),n.export(r,"BITS19",function(){return er}),n.export(r,"BITS20",function(){return en}),n.export(r,"BITS21",function(){return eo}),n.export(r,"BITS22",function(){return ea}),n.export(r,"BITS23",function(){return ei}),n.export(r,"BITS24",function(){return es}),n.export(r,"BITS25",function(){return el}),n.export(r,"BITS26",function(){return ec}),n.export(r,"BITS27",function(){return eu}),n.export(r,"BITS28",function(){return ed}),n.export(r,"BITS29",function(){return ep}),n.export(r,"BITS30",function(){return ef}),n.export(r,"BITS31",function(){return em}),n.export(r,"BITS32",function(){return e_});var o=1,a=2,i=4,s=8,l=16,c=32,u=64,d=128,p=256,f=512,m=1024,_=2048,h=4096,g=8192,b=16384,y=32768,S=65536,E=131072,x=262144,C=524288,T=1048576,w=2097152,I=4194304,R=8388608,A=0x1000000,N=0x2000000,k=0x4000000,O=0x8000000,D=0x10000000,j=0x20000000,P=0x40000000,M=-0x80000000,L=0,V=1,F=3,B=7,U=15,G=31,q=63,Y=127,H=255,z=511,W=1023,K=2047,Q=4095,$=8191,X=16383,Z=32767,J=65535,ee=131071,et=262143,er=524287,en=1048575,eo=2097151,ea=4194303,ei=8388607,es=0xffffff,el=0x1ffffff,ec=0x3ffffff,eu=0x7ffffff,ed=0xfffffff,ep=0x1fffffff,ef=0x3fffffff,em=0x7fffffff,e_=0xffffffff},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kmyUK:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"subtle",function(){return o}),n.export(r,"getRandomValues",function(){return a});var o=crypto.subtle,a=crypto.getRandomValues.bind(crypto)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7NXmU":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"authProtocol",function(){return o}),n.export(r,"awarenessProtocol",function(){return a}),n.export(r,"syncProtocol",function(){return i});var o=e("./auth"),a=e("./awareness"),i=e("./sync")},{"./auth":"fd9lr","./awareness":"ih03r","./sync":"24yvR","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fd9lr:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"messagePermissionDenied",function(){return i}),n.export(r,"writePermissionDenied",function(){return s}),n.export(r,"readAuthMessage",function(){return l});var o=e("lib0/encoding"),a=e("lib0/decoding"),i=0,s=function(e,t){o.writeVarUint(e,i),o.writeVarString(e,t)},l=function(e,t,r){a.readVarUint(e)===i&&r(t,a.readVarString(e))}},{"lib0/encoding":"7b60o","lib0/decoding":"01MR5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7b60o":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Encoder",function(){return m}),n.export(r,"createEncoder",function(){return _}),n.export(r,"encode",function(){return h}),n.export(r,"length",function(){return g}),n.export(r,"hasContent",function(){return b}),n.export(r,"toUint8Array",function(){return y}),n.export(r,"verifyLen",function(){return S}),n.export(r,"write",function(){return E}),n.export(r,"set",function(){return x}),n.export(r,"writeUint8",function(){return C}),n.export(r,"setUint8",function(){return T}),n.export(r,"writeUint16",function(){return w}),n.export(r,"setUint16",function(){return I}),n.export(r,"writeUint32",function(){return R}),n.export(r,"writeUint32BigEndian",function(){return A}),n.export(r,"setUint32",function(){return N}),n.export(r,"writeVarUint",function(){return k}),n.export(r,"writeVarInt",function(){return O}),n.export(r,"_writeVarStringNative",function(){return P}),n.export(r,"_writeVarStringPolyfill",function(){return M}),n.export(r,"writeVarString",function(){return L}),n.export(r,"writeTerminatedString",function(){return V}),n.export(r,"writeTerminatedUint8Array",function(){return F}),n.export(r,"writeBinaryEncoder",function(){return B}),n.export(r,"writeUint8Array",function(){return U}),n.export(r,"writeVarUint8Array",function(){return G}),n.export(r,"writeOnDataView",function(){return q}),n.export(r,"writeFloat32",function(){return Y}),n.export(r,"writeFloat64",function(){return H}),n.export(r,"writeBigInt64",function(){return z}),n.export(r,"writeBigUint64",function(){return W}),n.export(r,"writeAny",function(){return Q}),n.export(r,"RleEncoder",function(){return $}),n.export(r,"IntDiffEncoder",function(){return X}),n.export(r,"RleIntDiffEncoder",function(){return Z}),n.export(r,"UintOptRleEncoder",function(){return ee}),n.export(r,"IncUintOptRleEncoder",function(){return et}),n.export(r,"IntDiffOptRleEncoder",function(){return en}),n.export(r,"StringEncoder",function(){return eo});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_type_of"),l=e("@swc/helpers/_/_create_super"),c=e("./math.js"),u=e("./number.js"),d=e("./binary.js"),p=e("./string.js"),f=e("./array.js"),m=function e(){(0,o._)(this,e),this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]},_=function(){return new m},h=function(e){var t=_();return e(t),y(t)},g=function(e){for(var t=e.cpos,r=0;r0||e.bufs.length>0},y=function(e){for(var t=new Uint8Array(g(e)),r=0,n=0;n>>8&d.BITS8)},I=function(e,t,r){x(e,t,r&d.BITS8),x(e,t+1,r>>>8&d.BITS8)},R=function(e,t){for(var r=0;r<4;r++)E(e,t&d.BITS8),t>>>=8},A=function(e,t){for(var r=3;r>=0;r--)E(e,t>>>8*r&d.BITS8)},N=function(e,t,r){for(var n=0;n<4;n++)x(e,t+n,r&d.BITS8),r>>>=8},k=function(e,t){for(;t>d.BITS7;)E(e,d.BIT8|d.BITS7&t),t=c.floor(t/128);E(e,d.BITS7&t)},O=function(e,t){var r=c.isNegativeZero(t);for(r&&(t=-t),E(e,(t>d.BITS6?d.BIT8:0)|(r?d.BIT7:0)|d.BITS6&t),t=c.floor(t/64);t>0;)E(e,(t>d.BITS7?d.BIT8:0)|d.BITS7&t),t=c.floor(t/128)},D=new Uint8Array(3e4),j=D.length/3,P=function(e,t){if(t.length0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(c.max(2*r,a)),e.cbuf.set(t.subarray(o)),e.cpos=a)},G=function(e,t){k(e,t.byteLength),U(e,t)},q=function(e,t){S(e,t);var r=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,r},Y=function(e,t){return q(e,4).setFloat32(0,t,!1)},H=function(e,t){return q(e,8).setFloat64(0,t,!1)},z=function(e,t){return q(e,8).setBigInt64(0,t,!1)},W=function(e,t){return q(e,8).setBigUint64(0,t,!1)},K=new DataView(new ArrayBuffer(4)),Q=function(e,t){switch(void 0===t?"undefined":(0,s._)(t)){case"string":E(e,119),L(e,t);break;case"number":u.isInteger(t)&&c.abs(t)<=d.BITS31?(E(e,125),O(e,t)):(K.setFloat32(0,t),K.getFloat32(0)===t)?(E(e,124),Y(e,t)):(E(e,123),H(e,t));break;case"bigint":E(e,122),z(e,t);break;case"object":if(null===t)E(e,126);else if(f.isArray(t)){E(e,117),k(e,t.length);for(var r=0;r0&&k(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}]),r}(m),X=/*#__PURE__*/function(e){(0,i._)(r,e);var t=(0,l._)(r);function r(e){var n;return(0,o._)(this,r),(n=t.call(this)).s=e,n}return(0,a._)(r,[{key:"write",value:function(e){O(this,e-this.s),this.s=e}}]),r}(m),Z=/*#__PURE__*/function(e){(0,i._)(r,e);var t=(0,l._)(r);function r(e){var n;return(0,o._)(this,r),(n=t.call(this)).s=e,n.count=0,n}return(0,a._)(r,[{key:"write",value:function(e){this.s===e&&this.count>0?this.count++:(this.count>0&&k(this,this.count-1),this.count=1,O(this,e-this.s),this.s=e)}}]),r}(m),J=function(e){e.count>0&&(O(e.encoder,1===e.count?e.s:-e.s),e.count>1&&k(e.encoder,e.count-2))},ee=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0}return(0,a._)(e,[{key:"write",value:function(e){this.s===e?this.count++:(J(this),this.count=1,this.s=e)}},{key:"toUint8Array",value:function(){return J(this),y(this.encoder)}}]),e}(),et=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0}return(0,a._)(e,[{key:"write",value:function(e){this.s+this.count===e?this.count++:(J(this),this.count=1,this.s=e)}},{key:"toUint8Array",value:function(){return J(this),y(this.encoder)}}]),e}(),er=function(e){if(e.count>0){var t=2*e.diff+(1===e.count?0:1);O(e.encoder,t),e.count>1&&k(e.encoder,e.count-2)}},en=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0,this.diff=0}return(0,a._)(e,[{key:"write",value:function(e){this.diff===e-this.s?(this.s=e,this.count++):(er(this),this.count=1,this.diff=e-this.s,this.s=e)}},{key:"toUint8Array",value:function(){return er(this),y(this.encoder)}}]),e}(),eo=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.sarr=[],this.s="",this.lensE=new ee}return(0,a._)(e,[{key:"write",value:function(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}},{key:"toUint8Array",value:function(){var e=new m;return this.sarr.push(this.s),this.s="",L(e,this.sarr.join("")),U(e,this.lensE.toUint8Array()),y(e)}}]),e}()},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_type_of":"3BgET","@swc/helpers/_/_create_super":"4DJgF","./math.js":"gYj1k","./number.js":"gDElu","./binary.js":"hRqNT","./string.js":"1n5jw","./array.js":"56yW0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gDElu:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"MAX_SAFE_INTEGER",function(){return i}),n.export(r,"MIN_SAFE_INTEGER",function(){return s}),n.export(r,"LOWEST_INT32",function(){return l}),n.export(r,"HIGHEST_INT32",function(){return c}),n.export(r,"HIGHEST_UINT32",function(){return u}),n.export(r,"isInteger",function(){return d}),n.export(r,"isNaN",function(){return p}),n.export(r,"parseInt",function(){return f}),n.export(r,"countBits",function(){return m});var o=e("./math.js"),a=e("./binary.js"),i=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,l=-0x80000000,c=a.BITS31,u=a.BITS32,d=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&o.floor(e)===e},p=Number.isNaN,f=Number.parseInt,m=function(e){e&=a.BITS32;for(var t=0;e;)e&=e-1,t++;return t}},{"./math.js":"gYj1k","./binary.js":"hRqNT","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1n5jw":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"fromCharCode",function(){return a}),n.export(r,"fromCodePoint",function(){return i}),n.export(r,"MAX_UTF16_CHARACTER",function(){return s}),n.export(r,"trimLeft",function(){return c}),n.export(r,"fromCamelCase",function(){return d}),n.export(r,"utf8ByteLength",function(){return p}),n.export(r,"_encodeUtf8Polyfill",function(){return f}),n.export(r,"utf8TextEncoder",function(){return m}),n.export(r,"_encodeUtf8Native",function(){return _}),n.export(r,"encodeUtf8",function(){return h}),n.export(r,"_decodeUtf8Polyfill",function(){return g}),n.export(r,"utf8TextDecoder",function(){return b}),n.export(r,"_decodeUtf8Native",function(){return y}),n.export(r,"decodeUtf8",function(){return S}),n.export(r,"splice",function(){return E}),n.export(r,"repeat",function(){return x});var o=e("./array.js"),a=String.fromCharCode,i=String.fromCodePoint,s=a(65535),l=/^\s*/g,c=function(e){return e.replace(l,"")},u=/([A-Z])/g,d=function(e,t){return c(e.replace(u,function(e){return"".concat(t).concat(e.toLowerCase())}))},p=function(e){return unescape(encodeURIComponent(e)).length},f=function(e){for(var t=unescape(encodeURIComponent(e)),r=t.length,n=new Uint8Array(r),o=0;o0;){var o=t<1e4?t:1e4,a=e.subarray(n,n+o);n+=o,r+=String.fromCodePoint.apply(null,a),t-=o}return decodeURIComponent(escape(r))},b="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});b&&1===b.decode(new Uint8Array).length&&(b=null);var y=function(e){return b.decode(e)},S=b?y:g,E=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return e.slice(0,t)+n+e.slice(t+r)},x=function(e,t){return o.unfold(t,function(){return e}).join("")}},{"./array.js":"56yW0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"01MR5":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Decoder",function(){return h}),n.export(r,"createDecoder",function(){return g}),n.export(r,"hasContent",function(){return b}),n.export(r,"clone",function(){return y}),n.export(r,"readUint8Array",function(){return S}),n.export(r,"readVarUint8Array",function(){return E}),n.export(r,"readTailAsUint8Array",function(){return x}),n.export(r,"skip8",function(){return C}),n.export(r,"readUint8",function(){return T}),n.export(r,"readUint16",function(){return w}),n.export(r,"readUint32",function(){return I}),n.export(r,"readUint32BigEndian",function(){return R}),n.export(r,"peekUint8",function(){return A}),n.export(r,"peekUint16",function(){return N}),n.export(r,"peekUint32",function(){return k}),n.export(r,"readVarUint",function(){return O}),n.export(r,"readVarInt",function(){return D}),n.export(r,"peekVarUint",function(){return j}),n.export(r,"peekVarInt",function(){return P}),n.export(r,"_readVarStringPolyfill",function(){return M}),n.export(r,"_readVarStringNative",function(){return L}),n.export(r,"readVarString",function(){return V}),n.export(r,"readTerminatedUint8Array",function(){return F}),n.export(r,"readTerminatedString",function(){return B}),n.export(r,"peekVarString",function(){return U}),n.export(r,"readFromDataView",function(){return G}),n.export(r,"readFloat32",function(){return q}),n.export(r,"readFloat64",function(){return Y}),n.export(r,"readBigInt64",function(){return H}),n.export(r,"readBigUint64",function(){return z}),n.export(r,"readAny",function(){return K}),n.export(r,"RleDecoder",function(){return Q}),n.export(r,"IntDiffDecoder",function(){return $}),n.export(r,"RleIntDiffDecoder",function(){return X}),n.export(r,"UintOptRleDecoder",function(){return Z}),n.export(r,"IncUintOptRleDecoder",function(){return J}),n.export(r,"IntDiffOptRleDecoder",function(){return ee}),n.export(r,"StringDecoder",function(){return et});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_create_super"),l=e("./binary.js"),c=e("./math.js"),u=e("./number.js"),d=e("./string.js"),p=e("./error.js"),f=e("./encoding.js"),m=p.create("Unexpected end of array"),_=p.create("Integer out of Range"),h=function e(t){(0,o._)(this,e),this.arr=t,this.pos=0},g=function(e){return new h(e)},b=function(e){return e.pos!==e.arr.length},y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.pos,r=g(e.arr);return r.pos=t,r},S=function(e,t){var r=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,r},E=function(e){return S(e,O(e))},x=function(e){return S(e,e.arr.length-e.pos)},C=function(e){return e.pos++},T=function(e){return e.arr[e.pos++]},w=function(e){var t=e.arr[e.pos]+(e.arr[e.pos+1]<<8);return e.pos+=2,t},I=function(e){var t=e.arr[e.pos]+(e.arr[e.pos+1]<<8)+(e.arr[e.pos+2]<<16)+(e.arr[e.pos+3]<<24)>>>0;return e.pos+=4,t},R=function(e){var t=e.arr[e.pos+3]+(e.arr[e.pos+2]<<8)+(e.arr[e.pos+1]<<16)+(e.arr[e.pos]<<24)>>>0;return e.pos+=4,t},A=function(e){return e.arr[e.pos]},N=function(e){return e.arr[e.pos]+(e.arr[e.pos+1]<<8)},k=function(e){return e.arr[e.pos]+(e.arr[e.pos+1]<<8)+(e.arr[e.pos+2]<<16)+(e.arr[e.pos+3]<<24)>>>0},O=function(e){for(var t=0,r=1,n=e.arr.length;e.posu.MAX_SAFE_INTEGER)throw _}throw m},D=function(e){var t=e.arr[e.pos++],r=t&l.BITS6,n=64,o=(t&l.BIT7)>0?-1:1;if((t&l.BIT8)==0)return o*r;for(var a=e.arr.length;e.posu.MAX_SAFE_INTEGER)throw _}throw m},j=function(e){var t=e.pos,r=O(e);return e.pos=t,r},P=function(e){var t=e.pos,r=D(e);return e.pos=t,r},M=function(e){var t=O(e);if(0===t)return"";var r=String.fromCodePoint(T(e));if(--t<100)for(;t--;)r+=String.fromCodePoint(T(e));else for(;t>0;){var n=t<1e4?t:1e4,o=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,r+=String.fromCodePoint.apply(null,o),t-=n}return decodeURIComponent(escape(r))},L=function(e){return d.utf8TextDecoder.decode(E(e))},V=d.utf8TextDecoder?L:M,F=function(e){for(var t,r=f.createEncoder();;){if(0===(t=T(e)))return f.toUint8Array(r);1===t&&(t=T(e)),f.write(r,t)}},B=function(e){return d.decodeUtf8(F(e))},U=function(e){var t=e.pos,r=V(e);return e.pos=t,r},G=function(e,t){var r=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,r},q=function(e){return G(e,4).getFloat32(0,!1)},Y=function(e){return G(e,8).getFloat64(0,!1)},H=function(e){return G(e,8).getBigInt64(0,!1)},z=function(e){return G(e,8).getBigUint64(0,!1)},W=[function(e){},function(e){return null},D,q,Y,H,function(e){return!1},function(e){return!0},V,function(e){for(var t=O(e),r={},n=0;n0&&x((0,o._)(n),t,"timeout")},g.floor(S/10)),e.on("destroy",function(){n.destroy()}),n.setLocalState({}),n}return(0,i._)(r,[{key:"destroy",value:function(){this.emit("destroy",[this]),this.setLocalState(null),(0,l._)((0,c._)(r.prototype),"destroy",this).call(this),clearInterval(this._checkInterval)}},{key:"getLocalState",value:function(){return this.states.get(this.clientID)||null}},{key:"setLocalState",value:function(e){var t=this.clientID,r=this.meta.get(t),n=void 0===r?0:r.clock+1,o=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:h.getUnixTime()});var a=[],i=[],s=[],l=[];null===e?l.push(t):null==o?null!=e&&a.push(t):(i.push(t),y.equalityDeep(o,e)||s.push(t)),(a.length>0||s.length>0||l.length>0)&&this.emit("change",[{added:a,updated:s,removed:l},"local"]),this.emit("update",[{added:a,updated:i,removed:l},"local"])}},{key:"setLocalStateField",value:function(e,t){var r=this.getLocalState();null!==r&&this.setLocalState((0,p._)((0,d._)({},r),(0,s._)({},e,t)))}},{key:"getStates",value:function(){return this.states}}]),r}(b.ObservableV2),x=function(e,t,r){for(var n=[],o=0;o0&&(e.emit("change",[{added:[],updated:[],removed:n},r]),e.emit("update",[{added:[],updated:[],removed:n},r]))},C=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.states,n=t.length,o=m.createEncoder();m.writeVarUint(o,n);for(var a=0;a0||s.length>0||l.length>0)&&e.emit("change",[{added:a,updated:s,removed:l},r]),(a.length>0||i.length>0||l.length>0)&&e.emit("update",[{added:a,updated:i,removed:l},r])}},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_get":"2invZ","@swc/helpers/_/_get_prototype_of":"7kA23","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_create_super":"4DJgF","lib0/encoding":"7b60o","lib0/decoding":"01MR5","lib0/time":"b9GSJ","lib0/math":"gYj1k","lib0/observable":"lCBQS","lib0/function":"jgAQd","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jgAQd:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"callAll",function(){return s}),n.export(r,"nop",function(){return l}),n.export(r,"apply",function(){return c}),n.export(r,"id",function(){return u}),n.export(r,"equalityStrict",function(){return d}),n.export(r,"equalityFlat",function(){return p}),n.export(r,"equalityDeep",function(){return f}),n.export(r,"isOneOf",function(){return m}),n.export(r,"isArray",function(){return _}),n.export(r,"isString",function(){return h}),n.export(r,"isNumber",function(){return g}),n.export(r,"is",function(){return b}),n.export(r,"isTemplate",function(){return y});var o=e("@swc/helpers/_/_to_consumable_array"),a=e("./array.js"),i=e("./object.js"),s=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;try{for(;r0){var n=c.createEncoder();c.writeVarUint(n,f.MessageType.Awareness),c.writeVarUint8Array(n,(0,p.awarenessProtocol).encodeAwarenessUpdate(l.awareness,Array.from(r.keys()))),(0,g.sendTrysteroConn)(l,e,n)}l._callbackPeerJoin&&l._callbackPeerJoin(e)}),this.trysteroRoom.onPeerLeave(function(e){l.trysteroConns=l.trysteroRoom.getPeers(),l.provider.emit("peers",[{removed:[e],added:[],trysteroPeers:Array.from(Object.keys(l.trysteroConns)),bcPeers:Array.from(l.bcConns)}]),(0,h.checkIsSynced)(l),l._callbackPeerLeave&&l._callbackPeerLeave(e)}),console.log("conns",this.trysteroConns),this._bcSubscriber=function(e){return _.decrypt(new Uint8Array(e),a).then(function(e){return l.mux(function(){var t=(0,h.readMessage)(l,e);t&&(0,g.broadcastBcMessage)(l,t)})})},this._docUpdateHandler=function(e,t){var r=c.createEncoder();c.writeVarUint(r,f.MessageType.Sync),(0,p.syncProtocol).writeUpdate(r,e),(0,g.broadcastRoomMessage)(l,r)},this._awarenessUpdateHandler=function(e,t){var r=e.added,n=e.updated,o=e.removed,a=r.concat(n).concat(o),i=c.createEncoder();c.writeVarUint(i,f.MessageType.Awareness),c.writeVarUint8Array(i,(0,p.awarenessProtocol).encodeAwarenessUpdate(l.awareness,a)),(0,g.broadcastRoomMessage)(l,i)},this._beforeUnloadHandler=function(){(0,p.awarenessProtocol).removeAwarenessStates(l.awareness,[t.clientID],"window unload"),(0,m.rooms).forEach(function(e){e.disconnect()})},"undefined"!=typeof window?window.addEventListener("beforeunload",this._beforeUnloadHandler):void 0!==b&&b.on("exit",this._beforeUnloadHandler)}return(0,a._)(e,[{key:"onPeerJoin",value:function(e){this._callbackPeerJoin=e}},{key:"onPeerLeave",value:function(e){this._callbackPeerLeave=e}},{key:"connect",value:function(){this.doc.on("update",this._docUpdateHandler),this.awareness.on("update",this._awarenessUpdateHandler),l.subscribe(this.name,this._bcSubscriber),this.bcconnected=!0,(0,g.broadcastBcPeerId)(this);var e=c.createEncoder();c.writeVarUint(e,f.MessageType.Sync),(0,p.syncProtocol).writeSyncStep1(e,this.doc),(0,g.broadcastBcMessage)(this,e);var t=c.createEncoder();c.writeVarUint(t,f.MessageType.Sync),(0,p.syncProtocol).writeSyncStep2(t,this.doc),(0,g.broadcastBcMessage)(this,t);var r=c.createEncoder();c.writeVarUint(r,f.MessageType.QueryAwareness),(0,g.broadcastBcMessage)(this,r);var n=c.createEncoder();c.writeVarUint(n,f.MessageType.Awareness),c.writeVarUint8Array(n,(0,p.awarenessProtocol).encodeAwarenessUpdate(this.awareness,[this.doc.clientID])),(0,g.broadcastBcMessage)(this,n)}},{key:"disconnect",value:function(){(0,p.awarenessProtocol).removeAwarenessStates(this.awareness,[this.doc.clientID],"disconnect");var e=c.createEncoder();c.writeVarUint(e,f.MessageType.BcPeerId),c.writeUint8(e,0),c.writeVarString(e,this.peerId),(0,g.broadcastBcMessage)(this,e),l.unsubscribe(this.name,this._bcSubscriber),this.bcconnected=!1,this.doc.off("update",this._docUpdateHandler),this.awareness.off("update",this._awarenessUpdateHandler),l.unsubscribe(this.name,function(){}),this.trysteroRoom.leave()}},{key:"destroy",value:function(){this.disconnect(),"undefined"!=typeof window?window.removeEventListener("beforeunload",this._beforeUnloadHandler):void 0!==b&&b.off("exit",this._beforeUnloadHandler)}}]),e}()},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1","199a685d71ad980a":"itVSw","lib0/broadcastchannel":"9svt9","lib0/encoding":"7b60o","lib0/mutex":"161cT","lib0/random":"g7cI4","../protocols":"7NXmU","./types":"lUnP8","./connectionMaps":"8Onsd","./cryptoutils":"2VKXm","./messagesRead":"bRKBk","./messagesSend":"5U62U","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],itVSw:[function(e,t,r){var n,o,a,i=t.exports={};function s(){throw Error("setTimeout has not been defined")}function l(){throw Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{o="function"==typeof clearTimeout?clearTimeout:l}catch(e){o=l}}();var u=[],d=!1,p=-1;function f(){d&&a&&(d=!1,a.length?u=a.concat(u):p=-1,u.length&&m())}function m(){if(!d){var e=c(f);d=!0;for(var t=u.length;t;){for(a=u,u=[];++p1)for(var r=1;r2&&void 0!==arguments[2]?arguments[2]:null,n=f(e);n.bc.postMessage(t),n.subs.forEach(function(e){return e(t,r)})}},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","./map.js":"hAiSy","./set.js":"fCL2u","./buffer.js":"6nNHg","./storage.js":"hTM42","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6nNHg":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"createUint8ArrayFromLen",function(){return d}),n.export(r,"createUint8ArrayViewFromArrayBuffer",function(){return p}),n.export(r,"createUint8ArrayFromArrayBuffer",function(){return f}),n.export(r,"toBase64",function(){return m}),n.export(r,"fromBase64",function(){return _}),n.export(r,"toBase64UrlEncoded",function(){return h}),n.export(r,"fromBase64UrlEncoded",function(){return g}),n.export(r,"toHexString",function(){return b}),n.export(r,"fromHexString",function(){return y}),n.export(r,"copyUint8Array",function(){return S}),n.export(r,"encodeAny",function(){return E}),n.export(r,"decodeAny",function(){return x}),n.export(r,"shiftNBitsLeft",function(){return C});var o=e("./string.js"),a=e("./environment.js"),i=e("./array.js"),s=e("./math.js"),l=e("./encoding.js"),c=e("./decoding.js"),u=e("22d865190581f6fb").Buffer,d=function(e){return new Uint8Array(e)},p=function(e,t,r){return new Uint8Array(e,t,r)},f=function(e){return new Uint8Array(e)},m=a.isBrowser?function(e){for(var t="",r=0;r>>8-t,e[r]<<=t;return e}},{"22d865190581f6fb":"dLuvJ","./string.js":"1n5jw","./environment.js":"kefJ6","./array.js":"56yW0","./math.js":"gYj1k","./encoding.js":"7b60o","./decoding.js":"01MR5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dLuvJ:[function(e,t,r){/*! + */var n=e("@swc/helpers/_/_assert_this_initialized"),o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_type_of"),l=e("@swc/helpers/_/_create_super"),c=e("9c62938f1dccc73c"),u=e("aceacb6a4531a9d2"),d="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function p(e){if(e>0x7fffffff)throw RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,f.prototype),t}function f(e,t,r){if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return h(e)}return m(e,t,r)}function m(e,t,r){if("string"==typeof e)return function(e,t){if(("string"!=typeof t||""===t)&&(t="utf8"),!f.isEncoding(t))throw TypeError("Unknown encoding: "+t);var r=0|S(e,t),n=p(r),o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){var t=new Uint8Array(e);return b(t.buffer,t.byteOffset,t.byteLength)}return g(e)}(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===e?"undefined":(0,s._)(e)));if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return b(e,t,r);if("number"==typeof e)throw TypeError('The "value" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return f.from(n,t,r);var o=function(e){if(f.isBuffer(e)){var t,r=0|y(e.length),n=p(r);return 0===n.length||e.copy(n,0,0,r),n}return void 0!==e.length?"number"!=typeof e.length||(t=e.length)!=t?p(0):g(e):"Buffer"===e.type&&Array.isArray(e.data)?g(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return f.from(e[Symbol.toPrimitive]("string"),t,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===e?"undefined":(0,s._)(e)))}function _(e){if("number"!=typeof e)throw TypeError('"size" argument must be of type number');if(e<0)throw RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return _(e),p(e<0?0:0|y(e))}function g(e){for(var t=e.length<0?0:0|y(e.length),r=p(t),n=0;n=0x7fffffff)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function S(e,t){if(f.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+(void 0===e?"undefined":(0,s._)(e)));var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(o)return n?-1:U(e).length;t=(""+t).toLowerCase(),o=!0}}function E(e,t,r){var n,o,a=!1;if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",a=t;a0x7fffffff?r=0x7fffffff:r<-0x80000000&&(r=-0x80000000),(a=r=+r)!=a&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return -1;r=e.length-1}else if(r<0){if(!o)return -1;r=0}if("string"==typeof t&&(t=f.from(t,n)),f.isBuffer(t))return 0===t.length?-1:T(e,t,r,n,o);if("number"==typeof t)return(t&=255,"function"==typeof Uint8Array.prototype.indexOf)?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):T(e,[t],r,n,o);throw TypeError("val must be string, number or Buffer")}function T(e,t,r,n,o){var a,i=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;i=2,s/=2,l/=2,r/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(o){var u=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var d=!0,p=0;p239?4:a>223?3:a>191?2:1;if(o+s<=r){var l=void 0,c=void 0,u=void 0,d=void 0;switch(s){case 1:a<128&&(i=a);break;case 2:(192&(l=e[o+1]))==128&&(d=(31&a)<<6|63&l)>127&&(i=d);break;case 3:l=e[o+1],c=e[o+2],(192&l)==128&&(192&c)==128&&(d=(15&a)<<12|(63&l)<<6|63&c)>2047&&(d<55296||d>57343)&&(i=d);break;case 4:l=e[o+1],c=e[o+2],u=e[o+3],(192&l)==128&&(192&c)==128&&(192&u)==128&&(d=(15&a)<<18|(63&l)<<12|(63&c)<<6|63&u)>65535&&d<1114112&&(i=d)}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",n=0;nr)throw RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,o,a){if(!f.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw RangeError("Index out of range")}function A(e,t,r,n,o){L(t,n,o,e,r,7);var a=Number(t&BigInt(0xffffffff));e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a,a>>=8,e[r++]=a;var i=Number(t>>BigInt(32)&BigInt(0xffffffff));return e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,r}function N(e,t,r,n,o){L(t,n,o,e,r,7);var a=Number(t&BigInt(0xffffffff));e[r+7]=a,a>>=8,e[r+6]=a,a>>=8,e[r+5]=a,a>>=8,e[r+4]=a;var i=Number(t>>BigInt(32)&BigInt(0xffffffff));return e[r+3]=i,i>>=8,e[r+2]=i,i>>=8,e[r+1]=i,i>>=8,e[r]=i,r+8}function k(e,t,r,n,o,a){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function O(e,t,r,n,o){return t=+t,r>>>=0,o||k(e,t,r,4,34028234663852886e22,-34028234663852886e22),u.write(e,t,r,n,23,4),r+4}function D(e,t,r,n,o){return t=+t,r>>>=0,o||k(e,t,r,8,17976931348623157e292,-17976931348623157e292),u.write(e,t,r,n,52,8),r+8}r.Buffer=f,r.SlowBuffer=function(e){return+e!=e&&(e=0),f.alloc(+e)},r.INSPECT_MAX_BYTES=50,r.kMaxLength=0x7fffffff,f.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),f.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(f.prototype,"parent",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.buffer}}),Object.defineProperty(f.prototype,"offset",{enumerable:!0,get:function(){if(f.isBuffer(this))return this.byteOffset}}),f.poolSize=8192,f.from=function(e,t,r){return m(e,t,r)},Object.setPrototypeOf(f.prototype,Uint8Array.prototype),Object.setPrototypeOf(f,Uint8Array),f.alloc=function(e,t,r){return(_(e),e<=0)?p(e):void 0!==t?"string"==typeof r?p(e).fill(t,r):p(e).fill(t):p(e)},f.allocUnsafe=function(e){return h(e)},f.allocUnsafeSlow=function(e){return h(e)},f.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==f.prototype},f.compare=function(e,t){if(Y(e,Uint8Array)&&(e=f.from(e,e.offset,e.byteLength)),Y(t,Uint8Array)&&(t=f.from(t,t.offset,t.byteLength)),!f.isBuffer(e)||!f.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,o=0,a=Math.min(r,n);on.length?(f.isBuffer(a)||(a=f.from(a)),a.copy(n,o)):Uint8Array.prototype.set.call(n,a,o);else if(f.isBuffer(a))a.copy(n,o);else throw TypeError('"list" argument must be an Array of Buffers');o+=a.length}return n},f.byteLength=S,f.prototype._isBuffer=!0,f.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tt&&(e+=" ... "),""},d&&(f.prototype[d]=f.prototype.inspect),f.prototype.compare=function(e,t,r,n,o){if(Y(e,Uint8Array)&&(e=f.from(e,e.offset,e.byteLength)),!f.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+(void 0===e?"undefined":(0,s._)(e)));if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var a=o-n,i=r-t,l=Math.min(a,i),c=this.slice(n,o),u=e.slice(t,r),d=0;d>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o,a,i,s,l,c,u,d,p=this.length-t;if((void 0===r||r>p)&&(r=p),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var f=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var o,a=e.length-r;n?(n=Number(n))>a&&(n=a):n=a;var i=t.length;for(n>i/2&&(n=i/2),o=0;o>8,o.push(r%256),o.push(n);return o}(e,this.length-u),this,u,d);default:if(f)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),f=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},f.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e],o=1,a=0;++a>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},f.prototype.readUint8=f.prototype.readUInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),this[e]},f.prototype.readUint16LE=f.prototype.readUInt16LE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]|this[e+1]<<8},f.prototype.readUint16BE=f.prototype.readUInt16BE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]<<8|this[e+1]},f.prototype.readUint32LE=f.prototype.readUInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+0x1000000*this[e+3]},f.prototype.readUint32BE=f.prototype.readUInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),0x1000000*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},f.prototype.readBigUInt64LE=z(function(e){V(e>>>=0,"offset");var t=this[e],r=this[e+7];(void 0===t||void 0===r)&&F(e,this.length-8);var n=t+256*this[++e]+65536*this[++e]+0x1000000*this[++e],o=this[++e]+256*this[++e]+65536*this[++e]+0x1000000*r;return BigInt(n)+(BigInt(o)<>>=0,"offset");var t=this[e],r=this[e+7];(void 0===t||void 0===r)&&F(e,this.length-8);var n=0x1000000*t+65536*this[++e]+256*this[++e]+this[++e],o=0x1000000*this[++e]+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||I(e,t,this.length);for(var n=this[e],o=1,a=0;++a=(o*=128)&&(n-=Math.pow(2,8*t)),n},f.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||I(e,t,this.length);for(var n=t,o=1,a=this[e+--n];n>0&&(o*=256);)a+=this[e+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},f.prototype.readInt8=function(e,t){return(e>>>=0,t||I(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},f.prototype.readInt16LE=function(e,t){e>>>=0,t||I(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?0xffff0000|r:r},f.prototype.readInt16BE=function(e,t){e>>>=0,t||I(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?0xffff0000|r:r},f.prototype.readInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},f.prototype.readInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},f.prototype.readBigInt64LE=z(function(e){V(e>>>=0,"offset");var t=this[e],r=this[e+7];return(void 0===t||void 0===r)&&F(e,this.length-8),(BigInt(this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24))<>>=0,"offset");var t=this[e],r=this[e+7];return(void 0===t||void 0===r)&&F(e,this.length-8),(BigInt((t<<24)+65536*this[++e]+256*this[++e]+this[++e])<>>=0,t||I(e,4,this.length),u.read(this,e,!0,23,4)},f.prototype.readFloatBE=function(e,t){return e>>>=0,t||I(e,4,this.length),u.read(this,e,!1,23,4)},f.prototype.readDoubleLE=function(e,t){return e>>>=0,t||I(e,8,this.length),u.read(this,e,!0,52,8)},f.prototype.readDoubleBE=function(e,t){return e>>>=0,t||I(e,8,this.length),u.read(this,e,!1,52,8)},f.prototype.writeUintLE=f.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;R(this,e,t,r,o,0)}var a=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;R(this,e,t,r,o,0)}var a=r-1,i=1;for(this[t+a]=255&e;--a>=0&&(i*=256);)this[t+a]=e/i&255;return t+r},f.prototype.writeUint8=f.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,255,0),this[t]=255&e,t+1},f.prototype.writeUint16LE=f.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeUint16BE=f.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeUint32LE=f.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0xffffffff,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},f.prototype.writeUint32BE=f.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0xffffffff,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigUInt64LE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return A(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeBigUInt64BE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return N(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),f.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);R(this,e,t,r,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r},f.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);R(this,e,t,r,o-1,-o)}var a=r-1,i=1,s=0;for(this[t+a]=255&e;--a>=0&&(i*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/i>>0)-s&255;return t+r},f.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},f.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},f.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},f.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0x7fffffff,-0x80000000),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},f.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,0x7fffffff,-0x80000000),e<0&&(e=0xffffffff+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},f.prototype.writeBigInt64LE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return A(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeBigInt64BE=z(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return N(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),f.prototype.writeFloatLE=function(e,t,r){return O(this,e,t,!0,r)},f.prototype.writeFloatBE=function(e,t,r){return O(this,e,t,!1,r)},f.prototype.writeDoubleLE=function(e,t,r){return D(this,e,t,!0,r)},f.prototype.writeDoubleBE=function(e,t,r){return D(this,e,t,!1,r)},f.prototype.copy=function(e,t,r,n){if(!f.isBuffer(e))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t="_".concat(e.slice(r-3,r)).concat(t);return"".concat(e.slice(0,r)).concat(t)}function L(e,t,r,n,o,a){if(e>r||e3?0===t||t===BigInt(0)?">= 0".concat(l," and < 2").concat(l," ** ").concat((a+1)*8).concat(l):">= -(2".concat(l," ** ").concat((a+1)*8-1).concat(l,") and < 2 ** ")+"".concat((a+1)*8-1).concat(l):">= ".concat(t).concat(l," and <= ").concat(r).concat(l),new j.ERR_OUT_OF_RANGE("value",i,e)}V(o,"offset"),(void 0===n[o]||void 0===n[o+a])&&F(o,n.length-(a+1))}function V(e,t){if("number"!=typeof e)throw new j.ERR_INVALID_ARG_TYPE(t,"number",e)}function F(e,t,r){if(Math.floor(e)!==e)throw V(e,r),new j.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new j.ERR_BUFFER_OUT_OF_BOUNDS;throw new j.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(t),e)}P("ERR_BUFFER_OUT_OF_BOUNDS",function(e){return e?"".concat(e," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"},RangeError),P("ERR_INVALID_ARG_TYPE",function(e,t){return'The "'.concat(e,'" argument must be of type number. Received type ').concat(void 0===t?"undefined":(0,s._)(t))},TypeError),P("ERR_OUT_OF_RANGE",function(e,t,r){var n='The value of "'.concat(e,'" is out of range.'),o=r;return Number.isInteger(r)&&Math.abs(r)>0x100000000?o=M(String(r)):(void 0===r?"undefined":(0,s._)(r))==="bigint"&&(o=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(o=M(o)),o+="n"),n+=" It must be ".concat(t,". Received ").concat(o)},RangeError);var B=/[^+/0-9A-Za-z-_]/g;function U(e,t){t=t||1/0;for(var r,n=e.length,o=null,a=[],i=0;i55295&&r<57344){if(!o){if(r>56319||i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),o=r;continue}r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return a}function G(e){return c.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(B,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,r,n){var o;for(o=0;o=t.length)&&!(o>=e.length);++o)t[o+r]=e[o];return o}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}var H=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,o=0;o<16;++o)t[n+o]=e[r]+e[o];return t}();function z(e){return"undefined"==typeof BigInt?W:e}function W(){throw Error("BigInt not supported")}},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_type_of":"3BgET","@swc/helpers/_/_create_super":"4DJgF","9c62938f1dccc73c":"9HLib",aceacb6a4531a9d2:"iVOfv"}],"9HLib":[function(e,t,r){r.byteLength=function(e){var t=c(e),r=t[0],n=t[1];return(r+n)*3/4-n},r.toByteArray=function(e){var t,r,n=c(e),i=n[0],s=n[1],l=new a((i+s)*3/4-s),u=0,d=s>0?i-4:i;for(r=0;r>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===s&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,l[u++]=255&t),1===s&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},r.fromByteArray=function(e){for(var t,r=e.length,o=r%3,a=[],i=0,s=r-o;i>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}(e,i,i+16383>s?s:i+16383));return 1===o?a.push(n[(t=e[r-1])>>2]+n[t<<4&63]+"=="):2===o&&a.push(n[(t=(e[r-2]<<8)+e[r-1])>>10]+n[t>>4&63]+n[t<<2&63]+"="),a.join("")};for(var n=[],o=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=i.length;s0)throw Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},{}],iVOfv:[function(e,t,r){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */r.read=function(e,t,r,n,o){var a,i,s=8*o-n-1,l=(1<>1,u=-7,d=r?o-1:0,p=r?-1:1,f=e[t+d];for(d+=p,a=f&(1<<-u)-1,f>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=p,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=n;u>0;i=256*i+e[t+d],d+=p,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(f?-1:1);i+=Math.pow(2,n),a-=c}return(f?-1:1)*i*Math.pow(2,a-n)},r.write=function(e,t,r,n,o,a){var i,s,l,c=8*a-o-1,u=(1<>1,p=23===o?5960464477539062e-23:0,f=n?0:a-1,m=n?1:-1,_=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(s=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),i+d>=1?t+=p/l:t+=p*Math.pow(2,1-d),t*l>=2&&(i++,l/=2),i+d>=u?(s=0,i=u):i+d>=1?(s=(t*l-1)*Math.pow(2,o),i+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,o),i=0));o>=8;e[r+f]=255&s,f+=m,s/=256,o-=8);for(i=i<0;e[r+f]=255&i,f+=m,i/=256,c-=8);e[r+f-m]|=128*_}},{}],dak8L:[function(e,t,r){var n,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"isNode",function(){return p}),o.export(r,"isBrowser",function(){return f}),o.export(r,"isMac",function(){return m}),o.export(r,"hasParam",function(){return g}),o.export(r,"getParam",function(){return b}),o.export(r,"getVariable",function(){return y}),o.export(r,"getConf",function(){return S}),o.export(r,"ensureConf",function(){return E}),o.export(r,"hasConf",function(){return x}),o.export(r,"production",function(){return C}),o.export(r,"supportsColor",function(){return T});var a=e("@swc/helpers/_/_sliced_to_array"),i=e("./map.js"),s=e("./string.js"),l=e("./conditions.js"),c=e("./storage.js"),u=e("./function.js"),d=e("2cfb8bcef1022e2a"),p=void 0!==d&&d.release&&/node|io\.js/.test(d.release.name)&&"[object process]"===Object.prototype.toString.call(void 0!==d?d:0),f="undefined"!=typeof window&&"undefined"!=typeof document&&!p,m="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),_=[],h=function(){if(void 0===n){if(p){n=i.create();for(var e=d.argv,t=null,r=0;r1)for(var r=1;r2&&void 0!==arguments[2]?arguments[2]:0;try{for(;r0||c.length>0?(r.push("%c"+s),n.push(c)):r.push(s)}else break}}for(i>0&&(a=n).unshift(r.join(""));i1&&void 0!==arguments[1]&&arguments[1];_.enqueue(function(){var n=p.element("span",[d.create("hidden",r),d.create("style","color:grey;font-size:120%;")],[p.text("▼")]),o=p.element("span",[d.create("hidden",!r),d.create("style","color:grey;font-size:125%;")],[p.text("▶")]),a=p.element("div",[d.create("style","".concat(D,";padding-left:").concat(10*t.depth,"px"))],[n,o,p.text(" ")].concat(O(e))),i=p.element("div",[d.create("hidden",r)]),s=p.element("div",[],[a,i]);p.append(t.ccontainer,[s]),t.ccontainer=i,t.depth++,p.addEventListener(a,"click",function(e){i.toggleAttribute("hidden"),n.toggleAttribute("hidden"),o.toggleAttribute("hidden")})})}},{key:"groupCollapsed",value:function(e){this.group(e,!0)}},{key:"groupEnd",value:function(){var e=this;_.enqueue(function(){e.depth>0&&(e.depth--,e.ccontainer=e.ccontainer.parentElement.parentElement)})}},{key:"print",value:function(e){var t=this;_.enqueue(function(){p.append(t.ccontainer,[p.element("div",[d.create("style","".concat(D,";padding-left:").concat(10*t.depth,"px"))],O(e))])})}},{key:"printError",value:function(e){this.print([g.RED,g.BOLD,e.toString()])}},{key:"printImg",value:function(e,t){var r=this;_.enqueue(function(){p.append(r.ccontainer,[p.element("img",[d.create("src",e),d.create("height","".concat(h.round(1.5*t),"px"))])])})}},{key:"printDom",value:function(e){var t=this;_.enqueue(function(){p.append(t.ccontainer,[e])})}},{key:"destroy",value:function(){var e=this;_.enqueue(function(){k.delete(e)})}}]),e}(),P=function(e){return new j(e)},M=function(e){return g.createModuleLogger(S,e)}},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_to_consumable_array":"glvYM","./environment.js":"dak8L","./set.js":"8eTm4","./pair.js":"gXjvN","./dom.js":"byEwB","./json.js":"72nIq","./map.js":"gBEz7","./eventloop.js":"imehW","./math.js":"2l7a2","./logging.common.js":"6RARC","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gXjvN:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Pair",function(){return a}),n.export(r,"create",function(){return i}),n.export(r,"createReversed",function(){return s}),n.export(r,"forEach",function(){return l}),n.export(r,"map",function(){return c});var o=e("@swc/helpers/_/_class_call_check"),a=function e(t,r){(0,o._)(this,e),this.left=t,this.right=r},i=function(e,t){return new a(e,t)},s=function(e,t){return new a(t,e)},l=function(e,t){return e.forEach(function(e){return t(e.left,e.right)})},c=function(e,t){return e.map(function(e){return t(e.left,e.right)})}},{"@swc/helpers/_/_class_call_check":"6tPd8","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],byEwB:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"doc",function(){return i}),n.export(r,"createElement",function(){return s}),n.export(r,"createDocumentFragment",function(){return l}),n.export(r,"createTextNode",function(){return c}),n.export(r,"domParser",function(){return u}),n.export(r,"emitCustomEvent",function(){return d}),n.export(r,"setAttributes",function(){return p}),n.export(r,"setAttributesMap",function(){return f}),n.export(r,"fragment",function(){return m}),n.export(r,"append",function(){return _}),n.export(r,"remove",function(){return h}),n.export(r,"addEventListener",function(){return g}),n.export(r,"removeEventListener",function(){return b}),n.export(r,"addEventListeners",function(){return y}),n.export(r,"removeEventListeners",function(){return S}),n.export(r,"element",function(){return E}),n.export(r,"canvas",function(){return x}),n.export(r,"text",function(){return C}),n.export(r,"pairToStyleString",function(){return T}),n.export(r,"pairsToStyleString",function(){return w}),n.export(r,"mapToStyleString",function(){return I}),n.export(r,"querySelector",function(){return R}),n.export(r,"querySelectorAll",function(){return A}),n.export(r,"getElementById",function(){return N}),n.export(r,"parseFragment",function(){return O}),n.export(r,"parseElement",function(){return D}),n.export(r,"replaceWith",function(){return j}),n.export(r,"insertBefore",function(){return P}),n.export(r,"appendChild",function(){return M}),n.export(r,"ELEMENT_NODE",function(){return L}),n.export(r,"TEXT_NODE",function(){return V}),n.export(r,"CDATA_SECTION_NODE",function(){return F}),n.export(r,"COMMENT_NODE",function(){return B}),n.export(r,"DOCUMENT_NODE",function(){return U}),n.export(r,"DOCUMENT_TYPE_NODE",function(){return G}),n.export(r,"DOCUMENT_FRAGMENT_NODE",function(){return q}),n.export(r,"checkNodeType",function(){return Y}),n.export(r,"isParentOf",function(){return H});var o=e("./pair.js"),a=e("./map.js"),i="undefined"!=typeof document?document:{},s=function(e){return i.createElement(e)},l=function(){return i.createDocumentFragment()},c=function(e){return i.createTextNode(e)},u="undefined"!=typeof DOMParser?new DOMParser:null,d=function(e,t,r){return e.dispatchEvent(new CustomEvent(t,r))},p=function(e,t){return o.forEach(t,function(t,r){!1===r?e.removeAttribute(t):!0===r?e.setAttribute(t,""):e.setAttribute(t,r)}),e},f=function(e,t){return t.forEach(function(t,r){e.setAttribute(r,t)}),e},m=function(e){for(var t=l(),r=0;r1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return _(p(s(e),t),r)},x=function(e,t){var r=s("canvas");return r.height=t,r.width=e,r},C=c,T=function(e){return"".concat(e.left,":").concat(e.right,";")},w=function(e){return e.map(T).join("")},I=function(e){return a.map(e,function(e,t){return"".concat(t,":").concat(e,";")}).join("")},R=function(e,t){return e.querySelector(t)},A=function(e,t){return e.querySelectorAll(t)},N=function(e){return i.getElementById(e)},k=function(e){return u.parseFromString("".concat(e,""),"text/html").body},O=function(e){return m(k(e).childNodes)},D=function(e){return k(e).firstElementChild},j=function(e,t){return e.replaceWith(t)},P=function(e,t,r){return e.insertBefore(t,r)},M=function(e,t){return e.appendChild(t)},L=i.ELEMENT_NODE,V=i.TEXT_NODE,F=i.CDATA_SECTION_NODE,B=i.COMMENT_NODE,U=i.DOCUMENT_NODE,G=i.DOCUMENT_TYPE_NODE,q=i.DOCUMENT_FRAGMENT_NODE,Y=function(e,t){return e.nodeType===t},H=function(e,t){for(var r=t.parentNode;r&&r!==e;)r=r.parentNode;return r===e}},{"./pair.js":"gXjvN","./map.js":"gBEz7","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"72nIq":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"stringify",function(){return o}),n.export(r,"parse",function(){return a});var o=JSON.stringify,a=JSON.parse},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],imehW:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"enqueue",function(){return l}),n.export(r,"timeout",function(){return d}),n.export(r,"interval",function(){return f}),n.export(r,"Animation",function(){return m}),n.export(r,"animationFrame",function(){return _}),n.export(r,"idleCallback",function(){return g}),n.export(r,"createDebouncer",function(){return b});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=[],s=function(){for(var e=0;e0&&n.push(r.join(""));o3&&((t=[]).push.apply(t,arguments),t.shift()),n.push.apply(n,r),this._clearOnEmit&&(r.length=0,this._clearOnEmit=!1),++this._counter;for(var i=o,s=n.length;i-1,G=B.indexOf("trident")>-1,q=B.indexOf("firefox")>-1,Y=B.indexOf("android")>-1,H=!!F()&&{passive:!0},z="touchAction",W=V(document.documentElement.style,z);function K(e,t){this._element=e,this._emitter=new D,this._isDestroyed=!1,this._cssProps={},this._touchAction="",this._isActive=!1,this._pointerId=null,this._startTime=0,this._startX=0,this._startY=0,this._currentX=0,this._currentY=0,this._onStart=this._onStart.bind(this),this._onMove=this._onMove.bind(this),this._onCancel=this._onCancel.bind(this),this._onEnd=this._onEnd.bind(this),this._edgeHack=null,(U||G)&&(k||O)&&(this._edgeHack=new P(this)),this.setCssProps(t),this._touchAction||this.setTouchAction("auto"),e.addEventListener("dragstart",K._preventDefault,!1),e.addEventListener(K._inputEvents.start,this._onStart,H)}K._pointerEvents={start:"pointerdown",move:"pointermove",cancel:"pointercancel",end:"pointerup"},K._msPointerEvents={start:"MSPointerDown",move:"MSPointerMove",cancel:"MSPointerCancel",end:"MSPointerUp"},K._touchEvents={start:"touchstart",move:"touchmove",cancel:"touchcancel",end:"touchend"},K._mouseEvents={start:"mousedown",move:"mousemove",cancel:"",end:"mouseup"},K._inputEvents=N?K._touchEvents:k?K._pointerEvents:O?K._msPointerEvents:K._mouseEvents,K._emitter=new D,K._emitterEvents={start:"start",move:"move",end:"end",cancel:"cancel"},K._activeInstances=[],K._preventDefault=function(e){e.preventDefault&&!1!==e.cancelable&&e.preventDefault()},K._activateInstance=function(e){K._activeInstances.indexOf(e)>-1||(K._activeInstances.push(e),K._emitter.on(K._emitterEvents.move,e._onMove),K._emitter.on(K._emitterEvents.cancel,e._onCancel),K._emitter.on(K._emitterEvents.end,e._onEnd),1===K._activeInstances.length&&K._bindListeners())},K._deactivateInstance=function(e){var t=K._activeInstances.indexOf(e);-1===t||(K._activeInstances.splice(t,1),K._emitter.off(K._emitterEvents.move,e._onMove),K._emitter.off(K._emitterEvents.cancel,e._onCancel),K._emitter.off(K._emitterEvents.end,e._onEnd),K._activeInstances.length||K._unbindListeners())},K._bindListeners=function(){window.addEventListener(K._inputEvents.move,K._onMove,H),window.addEventListener(K._inputEvents.end,K._onEnd,H),K._inputEvents.cancel&&window.addEventListener(K._inputEvents.cancel,K._onCancel,H)},K._unbindListeners=function(){window.removeEventListener(K._inputEvents.move,K._onMove,H),window.removeEventListener(K._inputEvents.end,K._onEnd,H),K._inputEvents.cancel&&window.removeEventListener(K._inputEvents.cancel,K._onCancel,H)},K._getEventPointerId=function(e){return"number"==typeof e.pointerId?e.pointerId:e.changedTouches?e.changedTouches[0]?e.changedTouches[0].identifier:null:1},K._getTouchById=function(e,t){if("number"==typeof e.pointerId)return e.pointerId===t?e:null;if(e.changedTouches){for(var r=0;r=this.maxValue:this.value<=0},eB.prototype.computeCurrentScrollValue=function(){return null===this.value?1&this.direction?eD(this.element):ej(this.element):Math.max(0,Math.min(this.value,this.maxValue))},eB.prototype.computeNextScrollValue=function(e){var t=this.speed*(e/1e3);return Math.max(0,Math.min(4&this.direction?this.value+t:this.value-t,this.maxValue))},eB.prototype.computeSpeed=(n={direction:null,threshold:0,distance:0,value:0,maxValue:0,deltaTime:0,duration:0,isEnding:!1},function(e){var t=this.item,r=eV(t).speed;return eT(r)?(n.direction=this.direction,n.threshold=this.threshold,n.distance=this.distance,n.value=this.value,n.maxValue=this.maxValue,n.duration=this.duration,n.speed=this.speed,n.deltaTime=e,n.isEnding=this.isEnding,r(t,this.element,n)):r}),eB.prototype.tick=function(e){return this.isActive||(this.isActive=!0,this.onStart()),this.value=this.computeCurrentScrollValue(),this.speed=this.computeSpeed(e),this.value=this.computeNextScrollValue(e),this.duration+=e,this.value},eB.prototype.onStart=function(){var e=this.item,t=eV(e).onStart;eT(t)&&t(e,this.element,this.direction)},eB.prototype.onStop=function(){var e=this.item,t=eV(e).onStop;eT(t)&&t(e,this.element,this.direction),e._drag&&e._drag.sort()},eU.prototype.reset=function(){this.requestX&&(this.requestX.action=null),this.requestY&&(this.requestY.action=null),this.element=null,this.requestX=null,this.requestY=null,this.scrollLeft=0,this.scrollTop=0},eU.prototype.addRequest=function(e){1&e.direction?(this.removeRequest(this.requestX),this.requestX=e):(this.removeRequest(this.requestY),this.requestY=e),e.action=this},eU.prototype.removeRequest=function(e){e&&(this.requestX===e?(this.requestX=null,e.action=null):this.requestY===e&&(this.requestY=null,e.action=null))},eU.prototype.computeScrollValues=function(){this.scrollLeft=this.requestX?this.requestX.value:eD(this.element),this.scrollTop=this.requestY?this.requestY.value:ej(this.element)},eU.prototype.scroll=function(){var e=this.element;e&&(e.scrollTo?e.scrollTo(this.scrollLeft,this.scrollTop):(e.scrollLeft=this.scrollLeft,e.scrollTop=this.scrollTop))},eG.prototype.pick=function(){return this.pool.pop()||this.createItem()},eG.prototype.release=function(e){this.releaseItem(e),-1===this.pool.indexOf(e)&&this.pool.push(e)},eG.prototype.reset=function(){this.pool.length=0};var eY={width:0,height:0,left:0,right:0,top:0,bottom:0},eH={width:0,height:0,left:0,right:0,top:0,bottom:0};function ez(){this._isDestroyed=!1,this._isTicking=!1,this._tickTime=0,this._tickDeltaTime=0,this._items=[],this._actions=[],this._requests={},this._requests[1]={},this._requests[2]={},this._requestOverlapCheck={},this._dragPositions={},this._dragDirections={},this._overlapCheckInterval=150,this._requestPool=new eG(function(){return new eB},function(e){e.reset()}),this._actionPool=new eG(function(){return new eU},function(e){e.reset()}),this._readTick=this._readTick.bind(this),this._writeTick=this._writeTick.bind(this)}ez.AXIS_X=1,ez.AXIS_Y=2,ez.FORWARD=4,ez.BACKWARD=8,ez.LEFT=9,ez.RIGHT=5,ez.UP=10,ez.DOWN=6,ez.smoothSpeed=function(e,t,r){return function(n,o,a){var i=0;if(!a.isEnding){if(a.threshold>0){var s=a.threshold-Math.max(0,a.distance);i=e/a.threshold*s}else i=e}var l=a.speed,c=i;return l===i?c:l=T&&E>0&&(g>T||h>I)&&(y=null,b=eF("number"==typeof p.threshold?p.threshold:a,i,u.width,d.width),5===l?(S=d.right+b.offset-u.right)<=b.value&&eD(f)0&&(y=9),null!==y&&(C=f,T=g,w=b.value,I=h,R=y,A=S,N=E)),_&&g>=O&&x>0&&(g>O||h>j)&&(y=null,b=eF("number"==typeof p.threshold?p.threshold:a,i,u.height,d.height),6===c?(S=d.bottom+b.offset-u.bottom)<=b.value&&ej(f)0&&(y=10),null!==y&&(k=f,O=g,D=b.value,j=h,P=y,M=S,L=x))));t&&(C?this._requestItemScroll(e,1,C,R,w,A,N):this._cancelItemScroll(e,1)),r&&(k?this._requestItemScroll(e,2,k,P,D,M,L):this._cancelItemScroll(e,2))},ez.prototype._updateScrollRequest=function(e){for(var t=e.item,r=eV(t),n=eT(r.targets)?r.targets(t):r.targets,o=n&&n.length||0,a=r.threshold,i=r.safeZone,s=this._getItemHandleRect(t,r.handle,eY),l=eH,c=null,u=null,d=!1,p=null,f=null,m=null,_=null,h=null,g=0;g=eq(s,l=eL(u,l))||(p=eF("number"==typeof c.threshold?c.threshold:a,i,d?s.width:s.height,d?l.width:l.height),(f=9===e.direction?s.left-(l.left-p.offset):5===e.direction?l.right+p.offset-s.right:10===e.direction?s.top-(l.top-p.offset):l.bottom+p.offset-s.bottom)>p.value)||(m=d?eD(u):ej(u),h=4&e.direction?m>=_:m<=0))break;return e.maxValue=_,e.threshold=p.value,e.distance=f,e.isEnding=!1,!0}return!0===r.smoothStop&&e.speed>0?(null===h&&(h=e.hasReachedEnd()),e.isEnding=!h):e.isEnding=!1,e.isEnding},ez.prototype._updateRequests=function(){for(var e,t,r,n,o,a,i,s=this._items,l=this._requests[1],c=this._requests[2],u=0;u0&&this._tickTime-n>this._overlapCheckInterval,a=!0,(t=l[e._id])&&t.isActive&&(a=!this._updateScrollRequest(t))&&(o=!0,this._cancelItemScroll(e,1)),i=!0,(r=c[e._id])&&r.isActive&&(i=!this._updateScrollRequest(r))&&(o=!0,this._cancelItemScroll(e,2)),o&&(this._requestOverlapCheck[e._id]=0,this._checkItemOverlap(e,a,i))},ez.prototype._requestAction=function(e,t){for(var r=this._actions,n=1===t,o=null,a=0;aa?5:ni?6:on?n:t<0?Math.max(n+t+1,0):t}function e0(e,t,r){if(!(e.length<2)){var n=eJ(e,t),o=eJ(e,r);n!==o&&e.splice(o,0,e.splice(n,1)[0])}}function e1(e,t,r){if(!(e.length<2)){var n,o=eJ(e,t),a=eJ(e,r);o!==a&&(n=e[o],e[o]=e[a],e[a]=n)}}var e2=V(document.documentElement.style,"transform")||"transform",e3=/([A-Z])/g,e8=/^(webkit-|moz-|ms-|o-)/,e4=/^(-m-s-)/;function e6(e){var t=e.replace(e3,"-$1").toLowerCase();return(t=t.replace(e8,"-$1")).replace(e4,"-ms-")}var e5=e6(e2);function e7(e){for(var t=document,r=e||t;r&&r!==t&&"static"===eI(r,"position")&&!function(e){var t=eI(e,e5);if(!t||"none"===t)return!1;var r=eI(e,"display");return"inline"!==r&&"none"!==r}(r);)r=r.parentElement||t;return r}var e9={},te={},tt={};function tr(e,t){var r,n=t||{};return n.left=0,n.top=0,e===document||(n.left=window.pageXOffset||0,n.top=window.pageYOffset||0,e.self===window.self||(r=e.getBoundingClientRect(),n.left+=r.left,n.top+=r.top,n.left+=eR(e,"border-left-width"),n.top+=eR(e,"border-top-width"))),n}function tn(e,t,r){return tt.left=0,tt.top=0,e===t||r&&(e=e7(e))===(t=e7(t))||(tr(e,e9),tr(t,te),tt.left=te.left-e9.left,tt.top=te.top-e9.top),tt}function to(e){return"auto"===e||"scroll"===e||"overlay"===e}function ta(e,t){for(t=t||[];e&&e!==document;){var r;if(e.getRootNode&&e instanceof DocumentFragment){e=e.getRootNode().host;continue}(to(eI(r=e,"overflow"))||to(eI(r,"overflow-x"))||to(eI(r,"overflow-y")))&&t.push(e),e=e.parentNode}return t.push(window),t}var ti={},ts=/^matrix3d/,tl=/([^,]*,){4}/,tc=/([^,]*,){12}/,tu=/[^,]*,/;function td(e){ti.x=0,ti.y=0;var t=eI(e,e5);if(!t||"none"===t)return ti;var r=ts.test(t),n=t.replace(r?tc:tl,""),o=n.replace(tu,"");return ti.x=parseFloat(n)||0,ti.y=parseFloat(o)||0,ti}function tp(e,t){t&&(e.classList?e.classList.remove(t):eQ(e,"."+t)&&(e.className=(" "+e.className+" ").replace(" "+t+" "," ").trim()))}var tf=/^(iPad|iPhone|iPod)/.test(window.navigator.platform)||/^Mac/.test(window.navigator.platform)&&window.navigator.maxTouchPoints>1,tm=!!F()&&{passive:!0};function t_(e){var t=e._element,r=e.getGrid(),n=r._settings;this._item=e,this._gridId=r._id,this._isDestroyed=!1,this._isMigrating=!1,this._startPredicate=eT(n.dragStartPredicate)?n.dragStartPredicate:t_.defaultStartPredicate,this._startPredicateState=0,this._startPredicateResult=void 0,this._isSortNeeded=!1,this._sortTimer=void 0,this._blockedSortIndex=null,this._sortX1=0,this._sortX2=0,this._sortY1=0,this._sortY2=0,this._reset(),this._preStartCheck=this._preStartCheck.bind(this),this._preEndCheck=this._preEndCheck.bind(this),this._onScroll=this._onScroll.bind(this),this._prepareStart=this._prepareStart.bind(this),this._applyStart=this._applyStart.bind(this),this._prepareMove=this._prepareMove.bind(this),this._applyMove=this._applyMove.bind(this),this._prepareScroll=this._prepareScroll.bind(this),this._applyScroll=this._applyScroll.bind(this),this._handleSort=this._handleSort.bind(this),this._handleSortDelayed=this._handleSortDelayed.bind(this),this._handle=n.dragHandle&&t.querySelector(n.dragHandle)||t,this._dragger=new K(this._handle,n.dragCssProps),this._dragger.on("start",this._preStartCheck),this._dragger.on("move",this._preStartCheck),this._dragger.on("cancel",this._preEndCheck),this._dragger.on("end",this._preEndCheck)}function th(e,t){var r,n,o={};if(Array.isArray(t))for(n=0;n=f)&&!(p>=m)&&(a.left=d,a.top=p,a.width=f-d,a.height=m-p,(n=eq(o,a))>r&&n>b&&(b=n,h=l))}return s.length=0,h}(e,u,d);if(!h)return null;var g=e.getGrid()!==h,b=0,y=0,S=0,E=-1,x=!1;for(h===u?(o.left=c._gridX+e._marginLeft,o.top=c._gridY+e._marginTop):(h._updateBorders(1,0,1,0),b=h._left+h._borderLeft,y=h._top+h._borderTop),l=0;lS&&(E=l,S=n));return(g&&S=d)?(i.grid=h,i.index=E,i.action=g?f:p,i):null}),t_.prototype.stop=function(){if(this._isActive){if(this._isMigrating){this._finishMigration();return}var e=this._item,t=e._id;if(t_.autoScroller.removeItem(e),eb(t),ey(t),eS(t),this._cancelSort(),this._isStarted){this._unbindScrollListeners();var r=e._element,n=this._getGrid(),o=n._settings.itemDraggingClass;r.parentNode!==n._element&&(n._element.appendChild(r),e._setTranslate(this._gridX,this._gridY),o&&r.clientWidth),tp(r,o)}this._reset()}},t_.prototype.sort=function(e){var t=this._item;this._isActive&&t._isActive&&this._dragMoveEvent&&(!0===e?this._handleSort():eE(t._id,this._handleSort))},t_.prototype.destroy=function(){this._isDestroyed||(this.stop(),this._dragger.destroy(),t_.autoScroller.removeItem(this._item),this._isDestroyed=!0)},t_.prototype._getGrid=function(){return p[this._gridId]||null},t_.prototype._reset=function(){this._isActive=!1,this._isStarted=!1,this._container=null,this._containingBlock=null,this._dragStartEvent=null,this._dragMoveEvent=null,this._dragPrevMoveEvent=null,this._scrollEvent=null,this._scrollers=[],this._left=0,this._top=0,this._gridX=0,this._gridY=0,this._clientX=0,this._clientY=0,this._scrollDiffX=0,this._scrollDiffY=0,this._moveDiffX=0,this._moveDiffY=0,this._containerDiffX=0,this._containerDiffY=0},t_.prototype._bindScrollListeners=function(){var e,t,r=this._getGrid()._element,n=this._container,o=this._scrollers;if(o.length=0,ta(this._item._element.parentNode,o),n!==r)for(ta(r,e=[]),t=0;to.indexOf(e[t])&&o.push(e[t]);for(t=0;tMath.abs(e.deltaX)&&2>Math.abs(e.deltaY)&&e.deltaTime<200;this._resetStartPredicate(),r&&function(e){if("a"===e.tagName.toLowerCase()){var t=e.getAttribute("href");if(t){var r=e.getAttribute("target");r&&"_self"!==r?window.open(t,r):window.location.href=t}}}(t)},t_.prototype._resetHeuristics=function(e,t){this._blockedSortIndex=null,this._sortX1=this._sortX2=e,this._sortY1=this._sortY2=t},t_.prototype._checkHeuristics=function(e,t){var r=this._getGrid()._settings.dragSortHeuristics,n=r.minDragDistance;if(n<=0)return this._blockedSortIndex=null,!0;var o=e-this._sortX2,a=t-this._sortY2,i=n>3&&r.minBounceBackAngle>0;if(i||(this._blockedSortIndex=null),Math.abs(o)>n||Math.abs(a)>n){if(i){var s=Math.atan2(o,a),l=Math.atan2(this._sortX2-this._sortX1,this._sortY2-this._sortY1);Math.abs(Math.atan2(Math.sin(s-l),Math.cos(s-l)))>r.minBounceBackAngle&&(this._blockedSortIndex=null)}return this._sortX1=this._sortX2,this._sortY1=this._sortY2,this._sortX2=e,this._sortY2=t,!0}return!1},t_.prototype._resetStartPredicate=function(){var e=this._startPredicateData;e&&(e.delayTimer&&(e.delayTimer=window.clearTimeout(e.delayTimer)),this._startPredicateData=null)},t_.prototype._handleSort=function(){if(this._isActive){var e=this._getGrid()._settings;if(!e.dragSort||!e.dragAutoScroll.sortDuringScroll&&t_.autoScroller.isItemScrolling(this._item)){this._sortX1=this._sortX2=this._gridX,this._sortY1=this._sortY2=this._gridY,this._isSortNeeded=!0,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer));return}var t=this._checkHeuristics(this._gridX,this._gridY);if(this._isSortNeeded||t){var r=e.dragSortHeuristics.sortInterval;r<=0||this._isSortNeeded?(this._isSortNeeded=!1,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer)),this._checkOverlap()):void 0===this._sortTimer&&(this._sortTimer=window.setTimeout(this._handleSortDelayed,r))}}},t_.prototype._handleSortDelayed=function(){this._isSortNeeded=!0,this._sortTimer=void 0,eE(this._item._id,this._handleSort)},t_.prototype._cancelSort=function(){var e;this._isSortNeeded=!1,void 0!==this._sortTimer&&(this._sortTimer=window.clearTimeout(this._sortTimer)),e=this._item._id,eh.remove(1,ec+e)},t_.prototype._finishSort=function(){var e=this._getGrid()._settings.dragSort&&(this._isSortNeeded||void 0!==this._sortTimer);this._cancelSort(),e&&this._checkOverlap()},t_.prototype._checkOverlap=function(){if(this._isActive){var e,t,r,n,o,a,i,s,l=this._item,c=this._getGrid()._settings;(e=eT(c.dragSortPredicate)?c.dragSortPredicate(l,this._dragMoveEvent):t_.defaultSortPredicate(l,c.dragSortPredicate))&&"number"==typeof e.index&&(i=e.action===m?m:_,t=l.getGrid(),n=e.grid||t,s=t!==n,r=t._items.indexOf(l),o=eJ(n._items,e.index,s&&i===_?1:0),(s||o!==this._blockedSortIndex)&&(s?(this._blockedSortIndex=null,a=n._items[o],t._hasListeners(w)&&t._emit(w,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),n._hasListeners(R)&&n._emit(R,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),l._gridId=n._id,this._isMigrating=l._gridId!==this._gridId,t._items.splice(r,1),eZ(n._items,l,o),l._sortData=null,t._hasListeners(T)&&t._emit(T,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),n._hasListeners(I)&&n._emit(I,{item:l,fromGrid:t,fromIndex:r,toGrid:n,toIndex:o}),i===m&&a&&a.isActive()&&n._items.indexOf(a)>-1&&n.send(a,t,r,{appendTo:this._container||document.body,layoutSender:!1,layoutReceiver:!1}),t.layout(),n.layout()):r!==o&&(this._blockedSortIndex=r,(i===m?e1:e0)(t._items,r,o),t._hasListeners(C)&&t._emit(C,{item:l,fromIndex:r,toIndex:o,action:i}),t.layout())))}},t_.prototype._finishMigration=function(){var e,t,r=this._item,n=r._dragRelease,o=r._element,a=r._isActive,i=r.getGrid(),s=i._element,l=i._settings,c=l.dragContainer||s,u=this._getGrid()._settings,d=o.parentNode,p=a?u.itemVisibleClass:u.itemHiddenClass,f=a?l.itemVisibleClass:l.itemHiddenClass;this._isMigrating=!1,this.destroy(),u.itemClass!==l.itemClass&&(tp(o,u.itemClass),e$(o,l.itemClass)),p!==f&&(tp(o,p),e$(o,f)),c!==d&&(c.appendChild(o),t=tn(d,c,!0),e=td(o),e.x-=t.left,e.y-=t.top),r._refreshDimensions(),t=tn(c,s,!0),n._containerDiffX=t.left,n._containerDiffY=t.top,r._drag=l.dragEnabled?new t_(r):null,c!==d&&r._setTranslate(e.x,e.y),r._visibility.setStyles(a?l.visibleStyles:l.hiddenStyles),n.start()},t_.prototype._preStartCheck=function(e){0===this._startPredicateState&&(this._startPredicateState=1),1===this._startPredicateState?(this._startPredicateResult=this._startPredicate(this._item,e),!0===this._startPredicateResult?(this._startPredicateState=2,this._onStart(e)):!1===this._startPredicateResult&&(this._resetStartPredicate(e),this._dragger._reset(),this._startPredicateState=0)):2===this._startPredicateState&&this._isActive&&this._onMove(e)},t_.prototype._preEndCheck=function(e){var t=2===this._startPredicateState;this._startPredicate(this._item,e),this._startPredicateState=0,t&&this._isActive&&(this._isStarted?this._onEnd(e):this.stop())},t_.prototype._onStart=function(e){var t,r,n,o=this._item;o._isActive&&(this._isActive=!0,this._dragStartEvent=e,t_.autoScroller.addItem(o),t=o._id,r=this._prepareStart,n=this._applyStart,eh.add(0,en+t,r),eh.add(2,eo+t,n))},t_.prototype._prepareStart=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=e._element,r=this._getGrid(),n=r._settings,o=r._element,a=n.dragContainer||o,i=e7(a),s=td(t),l=t.getBoundingClientRect(),c=a!==o;if(this._container=a,this._containingBlock=i,this._clientX=l.left,this._clientY=l.top,this._left=this._gridX=s.x,this._top=this._gridY=s.y,this._scrollDiffX=this._scrollDiffY=0,this._moveDiffX=this._moveDiffY=0,this._resetHeuristics(this._gridX,this._gridY),c){var u=tn(i,o);this._containerDiffX=u.left,this._containerDiffY=u.top}}}},t_.prototype._applyStart=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=this._getGrid(),r=e._element,n=e._dragRelease,o=e._migrate,a=this._container!==t._element;e.isPositioning()&&e._layout.stop(!0,this._left,this._top),o._isActive&&(this._left-=o._containerDiffX,this._top-=o._containerDiffY,this._gridX-=o._containerDiffX,this._gridY-=o._containerDiffY,o.stop(!0,this._left,this._top)),e.isReleasing()&&n._reset(),t._settings.dragPlaceholder.enabled&&e._dragPlaceholder.create(),this._isStarted=!0,t._emit("dragInit",e,this._dragStartEvent),a&&(r.parentNode===this._container?(this._gridX-=this._containerDiffX,this._gridY-=this._containerDiffY):(this._left+=this._containerDiffX,this._top+=this._containerDiffY,this._container.appendChild(r),e._setTranslate(this._left,this._top))),e$(r,t._settings.itemDraggingClass),this._bindScrollListeners(),t._emit("dragStart",e,this._dragStartEvent)}}},t_.prototype._onMove=function(e){var t,r,n,o=this._item;if(!o._isActive){this.stop();return}this._dragMoveEvent=e,t=o._id,r=this._prepareMove,n=this._applyMove,eh.add(0,ea+t,r),eh.add(2,ei+t,n),eE(o._id,this._handleSort)},t_.prototype._prepareMove=function(){if(this._isActive&&this._item._isActive){var e=this._getGrid()._settings.dragAxis,t=this._dragMoveEvent,r=this._dragPrevMoveEvent||this._dragStartEvent||t;if("y"!==e){var n=t.clientX-r.clientX;this._left=this._left-this._moveDiffX+n,this._gridX=this._gridX-this._moveDiffX+n,this._clientX=this._clientX-this._moveDiffX+n,this._moveDiffX=n}if("x"!==e){var o=t.clientY-r.clientY;this._top=this._top-this._moveDiffY+o,this._gridY=this._gridY-this._moveDiffY+o,this._clientY=this._clientY-this._moveDiffY+o,this._moveDiffY=o}this._dragPrevMoveEvent=t}},t_.prototype._applyMove=function(){if(this._isActive){var e=this._item;e._isActive&&(this._moveDiffX=this._moveDiffY=0,e._setTranslate(this._left,this._top),this._getGrid()._emit("dragMove",e,this._dragMoveEvent),t_.autoScroller.updateItem(e))}},t_.prototype._onScroll=function(e){var t,r,n,o=this._item;if(!o._isActive){this.stop();return}this._scrollEvent=e,t=o._id,r=this._prepareScroll,n=this._applyScroll,eh.add(0,es+t,r),eh.add(2,el+t,n),eE(o._id,this._handleSort)},t_.prototype._prepareScroll=function(){if(this._isActive){var e=this._item;if(e._isActive){var t=e._element,r=this._getGrid()._element,n=t.getBoundingClientRect();if(this._container!==r){var o=tn(this._containingBlock,r);this._containerDiffX=o.left,this._containerDiffY=o.top}var a=this._clientX-this._moveDiffX-n.left;this._left=this._left-this._scrollDiffX+a,this._scrollDiffX=a;var i=this._clientY-this._moveDiffY-n.top;this._top=this._top-this._scrollDiffY+i,this._scrollDiffY=i,this._gridX=this._left-this._containerDiffX,this._gridY=this._top-this._containerDiffY}}},t_.prototype._applyScroll=function(){if(this._isActive){var e=this._item;e._isActive&&(this._scrollDiffX=this._scrollDiffY=0,e._setTranslate(this._left,this._top),this._getGrid()._emit("dragScroll",e,this._scrollEvent))}},t_.prototype._onEnd=function(e){var t=this._item,r=t._element,n=this._getGrid(),o=n._settings,a=t._dragRelease;if(!t._isActive){this.stop();return}eb(t._id),ey(t._id),eS(t._id),this._finishSort(),this._unbindScrollListeners(),a._containerDiffX=this._containerDiffX,a._containerDiffY=this._containerDiffY,this._reset(),tp(r,o.itemDraggingClass),t_.autoScroller.removeItem(t),n._emit("dragEnd",t,e),this._isMigrating?this._finishMigration():a.start()};var tv=/^(webkit|moz|ms|o|Webkit|Moz|MS|O)(?=[A-Z])/,tg={};function tb(e,t){for(var r in t)e.style[r]=t[r]}var ty=!!(Element&&eT(Element.prototype.animate)),tS=!!(Element&&(l=Element.prototype.animate,c=window.Symbol,l&&eT(c)&&eT(c.toString)&&c(l).toString().indexOf("[native code]")>-1));function tE(e){this._element=e,this._animation=null,this._duration=0,this._easing="",this._callback=null,this._props=[],this._values=[],this._isDestroyed=!1,this._onFinish=this._onFinish.bind(this)}function tx(e,t){var r={};for(var n in e)r[t?n:function(e){var t=tg[e];return t||((t=e.replace(tv,""))!==e&&(t=t[0].toLowerCase()+t.slice(1)),tg[e]=t),t}(n)]=e[n];return r}function tC(e,t){return"translateX("+e+"px) translateY("+t+"px)"}function tT(e){this._item=e,this._animation=new tE,this._element=null,this._className="",this._didMigrate=!1,this._resetAfterLayout=!1,this._left=0,this._top=0,this._transX=0,this._transY=0,this._nextTransX=0,this._nextTransY=0,this._setupAnimation=this._setupAnimation.bind(this),this._startAnimation=this._startAnimation.bind(this),this._updateDimensions=this._updateDimensions.bind(this),this._onLayoutStart=this._onLayoutStart.bind(this),this._onLayoutEnd=this._onLayoutEnd.bind(this),this._onReleaseEnd=this._onReleaseEnd.bind(this),this._onMigrate=this._onMigrate.bind(this),this._onHide=this._onHide.bind(this)}function tw(e){this._item=e,this._isActive=!1,this._isDestroyed=!1,this._isPositioningStarted=!1,this._containerDiffX=0,this._containerDiffY=0}function tI(e){var t=e._element,r=t.style;this._item=e,this._isActive=!1,this._isDestroyed=!1,this._isInterrupted=!1,this._currentStyles={},this._targetStyles={},this._nextLeft=0,this._nextTop=0,this._offsetLeft=0,this._offsetTop=0,this._skipNextAnimation=!1,this._animOptions={onFinish:this._finish.bind(this),duration:0,easing:0},r.left="0px",r.top="0px",e._setTranslate(0,0),this._animation=new tE(t),this._queue="layout-"+e._id,this._setupAnimation=this._setupAnimation.bind(this),this._startAnimation=this._startAnimation.bind(this)}function tR(e){this._item=e,this._isActive=!1,this._isDestroyed=!1,this._container=!1,this._containerDiffX=0,this._containerDiffY=0}function tA(e){var t=e._isActive,r=e._element,n=r.children[0],o=e.getGrid()._settings;if(!n)throw Error("No valid child element found within item element.");this._item=e,this._isDestroyed=!1,this._isHidden=!t,this._isHiding=!1,this._isShowing=!1,this._childElement=n,this._currentStyleProps=[],this._animation=new tE(n),this._queue="visibility-"+e._id,this._finishShow=this._finishShow.bind(this),this._finishHide=this._finishHide.bind(this),r.style.display=t?"":"none",e$(r,t?o.itemVisibleClass:o.itemHiddenClass),this.setStyles(t?o.visibleStyles:o.hiddenStyles)}tE.prototype.start=function(e,t,r){if(!this._isDestroyed){var n,o,a,i=this._element,s=r||{};if(!ty){tb(i,t),this._callback=eT(s.onFinish)?s.onFinish:null,this._onFinish();return}var l=this._animation,c=this._props,u=this._values,d=s.duration||300,p=s.easing||"ease",f=!1;if(l&&(o=0,(d!==this._duration||p!==this._easing)&&(f=!0),!f)){for(n in t)if(++o,-1===(a=c.indexOf(n))||t[n]!==u[a]){f=!0;break}o!==c.length&&(f=!0)}if(f&&l.cancel(),this._callback=eT(s.onFinish)?s.onFinish:null,!l||f){for(n in c.length=u.length=0,t)c.push(n),u.push(t[n]);this._duration=d,this._easing=p,this._animation=i.animate([tx(e,tS),tx(t,tS)],{duration:d,easing:p}),this._animation.onfinish=this._onFinish,tb(i,t)}}},tE.prototype.stop=function(){!this._isDestroyed&&this._animation&&(this._animation.cancel(),this._animation=this._callback=null,this._props.length=this._values.length=0)},tE.prototype.getCurrentStyles=function(){return th(element,currentProps)},tE.prototype.isAnimating=function(){return!!this._animation},tE.prototype.destroy=function(){this._isDestroyed||(this.stop(),this._element=null,this._isDestroyed=!0)},tE.prototype._onFinish=function(){var e=this._callback;this._animation=this._callback=null,this._props.length=this._values.length=0,e&&e()},tT.prototype._updateDimensions=function(){this.isActive()&&tb(this._element,{width:this._item._width+"px",height:this._item._height+"px"})},tT.prototype._onLayoutStart=function(e,t){var r=this._item;if(-1===e.indexOf(r)){this.reset();return}var n=r._left,o=r._top,a=this._left,i=this._top;if(this._left=n,this._top=o,t||this._didMigrate||a!==n||i!==o){var s,l,c,u=n+r._marginLeft,d=o+r._marginTop,p=r.getGrid();if(!(!t&&p._settings.layoutDuration>0)||this._didMigrate){ex(r._id),this._element.style[e2]=tC(u,d),this._animation.stop(),this._didMigrate&&(p.getElement().appendChild(this._element),this._didMigrate=!1);return}this._nextTransX=u,this._nextTransY=d,s=r._id,l=this._setupAnimation,c=this._startAnimation,eh.add(0,eu+s,l),eh.add(2,ed+s,c)}},tT.prototype._setupAnimation=function(){if(this.isActive()){var e=td(this._element);this._transX=e.x,this._transY=e.y}},tT.prototype._startAnimation=function(){if(this.isActive()){var e=this._animation,t=this._transX,r=this._transY,n=this._nextTransX,o=this._nextTransY;if(t===n&&r===o){e.isAnimating()&&(this._element.style[e2]=tC(n,o),e.stop());return}var a=this._item.getGrid()._settings,i={},s={};i[e2]=tC(t,r),s[e2]=tC(n,o),e.start(i,s,{duration:a.layoutDuration,easing:a.layoutEasing,onFinish:this._onLayoutEnd})}},tT.prototype._onLayoutEnd=function(){this._resetAfterLayout&&this.reset()},tT.prototype._onReleaseEnd=function(e){if(e._id===this._item._id){if(!this._animation.isAnimating()){this.reset();return}this._resetAfterLayout=!0}},tT.prototype._onMigrate=function(e){if(e.item===this._item){var t=this._item.getGrid(),r=e.toGrid;t.off(A,this._onReleaseEnd),t.off(h,this._onLayoutStart),t.off(w,this._onMigrate),t.off(S,this._onHide),r.on(A,this._onReleaseEnd),r.on(h,this._onLayoutStart),r.on(w,this._onMigrate),r.on(S,this._onHide),this._didMigrate=!0}},tT.prototype._onHide=function(e){e.indexOf(this._item)>-1&&this.reset()},tT.prototype.create=function(){if(this.isActive()){this._resetAfterLayout=!1;return}var e,t=this._item,r=t.getGrid(),n=r._settings,o=this._animation;this._left=t._left,this._top=t._top,e=eT(n.dragPlaceholder.createElement)?n.dragPlaceholder.createElement(t):document.createElement("div"),this._element=e,o._element=e,this._className=n.itemPlaceholderClass||"",this._className&&e$(e,this._className),tb(e,{position:"absolute",left:"0px",top:"0px",width:t._width+"px",height:t._height+"px"}),e.style[e2]=tC(t._left+t._marginLeft,t._top+t._marginTop),r.on(h,this._onLayoutStart),r.on(A,this._onReleaseEnd),r.on(w,this._onMigrate),r.on(S,this._onHide),eT(n.dragPlaceholder.onCreate)&&n.dragPlaceholder.onCreate(t,e),r.getElement().appendChild(e)},tT.prototype.reset=function(){if(this.isActive()){var e,t=this._element,r=this._item,n=r.getGrid(),o=n._settings,a=this._animation;this._resetAfterLayout=!1,ex(r._id),e=r._id,eh.remove(2,ep+e),a.stop(),a._element=null,n.off(A,this._onReleaseEnd),n.off(h,this._onLayoutStart),n.off(w,this._onMigrate),n.off(S,this._onHide),this._className&&(tp(t,this._className),this._className=""),t.parentNode.removeChild(t),this._element=null,eT(o.dragPlaceholder.onRemove)&&o.dragPlaceholder.onRemove(r,t)}},tT.prototype.isActive=function(){return!!this._element},tT.prototype.getElement=function(){return this._element},tT.prototype.updateDimensions=function(){if(this.isActive()){var e,t;e=this._item._id,t=this._updateDimensions,eh.add(2,ep+e,t)}},tT.prototype.destroy=function(){this.reset(),this._animation.destroy(),this._item=this._animation=null},tw.prototype.start=function(){if(!this._isDestroyed&&!this._isActive){var e=this._item,t=e.getGrid(),r=t._settings;this._isActive=!0,e$(e._element,r.itemReleasingClass),r.dragRelease.useDragContainer||this._placeToGrid(),t._emit("dragReleaseStart",e),t._nextLayoutData||e._layout.start(!1)}},tw.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n=this._item,o=n.getGrid();e||void 0!==t&&void 0!==r||(t=n._left,r=n._top);var a=this._placeToGrid(t,r);this._reset(a),e||o._emit(A,n)}},tw.prototype.isJustReleased=function(){return this._isActive&&!1===this._isPositioningStarted},tw.prototype.destroy=function(){this._isDestroyed||(this.stop(!0),this._item=null,this._isDestroyed=!0)},tw.prototype._placeToGrid=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=r.getGrid()._element,a=!1;if(n.parentNode!==o){if(void 0===e||void 0===t){var i=td(n);e=i.x-this._containerDiffX,t=i.y-this._containerDiffY}o.appendChild(n),r._setTranslate(e,t),a=!0}return this._containerDiffX=0,this._containerDiffY=0,a}},tw.prototype._reset=function(e){if(!this._isDestroyed){var t=this._item,r=t.getGrid()._settings.itemReleasingClass;this._isActive=!1,this._isPositioningStarted=!1,this._containerDiffX=0,this._containerDiffY=0,r&&(e&&t._element.clientWidth,tp(t._element,r))}},tI.prototype.start=function(e,t){if(!this._isDestroyed){var r,n,o,a=this._item,i=a._dragRelease,s=a.getGrid()._settings,l=this._isActive,c=i.isJustReleased(),u=c?s.dragRelease.duration:s.layoutDuration,d=c?s.dragRelease.easing:s.layoutEasing,p=!e&&!this._skipNextAnimation&&u>0;if(l&&(ev(a._id),a._emitter.burst(this._queue,!0,a)),c&&(i._isPositioningStarted=!0),eT(t)&&a._emitter.on(this._queue,t),this._skipNextAnimation=!1,!p){this._updateOffsets(),a._setTranslate(this._nextLeft,this._nextTop),this._animation.stop(),this._finish();return}this._animation.isAnimating()&&(this._animation._animation.onfinish=null),this._isActive=!0,this._animOptions.easing=d,this._animOptions.duration=u,this._isInterrupted=l,r=a._id,n=this._setupAnimation,o=this._startAnimation,eh.add(0,J+r,n),eh.add(2,ee+r,o)}},tI.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n=this._item;if(ev(n._id),this._animation.isAnimating()){if(void 0===t||void 0===r){var o=td(n._element);t=o.x,r=o.y}n._setTranslate(t,r),this._animation.stop()}tp(n._element,n.getGrid()._settings.itemPositioningClass),this._isActive=!1,e&&n._emitter.burst(this._queue,!0,n)}},tI.prototype.destroy=function(){if(!this._isDestroyed){var e=this._item._element.style;this.stop(!0,0,0),this._item._emitter.clear(this._queue),this._animation.destroy(),e[e2]="",e.left="",e.top="",this._item=null,this._currentStyles=null,this._targetStyles=null,this._animOptions=null,this._isDestroyed=!0}},tI.prototype._updateOffsets=function(){if(!this._isDestroyed){var e=this._item,t=e._migrate,r=e._dragRelease;this._offsetLeft=r._isActive?r._containerDiffX:t._isActive?t._containerDiffX:0,this._offsetTop=r._isActive?r._containerDiffY:t._isActive?t._containerDiffY:0,this._nextLeft=this._item._left+this._offsetLeft,this._nextTop=this._item._top+this._offsetTop}},tI.prototype._finish=function(){if(!this._isDestroyed){var e=this._item,t=e._migrate,r=e._dragRelease;e._tX=this._nextLeft,e._tY=this._nextTop,this._isActive&&(this._isActive=!1,tp(e._element,e.getGrid()._settings.itemPositioningClass)),r._isActive&&r.stop(),t._isActive&&t.stop(),e._emitter.burst(this._queue,!1,e)}},tI.prototype._setupAnimation=function(){var e=this._item;if(void 0===e._tX||void 0===e._tY){var t=td(e._element);e._tX=t.x,e._tY=t.y}},tI.prototype._startAnimation=function(){var e=this._item,t=e.getGrid()._settings,r=this._animOptions.duration<=0;this._updateOffsets();var n=Math.abs(e._left-(e._tX-this._offsetLeft)),o=Math.abs(e._top-(e._tY-this._offsetTop));if(r||n<2&&o<2){(n||o||this._isInterrupted)&&e._setTranslate(this._nextLeft,this._nextTop),this._animation.stop(),this._finish();return}this._isInterrupted||e$(e._element,t.itemPositioningClass),this._currentStyles[e2]=tC(e._tX,e._tY),this._targetStyles[e2]=tC(this._nextLeft,this._nextTop),e._tX=e._tY=void 0,this._animation.start(this._currentStyles,this._targetStyles,this._animOptions)},tR.prototype.start=function(e,t,r){if(!this._isDestroyed){var n,o,a,i,s,l,c,u,d,p,f=this._item,m=f._element,_=f.isActive(),h=f.isVisible(),g=f.getGrid(),b=g._settings,y=e._settings,S=e._element,E=e._items,x=g._items.indexOf(f),C=r||document.body;if("number"==typeof t)n=eJ(E,t,1);else{if(!(o=e.getItem(t)))return;n=E.indexOf(o)}(f.isPositioning()||this._isActive||f.isReleasing())&&(c=(l=td(m)).x,u=l.y),f.isPositioning()&&f._layout.stop(!0,c,u),this._isActive&&(c-=this._containerDiffX,u-=this._containerDiffY,this.stop(!0,c,u)),f.isReleasing()&&(c-=f._dragRelease._containerDiffX,u-=f._dragRelease._containerDiffY,f._dragRelease.stop(!0,c,u)),f._visibility.stop(!0),f._drag&&f._drag.destroy(),g._hasListeners(w)&&g._emit(w,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),e._hasListeners(R)&&e._emit(R,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),b.itemClass!==y.itemClass&&(tp(m,b.itemClass),e$(m,y.itemClass)),(d=h?b.itemVisibleClass:b.itemHiddenClass)!==(p=h?y.itemVisibleClass:y.itemHiddenClass)&&(tp(m,d),e$(m,p)),g._items.splice(x,1),eZ(E,f,n),f._gridId=e._id,_?C!==(a=m.parentNode)&&(C.appendChild(m),i=tn(C,a,!0),l||(c=(l=td(m)).x,u=l.y),f._setTranslate(c+i.left,u+i.top)):S.appendChild(m),f._visibility.setStyles(h?y.visibleStyles:y.hiddenStyles),_&&(s=tn(C,S,!0)),f._refreshDimensions(),f._sortData=null,f._drag=y.dragEnabled?new t_(f):null,_?(this._isActive=!0,this._container=C,this._containerDiffX=s.left,this._containerDiffY=s.top):(this._isActive=!1,this._container=null,this._containerDiffX=0,this._containerDiffY=0),g._hasListeners(T)&&g._emit(T,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n}),e._hasListeners(I)&&e._emit(I,{item:f,fromGrid:g,fromIndex:x,toGrid:e,toIndex:n})}},tR.prototype.stop=function(e,t,r){if(!this._isDestroyed&&this._isActive){var n,o=this._item,a=o._element,i=o.getGrid()._element;this._container!==i&&((void 0===t||void 0===r)&&(e?(t=(n=td(a)).x-this._containerDiffX,r=n.y-this._containerDiffY):(t=o._left,r=o._top)),i.appendChild(a),o._setTranslate(t,r)),this._isActive=!1,this._container=null,this._containerDiffX=0,this._containerDiffY=0}},tR.prototype.destroy=function(){this._isDestroyed||(this.stop(!0),this._item=null,this._isDestroyed=!0)},tA.prototype.show=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=eT(t)?t:null,a=r.getGrid()._settings;if(!this._isShowing&&!this._isHidden){o&&o(!1,r);return}if(this._isShowing&&!e){o&&r._emitter.on(this._queue,o);return}this._isShowing||(r._emitter.burst(this._queue,!0,r),tp(n,a.itemHiddenClass),e$(n,a.itemVisibleClass),this._isHiding||(n.style.display="")),o&&r._emitter.on(this._queue,o),this._isShowing=!0,this._isHiding=this._isHidden=!1,this._startAnimation(!0,e,this._finishShow)}},tA.prototype.hide=function(e,t){if(!this._isDestroyed){var r=this._item,n=r._element,o=eT(t)?t:null,a=r.getGrid()._settings;if(!this._isHiding&&this._isHidden){o&&o(!1,r);return}if(this._isHiding&&!e){o&&r._emitter.on(this._queue,o);return}this._isHiding||(r._emitter.burst(this._queue,!0,r),e$(n,a.itemHiddenClass),tp(n,a.itemVisibleClass)),o&&r._emitter.on(this._queue,o),this._isHidden=this._isHiding=!0,this._isShowing=!1,this._startAnimation(!1,e,this._finishHide)}},tA.prototype.stop=function(e){if(!this._isDestroyed&&(this._isHiding||this._isShowing)){var t=this._item;eg(t._id),this._animation.stop(),e&&t._emitter.burst(this._queue,!0,t)}},tA.prototype.setStyles=function(e){var t=this._childElement,r=this._currentStyleProps;for(var n in this._removeCurrentStyles(),e)r.push(n),t.style[n]=e[n]},tA.prototype.destroy=function(){if(!this._isDestroyed){var e=this._item,t=e._element,r=e.getGrid()._settings;this.stop(!0),e._emitter.clear(this._queue),this._animation.destroy(),this._removeCurrentStyles(),tp(t,r.itemVisibleClass),tp(t,r.itemHiddenClass),t.style.display="",this._isHiding=this._isShowing=!1,this._isDestroyed=this._isHidden=!0}},tA.prototype._startAnimation=function(e,t,r){if(!this._isDestroyed){var n,o,a,i,s=this._item,l=this._animation,c=this._childElement,u=s.getGrid()._settings,d=e?u.visibleStyles:u.hiddenStyles,p=e?u.showDuration:u.hideDuration,f=e?u.showEasing:u.hideEasing,m=t||p<=0;if(!d){r&&r();return}if(eg(s._id),m){tb(c,d),l.stop(),r&&r();return}l.isAnimating()&&(l._animation.onfinish=null),n=s._id,o=function(){i=th(c,d)},a=function(){l.start(i,d,{duration:p,easing:f,onFinish:r})},eh.add(0,et+n,o),eh.add(2,er+n,a)}},tA.prototype._finishShow=function(){this._isHidden||(this._isShowing=!1,this._item._emitter.burst(this._queue,!1,this._item))},tA.prototype._finishHide=function(){if(this._isHidden){var e=this._item;this._isHiding=!1,e._layout.stop(!0,0,0),e._element.style.display="none",e._emitter.burst(this._queue,!1,e)}},tA.prototype._removeCurrentStyles=function(){for(var e=this._childElement,t=this._currentStyleProps,r=0;re.width&&(e.width=l.left+l.width):l.top+l.height>e.height&&(e.height=l.top+l.height),u[++this.slotIndex]=l.left,u[++this.slotIndex]=l.top,(f||m)&&this.slotSizes.push(l.width,l.height);if(f)for(n=0;ne.height+.001&&(u.left>.5&&p.push(this.addRect(0,e.height,u.left,1/0)),u.left+u.widthe.width+.001&&(u.top>.5&&p.push(this.addRect(e.width,0,1/0,u.top)),u.top+u.height1&&this.purgeRects(p).sort(o?this.sortRectsLeftTop:this.sortRectsTopLeft),this.currentRects=p,this.nextRects=d,u},r.prototype.addRect=function(e,t,r,n){var o=++this.rectId;return this.rectStore[o]=e||0,this.rectStore[++this.rectId]=t||0,this.rectStore[++this.rectId]=r||0,this.rectStore[++this.rectId]=n||0,o},r.prototype.getRect=function(e,t){return t||(t=this.rectTarget),t.left=this.rectStore[e]||0,t.top=this.rectStore[++e]||0,t.width=this.rectStore[++e]||0,t.height=this.rectStore[++e]||0,t},r.prototype.splitRect=(n=[],o=0,a=0,function(e,t){return(n.length=0,e.left+e.width<=t.left+.001||t.left+t.width<=e.left+.001||e.top+e.height<=t.top+.001||t.top+t.height<=e.top+.001)?n.push(this.addRect(e.left,e.top,e.width,e.height)):((o=t.left-e.left)>=.5&&n.push(this.addRect(e.left,e.top,o,e.height)),(o=e.left+e.width-(t.left+t.width))>=.5&&n.push(this.addRect(t.left+t.width,e.top,o,e.height)),(a=t.top-e.top)>=.5&&n.push(this.addRect(e.left,e.top,e.width,a)),(a=e.top+e.height-(t.top+t.height))>=.5&&n.push(this.addRect(e.left,t.top+t.height,e.width,a))),n}),r.prototype.isRectAWithinRectB=function(e,t){return e.left+.001>=t.left&&e.top+.001>=t.top&&e.left+e.width-.001<=t.left+t.width&&e.top+e.height-.001<=t.top+t.height},r.prototype.purgeRects=(i={},s={},function(e){for(var t,r=e.length;r--;)if(t=e.length,e[r]){for(this.getRect(e[r],i);t--;)if(e[t]&&r!==t&&(this.getRect(e[t],s),this.isRectAWithinRectB(i,s))){e[r]=0;break}}return e}),r.prototype.sortRectsTopLeft=(l={},c={},function(e,t){return this.getRect(e,l),this.getRect(t,c),l.topc.top&&l.top-.001>c.top?1:l.leftc.left&&l.left-.001>c.left?1:0}),r.prototype.sortRectsLeftTop=(u={},d={},function(e,t){return this.getRect(e,u),this.getRect(t,d),u.leftd.left&&u.left-.001d.top&&u.top-.001>d.top?1:0}),e){var n,o,a,i,s,l,c,u,d,p=new r;self.onmessage=function(e){var t=new Float32Array(e.data),r=t.subarray(4,t.length),n=new Float32Array(r.length),o=t[3],a={items:r,slots:n,width:t[1],height:t[2]};p.computeLayout(a,o),t[1]=a.width,t[2]=a.height,t.set(a.slots,4),postMessage(t.buffer,[t.buffer])}}return r}tk.prototype.getGrid=function(){return p[this._gridId]},tk.prototype.getElement=function(){return this._element},tk.prototype.getWidth=function(){return this._width},tk.prototype.getHeight=function(){return this._height},tk.prototype.getMargin=function(){return{left:this._marginLeft,right:this._marginRight,top:this._marginTop,bottom:this._marginBottom}},tk.prototype.getPosition=function(){return{left:this._left,top:this._top}},tk.prototype.isActive=function(){return this._isActive},tk.prototype.isVisible=function(){return!!this._visibility&&!this._visibility._isHidden},tk.prototype.isShowing=function(){return!!(this._visibility&&this._visibility._isShowing)},tk.prototype.isHiding=function(){return!!(this._visibility&&this._visibility._isHiding)},tk.prototype.isPositioning=function(){return!!(this._layout&&this._layout._isActive)},tk.prototype.isDragging=function(){return!!(this._drag&&this._drag._isActive)},tk.prototype.isReleasing=function(){return!!(this._dragRelease&&this._dragRelease._isActive)},tk.prototype.isDestroyed=function(){return this._isDestroyed},tk.prototype._refreshDimensions=function(e){if(!this._isDestroyed&&(!0===e||!this._visibility._isHidden)){var t=this._element,r=this._dragPlaceholder,n=t.getBoundingClientRect();this._width=n.width,this._height=n.height,this._marginLeft=Math.max(0,eR(t,"margin-left")),this._marginRight=Math.max(0,eR(t,"margin-right")),this._marginTop=Math.max(0,eR(t,"margin-top")),this._marginBottom=Math.max(0,eR(t,"margin-bottom")),r&&r.updateDimensions()}},tk.prototype._refreshSortData=function(){if(!this._isDestroyed){var e,t=this._sortData={},r=this.getGrid()._settings.sortData;for(e in r)t[e]=r[e](this,this._element)}},tk.prototype._addToLayout=function(e,t){!0!==this._isActive&&(this._isActive=!0,this._left=e||0,this._top=t||0)},tk.prototype._removeFromLayout=function(){!1!==this._isActive&&(this._isActive=!1,this._left=0,this._top=0)},tk.prototype._canSkipLayout=function(e,t){return this._left===e&&this._top===t&&!this._migrate._isActive&&!this._layout._skipNextAnimation&&!this._dragRelease.isJustReleased()},tk.prototype._setTranslate=function(e,t){return(this._tX!==e||this._tY!==t)&&(this._tX=e,this._tY=t,this._element.style[e2]=tC(e,t),!0)},tk.prototype._destroy=function(e){if(!this._isDestroyed){var t=this._element,r=this.getGrid()._settings;this._dragPlaceholder.destroy(),this._dragRelease.destroy(),this._migrate.destroy(),this._layout.destroy(),this._visibility.destroy(),this._drag&&this._drag.destroy(),this._emitter.destroy(),tp(t,r.itemClass),e&&t.parentNode.removeChild(t),f&&f.delete(t),this._isActive=!1,this._isDestroyed=!0}};var tD=tO(),tj=null,tP=[];function tM(e,t){if(this._options=0,this._processor=null,this._layoutQueue=[],this._layouts={},this._layoutCallbacks={},this._layoutWorkers={},this._layoutWorkerData={},this._workers=[],this._onWorkerMessage=this._onWorkerMessage.bind(this),this.setOptions(t),(e="number"==typeof e?Math.max(0,e):0)&&window.Worker&&window.URL&&window.Blob)try{this._workers=function(e,t){var r=[];if(e>0){tj||(tj=URL.createObjectURL(new Blob(["("+tO.toString()+")(true)"],{type:"application/javascript"})));for(var n,o=0;o-1&&this._layoutQueue.splice(t,1)}},tM.prototype.destroy=function(){for(var e in this._layoutWorkers)this._workers.push(this._layoutWorkers[e]);(function(e){for(var t,r,n=0;n-1&&tP.splice(r,1);tj&&!tP.length&&(URL.revokeObjectURL(tj),tj=null)})(this._workers),this._workers.length=0,this._layoutQueue.length=0,this._layouts={},this._layoutCallbacks={},this._layoutWorkers={},this._layoutWorkerData={}};var tL=0;function tV(e){var t=Object.prototype.toString.call(e);return"[object HTMLCollection]"===t||"[object NodeList]"===t}var tF=Object.prototype.toString;function tB(e){return(void 0===e?"undefined":(0,d._)(e))==="object"&&"[object Object]"===tF.call(e)}function tU(){}var tG="number",tq="string",tY="instant",tH=0;function tz(e,t){if((void 0===e?"undefined":(0,d._)(e))===tq&&(e=document.querySelector(e)),!(e.getRootNode?e.getRootNode({composed:!0})===document:document.body.contains(e))||e===document.documentElement)throw Error("Container element must be an existing DOM element.");var r,n,o=(n=tW({},r=tz.defaultOptions),t&&(n=tW(n,t)),t&&t.visibleStyles?n.visibleStyles=t.visibleStyles:r&&r.visibleStyles&&(n.visibleStyles=r.visibleStyles),t&&t.hiddenStyles?n.hiddenStyles=t.hiddenStyles:r&&r.hiddenStyles&&(n.hiddenStyles=r.hiddenStyles),n);o.visibleStyles=tK(o.visibleStyles),o.hiddenStyles=tK(o.hiddenStyles),eT(o.dragSort)||(o.dragSort=!!o.dragSort),this._id=++tN,this._element=e,this._settings=o,this._isDestroyed=!1,this._items=[],this._layout={id:0,items:[],slots:[]},this._isLayoutFinished=!0,this._nextLayoutData=null,this._emitter=new D,this._onLayoutDataReceived=this._onLayoutDataReceived.bind(this),p[this._id]=this,e$(e,o.containerClass),function(e,t){if((void 0===t?"undefined":(0,d._)(t))!==tG&&(t=!0===t?0:-1),t>=0){var r,n,o,a,i,s,l;e._resizeHandler=(r=function(){e.refreshItems().layout()},n=t,o=++tL,a=0,i=0,s=!1,l=function(e){if(!s){if(i&&(a-=e-i),i=e,a>0){var t;t=l,eh.add(0,e_+o,t)}else a=i=0,r()}},function(e){if(!s){if(n<=0){!0!==e&&r();return}if(!0===e){s=!0,a=i=0,l=void 0,eh.remove(0,e_+o);return}a<=0?(a=n,l(0)):a=n}}),window.addEventListener("resize",e._resizeHandler)}}(this,o.layoutOnResize),this.add(function(e,t){if("*"===t)return e.children;if((void 0===t?"undefined":(0,d._)(t))===tq){for(var r=[],n=e.children,o=0;o-1?e:this._items.length+e]||null;if(e instanceof tk)return e._gridId===this._id?e:null;if(f){var t=f.get(e);return t&&t._gridId===this._id?t:null}for(var r=0;rl?1:0:lc?1:0)return u;return u||(n||(n=tQ(r)),u=t?t$(n,a,o):t$(n,o,a)),u}function a(o,a){var i=t?-e(o,a):e(o,a);return i||(n||(n=tQ(r)),i=t?t$(n,a,o):t$(n,o,a)),i}return function(i,s){if(this._isDestroyed||this._items.length<2)return this;var l=this._items,c=s||{},u=c.layout?c.layout:void 0===c.layout;if(t=!!c.descending,r=l.slice(0),n=null,eT(i))e=i,l.sort(a);else if((void 0===i?"undefined":(0,d._)(i))===tq)e=i.trim().split(" ").filter(function(e){return e}).map(function(e){return e.split(":")}),l.sort(o);else if(Array.isArray(i))l.length=0,l.push.apply(l,i);else throw e=t=r=n=null,Error("Invalid comparer argument provided.");return this._hasListeners(x)&&this._emit(x,l.slice(0),r),u&&this.layout(u===tY,eT(u)?u:void 0),e=t=r=n=null,this}}(),tz.prototype.move=function(e,t,r){if(this._isDestroyed||this._items.length<2)return this;var n,o,a=this._items,i=r||{},s=i.layout?i.layout:void 0===i.layout,l=i.action===m,c=this.getItem(e),u=this.getItem(t);return c&&u&&c!==u&&(n=a.indexOf(c),o=a.indexOf(u),l?e1(a,n,o):e0(a,n,o),this._hasListeners(C)&&this._emit(C,{item:c,fromIndex:n,toIndex:o,action:l?m:_}),s&&this.layout(s===tY,eT(s)?s:void 0)),this},tz.prototype.send=function(e,t,r,n){if(this._isDestroyed||t._isDestroyed||this===t||!(e=this.getItem(e)))return this;var o=n||{},a=o.appendTo||document.body,i=o.layoutSender?o.layoutSender:void 0===o.layoutSender,s=o.layoutReceiver?o.layoutReceiver:void 0===o.layoutReceiver;return e._migrate.start(t,r,a),e._migrate._isActive&&e._isActive&&(i&&this.layout(i===tY,eT(i)?i:void 0),s&&t.layout(s===tY,eT(s)?s:void 0)),this},tz.prototype.destroy=function(e){if(this._isDestroyed)return this;var t,r,n=this._element,o=this._items.slice(0),a=this._layout&&this._layout.styles||{};for(this._resizeHandler&&(this._resizeHandler(!0),window.removeEventListener("resize",this._resizeHandler),this._resizeHandler=null),t=0;t0},tz.prototype._updateBoundingRect=function(){var e=this._element.getBoundingClientRect();this._width=e.width,this._height=e.height,this._left=e.left,this._top=e.top,this._right=e.right,this._bottom=e.bottom},tz.prototype._updateBorders=function(e,t,r,n){var o=this._element;e&&(this._borderLeft=eR(o,"border-left-width")),t&&(this._borderRight=eR(o,"border-right-width")),r&&(this._borderTop=eR(o,"border-top-width")),n&&(this._borderBottom=eR(o,"border-bottom-width"))},tz.prototype._refreshDimensions=function(){this._updateBoundingRect(),this._updateBorders(1,1,1,1),this._boxSizing=eI(this._element,"box-sizing")},tz.prototype._onLayoutDataReceived=(u=[],function(e){if(!this._isDestroyed&&this._nextLayoutData&&this._nextLayoutData.id===e.id){var t,r,n,o,a=this,i=this._nextLayoutData.instant,s=this._nextLayoutData.onFinish,l=e.items.length,c=l;for(this._nextLayoutData=null,!this._isLayoutFinished&&this._hasListeners(b)&&this._emit(b,this._layout.items.slice(0)),this._layout=e,u.length=0,o=0;o0)){var t=a._layout.id!==e.id,r=eT(i)?i:s;t||(a._isLayoutFinished=!0),eT(r)&&r(e.items.slice(0),t),!t&&a._hasListeners(g)&&a._emit(g,e.items.slice(0))}};if(!u.length)return d(),this;for(o=0,this._isLayoutFinished=!1;o>>","background-color: #004400; font-weight: bold;"].concat((0,c._)(r)))}var g="Lobby",b=/*#__PURE__*/function(){function e(t,r,n){var o=this;(0,i._)(this,e),this.sync=!1,this.role="student",this.connected=!1,this.callback={},this.callbackUpdate={};var a=new p.Doc;this.y={doc:a,setup:a.getMap("setup"),users:a.getMap("users"),rooms:a.getMap("rooms"),chat:a.getArray("chat")},this.lab=t,this.peerID=(0,d.getPeerID)(),r&&(this.role="station",this.peerID="Station "+r),this.provider=new f.TrysteroProvider(this.lab.id+(this.lab.hash||""),this.y.doc,{appId:"edry-Lite",password:n,joinRoom:m.joinRoom,peerOpts:JSON.parse('{"rtcConfig":{"config":{"iceServers":[{"urls":"stun:stun.goldi-labs.de:3478"},{"urls":"turn:turn.goldi-labs.de:3478","username":"goldi","credential":"goldi"}]}}}')}),this.initSetup(),this.provider.on("status",function(e){h("status",e)}),this.provider.on("synced",function(e){var t;console.log("synced---------------------------------",e),o.connected=!0,null===(t=o.provider.room)||void 0===t||t.onPeerLeave(function(e){o.removePeers([e])}),o.initPubSub(),o.rx(function(e,t){o.update("message",e)}),o.y.setup.observe(function(e){var t=o.y.setup.get("timestamp");o.lab.timestamp!==t&&o.initSetup()}),h("synced",e,o.y.doc),o.sync=!0,o.update("connected")})}return(0,s._)(e,[{key:"user",value:function(){return this.y.users.get(this.peerID)}},{key:"isStation",value:function(){return"station"===this.role}},{key:"removePeers",value:function(e){var t=this,r=this.y.users.toJSON();this.y.doc.transact(function(){for(var n in r)if(e.includes(r[n].selfId)){t.y.users.delete(n),"station"===r[n].role&&t.y.rooms.delete(n);break}})}},{key:"initPubSub",value:function(){var e=this;if(h("initializing pubsub ..."),this.provider.room){var t=(0,l._)(this.provider.room.trysteroRoom.makeAction("p2p"),2),r=t[0],n=t[1];this.tx=r,this.rx=n,h("... done")}else h("... failed, retrying in 1s"),setTimeout(function(){e.initPubSub()},1e3)}},{key:"initSetup",value:function(){var e=this,t=this.y.setup.get("timestamp")||0,r=this.y.setup.get("config");this.lab.timestamp0&&(h("received outdated lab configuration, writing changes back"),this.y.doc.transact(function(){e.y.setup.set("config",e.lab.data),e.y.setup.set("timestamp",e.lab.timestamp)}))}},{key:"initUser",value:function(e){var t=this,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];this.role=e,n&&(clearInterval(n),n=null);var o=new p.Map;o.set("displayName",(0,d.getShortPeerID)(this.peerID)),o.set("room",this.isStation()?this.peerID:g),o.set("role",this.role),o.set("dateJoined",Date.now()),o.set("timestamp",Date.now()),o.set("selfId",_.selfId),o.set("handRaised",!1),o.set("connections",[{id:"",target:{}}]),this.y.users.set(this.peerID,o),n=setInterval(function(){if(t.y.users.has(t.peerID)){var e=Date.now();t.user().set("timestamp",e);var r=t.y.users.toJSON(),n=[];for(var o in r)r[o].timestamp0&&t.removePeers(n)}else h("user not found",t.peerID)},1e3),r&&this.y.users.observeDeep(function(e){e.every(function(e){return e.changes.keys&&1===e.changes.keys.size&&e.changes.keys.has("timestamp")})||t.update("room")})}},{key:"initRooms",value:function(){var e=this;this.y.doc.transact(function(){if(0===e.y.rooms.size){h("initializing rooms"),e.addRoom(g);var t=e.lab.data.meta.defaultNumberOfRooms;if(t)for(var r=1;r<=t;r++)e.addRoom("Room "+r)}e.isStation()&&e.addRoom(e.peerID)}),this.y.rooms.observeDeep(function(t){t.forEach(function(t){t.target===e.y.rooms&&Array.from(t.changes.keys.keys()).forEach(function(r){var n=t.changes.keys.get(r);(null==n?void 0:n.action)==="delete"&&e.user()&&e.user().get("room")===r&&(h("current room was deleted, moving to lobby"),e.user().set("room",g))})}),e.update("room")})}},{key:"initChat",value:function(){var e=this;this.y.chat.observe(function(t){e.update("chat")})}},{key:"newSetup",value:function(e){if(this.lab.hash){var t=this;(0,d.hashJsonObject)(e.data).then(function(r){r===t.lab.hash&&t.lab.timestamp2&&void 0!==arguments[2]?arguments[2]:{},l=s.appId,c=void 0===l?"yjs-trystero":l,u=s.password,p=void 0===u?"default":u,x=s.awareness,C=void 0===x?new _.awarenessProtocol.Awareness(n):x,T=s.maxConns,w=void 0===T?20+d.floor(15*m.rand()):T,I=s.filterBcConns,R=s.peerOpts,A=s.joinRoom,N=void 0===A?E.joinRoom:A;return(0,a._)(this,r),(i=t.call(this)).appId=c,e="".concat(c,"-").concat(e),i.roomName=e,i.password=p,i.key=p?h.deriveKey(p,e):f.resolve(null),i.doc=n,i.awareness=C,i.filterBcConns=void 0===I||I,i.shouldConnect=!1,i.maxConns=w,i.peerOpts=void 0===R?{}:R,i.joinRoom=N,i.room=null,i.key.then(function(t){if((0,y.rooms).has(e))throw S.create('A Yjs Doc connected to room "'.concat(e,'" already exists!'));i.room=new g.Room(n,(0,o._)(i),e,t),(0,y.rooms).set(e,i.room),i.shouldConnect?i.room.connect():i.room.disconnect(),(0,b.emitStatus)((0,o._)(i))}),i.connect(),i.destroy=i.destroy.bind((0,o._)(i)),n.on("destroy",i.destroy),i}return(0,i._)(r,[{key:"connected",get:function(){return null!==this.room&&this.shouldConnect}},{key:"connect",value:function(){this.shouldConnect=!0,this.room&&(this.room.connect(),(0,b.emitStatus)(this))}},{key:"disconnect",value:function(){this.shouldConnect=!1,this.room&&(this.room.disconnect(),(0,b.emitStatus)(this))}},{key:"destroy",value:function(){var e=this;this.doc.off("destroy",this.destroy),this.key.then(function(){e.room.destroy(),(0,y.rooms).delete(e.roomName)}),(0,s._)((0,l._)(r.prototype),"destroy",this).call(this)}}]),r}(p.ObservableV2)},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_get":"2invZ","@swc/helpers/_/_get_prototype_of":"7kA23","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_create_super":"4DJgF","lib0/math":"gYj1k","lib0/observable":"lCBQS","lib0/promise":"8ykCm","lib0/random":"g7cI4","../protocols":"7NXmU","./cryptoutils":"2VKXm","./Room":"2AWSn","./messagesSend":"5U62U","./connectionMaps":"8Onsd","lib0/error":"5ibyh",trystero:"esl3k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gYj1k:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"floor",function(){return o}),n.export(r,"ceil",function(){return a}),n.export(r,"abs",function(){return i}),n.export(r,"imul",function(){return s}),n.export(r,"round",function(){return l}),n.export(r,"log10",function(){return c}),n.export(r,"log2",function(){return u}),n.export(r,"log",function(){return d}),n.export(r,"sqrt",function(){return p}),n.export(r,"add",function(){return f}),n.export(r,"min",function(){return m}),n.export(r,"max",function(){return _}),n.export(r,"isNaN",function(){return h}),n.export(r,"pow",function(){return g}),n.export(r,"exp10",function(){return b}),n.export(r,"sign",function(){return y}),n.export(r,"isNegativeZero",function(){return S});var o=Math.floor,a=Math.ceil,i=Math.abs,s=Math.imul,l=Math.round,c=Math.log10,u=Math.log2,d=Math.log,p=Math.sqrt,f=function(e,t){return e+t},m=function(e,t){return et?e:t},h=Number.isNaN,g=Math.pow,b=function(e){return Math.pow(10,e)},y=Math.sign,S=function(e){return 0!==e?e<0:1/e<0}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lCBQS:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"ObservableV2",function(){return u}),n.export(r,"Observable",function(){return d});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("./map.js"),l=e("./set.js"),c=e("./array.js"),u=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this._observers=s.create()}return(0,a._)(e,[{key:"on",value:function(e,t){return s.setIfUndefined(this._observers,e,l.create).add(t),t}},{key:"once",value:function(e,t){var r=this,n=function(){for(var o=arguments.length,a=Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:10;return l(function(n,o){var a=s.getUnixTime(),i=e>0,l=setInterval(function(){t()?(clearInterval(l),n()):i&&s.getUnixTime()-a>e&&(clearInterval(l),o(Error("Timeout")))},r)})},_=(n=(0,a._)(function(e){var t,r,n,o,a=arguments;return(0,i._)(this,function(i){switch(i.label){case 0:t=a.length>1&&void 0!==a[1]?a[1]:0,r=a.length>2&&void 0!==a[2]?a[2]:10,n=s.getUnixTime(),o=t<=0,i.label=1;case 1:if(!(o||s.getUnixTime()-n<=t))return[3,4];return[4,e()];case 2:if(i.sent())return[2];return[4,h(r)];case 3:return i.sent(),[3,1];case 4:throw Error("Timeout")}})}),function(e){return n.apply(this,arguments)}),h=function(e){return l(function(t,r){return setTimeout(t,e)})},g=function(e){return e instanceof Promise||e&&e.then&&e.catch&&e.finally}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_ts_generator":"6UgKg","./time.js":"b9GSJ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],b9GSJ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"getDate",function(){return i}),n.export(r,"getUnixTime",function(){return s}),n.export(r,"humanizeDuration",function(){return l});var o=e("./metric.js"),a=e("./math.js"),i=function(){return new Date},s=Date.now,l=function(e){if(e<6e4){var t=o.prefix(e,-1);return a.round(100*t.n)/100+t.prefix+"s"}var r=(e=a.floor(e/1e3))%60,n=a.floor(e/60)%60,i=a.floor(e/3600)%24,s=a.floor(e/86400);return s>0?s+"d"+(i>0||n>30?" "+(n>30?i+1:i)+"h":""):i>0?i+"h"+(n>0||r>30?" "+(r>30?n+1:n)+"min":""):n+"min"+(r>0?" "+r+"s":"")}},{"./metric.js":"9EYZ6","./math.js":"gYj1k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9EYZ6":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"yotta",function(){return a}),n.export(r,"zetta",function(){return i}),n.export(r,"exa",function(){return s}),n.export(r,"peta",function(){return l}),n.export(r,"tera",function(){return c}),n.export(r,"giga",function(){return u}),n.export(r,"mega",function(){return d}),n.export(r,"kilo",function(){return p}),n.export(r,"hecto",function(){return f}),n.export(r,"deca",function(){return m}),n.export(r,"deci",function(){return _}),n.export(r,"centi",function(){return h}),n.export(r,"milli",function(){return g}),n.export(r,"micro",function(){return b}),n.export(r,"nano",function(){return y}),n.export(r,"pico",function(){return S}),n.export(r,"femto",function(){return E}),n.export(r,"atto",function(){return x}),n.export(r,"zepto",function(){return C}),n.export(r,"yocto",function(){return T}),n.export(r,"prefix",function(){return R});var o=e("./math.js"),a=1e24,i=1e21,s=1e18,l=1e15,c=1e12,u=1e9,d=1e6,p=1e3,f=100,m=10,_=.1,h=.01,g=.001,b=1e-6,y=1e-9,S=1e-12,E=1e-15,x=1e-18,C=1e-21,T=1e-24,w=["","k","M","G","T","P","E","Z","Y"],I=["","m","μ","n","p","f","a","z","y"],R=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0===e?0:o.log10(e),n=0;r<3*n&&t>-8;)t--,n--;for(;r>=3+3*n&&t<8;)t++,n++;var a=t<0?I[-t]:w[t];return{n:o.round((n>0?e/o.exp10(3*n):e*o.exp10(-3*n))*1e12)/1e12,prefix:a}}},{"./math.js":"gYj1k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],g7cI4:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"rand",function(){return s}),n.export(r,"uint32",function(){return l}),n.export(r,"uint53",function(){return c}),n.export(r,"oneOf",function(){return u}),n.export(r,"uuidv4",function(){return d});var o=e("./math.js"),a=e("./binary.js"),i=e("lib0/webcrypto"),s=Math.random,l=function(){return(0,i.getRandomValues)(new Uint32Array(1))[0]},c=function(){var e=(0,i.getRandomValues)(new Uint32Array(8));return(e[0]&a.BITS21)*(a.BITS32+1)+(e[1]>>>0)},u=function(e){return e[o.floor(s()*e.length)]},d=function(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,function(e){return(e^l()&15>>e/4).toString(16)})}},{"./math.js":"gYj1k","./binary.js":"hRqNT","lib0/webcrypto":"kmyUK","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hRqNT:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"BIT1",function(){return o}),n.export(r,"BIT2",function(){return a}),n.export(r,"BIT3",function(){return i}),n.export(r,"BIT4",function(){return s}),n.export(r,"BIT5",function(){return l}),n.export(r,"BIT6",function(){return c}),n.export(r,"BIT7",function(){return u}),n.export(r,"BIT8",function(){return d}),n.export(r,"BIT9",function(){return p}),n.export(r,"BIT10",function(){return f}),n.export(r,"BIT11",function(){return m}),n.export(r,"BIT12",function(){return _}),n.export(r,"BIT13",function(){return h}),n.export(r,"BIT14",function(){return g}),n.export(r,"BIT15",function(){return b}),n.export(r,"BIT16",function(){return y}),n.export(r,"BIT17",function(){return S}),n.export(r,"BIT18",function(){return E}),n.export(r,"BIT19",function(){return x}),n.export(r,"BIT20",function(){return C}),n.export(r,"BIT21",function(){return T}),n.export(r,"BIT22",function(){return w}),n.export(r,"BIT23",function(){return I}),n.export(r,"BIT24",function(){return R}),n.export(r,"BIT25",function(){return A}),n.export(r,"BIT26",function(){return N}),n.export(r,"BIT27",function(){return k}),n.export(r,"BIT28",function(){return O}),n.export(r,"BIT29",function(){return D}),n.export(r,"BIT30",function(){return j}),n.export(r,"BIT31",function(){return P}),n.export(r,"BIT32",function(){return M}),n.export(r,"BITS0",function(){return L}),n.export(r,"BITS1",function(){return V}),n.export(r,"BITS2",function(){return F}),n.export(r,"BITS3",function(){return B}),n.export(r,"BITS4",function(){return U}),n.export(r,"BITS5",function(){return G}),n.export(r,"BITS6",function(){return q}),n.export(r,"BITS7",function(){return Y}),n.export(r,"BITS8",function(){return H}),n.export(r,"BITS9",function(){return z}),n.export(r,"BITS10",function(){return W}),n.export(r,"BITS11",function(){return K}),n.export(r,"BITS12",function(){return Q}),n.export(r,"BITS13",function(){return $}),n.export(r,"BITS14",function(){return X}),n.export(r,"BITS15",function(){return Z}),n.export(r,"BITS16",function(){return J}),n.export(r,"BITS17",function(){return ee}),n.export(r,"BITS18",function(){return et}),n.export(r,"BITS19",function(){return er}),n.export(r,"BITS20",function(){return en}),n.export(r,"BITS21",function(){return eo}),n.export(r,"BITS22",function(){return ea}),n.export(r,"BITS23",function(){return ei}),n.export(r,"BITS24",function(){return es}),n.export(r,"BITS25",function(){return el}),n.export(r,"BITS26",function(){return ec}),n.export(r,"BITS27",function(){return eu}),n.export(r,"BITS28",function(){return ed}),n.export(r,"BITS29",function(){return ep}),n.export(r,"BITS30",function(){return ef}),n.export(r,"BITS31",function(){return em}),n.export(r,"BITS32",function(){return e_});var o=1,a=2,i=4,s=8,l=16,c=32,u=64,d=128,p=256,f=512,m=1024,_=2048,h=4096,g=8192,b=16384,y=32768,S=65536,E=131072,x=262144,C=524288,T=1048576,w=2097152,I=4194304,R=8388608,A=0x1000000,N=0x2000000,k=0x4000000,O=0x8000000,D=0x10000000,j=0x20000000,P=0x40000000,M=-0x80000000,L=0,V=1,F=3,B=7,U=15,G=31,q=63,Y=127,H=255,z=511,W=1023,K=2047,Q=4095,$=8191,X=16383,Z=32767,J=65535,ee=131071,et=262143,er=524287,en=1048575,eo=2097151,ea=4194303,ei=8388607,es=0xffffff,el=0x1ffffff,ec=0x3ffffff,eu=0x7ffffff,ed=0xfffffff,ep=0x1fffffff,ef=0x3fffffff,em=0x7fffffff,e_=0xffffffff},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kmyUK:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"subtle",function(){return o}),n.export(r,"getRandomValues",function(){return a});var o=crypto.subtle,a=crypto.getRandomValues.bind(crypto)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7NXmU":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"authProtocol",function(){return o}),n.export(r,"awarenessProtocol",function(){return a}),n.export(r,"syncProtocol",function(){return i});var o=e("./auth"),a=e("./awareness"),i=e("./sync")},{"./auth":"fd9lr","./awareness":"ih03r","./sync":"24yvR","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fd9lr:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"messagePermissionDenied",function(){return i}),n.export(r,"writePermissionDenied",function(){return s}),n.export(r,"readAuthMessage",function(){return l});var o=e("lib0/encoding"),a=e("lib0/decoding"),i=0,s=function(e,t){o.writeVarUint(e,i),o.writeVarString(e,t)},l=function(e,t,r){a.readVarUint(e)===i&&r(t,a.readVarString(e))}},{"lib0/encoding":"7b60o","lib0/decoding":"01MR5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7b60o":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Encoder",function(){return m}),n.export(r,"createEncoder",function(){return _}),n.export(r,"encode",function(){return h}),n.export(r,"length",function(){return g}),n.export(r,"hasContent",function(){return b}),n.export(r,"toUint8Array",function(){return y}),n.export(r,"verifyLen",function(){return S}),n.export(r,"write",function(){return E}),n.export(r,"set",function(){return x}),n.export(r,"writeUint8",function(){return C}),n.export(r,"setUint8",function(){return T}),n.export(r,"writeUint16",function(){return w}),n.export(r,"setUint16",function(){return I}),n.export(r,"writeUint32",function(){return R}),n.export(r,"writeUint32BigEndian",function(){return A}),n.export(r,"setUint32",function(){return N}),n.export(r,"writeVarUint",function(){return k}),n.export(r,"writeVarInt",function(){return O}),n.export(r,"_writeVarStringNative",function(){return P}),n.export(r,"_writeVarStringPolyfill",function(){return M}),n.export(r,"writeVarString",function(){return L}),n.export(r,"writeTerminatedString",function(){return V}),n.export(r,"writeTerminatedUint8Array",function(){return F}),n.export(r,"writeBinaryEncoder",function(){return B}),n.export(r,"writeUint8Array",function(){return U}),n.export(r,"writeVarUint8Array",function(){return G}),n.export(r,"writeOnDataView",function(){return q}),n.export(r,"writeFloat32",function(){return Y}),n.export(r,"writeFloat64",function(){return H}),n.export(r,"writeBigInt64",function(){return z}),n.export(r,"writeBigUint64",function(){return W}),n.export(r,"writeAny",function(){return Q}),n.export(r,"RleEncoder",function(){return $}),n.export(r,"IntDiffEncoder",function(){return X}),n.export(r,"RleIntDiffEncoder",function(){return Z}),n.export(r,"UintOptRleEncoder",function(){return ee}),n.export(r,"IncUintOptRleEncoder",function(){return et}),n.export(r,"IntDiffOptRleEncoder",function(){return en}),n.export(r,"StringEncoder",function(){return eo});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_type_of"),l=e("@swc/helpers/_/_create_super"),c=e("./math.js"),u=e("./number.js"),d=e("./binary.js"),p=e("./string.js"),f=e("./array.js"),m=function e(){(0,o._)(this,e),this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]},_=function(){return new m},h=function(e){var t=_();return e(t),y(t)},g=function(e){for(var t=e.cpos,r=0;r0||e.bufs.length>0},y=function(e){for(var t=new Uint8Array(g(e)),r=0,n=0;n>>8&d.BITS8)},I=function(e,t,r){x(e,t,r&d.BITS8),x(e,t+1,r>>>8&d.BITS8)},R=function(e,t){for(var r=0;r<4;r++)E(e,t&d.BITS8),t>>>=8},A=function(e,t){for(var r=3;r>=0;r--)E(e,t>>>8*r&d.BITS8)},N=function(e,t,r){for(var n=0;n<4;n++)x(e,t+n,r&d.BITS8),r>>>=8},k=function(e,t){for(;t>d.BITS7;)E(e,d.BIT8|d.BITS7&t),t=c.floor(t/128);E(e,d.BITS7&t)},O=function(e,t){var r=c.isNegativeZero(t);for(r&&(t=-t),E(e,(t>d.BITS6?d.BIT8:0)|(r?d.BIT7:0)|d.BITS6&t),t=c.floor(t/64);t>0;)E(e,(t>d.BITS7?d.BIT8:0)|d.BITS7&t),t=c.floor(t/128)},D=new Uint8Array(3e4),j=D.length/3,P=function(e,t){if(t.length0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(c.max(2*r,a)),e.cbuf.set(t.subarray(o)),e.cpos=a)},G=function(e,t){k(e,t.byteLength),U(e,t)},q=function(e,t){S(e,t);var r=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,r},Y=function(e,t){return q(e,4).setFloat32(0,t,!1)},H=function(e,t){return q(e,8).setFloat64(0,t,!1)},z=function(e,t){return q(e,8).setBigInt64(0,t,!1)},W=function(e,t){return q(e,8).setBigUint64(0,t,!1)},K=new DataView(new ArrayBuffer(4)),Q=function(e,t){switch(void 0===t?"undefined":(0,s._)(t)){case"string":E(e,119),L(e,t);break;case"number":u.isInteger(t)&&c.abs(t)<=d.BITS31?(E(e,125),O(e,t)):(K.setFloat32(0,t),K.getFloat32(0)===t)?(E(e,124),Y(e,t)):(E(e,123),H(e,t));break;case"bigint":E(e,122),z(e,t);break;case"object":if(null===t)E(e,126);else if(f.isArray(t)){E(e,117),k(e,t.length);for(var r=0;r0&&k(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}]),r}(m),X=/*#__PURE__*/function(e){(0,i._)(r,e);var t=(0,l._)(r);function r(e){var n;return(0,o._)(this,r),(n=t.call(this)).s=e,n}return(0,a._)(r,[{key:"write",value:function(e){O(this,e-this.s),this.s=e}}]),r}(m),Z=/*#__PURE__*/function(e){(0,i._)(r,e);var t=(0,l._)(r);function r(e){var n;return(0,o._)(this,r),(n=t.call(this)).s=e,n.count=0,n}return(0,a._)(r,[{key:"write",value:function(e){this.s===e&&this.count>0?this.count++:(this.count>0&&k(this,this.count-1),this.count=1,O(this,e-this.s),this.s=e)}}]),r}(m),J=function(e){e.count>0&&(O(e.encoder,1===e.count?e.s:-e.s),e.count>1&&k(e.encoder,e.count-2))},ee=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0}return(0,a._)(e,[{key:"write",value:function(e){this.s===e?this.count++:(J(this),this.count=1,this.s=e)}},{key:"toUint8Array",value:function(){return J(this),y(this.encoder)}}]),e}(),et=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0}return(0,a._)(e,[{key:"write",value:function(e){this.s+this.count===e?this.count++:(J(this),this.count=1,this.s=e)}},{key:"toUint8Array",value:function(){return J(this),y(this.encoder)}}]),e}(),er=function(e){if(e.count>0){var t=2*e.diff+(1===e.count?0:1);O(e.encoder,t),e.count>1&&k(e.encoder,e.count-2)}},en=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.encoder=new m,this.s=0,this.count=0,this.diff=0}return(0,a._)(e,[{key:"write",value:function(e){this.diff===e-this.s?(this.s=e,this.count++):(er(this),this.count=1,this.diff=e-this.s,this.s=e)}},{key:"toUint8Array",value:function(){return er(this),y(this.encoder)}}]),e}(),eo=/*#__PURE__*/function(){function e(){(0,o._)(this,e),this.sarr=[],this.s="",this.lensE=new ee}return(0,a._)(e,[{key:"write",value:function(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}},{key:"toUint8Array",value:function(){var e=new m;return this.sarr.push(this.s),this.s="",L(e,this.sarr.join("")),U(e,this.lensE.toUint8Array()),y(e)}}]),e}()},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_type_of":"3BgET","@swc/helpers/_/_create_super":"4DJgF","./math.js":"gYj1k","./number.js":"gDElu","./binary.js":"hRqNT","./string.js":"1n5jw","./array.js":"56yW0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gDElu:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"MAX_SAFE_INTEGER",function(){return i}),n.export(r,"MIN_SAFE_INTEGER",function(){return s}),n.export(r,"LOWEST_INT32",function(){return l}),n.export(r,"HIGHEST_INT32",function(){return c}),n.export(r,"HIGHEST_UINT32",function(){return u}),n.export(r,"isInteger",function(){return d}),n.export(r,"isNaN",function(){return p}),n.export(r,"parseInt",function(){return f}),n.export(r,"countBits",function(){return m});var o=e("./math.js"),a=e("./binary.js"),i=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,l=-0x80000000,c=a.BITS31,u=a.BITS32,d=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&o.floor(e)===e},p=Number.isNaN,f=Number.parseInt,m=function(e){e&=a.BITS32;for(var t=0;e;)e&=e-1,t++;return t}},{"./math.js":"gYj1k","./binary.js":"hRqNT","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1n5jw":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"fromCharCode",function(){return a}),n.export(r,"fromCodePoint",function(){return i}),n.export(r,"MAX_UTF16_CHARACTER",function(){return s}),n.export(r,"trimLeft",function(){return c}),n.export(r,"fromCamelCase",function(){return d}),n.export(r,"utf8ByteLength",function(){return p}),n.export(r,"_encodeUtf8Polyfill",function(){return f}),n.export(r,"utf8TextEncoder",function(){return m}),n.export(r,"_encodeUtf8Native",function(){return _}),n.export(r,"encodeUtf8",function(){return h}),n.export(r,"_decodeUtf8Polyfill",function(){return g}),n.export(r,"utf8TextDecoder",function(){return b}),n.export(r,"_decodeUtf8Native",function(){return y}),n.export(r,"decodeUtf8",function(){return S}),n.export(r,"splice",function(){return E}),n.export(r,"repeat",function(){return x});var o=e("./array.js"),a=String.fromCharCode,i=String.fromCodePoint,s=a(65535),l=/^\s*/g,c=function(e){return e.replace(l,"")},u=/([A-Z])/g,d=function(e,t){return c(e.replace(u,function(e){return"".concat(t).concat(e.toLowerCase())}))},p=function(e){return unescape(encodeURIComponent(e)).length},f=function(e){for(var t=unescape(encodeURIComponent(e)),r=t.length,n=new Uint8Array(r),o=0;o0;){var o=t<1e4?t:1e4,a=e.subarray(n,n+o);n+=o,r+=String.fromCodePoint.apply(null,a),t-=o}return decodeURIComponent(escape(r))},b="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});b&&1===b.decode(new Uint8Array).length&&(b=null);var y=function(e){return b.decode(e)},S=b?y:g,E=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return e.slice(0,t)+n+e.slice(t+r)},x=function(e,t){return o.unfold(t,function(){return e}).join("")}},{"./array.js":"56yW0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"01MR5":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Decoder",function(){return h}),n.export(r,"createDecoder",function(){return g}),n.export(r,"hasContent",function(){return b}),n.export(r,"clone",function(){return y}),n.export(r,"readUint8Array",function(){return S}),n.export(r,"readVarUint8Array",function(){return E}),n.export(r,"readTailAsUint8Array",function(){return x}),n.export(r,"skip8",function(){return C}),n.export(r,"readUint8",function(){return T}),n.export(r,"readUint16",function(){return w}),n.export(r,"readUint32",function(){return I}),n.export(r,"readUint32BigEndian",function(){return R}),n.export(r,"peekUint8",function(){return A}),n.export(r,"peekUint16",function(){return N}),n.export(r,"peekUint32",function(){return k}),n.export(r,"readVarUint",function(){return O}),n.export(r,"readVarInt",function(){return D}),n.export(r,"peekVarUint",function(){return j}),n.export(r,"peekVarInt",function(){return P}),n.export(r,"_readVarStringPolyfill",function(){return M}),n.export(r,"_readVarStringNative",function(){return L}),n.export(r,"readVarString",function(){return V}),n.export(r,"readTerminatedUint8Array",function(){return F}),n.export(r,"readTerminatedString",function(){return B}),n.export(r,"peekVarString",function(){return U}),n.export(r,"readFromDataView",function(){return G}),n.export(r,"readFloat32",function(){return q}),n.export(r,"readFloat64",function(){return Y}),n.export(r,"readBigInt64",function(){return H}),n.export(r,"readBigUint64",function(){return z}),n.export(r,"readAny",function(){return K}),n.export(r,"RleDecoder",function(){return Q}),n.export(r,"IntDiffDecoder",function(){return $}),n.export(r,"RleIntDiffDecoder",function(){return X}),n.export(r,"UintOptRleDecoder",function(){return Z}),n.export(r,"IncUintOptRleDecoder",function(){return J}),n.export(r,"IntDiffOptRleDecoder",function(){return ee}),n.export(r,"StringDecoder",function(){return et});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_inherits"),s=e("@swc/helpers/_/_create_super"),l=e("./binary.js"),c=e("./math.js"),u=e("./number.js"),d=e("./string.js"),p=e("./error.js"),f=e("./encoding.js"),m=p.create("Unexpected end of array"),_=p.create("Integer out of Range"),h=function e(t){(0,o._)(this,e),this.arr=t,this.pos=0},g=function(e){return new h(e)},b=function(e){return e.pos!==e.arr.length},y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.pos,r=g(e.arr);return r.pos=t,r},S=function(e,t){var r=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,r},E=function(e){return S(e,O(e))},x=function(e){return S(e,e.arr.length-e.pos)},C=function(e){return e.pos++},T=function(e){return e.arr[e.pos++]},w=function(e){var t=e.arr[e.pos]+(e.arr[e.pos+1]<<8);return e.pos+=2,t},I=function(e){var t=e.arr[e.pos]+(e.arr[e.pos+1]<<8)+(e.arr[e.pos+2]<<16)+(e.arr[e.pos+3]<<24)>>>0;return e.pos+=4,t},R=function(e){var t=e.arr[e.pos+3]+(e.arr[e.pos+2]<<8)+(e.arr[e.pos+1]<<16)+(e.arr[e.pos]<<24)>>>0;return e.pos+=4,t},A=function(e){return e.arr[e.pos]},N=function(e){return e.arr[e.pos]+(e.arr[e.pos+1]<<8)},k=function(e){return e.arr[e.pos]+(e.arr[e.pos+1]<<8)+(e.arr[e.pos+2]<<16)+(e.arr[e.pos+3]<<24)>>>0},O=function(e){for(var t=0,r=1,n=e.arr.length;e.posu.MAX_SAFE_INTEGER)throw _}throw m},D=function(e){var t=e.arr[e.pos++],r=t&l.BITS6,n=64,o=(t&l.BIT7)>0?-1:1;if((t&l.BIT8)==0)return o*r;for(var a=e.arr.length;e.posu.MAX_SAFE_INTEGER)throw _}throw m},j=function(e){var t=e.pos,r=O(e);return e.pos=t,r},P=function(e){var t=e.pos,r=D(e);return e.pos=t,r},M=function(e){var t=O(e);if(0===t)return"";var r=String.fromCodePoint(T(e));if(--t<100)for(;t--;)r+=String.fromCodePoint(T(e));else for(;t>0;){var n=t<1e4?t:1e4,o=e.arr.subarray(e.pos,e.pos+n);e.pos+=n,r+=String.fromCodePoint.apply(null,o),t-=n}return decodeURIComponent(escape(r))},L=function(e){return d.utf8TextDecoder.decode(E(e))},V=d.utf8TextDecoder?L:M,F=function(e){for(var t,r=f.createEncoder();;){if(0===(t=T(e)))return f.toUint8Array(r);1===t&&(t=T(e)),f.write(r,t)}},B=function(e){return d.decodeUtf8(F(e))},U=function(e){var t=e.pos,r=V(e);return e.pos=t,r},G=function(e,t){var r=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,r},q=function(e){return G(e,4).getFloat32(0,!1)},Y=function(e){return G(e,8).getFloat64(0,!1)},H=function(e){return G(e,8).getBigInt64(0,!1)},z=function(e){return G(e,8).getBigUint64(0,!1)},W=[function(e){},function(e){return null},D,q,Y,H,function(e){return!1},function(e){return!0},V,function(e){for(var t=O(e),r={},n=0;n0&&x((0,o._)(n),t,"timeout")},g.floor(S/10)),e.on("destroy",function(){n.destroy()}),n.setLocalState({}),n}return(0,i._)(r,[{key:"destroy",value:function(){this.emit("destroy",[this]),this.setLocalState(null),(0,l._)((0,c._)(r.prototype),"destroy",this).call(this),clearInterval(this._checkInterval)}},{key:"getLocalState",value:function(){return this.states.get(this.clientID)||null}},{key:"setLocalState",value:function(e){var t=this.clientID,r=this.meta.get(t),n=void 0===r?0:r.clock+1,o=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:h.getUnixTime()});var a=[],i=[],s=[],l=[];null===e?l.push(t):null==o?null!=e&&a.push(t):(i.push(t),y.equalityDeep(o,e)||s.push(t)),(a.length>0||s.length>0||l.length>0)&&this.emit("change",[{added:a,updated:s,removed:l},"local"]),this.emit("update",[{added:a,updated:i,removed:l},"local"])}},{key:"setLocalStateField",value:function(e,t){var r=this.getLocalState();null!==r&&this.setLocalState((0,p._)((0,d._)({},r),(0,s._)({},e,t)))}},{key:"getStates",value:function(){return this.states}}]),r}(b.ObservableV2),x=function(e,t,r){for(var n=[],o=0;o0&&(e.emit("change",[{added:[],updated:[],removed:n},r]),e.emit("update",[{added:[],updated:[],removed:n},r]))},C=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.states,n=t.length,o=m.createEncoder();m.writeVarUint(o,n);for(var a=0;a0||s.length>0||l.length>0)&&e.emit("change",[{added:a,updated:s,removed:l},r]),(a.length>0||i.length>0||l.length>0)&&e.emit("update",[{added:a,updated:i,removed:l},r])}},{"@swc/helpers/_/_assert_this_initialized":"klQmr","@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_get":"2invZ","@swc/helpers/_/_get_prototype_of":"7kA23","@swc/helpers/_/_inherits":"F8Yln","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_create_super":"4DJgF","lib0/encoding":"7b60o","lib0/decoding":"01MR5","lib0/time":"b9GSJ","lib0/math":"gYj1k","lib0/observable":"lCBQS","lib0/function":"jgAQd","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jgAQd:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"callAll",function(){return s}),n.export(r,"nop",function(){return l}),n.export(r,"apply",function(){return c}),n.export(r,"id",function(){return u}),n.export(r,"equalityStrict",function(){return d}),n.export(r,"equalityFlat",function(){return p}),n.export(r,"equalityDeep",function(){return f}),n.export(r,"isOneOf",function(){return m}),n.export(r,"isArray",function(){return _}),n.export(r,"isString",function(){return h}),n.export(r,"isNumber",function(){return g}),n.export(r,"is",function(){return b}),n.export(r,"isTemplate",function(){return y});var o=e("@swc/helpers/_/_to_consumable_array"),a=e("./array.js"),i=e("./object.js"),s=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;try{for(;r0){var n=c.createEncoder();c.writeVarUint(n,f.MessageType.Awareness),c.writeVarUint8Array(n,(0,p.awarenessProtocol).encodeAwarenessUpdate(l.awareness,Array.from(r.keys()))),(0,g.sendTrysteroConn)(l,e,n)}l._callbackPeerJoin&&l._callbackPeerJoin(e)}),this.trysteroRoom.onPeerLeave(function(e){l.trysteroConns=l.trysteroRoom.getPeers(),l.provider.emit("peers",[{removed:[e],added:[],trysteroPeers:Array.from(Object.keys(l.trysteroConns)),bcPeers:Array.from(l.bcConns)}]),(0,h.checkIsSynced)(l),l._callbackPeerLeave&&l._callbackPeerLeave(e)}),console.log("conns",this.trysteroConns),this._bcSubscriber=function(e){return _.decrypt(new Uint8Array(e),a).then(function(e){return l.mux(function(){var t=(0,h.readMessage)(l,e);t&&(0,g.broadcastBcMessage)(l,t)})})},this._docUpdateHandler=function(e,t){var r=c.createEncoder();c.writeVarUint(r,f.MessageType.Sync),(0,p.syncProtocol).writeUpdate(r,e),(0,g.broadcastRoomMessage)(l,r)},this._awarenessUpdateHandler=function(e,t){var r=e.added,n=e.updated,o=e.removed,a=r.concat(n).concat(o),i=c.createEncoder();c.writeVarUint(i,f.MessageType.Awareness),c.writeVarUint8Array(i,(0,p.awarenessProtocol).encodeAwarenessUpdate(l.awareness,a)),(0,g.broadcastRoomMessage)(l,i)},this._beforeUnloadHandler=function(){(0,p.awarenessProtocol).removeAwarenessStates(l.awareness,[t.clientID],"window unload"),(0,m.rooms).forEach(function(e){e.disconnect()})},"undefined"!=typeof window?window.addEventListener("beforeunload",this._beforeUnloadHandler):void 0!==b&&b.on("exit",this._beforeUnloadHandler)}return(0,a._)(e,[{key:"onPeerJoin",value:function(e){this._callbackPeerJoin=e}},{key:"onPeerLeave",value:function(e){this._callbackPeerLeave=e}},{key:"connect",value:function(){this.doc.on("update",this._docUpdateHandler),this.awareness.on("update",this._awarenessUpdateHandler),l.subscribe(this.name,this._bcSubscriber),this.bcconnected=!0,(0,g.broadcastBcPeerId)(this);var e=c.createEncoder();c.writeVarUint(e,f.MessageType.Sync),(0,p.syncProtocol).writeSyncStep1(e,this.doc),(0,g.broadcastBcMessage)(this,e);var t=c.createEncoder();c.writeVarUint(t,f.MessageType.Sync),(0,p.syncProtocol).writeSyncStep2(t,this.doc),(0,g.broadcastBcMessage)(this,t);var r=c.createEncoder();c.writeVarUint(r,f.MessageType.QueryAwareness),(0,g.broadcastBcMessage)(this,r);var n=c.createEncoder();c.writeVarUint(n,f.MessageType.Awareness),c.writeVarUint8Array(n,(0,p.awarenessProtocol).encodeAwarenessUpdate(this.awareness,[this.doc.clientID])),(0,g.broadcastBcMessage)(this,n)}},{key:"disconnect",value:function(){(0,p.awarenessProtocol).removeAwarenessStates(this.awareness,[this.doc.clientID],"disconnect");var e=c.createEncoder();c.writeVarUint(e,f.MessageType.BcPeerId),c.writeUint8(e,0),c.writeVarString(e,this.peerId),(0,g.broadcastBcMessage)(this,e),l.unsubscribe(this.name,this._bcSubscriber),this.bcconnected=!1,this.doc.off("update",this._docUpdateHandler),this.awareness.off("update",this._awarenessUpdateHandler),l.unsubscribe(this.name,function(){}),this.trysteroRoom.leave()}},{key:"destroy",value:function(){this.disconnect(),"undefined"!=typeof window?window.removeEventListener("beforeunload",this._beforeUnloadHandler):void 0!==b&&b.off("exit",this._beforeUnloadHandler)}}]),e}()},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1","199a685d71ad980a":"itVSw","lib0/broadcastchannel":"9svt9","lib0/encoding":"7b60o","lib0/mutex":"161cT","lib0/random":"g7cI4","../protocols":"7NXmU","./types":"lUnP8","./connectionMaps":"8Onsd","./cryptoutils":"2VKXm","./messagesRead":"bRKBk","./messagesSend":"5U62U","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],itVSw:[function(e,t,r){var n,o,a,i=t.exports={};function s(){throw Error("setTimeout has not been defined")}function l(){throw Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{o="function"==typeof clearTimeout?clearTimeout:l}catch(e){o=l}}();var u=[],d=!1,p=-1;function f(){d&&a&&(d=!1,a.length?u=a.concat(u):p=-1,u.length&&m())}function m(){if(!d){var e=c(f);d=!0;for(var t=u.length;t;){for(a=u,u=[];++p1)for(var r=1;r2&&void 0!==arguments[2]?arguments[2]:null,n=f(e);n.bc.postMessage(t),n.subs.forEach(function(e){return e(t,r)})}},{"@swc/helpers/_/_class_call_check":"6tPd8","@swc/helpers/_/_create_class":"kdmA3","./map.js":"hAiSy","./set.js":"fCL2u","./buffer.js":"6nNHg","./storage.js":"hTM42","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6nNHg":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"createUint8ArrayFromLen",function(){return d}),n.export(r,"createUint8ArrayViewFromArrayBuffer",function(){return p}),n.export(r,"createUint8ArrayFromArrayBuffer",function(){return f}),n.export(r,"toBase64",function(){return m}),n.export(r,"fromBase64",function(){return _}),n.export(r,"toBase64UrlEncoded",function(){return h}),n.export(r,"fromBase64UrlEncoded",function(){return g}),n.export(r,"toHexString",function(){return b}),n.export(r,"fromHexString",function(){return y}),n.export(r,"copyUint8Array",function(){return S}),n.export(r,"encodeAny",function(){return E}),n.export(r,"decodeAny",function(){return x}),n.export(r,"shiftNBitsLeft",function(){return C});var o=e("./string.js"),a=e("./environment.js"),i=e("./array.js"),s=e("./math.js"),l=e("./encoding.js"),c=e("./decoding.js"),u=e("22d865190581f6fb").Buffer,d=function(e){return new Uint8Array(e)},p=function(e,t,r){return new Uint8Array(e,t,r)},f=function(e){return new Uint8Array(e)},m=a.isBrowser?function(e){for(var t="",r=0;r>>8-t,e[r]<<=t;return e}},{"22d865190581f6fb":"dLuvJ","./string.js":"1n5jw","./environment.js":"kefJ6","./array.js":"56yW0","./math.js":"gYj1k","./encoding.js":"7b60o","./decoding.js":"01MR5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dLuvJ:[function(e,t,r){/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh @@ -101,4 +101,4 @@ PERFORMANCE OF THIS SOFTWARE. * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup */var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t){var r,n=Math.pow(e.r/255,2.4),o=Math.pow(e.g/255,2.4),a=Math.pow(e.b/255,2.4),i=Math.pow(t.r/255,2.4),s=Math.pow(t.g/255,2.4),l=Math.pow(t.b/255,2.4),c=.2126729*n+.7151522*o+.072175*a,u=.2126729*i+.7151522*s+.072175*l;if(c<=.03&&(c+=Math.pow(.03-c,1.45)),u<=.03&&(u+=Math.pow(.03-u,1.45)),5e-4>Math.abs(u-c))return 0;if(u>c){var d=(Math.pow(u,.55)-Math.pow(c,.58))*1.25;r=d<.001?0:d<.078?d-.7692307692307692*d:d-.06}else{var p=(Math.pow(u,.62)-Math.pow(c,.57))*1.25;r=p>-.001?0:p>-.078?p-.7692307692307692*p:p+.06}return 100*r}n.defineInteropFlag(r),n.export(r,"APCAcontrast",function(){return o})},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9OBqL":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"consoleWarn",function(){return a}),n.export(r,"consoleError",function(){return i}),n.export(r,"deprecate",function(){return s}),n.export(r,"breaking",function(){return l}),n.export(r,"removed",function(){return c});var o=e("vue");function a(e){(0,o.warn)("Vuetify: ".concat(e))}function i(e){(0,o.warn)("Vuetify error: ".concat(e))}function s(e,t){t=Array.isArray(t)?t.slice(0,-1).map(function(e){return"'".concat(e,"'")}).join(", ")+" or '".concat(t.at(-1),"'"):"'".concat(t,"'"),(0,o.warn)("[Vuetify UPGRADE] '".concat(e,"' is deprecated, use ").concat(t," instead."))}function l(e,t){}function c(e){}},{vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gqCqM:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"fromXYZ",function(){return i}),n.export(r,"toXYZ",function(){return s});var o=function(e){return e>.008856451679035631?Math.cbrt(e):e/.12841854934601665+4/29},a=function(e){return e>.20689655172413793?Math.pow(e,3):.12841854934601665*(e-4/29)};function i(e){var t=o(e[1]);return[116*t-16,500*(o(e[0]/.95047)-t),200*(t-o(e[2]/1.08883))]}function s(e){var t=(e[0]+16)/116;return[.95047*a(t+e[1]/500),a(t),1.08883*a(t-e[2]/200)]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],j7jxh:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"fromXYZ",function(){return l}),n.export(r,"toXYZ",function(){return c});var o=e("../helpers.mjs"),a=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],i=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],s=function(e){return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)};function l(e){for(var t,r=[,,,],n=0;n<3;++n)r[n]=Math.round(255*(0,o.clamp)((t=a[n][0]*e[0]+a[n][1]*e[1]+a[n][2]*e[2])<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055));return{r:r[0],g:r[1],b:r[2]}}function c(e){var t=e.r,r=e.g,n=e.b,o=[0,0,0];t=s(t/255),r=s(r/255),n=s(n/255);for(var a=0;a<3;++a)o[a]=i[a][0]*t+i[a][1]*r+i[a][2]*n;return o}},{"../helpers.mjs":"at0NA","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2Lc1n":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"createSimpleFunctional",function(){return l});var o=e("@swc/helpers/_/_object_spread"),a=e("../composables/component.mjs"),i=e("vue"),s=e("./defineComponent.mjs");function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"div",r=arguments.length>2?arguments[2]:void 0;return(0,s.genericComponent)()({name:null!=r?r:(0,i.capitalize)((0,i.camelize)(e.replace(/__/g,"-"))),props:(0,o._)({tag:{type:String,default:t}},(0,a.makeComponentProps)()),setup:function(t,r){var n=r.slots;return function(){var r;return(0,i.h)(t.tag,{class:[e,t.class],style:t.style},null===(r=n.default)||void 0===r?void 0:r.call(n))}}})}},{"@swc/helpers/_/_object_spread":"j01jQ","../composables/component.mjs":"c32AV",vue:"gHobw","./defineComponent.mjs":"fQ23X","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],c32AV:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeComponentProps",function(){return o});var o=(0,e("../util/propsFactory.mjs").propsFactory)({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},"component")},{"../util/propsFactory.mjs":"iySds","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iySds:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"propsFactory",function(){return i});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props");function i(e,t){return function(r){return Object.keys(e).reduce(function(n,i){var s="object"!=typeof e[i]||null==e[i]||Array.isArray(e[i])?{type:e[i]}:e[i];return r&&i in r?n[i]=(0,a._)((0,o._)({},s),{default:r[i]}):n[i]=s,t&&!n[i].source&&(n[i].source=t),n},{})}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fQ23X:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"defineComponent",function(){return c}),n.export(r,"genericComponent",function(){return u}),n.export(r,"defineFunctionalComponent",function(){return d});var o=e("../composables/defaults.mjs"),a=e("vue"),i=e("./console.mjs"),s=e("./helpers.mjs"),l=e("./propsFactory.mjs");function c(e){var t;if(e._setup=null!==(t=e._setup)&&void 0!==t?t:e.setup,!e.name)return(0,i.consoleWarn)("The component is missing an explicit name, unable to generate default prop value"),e;if(e._setup){e.props=(0,l.propsFactory)(null!==(r=e.props)&&void 0!==r?r:{},e.name)();var r,n=Object.keys(e.props).filter(function(e){return"class"!==e&&"style"!==e});e.filterProps=function(e){return(0,s.pick)(e,n)},e.props._as=String,e.setup=function(t,r){var n,a=(0,o.injectDefaults)();if(!a.value)return e._setup(t,r);var i=(0,o.internalUseDefaults)(t,null!==(n=t._as)&&void 0!==n?n:e.name,a),s=i.props,l=i.provideSubDefaults,c=e._setup(s,r);return l(),c}}return e}function u(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];return function(t){return(e?c:(0,a.defineComponent))(t)}}function d(e,t){return t.props=e,t}},{"../composables/defaults.mjs":"cYwla",vue:"gHobw","./console.mjs":"9OBqL","./helpers.mjs":"at0NA","./propsFactory.mjs":"iySds","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cYwla:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"DefaultsSymbol",function(){return c}),n.export(r,"createDefaults",function(){return u}),n.export(r,"injectDefaults",function(){return d}),n.export(r,"provideDefaults",function(){return p}),n.export(r,"internalUseDefaults",function(){return f}),n.export(r,"useDefaults",function(){return m});var o=e("@swc/helpers/_/_sliced_to_array"),a=e("vue"),i=e("../util/getCurrentInstance.mjs"),s=e("../util/helpers.mjs"),l=e("../util/injectSelf.mjs"),c=Symbol.for("vuetify:defaults");function u(e){return(0,a.ref)(e)}function d(){var e=(0,a.inject)(c);if(!e)throw Error("[Vuetify] Could not find defaults instance");return e}function p(e,t){var r=d(),n=(0,a.ref)(e),o=(0,a.computed)(function(){if((0,a.unref)(null==t?void 0:t.disabled))return r.value;var e=(0,a.unref)(null==t?void 0:t.scoped),o=(0,a.unref)(null==t?void 0:t.reset),i=(0,a.unref)(null==t?void 0:t.root);if(null==n.value&&!(e||o||i))return r.value;var l=(0,s.mergeDeep)(n.value,{prev:r.value});if(e)return l;if(o||i){for(var c=Number(o||1/0),u=0;u<=c&&l&&"prev"in l;u++)l=l.prev;return l&&"string"==typeof i&&i in l&&(l=(0,s.mergeDeep)((0,s.mergeDeep)(l,{prev:l}),l[i])),l}return l.prev?(0,s.mergeDeep)(l.prev,l):l});return(0,a.provide)(c,o),o}function f(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d(),u=(0,i.getCurrentInstance)("useDefaults");if(!(r=null!==(e=null!=r?r:u.type.name)&&void 0!==e?e:u.type.__name))throw Error("[Vuetify] Could not determine component name");var p=(0,a.computed)(function(){var e,o;return null===(e=n.value)||void 0===e?void 0:e[null!==(o=t._as)&&void 0!==o?o:r]}),f=new Proxy(t,{get:function(e,t){var r,o,a,i,l,c,d,f,m,_,h=Reflect.get(e,t);return"class"===t||"style"===t?[null===(i=p.value)||void 0===i?void 0:i[t],h].filter(function(e){return null!=e}):"string"==typeof t&&void 0===(null===(o=(r=u.vnode).props)||void 0===o?void 0:o[t])&&void 0===(null===(a=r.props)||void 0===a?void 0:a[(0,s.toKebabCase)(t)])?(null===(l=p.value)||void 0===l?void 0:l[t])!==void 0?null===(c=p.value)||void 0===c?void 0:c[t]:(null===(f=n.value)||void 0===f?void 0:null===(d=f.global)||void 0===d?void 0:d[t])!==void 0?null===(_=n.value)||void 0===_?void 0:null===(m=_.global)||void 0===m?void 0:m[t]:h:h}}),m=(0,a.shallowRef)();return(0,a.watchEffect)(function(){if(p.value){var e=Object.entries(p.value).filter(function(e){var t=(0,o._)(e,1)[0];return t.startsWith(t[0].toUpperCase())});m.value=e.length?Object.fromEntries(e):void 0}else m.value=void 0}),{props:f,provideSubDefaults:function(){var e=(0,l.injectSelf)(c,u);(0,a.provide)(c,(0,a.computed)(function(){var t;return m.value?(0,s.mergeDeep)(null!==(t=null==e?void 0:e.value)&&void 0!==t?t:{},m.value):null==e?void 0:e.value}))}}}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=f(e,t),n=r.props;return(0,r.provideSubDefaults)(),n}},{"@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","../util/getCurrentInstance.mjs":"7QKB5","../util/helpers.mjs":"at0NA","../util/injectSelf.mjs":"29JSj","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7QKB5":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"getCurrentInstance",function(){return i}),n.export(r,"getCurrentInstanceName",function(){return s}),n.export(r,"getUid",function(){return u});var o=e("vue"),a=e("./helpers.mjs");function i(e,t){var r=(0,o.getCurrentInstance)();if(!r)throw Error("[Vuetify] ".concat(e," ").concat(t||"must be called from inside a setup function"));return r}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"composables",t=i(e).type;return(0,a.toKebabCase)((null==t?void 0:t.aliasName)||(null==t?void 0:t.name))}var l=0,c=new WeakMap;function u(){var e=i("getUid");if(c.has(e))return c.get(e);var t=l++;return c.set(e,t),t}u.reset=function(){l=0,c=new WeakMap}},{vue:"gHobw","./helpers.mjs":"at0NA","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"29JSj":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"injectSelf",function(){return a});var o=e("./getCurrentInstance.mjs");function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.getCurrentInstance)("injectSelf"),r=t.provides;if(r&&e in r)return r[e]}},{"./getCurrentInstance.mjs":"7QKB5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],buJay:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){if("function"!=typeof e.getRootNode){for(;e.parentNode;)e=e.parentNode;return e!==document?null:document}var t=e.getRootNode();return t!==document&&t.getRootNode({composed:!0})!==document?null:t}n.defineInteropFlag(r),n.export(r,"attachedRoot",function(){return o})},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"5l4T3":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"standardEasing",function(){return o}),n.export(r,"deceleratedEasing",function(){return a}),n.export(r,"acceleratedEasing",function(){return i});var o="cubic-bezier(0.4, 0, 0.2, 1)",a="cubic-bezier(0.0, 0, 0.2, 1)",i="cubic-bezier(0.4, 0, 1, 1)"},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kthzt:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"getPrefixedEventHandlers",function(){return a});var o=e("./helpers.mjs");function a(e,t,r){return Object.keys(e).filter(function(e){return(0,o.isOn)(e)&&e.endsWith(t)}).reduce(function(n,o){return n[o.slice(0,-t.length)]=function(t){return e[o](t,r(t))},n},{})}},{"./helpers.mjs":"at0NA","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gDUZS:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){for(var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e;){if(r?!!(t=e)&&t.nodeType===Node.ELEMENT_NODE&&["scroll","auto"].includes(window.getComputedStyle(t).overflowY):i(e))return e;e=e.parentElement}return document.scrollingElement}function a(e,t){var r=[];if(t&&e&&!t.contains(e))return r;for(;e&&(i(e)&&r.push(e),e!==t);)e=e.parentElement;return r}function i(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;var t=window.getComputedStyle(e);return"scroll"===t.overflowY||"auto"===t.overflowY&&e.scrollHeight>e.clientHeight}n.defineInteropFlag(r),n.export(r,"getScrollParent",function(){return o}),n.export(r,"getScrollParents",function(){return a}),n.export(r,"hasScrollbar",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3T9OE":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){for(;e;){if("fixed"===window.getComputedStyle(e).position)return!0;e=e.offsetParent}return!1}n.defineInteropFlag(r),n.export(r,"isFixedPosition",function(){return o})},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7DA3x":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useRender",function(){return a});var o=e("./getCurrentInstance.mjs");function a(e){(0,o.getCurrentInstance)("useRender").render=e}},{"./getCurrentInstance.mjs":"7QKB5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3RgRq":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={badge:"Badge",open:"Open",close:"Close",dismiss:"Dismiss",confirmEdit:{ok:"OK",cancel:"Cancel"},dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},dateRangeInput:{divider:"to"},datePicker:{itemsSelected:"{0} selected",range:{title:"Select dates",header:"Enter dates"},title:"Select date",header:"Enter date",input:{placeholder:"Enter date"}},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more",today:"Today"},input:{clear:"Clear {0}",prependAction:"{0} prepended action",appendAction:"{0} appended action",otp:"Please enter OTP character {0}"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM",title:"Select Time"},pagination:{ariaLabel:{root:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Go to page {0}",currentPage:"Page {0}, Current page",first:"First page",last:"Last page"}},stepper:{next:"Next",prev:"Previous"},rating:{ariaLabel:{item:"Rating {0} of {1}"}},loading:"Loading...",infiniteScroll:{loadMore:"Load more",empty:"No more"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7U2Jt":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VuetifyDateAdapter",function(){return g});var o=e("@swc/helpers/_/_class_call_check"),a=e("@swc/helpers/_/_create_class"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("../../../util/index.mjs"),l={"001":1,AD:1,AE:6,AF:6,AG:0,AI:1,AL:1,AM:1,AN:1,AR:1,AS:0,AT:1,AU:1,AX:1,AZ:1,BA:1,BD:0,BE:1,BG:1,BH:6,BM:1,BN:1,BR:0,BS:0,BT:0,BW:0,BY:1,BZ:0,CA:0,CH:1,CL:1,CM:1,CN:1,CO:0,CR:1,CY:1,CZ:1,DE:1,DJ:6,DK:1,DM:0,DO:0,DZ:6,EC:1,EE:1,EG:6,ES:1,ET:0,FI:1,FJ:1,FO:1,FR:1,GB:1,"GB-alt-variant":0,GE:1,GF:1,GP:1,GR:1,GT:0,GU:0,HK:0,HN:0,HR:1,HU:1,ID:0,IE:1,IL:0,IN:0,IQ:6,IR:6,IS:1,IT:1,JM:0,JO:6,JP:0,KE:0,KG:1,KH:0,KR:0,KW:6,KZ:1,LA:0,LB:1,LI:1,LK:1,LT:1,LU:1,LV:1,LY:6,MC:1,MD:1,ME:1,MH:0,MK:1,MM:0,MN:1,MO:0,MQ:1,MT:0,MV:5,MX:0,MY:1,MZ:0,NI:0,NL:1,NO:1,NP:0,NZ:1,OM:6,PA:0,PE:0,PH:0,PK:0,PL:1,PR:0,PT:0,PY:0,QA:6,RE:1,RO:1,RS:1,RU:1,SA:0,SD:6,SE:1,SG:0,SI:1,SK:1,SM:1,SV:0,SY:6,TH:0,TJ:1,TM:1,TR:1,TT:0,TW:0,UA:1,UM:0,US:0,UY:1,UZ:1,VA:1,VE:0,VI:0,VN:1,WS:0,XK:1,YE:0,ZA:0,ZW:0};function c(e){return new Date(e.getFullYear(),e.getMonth(),1)}function u(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}var d=/^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;function p(e){if(null==e)return new Date;if(e instanceof Date)return e;if("string"==typeof e){var t,r;if(d.test(e))return new Date((r=e.split("-").map(Number))[0],r[1]-1,r[2]);if(!isNaN(t=Date.parse(e)))return new Date(t)}return null}var f=new Date(2e3,0,2);function m(e,t){return e.getTime()>t.getTime()}function _(e,t){return e.getTime()===t.getTime()}function h(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0)}var g=/*#__PURE__*/function(){function e(t){(0,o._)(this,e),this.locale=t.locale,this.formats=t.formats}return(0,a._)(e,[{key:"date",value:function(e){return p(e)}},{key:"toJsDate",value:function(e){return e}},{key:"toISO",value:function(e){var t,r,n,o;return r=(t=this.toJsDate(e)).getFullYear(),n=(0,s.padStart)(String(t.getMonth()+1),2,"0"),o=(0,s.padStart)(String(t.getDate()),2,"0"),"".concat(r,"-").concat(n,"-").concat(o)}},{key:"parseISO",value:function(e){var t;return new Date((t=(0,i._)(e.split("-").map(Number),3))[0],t[1]-1,t[2])}},{key:"addMinutes",value:function(e,t){var r;return(r=new Date(e)).setMinutes(r.getMinutes()+t),r}},{key:"addHours",value:function(e,t){var r;return(r=new Date(e)).setHours(r.getHours()+t),r}},{key:"addDays",value:function(e,t){var r;return(r=new Date(e)).setDate(r.getDate()+t),r}},{key:"addWeeks",value:function(e,t){var r;return(r=new Date(e)).setDate(r.getDate()+7*t),r}},{key:"addMonths",value:function(e,t){var r;return(r=new Date(e)).setDate(1),r.setMonth(r.getMonth()+t),r}},{key:"getWeekArray",value:function(e,t){return function(e,t,r){for(var n,o=[],a=[],i=c(e),s=u(e),d=null!==(n=null!=r?r:l[t.slice(-2).toUpperCase()])&&void 0!==n?n:0,p=(i.getDay()-d+7)%7,f=(s.getDay()-d+7)%7,m=0;m0&&o.push(a),o}(e,this.locale,t?Number(t):void 0)}},{key:"startOfWeek",value:function(e,t){return function(e,t,r){for(var n,o=null!==(n=null!=r?r:l[t.slice(-2).toUpperCase()])&&void 0!==n?n:0,a=new Date(e);a.getDay()!==o;)a.setDate(a.getDate()-1);return a}(e,this.locale,t?Number(t):void 0)}},{key:"endOfWeek",value:function(e){return function(e,t){for(var r,n=new Date(e),o=((null!==(r=l[t.slice(-2).toUpperCase()])&&void 0!==r?r:0)+6)%7;n.getDay()!==o;)n.setDate(n.getDate()+1);return n}(e,this.locale)}},{key:"startOfMonth",value:function(e){return c(e)}},{key:"endOfMonth",value:function(e){return u(e)}},{key:"format",value:function(e,t){return function(e,t,r,n){var o,a=null!==(o=p(e))&&void 0!==o?o:new Date,i=null==n?void 0:n[t];if("function"==typeof i)return i(a,t,r);var s={};switch(t){case"fullDate":s={year:"numeric",month:"long",day:"numeric"};break;case"fullDateWithWeekday":s={weekday:"long",year:"numeric",month:"long",day:"numeric"};break;case"normalDate":var l=a.getDate(),c=new Intl.DateTimeFormat(r,{month:"long"}).format(a);return"".concat(l," ").concat(c);case"normalDateWithWeekday":s={weekday:"short",day:"numeric",month:"short"};break;case"shortDate":s={month:"short",day:"numeric"};break;case"year":s={year:"numeric"};break;case"month":s={month:"long"};break;case"monthShort":s={month:"short"};break;case"monthAndYear":s={month:"long",year:"numeric"};break;case"monthAndDate":s={month:"long",day:"numeric"};break;case"weekday":s={weekday:"long"};break;case"weekdayShort":s={weekday:"short"};break;case"dayOfMonth":return new Intl.NumberFormat(r).format(a.getDate());case"hours12h":s={hour:"numeric",hour12:!0};break;case"hours24h":s={hour:"numeric",hour12:!1};break;case"minutes":s={minute:"numeric"};break;case"seconds":s={second:"numeric"};break;case"fullTime":case"fullTime12h":s={hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullTime24h":s={hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"fullDateTime":case"fullDateTime12h":s={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullDateTime24h":s={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"keyboardDate":s={year:"numeric",month:"2-digit",day:"2-digit"};break;case"keyboardDateTime":case"keyboardDateTime24h":s={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"keyboardDateTime12h":s={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;default:s=null!=i?i:{timeZone:"UTC",timeZoneName:"short"}}return new Intl.DateTimeFormat(r,s).format(a)}(e,t,this.locale,this.formats)}},{key:"isEqual",value:function(e,t){return _(e,t)}},{key:"isValid",value:function(e){var t;return(t=new Date(e))instanceof Date&&!isNaN(t.getTime())}},{key:"isWithinRange",value:function(e,t){var r;return m(e,t[0])&&(r=t[1],e.getTime()0&&void 0!==arguments[0]?arguments[0]:p;return(0,l.mergeDeep)(p,e)};function m(e){return c.IN_BROWSER&&!e?window.innerWidth:"object"==typeof e&&e.clientWidth||0}function _(e){return c.IN_BROWSER&&!e?window.innerHeight:"object"==typeof e&&e.clientHeight||0}function h(e){var t=c.IN_BROWSER&&!e?window.navigator.userAgent:"ssr";function r(e){return!!t.match(e)}return{android:r(/android/i),ios:r(/iphone|ipad|ipod/i),cordova:r(/cordova/i),electron:r(/electron/i),chrome:r(/chrome/i),edge:r(/edge/i),firefox:r(/firefox/i),opera:r(/opera/i),win:r(/win/i),mac:r(/mac/i),linux:r(/linux/i),touch:c.SUPPORTS_TOUCH,ssr:"ssr"===t}}function g(e,t){var r=f(e),n=r.thresholds,o=r.mobileBreakpoint,l=(0,s.shallowRef)(_(t)),u=(0,s.shallowRef)(h(t)),d=(0,s.reactive)({}),p=(0,s.shallowRef)(m(t));function g(){l.value=_(),p.value=m()}return(0,s.watchEffect)(function(){var e=p.value=n.xxl,c=e?"xs":t?"sm":r?"md":a?"lg":i?"xl":"xxl",f="number"==typeof o?o:n[o],m=p.value0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,l.getCurrentInstanceName)(),r=(0,s.inject)(d);if(!r)throw Error("Could not find Vuetify display injection");var n=(0,s.computed)(function(){if(null!=e.mobile)return e.mobile;if(!e.mobileBreakpoint)return r.mobile.value;var t="number"==typeof e.mobileBreakpoint?e.mobileBreakpoint:r.thresholds.value[e.mobileBreakpoint];return r.width.value=1&&10>Math.abs(a-h[o]))?e(b):n>2?((0,d.consoleWarn)("Scroll target is not reachable"),e(h[o])):void requestAnimationFrame(t)})})])})})).apply(this,arguments)}function y(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,c.inject)(p),n=(0,u.useRtl)().isRtl;if(!r)throw Error("[Vuetify] Could not find injected goto instance");var s=(0,i._)((0,a._)({},r),{rtl:(0,c.computed)(function(){return r.rtl.value||n.value})});function f(e,t){return m.apply(this,arguments)}function m(){return(m=(0,o._)(function(e,r){return(0,l._)(this,function(n){return[2,g(e,(0,d.mergeDeep)(t,r),!1,s)]})})).apply(this,arguments)}return f.horizontal=(e=(0,o._)(function(e,r){return(0,l._)(this,function(n){return[2,g(e,(0,d.mergeDeep)(t,r),!0,s)]})}),function(t,r){return e.apply(this,arguments)}),f}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","./locale.mjs":"8eTqB","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"71CER":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"IconValue",function(){return c}),n.export(r,"IconSymbol",function(){return u}),n.export(r,"makeIconProps",function(){return d}),n.export(r,"VComponentIcon",function(){return p}),n.export(r,"VSvgIcon",function(){return f}),n.export(r,"VLigatureIcon",function(){return m}),n.export(r,"VClassIcon",function(){return _}),n.export(r,"createIcons",function(){return h}),n.export(r,"useIcon",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue"),s=e("../iconsets/mdi.mjs"),l=e("../util/index.mjs"),c=[String,Function,Object,Array],u=Symbol.for("vuetify:icons"),d=(0,l.propsFactory)({icon:{type:c},tag:{type:String,required:!0}},"icon"),p=(0,l.genericComponent)()({name:"VComponentIcon",props:d(),setup:function(e,t){var r=t.slots;return function(){var t=e.icon;return(0,i.createVNode)(e.tag,null,{default:function(){var n;return[e.icon?(0,i.createVNode)(t,null,null):null===(n=r.default)||void 0===n?void 0:n.call(r)]}})}}}),f=(0,l.defineComponent)({name:"VSvgIcon",inheritAttrs:!1,props:d(),setup:function(e,t){var r=t.attrs;return function(){return(0,i.createVNode)(e.tag,(0,i.mergeProps)(r,{style:null}),{default:function(){return[(0,i.createVNode)("svg",{class:"v-icon__svg",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true"},[Array.isArray(e.icon)?e.icon.map(function(e){return Array.isArray(e)?(0,i.createVNode)("path",{d:e[0],"fill-opacity":e[1]},null):(0,i.createVNode)("path",{d:e},null)}):(0,i.createVNode)("path",{d:e.icon},null)])]}})}}}),m=(0,l.defineComponent)({name:"VLigatureIcon",props:d(),setup:function(e){return function(){return(0,i.createVNode)(e.tag,null,{default:function(){return[e.icon]}})}}}),_=(0,l.defineComponent)({name:"VClassIcon",props:d(),setup:function(e){return function(){return(0,i.createVNode)(e.tag,{class:e.icon},null)}}});function h(e){var t,r={svg:{component:f},class:{component:_}},n=null!==(t=null==e?void 0:e.defaultSet)&&void 0!==t?t:"mdi";return"mdi"!==n||r.mdi||(r.mdi=s.mdi),(0,l.mergeDeep)({defaultSet:n,sets:r,aliases:(0,a._)((0,o._)({},s.aliases),{vuetify:["M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z",["M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z",.6]],"vuetify-outline":"svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z","vuetify-play":["m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z",["M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z",.6]]})},e)}var g=function(e){var t=(0,i.inject)(u);if(!t)throw Error("Missing Vuetify Icons provide!");return{iconData:(0,i.computed)(function(){var r,n=(0,i.unref)(e);if(!n)return{component:p};var o=n;if("string"==typeof o&&(o=o.trim()).startsWith("$")&&(o=null===(r=t.aliases)||void 0===r?void 0:r[o.slice(1)]),o||(0,l.consoleWarn)('Could not find aliased icon "'.concat(n,'"')),Array.isArray(o))return{component:f,icon:o};if("string"!=typeof o)return{component:p,icon:o};var a=Object.keys(t.sets).find(function(e){return"string"==typeof o&&o.startsWith("".concat(e,":"))}),s=a?o.slice(a.length+1):o;return{component:t.sets[null!=a?a:t.defaultSet].component,icon:s}})}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","../iconsets/mdi.mjs":"iSehB","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iSehB:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"aliases",function(){return l}),n.export(r,"mdi",function(){return c});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("../composables/icons.mjs"),s=e("vue"),l={collapse:"mdi-chevron-up",complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close-circle",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-alert-circle",error:"mdi-close-circle",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sortAsc:"mdi-arrow-up",sortDesc:"mdi-arrow-down",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus",calendar:"mdi-calendar",treeviewCollapse:"mdi-menu-down",treeviewExpand:"mdi-menu-right",eyeDropper:"mdi-eyedropper"},c={component:function(e){return(0,s.h)(i.VClassIcon,(0,a._)((0,o._)({},e),{class:"mdi"}))}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","../composables/icons.mjs":"71CER",vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iNuzC:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"ThemeSymbol",function(){return u}),n.export(r,"makeThemeProps",function(){return d}),n.export(r,"createTheme",function(){return f}),n.export(r,"provideTheme",function(){return m}),n.export(r,"useTheme",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("@swc/helpers/_/_to_consumable_array"),l=e("vue"),c=e("../util/index.mjs"),u=Symbol.for("vuetify:theme"),d=(0,c.propsFactory)({theme:String},"theme");function p(){return{defaultTheme:"light",variations:{colors:[],lighten:0,darken:0},themes:{light:{dark:!1,colors:{background:"#FFFFFF",surface:"#FFFFFF","surface-bright":"#FFFFFF","surface-light":"#EEEEEE","surface-variant":"#424242","on-surface-variant":"#EEEEEE",primary:"#1867C0","primary-darken-1":"#1F5592",secondary:"#48A9A6","secondary-darken-1":"#018786",error:"#B00020",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},variables:{"border-color":"#000000","border-opacity":.12,"high-emphasis-opacity":.87,"medium-emphasis-opacity":.6,"disabled-opacity":.38,"idle-opacity":.04,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.12,"dragged-opacity":.08,"theme-kbd":"#212529","theme-on-kbd":"#FFFFFF","theme-code":"#F5F5F5","theme-on-code":"#000000"}},dark:{dark:!0,colors:{background:"#121212",surface:"#212121","surface-bright":"#ccbfd6","surface-light":"#424242","surface-variant":"#a3a3a3","on-surface-variant":"#424242",primary:"#2196F3","primary-darken-1":"#277CC1",secondary:"#54B6B2","secondary-darken-1":"#48A9A6",error:"#CF6679",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},variables:{"border-color":"#FFFFFF","border-opacity":.12,"high-emphasis-opacity":1,"medium-emphasis-opacity":.7,"disabled-opacity":.5,"idle-opacity":.1,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.16,"dragged-opacity":.08,"theme-kbd":"#212529","theme-on-kbd":"#FFFFFF","theme-code":"#343434","theme-on-code":"#CCCCCC"}}}}}function f(e){var t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p(),t=p();if(!e)return(0,a._)((0,o._)({},t),{isDisabled:!0});var r={},n=!0,s=!1,l=void 0;try{for(var u,d,f=Object.entries(null!==(u=e.themes)&&void 0!==u?u:{})[Symbol.iterator]();!(n=(d=f.next()).done);n=!0){var m,_,h=(0,i._)(d.value,2),g=h[0],b=h[1],y=b.dark||"dark"===g?null===(m=t.themes)||void 0===m?void 0:m.dark:null===(_=t.themes)||void 0===_?void 0:_.light;r[g]=(0,c.mergeDeep)(y,b)}}catch(e){s=!0,l=e}finally{try{n||null==f.return||f.return()}finally{if(s)throw l}}return(0,c.mergeDeep)(t,(0,a._)((0,o._)({},e),{themes:r}))}(e),r=(0,l.ref)(t.defaultTheme),n=(0,l.ref)(t.themes),u=(0,l.computed)(function(){var e={},r=!0,s=!1,l=void 0;try{for(var u,d=Object.entries(n.value)[Symbol.iterator]();!(r=(u=d.next()).done);r=!0){var p=(0,i._)(u.value,2),f=p[0],m=p[1],_=e[f]=(0,a._)((0,o._)({},m),{colors:(0,o._)({},m.colors)}),h=!0,g=!1,b=void 0;if(t.variations)try{for(var y,S=t.variations.colors[Symbol.iterator]();!(h=(y=S.next()).done);h=!0){var E=y.value,x=_.colors[E];if(x)for(var C=0,T=["lighten","darken"];C.18?t:r))}}catch(e){a=!0,s=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw s}}var _=!0,h=!1,g=void 0;try{for(var b,y=Object.entries(e.variables)[Symbol.iterator]();!(_=(b=y.next()).done);_=!0){var S=(0,i._)(b.value,2),E=S[0],x=S[1],C="string"==typeof x&&x.startsWith("#")?(0,c.parseColor)(x):void 0,T=C?"".concat(C.r,", ").concat(C.g,", ").concat(C.b):void 0;n.push("--v-".concat(E,": ").concat(null!=T?T:x))}}catch(e){h=!0,g=e}finally{try{_||null==y.return||y.return()}finally{if(h)throw g}}return n}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3SSfs":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useDate",function(){return o.useDate}),n.export(r,"useDefaults",function(){return a.useDefaults}),n.export(r,"useDisplay",function(){return i.useDisplay}),n.export(r,"useGoTo",function(){return s.useGoTo}),n.export(r,"useLayout",function(){return l.useLayout}),n.export(r,"useLocale",function(){return c.useLocale}),n.export(r,"useRtl",function(){return c.useRtl}),n.export(r,"useTheme",function(){return u.useTheme});var o=e("./date/index.mjs"),a=e("./defaults.mjs"),i=e("./display.mjs"),s=e("./goto.mjs"),l=e("./layout.mjs"),c=e("./locale.mjs"),u=e("./theme.mjs")},{"./date/index.mjs":!1,"./defaults.mjs":!1,"./display.mjs":"5LhPp","./goto.mjs":!1,"./layout.mjs":"j1CRa","./locale.mjs":"8eTqB","./theme.mjs":!1,"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3b53r":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"createDate",function(){return o.createDate}),n.export(r,"useDate",function(){return o.useDate}),n.export(r,"DateAdapterSymbol",function(){return o.DateAdapterSymbol});var o=e("./date.mjs")},{"./date.mjs":"928qC","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],j1CRa:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VuetifyLayoutKey",function(){return p}),n.export(r,"VuetifyLayoutItemKey",function(){return f}),n.export(r,"makeLayoutProps",function(){return m}),n.export(r,"makeLayoutItemProps",function(){return _}),n.export(r,"useLayout",function(){return h}),n.export(r,"useLayoutItem",function(){return g}),n.export(r,"createLayout",function(){return y});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("@swc/helpers/_/_sliced_to_array"),l=e("@swc/helpers/_/_to_consumable_array"),c=e("./resizeObserver.mjs"),u=e("vue"),d=e("../util/index.mjs"),p=Symbol.for("vuetify:layout"),f=Symbol.for("vuetify:layout-item"),m=(0,d.propsFactory)({overlaps:{type:Array,default:function(){return[]}},fullHeight:Boolean},"layout"),_=(0,d.propsFactory)({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},"layout-item");function h(){var e=(0,u.inject)(p);if(!e)throw Error("[Vuetify] Could not find injected layout");return{getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function g(e){var t,r=(0,u.inject)(p);if(!r)throw Error("[Vuetify] Could not find injected layout");var n=null!==(t=e.id)&&void 0!==t?t:"layout-item-".concat((0,d.getUid)()),o=(0,d.getCurrentInstance)("useLayoutItem");(0,u.provide)(f,{id:n});var s=(0,u.shallowRef)(!1);(0,u.onDeactivated)(function(){return s.value=!0}),(0,u.onActivated)(function(){return s.value=!1});var l=r.register(o,(0,i._)((0,a._)({},e),{active:(0,u.computed)(function(){return!s.value&&e.active.value}),id:n})),c=l.layoutItemStyles,m=l.layoutItemScrimStyles;return(0,u.onBeforeUnmount)(function(){return r.unregister(n)}),{layoutItemStyles:c,layoutRect:r.layoutRect,layoutItemScrimStyles:m}}var b=function(e,t,r,n){var s={top:0,left:0,right:0,bottom:0},l=[{id:"",layer:(0,a._)({},s)}],c=!0,u=!1,d=void 0;try{for(var p,f=e[Symbol.iterator]();!(c=(p=f.next()).done);c=!0){var m=p.value,_=t.get(m),h=r.get(m),g=n.get(m);if(_&&h&&g){var b=(0,i._)((0,a._)({},s),(0,o._)({},_.value,parseInt(s[_.value],10)+(g.value?parseInt(h.value,10):0)));l.push({id:m,layer:b}),s=b}}}catch(e){u=!0,d=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw d}}return l};function y(e){var t=(0,u.inject)(p,null),r=(0,u.computed)(function(){return t?t.rootZIndex.value-100:1e3}),n=(0,u.ref)([]),m=(0,u.reactive)(new Map),_=(0,u.reactive)(new Map),h=(0,u.reactive)(new Map),g=(0,u.reactive)(new Map),y=(0,u.reactive)(new Map),S=(0,c.useResizeObserver)(),E=S.resizeRef,x=S.contentRect,C=(0,u.computed)(function(){var t=new Map,r=null!==(l=e.overlaps)&&void 0!==l?l:[],o=!0,a=!1,i=void 0;try{for(var l,c,u=r.filter(function(e){return e.includes(":")})[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var d=c.value,p=(0,s._)(d.split(":"),2),f=p[0],h=p[1];if(n.value.includes(f)&&n.value.includes(h)){var g=m.get(f),b=m.get(h),y=_.get(f),S=_.get(h);g&&b&&y&&S&&(t.set(h,{position:g.value,amount:parseInt(y.value,10)}),t.set(f,{position:b.value,amount:-parseInt(S.value,10)}))}}}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}return t}),T=(0,u.computed)(function(){var e=(0,l._)(new Set((0,l._)(h.values()).map(function(e){return e.value}))).sort(function(e,t){return e-t}),t=[],r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done);r=!0)!function(){var e=i.value,r=n.value.filter(function(t){var r;return(null===(r=h.get(t))||void 0===r?void 0:r.value)===e});t.push.apply(t,(0,l._)(r))}()}catch(e){o=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(o)throw a}}return b(t,m,_,g)}),w=(0,u.computed)(function(){return!Array.from(y.values()).some(function(e){return e.value})}),I=(0,u.computed)(function(){return T.value[T.value.length-1].layer}),R=(0,u.computed)(function(){return(0,a._)({"--v-layout-left":(0,d.convertToUnit)(I.value.left),"--v-layout-right":(0,d.convertToUnit)(I.value.right),"--v-layout-top":(0,d.convertToUnit)(I.value.top),"--v-layout-bottom":(0,d.convertToUnit)(I.value.bottom)},w.value?void 0:{transition:"none"})}),A=(0,u.computed)(function(){return T.value.slice(1).map(function(e,t){var r=e.id,n=T.value[t].layer,o=_.get(r),s=m.get(r);return(0,i._)((0,a._)({id:r},n),{size:Number(o.value),position:s.value})})}),N=function(e){return A.value.find(function(t){return t.id===e})},k=(0,d.getCurrentInstance)("createLayout"),O=(0,u.shallowRef)(!1);return(0,u.onMounted)(function(){O.value=!0}),(0,u.provide)(p,{register:function(e,t){var s=t.id,l=t.order,c=t.position,p=t.layoutSize,b=t.elementSize,S=t.active,E=t.disableTransitions,x=t.absolute;h.set(s,l),m.set(s,c),_.set(s,p),g.set(s,S),E&&y.set(s,E);var I=(0,d.findChildrenWithProvide)(f,null==k?void 0:k.vnode).indexOf(e);I>-1?n.value.splice(I,0,s):n.value.push(s);var R=(0,u.computed)(function(){return A.value.findIndex(function(e){return e.id===s})}),N=(0,u.computed)(function(){return r.value+2*T.value.length-2*R.value});return{layoutItemStyles:(0,u.computed)(function(){var e,t,n="left"===c.value||"right"===c.value,l="right"===c.value,u="bottom"===c.value,d=null!==(e=b.value)&&void 0!==e?e:p.value,f=(0,a._)((t={},(0,o._)(t,c.value,0),(0,o._)(t,"zIndex",N.value),(0,o._)(t,"transform","translate".concat(n?"X":"Y","(").concat((S.value?0:-(0===d?100:d))*(l||u?-1:1)).concat(0===d?"%":"px",")")),(0,o._)(t,"position",x.value||1e3!==r.value?"absolute":"fixed"),t),w.value?void 0:{transition:"none"});if(!O.value)return f;var m=A.value[R.value];if(!m)throw Error('[Vuetify] Could not find layout item "'.concat(s,'"'));var _=C.value.get(s);return _&&(m[_.position]+=_.amount),(0,i._)((0,a._)({},f),{height:n?"calc(100% - ".concat(m.top,"px - ").concat(m.bottom,"px)"):b.value?"".concat(b.value,"px"):void 0,left:l?void 0:"".concat(m.left,"px"),right:l?"".concat(m.right,"px"):void 0,top:"bottom"!==c.value?"".concat(m.top,"px"):void 0,bottom:"top"!==c.value?"".concat(m.bottom,"px"):void 0,width:n?b.value?"".concat(b.value,"px"):void 0:"calc(100% - ".concat(m.left,"px - ").concat(m.right,"px)")})}),layoutItemScrimStyles:(0,u.computed)(function(){return{zIndex:N.value-1}}),zIndex:N}},unregister:function(e){h.delete(e),m.delete(e),_.delete(e),g.delete(e),y.delete(e),n.value=n.value.filter(function(t){return t!==e})},mainRect:I,mainStyles:R,getLayoutItem:N,items:A,layoutRect:x,rootZIndex:r}),{layoutClasses:(0,u.computed)(function(){return["v-layout",{"v-layout--full-height":e.fullHeight}]}),layoutStyles:(0,u.computed)(function(){return{zIndex:t?r.value:void 0,position:t?"relative":void 0,overflow:t?"hidden":void 0}}),getLayoutItem:N,items:A,layoutRect:x,layoutRef:E}}},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM","./resizeObserver.mjs":"kyBb2",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kyBb2:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useResizeObserver",function(){return s});var o=e("vue"),a=e("../util/index.mjs"),i=e("../util/globals.mjs");function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"content",r=(0,a.templateRef)(),n=(0,o.ref)();if(i.IN_BROWSER){var s=new ResizeObserver(function(r){null==e||e(r,s),r.length&&("content"===t?n.value=r[0].contentRect:n.value=r[0].target.getBoundingClientRect())});(0,o.onBeforeUnmount)(function(){s.disconnect()}),(0,o.watch)(function(){return r.el},function(e,t){t&&(s.unobserve(t),n.value=void 0),e&&s.observe(e)},{flush:"post"})}return{resizeRef:r,contentRect:(0,o.readonly)(n)}}},{vue:"gHobw","../util/index.mjs":"iWvvc","../util/globals.mjs":"1UYtJ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lkaSl:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r);var o=e("./VApp/index.mjs");n.exportAll(o,r);var a=e("./VAppBar/index.mjs");n.exportAll(a,r);var i=e("./VAlert/index.mjs");n.exportAll(i,r);var s=e("./VAutocomplete/index.mjs");n.exportAll(s,r);var l=e("./VAvatar/index.mjs");n.exportAll(l,r);var c=e("./VBadge/index.mjs");n.exportAll(c,r);var u=e("./VBanner/index.mjs");n.exportAll(u,r);var d=e("./VBottomNavigation/index.mjs");n.exportAll(d,r);var p=e("./VBottomSheet/index.mjs");n.exportAll(p,r);var f=e("./VBreadcrumbs/index.mjs");n.exportAll(f,r);var m=e("./VBtn/index.mjs");n.exportAll(m,r);var _=e("./VBtnGroup/index.mjs");n.exportAll(_,r);var h=e("./VBtnToggle/index.mjs");n.exportAll(h,r);var g=e("./VCard/index.mjs");n.exportAll(g,r);var b=e("./VCarousel/index.mjs");n.exportAll(b,r);var y=e("./VCheckbox/index.mjs");n.exportAll(y,r);var S=e("./VChip/index.mjs");n.exportAll(S,r);var E=e("./VChipGroup/index.mjs");n.exportAll(E,r);var x=e("./VCode/index.mjs");n.exportAll(x,r);var C=e("./VColorPicker/index.mjs");n.exportAll(C,r);var T=e("./VCombobox/index.mjs");n.exportAll(T,r);var w=e("./VConfirmEdit/index.mjs");n.exportAll(w,r);var I=e("./VCounter/index.mjs");n.exportAll(I,r);var R=e("./VDataIterator/index.mjs");n.exportAll(R,r);var A=e("./VDataTable/index.mjs");n.exportAll(A,r);var N=e("./VDatePicker/index.mjs");n.exportAll(N,r);var k=e("./VDefaultsProvider/index.mjs");n.exportAll(k,r);var O=e("./VDialog/index.mjs");n.exportAll(O,r);var D=e("./VDivider/index.mjs");n.exportAll(D,r);var j=e("./VEmptyState/index.mjs");n.exportAll(j,r);var P=e("./VExpansionPanel/index.mjs");n.exportAll(P,r);var M=e("./VFab/index.mjs");n.exportAll(M,r);var L=e("./VField/index.mjs");n.exportAll(L,r);var V=e("./VFileInput/index.mjs");n.exportAll(V,r);var F=e("./VFooter/index.mjs");n.exportAll(F,r);var B=e("./VForm/index.mjs");n.exportAll(B,r);var U=e("./VGrid/index.mjs");n.exportAll(U,r);var G=e("./VHover/index.mjs");n.exportAll(G,r);var q=e("./VIcon/index.mjs");n.exportAll(q,r);var Y=e("./VImg/index.mjs");n.exportAll(Y,r);var H=e("./VInfiniteScroll/index.mjs");n.exportAll(H,r);var z=e("./VInput/index.mjs");n.exportAll(z,r);var W=e("./VItemGroup/index.mjs");n.exportAll(W,r);var K=e("./VKbd/index.mjs");n.exportAll(K,r);var Q=e("./VLabel/index.mjs");n.exportAll(Q,r);var $=e("./VLayout/index.mjs");n.exportAll($,r);var X=e("./VLazy/index.mjs");n.exportAll(X,r);var Z=e("./VList/index.mjs");n.exportAll(Z,r);var J=e("./VLocaleProvider/index.mjs");n.exportAll(J,r);var ee=e("./VMain/index.mjs");n.exportAll(ee,r);var et=e("./VMenu/index.mjs");n.exportAll(et,r);var er=e("./VMessages/index.mjs");n.exportAll(er,r);var en=e("./VNavigationDrawer/index.mjs");n.exportAll(en,r);var eo=e("./VNoSsr/index.mjs");n.exportAll(eo,r);var ea=e("./VOtpInput/index.mjs");n.exportAll(ea,r);var ei=e("./VOverlay/index.mjs");n.exportAll(ei,r);var es=e("./VPagination/index.mjs");n.exportAll(es,r);var el=e("./VParallax/index.mjs");n.exportAll(el,r);var ec=e("./VProgressCircular/index.mjs");n.exportAll(ec,r);var eu=e("./VProgressLinear/index.mjs");n.exportAll(eu,r);var ed=e("./VRadio/index.mjs");n.exportAll(ed,r);var ep=e("./VRadioGroup/index.mjs");n.exportAll(ep,r);var ef=e("./VRangeSlider/index.mjs");n.exportAll(ef,r);var em=e("./VRating/index.mjs");n.exportAll(em,r);var e_=e("./VResponsive/index.mjs");n.exportAll(e_,r);var eh=e("./VSelect/index.mjs");n.exportAll(eh,r);var ev=e("./VSelectionControl/index.mjs");n.exportAll(ev,r);var eg=e("./VSelectionControlGroup/index.mjs");n.exportAll(eg,r);var eb=e("./VSheet/index.mjs");n.exportAll(eb,r);var ey=e("./VSkeletonLoader/index.mjs");n.exportAll(ey,r);var eS=e("./VSlideGroup/index.mjs");n.exportAll(eS,r);var eE=e("./VSlider/index.mjs");n.exportAll(eE,r);var ex=e("./VSnackbar/index.mjs");n.exportAll(ex,r);var eC=e("./VSparkline/index.mjs");n.exportAll(eC,r);var eT=e("./VSpeedDial/index.mjs");n.exportAll(eT,r);var ew=e("./VStepper/index.mjs");n.exportAll(ew,r);var eI=e("./VSwitch/index.mjs");n.exportAll(eI,r);var eR=e("./VSystemBar/index.mjs");n.exportAll(eR,r);var eA=e("./VTabs/index.mjs");n.exportAll(eA,r);var eN=e("./VTable/index.mjs");n.exportAll(eN,r);var ek=e("./VTextarea/index.mjs");n.exportAll(ek,r);var eO=e("./VTextField/index.mjs");n.exportAll(eO,r);var eD=e("./VThemeProvider/index.mjs");n.exportAll(eD,r);var ej=e("./VTimeline/index.mjs");n.exportAll(ej,r);var eP=e("./VToolbar/index.mjs");n.exportAll(eP,r);var eM=e("./VTooltip/index.mjs");n.exportAll(eM,r);var eL=e("./VValidation/index.mjs");n.exportAll(eL,r);var eV=e("./VVirtualScroll/index.mjs");n.exportAll(eV,r);var eF=e("./VWindow/index.mjs");n.exportAll(eF,r);var eB=e("./transitions/index.mjs");n.exportAll(eB,r)},{"./VApp/index.mjs":"e73wW","./VAppBar/index.mjs":"7QaUU","./VAlert/index.mjs":"gIaFC","./VAutocomplete/index.mjs":"3epbl","./VAvatar/index.mjs":"gBQEK","./VBadge/index.mjs":"c4MFU","./VBanner/index.mjs":"aTjJF","./VBottomNavigation/index.mjs":"gQrqO","./VBottomSheet/index.mjs":"eDhqv","./VBreadcrumbs/index.mjs":"978RS","./VBtn/index.mjs":"kmwjW","./VBtnGroup/index.mjs":"2d0Dt","./VBtnToggle/index.mjs":"4TM5i","./VCard/index.mjs":"i0pzV","./VCarousel/index.mjs":"cy6H6","./VCheckbox/index.mjs":"6ncTM","./VChip/index.mjs":"2TmoL","./VChipGroup/index.mjs":"kSMJj","./VCode/index.mjs":"8ijis","./VColorPicker/index.mjs":"7gHCZ","./VCombobox/index.mjs":"1zR0n","./VConfirmEdit/index.mjs":"bbfUH","./VCounter/index.mjs":"cfwzy","./VDataIterator/index.mjs":"2V0sP","./VDataTable/index.mjs":"7pZi2","./VDatePicker/index.mjs":"gQbmp","./VDefaultsProvider/index.mjs":"9aMue","./VDialog/index.mjs":"gjfnR","./VDivider/index.mjs":"duptT","./VEmptyState/index.mjs":"biPHi","./VExpansionPanel/index.mjs":"lWrql","./VFab/index.mjs":"x9NIh","./VField/index.mjs":"8223I","./VFileInput/index.mjs":"hT89W","./VFooter/index.mjs":"eYVts","./VForm/index.mjs":"5654V","./VGrid/index.mjs":"aq5fZ","./VHover/index.mjs":"bZMDc","./VIcon/index.mjs":"kpG2s","./VImg/index.mjs":"cbjM3","./VInfiniteScroll/index.mjs":"lCelv","./VInput/index.mjs":"5gSft","./VItemGroup/index.mjs":"knfIV","./VKbd/index.mjs":"jVl33","./VLabel/index.mjs":"klORW","./VLayout/index.mjs":"mS19U","./VLazy/index.mjs":"g4jkc","./VList/index.mjs":"bufwY","./VLocaleProvider/index.mjs":"88NrA","./VMain/index.mjs":"15lpI","./VMenu/index.mjs":"8Wmwg","./VMessages/index.mjs":"kr0Lm","./VNavigationDrawer/index.mjs":"6vaEF","./VNoSsr/index.mjs":"hnPKz","./VOtpInput/index.mjs":"hGrIq","./VOverlay/index.mjs":"gzxhk","./VPagination/index.mjs":"iWkZe","./VParallax/index.mjs":"8sTTD","./VProgressCircular/index.mjs":"jD8F7","./VProgressLinear/index.mjs":"dyg9r","./VRadio/index.mjs":"5M97r","./VRadioGroup/index.mjs":"bfjER","./VRangeSlider/index.mjs":"9Cont","./VRating/index.mjs":"boYWH","./VResponsive/index.mjs":"jnnnL","./VSelect/index.mjs":"1Qemk","./VSelectionControl/index.mjs":"fU980","./VSelectionControlGroup/index.mjs":"bhFpY","./VSheet/index.mjs":"e3Ze6","./VSkeletonLoader/index.mjs":"cOBPn","./VSlideGroup/index.mjs":"1m0RE","./VSlider/index.mjs":"1A9Tn","./VSnackbar/index.mjs":"1lwJD","./VSparkline/index.mjs":"jz7Ra","./VSpeedDial/index.mjs":"6fXT5","./VStepper/index.mjs":"bI13c","./VSwitch/index.mjs":"k3rRN","./VSystemBar/index.mjs":"b1cNz","./VTabs/index.mjs":"4eoq4","./VTable/index.mjs":"h9biK","./VTextarea/index.mjs":"gN9Op","./VTextField/index.mjs":"4PZvK","./VThemeProvider/index.mjs":"gmstT","./VTimeline/index.mjs":"bcrx5","./VToolbar/index.mjs":"g5nQl","./VTooltip/index.mjs":"fJCZJ","./VValidation/index.mjs":"7R4xi","./VVirtualScroll/index.mjs":"41b6b","./VWindow/index.mjs":"a163F","./transitions/index.mjs":"9jbNO","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],e73wW:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VApp",function(){return o.VApp});var o=e("./VApp.mjs")},{"./VApp.mjs":"fRYMx","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fRYMx:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVAppProps",function(){return d}),n.export(r,"VApp",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VApp.css");var i=e("../../composables/component.mjs"),s=e("../../composables/layout.mjs"),l=e("../../composables/locale.mjs"),c=e("../../composables/theme.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({},(0,i.makeComponentProps)(),(0,s.makeLayoutProps)({fullHeight:!0}),(0,c.makeThemeProps)()),"VApp"),p=(0,u.genericComponent)()({name:"VApp",props:d(),setup:function(e,t){var r=t.slots,n=(0,c.provideTheme)(e),o=(0,s.createLayout)(e),i=o.layoutClasses,d=o.getLayoutItem,p=o.items,f=o.layoutRef,m=(0,l.useRtl)().rtlClasses;return(0,u.useRender)(function(){var t;return(0,a.createVNode)("div",{ref:f,class:["v-application",n.themeClasses.value,i.value,m.value,e.class],style:[e.style]},[(0,a.createVNode)("div",{class:"v-application__wrap"},[null===(t=r.default)||void 0===t?void 0:t.call(r)])])}),{getLayoutItem:d,items:p,theme:n}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VApp.css":"ggeer","../../composables/component.mjs":"c32AV","../../composables/layout.mjs":"j1CRa","../../composables/locale.mjs":"8eTqB","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ggeer:[function(){},{}],"7QaUU":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VAppBar",function(){return o.VAppBar}),n.export(r,"VAppBarNavIcon",function(){return a.VAppBarNavIcon}),n.export(r,"VAppBarTitle",function(){return i.VAppBarTitle});var o=e("./VAppBar.mjs"),a=e("./VAppBarNavIcon.mjs"),i=e("./VAppBarTitle.mjs")},{"./VAppBar.mjs":"iOyeZ","./VAppBarNavIcon.mjs":"ir1QU","./VAppBarTitle.mjs":"2334W","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iOyeZ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVAppBarProps",function(){return m}),n.export(r,"VAppBar",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VAppBar.css");var s=e("../VToolbar/VToolbar.mjs"),l=e("../../composables/layout.mjs"),c=e("../../composables/proxiedModel.mjs"),u=e("../../composables/scroll.mjs"),d=e("../../composables/ssrBoot.mjs"),p=e("../../composables/toggleScope.mjs"),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,a._)((0,o._)({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:"top",validator:function(e){return["top","bottom"].includes(e)}}},(0,s.makeVToolbarProps)(),(0,l.makeLayoutItemProps)(),(0,u.makeScrollProps)()),{height:{type:[Number,String],default:64}}),"VAppBar"),_=(0,f.genericComponent)()({name:"VAppBar",props:m(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,i.ref)(),m=(0,c.useProxiedModel)(e,"modelValue"),_=(0,i.computed)(function(){var t,r,n=new Set(null!==(r=null===(t=e.scrollBehavior)||void 0===t?void 0:t.split(" "))&&void 0!==r?r:[]);return{hide:n.has("hide"),fullyHide:n.has("fully-hide"),inverted:n.has("inverted"),collapse:n.has("collapse"),elevate:n.has("elevate"),fadeImage:n.has("fade-image")}}),h=(0,i.computed)(function(){var e=_.value;return e.hide||e.fullyHide||e.inverted||e.collapse||e.elevate||e.fadeImage||!m.value}),g=(0,u.useScroll)(e,{canScroll:h}),b=g.currentScroll,y=g.scrollThreshold,S=g.isScrollingUp,E=g.scrollRatio,x=(0,i.computed)(function(){return _.value.hide||_.value.fullyHide}),C=(0,i.computed)(function(){return e.collapse||_.value.collapse&&(_.value.inverted?E.value>0:0===E.value)}),T=(0,i.computed)(function(){return e.flat||_.value.fullyHide&&!m.value||_.value.elevate&&(_.value.inverted?b.value>0:0===b.value)}),w=(0,i.computed)(function(){return _.value.fadeImage?_.value.inverted?1-E.value:E.value:void 0}),I=(0,i.computed)(function(){if(_.value.hide&&_.value.inverted)return 0;var e,t,r,o,a=null!==(r=null===(e=n.value)||void 0===e?void 0:e.contentHeight)&&void 0!==r?r:0,i=null!==(o=null===(t=n.value)||void 0===t?void 0:t.extensionHeight)&&void 0!==o?o:0;return x.value?b.valuey.value:m.value=S.value||b.value2&&void 0!==arguments[2]?arguments[2]:"in-out";return(0,i.genericComponent)()({name:e,props:{mode:{type:String,default:r},disabled:Boolean,group:Boolean},setup:function(r,n){var i=n.slots,s=r.group?a.TransitionGroup:a.Transition;return function(){return(0,a.h)(s,(0,o._)({name:r.disabled?"":e,css:!r.disabled},r.disabled?{}:t),i.default)}}})}},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],heh0Q:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t?"width":"height",n=(0,a.camelize)("offset-".concat(r));return{onBeforeEnter:function(e){e._parent=e.parentNode,e._initialStyle=(0,o._)({transition:e.style.transition,overflow:e.style.overflow},r,e.style[r])},onEnter:function(t){var o=t._initialStyle;t.style.setProperty("transition","none","important"),t.style.overflow="hidden";var a="".concat(t[n],"px");t.style[r]="0",t.offsetHeight,t.style.transition=o.transition,e&&t._parent&&t._parent.classList.add(e),requestAnimationFrame(function(){t.style[r]=a})},onAfterEnter:s,onEnterCancelled:s,onLeave:function(e){e._initialStyle=(0,o._)({transition:"",overflow:e.style.overflow},r,e.style[r]),e.style.overflow="hidden",e.style[r]="".concat(e[n],"px"),e.offsetHeight,requestAnimationFrame(function(){return e.style[r]="0"})},onAfterLeave:i,onLeaveCancelled:i};function i(t){e&&t._parent&&t._parent.classList.remove(e),s(t)}function s(e){var t=e._initialStyle[r];e.style.overflow=e._initialStyle.overflow,null!=t&&(e.style[r]=t),delete e._initialStyle}}});var o=e("@swc/helpers/_/_define_property"),a=e("vue")},{"@swc/helpers/_/_define_property":"3xmRB",vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aRn0L:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDialogTransitionProps",function(){return d}),n.export(r,"VDialogTransition",function(){return p});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("@swc/helpers/_/_ts_generator"),l=e("vue"),c=e("../../util/index.mjs"),u=e("../../util/box.mjs"),d=(0,c.propsFactory)({target:[Object,Array]},"v-dialog-transition"),p=(0,c.genericComponent)()({name:"VDialogTransition",props:d(),setup:function(e,t){var r=t.slots,n={onBeforeEnter:function(e){e.style.pointerEvents="none",e.style.visibility="hidden"},onEnter:function(t,r){return(0,o._)(function(){var n,o,a,i,l,u,d,p;return(0,s._)(this,function(s){switch(s.label){case 0:return[4,new Promise(function(e){return requestAnimationFrame(e)})];case 1:return s.sent(),[4,new Promise(function(e){return requestAnimationFrame(e)})];case 2:return s.sent(),t.style.visibility="",a=(o=m(e.target,t)).x,i=o.y,l=o.sx,u=o.sy,d=o.speed,p=(0,c.animate)(t,[{transform:"translate(".concat(a,"px, ").concat(i,"px) scale(").concat(l,", ").concat(u,")"),opacity:0},{}],{duration:225*d,easing:c.deceleratedEasing}),null===(n=f(t))||void 0===n||n.forEach(function(e){(0,c.animate)(e,[{opacity:0},{opacity:0,offset:.33},{}],{duration:450*d,easing:c.standardEasing})}),p.finished.then(function(){return r()}),[2]}})})()},onAfterEnter:function(e){e.style.removeProperty("pointer-events")},onBeforeLeave:function(e){e.style.pointerEvents="none"},onLeave:function(t,r){return(0,o._)(function(){var n,o,a,i,l,u,d;return(0,s._)(this,function(s){switch(s.label){case 0:return[4,new Promise(function(e){return requestAnimationFrame(e)})];case 1:return s.sent(),a=(o=m(e.target,t)).x,i=o.y,l=o.sx,u=o.sy,d=o.speed,(0,c.animate)(t,[{},{transform:"translate(".concat(a,"px, ").concat(i,"px) scale(").concat(l,", ").concat(u,")"),opacity:0}],{duration:125*d,easing:c.acceleratedEasing}).finished.then(function(){return r()}),null===(n=f(t))||void 0===n||n.forEach(function(e){(0,c.animate)(e,[{},{opacity:0,offset:.2},{opacity:0}],{duration:250*d,easing:c.standardEasing})}),[2]}})})()},onAfterLeave:function(e){e.style.removeProperty("pointer-events")}};return function(){return e.target?(0,l.createVNode)(l.Transition,(0,l.mergeProps)({name:"dialog-transition"},n,{css:!1}),r):(0,l.createVNode)(l.Transition,{name:"dialog-transition"},r)}}});function f(e){var t,r=null===(t=e.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list"))||void 0===t?void 0:t.children;return r&&(0,i._)(r)}function m(e,t){var r=(0,u.getTargetBox)(e),n=(0,c.nullifyTransforms)(t),o=(0,a._)(getComputedStyle(t).transformOrigin.split(" ").map(function(e){return parseFloat(e)}),2),i=o[0],s=o[1],l=(0,a._)(getComputedStyle(t).getPropertyValue("--v-overlay-anchor-origin").split(" "),2),d=l[0],p=l[1],f=r.left+r.width/2;"left"===d||"left"===p?f-=r.width/2:("right"===d||"right"===p)&&(f+=r.width/2);var m=r.top+r.height/2;"top"===d||"top"===p?m-=r.height/2:("bottom"===d||"bottom"===p)&&(m+=r.height/2);var _=r.width/n.width,h=r.height/n.height,g=Math.max(1,_,h),b=n.width*n.height/(window.innerWidth*window.innerHeight),y=b>.12?Math.min(1.5,(b-.12)*10+1):1;return{x:f-(i+n.left),y:m-(s+n.top),sx:_/g||0,sy:h/g||0,speed:y}}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","../../util/index.mjs":"iWvvc","../../util/box.mjs":"ox4Sm","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9aMue":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VDefaultsProvider",function(){return o.VDefaultsProvider});var o=e("./VDefaultsProvider.mjs")},{"./VDefaultsProvider.mjs":"3cy0a","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3cy0a":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDefaultsProviderProps",function(){return s}),n.export(r,"VDefaultsProvider",function(){return l});var o=e("../../composables/defaults.mjs"),a=e("vue"),i=e("../../util/index.mjs"),s=(0,i.propsFactory)({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},"VDefaultsProvider"),l=(0,i.genericComponent)(!1)({name:"VDefaultsProvider",props:s(),setup:function(e,t){var r=t.slots,n=(0,a.toRefs)(e),i=n.defaults,s=n.disabled,l=n.reset,c=n.root,u=n.scoped;return(0,o.provideDefaults)(i,{reset:l,root:c,scoped:u,disabled:s}),function(){var e;return null===(e=r.default)||void 0===e?void 0:e.call(r)}}})},{"../../composables/defaults.mjs":"cYwla",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cbjM3:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VImg",function(){return o.VImg});var o=e("./VImg.mjs")},{"./VImg.mjs":"icZXH","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],icZXH:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVImgProps",function(){return m}),n.export(r,"VImg",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VImg.css");var i=e("../VResponsive/VResponsive.mjs"),s=e("../../composables/color.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/rounded.mjs"),u=e("../../composables/transition.mjs"),d=e("../../directives/intersect/index.mjs"),p=n.interopDefault(d),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,o._)({absolute:Boolean,alt:String,cover:Boolean,color:String,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},sizes:String,src:{type:[String,Object],default:""},crossorigin:String,referrerpolicy:String,srcset:String,position:String},(0,i.makeVResponsiveProps)(),(0,l.makeComponentProps)(),(0,c.makeRoundedProps)(),(0,u.makeTransitionProps)()),"VImg"),_=(0,f.genericComponent)()({name:"VImg",directives:{intersect:p.default},props:m(),emits:{loadstart:function(e){return!0},load:function(e){return!0},error:function(e){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,o=(0,s.useBackgroundColor)((0,a.toRef)(e,"color")),l=o.backgroundColorClasses,d=o.backgroundColorStyles,p=(0,c.useRounded)(e).roundedClasses,m=(0,f.getCurrentInstance)("VImg"),_=(0,a.shallowRef)(""),h=(0,a.ref)(),g=(0,a.shallowRef)(e.eager?"loading":"idle"),b=(0,a.shallowRef)(),y=(0,a.shallowRef)(),S=(0,a.computed)(function(){return e.src&&"object"==typeof e.src?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}}),E=(0,a.computed)(function(){return S.value.aspect||b.value/y.value||0});function x(t){if((!e.eager||!t)&&(!f.SUPPORTS_INTERSECTION||t||e.eager)){if(g.value="loading",S.value.lazySrc){var n=new Image;n.src=S.value.lazySrc,R(n,null)}S.value.src&&(0,a.nextTick)(function(){var e;r("loadstart",(null===(e=h.value)||void 0===e?void 0:e.currentSrc)||S.value.src),setTimeout(function(){var e;if(!m.isUnmounted){if(null===(e=h.value)||void 0===e?void 0:e.complete){if(h.value.naturalWidth||T(),"error"===g.value)return;E.value||R(h.value,null),"loading"===g.value&&C()}else E.value||R(h.value),w()}})})}}function C(){var e;m.isUnmounted||(w(),R(h.value),g.value="loaded",r("load",(null===(e=h.value)||void 0===e?void 0:e.currentSrc)||S.value.src))}function T(){var e;m.isUnmounted||(g.value="error",r("error",(null===(e=h.value)||void 0===e?void 0:e.currentSrc)||S.value.src))}function w(){var e=h.value;e&&(_.value=e.currentSrc||e.src)}(0,a.watch)(function(){return e.src},function(){x("idle"!==g.value)}),(0,a.watch)(E,function(e,t){!e&&t&&h.value&&R(h.value)}),(0,a.onBeforeMount)(function(){return x()});var I=-1;function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,r=function(){if(clearTimeout(I),!m.isUnmounted){var n=e.naturalHeight,o=e.naturalWidth;n||o?(b.value=o,y.value=n):e.complete||"loading"!==g.value||null==t?(e.currentSrc.endsWith(".svg")||e.currentSrc.startsWith("data:image/svg+xml"))&&(b.value=1,y.value=1):I=window.setTimeout(r,t)}};r()}(0,a.onBeforeUnmount)(function(){clearTimeout(I)});var A=(0,a.computed)(function(){return{"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover}}),N=function(){if(!S.value.src||"idle"===g.value)return null;var t,r=(0,a.createVNode)("img",{class:["v-img__img",A.value],style:{objectPosition:e.position},src:S.value.src,srcset:S.value.srcset,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:h,onLoad:C,onError:T},null),o=null===(t=n.sources)||void 0===t?void 0:t.call(n);return(0,a.createVNode)(u.MaybeTransition,{transition:e.transition,appear:!0},{default:function(){return[(0,a.withDirectives)(o?(0,a.createVNode)("picture",{class:"v-img__picture"},[o,r]):r,[[a.vShow,"loaded"===g.value]])]}})},k=function(){return(0,a.createVNode)(u.MaybeTransition,{transition:e.transition},{default:function(){return[S.value.lazySrc&&"loaded"!==g.value&&(0,a.createVNode)("img",{class:["v-img__img","v-img__img--preload",A.value],style:{objectPosition:e.position},src:S.value.lazySrc,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}})},O=function(){return n.placeholder?(0,a.createVNode)(u.MaybeTransition,{transition:e.transition,appear:!0},{default:function(){return[("loading"===g.value||"error"===g.value&&!n.error)&&(0,a.createVNode)("div",{class:"v-img__placeholder"},[n.placeholder()])]}}):null},D=function(){return n.error?(0,a.createVNode)(u.MaybeTransition,{transition:e.transition,appear:!0},{default:function(){return["error"===g.value&&(0,a.createVNode)("div",{class:"v-img__error"},[n.error()])]}}):null},j=function(){return e.gradient?(0,a.createVNode)("div",{class:"v-img__gradient",style:{backgroundImage:"linear-gradient(".concat(e.gradient,")")}},null):null},P=(0,a.shallowRef)(!1),M=(0,a.watch)(E,function(e){e&&(requestAnimationFrame(function(){requestAnimationFrame(function(){P.value=!0})}),M())});return(0,f.useRender)(function(){var t=(0,i.VResponsive).filterProps(e);return(0,a.withDirectives)((0,a.createVNode)(i.VResponsive,(0,a.mergeProps)({class:["v-img",{"v-img--absolute":e.absolute,"v-img--booting":!P.value},l.value,p.value,e.class],style:[{width:(0,f.convertToUnit)("auto"===e.width?b.value:e.width)},d.value,e.style]},t,{aspectRatio:E.value,"aria-label":e.alt,role:e.alt?"img":void 0}),{additional:function(){return(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(N,null,null),(0,a.createVNode)(k,null,null),(0,a.createVNode)(j,null,null),(0,a.createVNode)(O,null,null),(0,a.createVNode)(D,null,null)])},default:n.default}),[[(0,a.resolveDirective)("intersect"),{handler:x,options:e.options},null,{once:!0}]])}),{currentSrc:_,image:h,state:g,naturalWidth:b,naturalHeight:y}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VImg.css":"gjrgG","../VResponsive/VResponsive.mjs":"cQXBU","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/rounded.mjs":"4CR7Z","../../composables/transition.mjs":"4059v","../../directives/intersect/index.mjs":"2y8lH","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gjrgG:[function(){},{}],cQXBU:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useAspectStyles",function(){return c}),n.export(r,"makeVResponsiveProps",function(){return u}),n.export(r,"VResponsive",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VResponsive.css");var i=e("../../composables/component.mjs"),s=e("../../composables/dimensions.mjs"),l=e("../../util/index.mjs");function c(e){return{aspectStyles:(0,a.computed)(function(){var t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+"%"}:void 0})}}var u=(0,l.propsFactory)((0,o._)({aspectRatio:[String,Number],contentClass:null,inline:Boolean},(0,i.makeComponentProps)(),(0,s.makeDimensionProps)()),"VResponsive"),d=(0,l.genericComponent)()({name:"VResponsive",props:u(),setup:function(e,t){var r=t.slots,n=c(e).aspectStyles,o=(0,s.useDimension)(e).dimensionStyles;return(0,l.useRender)(function(){var t;return(0,a.createVNode)("div",{class:["v-responsive",{"v-responsive--inline":e.inline},e.class],style:[o.value,e.style]},[(0,a.createVNode)("div",{class:"v-responsive__sizer",style:n.value},null),null===(t=r.additional)||void 0===t?void 0:t.call(r),r.default&&(0,a.createVNode)("div",{class:["v-responsive__content",e.contentClass]},[r.default()])])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VResponsive.css":"2somb","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2somb":[function(){},{}],"969Er":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDimensionProps",function(){return i}),n.export(r,"useDimension",function(){return s});var o=e("vue"),a=e("../util/index.mjs"),i=(0,a.propsFactory)({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function s(e){return{dimensionStyles:(0,o.computed)(function(){var t={},r=(0,a.convertToUnit)(e.height),n=(0,a.convertToUnit)(e.maxHeight),o=(0,a.convertToUnit)(e.maxWidth),i=(0,a.convertToUnit)(e.minHeight),s=(0,a.convertToUnit)(e.minWidth),l=(0,a.convertToUnit)(e.width);return null!=r&&(t.height=r),null!=n&&(t.maxHeight=n),null!=o&&(t.maxWidth=o),null!=i&&(t.minHeight=i),null!=s&&(t.minWidth=s),null!=l&&(t.width=l),t})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9gjsu":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useColor",function(){return i}),n.export(r,"useTextColor",function(){return s}),n.export(r,"useBackgroundColor",function(){return l});var o=e("vue"),a=e("../util/index.mjs");function i(e){return(0,a.destructComputed)(function(){var t=[],r={};if(e.value.background){if((0,a.isCssColor)(e.value.background)){if(r.backgroundColor=e.value.background,!e.value.text&&(0,a.isParsableColor)(e.value.background)){var n=(0,a.parseColor)(e.value.background);if(null==n.a||1===n.a){var o=(0,a.getForeground)(n);r.color=o,r.caretColor=o}}}else t.push("bg-".concat(e.value.background))}return e.value.text&&((0,a.isCssColor)(e.value.text)?(r.color=e.value.text,r.caretColor=e.value.text):t.push("text-".concat(e.value.text))),{colorClasses:t,colorStyles:r}})}function s(e,t){var r=i((0,o.computed)(function(){return{text:(0,o.isRef)(e)?e.value:t?e[t]:null}}));return{textColorClasses:r.colorClasses,textColorStyles:r.colorStyles}}function l(e,t){var r=i((0,o.computed)(function(){return{background:(0,o.isRef)(e)?e.value:t?e[t]:null}}));return{backgroundColorClasses:r.colorClasses,backgroundColorStyles:r.colorStyles}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4CR7Z":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeRoundedProps",function(){return i}),n.export(r,"useRounded",function(){return s});var o=e("vue"),a=e("../util/index.mjs"),i=(0,a.propsFactory)({rounded:{type:[Boolean,Number,String],default:void 0},tile:Boolean},"rounded");function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,a.getCurrentInstanceName)();return{roundedClasses:(0,o.computed)(function(){var r=(0,o.isRef)(e)?e.value:e.rounded,n=(0,o.isRef)(e)?e.value:e.tile,a=[],i=!0,s=!1,l=void 0;if(!0===r||""===r)a.push("".concat(t,"--rounded"));else if("string"==typeof r||0===r)try{for(var c,u=String(r).split(" ")[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var d=c.value;a.push("rounded-".concat(d))}}catch(e){s=!0,l=e}finally{try{i||null==u.return||u.return()}finally{if(s)throw l}}else(n||!1===r)&&a.push("rounded-0");return a})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4059v":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeTransitionProps",function(){return s}),n.export(r,"MaybeTransition",function(){return l});var o=e("@swc/helpers/_/_object_without_properties"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("vue"),s=(0,e("../util/index.mjs").propsFactory)({transition:{type:[Boolean,String,Object],default:"fade-transition",validator:function(e){return!0!==e}}},"transition"),l=function(e,t){var r=t.slots,n=e.transition,s=e.disabled,l=e.group,c=(0,o._)(e,["transition","disabled","group"]),u="object"==typeof n?n:{},d=u.component,p=void 0===d?l?i.TransitionGroup:i.Transition:d,f=(0,o._)(u,["component"]);return(0,i.h)(p,(0,i.mergeProps)("string"==typeof n?{name:s?"":n}:f,"string"==typeof n?{}:Object.fromEntries(Object.entries({disabled:s,group:l}).filter(function(e){var t=(0,a._)(e,2);return void 0!==(t[0],t[1])})),c),r)}},{"@swc/helpers/_/_object_without_properties":"d9YAZ","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2y8lH":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Intersect",function(){return i});var o=e("../../util/index.mjs");function a(e,t){var r,n=null===(r=e._observe)||void 0===r?void 0:r[t.instance.$.uid];n&&(n.observer.unobserve(e),delete e._observe[t.instance.$.uid])}var i={mounted:function(e,t){if(o.SUPPORTS_INTERSECTION){var r=t.modifiers||{},n=t.value,i="object"==typeof n?n:{handler:n,options:{}},s=i.handler,l=new IntersectionObserver(function(){var n,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0,l=null===(n=e._observe)||void 0===n?void 0:n[t.instance.$.uid];if(l){var c=o.some(function(e){return e.isIntersecting});s&&(!r.quiet||l.init)&&(!r.once||c||l.init)&&s(c,o,i),c&&r.once?a(e,t):l.init=!0}},i.options);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:l},l.observe(e)}},unmounted:a};r.default=i},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8SyXK":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeBorderProps",function(){return i}),n.export(r,"useBorder",function(){return s});var o=e("vue"),a=e("../util/index.mjs"),i=(0,a.propsFactory)({border:[Boolean,Number,String]},"border");function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,a.getCurrentInstanceName)();return{borderClasses:(0,o.computed)(function(){var r=(0,o.isRef)(e)?e.value:e.border,n=[],a=!0,i=!1,s=void 0;if(!0===r||""===r)n.push("".concat(t,"--border"));else if("string"==typeof r||0===r)try{for(var l,c=String(r).split(" ")[Symbol.iterator]();!(a=(l=c.next()).done);a=!0){var u=l.value;n.push("border-".concat(u))}}catch(e){i=!0,s=e}finally{try{a||null==c.return||c.return()}finally{if(i)throw s}}return n})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jNJPe:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeElevationProps",function(){return a}),n.export(r,"useElevation",function(){return i});var o=e("vue"),a=(0,e("../util/index.mjs").propsFactory)({elevation:{type:[Number,String],validator:function(e){var t=parseInt(e);return!isNaN(t)&&t>=0&&t<=24}}},"elevation");function i(e){return{elevationClasses:(0,o.computed)(function(){var t=(0,o.isRef)(e)?e.value:e.elevation,r=[];return null==t||r.push("elevation-".concat(t)),r})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cJhYY:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeScrollProps",function(){return i}),n.export(r,"useScroll",function(){return s});var o=e("vue"),a=e("../util/index.mjs"),i=(0,a.propsFactory)({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},"scroll");function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.canScroll,n=0,i=0,s=(0,o.ref)(null),l=(0,o.shallowRef)(0),c=(0,o.shallowRef)(0),u=(0,o.shallowRef)(0),d=(0,o.shallowRef)(!1),p=(0,o.shallowRef)(!1),f=(0,o.computed)(function(){return Number(e.scrollThreshold)}),m=(0,o.computed)(function(){return(0,a.clamp)((f.value-l.value)/f.value||0)}),_=function(){var e=s.value;if(e&&(!r||r.value)){n=l.value,l.value="window"in e?e.pageYOffset:e.scrollTop;var t=e instanceof Window?document.documentElement.scrollHeight:e.scrollHeight;if(i!==t){i=t;return}p.value=l.value1&&void 0!==arguments[1]?arguments[1]:(0,a.getCurrentInstanceName)();return{densityClasses:(0,o.computed)(function(){return"".concat(t,"--density-").concat(e.density)})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],e5F3N:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"allowedVariants",function(){return l}),n.export(r,"genOverlays",function(){return c}),n.export(r,"makeVariantProps",function(){return u}),n.export(r,"useVariant",function(){return d});var o=e("@swc/helpers/_/_define_property"),a=e("vue"),i=e("./color.mjs"),s=e("../util/index.mjs"),l=["elevated","flat","tonal","outlined","text","plain"];function c(e,t){return(0,a.createVNode)(a.Fragment,null,[e&&(0,a.createVNode)("span",{key:"overlay",class:"".concat(t,"__overlay")},null),(0,a.createVNode)("span",{key:"underlay",class:"".concat(t,"__underlay")},null)])}var u=(0,s.propsFactory)({color:String,variant:{type:String,default:"elevated",validator:function(e){return l.includes(e)}}},"variant");function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,s.getCurrentInstanceName)(),r=(0,a.computed)(function(){var r=(0,a.unref)(e).variant;return"".concat(t,"--variant-").concat(r)}),n=(0,i.useColor)((0,a.computed)(function(){var t=(0,a.unref)(e),r=t.variant,n=t.color;return(0,o._)({},["elevated","flat"].includes(r)?"background":"text",n)}));return{colorClasses:n.colorClasses,colorStyles:n.colorStyles,variantClasses:r}}},{"@swc/helpers/_/_define_property":"3xmRB",vue:"gHobw","./color.mjs":"9gjsu","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],c5IR1:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeGroupProps",function(){return s}),n.export(r,"makeGroupItemProps",function(){return l}),n.export(r,"useGroupItem",function(){return c}),n.export(r,"useGroup",function(){return u});var o=e("./proxiedModel.mjs"),a=e("vue"),i=e("../util/index.mjs"),s=(0,i.propsFactory)({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},"group"),l=(0,i.propsFactory)({value:null,disabled:Boolean,selectedClass:String},"group-item");function c(e,t){var r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=(0,i.getCurrentInstance)("useGroupItem");if(!n)throw Error("[Vuetify] useGroupItem composable must be used inside a component setup function");var o=(0,i.getUid)();(0,a.provide)(Symbol.for("".concat(t.description,":id")),o);var s=(0,a.inject)(t,null);if(!s){if(!r)return s;throw Error("[Vuetify] Could not find useGroup injection with symbol ".concat(t.description))}var l=(0,a.toRef)(e,"value"),c=(0,a.computed)(function(){return!!(s.disabled.value||e.disabled)});s.register({id:o,value:l,disabled:c},n),(0,a.onBeforeUnmount)(function(){s.unregister(o)});var u=(0,a.computed)(function(){return s.isSelected(o)}),d=(0,a.computed)(function(){return s.items.value[0].id===o}),p=(0,a.computed)(function(){return s.items.value[s.items.value.length-1].id===o}),f=(0,a.computed)(function(){return u.value&&[s.selectedClass.value,e.selectedClass]});return(0,a.watch)(u,function(e){n.emit("group:selected",{value:e})},{flush:"sync"}),{id:o,isSelected:u,isFirst:d,isLast:p,toggle:function(){return s.select(o,!u.value)},select:function(e){return s.select(o,e)},selectedClass:f,value:l,disabled:c,group:s}}function u(e,t){var r=!1,n=(0,a.reactive)([]),s=(0,o.useProxiedModel)(e,"modelValue",[],function(e){return null==e?[]:d(n,(0,i.wrapInArray)(e))},function(t){var r,o=(r=[],t.forEach(function(e){var t=n.findIndex(function(t){return t.id===e});if(~t){var o=n[t];r.push(null!=o.value?o.value:t)}}),r);return e.multiple?o:o[0]}),l=(0,i.getCurrentInstance)("useGroup");function c(){var t=n.find(function(e){return!e.disabled});t&&"force"===e.mandatory&&!s.value.length&&(s.value=[t.id])}function u(t){if(e.multiple&&(0,i.consoleWarn)('This method is not supported when using "multiple" prop'),s.value.length){for(var r=s.value[0],o=n.findIndex(function(e){return e.id===r}),a=(o+t)%n.length,l=n[a];l.disabled&&a!==o;)a=(a+t)%n.length,l=n[a];l.disabled||(s.value=[n[a].id])}else{var c=n.find(function(e){return!e.disabled});c&&(s.value=[c.id])}}(0,a.onMounted)(function(){c()}),(0,a.onBeforeUnmount)(function(){r=!0}),(0,a.onUpdated)(function(){for(var e=0;e-1?n.splice(s,0,e):n.push(e)},unregister:function(e){if(!r){c();var t=n.findIndex(function(t){return t.id===e});n.splice(t,1)}},selected:s,select:function(t,r){var o=n.find(function(e){return e.id===t});if(!r||null==o||!o.disabled){if(e.multiple){var a=s.value.slice(),i=a.findIndex(function(e){return e===t}),l=~i;if(r=null!=r?r:!l,l&&e.mandatory&&a.length<=1||!l&&null!=e.max&&a.length+1>e.max)return;i<0&&r?a.push(t):i>=0&&!r&&a.splice(i,1),s.value=a}else{var c=s.value.includes(t);if(e.mandatory&&c)return;s.value=(null!=r?r:!c)?[t]:[]}}},disabled:(0,a.toRef)(e,"disabled"),prev:function(){return u(n.length-1)},next:function(){return u(1)},isSelected:function(e){return s.value.includes(e)},selectedClass:(0,a.computed)(function(){return e.selectedClass}),items:(0,a.computed)(function(){return n}),getItemIndex:function(e){var t;return(t=d(n,[e])).length?n.findIndex(function(e){return e.id===t[0]}):-1}};return(0,a.provide)(t,p),p}function d(e,t){var r=[];return t.forEach(function(t){var n=e.find(function(e){return(0,i.deepEqual)(t,e.value)}),o=e[t];(null==n?void 0:n.value)!=null?r.push(n.id):null!=o&&r.push(o.id)}),r}},{"./proxiedModel.mjs":"7LrVW",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kpG2s:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VIcon",function(){return o.VIcon}),n.export(r,"VComponentIcon",function(){return a.VComponentIcon}),n.export(r,"VSvgIcon",function(){return a.VSvgIcon}),n.export(r,"VLigatureIcon",function(){return a.VLigatureIcon}),n.export(r,"VClassIcon",function(){return a.VClassIcon});var o=e("./VIcon.mjs"),a=e("../../composables/icons.mjs")},{"./VIcon.mjs":"eS3Rq","../../composables/icons.mjs":"71CER","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],eS3Rq:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVIconProps",function(){return f}),n.export(r,"VIcon",function(){return m});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VIcon.css");var i=e("../../composables/color.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/icons.mjs"),c=e("../../composables/size.mjs"),u=e("../../composables/tag.mjs"),d=e("../../composables/theme.mjs"),p=e("../../util/index.mjs"),f=(0,p.propsFactory)((0,o._)({color:String,disabled:Boolean,start:Boolean,end:Boolean,icon:l.IconValue},(0,s.makeComponentProps)(),(0,c.makeSizeProps)(),(0,u.makeTagProps)({tag:"i"}),(0,d.makeThemeProps)()),"VIcon"),m=(0,p.genericComponent)()({name:"VIcon",props:f(),setup:function(e,t){var r=t.attrs,n=t.slots,o=(0,a.ref)(),s=(0,d.provideTheme)(e).themeClasses,u=(0,l.useIcon)((0,a.computed)(function(){return o.value||e.icon})).iconData,f=(0,c.useSize)(e).sizeClasses,m=(0,i.useTextColor)((0,a.toRef)(e,"color")),_=m.textColorClasses,h=m.textColorStyles;return(0,p.useRender)(function(){var t,i,l=null===(t=n.default)||void 0===t?void 0:t.call(n);l&&(o.value=null===(i=(0,p.flattenFragments)(l).filter(function(e){return e.type===a.Text&&e.children&&"string"==typeof e.children})[0])||void 0===i?void 0:i.children);var c=!!(r.onClick||r.onClickOnce);return(0,a.createVNode)(u.value.component,{tag:e.tag,icon:u.value.icon,class:["v-icon","notranslate",s.value,f.value,_.value,{"v-icon--clickable":c,"v-icon--disabled":e.disabled,"v-icon--start":e.start,"v-icon--end":e.end},e.class],style:[f.value?void 0:{fontSize:(0,p.convertToUnit)(e.size),height:(0,p.convertToUnit)(e.size),width:(0,p.convertToUnit)(e.size)},h.value,e.style],role:c?"button":void 0,"aria-hidden":!c,tabindex:c?e.disabled?-1:0:void 0},{default:function(){return[l]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VIcon.css":"2M7iH","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/icons.mjs":"71CER","../../composables/size.mjs":"2mSFo","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2M7iH":[function(){},{}],"2mSFo":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeSizeProps",function(){return i}),n.export(r,"useSize",function(){return s});var o=e("../util/index.mjs"),a=["x-small","small","default","large","x-large"],i=(0,o.propsFactory)({size:{type:[String,Number],default:"default"}},"size");function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.getCurrentInstanceName)();return(0,o.destructComputed)(function(){var r,n;return(0,o.includes)(a,e.size)?r="".concat(t,"--size-").concat(e.size):e.size&&(n={width:(0,o.convertToUnit)(e.size),height:(0,o.convertToUnit)(e.size)}),{sizeClasses:r,sizeStyles:n}})}},{"../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jD8F7:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VProgressCircular",function(){return o.VProgressCircular});var o=e("./VProgressCircular.mjs")},{"./VProgressCircular.mjs":"hvsld","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hvsld:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVProgressCircularProps",function(){return m}),n.export(r,"VProgressCircular",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VProgressCircular.css");var i=e("../../composables/color.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/intersectionObserver.mjs"),c=e("../../composables/resizeObserver.mjs"),u=e("../../composables/size.mjs"),d=e("../../composables/tag.mjs"),p=e("../../composables/theme.mjs"),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,o._)({bgColor:String,color:String,indeterminate:[Boolean,String],modelValue:{type:[Number,String],default:0},rotate:{type:[Number,String],default:0},width:{type:[Number,String],default:4}},(0,s.makeComponentProps)(),(0,u.makeSizeProps)(),(0,d.makeTagProps)({tag:"div"}),(0,p.makeThemeProps)()),"VProgressCircular"),_=(0,f.genericComponent)()({name:"VProgressCircular",props:m(),setup:function(e,t){var r=t.slots,n=2*Math.PI*20,o=(0,a.ref)(),s=(0,p.provideTheme)(e).themeClasses,d=(0,u.useSize)(e),m=d.sizeClasses,_=d.sizeStyles,h=(0,i.useTextColor)((0,a.toRef)(e,"color")),g=h.textColorClasses,b=h.textColorStyles,y=(0,i.useTextColor)((0,a.toRef)(e,"bgColor")),S=y.textColorClasses,E=y.textColorStyles,x=(0,l.useIntersectionObserver)(),C=x.intersectionRef,T=x.isIntersecting,w=(0,c.useResizeObserver)(),I=w.resizeRef,R=w.contentRect,A=(0,a.computed)(function(){return Math.max(0,Math.min(100,parseFloat(e.modelValue)))}),N=(0,a.computed)(function(){return Number(e.width)}),k=(0,a.computed)(function(){return _.value?Number(e.size):R.value?R.value.width:Math.max(N.value,32)}),O=(0,a.computed)(function(){return 20/(1-N.value/k.value)*2}),D=(0,a.computed)(function(){return N.value/k.value*O.value}),j=(0,a.computed)(function(){return(0,f.convertToUnit)((100-A.value)/100*n)});return(0,a.watchEffect)(function(){C.value=o.value,I.value=o.value}),(0,f.useRender)(function(){return(0,a.createVNode)(e.tag,{ref:o,class:["v-progress-circular",{"v-progress-circular--indeterminate":!!e.indeterminate,"v-progress-circular--visible":T.value,"v-progress-circular--disable-shrink":"disable-shrink"===e.indeterminate},s.value,m.value,g.value,e.class],style:[_.value,b.value,e.style],role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.indeterminate?void 0:A.value},{default:function(){return[(0,a.createVNode)("svg",{style:{transform:"rotate(calc(-90deg + ".concat(Number(e.rotate),"deg))")},xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(O.value," ").concat(O.value)},[(0,a.createVNode)("circle",{class:["v-progress-circular__underlay",S.value],style:E.value,fill:"transparent",cx:"50%",cy:"50%",r:20,"stroke-width":D.value,"stroke-dasharray":n,"stroke-dashoffset":0},null),(0,a.createVNode)("circle",{class:"v-progress-circular__overlay",fill:"transparent",cx:"50%",cy:"50%",r:20,"stroke-width":D.value,"stroke-dasharray":n,"stroke-dashoffset":j.value},null)]),r.default&&(0,a.createVNode)("div",{class:"v-progress-circular__content"},[r.default({value:A.value})])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VProgressCircular.css":"aJZfT","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/intersectionObserver.mjs":"73TBg","../../composables/resizeObserver.mjs":"kyBb2","../../composables/size.mjs":"2mSFo","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aJZfT:[function(){},{}],"73TBg":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useIntersectionObserver",function(){return i});var o=e("vue"),a=e("../util/index.mjs");function i(e,t){var r=(0,o.ref)(),n=(0,o.shallowRef)(!1);if(a.SUPPORTS_INTERSECTION){var i=new IntersectionObserver(function(t){null==e||e(t,i),n.value=!!t.find(function(e){return e.isIntersecting})},t);(0,o.onBeforeUnmount)(function(){i.disconnect()}),(0,o.watch)(r,function(e,t){t&&(i.unobserve(t),n.value=!1),e&&i.observe(e)},{flush:"post"})}return{intersectionRef:r,isIntersecting:n}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hjVll:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeLoaderProps",function(){return l}),n.export(r,"useLoader",function(){return c}),n.export(r,"LoaderSlot",function(){return u});var o=e("@swc/helpers/_/_define_property"),a=e("vue"),i=e("../components/VProgressLinear/index.mjs"),s=e("../util/index.mjs"),l=(0,s.propsFactory)({loading:[Boolean,String]},"loader");function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,s.getCurrentInstanceName)();return{loaderClasses:(0,a.computed)(function(){return(0,o._)({},"".concat(t,"--loading"),e.loading)})}}function u(e,t){var r,n=t.slots;return(0,a.createVNode)("div",{class:"".concat(e.name,"__loader")},[(null===(r=n.default)||void 0===r?void 0:r.call(n,{color:e.color,isActive:e.active}))||(0,a.createVNode)(i.VProgressLinear,{absolute:e.absolute,active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}},{"@swc/helpers/_/_define_property":"3xmRB",vue:"gHobw","../components/VProgressLinear/index.mjs":"dyg9r","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dyg9r:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VProgressLinear",function(){return o.VProgressLinear});var o=e("./VProgressLinear.mjs")},{"./VProgressLinear.mjs":"kZbw3","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kZbw3:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVProgressLinearProps",function(){return b}),n.export(r,"VProgressLinear",function(){return y});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("vue");e("./VProgressLinear.css");var l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/intersectionObserver.mjs"),d=e("../../composables/locale.mjs"),p=e("../../composables/location.mjs"),f=e("../../composables/proxiedModel.mjs"),m=e("../../composables/rounded.mjs"),_=e("../../composables/tag.mjs"),h=e("../../composables/theme.mjs"),g=e("../../util/index.mjs"),b=(0,g.propsFactory)((0,a._)({absolute:Boolean,active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},bufferColor:String,bufferOpacity:[Number,String],clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},opacity:[Number,String],reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean},(0,c.makeComponentProps)(),(0,p.makeLocationProps)({location:"top"}),(0,m.makeRoundedProps)(),(0,_.makeTagProps)(),(0,h.makeThemeProps)()),"VProgressLinear"),y=(0,g.genericComponent)()({name:"VProgressLinear",props:b(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r,n,c=t.slots,_=(0,f.useProxiedModel)(e,"modelValue"),b=(0,d.useRtl)(),y=b.isRtl,S=b.rtlClasses,E=(0,h.provideTheme)(e).themeClasses,x=(0,p.useLocation)(e).locationStyles,C=(0,l.useTextColor)(e,"color"),T=C.textColorClasses,w=C.textColorStyles,I=(0,l.useBackgroundColor)((0,s.computed)(function(){return e.bgColor||e.color})),R=I.backgroundColorClasses,A=I.backgroundColorStyles,N=(0,l.useBackgroundColor)((0,s.computed)(function(){return e.bufferColor||e.bgColor||e.color})),k=N.backgroundColorClasses,O=N.backgroundColorStyles,D=(0,l.useBackgroundColor)(e,"color"),j=D.backgroundColorClasses,P=D.backgroundColorStyles,M=(0,m.useRounded)(e).roundedClasses,L=(0,u.useIntersectionObserver)(),V=L.intersectionRef,F=L.isIntersecting,B=(0,s.computed)(function(){return parseFloat(e.max)}),U=(0,s.computed)(function(){return parseFloat(e.height)}),G=(0,s.computed)(function(){return(0,g.clamp)(parseFloat(e.bufferValue)/B.value*100,0,100)}),q=(0,s.computed)(function(){return(0,g.clamp)(parseFloat(_.value)/B.value*100,0,100)}),Y=(0,s.computed)(function(){return y.value!==e.reverse}),H=(0,s.computed)(function(){return e.indeterminate?"fade-transition":"slide-x-transition"}),z=g.IN_BROWSER&&(null===(r=(n=window).matchMedia)||void 0===r?void 0:r.call(n,"(forced-colors: active)").matches);function W(e){if(V.value){var t=V.value.getBoundingClientRect(),r=t.left,n=t.right,o=t.width,a=Y.value?o-e.clientX+(n-o):e.clientX-r;_.value=Math.round(a/o*B.value)}}return(0,g.useRender)(function(){return(0,s.createVNode)(e.tag,{ref:V,class:["v-progress-linear",{"v-progress-linear--absolute":e.absolute,"v-progress-linear--active":e.active&&F.value,"v-progress-linear--reverse":Y.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},M.value,E.value,S.value,e.class],style:[(0,a._)({bottom:"bottom"===e.location?0:void 0,top:"top"===e.location?0:void 0,height:e.active?(0,g.convertToUnit)(U.value):0,"--v-progress-linear-height":(0,g.convertToUnit)(U.value)},e.absolute?x.value:{}),e.style],role:"progressbar","aria-hidden":e.active?"false":"true","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:q.value,onClick:e.clickable&&W},{default:function(){var t;return[e.stream&&(0,s.createVNode)("div",{key:"stream",class:["v-progress-linear__stream",T.value],style:(0,i._)((0,a._)({},w.value),(t={},(0,o._)(t,Y.value?"left":"right",(0,g.convertToUnit)(-U.value)),(0,o._)(t,"borderTop","".concat((0,g.convertToUnit)(U.value/2)," dotted")),(0,o._)(t,"opacity",parseFloat(e.bufferOpacity)),(0,o._)(t,"top","calc(50% - ".concat((0,g.convertToUnit)(U.value/4),")")),(0,o._)(t,"width",(0,g.convertToUnit)(100-G.value,"%")),(0,o._)(t,"--v-progress-linear-stream-to",(0,g.convertToUnit)(U.value*(Y.value?1:-1))),t))},null),(0,s.createVNode)("div",{class:["v-progress-linear__background",z?void 0:R.value],style:[A.value,{opacity:parseFloat(e.bgOpacity),width:e.stream?0:void 0}]},null),(0,s.createVNode)("div",{class:["v-progress-linear__buffer",z?void 0:k.value],style:[O.value,{opacity:parseFloat(e.bufferOpacity),width:(0,g.convertToUnit)(G.value,"%")}]},null),(0,s.createVNode)(s.Transition,{name:H.value},{default:function(){return[e.indeterminate?(0,s.createVNode)("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map(function(e){return(0,s.createVNode)("div",{key:e,class:["v-progress-linear__indeterminate",e,z?void 0:j.value],style:P.value},null)})]):(0,s.createVNode)("div",{class:["v-progress-linear__determinate",z?void 0:j.value],style:[P.value,{width:(0,g.convertToUnit)(q.value,"%")}]},null)]}}),c.default&&(0,s.createVNode)("div",{class:"v-progress-linear__content"},[c.default({value:q.value,buffer:G.value})])]}})}),{}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VProgressLinear.css":"26X2Z","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/intersectionObserver.mjs":"73TBg","../../composables/locale.mjs":"8eTqB","../../composables/location.mjs":"S9pdd","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"26X2Z":[function(){},{}],S9pdd:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeLocationProps",function(){return l}),n.export(r,"useLocation",function(){return c});var o=e("./locale.mjs"),a=e("vue"),i=e("../util/index.mjs"),s={center:"center",top:"bottom",bottom:"top",left:"right",right:"left"},l=(0,i.propsFactory)({location:String},"location");function c(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,n=(0,o.useRtl)().isRtl;return{locationStyles:(0,a.computed)(function(){var o=function(e){return r?r(e):0};if(!e.location)return{};var a=(0,i.parseAnchor)(e.location.split(" ").length>1?e.location:"".concat(e.location," center"),n.value),l=a.side,c=a.align,u={};return"center"!==l&&(t?u[s[l]]="calc(100% - ".concat(o(l),"px)"):u[l]=0),"center"!==c?t?u[s[c]]="calc(100% - ".concat(o(c),"px)"):u[c]=0:("center"===l?u.top=u.left="50%":u[({top:"left",bottom:"left",left:"top",right:"top"})[l]]="50%",u.transform=({top:"translateX(-50%)",bottom:"translateX(-50%)",left:"translateY(-50%)",right:"translateY(-50%)",center:"translate(-50%, -50%)"})[l]),u})}}},{"./locale.mjs":"8eTqB",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gvTsA:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makePositionProps",function(){return s}),n.export(r,"usePosition",function(){return l});var o=e("vue"),a=e("../util/index.mjs"),i=["static","relative","fixed","absolute","sticky"],s=(0,a.propsFactory)({position:{type:String,validator:function(e){return i.includes(e)}}},"position");function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,a.getCurrentInstanceName)();return{positionClasses:(0,o.computed)(function(){return e.position?"".concat(t,"--").concat(e.position):void 0})}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aK38B:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useRoute",function(){return l}),n.export(r,"useRouter",function(){return c}),n.export(r,"useLink",function(){return u}),n.export(r,"makeRouterProps",function(){return d}),n.export(r,"useBackButton",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue"),s=e("../util/index.mjs");function l(){var e=(0,s.getCurrentInstance)("useRoute");return(0,i.computed)(function(){var t;return null==e?void 0:null===(t=e.proxy)||void 0===t?void 0:t.$route})}function c(){var e,t;return null===(t=(0,s.getCurrentInstance)("useRouter"))||void 0===t?void 0:null===(e=t.proxy)||void 0===e?void 0:e.$router}function u(e,t){var r,n,c=(0,i.resolveDynamicComponent)("RouterLink"),u=(0,i.computed)(function(){return!!(e.href||e.to)}),d=(0,i.computed)(function(){return(null==u?void 0:u.value)||(0,s.hasEvent)(t,"click")||(0,s.hasEvent)(e,"click")});if("string"==typeof c||!("useLink"in c)){var p=(0,i.toRef)(e,"href");return{isLink:u,isClickable:d,href:p,linkProps:(0,i.reactive)({href:p})}}var f=(0,i.computed)(function(){return(0,a._)((0,o._)({},e),{to:(0,i.toRef)(function(){return e.to||""})})}),m=c.useLink(f.value),_=(0,i.computed)(function(){return e.to?m:void 0}),h=l(),g=(0,i.computed)(function(){var t,r,n,o,a;return!!_.value&&(e.exact?h.value?(null===(n=_.value.isExactActive)||void 0===n?void 0:n.value)&&(0,s.deepEqual)(_.value.route.value.query,h.value.query):null!==(a=null===(r=_.value.isExactActive)||void 0===r?void 0:r.value)&&void 0!==a&&a:null!==(o=null===(t=_.value.isActive)||void 0===t?void 0:t.value)&&void 0!==o&&o)}),b=(0,i.computed)(function(){var t;return e.to?null===(t=_.value)||void 0===t?void 0:t.route.value.href:e.href});return{isLink:u,isClickable:d,isActive:g,route:null===(r=_.value)||void 0===r?void 0:r.route,navigate:null===(n=_.value)||void 0===n?void 0:n.navigate,href:b,linkProps:(0,i.reactive)({href:b,"aria-current":(0,i.computed)(function(){return g.value?"page":void 0})})}}var d=(0,s.propsFactory)({href:String,replace:Boolean,to:[String,Object],exact:Boolean},"router"),p=!1;function f(e,t){var r,n,o=!1;function a(e){var t;null!==(t=e.state)&&void 0!==t&&t.replaced||(o=!0,setTimeout(function(){return o=!1}))}s.IN_BROWSER&&((0,i.nextTick)(function(){window.addEventListener("popstate",a),r=null==e?void 0:e.beforeEach(function(e,r,n){p?o?t(n):n():setTimeout(function(){return o?t(n):n()}),p=!0}),n=null==e?void 0:e.afterEach(function(){p=!1})}),(0,i.onScopeDispose)(function(){window.removeEventListener("popstate",a),null==r||r(),null==n||n()}))}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hjTPu:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useSelectLink",function(){return a});var o=e("vue");function a(e,t){(0,o.watch)(function(){var t;return null===(t=e.isActive)||void 0===t?void 0:t.value},function(r){e.isLink.value&&r&&t&&(0,o.nextTick)(function(){t(!0)})},{immediate:!0})}},{vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"5qUsh":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Ripple",function(){return x}),e("./VRipple.css");var o=e("../../util/index.mjs"),a=Symbol("rippleStop");function i(e,t){e.style.transform=t,e.style.webkitTransform=t}function s(e){return"TouchEvent"===e.constructor.name}function l(e){return"KeyboardEvent"===e.constructor.name}var c=function(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=0,a=0;if(!l(e)){var i=t.getBoundingClientRect(),c=s(e)?e.touches[e.touches.length-1]:e;o=c.clientX-i.left,a=c.clientY-i.top}var u=0,d=.3;(null===(r=t._ripple)||void 0===r?void 0:r.circle)?(d=.15,u=t.clientWidth/2,u=n.center?u:u+Math.sqrt(Math.pow(o-u,2)+Math.pow(a-u,2))/4):u=Math.sqrt(Math.pow(t.clientWidth,2)+Math.pow(t.clientHeight,2))/2;var p="".concat((t.clientWidth-2*u)/2,"px"),f="".concat((t.clientHeight-2*u)/2,"px"),m=n.center?p:"".concat(o-u,"px"),_=n.center?f:"".concat(a-u,"px");return{radius:u,scale:d,x:m,y:_,centerX:p,centerY:f}},u={show:function(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t?void 0:null===(r=t._ripple)||void 0===r?void 0:r.enabled){var o=document.createElement("span"),a=document.createElement("span");o.appendChild(a),o.className="v-ripple__container",n.class&&(o.className+=" ".concat(n.class));var s=c(e,t,n),l=s.radius,u=s.scale,d=s.x,p=s.y,f=s.centerX,m=s.centerY,_="".concat(2*l,"px");a.className="v-ripple__animation",a.style.width=_,a.style.height=_,t.appendChild(o);var h=window.getComputedStyle(t);h&&"static"===h.position&&(t.style.position="relative",t.dataset.previousPosition="static"),a.classList.add("v-ripple__animation--enter"),a.classList.add("v-ripple__animation--visible"),i(a,"translate(".concat(d,", ").concat(p,") scale3d(").concat(u,",").concat(u,",").concat(u,")")),a.dataset.activated=String(performance.now()),setTimeout(function(){a.classList.remove("v-ripple__animation--enter"),a.classList.add("v-ripple__animation--in"),i(a,"translate(".concat(f,", ").concat(m,") scale3d(1,1,1)"))},0)}},hide:function(e){if(null==e?void 0:null===(t=e._ripple)||void 0===t?void 0:t.enabled){var t,r=e.getElementsByClassName("v-ripple__animation");if(0!==r.length){var n=r[r.length-1];if(n.dataset.isHiding)return;n.dataset.isHiding="true",setTimeout(function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),setTimeout(function(){var t;1===e.getElementsByClassName("v-ripple__animation").length&&e.dataset.previousPosition&&(e.style.position=e.dataset.previousPosition,delete e.dataset.previousPosition),(null===(t=n.parentNode)||void 0===t?void 0:t.parentNode)===e&&e.removeChild(n.parentNode)},300)},Math.max(250-(performance.now()-Number(n.dataset.activated)),0))}}}};function d(e){return void 0===e||!!e}function p(e){var t={},r=e.currentTarget;if((null==r?void 0:r._ripple)&&!r._ripple.touched&&!e[a]){if(e[a]=!0,s(e))r._ripple.touched=!0,r._ripple.isTouch=!0;else if(r._ripple.isTouch)return;if(t.center=r._ripple.centered||l(e),r._ripple.class&&(t.class=r._ripple.class),s(e)){if(r._ripple.showTimerCommit)return;r._ripple.showTimerCommit=function(){u.show(e,r,t)},r._ripple.showTimer=window.setTimeout(function(){var e;(null==r?void 0:null===(e=r._ripple)||void 0===e?void 0:e.showTimerCommit)&&(r._ripple.showTimerCommit(),r._ripple.showTimerCommit=null)},80)}else u.show(e,r,t)}}function f(e){e[a]=!0}function m(e){var t=e.currentTarget;if(null==t?void 0:t._ripple){if(window.clearTimeout(t._ripple.showTimer),"touchend"===e.type&&t._ripple.showTimerCommit){t._ripple.showTimerCommit(),t._ripple.showTimerCommit=null,t._ripple.showTimer=window.setTimeout(function(){m(e)});return}window.setTimeout(function(){t._ripple&&(t._ripple.touched=!1)}),u.hide(t)}}function _(e){var t=e.currentTarget;(null==t?void 0:t._ripple)&&(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}var h=!1;function g(e){h||e.keyCode!==o.keyCodes.enter&&e.keyCode!==o.keyCodes.space||(h=!0,p(e))}function b(e){h=!1,m(e)}function y(e){h&&(h=!1,m(e))}function S(e,t,r){var n,a=t.value,i=t.modifiers,s=d(a);if(s||u.hide(e),e._ripple=null!==(n=e._ripple)&&void 0!==n?n:{},e._ripple.enabled=s,e._ripple.centered=i.center,e._ripple.circle=i.circle,(0,o.isObject)(a)&&a.class&&(e._ripple.class=a.class),s&&!r){if(i.stop){e.addEventListener("touchstart",f,{passive:!0}),e.addEventListener("mousedown",f);return}e.addEventListener("touchstart",p,{passive:!0}),e.addEventListener("touchend",m,{passive:!0}),e.addEventListener("touchmove",_,{passive:!0}),e.addEventListener("touchcancel",m),e.addEventListener("mousedown",p),e.addEventListener("mouseup",m),e.addEventListener("mouseleave",m),e.addEventListener("keydown",g),e.addEventListener("keyup",b),e.addEventListener("blur",y),e.addEventListener("dragstart",m,{passive:!0})}else!s&&r&&E(e)}function E(e){e.removeEventListener("mousedown",p),e.removeEventListener("touchstart",p),e.removeEventListener("touchend",m),e.removeEventListener("touchmove",_),e.removeEventListener("touchcancel",m),e.removeEventListener("mouseup",m),e.removeEventListener("mouseleave",m),e.removeEventListener("keydown",g),e.removeEventListener("keyup",b),e.removeEventListener("dragstart",m),e.removeEventListener("blur",y)}var x={mounted:function(e,t){S(e,t,!1)},unmounted:function(e){delete e._ripple,E(e)},updated:function(e,t){if(t.value!==t.oldValue){var r=d(t.oldValue);S(e,t,r)}}};r.default=x},{"./VRipple.css":"lIOVn","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lIOVn:[function(){},{}],"2334W":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VAppBarTitle",function(){return s});var o=e("vue"),a=e("../VToolbar/VToolbarTitle.mjs"),i=e("../../util/index.mjs"),s=(0,i.genericComponent)()({name:"VAppBarTitle",props:(0,a.makeVToolbarTitleProps)(),setup:function(e,t){var r=t.slots;return(0,i.useRender)(function(){return(0,o.createVNode)(a.VToolbarTitle,(0,o.mergeProps)(e,{class:"v-app-bar-title"}),r)}),{}}})},{vue:"gHobw","../VToolbar/VToolbarTitle.mjs":"dEDln","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gIaFC:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VAlert",function(){return o.VAlert}),n.export(r,"VAlertTitle",function(){return a.VAlertTitle});var o=e("./VAlert.mjs"),a=e("./VAlertTitle.mjs")},{"./VAlert.mjs":"jFexS","./VAlertTitle.mjs":"4910M","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jFexS:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVAlertProps",function(){return R}),n.export(r,"VAlert",function(){return A});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VAlert.css");var s=e("./VAlertTitle.mjs"),l=e("../VBtn/index.mjs"),c=e("../VDefaultsProvider/index.mjs"),u=e("../VIcon/index.mjs"),d=e("../../composables/color.mjs"),p=e("../../composables/component.mjs"),f=e("../../composables/density.mjs"),m=e("../../composables/dimensions.mjs"),_=e("../../composables/elevation.mjs"),h=e("../../composables/icons.mjs"),g=e("../../composables/locale.mjs"),b=e("../../composables/location.mjs"),y=e("../../composables/position.mjs"),S=e("../../composables/proxiedModel.mjs"),E=e("../../composables/rounded.mjs"),x=e("../../composables/tag.mjs"),C=e("../../composables/theme.mjs"),T=e("../../composables/variant.mjs"),w=e("../../util/index.mjs"),I=["success","info","warning","error"],R=(0,w.propsFactory)((0,a._)({border:{type:[Boolean,String],validator:function(e){return"boolean"==typeof e||["top","end","bottom","start"].includes(e)}},borderColor:String,closable:Boolean,closeIcon:{type:h.IconValue,default:"$close"},closeLabel:{type:String,default:"$vuetify.close"},icon:{type:[Boolean,String,Function,Object],default:null},modelValue:{type:Boolean,default:!0},prominent:Boolean,title:String,text:String,type:{type:String,validator:function(e){return I.includes(e)}}},(0,p.makeComponentProps)(),(0,f.makeDensityProps)(),(0,m.makeDimensionProps)(),(0,_.makeElevationProps)(),(0,b.makeLocationProps)(),(0,y.makePositionProps)(),(0,E.makeRoundedProps)(),(0,x.makeTagProps)(),(0,C.makeThemeProps)(),(0,T.makeVariantProps)({variant:"flat"})),"VAlert"),A=(0,w.genericComponent)()({name:"VAlert",props:R(),emits:{"click:close":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,a=(0,S.useProxiedModel)(e,"modelValue"),p=(0,i.computed)(function(){var t;if(!1!==e.icon)return e.type?null!==(t=e.icon)&&void 0!==t?t:"$".concat(e.type):e.icon}),h=(0,i.computed)(function(){var t;return{color:null!==(t=e.color)&&void 0!==t?t:e.type,variant:e.variant}}),x=(0,C.provideTheme)(e).themeClasses,w=(0,T.useVariant)(h),I=w.colorClasses,R=w.colorStyles,A=w.variantClasses,N=(0,f.useDensity)(e).densityClasses,k=(0,m.useDimension)(e).dimensionStyles,O=(0,_.useElevation)(e).elevationClasses,D=(0,b.useLocation)(e).locationStyles,j=(0,y.usePosition)(e).positionClasses,P=(0,E.useRounded)(e).roundedClasses,M=(0,d.useTextColor)((0,i.toRef)(e,"borderColor")),L=M.textColorClasses,V=M.textColorStyles,F=(0,g.useLocale)().t,B=(0,i.computed)(function(){return{"aria-label":F(e.closeLabel),onClick:function(e){a.value=!1,r("click:close",e)}}});return function(){var t=!!(n.prepend||p.value),r=!!(n.title||e.title),d=!!(n.close||e.closable);return a.value&&(0,i.createVNode)(e.tag,{class:["v-alert",e.border&&(0,o._)({"v-alert--border":!!e.border},"v-alert--border-".concat(!0===e.border?"start":e.border),!0),{"v-alert--prominent":e.prominent},x.value,I.value,N.value,O.value,j.value,P.value,A.value,e.class],style:[R.value,k.value,D.value,e.style],role:"alert"},{default:function(){var o,a,f;return[(0,T.genOverlays)(!1,"v-alert"),e.border&&(0,i.createVNode)("div",{key:"border",class:["v-alert__border",L.value],style:V.value},null),t&&(0,i.createVNode)("div",{key:"prepend",class:"v-alert__prepend"},[n.prepend?(0,i.createVNode)(c.VDefaultsProvider,{key:"prepend-defaults",disabled:!p.value,defaults:{VIcon:{density:e.density,icon:p.value,size:e.prominent?44:28}}},n.prepend):(0,i.createVNode)(u.VIcon,{key:"prepend-icon",density:e.density,icon:p.value,size:e.prominent?44:28},null)]),(0,i.createVNode)("div",{class:"v-alert__content"},[r&&(0,i.createVNode)(s.VAlertTitle,{key:"title"},{default:function(){var t,r;return[null!==(r=null===(t=n.title)||void 0===t?void 0:t.call(n))&&void 0!==r?r:e.title]}}),null!==(f=null===(o=n.text)||void 0===o?void 0:o.call(n))&&void 0!==f?f:e.text,null===(a=n.default)||void 0===a?void 0:a.call(n)]),n.append&&(0,i.createVNode)("div",{key:"append",class:"v-alert__append"},[n.append()]),d&&(0,i.createVNode)("div",{key:"close",class:"v-alert__close"},[n.close?(0,i.createVNode)(c.VDefaultsProvider,{key:"close-defaults",defaults:{VBtn:{icon:e.closeIcon,size:"x-small",variant:"text"}}},{default:function(){var e;return[null===(e=n.close)||void 0===e?void 0:e.call(n,{props:B.value})]}}):(0,i.createVNode)(l.VBtn,(0,i.mergeProps)({key:"close-btn",icon:e.closeIcon,size:"x-small",variant:"text"},B.value),null)])]}})}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VAlert.css":"hgAiF","./VAlertTitle.mjs":"4910M","../VBtn/index.mjs":"kmwjW","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/dimensions.mjs":"969Er","../../composables/elevation.mjs":"jNJPe","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/location.mjs":"S9pdd","../../composables/position.mjs":"gvTsA","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/variant.mjs":"e5F3N","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hgAiF:[function(){},{}],"4910M":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VAlertTitle",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-alert-title")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kmwjW:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBtn",function(){return o.VBtn});var o=e("./VBtn.mjs")},{"./VBtn.mjs":"egE2E","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3epbl":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VAutocomplete",function(){return o.VAutocomplete});var o=e("./VAutocomplete.mjs")},{"./VAutocomplete.mjs":"lIJru","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lIJru:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVAutocompleteProps",function(){return A}),n.export(r,"VAutocomplete",function(){return N});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("vue");e("./VAutocomplete.css");var l=e("../VAvatar/index.mjs"),c=e("../VCheckbox/index.mjs"),u=e("../VChip/index.mjs"),d=e("../VDefaultsProvider/index.mjs"),p=e("../VIcon/index.mjs"),f=e("../VList/index.mjs"),m=e("../VMenu/index.mjs"),_=e("../VSelect/VSelect.mjs"),h=e("../VTextField/VTextField.mjs"),g=e("../VVirtualScroll/index.mjs"),b=e("../VSelect/useScrolling.mjs"),y=e("../../composables/color.mjs"),S=e("../../composables/filter.mjs"),E=e("../../composables/form.mjs"),x=e("../../composables/forwardRefs.mjs"),C=e("../../composables/list-items.mjs"),T=e("../../composables/locale.mjs"),w=e("../../composables/proxiedModel.mjs"),I=e("../../composables/transition.mjs"),R=e("../../util/index.mjs"),A=(0,R.propsFactory)((0,o._)({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:Boolean,search:String},(0,S.makeFilterProps)({filterKeys:["title"]}),(0,_.makeSelectProps)(),(0,R.omit)((0,h.makeVTextFieldProps)({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),(0,I.makeTransitionProps)({transition:!1})),"VAutocomplete"),N=(0,R.genericComponent)()({name:"VAutocomplete",props:A(),emits:{"update:focused":function(e){return!0},"update:search":function(e){return!0},"update:modelValue":function(e){return!0},"update:menu":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,T.useLocale)().t,_=(0,s.ref)(),I=(0,s.shallowRef)(!1),A=(0,s.shallowRef)(!0),N=(0,s.shallowRef)(!1),k=(0,s.ref)(),O=(0,s.ref)(),D=(0,w.useProxiedModel)(e,"menu"),j=(0,s.computed)({get:function(){return D.value},set:function(e){var t;D.value&&!e&&null!==(t=k.value)&&void 0!==t&&t.ΨopenChildren.size||(D.value=e)}}),P=(0,s.shallowRef)(-1),M=(0,s.computed)(function(){var e;return null===(e=_.value)||void 0===e?void 0:e.color}),L=(0,s.computed)(function(){return j.value?e.closeText:e.openText}),V=(0,C.useItems)(e),F=V.items,B=V.transformIn,U=V.transformOut,G=(0,y.useTextColor)(M),q=G.textColorClasses,Y=G.textColorStyles,H=(0,w.useProxiedModel)(e,"search",""),z=(0,w.useProxiedModel)(e,"modelValue",[],function(e){return B(null===e?[null]:(0,R.wrapInArray)(e))},function(t){var r,n=U(t);return e.multiple?n:null!==(r=n[0])&&void 0!==r?r:null}),W=(0,s.computed)(function(){return"function"==typeof e.counterValue?e.counterValue(z.value):"number"==typeof e.counterValue?e.counterValue:z.value.length}),K=(0,E.useForm)(),Q=(0,S.useFilter)(e,F,function(){return A.value?"":H.value}),$=Q.filteredItems,X=Q.getMatches,Z=(0,s.computed)(function(){return e.hideSelected?$.value.filter(function(e){return!z.value.some(function(t){return t.value===e.value})}):$.value}),J=(0,s.computed)(function(){return!!(e.chips||r.chip)}),ee=(0,s.computed)(function(){return J.value||!!r.selection}),et=(0,s.computed)(function(){return z.value.map(function(e){return e.props.value})}),er=(0,s.computed)(function(){var t;return(!0===e.autoSelectFirst||"exact"===e.autoSelectFirst&&H.value===(null===(t=Z.value[0])||void 0===t?void 0:t.title))&&Z.value.length>0&&!A.value&&!N.value}),en=(0,s.computed)(function(){return e.hideNoData&&!Z.value.length||e.readonly||(null==K?void 0:K.isReadonly.value)}),eo=(0,s.ref)(),ea=(0,b.useScrolling)(eo,_);function ei(t){e.openOnClear&&(j.value=!0),H.value=""}function es(){en.value||(j.value=!0)}function el(e){en.value||(I.value&&(e.preventDefault(),e.stopPropagation()),j.value=!j.value)}function ec(e){var t;(0,R.checkPrintable)(e)&&(null===(t=_.value)||void 0===t||t.focus())}function eu(t){if(!e.readonly&&(null==K||!K.isReadonly.value)){var r=_.value.selectionStart,n=z.value.length;if((P.value>-1||["Enter","ArrowDown","ArrowUp"].includes(t.key))&&t.preventDefault(),["Enter","ArrowDown"].includes(t.key)&&(j.value=!0),["Escape"].includes(t.key)&&(j.value=!1),er.value&&["Enter","Tab"].includes(t.key)&&!z.value.some(function(e){return e.value===Z.value[0].value})&&eg(Z.value[0]),"ArrowDown"===t.key&&er.value&&(null===(a=eo.value)||void 0===a||a.focus("next")),["Backspace","Delete"].includes(t.key)){if(!e.multiple&&ee.value&&z.value.length>0&&!H.value)return eg(z.value[0],!1);if(~P.value){var o=P.value;eg(z.value[P.value],!1),P.value=o>=n-1?n-2:o}else"Backspace"!==t.key||H.value||(P.value=n-1)}if(e.multiple){if("ArrowLeft"===t.key){if(P.value<0&&r>0)return;var a,i,s,l=P.value>-1?P.value-1:n-1;z.value[l]?P.value=l:(P.value=-1,_.value.setSelectionRange(null===(i=H.value)||void 0===i?void 0:i.length,null===(s=H.value)||void 0===s?void 0:s.length))}if("ArrowRight"===t.key){if(P.value<0)return;var c=P.value+1;z.value[c]?P.value=c:(P.value=-1,_.value.setSelectionRange(0,0))}}}}function ed(e){if((0,R.matchesSelector)(_.value,":autofill")||(0,R.matchesSelector)(_.value,":-webkit-autofill")){var t=F.value.find(function(t){return t.title===e.target.value});t&&eg(t)}}function ep(){var t;e.eager&&(null===(t=O.value)||void 0===t||t.calculateVisibleItems())}function ef(){if(I.value){var e;A.value=!0,null===(e=_.value)||void 0===e||e.focus()}}function em(e){I.value=!0,setTimeout(function(){N.value=!0})}function e_(e){N.value=!1}function eh(t){null!=t&&(""!==t||e.multiple||ee.value)||(z.value=[])}var ev=(0,s.shallowRef)(!1);function eg(t){var r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t&&!t.props.disabled){if(e.multiple){var n=z.value.findIndex(function(r){return e.valueComparator(r.value,t.value)}),o=null==r?!~n:r;if(~n){var a=o?(0,i._)(z.value).concat([t]):(0,i._)(z.value);a.splice(n,1),z.value=a}else o&&(z.value=(0,i._)(z.value).concat([t]));e.clearOnSelect&&(H.value="")}else{var l=!1!==r;z.value=l?[t]:[],H.value=l&&!ee.value?t.title:"",(0,s.nextTick)(function(){j.value=!1,A.value=!0})}}}return(0,s.watch)(I,function(t,r){if(t!==r){if(t){var n,o;ev.value=!0,H.value=e.multiple||ee.value?"":String(null!==(o=null===(n=z.value.at(-1))||void 0===n?void 0:n.props.title)&&void 0!==o?o:""),A.value=!0,(0,s.nextTick)(function(){return ev.value=!1})}else e.multiple||null!=H.value||(z.value=[]),j.value=!1,z.value.some(function(e){return e.title===H.value})||(H.value=""),P.value=-1}}),(0,s.watch)(H,function(e){I.value&&!ev.value&&(e&&(j.value=!0),A.value=!e)}),(0,s.watch)(j,function(){if(!e.hideSelected&&j.value&&z.value.length){var t=Z.value.findIndex(function(e){return z.value.some(function(t){return e.value===t.value})});R.IN_BROWSER&&window.requestAnimationFrame(function(){var e;t>=0&&(null===(e=O.value)||void 0===e||e.scrollToIndex(t))})}}),(0,s.watch)(function(){return e.items},function(e,t){!j.value&&I.value&&!t.length&&e.length&&(j.value=!0)}),(0,R.useRender)(function(){var t=!!(!e.hideNoData||Z.value.length||r["prepend-item"]||r["append-item"]||r["no-data"]),b=z.value.length>0,y=(0,h.VTextField).filterProps(e);return(0,s.createVNode)(h.VTextField,(0,s.mergeProps)({ref:_},y,{modelValue:H.value,"onUpdate:modelValue":[function(e){return H.value=e},eh],focused:I.value,"onUpdate:focused":function(e){return I.value=e},validationValue:z.externalValue,counterValue:W.value,dirty:b,onChange:ed,class:["v-autocomplete","v-autocomplete--".concat(e.multiple?"multiple":"single"),{"v-autocomplete--active-menu":j.value,"v-autocomplete--chips":!!e.chips,"v-autocomplete--selection-slot":!!ee.value,"v-autocomplete--selecting-index":P.value>-1},e.class],style:e.style,readonly:e.readonly,placeholder:b?void 0:e.placeholder,"onClick:clear":ei,"onMousedown:control":es,onKeydown:eu}),(0,a._)((0,o._)({},r),{default:function(){return(0,s.createVNode)(s.Fragment,null,[(0,s.createVNode)(m.VMenu,(0,s.mergeProps)({ref:k,modelValue:j.value,"onUpdate:modelValue":function(e){return j.value=e},activator:"parent",contentClass:"v-autocomplete__content",disabled:en.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:ep,onAfterLeave:ef},e.menuProps),{default:function(){var o;return[t&&(0,s.createVNode)(f.VList,(0,s.mergeProps)({ref:eo,selected:et.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:function(e){return e.preventDefault()},onKeydown:ec,onFocusin:em,onFocusout:e_,tabindex:"-1","aria-live":"polite",color:null!==(o=e.itemColor)&&void 0!==o?o:e.color},ea,e.listProps),{default:function(){var t,o,a,i;return[null===(t=r["prepend-item"])||void 0===t?void 0:t.call(r),!Z.value.length&&!e.hideNoData&&(null!==(i=null===(o=r["no-data"])||void 0===o?void 0:o.call(r))&&void 0!==i?i:(0,s.createVNode)(f.VListItem,{title:n(e.noDataText)},null)),(0,s.createVNode)(g.VVirtualScroll,{ref:O,renderless:!0,items:Z.value},{default:function(t){var n,o,a=t.item,i=t.index,u=t.itemRef,d=(0,s.mergeProps)(a.props,{ref:u,key:i,active:!!er.value&&0===i||void 0,onClick:function(){return eg(a,null)}});return null!==(o=null===(n=r.item)||void 0===n?void 0:n.call(r,{item:a,index:i,props:d}))&&void 0!==o?o:(0,s.createVNode)(f.VListItem,(0,s.mergeProps)(d,{role:"option"}),{prepend:function(t){var r=t.isSelected;return(0,s.createVNode)(s.Fragment,null,[e.multiple&&!e.hideSelected?(0,s.createVNode)(c.VCheckboxBtn,{key:a.value,modelValue:r,ripple:!1,tabindex:"-1"},null):void 0,a.props.prependAvatar&&(0,s.createVNode)(l.VAvatar,{image:a.props.prependAvatar},null),a.props.prependIcon&&(0,s.createVNode)(p.VIcon,{icon:a.props.prependIcon},null)])},title:function(){var e,t,r;return A.value?a.title:function(e,t,r){if(null==t)return e;if(Array.isArray(t))throw Error("Multiple matches is not implemented");return"number"==typeof t&&~t?(0,s.createVNode)(s.Fragment,null,[(0,s.createVNode)("span",{class:"v-autocomplete__unmask"},[e.substr(0,t)]),(0,s.createVNode)("span",{class:"v-autocomplete__mask"},[e.substr(t,r)]),(0,s.createVNode)("span",{class:"v-autocomplete__unmask"},[e.substr(t+r)])]):e}(a.title,null===(e=X(a))||void 0===e?void 0:e.title,null!==(r=null===(t=H.value)||void 0===t?void 0:t.length)&&void 0!==r?r:0)}})}}),null===(a=r["append-item"])||void 0===a?void 0:a.call(r)]}})]}}),z.value.map(function(t,n){var o=function(e){e.stopPropagation(),e.preventDefault(),eg(t,!1)},a={"onClick:close":o,onKeydown:function(e){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),e.stopPropagation(),o(e))},onMousedown:function(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},i=J.value?!!r.chip:!!r.selection,l=i?(0,R.ensureValidVNode)(J.value?r.chip({item:t,index:n,props:a}):r.selection({item:t,index:n})):void 0;if(!i||l)return(0,s.createVNode)("div",{key:t.value,class:["v-autocomplete__selection",n===P.value&&["v-autocomplete__selection--selected",q.value]],style:n===P.value?Y.value:{}},[J.value?r.chip?(0,s.createVNode)(d.VDefaultsProvider,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:t.title}}},{default:function(){return[l]}}):(0,s.createVNode)(u.VChip,(0,s.mergeProps)({key:"chip",closable:e.closableChips,size:"small",text:t.title,disabled:t.props.disabled},a),null):null!=l?l:(0,s.createVNode)("span",{class:"v-autocomplete__selection-text"},[t.title,e.multiple&&n0,_=!e.hideDetails||"auto"===e.hideDetails&&(m||!!r.details);return(0,a.createVNode)("div",{class:["v-input","v-input--".concat(e.direction),{"v-input--center-affix":e.centerAffix,"v-input--hide-spin-buttons":e.hideSpinButtons},n.value,l.value,d.value,O.value,e.class],style:[o.value,e.style]},[p&&(0,a.createVNode)("div",{key:"prepend",class:"v-input__prepend"},[null===(t=r.prepend)||void 0===t?void 0:t.call(r,D.value),e.prependIcon&&(0,a.createVNode)(h,{key:"prepend-icon",name:"prepend"},null)]),r.default&&(0,a.createVNode)("div",{class:"v-input__control"},[null===(i=r.default)||void 0===i?void 0:i.call(r,D.value)]),f&&(0,a.createVNode)("div",{key:"append",class:"v-input__append"},[e.appendIcon&&(0,a.createVNode)(h,{key:"append-icon",name:"append"},null),null===(c=r.append)||void 0===c?void 0:c.call(r,D.value)]),_&&(0,a.createVNode)("div",{class:"v-input__details"},[(0,a.createVNode)(s.VMessages,{id:y.value,active:m,messages:j.value},{message:r.message}),null===(u=r.details)||void 0===u?void 0:u.call(r,D.value)])])}),{reset:A,resetValidation:N,validate:k,isValid:I,errorMessages:E}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VInput.css":"4JnaH","./InputIcon.mjs":"dmmta","../VMessages/VMessages.mjs":"5AJ9k","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/dimensions.mjs":"969Er","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/theme.mjs":"iNuzC","../../composables/validation.mjs":"lf1gq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4JnaH":[function(){},{}],dmmta:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useInputIcon",function(){return s});var o=e("vue"),a=e("../VIcon/index.mjs"),i=e("../../composables/locale.mjs");function s(e){var t=(0,i.useLocale)().t;return{InputIcon:function(r){var n,i=r.name,s={prepend:"prependAction",prependInner:"prependAction",append:"appendAction",appendInner:"appendAction",clear:"clear"}[i],l=e["onClick:".concat(i)],c=l&&s?t("$vuetify.input.".concat(s),null!==(n=e.label)&&void 0!==n?n:""):void 0;return(0,o.createVNode)(a.VIcon,{icon:e["".concat(i,"Icon")],"aria-label":c,onClick:l},null)}}}},{vue:"gHobw","../VIcon/index.mjs":"kpG2s","../../composables/locale.mjs":"8eTqB","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"5AJ9k":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVMessagesProps",function(){return d}),n.export(r,"VMessages",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VMessages.css");var i=e("../transitions/index.mjs"),s=e("../../composables/color.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/transition.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({active:Boolean,color:String,messages:{type:[Array,String],default:function(){return[]}}},(0,l.makeComponentProps)(),(0,c.makeTransitionProps)({transition:{component:i.VSlideYTransition,leaveAbsolute:!0,group:!0}})),"VMessages"),p=(0,u.genericComponent)()({name:"VMessages",props:d(),setup:function(e,t){var r=t.slots,n=(0,a.computed)(function(){return(0,u.wrapInArray)(e.messages)}),o=(0,s.useTextColor)((0,a.computed)(function(){return e.color})),i=o.textColorClasses,l=o.textColorStyles;return(0,u.useRender)(function(){return(0,a.createVNode)(c.MaybeTransition,{transition:e.transition,tag:"div",class:["v-messages",i.value,e.class],style:[l.value,e.style],role:"alert","aria-live":"polite"},{default:function(){return[e.active&&n.value.map(function(e,t){return(0,a.createVNode)("div",{class:"v-messages__message",key:"".concat(t,"-").concat(n.value)},[r.message?r.message({message:e}):e])})]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VMessages.css":"7YzIL","../transitions/index.mjs":"9jbNO","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/transition.mjs":"4059v","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7YzIL":[function(){},{}],lf1gq:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeValidationProps",function(){return _}),n.export(r,"useValidation",function(){return h});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_define_property"),i=e("@swc/helpers/_/_object_spread"),s=e("@swc/helpers/_/_ts_generator"),l=e("@swc/helpers/_/_ts_values"),c=e("./focus.mjs"),u=e("./form.mjs"),d=e("./proxiedModel.mjs"),p=e("./toggleScope.mjs"),f=e("vue"),m=e("../util/index.mjs"),_=(0,m.propsFactory)((0,i._)({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:function(){return[]}},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:function(){return[]}},modelValue:null,validateOn:String,validationValue:null},(0,c.makeFocusProps)()),"validation");function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,m.getCurrentInstanceName)(),r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(0,m.getUid)(),n=(0,d.useProxiedModel)(e,"modelValue"),i=(0,f.computed)(function(){return void 0===e.validationValue?n.value:e.validationValue}),c=(0,u.useForm)(),_=(0,f.ref)([]),h=(0,f.shallowRef)(!0),g=(0,f.computed)(function(){return!!((0,m.wrapInArray)(""===n.value?null:n.value).length||(0,m.wrapInArray)(""===i.value?null:i.value).length)}),b=(0,f.computed)(function(){var t;return!!(null!==(t=e.disabled)&&void 0!==t?t:null==c?void 0:c.isDisabled.value)}),y=(0,f.computed)(function(){var t;return!!(null!==(t=e.readonly)&&void 0!==t?t:null==c?void 0:c.isReadonly.value)}),S=(0,f.computed)(function(){var t;return(null===(t=e.errorMessages)||void 0===t?void 0:t.length)?(0,m.wrapInArray)(e.errorMessages).concat(_.value).slice(0,Math.max(0,+e.maxErrors)):_.value}),E=(0,f.computed)(function(){var t,r,n=(null!==(t=e.validateOn)&&void 0!==t?t:null==c?void 0:c.validateOn.value)||"input";"lazy"===n&&(n="input lazy"),"eager"===n&&(n="input eager");var o=new Set(null!==(r=null==n?void 0:n.split(" "))&&void 0!==r?r:[]);return{input:o.has("input"),blur:o.has("blur")||o.has("input")||o.has("invalid-input"),invalidInput:o.has("invalid-input"),lazy:o.has("lazy"),eager:o.has("eager")}}),x=(0,f.computed)(function(){var t;return!e.error&&(null===(t=e.errorMessages)||void 0===t||!t.length)&&(!e.rules.length||(h.value?!_.value.length&&!E.value.lazy||null:!_.value.length))}),C=(0,f.shallowRef)(!1),T=(0,f.computed)(function(){var e;return e={},(0,a._)(e,"".concat(t,"--error"),!1===x.value),(0,a._)(e,"".concat(t,"--dirty"),g.value),(0,a._)(e,"".concat(t,"--disabled"),b.value),(0,a._)(e,"".concat(t,"--readonly"),y.value),e}),w=(0,m.getCurrentInstance)("validation"),I=(0,f.computed)(function(){var t;return null!==(t=e.name)&&void 0!==t?t:(0,f.unref)(r)});function R(){return A.apply(this,arguments)}function A(){return(A=(0,o._)(function(){return(0,s._)(this,function(e){switch(e.label){case 0:return n.value=null,[4,(0,f.nextTick)()];case 1:return e.sent(),[4,N()];case 2:return e.sent(),[2]}})})).apply(this,arguments)}function N(){return k.apply(this,arguments)}function k(){return(k=(0,o._)(function(){return(0,s._)(this,function(e){switch(e.label){case 0:if(h.value=!0,E.value.lazy)return[3,2];return[4,O(!E.value.eager)];case 1:return e.sent(),[3,3];case 2:_.value=[],e.label=3;case 3:return[2]}})})).apply(this,arguments)}function O(){return D.apply(this,arguments)}function D(){return(D=(0,o._)(function(){var t,r,n,o,a,c,u,d,p,f=arguments;return(0,s._)(this,function(m){switch(m.label){case 0:t=f.length>0&&void 0!==f[0]&&f[0],r=[],C.value=!0,n=!0,o=!1,a=void 0,m.label=1;case 1:m.trys.push([1,6,7,8]),c=function(){var t,n,o;return(0,s._)(this,function(a){switch(a.label){case 0:if(t=d.value,r.length>=+(null!==(n=e.maxErrors)&&void 0!==n?n:1))return[2,"break"];return[4,("function"==typeof t?t:function(){return t})(i.value)];case 1:if(!0===(o=a.sent()))return[2,"continue"];if(!1!==o&&"string"!=typeof o)return console.warn("".concat(o," is not a valid value. Rule functions must return boolean true or a string.")),[2,"continue"];return r.push(o||""),[2]}})},u=e.rules[Symbol.iterator](),m.label=2;case 2:if(n=(d=u.next()).done)return[3,5];return[5,(0,l._)(c())];case 3:if("break"===m.sent())return[3,5];m.label=4;case 4:return n=!0,[3,2];case 5:return[3,8];case 6:return p=m.sent(),o=!0,a=p,[3,8];case 7:try{n||null==u.return||u.return()}finally{if(o)throw a}return[7];case 8:return _.value=r,C.value=!1,h.value=t,[2,_.value]}})})).apply(this,arguments)}return(0,f.onBeforeMount)(function(){null==c||c.register({id:I.value,vm:w,validate:O,reset:R,resetValidation:N})}),(0,f.onBeforeUnmount)(function(){null==c||c.unregister(I.value)}),(0,f.onMounted)(/*#__PURE__*/(0,o._)(function(){return(0,s._)(this,function(e){switch(e.label){case 0:if(E.value.lazy)return[3,2];return[4,O(!E.value.eager)];case 1:e.sent(),e.label=2;case 2:return null==c||c.update(I.value,x.value,S.value),[2]}})})),(0,p.useToggleScope)(function(){return E.value.input||E.value.invalidInput&&!1===x.value},function(){(0,f.watch)(i,function(){if(null!=i.value)O();else if(e.focused)var t=(0,f.watch)(function(){return e.focused},function(e){e||O(),t()})})}),(0,p.useToggleScope)(function(){return E.value.blur},function(){(0,f.watch)(function(){return e.focused},function(e){e||O()})}),(0,f.watch)([x,S],function(){null==c||c.update(I.value,x.value,S.value)}),{errorMessages:S,isDirty:g,isDisabled:b,isReadonly:y,isPristine:h,isValid:x,isValidating:C,reset:R,resetValidation:N,validate:O,validationClasses:T}}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_ts_generator":"6UgKg","@swc/helpers/_/_ts_values":"cEtRR","./focus.mjs":"bmd72","./form.mjs":"e23iP","./proxiedModel.mjs":"7LrVW","./toggleScope.mjs":"1GDdb",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cEtRR:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"_",function(){return o.__values});var o=e("tslib")},{tslib:"gZhDD","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bmd72:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeFocusProps",function(){return l}),n.export(r,"useFocus",function(){return c});var o=e("@swc/helpers/_/_define_property"),a=e("./proxiedModel.mjs"),i=e("vue"),s=e("../util/index.mjs"),l=(0,s.propsFactory)({focused:Boolean,"onUpdate:focused":(0,s.EventProp)()},"focus");function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,s.getCurrentInstanceName)(),r=(0,a.useProxiedModel)(e,"focused");return{focusClasses:(0,i.computed)(function(){return(0,o._)({},"".concat(t,"--focused"),r.value)}),isFocused:r,focus:function(){r.value=!0},blur:function(){r.value=!1}}}},{"@swc/helpers/_/_define_property":"3xmRB","./proxiedModel.mjs":"7LrVW",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],e23iP:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"FormKey",function(){return c}),n.export(r,"makeFormProps",function(){return u}),n.export(r,"createForm",function(){return d}),n.export(r,"useForm",function(){return p});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_ts_generator"),i=e("./proxiedModel.mjs"),s=e("vue"),l=e("../util/index.mjs"),c=Symbol.for("vuetify:form"),u=(0,l.propsFactory)({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:"input"}},"form");function d(e){var t=(0,i.useProxiedModel)(e,"modelValue"),r=(0,s.computed)(function(){return e.disabled}),n=(0,s.computed)(function(){return e.readonly}),u=(0,s.shallowRef)(!1),d=(0,s.ref)([]),p=(0,s.ref)([]);function f(){return(f=(0,o._)(function(){var t,r,n,o,i,s,l,c,f,m;return(0,a._)(this,function(a){switch(a.label){case 0:t=[],r=!0,p.value=[],u.value=!0,n=!0,o=!1,i=void 0,a.label=1;case 1:a.trys.push([1,6,7,8]),s=d.value[Symbol.iterator](),a.label=2;case 2:if(n=(l=s.next()).done)return[3,5];return[4,(c=l.value).validate()];case 3:if((f=a.sent()).length>0&&(r=!1,t.push({id:c.id,errorMessages:f})),!r&&e.fastFail)return[3,5];a.label=4;case 4:return n=!0,[3,2];case 5:return[3,8];case 6:return m=a.sent(),o=!0,i=m,[3,8];case 7:try{n||null==s.return||s.return()}finally{if(o)throw i}return[7];case 8:return p.value=t,u.value=!1,[2,{valid:r,errors:p.value}]}})})).apply(this,arguments)}return(0,s.watch)(d,function(){var e=0,r=0,n=[],o=!0,a=!1,i=void 0;try{for(var s,l=d.value[Symbol.iterator]();!(o=(s=l.next()).done);o=!0){var c=s.value;!1===c.isValid?(r++,n.push({id:c.id,errorMessages:c.errorMessages})):!0===c.isValid&&e++}}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}p.value=n,t.value=!(r>0)&&(e===d.value.length||null)},{deep:!0,flush:"post"}),(0,s.provide)(c,{register:function(e){var t=e.id,r=e.vm,n=e.validate,o=e.reset,a=e.resetValidation;d.value.some(function(e){return e.id===t})&&(0,l.consoleWarn)('Duplicate input name "'.concat(t,'"')),d.value.push({id:t,validate:n,reset:o,resetValidation:a,vm:(0,s.markRaw)(r),isValid:null,errorMessages:[]})},unregister:function(e){d.value=d.value.filter(function(t){return t.id!==e})},update:function(e,t,r){var n=d.value.find(function(t){return t.id===e});n&&(n.isValid=t,n.errorMessages=r)},isDisabled:r,isReadonly:n,isValidating:u,isValid:t,items:d,validateOn:(0,s.toRef)(e,"validateOn")}),{errors:p,isDisabled:r,isReadonly:n,isValidating:u,isValid:t,items:d,validate:function(){return f.apply(this,arguments)},reset:function(){d.value.forEach(function(e){return e.reset()})},resetValidation:function(){d.value.forEach(function(e){return e.resetValidation()})}}}function p(){return(0,s.inject)(c,null)}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_ts_generator":"6UgKg","./proxiedModel.mjs":"7LrVW",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2TmoL":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VChip",function(){return o.VChip});var o=e("./VChip.mjs")},{"./VChip.mjs":"aLLDH","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aLLDH:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVChipProps",function(){return R}),n.export(r,"VChip",function(){return A});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VChip.css");var i=e("../transitions/index.mjs"),s=e("../VAvatar/index.mjs"),l=e("../VChipGroup/VChipGroup.mjs"),c=e("../VDefaultsProvider/index.mjs"),u=e("../VIcon/index.mjs"),d=e("../../composables/border.mjs"),p=e("../../composables/component.mjs"),f=e("../../composables/density.mjs"),m=e("../../composables/elevation.mjs"),_=e("../../composables/group.mjs"),h=e("../../composables/icons.mjs"),g=e("../../composables/locale.mjs"),b=e("../../composables/proxiedModel.mjs"),y=e("../../composables/rounded.mjs"),S=e("../../composables/router.mjs"),E=e("../../composables/size.mjs"),x=e("../../composables/tag.mjs"),C=e("../../composables/theme.mjs"),T=e("../../composables/variant.mjs"),w=e("../../directives/ripple/index.mjs"),I=e("../../util/index.mjs"),R=(0,I.propsFactory)((0,o._)({activeClass:String,appendAvatar:String,appendIcon:h.IconValue,closable:Boolean,closeIcon:{type:h.IconValue,default:"$delete"},closeLabel:{type:String,default:"$vuetify.close"},draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:h.IconValue,ripple:{type:[Boolean,Object],default:!0},text:String,modelValue:{type:Boolean,default:!0},onClick:(0,I.EventProp)(),onClickOnce:(0,I.EventProp)()},(0,d.makeBorderProps)(),(0,p.makeComponentProps)(),(0,f.makeDensityProps)(),(0,m.makeElevationProps)(),(0,_.makeGroupItemProps)(),(0,y.makeRoundedProps)(),(0,S.makeRouterProps)(),(0,E.makeSizeProps)(),(0,x.makeTagProps)({tag:"span"}),(0,C.makeThemeProps)(),(0,T.makeVariantProps)({variant:"tonal"})),"VChip"),A=(0,I.genericComponent)()({name:"VChip",directives:{Ripple:w.Ripple},props:R(),emits:{"click:close":function(e){return!0},"update:modelValue":function(e){return!0},"group:selected":function(e){return!0},click:function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.emit,o=t.slots,p=(0,g.useLocale)().t,h=(0,d.useBorder)(e).borderClasses,x=(0,T.useVariant)(e),w=x.colorClasses,I=x.colorStyles,R=x.variantClasses,A=(0,f.useDensity)(e).densityClasses,N=(0,m.useElevation)(e).elevationClasses,k=(0,y.useRounded)(e).roundedClasses,O=(0,E.useSize)(e).sizeClasses,D=(0,C.provideTheme)(e).themeClasses,j=(0,b.useProxiedModel)(e,"modelValue"),P=(0,_.useGroupItem)(e,l.VChipGroupSymbol,!1),M=(0,S.useLink)(e,r),L=(0,a.computed)(function(){return!1!==e.link&&M.isLink.value}),V=(0,a.computed)(function(){return!e.disabled&&!1!==e.link&&(!!P||e.link||M.isClickable.value)}),F=(0,a.computed)(function(){return{"aria-label":p(e.closeLabel),onClick:function(e){e.preventDefault(),e.stopPropagation(),j.value=!1,n("click:close",e)}}});function B(e){var t;n("click",e),V.value&&(null===(t=M.navigate)||void 0===t||t.call(M,e),null==P||P.toggle())}function U(e){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),B(e))}return function(){var t=M.isLink.value?"a":e.tag,r=!!(e.appendIcon||e.appendAvatar),n=!!(r||o.append),l=!!(o.close||e.closable),d=!!(o.filter||e.filter)&&P,p=!!(e.prependIcon||e.prependAvatar),f=!!(p||o.prepend),m=!P||P.isSelected.value;return j.value&&(0,a.withDirectives)((0,a.createVNode)(t,(0,a.mergeProps)({class:["v-chip",{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":V.value,"v-chip--filter":d,"v-chip--pill":e.pill},D.value,h.value,m?w.value:void 0,A.value,N.value,k.value,O.value,R.value,null==P?void 0:P.selectedClass.value,e.class],style:[m?I.value:void 0,e.style],disabled:e.disabled||void 0,draggable:e.draggable,tabindex:V.value?0:void 0,onClick:B,onKeydown:V.value&&!L.value&&U},M.linkProps),{default:function(){var t,m;return[(0,T.genOverlays)(V.value,"v-chip"),d&&(0,a.createVNode)(i.VExpandXTransition,{key:"filter"},{default:function(){return[(0,a.withDirectives)((0,a.createVNode)("div",{class:"v-chip__filter"},[o.filter?(0,a.createVNode)(c.VDefaultsProvider,{key:"filter-defaults",disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},o.filter):(0,a.createVNode)(u.VIcon,{key:"filter-icon",icon:e.filterIcon},null)]),[[a.vShow,P.isSelected.value]])]}}),f&&(0,a.createVNode)("div",{key:"prepend",class:"v-chip__prepend"},[o.prepend?(0,a.createVNode)(c.VDefaultsProvider,{key:"prepend-defaults",disabled:!p,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},o.prepend):(0,a.createVNode)(a.Fragment,null,[e.prependIcon&&(0,a.createVNode)(u.VIcon,{key:"prepend-icon",icon:e.prependIcon,start:!0},null),e.prependAvatar&&(0,a.createVNode)(s.VAvatar,{key:"prepend-avatar",image:e.prependAvatar,start:!0},null)])]),(0,a.createVNode)("div",{class:"v-chip__content","data-no-activator":""},[null!==(m=null===(t=o.default)||void 0===t?void 0:t.call(o,{isSelected:null==P?void 0:P.isSelected.value,selectedClass:null==P?void 0:P.selectedClass.value,select:null==P?void 0:P.select,toggle:null==P?void 0:P.toggle,value:null==P?void 0:P.value.value,disabled:e.disabled}))&&void 0!==m?m:e.text]),n&&(0,a.createVNode)("div",{key:"append",class:"v-chip__append"},[o.append?(0,a.createVNode)(c.VDefaultsProvider,{key:"append-defaults",disabled:!r,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},o.append):(0,a.createVNode)(a.Fragment,null,[e.appendIcon&&(0,a.createVNode)(u.VIcon,{key:"append-icon",end:!0,icon:e.appendIcon},null),e.appendAvatar&&(0,a.createVNode)(s.VAvatar,{key:"append-avatar",end:!0,image:e.appendAvatar},null)])]),l&&(0,a.createVNode)("button",(0,a.mergeProps)({key:"close",class:"v-chip__close",type:"button","data-testid":"close-chip"},F.value),[o.close?(0,a.createVNode)(c.VDefaultsProvider,{key:"close-defaults",defaults:{VIcon:{icon:e.closeIcon,size:"x-small"}}},o.close):(0,a.createVNode)(u.VIcon,{key:"close-icon",icon:e.closeIcon,size:"x-small"},null)])]}}),[[(0,a.resolveDirective)("ripple"),V.value&&e.ripple,null]])}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VChip.css":"fRV7q","../transitions/index.mjs":"9jbNO","../VAvatar/index.mjs":"gBQEK","../VChipGroup/VChipGroup.mjs":"4Tl2V","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","../../composables/border.mjs":"8SyXK","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/elevation.mjs":"jNJPe","../../composables/group.mjs":"c5IR1","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/router.mjs":"aK38B","../../composables/size.mjs":"2mSFo","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/variant.mjs":"e5F3N","../../directives/ripple/index.mjs":"5qUsh","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fRV7q:[function(){},{}],"4Tl2V":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VChipGroupSymbol",function(){return m}),n.export(r,"makeVChipGroupProps",function(){return _}),n.export(r,"VChipGroup",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VChipGroup.css");var i=e("../VSlideGroup/VSlideGroup.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/defaults.mjs"),c=e("../../composables/group.mjs"),u=e("../../composables/tag.mjs"),d=e("../../composables/theme.mjs"),p=e("../../composables/variant.mjs"),f=e("../../util/index.mjs"),m=Symbol.for("vuetify:v-chip-group"),_=(0,f.propsFactory)((0,o._)({column:Boolean,filter:Boolean,valueComparator:{type:Function,default:f.deepEqual}},(0,i.makeVSlideGroupProps)(),(0,s.makeComponentProps)(),(0,c.makeGroupProps)({selectedClass:"v-chip--selected"}),(0,u.makeTagProps)(),(0,d.makeThemeProps)(),(0,p.makeVariantProps)({variant:"tonal"})),"VChipGroup"),h=(0,f.genericComponent)()({name:"VChipGroup",props:_(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,d.provideTheme)(e).themeClasses,o=(0,c.useGroup)(e,m),s=o.isSelected,u=o.select,p=o.next,_=o.prev,h=o.selected;return(0,l.provideDefaults)({VChip:{color:(0,a.toRef)(e,"color"),disabled:(0,a.toRef)(e,"disabled"),filter:(0,a.toRef)(e,"filter"),variant:(0,a.toRef)(e,"variant")}}),(0,f.useRender)(function(){var t=(0,i.VSlideGroup).filterProps(e);return(0,a.createVNode)(i.VSlideGroup,(0,a.mergeProps)(t,{class:["v-chip-group",{"v-chip-group--column":e.column},n.value,e.class],style:e.style}),{default:function(){var e;return[null===(e=r.default)||void 0===e?void 0:e.call(r,{isSelected:s,select:u,next:p,prev:_,selected:h.value})]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VChipGroup.css":"3EPcw","../VSlideGroup/VSlideGroup.mjs":"b5bcA","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/group.mjs":"c5IR1","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/variant.mjs":"e5F3N","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3EPcw":[function(){},{}],b5bcA:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSlideGroupSymbol",function(){return b}),n.export(r,"makeVSlideGroupProps",function(){return y}),n.export(r,"VSlideGroup",function(){return S});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VSlideGroup.css");var i=e("../transitions/index.mjs"),s=e("../VIcon/index.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/display.mjs"),u=e("../../composables/goto.mjs"),d=e("../../composables/group.mjs"),p=e("../../composables/icons.mjs"),f=e("../../composables/locale.mjs"),m=e("../../composables/resizeObserver.mjs"),_=e("../../composables/tag.mjs"),h=e("./helpers.mjs"),g=e("../../util/index.mjs"),b=Symbol.for("vuetify:v-slide-group"),y=(0,g.propsFactory)((0,o._)({centerActive:Boolean,direction:{type:String,default:"horizontal"},symbol:{type:null,default:b},nextIcon:{type:p.IconValue,default:"$next"},prevIcon:{type:p.IconValue,default:"$prev"},showArrows:{type:[Boolean,String],validator:function(e){return"boolean"==typeof e||["always","desktop","mobile"].includes(e)}}},(0,l.makeComponentProps)(),(0,c.makeDisplayProps)({mobile:null}),(0,_.makeTagProps)(),(0,d.makeGroupProps)({selectedClass:"v-slide-group-item--active"})),"VSlideGroup"),S=(0,g.genericComponent)()({name:"VSlideGroup",props:y(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,f.useRtl)().isRtl,o=(0,c.useDisplay)(e),l=o.displayClasses,p=o.mobile,_=(0,d.useGroup)(e,e.symbol),b=(0,a.shallowRef)(!1),y=(0,a.shallowRef)(0),S=(0,a.shallowRef)(0),E=(0,a.shallowRef)(0),x=(0,a.computed)(function(){return"horizontal"===e.direction}),C=(0,m.useResizeObserver)(),T=C.resizeRef,w=C.contentRect,I=(0,m.useResizeObserver)(),R=I.resizeRef,A=I.contentRect,N=(0,u.useGoTo)(),k=(0,a.computed)(function(){return{container:T.el,duration:200,easing:"easeOutQuart"}}),O=(0,a.computed)(function(){return _.selected.value.length?_.items.value.findIndex(function(e){return e.id===_.selected.value[0]}):-1}),D=(0,a.computed)(function(){return _.selected.value.length?_.items.value.findIndex(function(e){return e.id===_.selected.value[_.selected.value.length-1]}):-1});if(g.IN_BROWSER){var j=-1;(0,a.watch)(function(){return[_.selected.value,w.value,A.value,x.value]},function(){cancelAnimationFrame(j),j=requestAnimationFrame(function(){if(w.value&&A.value){var t=x.value?"width":"height";S.value=w.value[t],E.value=A.value[t],b.value=S.value+1=0&&R.el&&M(R.el.children[D.value],e.centerActive)})})}var P=(0,a.shallowRef)(!1);function M(e,t){L(t?(0,h.calculateCenteredTarget)({containerElement:T.el,isHorizontal:x.value,selectedElement:e}):(0,h.calculateUpdatedTarget)({containerElement:T.el,isHorizontal:x.value,isRtl:n.value,selectedElement:e}))}function L(e){if(g.IN_BROWSER&&T.el){var t=(0,h.getOffsetSize)(x.value,T.el),r=(0,h.getScrollPosition)(x.value,n.value,T.el);if(!((0,h.getScrollSize)(x.value,T.el)<=t||16>Math.abs(e-r))){if(x.value&&n.value&&T.el){var o=T.el;e=o.scrollWidth-o.offsetWidth-e}x.value?N.horizontal(e,k.value):N(e,k.value)}}}function V(e){var t=e.target,r=t.scrollTop,n=t.scrollLeft;y.value=x.value?n:r}function F(e){if(P.value=!0,b.value&&R.el){var t=!0,r=!1,n=void 0;try{for(var o,a=e.composedPath()[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value,s=!0,l=!1,c=void 0;try{for(var u,d=R.el.children[Symbol.iterator]();!(s=(u=d.next()).done);s=!0){var p=u.value;if(p===i){M(p);return}}}catch(e){l=!0,c=e}finally{try{s||null==d.return||d.return()}finally{if(l)throw c}}}}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}}}function B(e){P.value=!1}var U=!1;function G(e){var t;U||P.value||e.relatedTarget&&(null===(t=R.el)||void 0===t?void 0:t.contains(e.relatedTarget))||H(),U=!1}function q(){U=!0}function Y(e){R.el&&(x.value?"ArrowRight"===e.key?t(n.value?"prev":"next"):"ArrowLeft"===e.key&&t(n.value?"next":"prev"):"ArrowDown"===e.key?t("next"):"ArrowUp"===e.key&&t("prev"),"Home"===e.key?t("first"):"End"===e.key&&t("last"));function t(t){e.preventDefault(),H(t)}}function H(e){if(R.el){if(e){if("next"===e){if(!(t=null===(r=R.el.querySelector(":focus"))||void 0===r?void 0:r.nextElementSibling))return H("first")}else if("prev"===e){if(!(t=null===(n=R.el.querySelector(":focus"))||void 0===n?void 0:n.previousElementSibling))return H("last")}else"first"===e?t=R.el.firstElementChild:"last"===e&&(t=R.el.lastElementChild)}else{var t,r,n;t=(0,g.focusableChildren)(R.el)[0]}t&&t.focus({preventScroll:!0})}}function z(e){var t=x.value&&n.value?-1:1,r=("prev"===e?-t:t)*S.value,o=y.value+r;if(x.value&&n.value&&T.el){var a=T.el;o+=a.scrollWidth-a.offsetWidth}L(o)}var W=(0,a.computed)(function(){return{next:_.next,prev:_.prev,select:_.select,isSelected:_.isSelected}}),K=(0,a.computed)(function(){switch(e.showArrows){case"always":return!0;case"desktop":return!p.value;case!0:return b.value||Math.abs(y.value)>0;case"mobile":return p.value||b.value||Math.abs(y.value)>0;default:return!p.value&&(b.value||Math.abs(y.value)>0)}}),Q=(0,a.computed)(function(){return Math.abs(y.value)>1}),$=(0,a.computed)(function(){return!!T.value&&(0,h.getScrollSize)(x.value,T.el)-(0,h.getClientSize)(x.value,T.el)-Math.abs(y.value)>1});return(0,g.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-slide-group",{"v-slide-group--vertical":!x.value,"v-slide-group--has-affixes":K.value,"v-slide-group--is-overflowing":b.value},l.value,e.class],style:e.style,tabindex:P.value||_.selected.value.length?-1:0,onFocus:G},{default:function(){var t,o,l,c,u;return[K.value&&(0,a.createVNode)("div",{key:"prev",class:["v-slide-group__prev",{"v-slide-group__prev--disabled":!Q.value}],onMousedown:q,onClick:function(){return Q.value&&z("prev")}},[null!==(c=null===(t=r.prev)||void 0===t?void 0:t.call(r,W.value))&&void 0!==c?c:(0,a.createVNode)(i.VFadeTransition,null,{default:function(){return[(0,a.createVNode)(s.VIcon,{icon:n.value?e.nextIcon:e.prevIcon},null)]}})]),(0,a.createVNode)("div",{key:"container",ref:T,class:"v-slide-group__container",onScroll:V},[(0,a.createVNode)("div",{ref:R,class:"v-slide-group__content",onFocusin:F,onFocusout:B,onKeydown:Y},[null===(o=r.default)||void 0===o?void 0:o.call(r,W.value)])]),K.value&&(0,a.createVNode)("div",{key:"next",class:["v-slide-group__next",{"v-slide-group__next--disabled":!$.value}],onMousedown:q,onClick:function(){return $.value&&z("next")}},[null!==(u=null===(l=r.next)||void 0===l?void 0:l.call(r,W.value))&&void 0!==u?u:(0,a.createVNode)(i.VFadeTransition,null,{default:function(){return[(0,a.createVNode)(s.VIcon,{icon:n.value?e.prevIcon:e.nextIcon},null)]}})])]}})}),{selected:_.selected,scrollTo:z,scrollOffset:y,focus:H,hasPrev:Q,hasNext:$}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSlideGroup.css":"41htS","../transitions/index.mjs":"9jbNO","../VIcon/index.mjs":"kpG2s","../../composables/component.mjs":"c32AV","../../composables/display.mjs":"5LhPp","../../composables/goto.mjs":"dapMK","../../composables/group.mjs":"c5IR1","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/resizeObserver.mjs":"kyBb2","../../composables/tag.mjs":"ceZPq","./helpers.mjs":"bX9IQ","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"41htS":[function(){},{}],bX9IQ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){var t=e.selectedElement,r=e.containerElement,n=e.isRtl,o=e.isHorizontal,a=c(o,r),i=l(o,n,r),s=c(o,t),d=u(o,t),p=.4*s;return i>d?d-p:i+a "),l=t(r).concat(e).map(String).join(" -> ");(0,f.consoleError)("Multiple nodes with the same ID\n ".concat(i,"\n ").concat(l));return}E.add(e),r&&e!==r&&o.value.set(e,r),a&&n.value.set(e,[]),null!=r&&n.value.set(r,(0,s._)(n.value.get(r)||[]).concat([e]))},unregister:function(e){if(!r){E.delete(e),n.value.delete(e);var t=o.value.get(e);if(t){var a,i=null!==(a=n.value.get(t))&&void 0!==a?a:[];n.value.set(t,i.filter(function(t){return t!==e}))}o.value.delete(e)}},open:function(e,r,i){S.emit("click:open",{id:e,value:r,path:t(e),event:i});var s=g.value.open({id:e,value:r,opened:new Set(a.value),children:n.value,parents:o.value,event:i});s&&(a.value=s)},openOnSelect:function(e,t,r){var i=g.value.select({id:e,value:t,selected:new Map(y.value),opened:new Set(a.value),children:n.value,parents:o.value,event:r});i&&(a.value=i)},select:function(e,r,a){S.emit("click:select",{id:e,value:r,path:t(e),event:a});var i=h.value.select({id:e,value:r,selected:new Map(y.value),children:n.value,parents:o.value,event:a});i&&(y.value=i),x.root.openOnSelect(e,r,a)},activate:function(r,a,i){if(!e.activatable)return x.root.select(r,!0,i);S.emit("click:activate",{id:r,value:a,path:t(r),event:i});var s=_.value.activate({id:r,value:a,activated:new Set(b.value),children:n.value,parents:o.value,event:i});s&&(b.value=s)},children:n,parents:o,getPath:t}};return(0,c.provide)(m,x),x.root},b=function(e,t){var r=(0,c.inject)(m,_),n=Symbol((0,f.getUid)()),i=(0,c.computed)(function(){return void 0!==e.value?e.value:n}),s=(0,a._)((0,o._)({},r),{id:i,open:function(e,t){return r.root.open(i.value,e,t)},openOnSelect:function(e,t){return r.root.openOnSelect(i.value,e,t)},isOpen:(0,c.computed)(function(){return r.root.opened.value.has(i.value)}),parent:(0,c.computed)(function(){return r.root.parents.value.get(i.value)}),activate:function(e,t){return r.root.activate(i.value,e,t)},isActivated:(0,c.computed)(function(){return r.root.activated.value.has((0,c.toRaw)(i.value))}),select:function(e,t){return r.root.select(i.value,e,t)},isSelected:(0,c.computed)(function(){return"on"===r.root.selected.value.get((0,c.toRaw)(i.value))}),isIndeterminate:(0,c.computed)(function(){return"indeterminate"===r.root.selected.value.get(i.value)}),isLeaf:(0,c.computed)(function(){return!r.root.children.value.get(i.value)}),isGroupActivator:r.isGroupActivator});return r.isGroupActivator||r.root.register(i.value,r.id.value,t),(0,c.onBeforeUnmount)(function(){r.isGroupActivator||r.root.unregister(i.value)}),t&&(0,c.provide)(m,s),s},y=function(){var e=(0,c.inject)(m,_);(0,c.provide)(m,(0,a._)((0,o._)({},e),{isGroupActivator:!0}))}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM","../proxiedModel.mjs":"7LrVW",vue:"gHobw","./activeStrategies.mjs":"3ALIp","./openStrategies.mjs":"6ChqC","./selectStrategies.mjs":"k8Nm3","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3ALIp":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"independentActiveStrategy",function(){return c}),n.export(r,"independentSingleActiveStrategy",function(){return u}),n.export(r,"leafActiveStrategy",function(){return d}),n.export(r,"leafSingleActiveStrategy",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_object_without_properties"),s=e("vue"),l=e("../../util/index.mjs"),c=function(e){var t={activate:function(t){var r=t.id,n=t.value,o=t.activated;return r=(0,s.toRaw)(r),e&&!n&&1===o.size&&o.has(r)||(n?o.add(r):o.delete(r)),o},in:function(e,r,n){var o=new Set,a=!0,i=!1,s=void 0;if(null!=e)try{for(var c,u=(0,l.wrapInArray)(e)[Symbol.iterator]();!(a=(c=u.next()).done);a=!0){var d=c.value;o=t.activate({id:d,value:!0,activated:new Set(o),children:r,parents:n})}}catch(e){i=!0,s=e}finally{try{a||null==u.return||u.return()}finally{if(i)throw s}}return o},out:function(e){return Array.from(e)}};return t},u=function(e){var t=c(e);return{activate:function(e){var r=e.activated,n=e.id,l=(0,i._)(e,["activated","id"]);n=(0,s.toRaw)(n);var c=r.has(n)?new Set([n]):new Set;return t.activate((0,a._)((0,o._)({},l),{id:n,activated:c}))},in:function(e,r,n){var o=new Set;if(null!=e){var a=(0,l.wrapInArray)(e);a.length&&(o=t.in(a.slice(0,1),r,n))}return o},out:function(e,r,n){return t.out(e,r,n)}}},d=function(e){var t=c(e);return{activate:function(e){var r=e.id,n=e.activated,a=e.children,l=(0,i._)(e,["id","activated","children"]);return(r=(0,s.toRaw)(r),a.has(r))?n:t.activate((0,o._)({id:r,activated:n,children:a},l))},in:t.in,out:t.out}},p=function(e){var t=u(e);return{activate:function(e){var r=e.id,n=e.activated,a=e.children,l=(0,i._)(e,["id","activated","children"]);return(r=(0,s.toRaw)(r),a.has(r))?n:t.activate((0,o._)({id:r,activated:n,children:a},l))},in:t.in,out:t.out}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6ChqC":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"singleOpenStrategy",function(){return o}),n.export(r,"multipleOpenStrategy",function(){return a}),n.export(r,"listOpenStrategy",function(){return i});var o={open:function(e){var t=e.id,r=e.value,n=e.opened,o=e.parents;if(!r)return n.delete(t),n;var a=new Set;a.add(t);for(var i=o.get(t);null!=i;)a.add(i),i=o.get(i);return a},select:function(){return null}},a={open:function(e){var t=e.id,r=e.value,n=e.opened,o=e.parents;if(r){var a=o.get(t);for(n.add(t);null!=a&&a!==t;)n.add(a),a=o.get(a)}else n.delete(t);return n},select:function(){return null}},i={open:a.open,select:function(e){var t=e.id,r=e.value,n=e.opened,o=e.parents;if(!r)return n;for(var a=[],i=o.get(t);null!=i;)a.push(i),i=o.get(i);return new Set(a)}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],k8Nm3:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"independentSelectStrategy",function(){return u}),n.export(r,"independentSingleSelectStrategy",function(){return d}),n.export(r,"leafSelectStrategy",function(){return p}),n.export(r,"leafSingleSelectStrategy",function(){return f}),n.export(r,"classicSelectStrategy",function(){return m});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_object_without_properties"),s=e("@swc/helpers/_/_sliced_to_array"),l=e("@swc/helpers/_/_to_consumable_array"),c=e("vue"),u=function(e){var t={select:function(t){var r=t.id,n=t.value,o=t.selected;if(r=(0,c.toRaw)(r),e&&!n){var a=Array.from(o.entries()).reduce(function(e,t){var r=(0,s._)(t,2),n=r[0];return"on"===r[1]&&e.push(n),e},[]);if(1===a.length&&a[0]===r)return o}return o.set(r,n?"on":"off"),o},in:function(e,r,n){var o=new Map,a=!0,i=!1,s=void 0;try{for(var l,c=(e||[])[Symbol.iterator]();!(a=(l=c.next()).done);a=!0){var u=l.value;o=t.select({id:u,value:!0,selected:new Map(o),children:r,parents:n})}}catch(e){i=!0,s=e}finally{try{a||null==c.return||c.return()}finally{if(i)throw s}}return o},out:function(e){var t=[],r=!0,n=!1,o=void 0;try{for(var a,i=e.entries()[Symbol.iterator]();!(r=(a=i.next()).done);r=!0){var l=(0,s._)(a.value,2),c=l[0],u=l[1];"on"===u&&t.push(c)}}catch(e){n=!0,o=e}finally{try{r||null==i.return||i.return()}finally{if(n)throw o}}return t}};return t},d=function(e){var t=u(e);return{select:function(e){var r=e.selected,n=e.id,s=(0,i._)(e,["selected","id"]);n=(0,c.toRaw)(n);var l=r.has(n)?new Map([[n,r.get(n)]]):new Map;return t.select((0,a._)((0,o._)({},s),{id:n,selected:l}))},in:function(e,r,n){var o=new Map;return(null==e?void 0:e.length)&&(o=t.in(e.slice(0,1),r,n)),o},out:function(e,r,n){return t.out(e,r,n)}}},p=function(e){var t=u(e);return{select:function(e){var r=e.id,n=e.selected,a=e.children,s=(0,i._)(e,["id","selected","children"]);return(r=(0,c.toRaw)(r),a.has(r))?n:t.select((0,o._)({id:r,selected:n,children:a},s))},in:t.in,out:t.out}},f=function(e){var t=d(e);return{select:function(e){var r=e.id,n=e.selected,a=e.children,s=(0,i._)(e,["id","selected","children"]);return(r=(0,c.toRaw)(r),a.has(r))?n:t.select((0,o._)({id:r,selected:n,children:a},s))},in:t.in,out:t.out}},m=function(e){var t={select:function(t){var r=t.id,n=t.value,o=t.selected,a=t.children,i=t.parents;r=(0,c.toRaw)(r);for(var u=new Map(o),d=[r];d.length;){var p=d.shift();o.set((0,c.toRaw)(p),n?"on":"off"),a.has(p)&&d.push.apply(d,(0,l._)(a.get(p)))}for(var f=(0,c.toRaw)(i.get(r));f;){var m=a.get(f),_=m.every(function(e){return"on"===o.get((0,c.toRaw)(e))}),h=m.every(function(e){return!o.has((0,c.toRaw)(e))||"off"===o.get((0,c.toRaw)(e))});o.set(f,_?"on":h?"off":"indeterminate"),f=(0,c.toRaw)(i.get(f))}return e&&!n&&0===Array.from(o.entries()).reduce(function(e,t){var r=(0,s._)(t,2),n=r[0];return"on"===r[1]&&e.push(n),e},[]).length?u:o},in:function(e,r,n){var o=new Map,a=!0,i=!1,s=void 0;try{for(var l,c=(e||[])[Symbol.iterator]();!(a=(l=c.next()).done);a=!0){var u=l.value;o=t.select({id:u,value:!0,selected:new Map(o),children:r,parents:n})}}catch(e){i=!0,s=e}finally{try{a||null==c.return||c.return()}finally{if(i)throw s}}return o},out:function(e,t){var r=[],n=!0,o=!1,a=void 0;try{for(var i,l=e.entries()[Symbol.iterator]();!(n=(i=l.next()).done);n=!0){var c=(0,s._)(i.value,2),u=c[0],d=c[1];"on"!==d||t.has(u)||r.push(u)}}catch(e){o=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(o)throw a}}return r}};return t}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lQTpF:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVListItemProps",function(){return R}),n.export(r,"VListItem",function(){return A});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VListItem.css");var s=e("./VListItemSubtitle.mjs"),l=e("./VListItemTitle.mjs"),c=e("../VAvatar/index.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../VIcon/index.mjs"),p=e("./list.mjs"),f=e("../../composables/border.mjs"),m=e("../../composables/component.mjs"),_=e("../../composables/density.mjs"),h=e("../../composables/dimensions.mjs"),g=e("../../composables/elevation.mjs"),b=e("../../composables/icons.mjs"),y=e("../../composables/nested/nested.mjs"),S=e("../../composables/rounded.mjs"),E=e("../../composables/router.mjs"),x=e("../../composables/tag.mjs"),C=e("../../composables/theme.mjs"),T=e("../../composables/variant.mjs"),w=e("../../directives/ripple/index.mjs"),I=e("../../util/index.mjs"),R=(0,I.propsFactory)((0,a._)({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:b.IconValue,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:b.IconValue,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,subtitle:[String,Number],title:[String,Number],value:null,onClick:(0,I.EventProp)(),onClickOnce:(0,I.EventProp)()},(0,f.makeBorderProps)(),(0,m.makeComponentProps)(),(0,_.makeDensityProps)(),(0,h.makeDimensionProps)(),(0,g.makeElevationProps)(),(0,S.makeRoundedProps)(),(0,E.makeRouterProps)(),(0,x.makeTagProps)(),(0,C.makeThemeProps)(),(0,T.makeVariantProps)({variant:"text"})),"VListItem"),A=(0,I.genericComponent)()({name:"VListItem",directives:{Ripple:w.Ripple},props:R(),emits:{click:function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,a=t.emit,m=(0,E.useLink)(e,r),b=(0,i.computed)(function(){return void 0===e.value?m.href.value:e.value}),x=(0,y.useNestedItem)(b,!1),w=x.activate,R=x.isActivated,A=x.select,N=x.isOpen,k=x.isSelected,O=x.isIndeterminate,D=x.isGroupActivator,j=x.root,P=x.parent,M=x.openOnSelect,L=x.id,V=(0,p.useList)(),F=(0,i.computed)(function(){var t;return!1!==e.active&&(e.active||(null===(t=m.isActive)||void 0===t?void 0:t.value)||(j.activatable.value?R.value:k.value))}),B=(0,i.computed)(function(){return!1!==e.link&&m.isLink.value}),U=(0,i.computed)(function(){return!e.disabled&&!1!==e.link&&(e.link||m.isClickable.value||!!V&&(j.selectable.value||j.activatable.value||null!=e.value))}),G=(0,i.computed)(function(){return e.rounded||e.nav}),q=(0,i.computed)(function(){var t;return null!==(t=e.color)&&void 0!==t?t:e.activeColor}),Y=(0,i.computed)(function(){var t;return{color:F.value&&null!==(t=q.value)&&void 0!==t?t:e.baseColor,variant:e.variant}});(0,i.watch)(function(){var e;return null===(e=m.isActive)||void 0===e?void 0:e.value},function(e){e&&null!=P.value&&j.open(P.value,!0),e&&M(e)},{immediate:!0});var H=(0,C.provideTheme)(e).themeClasses,z=(0,f.useBorder)(e).borderClasses,W=(0,T.useVariant)(Y),K=W.colorClasses,Q=W.colorStyles,$=W.variantClasses,X=(0,_.useDensity)(e).densityClasses,Z=(0,h.useDimension)(e).dimensionStyles,J=(0,g.useElevation)(e).elevationClasses,ee=(0,S.useRounded)(G).roundedClasses,et=(0,i.computed)(function(){return e.lines?"v-list-item--".concat(e.lines,"-line"):void 0}),er=(0,i.computed)(function(){return{isActive:F.value,select:A,isOpen:N.value,isSelected:k.value,isIndeterminate:O.value}});function en(t){var r;a("click",t),U.value&&(null===(r=m.navigate)||void 0===r||r.call(m,t),D||(j.activatable.value?w(!R.value,t):j.selectable.value?A(!k.value,t):null!=e.value&&A(!k.value,t)))}function eo(e){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),e.target.dispatchEvent(new MouseEvent("click",e)))}return(0,I.useRender)(function(){var t=B.value?"a":e.tag,r=n.title||null!=e.title,a=n.subtitle||null!=e.subtitle,p=!!(e.appendAvatar||e.appendIcon),f=!!(p||n.append),_=!!(e.prependAvatar||e.prependIcon),h=!!(_||n.prepend);return null==V||V.updateHasPrepend(h),e.activeColor&&(0,I.deprecate)("active-color",["color","base-color"]),(0,i.withDirectives)((0,i.createVNode)(t,(0,i.mergeProps)({class:["v-list-item",(0,o._)({"v-list-item--active":F.value,"v-list-item--disabled":e.disabled,"v-list-item--link":U.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!h&&(null==V?void 0:V.hasPrepend.value),"v-list-item--slim":e.slim},"".concat(e.activeClass),e.activeClass&&F.value),H.value,z.value,K.value,X.value,J.value,et.value,ee.value,$.value,e.class],style:[Q.value,Z.value,e.style],tabindex:U.value?V?-2:0:void 0,"aria-selected":j.activatable.value?R.value:k.value,onClick:en,onKeydown:U.value&&!B.value&&eo},m.linkProps),{default:function(){var t;return[(0,T.genOverlays)(U.value||F.value,"v-list-item"),h&&(0,i.createVNode)("div",{key:"prepend",class:"v-list-item__prepend"},[n.prepend?(0,i.createVNode)(u.VDefaultsProvider,{key:"prepend-defaults",disabled:!_,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0}}},{default:function(){var e;return[null===(e=n.prepend)||void 0===e?void 0:e.call(n,er.value)]}}):(0,i.createVNode)(i.Fragment,null,[e.prependAvatar&&(0,i.createVNode)(c.VAvatar,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&(0,i.createVNode)(d.VIcon,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)]),(0,i.createVNode)("div",{class:"v-list-item__spacer"},null)]),(0,i.createVNode)("div",{class:"v-list-item__content","data-no-activator":""},[r&&(0,i.createVNode)(l.VListItemTitle,{key:"title"},{default:function(){var t,r;return[null!==(r=null===(t=n.title)||void 0===t?void 0:t.call(n,{title:e.title}))&&void 0!==r?r:e.title]}}),a&&(0,i.createVNode)(s.VListItemSubtitle,{key:"subtitle"},{default:function(){var t,r;return[null!==(r=null===(t=n.subtitle)||void 0===t?void 0:t.call(n,{subtitle:e.subtitle}))&&void 0!==r?r:e.subtitle]}}),null===(t=n.default)||void 0===t?void 0:t.call(n,er.value)]),f&&(0,i.createVNode)("div",{key:"append",class:"v-list-item__append"},[n.append?(0,i.createVNode)(u.VDefaultsProvider,{key:"append-defaults",disabled:!p,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0}}},{default:function(){var e;return[null===(e=n.append)||void 0===e?void 0:e.call(n,er.value)]}}):(0,i.createVNode)(i.Fragment,null,[e.appendIcon&&(0,i.createVNode)(d.VIcon,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&(0,i.createVNode)(c.VAvatar,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)]),(0,i.createVNode)("div",{class:"v-list-item__spacer"},null)])]}}),[[(0,i.resolveDirective)("ripple"),U.value&&e.ripple]])}),{activate:w,isActivated:R,isGroupActivator:D,isSelected:k,list:V,select:A,root:j,id:L}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VListItem.css":"jgdth","./VListItemSubtitle.mjs":"aCGLX","./VListItemTitle.mjs":"jCDU8","../VAvatar/index.mjs":"gBQEK","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","./list.mjs":"eptyw","../../composables/border.mjs":"8SyXK","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/dimensions.mjs":"969Er","../../composables/elevation.mjs":"jNJPe","../../composables/icons.mjs":"71CER","../../composables/nested/nested.mjs":"i5DtG","../../composables/rounded.mjs":"4CR7Z","../../composables/router.mjs":"aK38B","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/variant.mjs":"e5F3N","../../directives/ripple/index.mjs":"5qUsh","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jgdth:[function(){},{}],aCGLX:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVListItemSubtitleProps",function(){return c}),n.export(r,"VListItemSubtitle",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/tag.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({opacity:[Number,String]},(0,i.makeComponentProps)(),(0,s.makeTagProps)()),"VListItemSubtitle"),u=(0,l.genericComponent)()({name:"VListItemSubtitle",props:c(),setup:function(e,t){var r=t.slots;return(0,l.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-list-item-subtitle",e.class],style:[{"--v-list-item-subtitle-opacity":e.opacity},e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jCDU8:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VListItemTitle",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-list-item-title")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1gIl0":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVListSubheaderProps",function(){return u}),n.export(r,"VListSubheader",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/color.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/tag.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({color:String,inset:Boolean,sticky:Boolean,title:String},(0,s.makeComponentProps)(),(0,l.makeTagProps)()),"VListSubheader"),d=(0,c.genericComponent)()({name:"VListSubheader",props:u(),setup:function(e,t){var r=t.slots,n=(0,i.useTextColor)((0,a.toRef)(e,"color")),o=n.textColorClasses,s=n.textColorStyles;return(0,c.useRender)(function(){var t=!!(r.default||e.title);return(0,a.createVNode)(e.tag,{class:["v-list-subheader",{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},o.value,e.class],style:[{textColorStyles:s},e.style]},{default:function(){var n,o;return[t&&(0,a.createVNode)("div",{class:"v-list-subheader__text"},[null!==(o=null===(n=r.default)||void 0===n?void 0:n.call(r))&&void 0!==o?o:e.title])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],duptT:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VDivider",function(){return o.VDivider});var o=e("./VDivider.mjs")},{"./VDivider.mjs":"2pCn5","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2pCn5":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDividerProps",function(){return u}),n.export(r,"VDivider",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VDivider.css");var i=e("../../composables/color.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/theme.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({color:String,inset:Boolean,length:[Number,String],opacity:[Number,String],thickness:[Number,String],vertical:Boolean},(0,s.makeComponentProps)(),(0,l.makeThemeProps)()),"VDivider"),d=(0,c.genericComponent)()({name:"VDivider",props:u(),setup:function(e,t){var r=t.attrs,n=t.slots,o=(0,l.provideTheme)(e).themeClasses,s=(0,i.useTextColor)((0,a.toRef)(e,"color")),u=s.textColorClasses,d=s.textColorStyles,p=(0,a.computed)(function(){var t={};return e.length&&(t[e.vertical?"height":"width"]=(0,c.convertToUnit)(e.length)),e.thickness&&(t[e.vertical?"borderRightWidth":"borderTopWidth"]=(0,c.convertToUnit)(e.thickness)),t});return(0,c.useRender)(function(){var t=(0,a.createVNode)("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},o.value,u.value,e.class],style:[p.value,d.value,{"--v-border-opacity":e.opacity},e.style],"aria-orientation":r.role&&"separator"!==r.role?void 0:e.vertical?"vertical":"horizontal",role:"".concat(r.role||"separator")},null);return n.default?(0,a.createVNode)("div",{class:["v-divider__wrapper",{"v-divider__wrapper--vertical":e.vertical,"v-divider__wrapper--inset":e.inset}]},[t,(0,a.createVNode)("div",{class:"v-divider__content"},[n.default()]),t]):t}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VDivider.css":"iSWnW","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iSWnW:[function(){},{}],c0qmh:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeItemsProps",function(){return s}),n.export(r,"transformItem",function(){return l}),n.export(r,"transformItems",function(){return c}),n.export(r,"useItems",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../util/index.mjs"),s=(0,i.propsFactory)({items:{type:Array,default:function(){return[]}},itemTitle:{type:[String,Array,Function],default:"title"},itemValue:{type:[String,Array,Function],default:"value"},itemChildren:{type:[Boolean,String,Array,Function],default:"children"},itemProps:{type:[Boolean,String,Array,Function],default:"props"},returnObject:Boolean,valueComparator:{type:Function,default:i.deepEqual}},"list-items");function l(e,t){var r,n=(0,i.getPropertyFromItem)(t,e.itemTitle,t),a=(0,i.getPropertyFromItem)(t,e.itemValue,n),s=(0,i.getPropertyFromItem)(t,e.itemChildren),l=!0===e.itemProps?"object"!=typeof t||null==t||Array.isArray(t)?void 0:"children"in t?(0,i.omit)(t,["children"]):t:(0,i.getPropertyFromItem)(t,e.itemProps),u=(0,o._)({title:n,value:a},l);return{title:String(null!==(r=u.title)&&void 0!==r?r:""),value:u.value,props:u,children:Array.isArray(s)?c(e,s):void 0,raw:t}}function c(e,t){var r=[],n=!0,o=!1,a=void 0;try{for(var i,s=t[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var c=i.value;r.push(l(e,c))}}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}return r}function u(e){var t=(0,a.computed)(function(){return c(e,e.items)}),r=(0,a.computed)(function(){return t.value.some(function(e){return null===e.value})});return{items:t,transformIn:function(n){return r.value||(n=n.filter(function(e){return null!==e})),n.map(function(r){return e.returnObject&&"string"==typeof r?l(e,r):t.value.find(function(t){return e.valueComparator(r,t.value)})||l(e,r)})},transformOut:function(t){return e.returnObject?t.map(function(e){return e.raw}):t.map(function(e){return e.value})}}}},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3OZ74":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VListImg",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-list-img")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cfnUd:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVListItemActionProps",function(){return c}),n.export(r,"VListItemAction",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/tag.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({start:Boolean,end:Boolean},(0,i.makeComponentProps)(),(0,s.makeTagProps)()),"VListItemAction"),u=(0,l.genericComponent)()({name:"VListItemAction",props:c(),setup:function(e,t){var r=t.slots;return(0,l.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-list-item-action",{"v-list-item-action--start":e.start,"v-list-item-action--end":e.end},e.class],style:e.style},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jsQEH:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVListItemMediaProps",function(){return c}),n.export(r,"VListItemMedia",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/tag.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({start:Boolean,end:Boolean},(0,i.makeComponentProps)(),(0,s.makeTagProps)()),"VListItemMedia"),u=(0,l.genericComponent)()({name:"VListItemMedia",props:c(),setup:function(e,t){var r=t.slots;return(0,l.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-list-item-media",{"v-list-item-media--start":e.start,"v-list-item-media--end":e.end},e.class],style:e.style},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8Wmwg":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VMenu",function(){return o.VMenu});var o=e("./VMenu.mjs")},{"./VMenu.mjs":"2gYk4","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2gYk4":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVMenuProps",function(){return y}),n.export(r,"VMenu",function(){return S});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("@swc/helpers/_/_ts_generator"),l=e("vue");e("./VMenu.css");var c=e("../transitions/index.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../VOverlay/index.mjs"),p=e("../VOverlay/VOverlay.mjs"),f=e("../../composables/forwardRefs.mjs"),m=e("../../composables/locale.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../composables/scopeId.mjs"),g=e("./shared.mjs"),b=e("../../util/index.mjs"),y=(0,b.propsFactory)((0,a._)({id:String,submenu:Boolean},(0,b.omit)((0,p.makeVOverlayProps)({closeDelay:250,closeOnContentClick:!0,locationStrategy:"connected",location:void 0,openDelay:300,scrim:!1,scrollStrategy:"reposition",transition:{component:c.VDialogTransition}}),["absolute"])),"VMenu"),S=(0,b.genericComponent)()({name:"VMenu",props:y(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,_.useProxiedModel)(e,"modelValue"),a=(0,h.useScopeId)().scopeId,c=(0,m.useRtl)().isRtl,p=(0,b.getUid)(),y=(0,l.computed)(function(){return e.id||"v-menu-".concat(p)}),S=(0,l.ref)(),E=(0,l.inject)(g.VMenuSymbol,null),x=(0,l.shallowRef)(new Set);function C(e){return T.apply(this,arguments)}function T(){return(T=(0,o._)(function(e){var t,r,o,a,i;return(0,s._)(this,function(s){switch(s.label){case 0:return o=e.relatedTarget,a=e.target,[4,(0,l.nextTick)()];case 1:return s.sent(),n.value&&o!==a&&(null===(t=S.value)||void 0===t?void 0:t.contentEl)&&(null===(r=S.value)||void 0===r?void 0:r.globalTop)&&![document,S.value.contentEl].includes(a)&&!S.value.contentEl.contains(a)&&(null===(i=(0,b.focusableChildren)(S.value.contentEl)[0])||void 0===i||i.focus()),[2]}})})).apply(this,arguments)}function w(e){null==E||E.closeParents(e)}function I(t){if(!e.disabled){if("Tab"!==t.key&&("Enter"!==t.key||e.closeOnContentClick))e.submenu&&t.key===(c.value?"ArrowRight":"ArrowLeft")&&(n.value=!1,null===(o=S.value)||void 0===o||null===(r=o.activatorEl)||void 0===r||r.focus());else{var r,o,a,i,s;if("Enter"===t.key&&(t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLInputElement&&t.target.closest("form")))return;"Enter"===t.key&&t.preventDefault(),(0,b.getNextElement)((0,b.focusableChildren)(null===(a=S.value)||void 0===a?void 0:a.contentEl,!1),t.shiftKey?"prev":"next",function(e){return e.tabIndex>=0})||(n.value=!1,null===(s=S.value)||void 0===s||null===(i=s.activatorEl)||void 0===i||i.focus())}}}(0,l.provide)(g.VMenuSymbol,{register:function(){x.value.add(p)},unregister:function(){x.value.delete(p)},closeParents:function(t){setTimeout(function(){var r;x.value.size||e.persistent||null!=t&&(null===(r=S.value)||void 0===r||!r.contentEl||(0,b.isClickInsideElement)(t,S.value.contentEl))||(n.value=!1,null==E||E.closeParents())},40)}}),(0,l.onBeforeUnmount)(function(){return null==E?void 0:E.unregister()}),(0,l.onDeactivated)(function(){return n.value=!1}),(0,l.watch)(n,function(e){e?(null==E||E.register(),document.addEventListener("focusin",C,{once:!0})):(null==E||E.unregister(),document.removeEventListener("focusin",C))});var R=(0,l.computed)(function(){return(0,l.mergeProps)({"aria-haspopup":"menu","aria-expanded":String(n.value),"aria-owns":y.value,onKeydown:function t(r){if(!e.disabled){var o,a=null===(o=S.value)||void 0===o?void 0:o.contentEl;a&&n.value?"ArrowDown"===r.key?(r.preventDefault(),r.stopImmediatePropagation(),(0,b.focusChild)(a,"next")):"ArrowUp"===r.key?(r.preventDefault(),r.stopImmediatePropagation(),(0,b.focusChild)(a,"prev")):e.submenu&&(r.key===(c.value?"ArrowRight":"ArrowLeft")?n.value=!1:r.key===(c.value?"ArrowLeft":"ArrowRight")&&(r.preventDefault(),(0,b.focusChild)(a,"first"))):(e.submenu?r.key===(c.value?"ArrowLeft":"ArrowRight"):["ArrowDown","ArrowUp"].includes(r.key))&&(n.value=!0,r.preventDefault(),setTimeout(function(){return setTimeout(function(){return t(r)})}))}}},e.activatorProps)});return(0,b.useRender)(function(){var t,o=(0,d.VOverlay).filterProps(e);return(0,l.createVNode)(d.VOverlay,(0,l.mergeProps)({ref:S,id:y.value,class:["v-menu",e.class],style:e.style},o,{modelValue:n.value,"onUpdate:modelValue":function(e){return n.value=e},absolute:!0,activatorProps:R.value,location:null!==(t=e.location)&&void 0!==t?t:e.submenu?"end":"bottom","onClick:outside":w,onKeydown:I},a),{activator:r.activator,default:function(){for(var e=arguments.length,t=Array(e),n=0;n10)return(0,u.consoleError)("Infinite loop detected in connectedLocationStrategy"),"break";var e=k(C),t=e.x,r=e.y,n=e.overflows;T+=t,w+=r,l.x+=t,l.y+=r;var o=(0,u.getAxis)(C.anchor),i=n.x.before||n.x.after,s=n.y.before||n.y.after,c=!1;if(["x","y"].forEach(function(e){if("x"===e&&i&&!R.x||"y"===e&&s&&!R.y){var t={anchor:(0,a._)({},C.anchor),origin:(0,a._)({},C.origin)},r="x"===e?"y"===o?u.flipAlign:u.flipSide:"y"===o?u.flipSide:u.flipAlign;t.anchor=r(t.anchor),t.origin=r(t.origin);var l=k(t).overflows;(l[e].before<=n[e].before&&l[e].after<=n[e].after||l[e].before+l[e].after<(n[e].before+n[e].after)/2)&&(C=t,c=R[e]=!0)}}),c)return"continue";n.x.before&&(T+=n.x.before,l.x+=n.x.before),n.x.after&&(T-=n.x.after,l.x-=n.x.after),n.y.before&&(w+=n.y.before,l.y+=n.y.before),n.y.after&&(w-=n.y.after,l.y-=n.y.after);var p=(0,d.getOverflow)(l,x);return I.x=x.width-p.x.before-p.x.after,I.y=x.height-p.y.before-p.y.after,T+=p.x.before,l.x+=p.x.before,w+=p.y.before,l.y+=p.y.before,"break"}(););var N=(0,u.getAxis)(C.anchor);return Object.assign(r.value,{"--v-overlay-anchor-origin":"".concat(C.anchor.side," ").concat(C.anchor.align),transformOrigin:"".concat(C.origin.side," ").concat(C.origin.align),top:(0,u.convertToUnit)(_(w)),left:e.isRtl.value?void 0:(0,u.convertToUnit)(_(T)),right:e.isRtl.value?(0,u.convertToUnit)(_(-T)):void 0,minWidth:(0,u.convertToUnit)("y"===N?Math.min(m.value,i.width):m.value),maxWidth:(0,u.convertToUnit)(h((0,u.clamp)(I.x,m.value===1/0?0:m.value,b.value))),maxHeight:(0,u.convertToUnit)(h((0,u.clamp)(I.y,g.value===1/0?0:g.value,y.value)))}),{available:I,contentBox:l}}function k(e){var t=new d.Box(l),r=(0,c.anchorToPoint)(e.anchor,i),n=(0,c.anchorToPoint)(e.origin,t),o=(0,c.getOffset)(r,n),a=o.x,s=o.y;switch(e.anchor.side){case"top":s-=S.value[0];break;case"bottom":s+=S.value[0];break;case"left":a-=S.value[0];break;case"right":a+=S.value[0]}switch(e.anchor.align){case"top":s-=S.value[1];break;case"bottom":s+=S.value[1];break;case"left":a-=S.value[1];break;case"right":a+=S.value[1]}return t.x+=a,t.y+=s,t.width=Math.min(t.width,b.value),t.height=Math.min(t.height,y.value),{overflows:(0,d.getOverflow)(t,x),x:a,y:s}}}return(0,l.watch)([e.target,e.contentEl],function(e,t){var r=(0,i._)(e,2),n=r[0],o=r[1],a=(0,i._)(t,2),s=a[0],l=a[1];s&&!Array.isArray(s)&&x.unobserve(s),n&&!Array.isArray(n)&&x.observe(n),l&&x.unobserve(l),o&&x.observe(o)},{immediate:!0}),(0,l.onScopeDispose)(function(){x.disconnect()}),(0,l.watch)(function(){return[s.value,p.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight]},function(){return C()}),(0,l.nextTick)(function(){var e=C();if(e){var t=e.available;e.contentBox.height>t.y&&requestAnimationFrame(function(){C(),requestAnimationFrame(function(){C()})})}}),{updateLocation:C}}},f=(0,u.propsFactory)({locationStrategy:{type:[String,Function],default:"static",validator:function(e){return"function"==typeof e||e in p}},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function m(e,t){var r=(0,l.ref)({}),n=(0,l.ref)();function o(e){var t;null===(t=n.value)||void 0===t||t.call(n,e)}return u.IN_BROWSER&&(0,s.useToggleScope)(function(){return!!(t.isActive.value&&e.locationStrategy)},function(a){var i,s;(0,l.watch)(function(){return e.locationStrategy},a),(0,l.onScopeDispose)(function(){window.removeEventListener("resize",o),n.value=void 0}),window.addEventListener("resize",o,{passive:!0}),"function"==typeof e.locationStrategy?n.value=null===(i=e.locationStrategy(t,e,r))||void 0===i?void 0:i.updateLocation:n.value=null===(s=p[e.locationStrategy](t,e,r))||void 0===s?void 0:s.updateLocation}),{contentStyles:r,updateLocation:n}}function _(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function h(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1","../../composables/toggleScope.mjs":"1GDdb",vue:"gHobw","./util/point.mjs":"gYIeb","../../util/index.mjs":"iWvvc","../../util/box.mjs":"ox4Sm","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gYIeb:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t){return{x:e.x+t.x,y:e.y+t.y}}function a(e,t){return{x:e.x-t.x,y:e.y-t.y}}function i(e,t){return{x:e.x-t.x,y:e.y-t.y}}function s(e,t){if("top"===e.side||"bottom"===e.side){var r=e.side,n=e.align;return o({x:"left"===n?0:"center"===n?t.width/2:"right"===n?t.width:n,y:"top"===r?0:"bottom"===r?t.height:r},t)}if("left"===e.side||"right"===e.side){var a=e.side,i=e.align;return o({x:"left"===a?0:"right"===a?t.width:a,y:"top"===i?0:"center"===i?t.height/2:"bottom"===i?t.height:i},t)}return o({x:t.width/2,y:t.height/2},t)}n.defineInteropFlag(r),n.export(r,"elementToViewport",function(){return o}),n.export(r,"viewportToElement",function(){return a}),n.export(r,"getOffset",function(){return i}),n.export(r,"anchorToPoint",function(){return s})},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cbWbk:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeScrollStrategyProps",function(){return d}),n.export(r,"useScrollStrategies",function(){return p});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_to_consumable_array"),i=e("@swc/helpers/_/_ts_generator"),s=e("vue"),l=e("./requestNewFrame.mjs"),c=e("../../util/index.mjs"),u={none:null,close:function(e){var t;f(null!==(t=e.targetEl.value)&&void 0!==t?t:e.contentEl.value,function(t){e.isActive.value=!1})},block:function(e,t){var r,n,o=null===(n=e.root.value)||void 0===n?void 0:n.offsetParent,i=(0,a._)(new Set((0,a._)((0,c.getScrollParents)(e.targetEl.value,t.contained?o:void 0)).concat((0,a._)((0,c.getScrollParents)(e.contentEl.value,t.contained?o:void 0))))).filter(function(e){return!e.classList.contains("v-overlay-scroll-blocked")}),l=window.innerWidth-document.documentElement.offsetWidth,u=(r=o||document.documentElement,(0,c.hasScrollbar)(r)&&r);u&&e.root.value.classList.add("v-overlay--scroll-blocked"),i.forEach(function(e,t){e.style.setProperty("--v-body-scroll-x",(0,c.convertToUnit)(-e.scrollLeft)),e.style.setProperty("--v-body-scroll-y",(0,c.convertToUnit)(-e.scrollTop)),e!==document.documentElement&&e.style.setProperty("--v-scrollbar-offset",(0,c.convertToUnit)(l)),e.classList.add("v-overlay-scroll-blocked")}),(0,s.onScopeDispose)(function(){i.forEach(function(e,t){var r=parseFloat(e.style.getPropertyValue("--v-body-scroll-x")),n=parseFloat(e.style.getPropertyValue("--v-body-scroll-y")),o=e.style.scrollBehavior;e.style.scrollBehavior="auto",e.style.removeProperty("--v-body-scroll-x"),e.style.removeProperty("--v-body-scroll-y"),e.style.removeProperty("--v-scrollbar-offset"),e.classList.remove("v-overlay-scroll-blocked"),e.scrollLeft=-r,e.scrollTop=-n,e.style.scrollBehavior=o}),u&&e.root.value.classList.remove("v-overlay--scroll-blocked")})},reposition:function(e,t,r){var n=!1,o=-1,a=-1;function i(t){(0,l.requestNewFrame)(function(){var r,o,a=performance.now();null===(r=(o=e.updateLocation).value)||void 0===r||r.call(o,t),n=(performance.now()-a)/(1e3/60)>2})}a=("undefined"==typeof requestIdleCallback?function(e){return e()}:requestIdleCallback)(function(){r.run(function(){var t;f(null!==(t=e.targetEl.value)&&void 0!==t?t:e.contentEl.value,function(e){n?(cancelAnimationFrame(o),o=requestAnimationFrame(function(){o=requestAnimationFrame(function(){i(e)})})):i(e)})})}),(0,s.onScopeDispose)(function(){"undefined"!=typeof cancelIdleCallback&&cancelIdleCallback(a),cancelAnimationFrame(o)})}},d=(0,c.propsFactory)({scrollStrategy:{type:[String,Function],default:"block",validator:function(e){return"function"==typeof e||e in u}}},"VOverlay-scroll-strategies");function p(e,t){var r;c.IN_BROWSER&&((0,s.watchEffect)(/*#__PURE__*/(0,o._)(function(){return(0,i._)(this,function(n){switch(n.label){case 0:if(null==r||r.stop(),!(t.isActive.value&&e.scrollStrategy))return[2];return r=(0,s.effectScope)(),[4,new Promise(function(e){return setTimeout(e)})];case 1:return n.sent(),r.active&&r.run(function(){var n;"function"==typeof e.scrollStrategy?e.scrollStrategy(t,e,r):null===(n=u[e.scrollStrategy])||void 0===n||n.call(u,t,e,r)}),[2]}})})),(0,s.onScopeDispose)(function(){null==r||r.stop()}))}function f(e,t){var r=[document].concat((0,a._)((0,c.getScrollParents)(e)));r.forEach(function(e){e.addEventListener("scroll",t,{passive:!0})}),(0,s.onScopeDispose)(function(){r.forEach(function(e){e.removeEventListener("scroll",t)})})}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_to_consumable_array":"glvYM","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","./requestNewFrame.mjs":"blMov","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],blMov:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"requestNewFrame",function(){return i});var o=!0,a=[];function i(e){!o||a.length?a.push(e):(o=!1,e()),function e(){cancelAnimationFrame(s),s=requestAnimationFrame(function(){var t=a.shift();t&&t(),a.length?e():o=!0})}()}var s=-1},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lzaKh:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeActivatorProps",function(){return c}),n.export(r,"useActivator",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("../VMenu/shared.mjs"),i=e("../../composables/delay.mjs"),s=e("vue"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:function(){return{}}},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean},(0,i.makeDelayProps)()),"VOverlay-activator");function u(e,t){var r,n=t.isActive,o=t.isTop,c=t.contentEl,u=(0,l.getCurrentInstance)("useActivator"),p=(0,s.ref)(),f=!1,m=!1,_=!0,h=(0,s.computed)(function(){return e.openOnFocus||null==e.openOnFocus&&e.openOnHover}),g=(0,s.computed)(function(){return e.openOnClick||null==e.openOnClick&&!e.openOnHover&&!h.value}),b=(0,i.useDelay)(e,function(t){t!==(e.openOnHover&&f||h.value&&m)||e.openOnHover&&n.value&&!o.value||(n.value!==t&&(_=!0),n.value=t)}),y=b.runOpenDelay,S=b.runCloseDelay,E=(0,s.ref)(),x={onClick:function(e){e.stopPropagation(),p.value=e.currentTarget||e.target,n.value||(E.value=[e.clientX,e.clientY]),n.value=!n.value},onMouseenter:function(e){var t;null!==(t=e.sourceCapabilities)&&void 0!==t&&t.firesTouchEvents||(f=!0,p.value=e.currentTarget||e.target,y())},onMouseleave:function(e){f=!1,S()},onFocus:function(e){!1!==(0,l.matchesSelector)(e.target,":focus-visible")&&(m=!0,e.stopPropagation(),p.value=e.currentTarget||e.target,y())},onBlur:function(e){m=!1,e.stopPropagation(),S()}},C=(0,s.computed)(function(){var t={};return g.value&&(t.onClick=x.onClick),e.openOnHover&&(t.onMouseenter=x.onMouseenter,t.onMouseleave=x.onMouseleave),h.value&&(t.onFocus=x.onFocus,t.onBlur=x.onBlur),t}),T=(0,s.computed)(function(){var t={};if(e.openOnHover&&(t.onMouseenter=function(){f=!0,y()},t.onMouseleave=function(){f=!1,S()}),h.value&&(t.onFocusin=function(){m=!0,y()},t.onFocusout=function(){m=!1,S()}),e.closeOnContentClick){var r=(0,s.inject)(a.VMenuSymbol,null);t.onClick=function(){n.value=!1,null==r||r.closeParents()}}return t}),w=(0,s.computed)(function(){var t={};return e.openOnHover&&(t.onMouseenter=function(){_&&(f=!0,_=!1,y())},t.onMouseleave=function(){f=!1,S()}),t});(0,s.watch)(o,function(t){var r;!t||(!e.openOnHover||f||h.value&&m)&&(!h.value||m||e.openOnHover&&f)||(null===(r=c.value)||void 0===r?void 0:r.contains(document.activeElement))||(n.value=!1)}),(0,s.watch)(n,function(e){e||setTimeout(function(){E.value=void 0})},{flush:"post"});var I=(0,l.templateRef)();(0,s.watchEffect)(function(){I.value&&(0,s.nextTick)(function(){p.value=I.el})});var R=(0,l.templateRef)(),A=(0,s.computed)(function(){return"cursor"===e.target&&E.value?E.value:R.value?R.el:d(e.target,u)||p.value}),N=(0,s.computed)(function(){return Array.isArray(A.value)?void 0:A.value});return(0,s.watch)(function(){return!!e.activator},function(t){t&&l.IN_BROWSER?(r=(0,s.effectScope)()).run(function(){(function(e,t,r){var n=r.activatorEl,o=r.activatorEvents;function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c(),r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.activatorProps;t&&(0,l.bindProps)(t,(0,s.mergeProps)(o.value,r))}function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c(),r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.activatorProps;t&&(0,l.unbindProps)(t,(0,s.mergeProps)(o.value,r))}function c(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e.activator,o=d(r,t);return n.value=(null==o?void 0:o.nodeType)===Node.ELEMENT_NODE?o:void 0,n.value}(0,s.watch)(function(){return e.activator},function(e,t){if(t&&e!==t){var r=c(t);r&&i(r)}e&&(0,s.nextTick)(function(){return a()})},{immediate:!0}),(0,s.watch)(function(){return e.activatorProps},function(){a()}),(0,s.onScopeDispose)(function(){i()})})(e,u,{activatorEl:p,activatorEvents:C})}):r&&r.stop()},{flush:"post",immediate:!0}),(0,s.onScopeDispose)(function(){null==r||r.stop()}),{activatorEl:p,activatorRef:I,target:A,targetEl:N,targetRef:R,activatorEvents:C,contentEvents:T,scrimEvents:w}}function d(e,t){if(e){if("parent"===e){for(var r,n,o,a=null==t?void 0:null===(o=t.proxy)||void 0===o?void 0:null===(n=o.$el)||void 0===n?void 0:n.parentNode;null==a?void 0:a.hasAttribute("data-no-activator");)a=a.parentNode;r=a}else r="string"==typeof e?document.querySelector(e):"$el"in e?e.$el:e;return r}}},{"@swc/helpers/_/_object_spread":"j01jQ","../VMenu/shared.mjs":"6Lvt8","../../composables/delay.mjs":"bqvBl",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6Lvt8":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VMenuSymbol",function(){return o});var o=Symbol.for("vuetify:v-menu")},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bqvBl:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDelayProps",function(){return a}),n.export(r,"useDelay",function(){return i});var o=e("../util/index.mjs"),a=(0,o.propsFactory)({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function i(e,t){var r=function(){};function n(n){null==r||r();var a=Number(n?e.openDelay:e.closeDelay);return new Promise(function(e){r=(0,o.defer)(a,function(){null==t||t(n),e(n)})})}return{clearDelay:r,runOpenDelay:function(){return n(!0)},runCloseDelay:function(){return n(!1)}}}},{"../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7WUFr":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useHydration",function(){return s});var o=e("./display.mjs"),a=e("vue"),i=e("../util/index.mjs");function s(){if(!i.IN_BROWSER)return(0,a.shallowRef)(!1);if(!(0,o.useDisplay)().ssr)return(0,a.shallowRef)(!0);var e=(0,a.shallowRef)(!1);return(0,a.onMounted)(function(){e.value=!0}),e}},{"./display.mjs":"5LhPp",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jA9Wv:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeLazyProps",function(){return a}),n.export(r,"useLazy",function(){return i});var o=e("vue"),a=(0,e("../util/index.mjs").propsFactory)({eager:Boolean},"lazy");function i(e,t){var r=(0,o.shallowRef)(!1),n=(0,o.computed)(function(){return r.value||e.eager||t.value});return(0,o.watch)(t,function(){return r.value=!0}),{isBooted:r,hasContent:n,onAfterLeave:function(){e.eager||(r.value=!1)}}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aktTM:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useScopeId",function(){return i});var o=e("@swc/helpers/_/_define_property"),a=e("../util/index.mjs");function i(){var e=(0,a.getCurrentInstance)("useScopeId").vnode.scopeId;return{scopeId:e?(0,o._)({},e,""):void 0}}},{"@swc/helpers/_/_define_property":"3xmRB","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"41l9K":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useStack",function(){return c});var o=e("./toggleScope.mjs"),a=e("vue"),i=e("../util/index.mjs"),s=Symbol.for("vuetify:stack"),l=(0,a.reactive)([]);function c(e,t,r){var n=(0,i.getCurrentInstance)("useStack"),c=!r,u=(0,a.inject)(s,void 0),d=(0,a.reactive)({activeChildren:new Set});(0,a.provide)(s,d);var p=(0,a.shallowRef)(+t.value);(0,o.useToggleScope)(e,function(){var e,r=null===(e=l.at(-1))||void 0===e?void 0:e[1];p.value=r?r+10:+t.value,c&&l.push([n.uid,p.value]),null==u||u.activeChildren.add(n.uid),(0,a.onScopeDispose)(function(){if(c){var e=(0,a.toRaw)(l).findIndex(function(e){return e[0]===n.uid});l.splice(e,1)}null==u||u.activeChildren.delete(n.uid)})});var f=(0,a.shallowRef)(!0);c&&(0,a.watchEffect)(function(){var e,t=(null===(e=l.at(-1))||void 0===e?void 0:e[0])===n.uid;setTimeout(function(){return f.value=t})});var m=(0,a.computed)(function(){return!d.activeChildren.size});return{globalTop:(0,a.readonly)(f),localTop:m,stackStyles:(0,a.computed)(function(){return{zIndex:p.value}})}}},{"./toggleScope.mjs":"1GDdb",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4b9xn":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useTeleport",function(){return s});var o=e("@swc/helpers/_/_to_consumable_array"),a=e("vue"),i=e("../util/index.mjs");function s(e){return{teleportTarget:(0,a.computed)(function(){var t=e();if(!0!==t&&i.IN_BROWSER){var r=!1===t?document.body:"string"==typeof t?document.querySelector(t):t;if(null==r){(0,a.warn)("Unable to locate target ".concat(t));return}var n=(0,o._)(r.children).find(function(e){return e.matches(".v-overlay-container")});return n||((n=document.createElement("div")).className="v-overlay-container",r.appendChild(n)),n}})}}},{"@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iwnlq:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"ClickOutside",function(){return l});var o=e("../../util/index.mjs");function a(e,t,r){if(!e||!1===i(e,r))return!1;var n=(0,o.attachedRoot)(t);if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&n.host===e.target)return!1;var a=("object"==typeof r.value&&r.value.include||function(){return[]})();return a.push(t),!a.some(function(t){return null==t?void 0:t.contains(e.target)})}function i(e,t){return("object"==typeof t.value&&t.value.closeConditional||function(){return!0})(e)}function s(e,t){var r=(0,o.attachedRoot)(e);t(document),"undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&t(r)}var l={mounted:function(e,t){var r=function(r){var n;return n="function"==typeof t.value?t.value:t.value.handler,void(r.shadowTarget=r.target,e._clickOutside.lastMousedownWasOutside&&a(r,e,t)&&setTimeout(function(){i(r,t)&&n&&n(r)},0))},n=function(r){e._clickOutside.lastMousedownWasOutside=a(r,e,t)};s(e,function(e){e.addEventListener("click",r,!0),e.addEventListener("mousedown",n,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[t.instance.$.uid]={onClick:r,onMousedown:n}},beforeUnmount:function(e,t){e._clickOutside&&(s(e,function(r){if(r&&(null===(n=e._clickOutside)||void 0===n?void 0:n[t.instance.$.uid])){var n,o=e._clickOutside[t.instance.$.uid],a=o.onClick,i=o.onMousedown;r.removeEventListener("click",a,!0),r.removeEventListener("mousedown",i,!0)}}),delete e._clickOutside[t.instance.$.uid])}};r.default=l},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fZtSV:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"forwardRefs",function(){return l});var o=e("@swc/helpers/_/_to_consumable_array"),a=e("@swc/helpers/_/_type_of"),i=Symbol("Forwarded refs");function s(e,t){for(var r=e;r;){var n=Reflect.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function l(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n1e3&&(G=""),G+=t.key.toLowerCase(),r=a;var i=D.value.find(function(e){return e.title.toLowerCase().startsWith(G)});if(void 0!==i){M.value=[i];var s=q.value.indexOf(i);R.IN_BROWSER&&window.requestAnimationFrame(function(){var e;s>=0&&(null===(e=A.value)||void 0===e||e.scrollToIndex(s))})}}}function Z(t){var r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(!t.props.disabled){if(e.multiple){var n=M.value.findIndex(function(r){return e.valueComparator(r.value,t.value)}),o=null==r?!~n:r;if(~n){var a=o?(0,s._)(M.value).concat([t]):(0,s._)(M.value);a.splice(n,1),M.value=a}else o&&(M.value=(0,s._)(M.value).concat([t]))}else M.value=!1!==r?[t]:[],(0,l.nextTick)(function(){k.value=!1})}}function J(e){var t;(null===(t=z.value)||void 0===t?void 0:t.$el.contains(e.relatedTarget))||(k.value=!1)}function ee(){var t;e.eager&&(null===(t=A.value)||void 0===t||t.calculateVisibleItems())}function et(){var e;B.value&&(null===(e=x.value)||void 0===e||e.focus())}function er(e){B.value=!0}function en(e){if(null==e)M.value=[];else if((0,R.matchesSelector)(x.value,":autofill")||(0,R.matchesSelector)(x.value,":-webkit-autofill")){var t=D.value.find(function(t){return t.title===e});t&&Z(t)}else x.value&&(x.value.value="")}return(0,l.watch)(k,function(){if(!e.hideSelected&&k.value&&M.value.length){var t=q.value.findIndex(function(t){return M.value.some(function(r){return e.valueComparator(r.value,t.value)})});R.IN_BROWSER&&window.requestAnimationFrame(function(){var e;t>=0&&(null===(e=A.value)||void 0===e||e.scrollToIndex(t))})}}),(0,l.watch)(function(){return e.items},function(e,t){!k.value&&B.value&&!t.length&&e.length&&(k.value=!0)}),(0,R.useRender)(function(){var t,r=!!(e.chips||n.chip),y=!!(!e.hideNoData||q.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),S=M.value.length>0,E=(0,g.VTextField).filterProps(e),C=S||!B.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder;return(0,l.createVNode)(g.VTextField,(0,l.mergeProps)({ref:x},E,{modelValue:M.value.map(function(e){return e.props.value}).join(", "),"onUpdate:modelValue":en,focused:B.value,"onUpdate:focused":function(e){return B.value=e},validationValue:M.externalValue,counterValue:L.value,dirty:S,class:["v-select",(t={"v-select--active-menu":k.value,"v-select--chips":!!e.chips},(0,o._)(t,"v-select--".concat(e.multiple?"multiple":"single"),!0),(0,o._)(t,"v-select--selected",M.value.length),(0,o._)(t,"v-select--selection-slot",!!n.selection),t),e.class],style:e.style,inputmode:"none",placeholder:C,"onClick:clear":K,"onMousedown:control":Q,onBlur:J,onKeydown:X,"aria-label":c(U.value),title:c(U.value)}),(0,i._)((0,a._)({},n),{default:function(){return(0,l.createVNode)(l.Fragment,null,[(0,l.createVNode)(h.VMenu,(0,l.mergeProps)({ref:I,modelValue:k.value,"onUpdate:modelValue":function(e){return k.value=e},activator:"parent",contentClass:"v-select__content",disabled:Y.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:ee,onAfterLeave:et},H.value),{default:function(){var t;return[y&&(0,l.createVNode)(_.VList,(0,l.mergeProps)({ref:z,selected:F.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:function(e){return e.preventDefault()},onKeydown:$,onFocusin:er,tabindex:"-1","aria-live":"polite",color:null!==(t=e.itemColor)&&void 0!==t?t:e.color},W,e.listProps),{default:function(){var t,r,o,a;return[null===(t=n["prepend-item"])||void 0===t?void 0:t.call(n),!q.value.length&&!e.hideNoData&&(null!==(a=null===(r=n["no-data"])||void 0===r?void 0:r.call(n))&&void 0!==a?a:(0,l.createVNode)(_.VListItem,{title:c(e.noDataText)},null)),(0,l.createVNode)(b.VVirtualScroll,{ref:A,renderless:!0,items:q.value},{default:function(t){var r,o,a=t.item,i=t.index,s=t.itemRef,c=(0,l.mergeProps)(a.props,{ref:s,key:i,onClick:function(){return Z(a,null)}});return null!==(o=null===(r=n.item)||void 0===r?void 0:r.call(n,{item:a,index:i,props:c}))&&void 0!==o?o:(0,l.createVNode)(_.VListItem,(0,l.mergeProps)(c,{role:"option"}),{prepend:function(t){var r=t.isSelected;return(0,l.createVNode)(l.Fragment,null,[e.multiple&&!e.hideSelected?(0,l.createVNode)(d.VCheckboxBtn,{key:a.value,modelValue:r,ripple:!1,tabindex:"-1"},null):void 0,a.props.prependAvatar&&(0,l.createVNode)(u.VAvatar,{image:a.props.prependAvatar},null),a.props.prependIcon&&(0,l.createVNode)(m.VIcon,{icon:a.props.prependIcon},null)])}})}}),null===(o=n["append-item"])||void 0===o?void 0:o.call(n)]}})]}}),M.value.map(function(t,o){var a=function(e){e.stopPropagation(),e.preventDefault(),Z(t,!1)},i={"onClick:close":a,onKeydown:function(e){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),e.stopPropagation(),a(e))},onMousedown:function(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},s=r?!!n.chip:!!n.selection,c=s?(0,R.ensureValidVNode)(r?n.chip({item:t,index:o,props:i}):n.selection({item:t,index:o})):void 0;if(!s||c)return(0,l.createVNode)("div",{key:t.value,class:"v-select__selection"},[r?n.chip?(0,l.createVNode)(f.VDefaultsProvider,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:t.title}}},{default:function(){return[c]}}):(0,l.createVNode)(p.VChip,(0,l.mergeProps)({key:"chip",closable:e.closableChips,size:"small",text:t.title,disabled:t.props.disabled},i),null):null!=c?c:(0,l.createVNode)("span",{class:"v-select__selection-text"},[t.title,e.multiple&&oparseFloat(e.max)},e.class],style:e.style},[r.default?r.default({counter:n.value,max:e.max,value:e.value}):n.value]),[[a.vShow,e.active]])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VCounter.css":"9MQn7","../transitions/index.mjs":"9jbNO","../../composables/component.mjs":"c32AV","../../composables/transition.mjs":"4059v","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9MQn7":[function(){},{}],hCPVS:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFieldProps",function(){return x}),n.export(r,"VField",function(){return C}),n.export(r,"filterFieldProps",function(){return T});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("vue");e("./VField.css");var l=e("./VFieldLabel.mjs"),c=e("../transitions/index.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../VInput/InputIcon.mjs"),p=e("../../composables/color.mjs"),f=e("../../composables/component.mjs"),m=e("../../composables/focus.mjs"),_=e("../../composables/icons.mjs"),h=e("../../composables/loader.mjs"),g=e("../../composables/locale.mjs"),b=e("../../composables/rounded.mjs"),y=e("../../composables/theme.mjs"),S=e("../../util/index.mjs"),E=["underlined","outlined","filled","solo","solo-inverted","solo-filled","plain"],x=(0,S.propsFactory)((0,a._)({appendInnerIcon:_.IconValue,bgColor:String,clearable:Boolean,clearIcon:{type:_.IconValue,default:"$clear"},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},error:Boolean,flat:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:_.IconValue,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:function(e){return E.includes(e)}},"onClick:clear":(0,S.EventProp)(),"onClick:appendInner":(0,S.EventProp)(),"onClick:prependInner":(0,S.EventProp)()},(0,f.makeComponentProps)(),(0,h.makeLoaderProps)(),(0,b.makeRoundedProps)(),(0,y.makeThemeProps)()),"VField"),C=(0,S.genericComponent)()({name:"VField",inheritAttrs:!1,props:(0,a._)({id:String},(0,m.makeFocusProps)(),x()),emits:{"update:focused":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=(t.emit,t.slots),f=(0,y.provideTheme)(e).themeClasses,_=(0,h.useLoader)(e).loaderClasses,E=(0,m.useFocus)(e),x=E.focusClasses,C=E.isFocused,T=E.focus,w=E.blur,I=(0,d.useInputIcon)(e).InputIcon,R=(0,b.useRounded)(e).roundedClasses,A=(0,g.useRtl)().rtlClasses,N=(0,s.computed)(function(){return e.dirty||e.active}),k=(0,s.computed)(function(){return!e.singleLine&&!!(e.label||n.label)}),O=(0,S.getUid)(),D=(0,s.computed)(function(){return e.id||"input-".concat(O)}),j=(0,s.computed)(function(){return"".concat(D.value,"-messages")}),P=(0,s.ref)(),M=(0,s.ref)(),L=(0,s.ref)(),V=(0,s.computed)(function(){return["plain","underlined"].includes(e.variant)}),F=(0,p.useBackgroundColor)((0,s.toRef)(e,"bgColor")),B=F.backgroundColorClasses,U=F.backgroundColorStyles,G=(0,p.useTextColor)((0,s.computed)(function(){return e.error||e.disabled?void 0:N.value&&C.value?e.color:e.baseColor})),q=G.textColorClasses,Y=G.textColorStyles;(0,s.watch)(N,function(e){if(k.value){var t=P.value.$el,r=M.value.$el;requestAnimationFrame(function(){var n=(0,S.nullifyTransforms)(t),o=r.getBoundingClientRect(),i=o.x-n.x,s=o.y-n.y-(n.height/2-o.height/2),l=o.width/.75,c=Math.abs(l-n.width)>1?{maxWidth:(0,S.convertToUnit)(l)}:void 0,u=getComputedStyle(t),d=getComputedStyle(r),p=1e3*parseFloat(u.transitionDuration)||150,f=parseFloat(d.getPropertyValue("--v-field-label-scale")),m=d.getPropertyValue("color");t.style.visibility="visible",r.style.visibility="hidden",(0,S.animate)(t,(0,a._)({transform:"translate(".concat(i,"px, ").concat(s,"px) scale(").concat(f,")"),color:m},c),{duration:p,easing:S.standardEasing,direction:e?"normal":"reverse"}).finished.then(function(){t.style.removeProperty("visibility"),r.style.removeProperty("visibility")})})}},{flush:"post"});var H=(0,s.computed)(function(){return{isActive:N,isFocused:C,controlRef:L,blur:w,focus:T}});function z(e){e.target!==document.activeElement&&e.preventDefault()}function W(t){var r;("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t.stopPropagation(),null===(r=e["onClick:clear"])||void 0===r||r.call(e,new MouseEvent("click")))}return(0,S.useRender)(function(){var t,d,p,m,g="outlined"===e.variant,b=!!(n["prepend-inner"]||e.prependInnerIcon),y=!!(e.clearable||n.clear),S=!!(n["append-inner"]||e.appendInnerIcon||y),E=function(){return n.label?n.label((0,i._)((0,a._)({},H.value),{label:e.label,props:{for:D.value}})):e.label};return(0,s.createVNode)("div",(0,s.mergeProps)({class:["v-field",(0,o._)({"v-field--active":N.value,"v-field--appended":S,"v-field--center-affix":null!==(m=e.centerAffix)&&void 0!==m?m:!V.value,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--flat":e.flat,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":b,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,"v-field--no-label":!E()},"v-field--variant-".concat(e.variant),!0),f.value,B.value,x.value,_.value,R.value,A.value,e.class],style:[U.value,e.style],onClick:z},r),[(0,s.createVNode)("div",{class:"v-field__overlay"},null),(0,s.createVNode)(h.LoaderSlot,{name:"v-field",active:!!e.loading,color:e.error?"error":"string"==typeof e.loading?e.loading:e.color},{default:n.loader}),b&&(0,s.createVNode)("div",{key:"prepend",class:"v-field__prepend-inner"},[e.prependInnerIcon&&(0,s.createVNode)(I,{key:"prepend-icon",name:"prependInner"},null),null===(t=n["prepend-inner"])||void 0===t?void 0:t.call(n,H.value)]),(0,s.createVNode)("div",{class:"v-field__field","data-no-activator":""},[["filled","solo","solo-inverted","solo-filled"].includes(e.variant)&&k.value&&(0,s.createVNode)(l.VFieldLabel,{key:"floating-label",ref:M,class:[q.value],floating:!0,for:D.value,style:Y.value},{default:function(){return[E()]}}),(0,s.createVNode)(l.VFieldLabel,{ref:P,for:D.value},{default:function(){return[E()]}}),null===(d=n.default)||void 0===d?void 0:d.call(n,(0,i._)((0,a._)({},H.value),{props:{id:D.value,class:"v-field__input","aria-describedby":j.value},focus:T,blur:w}))]),y&&(0,s.createVNode)(c.VExpandXTransition,{key:"clear"},{default:function(){return[(0,s.withDirectives)((0,s.createVNode)("div",{class:"v-field__clearable",onMousedown:function(e){e.preventDefault(),e.stopPropagation()}},[(0,s.createVNode)(u.VDefaultsProvider,{defaults:{VIcon:{icon:e.clearIcon}}},{default:function(){return[n.clear?n.clear((0,i._)((0,a._)({},H.value),{props:{onKeydown:W,onFocus:T,onBlur:w,onClick:e["onClick:clear"]}})):(0,s.createVNode)(I,{name:"clear",onKeydown:W,onFocus:T,onBlur:w},null)]}})]),[[s.vShow,e.dirty]])]}}),S&&(0,s.createVNode)("div",{key:"append",class:"v-field__append-inner"},[null===(p=n["append-inner"])||void 0===p?void 0:p.call(n,H.value),e.appendInnerIcon&&(0,s.createVNode)(I,{key:"append-icon",name:"appendInner"},null)]),(0,s.createVNode)("div",{class:["v-field__outline",q.value],style:Y.value},[g&&(0,s.createVNode)(s.Fragment,null,[(0,s.createVNode)("div",{class:"v-field__outline__start"},null),k.value&&(0,s.createVNode)("div",{class:"v-field__outline__notch"},[(0,s.createVNode)(l.VFieldLabel,{ref:M,floating:!0,for:D.value},{default:function(){return[E()]}})]),(0,s.createVNode)("div",{class:"v-field__outline__end"},null)]),V.value&&k.value&&(0,s.createVNode)(l.VFieldLabel,{ref:M,floating:!0,for:D.value},{default:function(){return[E()]}})])])}),{controlRef:L}}});function T(e){var t=Object.keys(C.props).filter(function(e){return!(0,S.isOn)(e)&&"class"!==e&&"style"!==e});return(0,S.pick)(e,t)}},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VField.css":"gbl90","./VFieldLabel.mjs":"atbl8","../transitions/index.mjs":"9jbNO","../VDefaultsProvider/index.mjs":"9aMue","../VInput/InputIcon.mjs":"dmmta","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/focus.mjs":"bmd72","../../composables/icons.mjs":"71CER","../../composables/loader.mjs":"hjVll","../../composables/locale.mjs":"8eTqB","../../composables/rounded.mjs":"4CR7Z","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gbl90:[function(){},{}],atbl8:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFieldLabelProps",function(){return c}),n.export(r,"VFieldLabel",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VLabel/index.mjs"),s=e("../../composables/component.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({floating:Boolean},(0,s.makeComponentProps)()),"VFieldLabel"),u=(0,l.genericComponent)()({name:"VFieldLabel",props:c(),setup:function(e,t){var r=t.slots;return(0,l.useRender)(function(){return(0,a.createVNode)(i.VLabel,{class:["v-field-label",{"v-field-label--floating":e.floating},e.class],style:e.style,"aria-hidden":e.floating||void 0},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VLabel/index.mjs":"klORW","../../composables/component.mjs":"c32AV","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"41b6b":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VVirtualScroll",function(){return o.VVirtualScroll});var o=e("./VVirtualScroll.mjs")},{"./VVirtualScroll.mjs":"ciPbs","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ciPbs:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVVirtualScrollProps",function(){return p}),n.export(r,"VVirtualScroll",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VVirtualScroll.css");var i=e("./VVirtualScrollItem.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/dimensions.mjs"),c=e("../../composables/toggleScope.mjs"),u=e("../../composables/virtual.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)((0,o._)({items:{type:Array,default:function(){return[]}},renderless:Boolean},(0,u.makeVirtualProps)(),(0,s.makeComponentProps)(),(0,l.makeDimensionProps)()),"VVirtualScroll"),f=(0,d.genericComponent)()({name:"VVirtualScroll",props:p(),setup:function(e,t){var r=t.slots,n=(0,d.getCurrentInstance)("VVirtualScroll"),s=(0,l.useDimension)(e).dimensionStyles,p=(0,u.useVirtual)(e,(0,a.toRef)(e,"items")),f=p.calculateVisibleItems,m=p.containerRef,_=p.markerRef,h=p.handleScroll,g=p.handleScrollend,b=p.handleItemResize,y=p.scrollToIndex,S=p.paddingTop,E=p.paddingBottom,x=p.computedItems;return(0,c.useToggleScope)(function(){return e.renderless},function(){var e=function(){var e,t,r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=r?"addEventListener":"removeEventListener";m.value===document.documentElement?(document[n]("scroll",h,{passive:!0}),document[n]("scrollend",g)):(null===(e=m.value)||void 0===e||e[n]("scroll",h,{passive:!0}),null===(t=m.value)||void 0===t||t[n]("scrollend",g))};(0,a.onMounted)(function(){m.value=(0,d.getScrollParent)(n.vnode.el,!0),e(!0)}),(0,a.onScopeDispose)(e)}),(0,d.useRender)(function(){var t=x.value.map(function(t){return(0,a.createVNode)(i.VVirtualScrollItem,{key:t.index,renderless:e.renderless,"onUpdate:height":function(e){return b(t.index,e)}},{default:function(e){var n;return null===(n=r.default)||void 0===n?void 0:n.call(r,(0,o._)({item:t.raw,index:t.index},e))}})});return e.renderless?(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)("div",{ref:_,class:"v-virtual-scroll__spacer",style:{paddingTop:(0,d.convertToUnit)(S.value)}},null),t,(0,a.createVNode)("div",{class:"v-virtual-scroll__spacer",style:{paddingBottom:(0,d.convertToUnit)(E.value)}},null)]):(0,a.createVNode)("div",{ref:m,class:["v-virtual-scroll",e.class],onScrollPassive:h,onScrollend:g,style:[s.value,e.style]},[(0,a.createVNode)("div",{ref:_,class:"v-virtual-scroll__container",style:{paddingTop:(0,d.convertToUnit)(S.value),paddingBottom:(0,d.convertToUnit)(E.value)}},[t])])}),{calculateVisibleItems:f,scrollToIndex:y}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VVirtualScroll.css":"di1PE","./VVirtualScrollItem.mjs":"aTkVL","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/toggleScope.mjs":"1GDdb","../../composables/virtual.mjs":"j89MU","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],di1PE:[function(){},{}],aTkVL:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVVirtualScrollItemProps",function(){return c}),n.export(r,"VVirtualScrollItem",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/resizeObserver.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({renderless:Boolean},(0,i.makeComponentProps)()),"VVirtualScrollItem"),u=(0,l.genericComponent)()({name:"VVirtualScrollItem",inheritAttrs:!1,props:c(),emits:{"update:height":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.emit,o=t.slots,i=(0,s.useResizeObserver)(void 0,"border"),c=i.resizeRef,u=i.contentRect;(0,a.watch)(function(){var e;return null===(e=u.value)||void 0===e?void 0:e.height},function(e){null!=e&&n("update:height",e)}),(0,l.useRender)(function(){var t,n;return e.renderless?(0,a.createVNode)(a.Fragment,null,[null===(t=o.default)||void 0===t?void 0:t.call(o,{itemRef:c})]):(0,a.createVNode)("div",(0,a.mergeProps)({ref:c,class:["v-virtual-scroll__item",e.class],style:e.style},r),[null===(n=o.default)||void 0===n?void 0:n.call(o)])})}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/resizeObserver.mjs":"kyBb2","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],j89MU:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVirtualProps",function(){return l}),n.export(r,"useVirtual",function(){return c});var o=e("./display.mjs"),a=e("./resizeObserver.mjs"),i=e("vue"),s=e("../util/index.mjs"),l=(0,s.propsFactory)({itemHeight:{type:[Number,String],default:null},height:[Number,String]},"virtual");function c(e,t){var r=(0,o.useDisplay)(),n=(0,i.shallowRef)(0);(0,i.watchEffect)(function(){n.value=parseFloat(e.itemHeight||0)});var l=(0,i.shallowRef)(0),c=(0,i.shallowRef)(Math.ceil((parseInt(e.height)||r.height.value)/(n.value||16))||1),d=(0,i.shallowRef)(0),p=(0,i.shallowRef)(0),f=(0,i.ref)(),m=(0,i.ref)(),_=0,h=(0,a.useResizeObserver)(),g=h.resizeRef,b=h.contentRect;(0,i.watchEffect)(function(){g.value=f.value});var y=(0,i.computed)(function(){var t;return f.value===document.documentElement?r.height.value:(null===(t=b.value)||void 0===t?void 0:t.height)||parseInt(e.height)||0}),S=(0,i.computed)(function(){return!!(f.value&&m.value&&y.value&&n.value)}),E=Array.from({length:t.value.length}),x=Array.from({length:t.value.length}),C=(0,i.shallowRef)(0),T=-1,w=(0,s.debounce)(function(){var e=performance.now();x[0]=0;for(var r=t.value.length,o=1;o<=r-1;o++)x[o]=(x[o-1]||0)+(E[o-1]||n.value);C.value=Math.max(C.value,performance.now()-e)},C),I=(0,i.watch)(S,function(e){e&&(I(),_=m.value.offsetTop,w.immediate(),D(),~T&&(0,i.nextTick)(function(){s.IN_BROWSER&&window.requestAnimationFrame(function(){P(T),T=-1})}))});function R(e){return x[e=(0,s.clamp)(e,0,t.value.length-1)]||0}(0,i.onScopeDispose)(function(){w.clear()});var A=0,N=0,k=0;(0,i.watch)(y,function(e,t){t&&(D(),ec.value)&&(Math.max(R(l.value)-R(o),R(i)-R(c.value))>100?(l.value=o,c.value=i):(o<=0&&(l.value=o),i>=t.value.length&&(c.value=i))),d.value=R(l.value),p.value=R(t.value.length)-R(c.value)}}function P(e){var t=R(e);f.value&&(!e||t)?f.value.scrollTop=t:T=e}var M=(0,i.computed)(function(){return t.value.slice(l.value,c.value).map(function(e,t){return{raw:e,index:t+l.value}})});return(0,i.watch)(t,function(){E=Array.from({length:t.value.length}),x=Array.from({length:t.value.length}),w.immediate(),D()},{deep:!0}),{calculateVisibleItems:D,containerRef:f,markerRef:m,computedItems:M,paddingTop:d,paddingBottom:p,scrollToIndex:P,handleScroll:function(){if(f.value&&m.value){var e=f.value.scrollTop,t=performance.now();t-k>500?(N=Math.sign(e-A),_=m.value.offsetTop):N=e-A,A=e,k=t,D()}},handleScrollend:function(){f.value&&m.value&&(N=0,k=0,D())},handleItemResize:function(e,t){var r=E[e],o=n.value;n.value=o?Math.min(n.value,t):t,(r!==t||o!==n.value)&&(E[e]=t,w())}}}function u(e,t){var r=e.length-1,n=0,o=0,a=null,i=-1;if(e[r]>1])>t)r=o-1;else if(a :not(.v-virtual-scroll__spacer)"),"PageDown"===r.key||"Home"===r.key){u=s.getBoundingClientRect().top,d=!0,p=!1,f=void 0;try{for(m=c[Symbol.iterator]();!(d=(_=m.next()).done);d=!0)if((h=_.value).getBoundingClientRect().top>=u){h.focus();break}}catch(e){p=!0,f=e}finally{try{d||null==m.return||m.return()}finally{if(p)throw f}}}else{g=s.getBoundingClientRect().bottom,b=!0,y=!1,S=void 0;try{for(E=(0,a._)(c).reverse()[Symbol.iterator]();!(b=(x=E.next()).done);b=!0)if((C=x.value).getBoundingClientRect().bottom<=g){C.focus();break}}catch(e){y=!0,S=e}finally{try{b||null==E.return||E.return()}finally{if(y)throw S}}}return[2]}})})).apply(this,arguments)}return{onScrollPassive:function(e){cancelAnimationFrame(r),n.value=!0,r=requestAnimationFrame(function(){r=requestAnimationFrame(function(){n.value=!1})})},onKeydown:function(e){return c.apply(this,arguments)}}}},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_to_consumable_array":"glvYM","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cSNwO:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"defaultFilter",function(){return l}),n.export(r,"makeFilterProps",function(){return c}),n.export(r,"filterItems",function(){return u}),n.export(r,"useFilter",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("vue"),s=e("../util/index.mjs"),l=function(e,t,r){return null==e||null==t?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase())},c=(0,s.propsFactory)({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function u(e,t,r){var n=[],i=null!==(C=null==r?void 0:r.default)&&void 0!==C?C:l,c=null!=r&&!!r.filterKeys&&(0,s.wrapInArray)(r.filterKeys),u=Object.keys(null!==(T=null==r?void 0:r.customKeyFilter)&&void 0!==T?T:{}).length;if(!(null==e?void 0:e.length))return n;t:for(var d=0;d0)&&!(null==r?void 0:r.noFilter)){if("object"==typeof f){var y=c||Object.keys(_),S=!0,E=!1,x=void 0;try{for(var C,T,w,I=y[Symbol.iterator]();!(S=(w=I.next()).done);S=!0){var R,A=w.value,N=(0,s.getPropertyFromItem)(_,A),k=null==r?void 0:null===(R=r.customKeyFilter)||void 0===R?void 0:R[A];if(b=k?k(N,t,f):i(N,t,f),-1!==b&&!1!==b)k?h[A]=b:g[A]=b;else if((null==r?void 0:r.filterMode)==="every")continue t}}catch(e){E=!0,x=e}finally{try{S||null==I.return||I.return()}finally{if(E)throw x}}}else -1!==(b=i(f,t,f))&&!1!==b&&(g.title=b);var O=Object.keys(g).length,D=Object.keys(h).length;if(!O&&!D||(null==r?void 0:r.filterMode)==="union"&&D!==u&&!O||(null==r?void 0:r.filterMode)==="intersection"&&(D!==u||!O))continue}n.push({index:d,matches:(0,o._)({},g,h)})}return n}function d(e,t,r,n){var a=(0,i.ref)([]),s=(0,i.ref)(new Map),l=(0,i.computed)(function(){return(null==n?void 0:n.transform)?(0,i.unref)(t).map(function(e){return[e,n.transform(e)]}):(0,i.unref)(t)});return(0,i.watchEffect)(function(){var c="function"==typeof r?r():(0,i.unref)(r),d="string"!=typeof c&&"number"!=typeof c?"":String(c),p=u(l.value,d,{customKeyFilter:(0,o._)({},e.customKeyFilter,(0,i.unref)(null==n?void 0:n.customKeyFilter)),default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),f=(0,i.unref)(t),m=[],_=new Map;p.forEach(function(e){var t=e.index,r=e.matches,n=f[t];m.push(n),_.set(n.value,r)}),a.value=m,s.value=_}),{filteredItems:a,filteredMatches:s,getMatches:function(e){return s.value.get(e.value)}}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],c4MFU:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBadge",function(){return o.VBadge});var o=e("./VBadge.mjs")},{"./VBadge.mjs":"9udSR","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9udSR":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBadgeProps",function(){return b}),n.export(r,"VBadge",function(){return y});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("vue");e("./VBadge.css");var s=e("../VIcon/index.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/icons.mjs"),d=e("../../composables/locale.mjs"),p=e("../../composables/location.mjs"),f=e("../../composables/rounded.mjs"),m=e("../../composables/tag.mjs"),_=e("../../composables/theme.mjs"),h=e("../../composables/transition.mjs"),g=e("../../util/index.mjs"),b=(0,g.propsFactory)((0,o._)({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:u.IconValue,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String},(0,c.makeComponentProps)(),(0,p.makeLocationProps)({location:"top end"}),(0,f.makeRoundedProps)(),(0,m.makeTagProps)(),(0,_.makeThemeProps)(),(0,h.makeTransitionProps)({transition:"scale-rotate-transition"})),"VBadge"),y=(0,g.genericComponent)()({name:"VBadge",inheritAttrs:!1,props:b(),setup:function(e,t){var r=(0,l.useBackgroundColor)((0,i.toRef)(e,"color")),n=r.backgroundColorClasses,o=r.backgroundColorStyles,c=(0,f.useRounded)(e).roundedClasses,u=(0,d.useLocale)().t,m=(0,l.useTextColor)((0,i.toRef)(e,"textColor")),b=m.textColorClasses,y=m.textColorStyles,S=(0,_.useTheme)().themeClasses,E=(0,p.useLocation)(e,!0,function(t){var r,n;return(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(t)?+(null!==(r=e.offsetY)&&void 0!==r?r:0):["left","right"].includes(t)?+(null!==(n=e.offsetX)&&void 0!==n?n:0):0)}).locationStyles;return(0,g.useRender)(function(){var r=Number(e.content),l=!e.max||isNaN(r)?e.content:r<=+e.max?r:"".concat(e.max,"+"),d=(0,a._)((0,g.pickWithRest)(t.attrs,["aria-atomic","aria-label","aria-live","role","title"]),2),p=d[0],f=d[1];return(0,i.createVNode)(e.tag,(0,i.mergeProps)({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},f,{style:e.style}),{default:function(){var a,d;return[(0,i.createVNode)("div",{class:"v-badge__wrapper"},[null===(a=(d=t.slots).default)||void 0===a?void 0:a.call(d),(0,i.createVNode)(h.MaybeTransition,{transition:e.transition},{default:function(){var a,d;return[(0,i.withDirectives)((0,i.createVNode)("span",(0,i.mergeProps)({class:["v-badge__badge",S.value,n.value,c.value,b.value],style:[o.value,y.value,e.inline?{}:E.value],"aria-atomic":"true","aria-label":u(e.label,r),"aria-live":"polite",role:"status"},p),[e.dot?void 0:t.slots.badge?null===(a=(d=t.slots).badge)||void 0===a?void 0:a.call(d):e.icon?(0,i.createVNode)(s.VIcon,{icon:e.icon},null):l]),[[i.vShow,e.modelValue]])]}})])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VBadge.css":"ias1x","../VIcon/index.mjs":"kpG2s","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/location.mjs":"S9pdd","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/transition.mjs":"4059v","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ias1x:[function(){},{}],aTjJF:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBanner",function(){return o.VBanner}),n.export(r,"VBannerActions",function(){return a.VBannerActions}),n.export(r,"VBannerText",function(){return i.VBannerText});var o=e("./VBanner.mjs"),a=e("./VBannerActions.mjs"),i=e("./VBannerText.mjs")},{"./VBanner.mjs":"eVz4c","./VBannerActions.mjs":"7oQrO","./VBannerText.mjs":"3cmNc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],eVz4c:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBannerProps",function(){return I}),n.export(r,"VBanner",function(){return R});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VBanner.css");var s=e("./VBannerActions.mjs"),l=e("./VBannerText.mjs"),c=e("../VAvatar/index.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../../composables/border.mjs"),p=e("../../composables/color.mjs"),f=e("../../composables/component.mjs"),m=e("../../composables/defaults.mjs"),_=e("../../composables/density.mjs"),h=e("../../composables/dimensions.mjs"),g=e("../../composables/display.mjs"),b=e("../../composables/elevation.mjs"),y=e("../../composables/icons.mjs"),S=e("../../composables/location.mjs"),E=e("../../composables/position.mjs"),x=e("../../composables/rounded.mjs"),C=e("../../composables/tag.mjs"),T=e("../../composables/theme.mjs"),w=e("../../util/index.mjs"),I=(0,w.propsFactory)((0,a._)({avatar:String,bgColor:String,color:String,icon:y.IconValue,lines:String,stacked:Boolean,sticky:Boolean,text:String},(0,d.makeBorderProps)(),(0,f.makeComponentProps)(),(0,_.makeDensityProps)(),(0,h.makeDimensionProps)(),(0,g.makeDisplayProps)({mobile:null}),(0,b.makeElevationProps)(),(0,S.makeLocationProps)(),(0,E.makePositionProps)(),(0,x.makeRoundedProps)(),(0,C.makeTagProps)(),(0,T.makeThemeProps)()),"VBanner"),R=(0,w.genericComponent)()({name:"VBanner",props:I(),setup:function(e,t){var r=t.slots,n=(0,p.useBackgroundColor)(e,"bgColor"),a=n.backgroundColorClasses,f=n.backgroundColorStyles,y=(0,d.useBorder)(e).borderClasses,C=(0,_.useDensity)(e).densityClasses,I=(0,g.useDisplay)(e),R=I.displayClasses,A=I.mobile,N=(0,h.useDimension)(e).dimensionStyles,k=(0,b.useElevation)(e).elevationClasses,O=(0,S.useLocation)(e).locationStyles,D=(0,E.usePosition)(e).positionClasses,j=(0,x.useRounded)(e).roundedClasses,P=(0,T.provideTheme)(e).themeClasses,M=(0,i.toRef)(e,"color"),L=(0,i.toRef)(e,"density");(0,m.provideDefaults)({VBannerActions:{color:M,density:L}}),(0,w.useRender)(function(){var t=!!(e.text||r.text),n=!!(e.avatar||e.icon),d=!!(n||r.prepend);return(0,i.createVNode)(e.tag,{class:["v-banner",(0,o._)({"v-banner--stacked":e.stacked||A.value,"v-banner--sticky":e.sticky},"v-banner--".concat(e.lines,"-line"),!!e.lines),P.value,a.value,y.value,C.value,R.value,k.value,D.value,j.value,e.class],style:[f.value,N.value,O.value,e.style],role:"banner"},{default:function(){var o;return[d&&(0,i.createVNode)("div",{key:"prepend",class:"v-banner__prepend"},[r.prepend?(0,i.createVNode)(u.VDefaultsProvider,{key:"prepend-defaults",disabled:!n,defaults:{VAvatar:{color:M.value,density:L.value,icon:e.icon,image:e.avatar}}},r.prepend):(0,i.createVNode)(c.VAvatar,{key:"prepend-avatar",color:M.value,density:L.value,icon:e.icon,image:e.avatar},null)]),(0,i.createVNode)("div",{class:"v-banner__content"},[t&&(0,i.createVNode)(l.VBannerText,{key:"text"},{default:function(){var t,n;return[null!==(n=null===(t=r.text)||void 0===t?void 0:t.call(r))&&void 0!==n?n:e.text]}}),null===(o=r.default)||void 0===o?void 0:o.call(r)]),r.actions&&(0,i.createVNode)(s.VBannerActions,{key:"actions"},r.actions)]}})})}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VBanner.css":"3OJ1O","./VBannerActions.mjs":"7oQrO","./VBannerText.mjs":"3cmNc","../VAvatar/index.mjs":"gBQEK","../VDefaultsProvider/index.mjs":"9aMue","../../composables/border.mjs":"8SyXK","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/density.mjs":"3HkdI","../../composables/dimensions.mjs":"969Er","../../composables/display.mjs":"5LhPp","../../composables/elevation.mjs":"jNJPe","../../composables/icons.mjs":"71CER","../../composables/location.mjs":"S9pdd","../../composables/position.mjs":"gvTsA","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3OJ1O":[function(){},{}],"7oQrO":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBannerActionsProps",function(){return c}),n.export(r,"VBannerActions",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/defaults.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({color:String,density:String},(0,i.makeComponentProps)()),"VBannerActions"),u=(0,l.genericComponent)()({name:"VBannerActions",props:c(),setup:function(e,t){var r=t.slots;return(0,s.provideDefaults)({VBtn:{color:e.color,density:e.density,slim:!0,variant:"text"}}),(0,l.useRender)(function(){var t;return(0,a.createVNode)("div",{class:["v-banner-actions",e.class],style:e.style},[null===(t=r.default)||void 0===t?void 0:t.call(r)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3cmNc":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBannerText",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-banner-text")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gQrqO:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBottomNavigation",function(){return o.VBottomNavigation});var o=e("./VBottomNavigation.mjs")},{"./VBottomNavigation.mjs":"hK4g2","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hK4g2:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBottomNavigationProps",function(){return E}),n.export(r,"VBottomNavigation",function(){return x});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VBottomNavigation.css");var i=e("../VBtnToggle/VBtnToggle.mjs"),s=e("../../composables/border.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/defaults.mjs"),d=e("../../composables/density.mjs"),p=e("../../composables/elevation.mjs"),f=e("../../composables/group.mjs"),m=e("../../composables/layout.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../composables/rounded.mjs"),g=e("../../composables/ssrBoot.mjs"),b=e("../../composables/tag.mjs"),y=e("../../composables/theme.mjs"),S=e("../../util/index.mjs"),E=(0,S.propsFactory)((0,o._)({baseColor:String,bgColor:String,color:String,grow:Boolean,mode:{type:String,validator:function(e){return!e||["horizontal","shift"].includes(e)}},height:{type:[Number,String],default:56},active:{type:Boolean,default:!0}},(0,s.makeBorderProps)(),(0,c.makeComponentProps)(),(0,d.makeDensityProps)(),(0,p.makeElevationProps)(),(0,h.makeRoundedProps)(),(0,m.makeLayoutItemProps)({name:"bottom-navigation"}),(0,b.makeTagProps)({tag:"header"}),(0,f.makeGroupProps)({selectedClass:"v-btn--selected"}),(0,y.makeThemeProps)()),"VBottomNavigation"),x=(0,S.genericComponent)()({name:"VBottomNavigation",props:E(),emits:{"update:active":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,y.useTheme)().themeClasses,o=(0,s.useBorder)(e).borderClasses,c=(0,l.useBackgroundColor)((0,a.toRef)(e,"bgColor")),b=c.backgroundColorClasses,E=c.backgroundColorStyles,x=(0,d.useDensity)(e).densityClasses,C=(0,p.useElevation)(e).elevationClasses,T=(0,h.useRounded)(e).roundedClasses,w=(0,g.useSsrBoot)().ssrBootStyles,I=(0,a.computed)(function(){return Number(e.height)-("comfortable"===e.density?8:0)-("compact"===e.density?16:0)}),R=(0,_.useProxiedModel)(e,"active",e.active),A=(0,m.useLayoutItem)({id:e.name,order:(0,a.computed)(function(){return parseInt(e.order,10)}),position:(0,a.computed)(function(){return"bottom"}),layoutSize:(0,a.computed)(function(){return R.value?I.value:0}),elementSize:I,active:R,absolute:(0,a.toRef)(e,"absolute")}).layoutItemStyles;return(0,f.useGroup)(e,i.VBtnToggleSymbol),(0,u.provideDefaults)({VBtn:{baseColor:(0,a.toRef)(e,"baseColor"),color:(0,a.toRef)(e,"color"),density:(0,a.toRef)(e,"density"),stacked:(0,a.computed)(function(){return"horizontal"!==e.mode}),variant:"text"}},{scoped:!0}),(0,S.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-bottom-navigation",{"v-bottom-navigation--active":R.value,"v-bottom-navigation--grow":e.grow,"v-bottom-navigation--shift":"shift"===e.mode},n.value,b.value,o.value,x.value,C.value,T.value,e.class],style:[E.value,A.value,{height:(0,S.convertToUnit)(I.value)},w.value,e.style]},{default:function(){return[r.default&&(0,a.createVNode)("div",{class:"v-bottom-navigation__content"},[r.default()])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VBottomNavigation.css":"dzONl","../VBtnToggle/VBtnToggle.mjs":"h52E5","../../composables/border.mjs":"8SyXK","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/density.mjs":"3HkdI","../../composables/elevation.mjs":"jNJPe","../../composables/group.mjs":"c5IR1","../../composables/layout.mjs":"j1CRa","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/ssrBoot.mjs":"ergwm","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dzONl:[function(){},{}],eDhqv:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VBottomSheet",function(){return o.VBottomSheet});var o=e("./VBottomSheet.mjs")},{"./VBottomSheet.mjs":"2vSWc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2vSWc":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBottomSheetProps",function(){return c}),n.export(r,"VBottomSheet",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VBottomSheet.css");var i=e("../VDialog/VDialog.mjs"),s=e("../../composables/proxiedModel.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({inset:Boolean},(0,i.makeVDialogProps)({transition:"bottom-sheet-transition"})),"VBottomSheet"),u=(0,l.genericComponent)()({name:"VBottomSheet",props:c(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,s.useProxiedModel)(e,"modelValue");return(0,l.useRender)(function(){var t=(0,i.VDialog).filterProps(e);return(0,a.createVNode)(i.VDialog,(0,a.mergeProps)(t,{contentClass:["v-bottom-sheet__content",e.contentClass],modelValue:n.value,"onUpdate:modelValue":function(e){return n.value=e},class:["v-bottom-sheet",{"v-bottom-sheet--inset":e.inset},e.class],style:e.style}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VBottomSheet.css":"6ZPjt","../VDialog/VDialog.mjs":"rs240","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6ZPjt":[function(){},{}],rs240:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDialogProps",function(){return g}),n.export(r,"VDialog",function(){return b});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("@swc/helpers/_/_ts_generator"),l=e("vue");e("./VDialog.css");var c=e("../transitions/index.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../VOverlay/index.mjs"),p=e("../VOverlay/VOverlay.mjs"),f=e("../../composables/forwardRefs.mjs"),m=e("../../composables/proxiedModel.mjs"),_=e("../../composables/scopeId.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,a._)({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean},(0,p.makeVOverlayProps)({origin:"center center",scrollStrategy:"block",transition:{component:c.VDialogTransition},zIndex:2400})),"VDialog"),b=(0,h.genericComponent)()({name:"VDialog",props:g(),emits:{"update:modelValue":function(e){return!0},afterEnter:function(){return!0},afterLeave:function(){return!0}},setup:function(e,t){var r,n=t.emit,a=t.slots,c=(0,m.useProxiedModel)(e,"modelValue"),p=(0,_.useScopeId)().scopeId,g=(0,l.ref)();function b(e){var t,r,n=e.relatedTarget,o=e.target;if(n!==o&&(null===(t=g.value)||void 0===t?void 0:t.contentEl)&&(null===(r=g.value)||void 0===r?void 0:r.globalTop)&&![document,g.value.contentEl].includes(o)&&!g.value.contentEl.contains(o)){var a=(0,h.focusableChildren)(g.value.contentEl);if(!a.length)return;var i=a[0],s=a[a.length-1];n===i?s.focus():i.focus()}}function y(){var e;n("afterEnter"),(null===(e=g.value)||void 0===e?void 0:e.contentEl)&&!g.value.contentEl.contains(document.activeElement)&&g.value.contentEl.focus({preventScroll:!0})}function S(){n("afterLeave")}return h.IN_BROWSER&&(0,l.watch)(function(){return c.value&&e.retainFocus},function(e){e?document.addEventListener("focusin",b):document.removeEventListener("focusin",b)},{immediate:!0}),(0,l.watch)(c,(r=(0,o._)(function(e){var t;return(0,s._)(this,function(r){switch(r.label){case 0:if(e)return[3,2];return[4,(0,l.nextTick)()];case 1:r.sent(),null===(t=g.value.activatorEl)||void 0===t||t.focus({preventScroll:!0}),r.label=2;case 2:return[2]}})}),function(e){return r.apply(this,arguments)})),(0,h.useRender)(function(){var t=(0,d.VOverlay).filterProps(e),r=(0,l.mergeProps)({"aria-haspopup":"dialog"},e.activatorProps),n=(0,l.mergeProps)({tabindex:-1},e.contentProps);return(0,l.createVNode)(d.VOverlay,(0,l.mergeProps)({ref:g,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},t,{modelValue:c.value,"onUpdate:modelValue":function(e){return c.value=e},"aria-modal":"true",activatorProps:r,contentProps:n,role:"dialog",onAfterEnter:y,onAfterLeave:S},p),{activator:a.activator,default:function(){for(var e=arguments.length,t=Array(e),r=0;r=n.length-1},"string"==typeof c?{title:c}:c),{default:r.title?function(){var e;return null===(e=r.title)||void 0===e?void 0:e.call(r,{item:c,index:t})}:void 0}),t0}},progress:[Boolean,String],verticalDelimiters:[Boolean,String]},(0,c.makeVWindowProps)({continuous:!0,mandatory:"force",showArrows:!0})),"VCarousel"),_=(0,f.genericComponent)()({name:"VCarousel",props:m(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,p.useProxiedModel)(e,"modelValue"),o=(0,d.useLocale)().t,u=(0,a.ref)(),m=-1;function _(){e.cycle&&u.value&&(m=window.setTimeout(u.value.group.next,+e.interval>0?+e.interval:6e3))}function h(){window.clearTimeout(m),window.requestAnimationFrame(_)}return(0,a.watch)(n,h),(0,a.watch)(function(){return e.interval},h),(0,a.watch)(function(){return e.cycle},function(e){e?h():window.clearTimeout(m)}),(0,a.onMounted)(_),(0,f.useRender)(function(){var t=(0,c.VWindow).filterProps(e);return(0,a.createVNode)(c.VWindow,(0,a.mergeProps)({ref:u},t,{modelValue:n.value,"onUpdate:modelValue":function(e){return n.value=e},class:["v-carousel",{"v-carousel--hide-delimiter-background":e.hideDelimiterBackground,"v-carousel--vertical-delimiters":e.verticalDelimiters},e.class],style:[{height:(0,f.convertToUnit)(e.height)},e.style]}),{default:r.default,additional:function(t){var c=t.group;return(0,a.createVNode)(a.Fragment,null,[!e.hideDelimiters&&(0,a.createVNode)("div",{class:"v-carousel__controls",style:{left:"left"===e.verticalDelimiters&&e.verticalDelimiters?0:"auto",right:"right"===e.verticalDelimiters?0:"auto"}},[c.items.value.length>0&&(0,a.createVNode)(s.VDefaultsProvider,{defaults:{VBtn:{color:e.color,icon:e.delimiterIcon,size:"x-small",variant:"text"}},scoped:!0},{default:function(){return[c.items.value.map(function(e,t){var n={id:"carousel-item-".concat(e.id),"aria-label":o("$vuetify.carousel.ariaLabel.delimiter",t+1,c.items.value.length),class:["v-carousel__controls__item",c.isSelected(e.id)&&"v-btn--active"],onClick:function(){return c.select(e.id,!0)}};return r.item?r.item({props:n,item:e}):(0,a.createVNode)(i.VBtn,(0,a.mergeProps)(e,n),null)})]}})]),e.progress&&(0,a.createVNode)(l.VProgressLinear,{class:"v-carousel__progress",color:"string"==typeof e.progress?e.progress:void 0,modelValue:(c.getItemIndex(n.value)+1)/c.items.value.length*100},null)])},prev:r.prev,next:r.next})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VCarousel.css":"fXine","../VBtn/index.mjs":"kmwjW","../VDefaultsProvider/index.mjs":"9aMue","../VProgressLinear/index.mjs":"dyg9r","../VWindow/VWindow.mjs":"lRH6n","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fXine:[function(){},{}],lRH6n:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VWindowSymbol",function(){return m}),n.export(r,"VWindowGroupSymbol",function(){return _}),n.export(r,"makeVWindowProps",function(){return h}),n.export(r,"VWindow",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VWindow.css");var i=e("../VBtn/index.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/group.mjs"),c=e("../../composables/locale.mjs"),u=e("../../composables/tag.mjs"),d=e("../../composables/theme.mjs"),p=e("../../directives/touch/index.mjs"),f=e("../../util/index.mjs"),m=Symbol.for("vuetify:v-window"),_=Symbol.for("vuetify:v-window-group"),h=(0,f.propsFactory)((0,o._)({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:function(e){return"boolean"==typeof e||"hover"===e}},touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"}},(0,s.makeComponentProps)(),(0,u.makeTagProps)(),(0,d.makeThemeProps)()),"VWindow"),g=(0,f.genericComponent)()({name:"VWindow",directives:{Touch:p.Touch},props:h(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,d.provideTheme)(e).themeClasses,s=(0,c.useRtl)().isRtl,u=(0,c.useLocale)().t,p=(0,l.useGroup)(e,_),h=(0,a.ref)(),g=(0,a.computed)(function(){return s.value?!e.reverse:e.reverse}),b=(0,a.shallowRef)(!1),y=(0,a.computed)(function(){var t="vertical"===e.direction?"y":"x",r=g.value?!b.value:b.value;return"v-window-".concat(t).concat(r?"-reverse":"","-transition")}),S=(0,a.shallowRef)(0),E=(0,a.ref)(void 0),x=(0,a.computed)(function(){return p.items.value.findIndex(function(e){return p.selected.value.includes(e.id)})});(0,a.watch)(x,function(e,t){var r=p.items.value.length,n=r-1;r<=2?b.value=et+16&&e.right(e)),Math.abs(e.offsetX)<.5*Math.abs(e.offsetY)&&(e.up&&on+16&&e.down(e))},s={mounted:function(e,t){var r,n,s,l=t.value,c=(null==l?void 0:l.parent)?e.parentElement:e,u=null!==(n=null==l?void 0:l.options)&&void 0!==n?n:{passive:!0},d=null===(r=t.instance)||void 0===r?void 0:r.$.uid;if(c&&d){var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:function(e){var r,n;return n=e.changedTouches[0],void(t.touchstartX=n.clientX,t.touchstartY=n.clientY,null===(r=t.start)||void 0===r||r.call(t,(0,o._)({originalEvent:e},t)))},touchend:function(e){var r,n;return n=e.changedTouches[0],void(t.touchendX=n.clientX,t.touchendY=n.clientY,null===(r=t.end)||void 0===r||r.call(t,(0,o._)({originalEvent:e},t)),i(t))},touchmove:function(e){var r,n;return n=e.changedTouches[0],void(t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,null===(r=t.move)||void 0===r||r.call(t,(0,o._)({originalEvent:e},t)))}}}(t.value);c._touchHandlers=null!==(s=c._touchHandlers)&&void 0!==s?s:Object.create(null),c._touchHandlers[d]=p,(0,a.keys)(p).forEach(function(e){c.addEventListener(e,p[e],u)})}},unmounted:function(e,t){var r,n,o=(null===(r=t.value)||void 0===r?void 0:r.parent)?e.parentElement:e,i=null===(n=t.instance)||void 0===n?void 0:n.$.uid;if((null==o?void 0:o._touchHandlers)&&i){var s=o._touchHandlers[i];(0,a.keys)(s).forEach(function(e){o.removeEventListener(e,s[e])}),delete o._touchHandlers[i]}}};r.default=s},{"@swc/helpers/_/_object_spread":"j01jQ","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fnbaf:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVCarouselItemProps",function(){return c}),n.export(r,"VCarouselItem",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VImg/VImg.mjs"),s=e("../VWindow/VWindowItem.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({},(0,i.makeVImgProps)(),(0,s.makeVWindowItemProps)()),"VCarouselItem"),u=(0,l.genericComponent)()({name:"VCarouselItem",inheritAttrs:!1,props:c(),setup:function(e,t){var r=t.slots,n=t.attrs;(0,l.useRender)(function(){var t=(0,i.VImg).filterProps(e),o=(0,s.VWindowItem).filterProps(e);return(0,a.createVNode)(s.VWindowItem,(0,a.mergeProps)({class:["v-carousel-item",e.class]},o),{default:function(){return[(0,a.createVNode)(i.VImg,(0,a.mergeProps)(n,t),r)]}})})}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VImg/VImg.mjs":"icZXH","../VWindow/VWindowItem.mjs":"4hmpt","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4hmpt":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVWindowItemProps",function(){return _}),n.export(r,"VWindowItem",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/group.mjs"),l=e("../../composables/lazy.mjs"),c=e("../../composables/ssrBoot.mjs"),u=e("../../composables/transition.mjs"),d=e("../../directives/touch/index.mjs"),p=n.interopDefault(d),f=e("../../util/index.mjs"),m=e("./VWindow.mjs"),_=(0,f.propsFactory)((0,o._)({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0}},(0,i.makeComponentProps)(),(0,s.makeGroupItemProps)(),(0,l.makeLazyProps)()),"VWindowItem"),h=(0,f.genericComponent)()({name:"VWindowItem",directives:{Touch:p.default},props:_(),emits:{"group:selected":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,a.inject)(m.VWindowSymbol),o=(0,s.useGroupItem)(e,m.VWindowGroupSymbol),i=(0,c.useSsrBoot)().isBooted;if(!n||!o)throw Error("[Vuetify] VWindowItem must be used inside VWindow");var d=(0,a.shallowRef)(!1),p=(0,a.computed)(function(){return i.value&&(n.isReversed.value?!1!==e.reverseTransition:!1!==e.transition)});function _(){d.value&&n&&(d.value=!1,n.transitionCount.value>0&&(n.transitionCount.value-=1,0===n.transitionCount.value&&(n.transitionHeight.value=void 0)))}function h(){var e;!d.value&&n&&(d.value=!0,0===n.transitionCount.value&&(n.transitionHeight.value=(0,f.convertToUnit)(null===(e=n.rootRef.value)||void 0===e?void 0:e.clientHeight)),n.transitionCount.value+=1)}function g(){_()}function b(e){d.value&&(0,a.nextTick)(function(){p.value&&d.value&&n&&(n.transitionHeight.value=(0,f.convertToUnit)(e.clientHeight))})}var y=(0,a.computed)(function(){var t=n.isReversed.value?e.reverseTransition:e.transition;return!!p.value&&{name:"string"!=typeof t?n.transition.value:t,onBeforeEnter:h,onAfterEnter:_,onEnterCancelled:g,onBeforeLeave:h,onAfterLeave:_,onLeaveCancelled:g,onEnter:b}}),S=(0,l.useLazy)(e,o.isSelected).hasContent;return(0,f.useRender)(function(){return(0,a.createVNode)(u.MaybeTransition,{transition:y.value,disabled:!i.value},{default:function(){var t;return[(0,a.withDirectives)((0,a.createVNode)("div",{class:["v-window-item",o.selectedClass.value,e.class],style:e.style},[S.value&&(null===(t=r.default)||void 0===t?void 0:t.call(r))]),[[a.vShow,o.isSelected.value]])]}})}),{groupItem:o}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/group.mjs":"c5IR1","../../composables/lazy.mjs":"jA9Wv","../../composables/ssrBoot.mjs":"ergwm","../../composables/transition.mjs":"4059v","../../directives/touch/index.mjs":"ktzEw","../../util/index.mjs":"iWvvc","./VWindow.mjs":"lRH6n","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kSMJj:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VChipGroup",function(){return o.VChipGroup});var o=e("./VChipGroup.mjs")},{"./VChipGroup.mjs":"4Tl2V","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8ijis":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VCode",function(){return o}),e("./VCode.css");var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-code")},{"./VCode.css":"913Ki","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"913Ki":[function(){},{}],"7gHCZ":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VColorPicker",function(){return o.VColorPicker});var o=e("./VColorPicker.mjs")},{"./VColorPicker.mjs":"iH6dx","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iH6dx:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColorPickerProps",function(){return g}),n.export(r,"VColorPicker",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VColorPicker.css");var s=e("./VColorPickerCanvas.mjs"),l=e("./VColorPickerEdit.mjs"),c=e("./VColorPickerPreview.mjs"),u=e("./VColorPickerSwatches.mjs"),d=e("../VSheet/VSheet.mjs"),p=e("../../composables/defaults.mjs"),f=e("../../composables/locale.mjs"),m=e("../../composables/proxiedModel.mjs"),_=e("./util/index.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,o._)({canvasHeight:{type:[String,Number],default:150},disabled:Boolean,dotSize:{type:[Number,String],default:10},hideCanvas:Boolean,hideSliders:Boolean,hideInputs:Boolean,mode:{type:String,default:"rgba",validator:function(e){return Object.keys(_.modes).includes(e)}},modes:{type:Array,default:function(){return Object.keys(_.modes)},validator:function(e){return Array.isArray(e)&&e.every(function(e){return Object.keys(_.modes).includes(e)})}},showSwatches:Boolean,swatches:Array,swatchesMaxHeight:{type:[Number,String],default:150},modelValue:{type:[Object,String]}},(0,h.omit)((0,d.makeVSheetProps)({width:300}),["height","location","minHeight","maxHeight","minWidth","maxWidth"])),"VColorPicker"),b=(0,h.defineComponent)({name:"VColorPicker",props:g(),emits:{"update:modelValue":function(e){return!0},"update:mode":function(e){return!0}},setup:function(e){var t=(0,m.useProxiedModel)(e,"mode"),r=(0,i.ref)(null),n=(0,m.useProxiedModel)(e,"modelValue",void 0,function(e){var t;if(null==e||""===e)return null;try{t=(0,h.RGBtoHSV)((0,h.parseColor)(e))}catch(e){return(0,h.consoleWarn)(e),null}return t},function(t){return t?(0,_.extractColor)(t,e.modelValue):null}),g=(0,i.computed)(function(){var e;return n.value?(0,a._)((0,o._)({},n.value),{h:null!==(e=r.value)&&void 0!==e?e:n.value.h}):null}),b=(0,f.useRtl)().rtlClasses,y=!0;(0,i.watch)(n,function(e){if(!y){y=!0;return}e&&(r.value=e.h)},{immediate:!0});var S=function(e){y=!1,r.value=e.h,n.value=e};return(0,i.onBeforeMount)(function(){e.modes.includes(t.value)||(t.value=e.modes[0])}),(0,p.provideDefaults)({VSlider:{color:void 0,trackColor:void 0,trackFillColor:void 0}}),(0,h.useRender)(function(){var r,n=(0,d.VSheet).filterProps(e);return(0,i.createVNode)(d.VSheet,(0,i.mergeProps)({rounded:e.rounded,elevation:e.elevation,theme:e.theme,class:["v-color-picker",b.value,e.class],style:[{"--v-color-picker-color-hsv":(0,h.HSVtoCSS)((0,a._)((0,o._)({},null!==(r=g.value)&&void 0!==r?r:_.nullColor),{a:1}))},e.style]},n,{maxWidth:e.width}),{default:function(){return[!e.hideCanvas&&(0,i.createVNode)(s.VColorPickerCanvas,{key:"canvas",color:g.value,"onUpdate:color":S,disabled:e.disabled,dotSize:e.dotSize,width:e.width,height:e.canvasHeight},null),(!e.hideSliders||!e.hideInputs)&&(0,i.createVNode)("div",{key:"controls",class:"v-color-picker__controls"},[!e.hideSliders&&(0,i.createVNode)(c.VColorPickerPreview,{key:"preview",color:g.value,"onUpdate:color":S,hideAlpha:!t.value.endsWith("a"),disabled:e.disabled},null),!e.hideInputs&&(0,i.createVNode)(l.VColorPickerEdit,{key:"edit",modes:e.modes,mode:t.value,"onUpdate:mode":function(e){return t.value=e},color:g.value,"onUpdate:color":S,disabled:e.disabled},null)]),e.showSwatches&&(0,i.createVNode)(u.VColorPickerSwatches,{key:"swatches",color:g.value,"onUpdate:color":S,maxHeight:e.swatchesMaxHeight,swatches:e.swatches,disabled:e.disabled},null)]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VColorPicker.css":"dfSMY","./VColorPickerCanvas.mjs":"fa7zy","./VColorPickerEdit.mjs":"6K4ep","./VColorPickerPreview.mjs":"jcxg9","./VColorPickerSwatches.mjs":"iEsjA","../VSheet/VSheet.mjs":"jUuzJ","../../composables/defaults.mjs":"cYwla","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","./util/index.mjs":"3itAU","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dfSMY:[function(){},{}],fa7zy:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColorPickerCanvasProps",function(){return c}),n.export(r,"VColorPickerCanvas",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VColorPickerCanvas.css");var i=e("../../composables/component.mjs"),s=e("../../composables/resizeObserver.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({color:{type:Object},disabled:Boolean,dotSize:{type:[Number,String],default:10},height:{type:[Number,String],default:150},width:{type:[Number,String],default:300}},(0,i.makeComponentProps)()),"VColorPickerCanvas"),u=(0,l.defineComponent)({name:"VColorPickerCanvas",props:c(),emits:{"update:color":function(e){return!0},"update:position":function(e){return!0}},setup:function(e,t){var r=t.emit,n=(0,a.shallowRef)(!1),o=(0,a.ref)(),i=(0,a.shallowRef)(parseFloat(e.width)),c=(0,a.shallowRef)(parseFloat(e.height)),u=(0,a.ref)({x:0,y:0}),d=(0,a.computed)({get:function(){return u.value},set:function(t){if(o.value){var n,a,s,d,p=t.x,f=t.y;u.value=t,r("update:color",{h:null!==(s=null===(n=e.color)||void 0===n?void 0:n.h)&&void 0!==s?s:0,s:(0,l.clamp)(p,0,i.value)/i.value,v:1-(0,l.clamp)(f,0,c.value)/c.value,a:null!==(d=null===(a=e.color)||void 0===a?void 0:a.a)&&void 0!==d?d:1})}}}),p=(0,a.computed)(function(){var t=d.value,r=t.x,n=t.y,o=parseInt(e.dotSize,10)/2;return{width:(0,l.convertToUnit)(e.dotSize),height:(0,l.convertToUnit)(e.dotSize),transform:"translate(".concat((0,l.convertToUnit)(r-o),", ").concat((0,l.convertToUnit)(n-o),")")}}),f=(0,s.useResizeObserver)(function(e){if(null===(t=f.el)||void 0===t?void 0:t.offsetParent){var t,r=e[0].contentRect,n=r.width,o=r.height;i.value=n,c.value=o}}).resizeRef;function m(t){"mousedown"===t.type&&t.preventDefault(),e.disabled||(_(t),window.addEventListener("mousemove",_),window.addEventListener("mouseup",h),window.addEventListener("touchmove",_),window.addEventListener("touchend",h))}function _(t){if(!e.disabled&&o.value){n.value=!0;var r,a,i,s,c,u,p,f=(0,l.getEventCoordinates)(t);r=f.clientX,a=f.clientY,s=(i=o.value.getBoundingClientRect()).left,c=i.top,u=i.width,p=i.height,d.value={x:(0,l.clamp)(r-s,0,u),y:(0,l.clamp)(a-c,0,p)}}}function h(){window.removeEventListener("mousemove",_),window.removeEventListener("mouseup",h),window.removeEventListener("touchmove",_),window.removeEventListener("touchend",h)}function g(){if(o.value){var t,r,n=o.value,a=n.getContext("2d");if(a){var i=a.createLinearGradient(0,0,n.width,0);i.addColorStop(0,"hsla(0, 0%, 100%, 1)"),i.addColorStop(1,"hsla(".concat(null!==(r=null===(t=e.color)||void 0===t?void 0:t.h)&&void 0!==r?r:0,", 100%, 50%, 1)")),a.fillStyle=i,a.fillRect(0,0,n.width,n.height);var s=a.createLinearGradient(0,0,0,n.height);s.addColorStop(0,"hsla(0, 0%, 0%, 0)"),s.addColorStop(1,"hsla(0, 0%, 0%, 1)"),a.fillStyle=s,a.fillRect(0,0,n.width,n.height)}}}return(0,a.watch)(function(){var t;return null===(t=e.color)||void 0===t?void 0:t.h},g,{immediate:!0}),(0,a.watch)(function(){return[i.value,c.value]},function(e,t){g(),u.value={x:d.value.x*e[0]/t[0],y:d.value.y*e[1]/t[1]}},{flush:"post"}),(0,a.watch)(function(){return e.color},function(){if(n.value){n.value=!1;return}u.value=e.color?{x:e.color.s*i.value,y:(1-e.color.v)*c.value}:{x:0,y:0}},{deep:!0,immediate:!0}),(0,a.onMounted)(function(){return g()}),(0,l.useRender)(function(){return(0,a.createVNode)("div",{ref:f,class:["v-color-picker-canvas",e.class],style:e.style,onMousedown:m,onTouchstartPassive:m},[(0,a.createVNode)("canvas",{ref:o,width:i.value,height:c.value},null),e.color&&(0,a.createVNode)("div",{class:["v-color-picker-canvas__dot",{"v-color-picker-canvas__dot--disabled":e.disabled}],style:p.value},null)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VColorPickerCanvas.css":"epMvY","../../composables/component.mjs":"c32AV","../../composables/resizeObserver.mjs":"kyBb2","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],epMvY:[function(){},{}],"6K4ep":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColorPickerEditProps",function(){return f}),n.export(r,"VColorPickerEdit",function(){return m});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_object_without_properties"),s=e("vue");e("./VColorPickerEdit.css");var l=e("../VBtn/index.mjs"),c=e("../../composables/component.mjs"),u=e("./util/index.mjs"),d=e("../../util/index.mjs"),p=function(e){var t=e.label,r=(0,i._)(e,["label"]);return(0,s.createVNode)("div",{class:"v-color-picker-edit__input"},[(0,s.createVNode)("input",r,null),(0,s.createVNode)("span",null,[t])])},f=(0,d.propsFactory)((0,o._)({color:Object,disabled:Boolean,mode:{type:String,default:"rgba",validator:function(e){return Object.keys(u.modes).includes(e)}},modes:{type:Array,default:function(){return Object.keys(u.modes)},validator:function(e){return Array.isArray(e)&&e.every(function(e){return Object.keys(u.modes).includes(e)})}}},(0,c.makeComponentProps)()),"VColorPickerEdit"),m=(0,d.defineComponent)({name:"VColorPickerEdit",props:f(),emits:{"update:color":function(e){return!0},"update:mode":function(e){return!0}},setup:function(e,t){var r=t.emit,n=(0,s.computed)(function(){return e.modes.map(function(e){return(0,a._)((0,o._)({},u.modes[e]),{name:e})})}),c=(0,s.computed)(function(){var t,s=n.value.find(function(t){return t.name===e.mode});if(!s)return[];var l=e.color?s.to(e.color):null;return null===(t=s.inputs)||void 0===t?void 0:t.map(function(t){var n=t.getValue,c=t.getColor,d=(0,i._)(t,["getValue","getColor"]);return(0,a._)((0,o._)({},s.inputProps,d),{disabled:e.disabled,value:l&&n(l),onChange:function(e){var t=e.target;t&&r("update:color",s.from(c(null!=l?l:s.to(u.nullColor),t.value)))}})})});return(0,d.useRender)(function(){var t;return(0,s.createVNode)("div",{class:["v-color-picker-edit",e.class],style:e.style},[null===(t=c.value)||void 0===t?void 0:t.map(function(e){return(0,s.createVNode)(p,e,null)}),n.value.length>1&&(0,s.createVNode)(l.VBtn,{icon:"$unfold",size:"x-small",variant:"plain",onClick:function(){var t=n.value.findIndex(function(t){return t.name===e.mode});r("update:mode",n.value[(t+1)%n.value.length].name)}},null)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ",vue:"gHobw","./VColorPickerEdit.css":"eB9Ge","../VBtn/index.mjs":"kmwjW","../../composables/component.mjs":"c32AV","./util/index.mjs":"3itAU","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],eB9Ge:[function(){},{}],"3itAU":[function(e,t,r){var n,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"extractColor",function(){return u}),o.export(r,"hasAlpha",function(){return d}),o.export(r,"nullColor",function(){return p}),o.export(r,"modes",function(){return b});var a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("@swc/helpers/_/_object_without_properties"),l=e("../../../util/colorUtils.mjs"),c=e("../../../util/helpers.mjs");function u(e,t){if(null==t||"string"==typeof t){var r,n,o=(0,l.HSVtoHex)(e);return 1===e.a?o.slice(0,7):o}return"object"==typeof t?((0,c.has)(t,["r","g","b"])?n=(0,l.HSVtoRGB)(e):(0,c.has)(t,["h","s","l"])?n=(0,l.HSVtoHSL)(e):(0,c.has)(t,["h","s","v"])&&(n=e),r=n,(0,c.has)(t,["a"])||1!==e.a?r:(r.a,(0,s._)(r,["a"]))):e}function d(e){return!!e&&("string"==typeof e?e.length>7:"object"==typeof e&&((0,c.has)(e,["a"])||(0,c.has)(e,["alpha"])))}var p={h:0,s:0,v:0,a:1},f={inputProps:{type:"number",min:0},inputs:[{label:"R",max:255,step:1,getValue:function(e){return Math.round(e.r)},getColor:function(e,t){return(0,i._)((0,a._)({},e),{r:Number(t)})}},{label:"G",max:255,step:1,getValue:function(e){return Math.round(e.g)},getColor:function(e,t){return(0,i._)((0,a._)({},e),{g:Number(t)})}},{label:"B",max:255,step:1,getValue:function(e){return Math.round(e.b)},getColor:function(e,t){return(0,i._)((0,a._)({},e),{b:Number(t)})}},{label:"A",max:1,step:.01,getValue:function(e){var t=e.a;return null!=t?Math.round(100*t)/100:1},getColor:function(e,t){return(0,i._)((0,a._)({},e),{a:Number(t)})}}],to:l.HSVtoRGB,from:l.RGBtoHSV},m=(0,i._)((0,a._)({},f),{inputs:null===(n=f.inputs)||void 0===n?void 0:n.slice(0,3)}),_={inputProps:{type:"number",min:0},inputs:[{label:"H",max:360,step:1,getValue:function(e){return Math.round(e.h)},getColor:function(e,t){return(0,i._)((0,a._)({},e),{h:Number(t)})}},{label:"S",max:1,step:.01,getValue:function(e){return Math.round(100*e.s)/100},getColor:function(e,t){return(0,i._)((0,a._)({},e),{s:Number(t)})}},{label:"L",max:1,step:.01,getValue:function(e){return Math.round(100*e.l)/100},getColor:function(e,t){return(0,i._)((0,a._)({},e),{l:Number(t)})}},{label:"A",max:1,step:.01,getValue:function(e){var t=e.a;return null!=t?Math.round(100*t)/100:1},getColor:function(e,t){return(0,i._)((0,a._)({},e),{a:Number(t)})}}],to:l.HSVtoHSL,from:l.HSLtoHSV},h=(0,i._)((0,a._)({},_),{inputs:_.inputs.slice(0,3)}),g={inputProps:{type:"text"},inputs:[{label:"HEXA",getValue:function(e){return e},getColor:function(e,t){return t}}],to:l.HSVtoHex,from:l.HexToHSV},b={rgb:m,rgba:f,hsl:h,hsla:_,hex:(0,i._)((0,a._)({},g),{inputs:[{label:"HEX",getValue:function(e){return e.slice(0,7)},getColor:function(e,t){return t}}]}),hexa:g}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ","../../../util/colorUtils.mjs":"akffe","../../../util/helpers.mjs":"at0NA","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jcxg9:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColorPickerPreviewProps",function(){return m}),n.export(r,"VColorPickerPreview",function(){return _});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("@swc/helpers/_/_ts_generator"),l=e("vue");e("./VColorPickerPreview.css");var c=e("../VBtn/index.mjs"),u=e("../VSlider/index.mjs"),d=e("../../composables/component.mjs"),p=e("./util/index.mjs"),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,a._)({color:{type:Object},disabled:Boolean,hideAlpha:Boolean},(0,d.makeComponentProps)()),"VColorPickerPreview"),_=(0,f.defineComponent)({name:"VColorPickerPreview",props:m(),emits:{"update:color":function(e){return!0}},setup:function(e,t){var r=t.emit,n=new AbortController;function d(){return m.apply(this,arguments)}function m(){return(m=(0,o._)(function(){var t,o,i,l;return(0,s._)(this,function(s){switch(s.label){case 0:if(!f.SUPPORTS_EYE_DROPPER)return[2];t=new window.EyeDropper,s.label=1;case 1:return s.trys.push([1,3,,4]),[4,t.open({signal:n.signal})];case 2:return o=s.sent(),i=(0,f.HexToHSV)(o.sRGBHex),r("update:color",(0,a._)({},null!==(l=e.color)&&void 0!==l?l:p.nullColor,i)),[3,4];case 3:return s.sent(),[3,4];case 4:return[2]}})})).apply(this,arguments)}return(0,l.onUnmounted)(function(){return n.abort()}),(0,f.useRender)(function(){var t,n,o,s;return(0,l.createVNode)("div",{class:["v-color-picker-preview",{"v-color-picker-preview--hide-alpha":e.hideAlpha},e.class],style:e.style},[f.SUPPORTS_EYE_DROPPER&&(0,l.createVNode)("div",{class:"v-color-picker-preview__eye-dropper",key:"eyeDropper"},[(0,l.createVNode)(c.VBtn,{onClick:d,icon:"$eyeDropper",variant:"plain",density:"comfortable"},null)]),(0,l.createVNode)("div",{class:"v-color-picker-preview__dot"},[(0,l.createVNode)("div",{style:{background:(0,f.HSVtoCSS)(null!==(o=e.color)&&void 0!==o?o:p.nullColor)}},null)]),(0,l.createVNode)("div",{class:"v-color-picker-preview__sliders"},[(0,l.createVNode)(u.VSlider,{class:"v-color-picker-preview__track v-color-picker-preview__hue",modelValue:null===(t=e.color)||void 0===t?void 0:t.h,"onUpdate:modelValue":function(t){var n;return r("update:color",(0,i._)((0,a._)({},null!==(n=e.color)&&void 0!==n?n:p.nullColor),{h:t}))},step:0,min:0,max:360,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null),!e.hideAlpha&&(0,l.createVNode)(u.VSlider,{class:"v-color-picker-preview__track v-color-picker-preview__alpha",modelValue:null!==(s=null===(n=e.color)||void 0===n?void 0:n.a)&&void 0!==s?s:1,"onUpdate:modelValue":function(t){var n;return r("update:color",(0,i._)((0,a._)({},null!==(n=e.color)&&void 0!==n?n:p.nullColor),{a:t}))},step:1/256,min:0,max:1,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null)])])}),{}}})},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","./VColorPickerPreview.css":"lHSN8","../VBtn/index.mjs":"kmwjW","../VSlider/index.mjs":"1A9Tn","../../composables/component.mjs":"c32AV","./util/index.mjs":"3itAU","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lHSN8:[function(){},{}],"1A9Tn":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSlider",function(){return o.VSlider});var o=e("./VSlider.mjs")},{"./VSlider.mjs":"11od4","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"11od4":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSliderProps",function(){return h}),n.export(r,"VSlider",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VSlider.css");var s=e("./VSliderThumb.mjs"),l=e("./VSliderTrack.mjs"),c=e("../VInput/VInput.mjs"),u=e("../VLabel/index.mjs"),d=e("./slider.mjs"),p=e("../../composables/focus.mjs"),f=e("../../composables/locale.mjs"),m=e("../../composables/proxiedModel.mjs"),_=e("../../util/index.mjs"),h=(0,_.propsFactory)((0,a._)((0,o._)({},(0,p.makeFocusProps)(),(0,d.makeSliderProps)(),(0,c.makeVInputProps)()),{modelValue:{type:[Number,String],default:0}}),"VSlider"),g=(0,_.genericComponent)()({name:"VSlider",props:h(),emits:{"update:focused":function(e){return!0},"update:modelValue":function(e){return!0},start:function(e){return!0},end:function(e){return!0}},setup:function(e,t){var r=t.slots,n=t.emit,h=(0,i.ref)(),g=(0,f.useRtl)().rtlClasses,b=(0,d.useSteps)(e),y=(0,m.useProxiedModel)(e,"modelValue",void 0,function(e){return b.roundValue(null==e?b.min.value:e)}),S=(0,d.useSlider)({props:e,steps:b,onSliderStart:function(){n("start",y.value)},onSliderEnd:function(e){var t=T(e.value);y.value=t,n("end",t)},onSliderMove:function(e){var t=e.value;return y.value=T(t)},getActiveThumb:function(){var e;return null===(e=h.value)||void 0===e?void 0:e.$el}}),E=S.min,x=S.max,C=S.mousePressed,T=S.roundValue,w=S.onSliderMousedown,I=S.onSliderTouchstart,R=S.trackContainerRef,A=S.position,N=S.hasLabels,k=S.readonly,O=(0,p.useFocus)(e),D=O.isFocused,j=O.focus,P=O.blur,M=(0,i.computed)(function(){return A(y.value)});return(0,_.useRender)(function(){var t=(0,c.VInput).filterProps(e),n=!!(e.label||r.label||r.prepend);return(0,i.createVNode)(c.VInput,(0,i.mergeProps)({class:["v-slider",{"v-slider--has-labels":!!r["tick-label"]||N.value,"v-slider--focused":D.value,"v-slider--pressed":C.value,"v-slider--disabled":e.disabled},g.value,e.class],style:e.style},t,{focused:D.value}),(0,a._)((0,o._)({},r),{prepend:n?function(t){var n,o,a;return(0,i.createVNode)(i.Fragment,null,[null!==(a=null===(n=r.label)||void 0===n?void 0:n.call(r,t))&&void 0!==a?a:e.label?(0,i.createVNode)(u.VLabel,{id:t.id.value,class:"v-slider__label",text:e.label},null):void 0,null===(o=r.prepend)||void 0===o?void 0:o.call(r,t)])}:void 0,default:function(t){var n=t.id,o=t.messagesId;return(0,i.createVNode)("div",{class:"v-slider__container",onMousedown:k.value?void 0:w,onTouchstartPassive:k.value?void 0:I},[(0,i.createVNode)("input",{id:n.value,name:e.name||n.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:y.value},null),(0,i.createVNode)(l.VSliderTrack,{ref:R,start:0,stop:M.value},{"tick-label":r["tick-label"]}),(0,i.createVNode)(s.VSliderThumb,{ref:h,"aria-describedby":o.value,focused:D.value,min:E.value,max:x.value,modelValue:y.value,"onUpdate:modelValue":function(e){return y.value=e},position:M.value,elevation:e.elevation,onFocus:j,onBlur:P,ripple:e.ripple,name:e.name},{"thumb-label":r["thumb-label"]})])}}))}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VSlider.css":"eNuTd","./VSliderThumb.mjs":"8cU0F","./VSliderTrack.mjs":"cyHw6","../VInput/VInput.mjs":"75G3q","../VLabel/index.mjs":"klORW","./slider.mjs":"9RflR","../../composables/focus.mjs":"bmd72","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],eNuTd:[function(){},{}],"8cU0F":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSliderThumbProps",function(){return _}),n.export(r,"VSliderThumb",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VSliderThumb.css");var i=e("./slider.mjs"),s=e("../transitions/index.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/elevation.mjs"),d=e("../../composables/locale.mjs"),p=e("../../directives/ripple/index.mjs"),f=n.interopDefault(p),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String},(0,c.makeComponentProps)()),"VSliderThumb"),h=(0,m.genericComponent)()({name:"VSliderThumb",directives:{Ripple:f.default},props:_(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=t.emit,c=(0,a.inject)(i.VSliderSymbol),p=(0,d.useRtl)(),f=p.isRtl,_=p.rtlClasses;if(!c)throw Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");var h=c.thumbColor,g=c.step,b=c.disabled,y=c.thumbSize,S=c.thumbLabel,E=c.direction,x=c.isReversed,C=c.vertical,T=c.readonly,w=c.elevation,I=c.mousePressed,R=c.decimals,A=c.indexFromEnd,N=(0,a.computed)(function(){return b.value?void 0:w.value}),k=(0,u.useElevation)(N).elevationClasses,O=(0,l.useTextColor)(h),D=O.textColorClasses,j=O.textColorStyles,P=m.keyValues.pageup,M=m.keyValues.pagedown,L=m.keyValues.end,V=m.keyValues.home,F=m.keyValues.left,B=m.keyValues.right,U=m.keyValues.down,G=m.keyValues.up,q=[P,M,L,V,F,B,U,G],Y=(0,a.computed)(function(){return g.value?[1,2,3]:[1,5,10]});function H(t){var r=function(t,r){if(q.includes(t.key)){t.preventDefault();var n=g.value||.1,o=(e.max-e.min)/n;if([F,B,U,G].includes(t.key)){var a=(C.value?[f.value?F:B,x.value?U:G]:A.value!==f.value?[F,G]:[B,G]).includes(t.key)?1:-1,i=t.shiftKey?2:t.ctrlKey?1:0;r+=a*n*Y.value[i]}else t.key===V?r=e.min:t.key===L?r=e.max:r-=(t.key===M?1:-1)*n*(o>100?o/10:10);return Math.max(e.min,Math.min(e.max,r))}}(t,e.modelValue);null!=r&&n("update:modelValue",r)}return(0,m.useRender)(function(){var t=(0,m.convertToUnit)(A.value?100-e.position:e.position,"%");return(0,a.createVNode)("div",{class:["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&I.value},e.class,_.value],style:[{"--v-slider-thumb-position":t,"--v-slider-thumb-size":(0,m.convertToUnit)(y.value)},e.style],role:"slider",tabindex:b.value?-1:0,"aria-label":e.name,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.modelValue,"aria-readonly":!!T.value,"aria-orientation":E.value,onKeydown:T.value?void 0:H},[(0,a.createVNode)("div",{class:["v-slider-thumb__surface",D.value,k.value],style:(0,o._)({},j.value)},null),(0,a.withDirectives)((0,a.createVNode)("div",{class:["v-slider-thumb__ripple",D.value],style:j.value},null),[[(0,a.resolveDirective)("ripple"),e.ripple,null,{circle:!0,center:!0}]]),(0,a.createVNode)(s.VScaleTransition,{origin:"bottom center"},{default:function(){var t,n;return[(0,a.withDirectives)((0,a.createVNode)("div",{class:"v-slider-thumb__label-container"},[(0,a.createVNode)("div",{class:["v-slider-thumb__label"]},[(0,a.createVNode)("div",null,[null!==(n=null===(t=r["thumb-label"])||void 0===t?void 0:t.call(r,{modelValue:e.modelValue}))&&void 0!==n?n:e.modelValue.toFixed(g.value?R.value:1)])])]),[[a.vShow,S.value&&e.focused||"always"===S.value]])]}})])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSliderThumb.css":"fYQnY","./slider.mjs":"9RflR","../transitions/index.mjs":"9jbNO","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/elevation.mjs":"jNJPe","../../composables/locale.mjs":"8eTqB","../../directives/ripple/index.mjs":"5qUsh","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fYQnY:[function(){},{}],"9RflR":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSliderSymbol",function(){return d}),n.export(r,"getOffset",function(){return p}),n.export(r,"makeSliderProps",function(){return f}),n.export(r,"useSteps",function(){return m}),n.export(r,"useSlider",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("../../composables/elevation.mjs"),s=e("../../composables/locale.mjs"),l=e("../../composables/rounded.mjs"),c=e("vue"),u=e("../../util/index.mjs"),d=Symbol.for("vuetify:v-slider");function p(e,t,r){var n=t.getBoundingClientRect(),o="touches"in e?e.touches[0]:e;return"vertical"===r?o.clientY-(n.top+n.height/2):o.clientX-(n.left+n.width/2)}var f=(0,u.propsFactory)((0,a._)((0,o._)({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:function(e){return"boolean"==typeof e||"always"===e}},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:function(e){return"boolean"==typeof e||"always"===e}},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:function(e){return["vertical","horizontal"].includes(e)}},reverse:Boolean},(0,l.makeRoundedProps)(),(0,i.makeElevationProps)({elevation:2})),{ripple:{type:Boolean,default:!0}}),"Slider"),m=function(e){var t=(0,c.computed)(function(){return parseFloat(e.min)}),r=(0,c.computed)(function(){return parseFloat(e.max)}),n=(0,c.computed)(function(){return+e.step>0?parseFloat(e.step):0}),o=(0,c.computed)(function(){return Math.max((0,u.getDecimals)(n.value),(0,u.getDecimals)(t.value))});return{min:t,max:r,step:n,decimals:o,roundValue:function(e){if(e=parseFloat(e),n.value<=0)return e;var a=(0,u.clamp)(e,t.value,r.value),i=t.value%n.value;return parseFloat(Math.min(Math.round((a-i)/n.value)*n.value+i,r.value).toFixed(o.value))}}},_=function(e){var t=function(e){var t,r,o="vertical"===n.direction,a=null===(r=j.value)||void 0===r?void 0:r.$el.getBoundingClientRect(),i=a[o?"top":"left"],s=a[o?"height":"width"],l=Math.min(Math.max((t=o?"clientY":"clientX",(("touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t])-i-D.value)/s),0),1)||0;return(o?g.value:g.value!==m.value)&&(l=1-l),x(b.value+l*(y.value-b.value))},r=function(e){i({value:t(e)})},n=e.props,o=e.steps,a=e.onSliderStart,i=e.onSliderMove,l=e.onSliderEnd,f=e.getActiveThumb,m=(0,s.useRtl)().isRtl,_=(0,c.toRef)(n,"reverse"),h=(0,c.computed)(function(){return"vertical"===n.direction}),g=(0,c.computed)(function(){return h.value!==_.value}),b=o.min,y=o.max,S=o.step,E=o.decimals,x=o.roundValue,C=(0,c.computed)(function(){return parseInt(n.thumbSize,10)}),T=(0,c.computed)(function(){return parseInt(n.tickSize,10)}),w=(0,c.computed)(function(){return parseInt(n.trackSize,10)}),I=(0,c.computed)(function(){return(y.value-b.value)/S.value}),R=(0,c.toRef)(n,"disabled"),A=(0,c.computed)(function(){var e;return n.error||n.disabled?void 0:null!==(e=n.thumbColor)&&void 0!==e?e:n.color}),N=(0,c.computed)(function(){var e;return n.error||n.disabled?void 0:null!==(e=n.trackColor)&&void 0!==e?e:n.color}),k=(0,c.computed)(function(){var e;return n.error||n.disabled?void 0:null!==(e=n.trackFillColor)&&void 0!==e?e:n.color}),O=(0,c.shallowRef)(!1),D=(0,c.shallowRef)(0),j=(0,c.ref)(),P=(0,c.ref)(),M=function(e){l({value:t(e)}),O.value=!1,D.value=0},L=function(e){P.value=f(e),P.value&&(P.value.focus(),O.value=!0,P.value.contains(e.target)?D.value=p(e,P.value,n.direction):(D.value=0,i({value:t(e)})),a({value:t(e)}))},V={passive:!0,capture:!0};function F(e){e.stopPropagation(),e.preventDefault(),M(e),window.removeEventListener("mousemove",r,V),window.removeEventListener("mouseup",F)}function B(e){var t;M(e),window.removeEventListener("touchmove",r,V),null===(t=e.target)||void 0===t||t.removeEventListener("touchend",B)}var U=function(e){var t=(e-b.value)/(y.value-b.value)*100;return(0,u.clamp)(isNaN(t)?0:t,0,100)},G=(0,c.toRef)(n,"showTicks"),q=(0,c.computed)(function(){return G.value?n.ticks?Array.isArray(n.ticks)?n.ticks.map(function(e){return{value:e,position:U(e),label:e.toString()}}):Object.keys(n.ticks).map(function(e){return{value:parseFloat(e),position:U(parseFloat(e)),label:n.ticks[e]}}):I.value!==1/0?(0,u.createRange)(I.value+1).map(function(e){var t=b.value+e*S.value;return{value:t,position:U(t)}}):[]:[]}),Y=(0,c.computed)(function(){return q.value.some(function(e){return!!e.label})}),H={activeThumbRef:P,color:(0,c.toRef)(n,"color"),decimals:E,disabled:R,direction:(0,c.toRef)(n,"direction"),elevation:(0,c.toRef)(n,"elevation"),hasLabels:Y,isReversed:_,indexFromEnd:g,min:b,max:y,mousePressed:O,numTicks:I,onSliderMousedown:function(e){e.preventDefault(),L(e),window.addEventListener("mousemove",r,V),window.addEventListener("mouseup",F,{passive:!1})},onSliderTouchstart:function(e){var t;L(e),window.addEventListener("touchmove",r,V),null===(t=e.target)||void 0===t||t.addEventListener("touchend",B,{passive:!1})},parsedTicks:q,parseMouseMove:t,position:U,readonly:(0,c.toRef)(n,"readonly"),rounded:(0,c.toRef)(n,"rounded"),roundValue:x,showTicks:G,startOffset:D,step:S,thumbSize:C,thumbColor:A,thumbLabel:(0,c.toRef)(n,"thumbLabel"),ticks:(0,c.toRef)(n,"ticks"),tickSize:T,trackColor:N,trackContainerRef:j,trackFillColor:k,trackSize:w,vertical:h};return(0,c.provide)(d,H),H}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","../../composables/elevation.mjs":"jNJPe","../../composables/locale.mjs":"8eTqB","../../composables/rounded.mjs":"4CR7Z",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cyHw6:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSliderTrackProps",function(){return p}),n.export(r,"VSliderTrack",function(){return f});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VSliderTrack.css");var s=e("./slider.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/rounded.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)((0,a._)({start:{type:Number,required:!0},stop:{type:Number,required:!0}},(0,c.makeComponentProps)()),"VSliderTrack"),f=(0,d.genericComponent)()({name:"VSliderTrack",props:p(),emits:{},setup:function(e,t){var r=t.slots,n=(0,i.inject)(s.VSliderSymbol);if(!n)throw Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");var c=n.color,p=n.parsedTicks,f=n.rounded,m=n.showTicks,_=n.tickSize,h=n.trackColor,g=n.trackFillColor,b=n.trackSize,y=n.vertical,S=n.min,E=n.max,x=n.indexFromEnd,C=(0,u.useRounded)(f).roundedClasses,T=(0,l.useBackgroundColor)(g),w=T.backgroundColorClasses,I=T.backgroundColorStyles,R=(0,l.useBackgroundColor)(h),A=R.backgroundColorClasses,N=R.backgroundColorStyles,k=(0,i.computed)(function(){return"inset-".concat(y.value?"block":"inline","-").concat(x.value?"end":"start")}),O=(0,i.computed)(function(){return y.value?"height":"width"}),D=(0,i.computed)(function(){var e;return e={},(0,o._)(e,k.value,"0%"),(0,o._)(e,O.value,"100%"),e}),j=(0,i.computed)(function(){return e.stop-e.start}),P=(0,i.computed)(function(){var t;return t={},(0,o._)(t,k.value,(0,d.convertToUnit)(e.start,"%")),(0,o._)(t,O.value,(0,d.convertToUnit)(j.value,"%")),t}),M=(0,i.computed)(function(){return m.value?(y.value?p.value.slice().reverse():p.value).map(function(t,n){var a,s,l=t.value!==S.value&&t.value!==E.value?(0,d.convertToUnit)(t.position,"%"):void 0;return(0,i.createVNode)("div",{key:t.value,class:["v-slider-track__tick",{"v-slider-track__tick--filled":t.position>=e.start&&t.position<=e.stop,"v-slider-track__tick--first":t.value===S.value,"v-slider-track__tick--last":t.value===E.value}],style:(0,o._)({},k.value,l)},[(t.label||r["tick-label"])&&(0,i.createVNode)("div",{class:"v-slider-track__tick-label"},[null!==(s=null===(a=r["tick-label"])||void 0===a?void 0:a.call(r,{tick:t,index:n}))&&void 0!==s?s:t.label])])}):[]});return(0,d.useRender)(function(){return(0,i.createVNode)("div",{class:["v-slider-track",C.value,e.class],style:[{"--v-slider-track-size":(0,d.convertToUnit)(b.value),"--v-slider-tick-size":(0,d.convertToUnit)(_.value)},e.style]},[(0,i.createVNode)("div",{class:["v-slider-track__background",A.value,{"v-slider-track__background--opacity":!!c.value||!g.value}],style:(0,a._)({},D.value,N.value)},null),(0,i.createVNode)("div",{class:["v-slider-track__fill",w.value],style:(0,a._)({},P.value,I.value)},null),m.value&&(0,i.createVNode)("div",{class:["v-slider-track__ticks",{"v-slider-track__ticks--always-show":"always"===m.value}]},[M.value])])}),{}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSliderTrack.css":"3a0fw","./slider.mjs":"9RflR","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/rounded.mjs":"4CR7Z","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3a0fw":[function(){},{}],iEsjA:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColorPickerSwatchesProps",function(){return d}),n.export(r,"VColorPickerSwatches",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VColorPickerSwatches.css");var i=e("../VIcon/index.mjs"),s=e("../../composables/component.mjs"),l=e("../../util/index.mjs"),c=e("../../util/colors.mjs"),u=n.interopDefault(c),d=(0,l.propsFactory)((0,o._)({swatches:{type:Array,default:function(){var e;return Object.keys(e=u.default).map(function(t){var r=e[t];return r.base?[r.base,r.darken4,r.darken3,r.darken2,r.darken1,r.lighten1,r.lighten2,r.lighten3,r.lighten4,r.lighten5]:[r.black,r.white,r.transparent]})}},disabled:Boolean,color:Object,maxHeight:[Number,String]},(0,s.makeComponentProps)()),"VColorPickerSwatches"),p=(0,l.defineComponent)({name:"VColorPickerSwatches",props:d(),emits:{"update:color":function(e){return!0}},setup:function(e,t){var r=t.emit;return(0,l.useRender)(function(){return(0,a.createVNode)("div",{class:["v-color-picker-swatches",e.class],style:[{maxHeight:(0,l.convertToUnit)(e.maxHeight)},e.style]},[(0,a.createVNode)("div",null,[e.swatches.map(function(t){return(0,a.createVNode)("div",{class:"v-color-picker-swatches__swatch"},[t.map(function(t){var n=(0,l.parseColor)(t),o=(0,l.RGBtoHSV)(n),s=(0,l.RGBtoCSS)(n);return(0,a.createVNode)("div",{class:"v-color-picker-swatches__color",onClick:function(){return o&&r("update:color",o)}},[(0,a.createVNode)("div",{style:{background:s}},[e.color&&(0,l.deepEqual)(e.color,o)?(0,a.createVNode)(i.VIcon,{size:"x-small",icon:"$success",color:(0,l.getContrast)(t,"#FFFFFF")>2?"white":"black"},null):void 0])])})])})])])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VColorPickerSwatches.css":"8F39p","../VIcon/index.mjs":"kpG2s","../../composables/component.mjs":"c32AV","../../util/index.mjs":"iWvvc","../../util/colors.mjs":"aiP47","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8F39p":[function(){},{}],aiP47:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"red",function(){return o}),n.export(r,"pink",function(){return a}),n.export(r,"purple",function(){return i}),n.export(r,"deepPurple",function(){return s}),n.export(r,"indigo",function(){return l}),n.export(r,"blue",function(){return c}),n.export(r,"lightBlue",function(){return u}),n.export(r,"cyan",function(){return d}),n.export(r,"teal",function(){return p}),n.export(r,"green",function(){return f}),n.export(r,"lightGreen",function(){return m}),n.export(r,"lime",function(){return _}),n.export(r,"yellow",function(){return h}),n.export(r,"amber",function(){return g}),n.export(r,"orange",function(){return b}),n.export(r,"deepOrange",function(){return y}),n.export(r,"brown",function(){return S}),n.export(r,"blueGrey",function(){return E}),n.export(r,"grey",function(){return x}),n.export(r,"shades",function(){return C});var o={base:"#f44336",lighten5:"#ffebee",lighten4:"#ffcdd2",lighten3:"#ef9a9a",lighten2:"#e57373",lighten1:"#ef5350",darken1:"#e53935",darken2:"#d32f2f",darken3:"#c62828",darken4:"#b71c1c",accent1:"#ff8a80",accent2:"#ff5252",accent3:"#ff1744",accent4:"#d50000"},a={base:"#e91e63",lighten5:"#fce4ec",lighten4:"#f8bbd0",lighten3:"#f48fb1",lighten2:"#f06292",lighten1:"#ec407a",darken1:"#d81b60",darken2:"#c2185b",darken3:"#ad1457",darken4:"#880e4f",accent1:"#ff80ab",accent2:"#ff4081",accent3:"#f50057",accent4:"#c51162"},i={base:"#9c27b0",lighten5:"#f3e5f5",lighten4:"#e1bee7",lighten3:"#ce93d8",lighten2:"#ba68c8",lighten1:"#ab47bc",darken1:"#8e24aa",darken2:"#7b1fa2",darken3:"#6a1b9a",darken4:"#4a148c",accent1:"#ea80fc",accent2:"#e040fb",accent3:"#d500f9",accent4:"#aa00ff"},s={base:"#673ab7",lighten5:"#ede7f6",lighten4:"#d1c4e9",lighten3:"#b39ddb",lighten2:"#9575cd",lighten1:"#7e57c2",darken1:"#5e35b1",darken2:"#512da8",darken3:"#4527a0",darken4:"#311b92",accent1:"#b388ff",accent2:"#7c4dff",accent3:"#651fff",accent4:"#6200ea"},l={base:"#3f51b5",lighten5:"#e8eaf6",lighten4:"#c5cae9",lighten3:"#9fa8da",lighten2:"#7986cb",lighten1:"#5c6bc0",darken1:"#3949ab",darken2:"#303f9f",darken3:"#283593",darken4:"#1a237e",accent1:"#8c9eff",accent2:"#536dfe",accent3:"#3d5afe",accent4:"#304ffe"},c={base:"#2196f3",lighten5:"#e3f2fd",lighten4:"#bbdefb",lighten3:"#90caf9",lighten2:"#64b5f6",lighten1:"#42a5f5",darken1:"#1e88e5",darken2:"#1976d2",darken3:"#1565c0",darken4:"#0d47a1",accent1:"#82b1ff",accent2:"#448aff",accent3:"#2979ff",accent4:"#2962ff"},u={base:"#03a9f4",lighten5:"#e1f5fe",lighten4:"#b3e5fc",lighten3:"#81d4fa",lighten2:"#4fc3f7",lighten1:"#29b6f6",darken1:"#039be5",darken2:"#0288d1",darken3:"#0277bd",darken4:"#01579b",accent1:"#80d8ff",accent2:"#40c4ff",accent3:"#00b0ff",accent4:"#0091ea"},d={base:"#00bcd4",lighten5:"#e0f7fa",lighten4:"#b2ebf2",lighten3:"#80deea",lighten2:"#4dd0e1",lighten1:"#26c6da",darken1:"#00acc1",darken2:"#0097a7",darken3:"#00838f",darken4:"#006064",accent1:"#84ffff",accent2:"#18ffff",accent3:"#00e5ff",accent4:"#00b8d4"},p={base:"#009688",lighten5:"#e0f2f1",lighten4:"#b2dfdb",lighten3:"#80cbc4",lighten2:"#4db6ac",lighten1:"#26a69a",darken1:"#00897b",darken2:"#00796b",darken3:"#00695c",darken4:"#004d40",accent1:"#a7ffeb",accent2:"#64ffda",accent3:"#1de9b6",accent4:"#00bfa5"},f={base:"#4caf50",lighten5:"#e8f5e9",lighten4:"#c8e6c9",lighten3:"#a5d6a7",lighten2:"#81c784",lighten1:"#66bb6a",darken1:"#43a047",darken2:"#388e3c",darken3:"#2e7d32",darken4:"#1b5e20",accent1:"#b9f6ca",accent2:"#69f0ae",accent3:"#00e676",accent4:"#00c853"},m={base:"#8bc34a",lighten5:"#f1f8e9",lighten4:"#dcedc8",lighten3:"#c5e1a5",lighten2:"#aed581",lighten1:"#9ccc65",darken1:"#7cb342",darken2:"#689f38",darken3:"#558b2f",darken4:"#33691e",accent1:"#ccff90",accent2:"#b2ff59",accent3:"#76ff03",accent4:"#64dd17"},_={base:"#cddc39",lighten5:"#f9fbe7",lighten4:"#f0f4c3",lighten3:"#e6ee9c",lighten2:"#dce775",lighten1:"#d4e157",darken1:"#c0ca33",darken2:"#afb42b",darken3:"#9e9d24",darken4:"#827717",accent1:"#f4ff81",accent2:"#eeff41",accent3:"#c6ff00",accent4:"#aeea00"},h={base:"#ffeb3b",lighten5:"#fffde7",lighten4:"#fff9c4",lighten3:"#fff59d",lighten2:"#fff176",lighten1:"#ffee58",darken1:"#fdd835",darken2:"#fbc02d",darken3:"#f9a825",darken4:"#f57f17",accent1:"#ffff8d",accent2:"#ffff00",accent3:"#ffea00",accent4:"#ffd600"},g={base:"#ffc107",lighten5:"#fff8e1",lighten4:"#ffecb3",lighten3:"#ffe082",lighten2:"#ffd54f",lighten1:"#ffca28",darken1:"#ffb300",darken2:"#ffa000",darken3:"#ff8f00",darken4:"#ff6f00",accent1:"#ffe57f",accent2:"#ffd740",accent3:"#ffc400",accent4:"#ffab00"},b={base:"#ff9800",lighten5:"#fff3e0",lighten4:"#ffe0b2",lighten3:"#ffcc80",lighten2:"#ffb74d",lighten1:"#ffa726",darken1:"#fb8c00",darken2:"#f57c00",darken3:"#ef6c00",darken4:"#e65100",accent1:"#ffd180",accent2:"#ffab40",accent3:"#ff9100",accent4:"#ff6d00"},y={base:"#ff5722",lighten5:"#fbe9e7",lighten4:"#ffccbc",lighten3:"#ffab91",lighten2:"#ff8a65",lighten1:"#ff7043",darken1:"#f4511e",darken2:"#e64a19",darken3:"#d84315",darken4:"#bf360c",accent1:"#ff9e80",accent2:"#ff6e40",accent3:"#ff3d00",accent4:"#dd2c00"},S={base:"#795548",lighten5:"#efebe9",lighten4:"#d7ccc8",lighten3:"#bcaaa4",lighten2:"#a1887f",lighten1:"#8d6e63",darken1:"#6d4c41",darken2:"#5d4037",darken3:"#4e342e",darken4:"#3e2723"},E={base:"#607d8b",lighten5:"#eceff1",lighten4:"#cfd8dc",lighten3:"#b0bec5",lighten2:"#90a4ae",lighten1:"#78909c",darken1:"#546e7a",darken2:"#455a64",darken3:"#37474f",darken4:"#263238"},x={base:"#9e9e9e",lighten5:"#fafafa",lighten4:"#f5f5f5",lighten3:"#eeeeee",lighten2:"#e0e0e0",lighten1:"#bdbdbd",darken1:"#757575",darken2:"#616161",darken3:"#424242",darken4:"#212121"},C={black:"#000000",white:"#ffffff",transparent:"#ffffff00"};r.default={red:o,pink:a,purple:i,deepPurple:s,indigo:l,blue:c,lightBlue:u,cyan:d,teal:p,green:f,lightGreen:m,lime:_,yellow:h,amber:g,orange:b,deepOrange:y,brown:S,blueGrey:E,grey:x,shades:C}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jUuzJ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSheetProps",function(){return g}),n.export(r,"VSheet",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VSheet.css");var i=e("../../composables/border.mjs"),s=e("../../composables/color.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/dimensions.mjs"),u=e("../../composables/elevation.mjs"),d=e("../../composables/location.mjs"),p=e("../../composables/position.mjs"),f=e("../../composables/rounded.mjs"),m=e("../../composables/tag.mjs"),_=e("../../composables/theme.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,o._)({color:String},(0,i.makeBorderProps)(),(0,l.makeComponentProps)(),(0,c.makeDimensionProps)(),(0,u.makeElevationProps)(),(0,d.makeLocationProps)(),(0,p.makePositionProps)(),(0,f.makeRoundedProps)(),(0,m.makeTagProps)(),(0,_.makeThemeProps)()),"VSheet"),b=(0,h.genericComponent)()({name:"VSheet",props:g(),setup:function(e,t){var r=t.slots,n=(0,_.provideTheme)(e).themeClasses,o=(0,s.useBackgroundColor)((0,a.toRef)(e,"color")),l=o.backgroundColorClasses,m=o.backgroundColorStyles,g=(0,i.useBorder)(e).borderClasses,b=(0,c.useDimension)(e).dimensionStyles,y=(0,u.useElevation)(e).elevationClasses,S=(0,d.useLocation)(e).locationStyles,E=(0,p.usePosition)(e).positionClasses,x=(0,f.useRounded)(e).roundedClasses;return(0,h.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-sheet",n.value,l.value,g.value,y.value,E.value,x.value,e.class],style:[m.value,b.value,S.value,e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSheet.css":"eoVNN","../../composables/border.mjs":"8SyXK","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/elevation.mjs":"jNJPe","../../composables/location.mjs":"S9pdd","../../composables/position.mjs":"gvTsA","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],eoVNN:[function(){},{}],"1zR0n":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VCombobox",function(){return o.VCombobox});var o=e("./VCombobox.mjs")},{"./VCombobox.mjs":"3A8b2","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3A8b2":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVComboboxProps",function(){return k}),n.export(r,"VCombobox",function(){return O});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("@swc/helpers/_/_to_consumable_array"),l=e("vue");e("./VCombobox.css");var c=e("../VAvatar/index.mjs"),u=e("../VCheckbox/index.mjs"),d=e("../VChip/index.mjs"),p=e("../VDefaultsProvider/index.mjs"),f=e("../VIcon/index.mjs"),m=e("../VList/index.mjs"),_=e("../VMenu/index.mjs"),h=e("../VSelect/VSelect.mjs"),g=e("../VTextField/index.mjs"),b=e("../VTextField/VTextField.mjs"),y=e("../VVirtualScroll/index.mjs"),S=e("../VSelect/useScrolling.mjs"),E=e("../../composables/color.mjs"),x=e("../../composables/filter.mjs"),C=e("../../composables/form.mjs"),T=e("../../composables/forwardRefs.mjs"),w=e("../../composables/list-items.mjs"),I=e("../../composables/locale.mjs"),R=e("../../composables/proxiedModel.mjs"),A=e("../../composables/transition.mjs"),N=e("../../util/index.mjs"),k=(0,N.propsFactory)((0,a._)({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array},(0,x.makeFilterProps)({filterKeys:["title"]}),(0,h.makeSelectProps)({hideNoData:!0,returnObject:!0}),(0,N.omit)((0,b.makeVTextFieldProps)({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),(0,A.makeTransitionProps)({transition:!1})),"VCombobox"),O=(0,N.genericComponent)()({name:"VCombobox",props:k(),emits:{"update:focused":function(e){return!0},"update:modelValue":function(e){return!0},"update:search":function(e){return!0},"update:menu":function(e){return!0}},setup:function(e,t){var r,n,h=t.emit,b=t.slots,A=(0,I.useLocale)().t,k=(0,l.ref)(),O=(0,l.shallowRef)(!1),D=(0,l.shallowRef)(!0),j=(0,l.shallowRef)(!1),P=(0,l.ref)(),M=(0,l.ref)(),L=(0,R.useProxiedModel)(e,"menu"),V=(0,l.computed)({get:function(){return L.value},set:function(e){var t;L.value&&!e&&null!==(t=P.value)&&void 0!==t&&t.ΨopenChildren.size||(L.value=e)}}),F=(0,l.shallowRef)(-1),B=!1,U=(0,l.computed)(function(){var e;return null===(e=k.value)||void 0===e?void 0:e.color}),G=(0,l.computed)(function(){return V.value?e.closeText:e.openText}),q=(0,w.useItems)(e),Y=q.items,H=q.transformIn,z=q.transformOut,W=(0,E.useTextColor)(U),K=W.textColorClasses,Q=W.textColorStyles,$=(0,R.useProxiedModel)(e,"modelValue",[],function(e){return H((0,N.wrapInArray)(e))},function(t){var r,n=z(t);return e.multiple?n:null!==(r=n[0])&&void 0!==r?r:null}),X=(0,C.useForm)(),Z=(0,l.computed)(function(){return!!(e.chips||b.chip)}),J=(0,l.computed)(function(){return Z.value||!!b.selection}),ee=(0,l.shallowRef)(e.multiple||J.value?"":null!==(n=null===(r=$.value[0])||void 0===r?void 0:r.title)&&void 0!==n?n:""),et=(0,l.computed)({get:function(){return ee.value},set:function(t){var r;if(ee.value=null!=t?t:"",e.multiple||J.value||($.value=[(0,w.transformItem)(e,t)]),t&&e.multiple&&(null===(r=e.delimiters)||void 0===r?void 0:r.length)){var n=t.split(new RegExp("(?:".concat(e.delimiters.join("|"),")+")));n.length>1&&(n.forEach(function(t){(t=t.trim())&&eb((0,w.transformItem)(e,t))}),ee.value="")}t||(F.value=-1),D.value=!t}}),er=(0,l.computed)(function(){return"function"==typeof e.counterValue?e.counterValue($.value):"number"==typeof e.counterValue?e.counterValue:e.multiple?$.value.length:et.value.length});(0,l.watch)(ee,function(e){B?(0,l.nextTick)(function(){return B=!1}):O.value&&!V.value&&(V.value=!0),h("update:search",e)}),(0,l.watch)($,function(t){var r,n;e.multiple||J.value||(ee.value=null!==(n=null===(r=t[0])||void 0===r?void 0:r.title)&&void 0!==n?n:"")});var en=(0,x.useFilter)(e,Y,function(){return D.value?"":et.value}),eo=en.filteredItems,ea=en.getMatches,ei=(0,l.computed)(function(){return e.hideSelected?eo.value.filter(function(e){return!$.value.some(function(t){return t.value===e.value})}):eo.value}),es=(0,l.computed)(function(){return $.value.map(function(e){return e.value})}),el=(0,l.computed)(function(){var t;return(!0===e.autoSelectFirst||"exact"===e.autoSelectFirst&&et.value===(null===(t=ei.value[0])||void 0===t?void 0:t.title))&&ei.value.length>0&&!D.value&&!j.value}),ec=(0,l.computed)(function(){return e.hideNoData&&!ei.value.length||e.readonly||(null==X?void 0:X.isReadonly.value)}),eu=(0,l.ref)(),ed=(0,S.useScrolling)(eu,k);function ep(t){B=!0,e.openOnClear&&(V.value=!0)}function ef(){ec.value||(V.value=!0)}function em(e){ec.value||(O.value&&(e.preventDefault(),e.stopPropagation()),V.value=!V.value)}function e_(e){var t;(0,N.checkPrintable)(e)&&(null===(t=k.value)||void 0===t||t.focus())}function eh(t){if(!(0,N.isComposingIgnoreKey)(t)&&!e.readonly&&(null==X||!X.isReadonly.value)){var r,n=k.value.selectionStart,o=$.value.length;if((F.value>-1||["Enter","ArrowDown","ArrowUp"].includes(t.key))&&t.preventDefault(),["Enter","ArrowDown"].includes(t.key)&&(V.value=!0),["Escape"].includes(t.key)&&(V.value=!1),["Enter","Escape","Tab"].includes(t.key)&&(el.value&&["Enter","Tab"].includes(t.key)&&!$.value.some(function(e){return e.value===ei.value[0].value})&&eb(eo.value[0]),D.value=!0),"ArrowDown"===t.key&&el.value&&(null===(r=eu.value)||void 0===r||r.focus("next")),"Enter"===t.key&&et.value&&(eb((0,w.transformItem)(e,et.value)),J.value&&(ee.value="")),["Backspace","Delete"].includes(t.key)){if(!e.multiple&&J.value&&$.value.length>0&&!et.value)return eb($.value[0],!1);if(~F.value){var a=F.value;eb($.value[F.value],!1),F.value=a>=o-1?o-2:a}else"Backspace"!==t.key||et.value||(F.value=o-1)}if(e.multiple){if("ArrowLeft"===t.key){if(F.value<0&&n>0)return;var i=F.value>-1?F.value-1:o-1;$.value[i]?F.value=i:(F.value=-1,k.value.setSelectionRange(et.value.length,et.value.length))}if("ArrowRight"===t.key){if(F.value<0)return;var s=F.value+1;$.value[s]?F.value=s:(F.value=-1,k.value.setSelectionRange(0,0))}}}}function ev(){var t;e.eager&&(null===(t=M.value)||void 0===t||t.calculateVisibleItems())}function eg(){if(O.value){var e;D.value=!0,null===(e=k.value)||void 0===e||e.focus()}}function eb(t){var r=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t&&!t.props.disabled){if(e.multiple){var n=$.value.findIndex(function(r){return e.valueComparator(r.value,t.value)}),o=null==r?!~n:r;if(~n){var a=o?(0,s._)($.value).concat([t]):(0,s._)($.value);a.splice(n,1),$.value=a}else o&&($.value=(0,s._)($.value).concat([t]));e.clearOnSelect&&(et.value="")}else{var i=!1!==r;$.value=i?[t]:[],ee.value=i&&!J.value?t.title:"",(0,l.nextTick)(function(){V.value=!1,D.value=!0})}}}function ey(e){O.value=!0,setTimeout(function(){j.value=!0})}function eS(e){j.value=!1}function eE(t){null!=t&&(""!==t||e.multiple||J.value)||($.value=[])}return(0,l.watch)(O,function(t,r){if(!t&&t!==r&&(F.value=-1,V.value=!1,et.value)){if(e.multiple){eb((0,w.transformItem)(e,et.value));return}J.value&&($.value.some(function(e){return e.title===et.value})?ee.value="":eb((0,w.transformItem)(e,et.value)))}}),(0,l.watch)(V,function(){if(!e.hideSelected&&V.value&&$.value.length){var t=ei.value.findIndex(function(t){return $.value.some(function(r){return e.valueComparator(r.value,t.value)})});N.IN_BROWSER&&window.requestAnimationFrame(function(){var e;t>=0&&(null===(e=M.value)||void 0===e||e.scrollToIndex(t))})}}),(0,l.watch)(function(){return e.items},function(e,t){!V.value&&O.value&&!t.length&&e.length&&(V.value=!0)}),(0,N.useRender)(function(){var t=!!(!e.hideNoData||ei.value.length||b["prepend-item"]||b["append-item"]||b["no-data"]),r=$.value.length>0,n=(0,g.VTextField).filterProps(e);return(0,l.createVNode)(g.VTextField,(0,l.mergeProps)({ref:k},n,{modelValue:et.value,"onUpdate:modelValue":[function(e){return et.value=e},eE],focused:O.value,"onUpdate:focused":function(e){return O.value=e},validationValue:$.externalValue,counterValue:er.value,dirty:r,class:["v-combobox",(0,o._)({"v-combobox--active-menu":V.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!J.value,"v-combobox--selecting-index":F.value>-1},"v-combobox--".concat(e.multiple?"multiple":"single"),!0),e.class],style:e.style,readonly:e.readonly,placeholder:r?void 0:e.placeholder,"onClick:clear":ep,"onMousedown:control":ef,onKeydown:eh}),(0,i._)((0,a._)({},b),{default:function(){return(0,l.createVNode)(l.Fragment,null,[(0,l.createVNode)(_.VMenu,(0,l.mergeProps)({ref:P,modelValue:V.value,"onUpdate:modelValue":function(e){return V.value=e},activator:"parent",contentClass:"v-combobox__content",disabled:ec.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:ev,onAfterLeave:eg},e.menuProps),{default:function(){var r;return[t&&(0,l.createVNode)(m.VList,(0,l.mergeProps)({ref:eu,selected:es.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:function(e){return e.preventDefault()},onKeydown:e_,onFocusin:ey,onFocusout:eS,tabindex:"-1","aria-live":"polite",color:null!==(r=e.itemColor)&&void 0!==r?r:e.color},ed,e.listProps),{default:function(){var t,r,n,o;return[null===(t=b["prepend-item"])||void 0===t?void 0:t.call(b),!ei.value.length&&!e.hideNoData&&(null!==(o=null===(r=b["no-data"])||void 0===r?void 0:r.call(b))&&void 0!==o?o:(0,l.createVNode)(m.VListItem,{title:A(e.noDataText)},null)),(0,l.createVNode)(y.VVirtualScroll,{ref:M,renderless:!0,items:ei.value},{default:function(t){var r,n,o=t.item,a=t.index,i=t.itemRef,s=(0,l.mergeProps)(o.props,{ref:i,key:a,active:!!el.value&&0===a||void 0,onClick:function(){return eb(o,null)}});return null!==(n=null===(r=b.item)||void 0===r?void 0:r.call(b,{item:o,index:a,props:s}))&&void 0!==n?n:(0,l.createVNode)(m.VListItem,(0,l.mergeProps)(s,{role:"option"}),{prepend:function(t){var r=t.isSelected;return(0,l.createVNode)(l.Fragment,null,[e.multiple&&!e.hideSelected?(0,l.createVNode)(u.VCheckboxBtn,{key:o.value,modelValue:r,ripple:!1,tabindex:"-1"},null):void 0,o.props.prependAvatar&&(0,l.createVNode)(c.VAvatar,{image:o.props.prependAvatar},null),o.props.prependIcon&&(0,l.createVNode)(f.VIcon,{icon:o.props.prependIcon},null)])},title:function(){var e,t,r;return D.value?o.title:function(e,t,r){if(null==t)return e;if(Array.isArray(t))throw Error("Multiple matches is not implemented");return"number"==typeof t&&~t?(0,l.createVNode)(l.Fragment,null,[(0,l.createVNode)("span",{class:"v-combobox__unmask"},[e.substr(0,t)]),(0,l.createVNode)("span",{class:"v-combobox__mask"},[e.substr(t,r)]),(0,l.createVNode)("span",{class:"v-combobox__unmask"},[e.substr(t+r)])]):e}(o.title,null===(e=ea(o))||void 0===e?void 0:e.title,null!==(r=null===(t=et.value)||void 0===t?void 0:t.length)&&void 0!==r?r:0)}})}}),null===(n=b["append-item"])||void 0===n?void 0:n.call(b)]}})]}}),$.value.map(function(t,r){var n=function(e){e.stopPropagation(),e.preventDefault(),eb(t,!1)},o={"onClick:close":n,onKeydown:function(e){("Enter"===e.key||" "===e.key)&&(e.preventDefault(),e.stopPropagation(),n(e))},onMousedown:function(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},a=Z.value?!!b.chip:!!b.selection,i=a?(0,N.ensureValidVNode)(Z.value?b.chip({item:t,index:r,props:o}):b.selection({item:t,index:r})):void 0;if(!a||i)return(0,l.createVNode)("div",{key:t.value,class:["v-combobox__selection",r===F.value&&["v-combobox__selection--selected",K.value]],style:r===F.value?Q.value:{}},[Z.value?b.chip?(0,l.createVNode)(p.VDefaultsProvider,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:t.title}}},{default:function(){return[i]}}):(0,l.createVNode)(d.VChip,(0,l.mergeProps)({key:"chip",closable:e.closableChips,size:"small",text:t.title,disabled:t.props.disabled},o),null):null!=i?i:(0,l.createVNode)("span",{class:"v-combobox__selection-text"},[t.title,e.multiple&&r<$.value.length-1&&(0,l.createVNode)("span",{class:"v-combobox__selection-comma"},[(0,l.createTextVNode)(",")])])])})])},"append-inner":function(){for(var t,r=arguments.length,n=Array(r),o=0;o2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"root";if(!r.length)return[];var a=function(e,t){if(!e.length)return[];var r=new Map,n=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var l=i.value,u=(0,c.getObjectValueByPath)(l.raw,t);r.has(u)||r.set(u,[]),r.get(u).push(l)}}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}return r}(t,r[0]),i=[],s=r.slice(1);return a.forEach(function(t,a){var l=r[0],c="".concat(o,"_").concat(l,"_").concat(a);i.push({depth:n,id:c,key:l,value:a,items:s.length?e(t,s,n+1,c):t,type:"group"})}),i}(e.value,t.value.map(function(e){return e.key})),r.value):e.value})}}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_to_consumable_array":"glvYM","../../../composables/proxiedModel.mjs":"7LrVW",vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iVauq:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useOptions",function(){return i});var o=e("vue"),a=e("../../../util/index.mjs");function i(e){var t=e.page,r=e.itemsPerPage,n=e.sortBy,i=e.groupBy,s=e.search,l=(0,a.getCurrentInstance)("VDataTable"),c=(0,o.computed)(function(){return{page:t.value,itemsPerPage:r.value,sortBy:n.value,groupBy:i.value,search:s.value}}),u=null;(0,o.watch)(c,function(){(0,a.deepEqual)(u,c.value)||(u&&u.search!==c.value.search&&(t.value=1),l.emit("update:options",c.value),u=c.value)},{deep:!0,immediate:!0})}},{vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cpI1f:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDataTablePaginateProps",function(){return s}),n.export(r,"createPagination",function(){return c}),n.export(r,"providePagination",function(){return u}),n.export(r,"usePagination",function(){return d}),n.export(r,"usePaginatedItems",function(){return p});var o=e("../../../composables/proxiedModel.mjs"),a=e("vue"),i=e("../../../util/index.mjs"),s=(0,i.propsFactory)({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10}},"DataTable-paginate"),l=Symbol.for("vuetify:data-table-pagination");function c(e){return{page:(0,o.useProxiedModel)(e,"page",void 0,function(e){return+(null!=e?e:1)}),itemsPerPage:(0,o.useProxiedModel)(e,"itemsPerPage",void 0,function(e){return+(null!=e?e:10)})}}function u(e){var t=e.page,r=e.itemsPerPage,n=e.itemsLength,o=(0,a.computed)(function(){return -1===r.value?0:r.value*(t.value-1)}),s=(0,a.computed)(function(){return -1===r.value?n.value:Math.min(n.value,o.value+r.value)}),c=(0,a.computed)(function(){return -1===r.value||0===n.value?1:Math.ceil(n.value/r.value)});(0,a.watch)([t,c],function(){t.value>c.value&&(t.value=c.value)});var u={page:t,itemsPerPage:r,startIndex:o,stopIndex:s,pageCount:c,itemsLength:n,nextPage:function(){t.value=(0,i.clamp)(t.value+1,1,c.value)},prevPage:function(){t.value=(0,i.clamp)(t.value-1,1,c.value)},setPage:function(e){t.value=(0,i.clamp)(e,1,c.value)},setItemsPerPage:function(e){r.value=e,t.value=1}};return(0,a.provide)(l,u),u}function d(){var e=(0,a.inject)(l);if(!e)throw Error("Missing pagination!");return e}function p(e){var t=(0,i.getCurrentInstance)("usePaginatedItems"),r=e.items,n=e.startIndex,o=e.stopIndex,s=e.itemsPerPage,l=(0,a.computed)(function(){return s.value<=0?r.value:r.value.slice(n.value,o.value)});return(0,a.watch)(l,function(e){t.emit("update:currentItems",e)}),{paginatedItems:l}}},{"../../../composables/proxiedModel.mjs":"7LrVW",vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jLp0I:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDataTableSelectProps",function(){return d}),n.export(r,"VDataTableSelectionSymbol",function(){return p}),n.export(r,"provideSelection",function(){return f}),n.export(r,"useSelection",function(){return m});var o=e("@swc/helpers/_/_to_consumable_array"),a=e("../../../composables/proxiedModel.mjs"),i=e("vue"),s=e("../../../util/index.mjs"),l={showSelectAll:!1,allSelected:function(){return[]},select:function(e){var t,r=e.items;return new Set(e.value?[null===(t=r[0])||void 0===t?void 0:t.value]:[])},selectAll:function(e){return e.selected}},c={showSelectAll:!0,allSelected:function(e){return e.currentPage},select:function(e){var t=e.items,r=e.value,n=e.selected,o=!0,a=!1,i=void 0;try{for(var s,l=t[Symbol.iterator]();!(o=(s=l.next()).done);o=!0){var c=s.value;r?n.add(c.value):n.delete(c.value)}}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}return n},selectAll:function(e){var t=e.value,r=e.currentPage,n=e.selected;return c.select({items:r,value:t,selected:n})}},u={showSelectAll:!0,allSelected:function(e){return e.allItems},select:function(e){var t=e.items,r=e.value,n=e.selected,o=!0,a=!1,i=void 0;try{for(var s,l=t[Symbol.iterator]();!(o=(s=l.next()).done);o=!0){var c=s.value;r?n.add(c.value):n.delete(c.value)}}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}return n},selectAll:function(e){var t=e.value,r=e.allItems,n=e.selected;return u.select({items:r,value:t,selected:n})}},d=(0,s.propsFactory)({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:function(){return[]}},valueComparator:{type:Function,default:s.deepEqual}},"DataTable-select"),p=Symbol.for("vuetify:data-table-selection");function f(e,t){var r=t.allItems,n=t.currentPage,d=(0,a.useProxiedModel)(e,"modelValue",e.modelValue,function(t){return new Set((0,s.wrapInArray)(t).map(function(t){var n,o;return null!==(o=null===(n=r.value.find(function(r){return e.valueComparator(t,r.value)}))||void 0===n?void 0:n.value)&&void 0!==o?o:t}))},function(e){return(0,o._)(e.values())}),f=(0,i.computed)(function(){return r.value.filter(function(e){return e.selectable})}),m=(0,i.computed)(function(){return n.value.filter(function(e){return e.selectable})}),_=(0,i.computed)(function(){if("object"==typeof e.selectStrategy)return e.selectStrategy;switch(e.selectStrategy){case"single":return l;case"all":return u;default:return c}});function h(e){return(0,s.wrapInArray)(e).every(function(e){return d.value.has(e.value)})}function g(e,t){var r=_.value.select({items:e,value:t,selected:new Set(d.value)});d.value=r}var b=(0,i.computed)(function(){return d.value.size>0}),y=(0,i.computed)(function(){var e=_.value.allSelected({allItems:f.value,currentPage:m.value});return!!e.length&&h(e)}),S={toggleSelect:function(e){g([e],!h([e]))},select:g,selectAll:function(e){var t=_.value.selectAll({value:e,allItems:f.value,currentPage:m.value,selected:new Set(d.value)});d.value=t},isSelected:h,isSomeSelected:function(e){return(0,s.wrapInArray)(e).some(function(e){return d.value.has(e.value)})},someSelected:b,allSelected:y,showSelectAll:(0,i.computed)(function(){return _.value.showSelectAll})};return(0,i.provide)(p,S),S}function m(){var e=(0,i.inject)(p);if(!e)throw Error("Missing selection!");return e}},{"@swc/helpers/_/_to_consumable_array":"glvYM","../../../composables/proxiedModel.mjs":"7LrVW",vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ajM1A:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDataTableSortProps",function(){return d}),n.export(r,"createSort",function(){return f}),n.export(r,"provideSort",function(){return m}),n.export(r,"useSort",function(){return _}),n.export(r,"useSortedItems",function(){return h}),n.export(r,"sortItems",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("@swc/helpers/_/_to_consumable_array"),s=e("../../../composables/index.mjs"),l=e("../../../composables/proxiedModel.mjs"),c=e("vue"),u=e("../../../util/index.mjs"),d=(0,u.propsFactory)({sortBy:{type:Array,default:function(){return[]}},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),p=Symbol.for("vuetify:data-table-sort");function f(e){return{sortBy:(0,l.useProxiedModel)(e,"sortBy"),mustSort:(0,c.toRef)(e,"mustSort"),multiSort:(0,c.toRef)(e,"multiSort")}}function m(e){var t=e.sortBy,r=e.mustSort,n=e.multiSort,a=e.page,s={sortBy:t,toggleSort:function(e){if(null!=e.key){var s,l=null!==(s=t.value.map(function(e){return(0,o._)({},e)}))&&void 0!==s?s:[],c=l.find(function(t){return t.key===e.key});c?"desc"===c.order?r.value?c.order="asc":l=l.filter(function(t){return t.key!==e.key}):c.order="desc":l=n.value?(0,i._)(l).concat([{key:e.key,order:"asc"}]):[{key:e.key,order:"asc"}],t.value=l,a&&(a.value=1)}},isSorted:function(e){return!!t.value.find(function(t){return t.key===e.key})}};return(0,c.provide)(p,s),s}function _(){var e=(0,c.inject)(p);if(!e)throw Error("Missing sort!");return e}function h(e,t,r,n){var a=(0,s.useLocale)();return{sortedItems:(0,c.computed)(function(){var i,s;return r.value.length?g(t.value,r.value,a.current.value,{transform:null==n?void 0:n.transform,sortFunctions:(0,o._)({},e.customKeySort,null==n?void 0:null===(i=n.sortFunctions)||void 0===i?void 0:i.value),sortRawFunctions:null==n?void 0:null===(s=n.sortRawFunctions)||void 0===s?void 0:s.value}):t.value})}}function g(e,t,r,n){var o=new Intl.Collator(r,{sensitivity:"accent",usage:"sort"});return e.map(function(e){return[e,(null==n?void 0:n.transform)?n.transform(e):e]}).sort(function(e,r){for(var i=0;i *");if(o){var a=n.width,i=o.offsetWidth+2*parseFloat(getComputedStyle(o).marginRight);S.value=R(a,i)}}}).resizeRef,C=(0,i.computed)(function(){return parseInt(e.length,10)}),w=(0,i.computed)(function(){return parseInt(e.start,10)}),I=(0,i.computed)(function(){return null!=e.totalVisible?parseInt(e.totalVisible,10):S.value>=0?S.value:R(y.value,58)});function R(t,r){return Math.max(0,Math.floor(+((t-r*(e.showFirstLastPage?5:3))/r).toFixed(2)))}var A=(0,i.computed)(function(){if(C.value<=0||isNaN(C.value)||C.value>Number.MAX_SAFE_INTEGER||I.value<=0)return[];if(1===I.value)return[o.value];if(C.value<=I.value)return(0,T.createRange)(C.value,w.value);var t=I.value%2==0,r=t?I.value/2:Math.floor(I.value/2),n=C.value-r;if((t?r:r+1)-o.value>=0)return(0,a._)((0,T.createRange)(Math.max(1,I.value-1),w.value)).concat([e.ellipsis,C.value]);if(o.value-n>=(t?1:0)){var i=I.value-1,s=C.value-i+w.value;return[w.value,e.ellipsis].concat((0,a._)((0,T.createRange)(i,s)))}var l=Math.max(1,I.value-3),c=1===l?o.value:o.value-Math.ceil(l/2)+w.value;return[w.value,e.ellipsis].concat((0,a._)((0,T.createRange)(l,c)),[e.ellipsis,C.value])});function N(e,t,r){e.preventDefault(),o.value=t,r&&n(r,t)}var k=(0,g.useRefs)(),O=k.refs,D=k.updateRef;(0,d.provideDefaults)({VPaginationBtn:{color:(0,i.toRef)(e,"color"),border:(0,i.toRef)(e,"border"),density:(0,i.toRef)(e,"density"),size:(0,i.toRef)(e,"size"),variant:(0,i.toRef)(e,"variant"),rounded:(0,i.toRef)(e,"rounded"),elevation:(0,i.toRef)(e,"elevation")}});var j=(0,i.computed)(function(){return A.value.map(function(t,r){var n=function(e){return D(e,r)};if("string"==typeof t)return{isActive:!1,key:"ellipsis-".concat(r),page:t,props:{ref:n,ellipsis:!0,icon:!0,disabled:!0}};var a=t===o.value;return{isActive:a,key:t,page:p(t),props:{ref:n,ellipsis:!1,icon:!0,disabled:!!e.disabled||2>+e.length,color:a?e.activeColor:e.color,"aria-current":a,"aria-label":u(a?e.currentPageAriaLabel:e.pageAriaLabel,t),onClick:function(e){return N(e,t)}}}})}),P=(0,i.computed)(function(){var t=!!e.disabled||o.value<=w.value,r=!!e.disabled||o.value>=w.value+C.value-1;return{first:e.showFirstLastPage?{icon:f.value?e.lastIcon:e.firstIcon,onClick:function(e){return N(e,w.value,"first")},disabled:t,"aria-label":u(e.firstAriaLabel),"aria-disabled":t}:void 0,prev:{icon:f.value?e.nextIcon:e.prevIcon,onClick:function(e){return N(e,o.value-1,"prev")},disabled:t,"aria-label":u(e.previousAriaLabel),"aria-disabled":t},next:{icon:f.value?e.prevIcon:e.nextIcon,onClick:function(e){return N(e,o.value+1,"next")},disabled:r,"aria-label":u(e.nextAriaLabel),"aria-disabled":r},last:e.showFirstLastPage?{icon:f.value?e.firstIcon:e.lastIcon,onClick:function(e){return N(e,w.value+C.value-1,"last")},disabled:r,"aria-label":u(e.lastAriaLabel),"aria-disabled":r}:void 0}});function M(){var e,t=o.value-w.value;null===(e=O.value[t])||void 0===e||e.$el.focus()}function L(t){t.key===T.keyValues.left&&!e.disabled&&o.value>+e.start?(o.value=o.value-1,(0,i.nextTick)(M)):t.key===T.keyValues.right&&!e.disabled&&o.value1&&void 0!==arguments[1]?arguments[1]:[],r=!0,n=!1,o=void 0;if(e.children)try{for(var a,i=e.children[Symbol.iterator]();!(r=(a=i.next()).done);r=!0){var s=a.value;f(s,t)}}catch(e){n=!0,o=e}finally{try{r||null==i.return||i.return()}finally{if(n)throw o}}else t.push(e);return t}function m(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.children?(t=Math).max.apply(t,[r].concat((0,i._)(e.children.map(function(e){return m(e,r+1)})))):r}function _(e,t){var r=(0,s.ref)([]),n=(0,s.ref)([]),c=(0,s.ref)({}),_=(0,s.ref)({}),h=(0,s.ref)({});(0,s.watchEffect)(function(){var u=(e.headers||Object.keys(null!==(N=e.items[0])&&void 0!==N?N:{}).map(function(e){return{key:e,title:(0,s.capitalize)(e)}})).slice(),g=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,n=!0,o=!1,a=void 0;try{for(var i,s=t[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var l=i.value;l.key&&r.add(l.key),l.children&&e(l.children,r)}}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}return r}(u);(null==t?void 0:null===(I=t.groupBy)||void 0===I?void 0:I.value.length)&&!g.has("data-table-group")&&u.unshift({key:"data-table-group",title:"Group"}),(null==t?void 0:null===(R=t.showSelect)||void 0===R?void 0:R.value)&&!g.has("data-table-select")&&u.unshift({key:"data-table-select"}),(null==t?void 0:null===(A=t.showExpand)||void 0===A?void 0:A.value)&&!g.has("data-table-expand")&&u.push({key:"data-table-expand"});var b=function e(t){var r=[],n=!0,i=!1,s=void 0;try{for(var l,c=t[Symbol.iterator]();!(n=(l=c.next()).done);n=!0){var u,f,m,_,h=l.value,g=(0,o._)({},function(e){if(e.key){if("data-table-group"===e.key)return d;if(["data-table-expand","data-table-select"].includes(e.key))return p}}(h),h),b=null!==(u=g.key)&&void 0!==u?u:"string"==typeof g.value?g.value:null,y=null!==(m=null!==(f=g.value)&&void 0!==f?f:b)&&void 0!==m?m:null,S=(0,a._)((0,o._)({},g),{key:b,value:y,sortable:null!==(_=g.sortable)&&void 0!==_?_:null!=g.key||!!g.sort,children:g.children?e(g.children):void 0});r.push(S)}}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}(u);!function(e){for(var t=!1,r=e.length-1;r>=0;r--)!function e(r){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r){if(n&&(r.fixed=!0),r.fixed){if(r.children)for(var o=r.children.length-1;o>=0;o--)e(r.children[o],!0);else t?isNaN(+r.width)&&(0,l.consoleError)("Multiple fixed columns should have a static width (key: ".concat(r.key,")")):r.lastFixed=!0,t=!0}else if(r.children)for(var a=r.children.length-1;a>=0;a--)e(r.children[a]);else t=!1}}(e[r]);var n=0,o=!0,a=!1,i=void 0;try{for(var s,c=e[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var u=s.value;n=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t)return r;if(t.children){t.fixedOffset=r;var n=!0,o=!1,a=void 0;try{for(var i,s=t.children[Symbol.iterator]();!(n=(i=s.next()).done);n=!0){var l=i.value;r=e(l,r)}}catch(e){o=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(o)throw a}}}else t.fixed&&(t.fixedOffset=r,r+=parseFloat(t.width||"0")||0);return r}(u,n)}}catch(e){a=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(a)throw i}}}(b);var y=(w=Math).max.apply(w,(0,i._)(b.map(function(e){return m(e)})))+1,S=function(e,t){for(var r=[],n=0,i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.map(function(e){return{element:e,priority:0}});return{enqueue:function(e,r){for(var n=!1,o=0;or){t.splice(o,0,{element:e,priority:r}),n=!0;break}n||t.push({element:e,priority:r})},size:function(){return t.length},count:function(){var e=0;if(!t.length)return 0;for(var r=Math.floor(t[0].priority),n=0;n0;){for(var s=i.count(),l=[],c=1;s>0;){var u=i.dequeue(),d=u.element,p=u.priority,_=t-n-m(d);l.push((0,a._)((0,o._)({},d),{rowspan:null!=_?_:1,colspan:d.children?f(d).length:1}));var h=!0,g=!1,b=void 0;if(d.children)try{for(var y,S=d.children[Symbol.iterator]();!(h=(y=S.next()).done);h=!0){var E=y.value,x=p%1+c/Math.pow(10,n+2);i.enqueue(E,n+_+x)}}catch(e){g=!0,b=e}finally{try{h||null==S.return||S.return()}finally{if(g)throw b}}c+=1,s-=1}n+=1,r.push(l)}return{columns:e.map(function(e){return f(e)}).flat(),headers:r}}(b,y);r.value=S.headers,n.value=S.columns;var E=S.headers.flat(1),x=!0,C=!1,T=void 0;try{for(var w,I,R,A,N,k,O=E[Symbol.iterator]();!(x=(k=O.next()).done);x=!0){var D=k.value;D.key&&(D.sortable&&(D.sort&&(c.value[D.key]=D.sort),D.sortRaw&&(_.value[D.key]=D.sortRaw)),D.filter&&(h.value[D.key]=D.filter))}}catch(e){C=!0,T=e}finally{try{x||null==O.return||O.return()}finally{if(C)throw T}}});var g={headers:r,columns:n,sortFunctions:c,sortRawFunctions:_,filterFunctions:h};return(0,s.provide)(u,g),g}function h(){var e=(0,s.inject)(u);if(!e)throw Error("Missing headers!");return e}},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gRzNM:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDataTableRowsProps",function(){return h}),n.export(r,"VDataTableRows",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue"),s=e("./VDataTableGroupHeaderRow.mjs"),l=e("./VDataTableRow.mjs"),c=e("./composables/expand.mjs"),u=e("./composables/group.mjs"),d=e("./composables/headers.mjs"),p=e("./composables/select.mjs"),f=e("../../composables/display.mjs"),m=e("../../composables/locale.mjs"),_=e("../../util/index.mjs"),h=(0,_.propsFactory)((0,o._)({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:function(){return[]}},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function]},(0,f.makeDisplayProps)()),"VDataTableRows"),g=(0,_.genericComponent)()({name:"VDataTableRows",inheritAttrs:!1,props:h(),setup:function(e,t){var r=t.attrs,n=t.slots,h=(0,d.useHeaders)().columns,g=(0,c.useExpanded)(),b=g.expandOnClick,y=g.toggleExpand,S=g.isExpanded,E=(0,p.useSelection)(),x=E.isSelected,C=E.toggleSelect,T=(0,u.useGroupBy)(),w=T.toggleGroup,I=T.isGroupOpen,R=(0,m.useLocale)().t,A=(0,f.useDisplay)(e).mobile;return(0,_.useRender)(function(){var t,c,u,d;return e.loading&&(!e.items.length||n.loading)?(0,i.createVNode)("tr",{class:"v-data-table-rows-loading",key:"loading"},[(0,i.createVNode)("td",{colspan:h.value.length},[null!==(u=null===(t=n.loading)||void 0===t?void 0:t.call(n))&&void 0!==u?u:R(e.loadingText)])]):e.loading||e.items.length||e.hideNoData?(0,i.createVNode)(i.Fragment,null,[e.items.map(function(t,c){if("group"===t.type){var u,d,p={index:c,item:t,columns:h.value,isExpanded:S,toggleExpand:y,isSelected:x,toggleSelect:C,toggleGroup:w,isGroupOpen:I};return n["group-header"]?n["group-header"](p):(0,i.createVNode)(s.VDataTableGroupHeaderRow,(0,i.mergeProps)({key:"group-header_".concat(t.id),item:t},(0,_.getPrefixedEventHandlers)(r,":group-header",function(){return p})),n)}var f={index:c,item:t.raw,internalItem:t,columns:h.value,isExpanded:S,toggleExpand:y,isSelected:x,toggleSelect:C},m=(0,a._)((0,o._)({},f),{props:(0,i.mergeProps)({key:"item_".concat(null!==(d=t.key)&&void 0!==d?d:t.index),onClick:b.value?function(){y(t)}:void 0,index:c,item:t,cellProps:e.cellProps,mobile:A.value},(0,_.getPrefixedEventHandlers)(r,":row",function(){return f}),"function"==typeof e.rowProps?e.rowProps({item:f.item,index:f.index,internalItem:f.internalItem}):e.rowProps)});return(0,i.createVNode)(i.Fragment,{key:m.props.key},[n.item?n.item(m):(0,i.createVNode)(l.VDataTableRow,m.props,n),S(t)&&(null===(u=n["expanded-row"])||void 0===u?void 0:u.call(n,f))])})]):(0,i.createVNode)("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[(0,i.createVNode)("td",{colspan:h.value.length},[null!==(d=null===(c=n["no-data"])||void 0===c?void 0:c.call(n))&&void 0!==d?d:R(e.noDataText)])])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VDataTableGroupHeaderRow.mjs":"k23xr","./VDataTableRow.mjs":"bLQbG","./composables/expand.mjs":"2kJqN","./composables/group.mjs":"1MlbL","./composables/headers.mjs":"1Xk9m","./composables/select.mjs":"jLp0I","../../composables/display.mjs":"5LhPp","../../composables/locale.mjs":"8eTqB","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],k23xr:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDataTableGroupHeaderRowProps",function(){return p}),n.export(r,"VDataTableGroupHeaderRow",function(){return f});var o=e("vue"),a=e("./VDataTableColumn.mjs"),i=e("../VBtn/index.mjs"),s=e("../VCheckbox/index.mjs"),l=e("./composables/group.mjs"),c=e("./composables/headers.mjs"),u=e("./composables/select.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),f=(0,d.genericComponent)()({name:"VDataTableGroupHeaderRow",props:p(),setup:function(e,t){var r=t.slots,n=(0,l.useGroupBy)(),d=n.isGroupOpen,p=n.toggleGroup,f=n.extractRows,m=(0,u.useSelection)(),_=m.isSelected,h=m.isSomeSelected,g=m.select,b=(0,c.useHeaders)().columns,y=(0,o.computed)(function(){return f([e.item])});return function(){return(0,o.createVNode)("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[b.value.map(function(t){if("data-table-group"===t.key){var n,l,c=d(e.item)?"$expand":"$next",u=function(){return p(e.item)};return null!==(l=null===(n=r["data-table-group"])||void 0===n?void 0:n.call(r,{item:e.item,count:y.value.length,props:{icon:c,onClick:u}}))&&void 0!==l?l:(0,o.createVNode)(a.VDataTableColumn,{class:"v-data-table-group-header-row__column"},{default:function(){return[(0,o.createVNode)(i.VBtn,{size:"small",variant:"text",icon:c,onClick:u},null),(0,o.createVNode)("span",null,[e.item.value]),(0,o.createVNode)("span",null,[(0,o.createTextVNode)("("),y.value.length,(0,o.createTextVNode)(")")])]}})}if("data-table-select"===t.key){var f,m,b=_(y.value),S=h(y.value)&&!b,E=function(e){return g(y.value,e)};return null!==(m=null===(f=r["data-table-select"])||void 0===f?void 0:f.call(r,{props:{modelValue:b,indeterminate:S,"onUpdate:modelValue":E}}))&&void 0!==m?m:(0,o.createVNode)("td",null,[(0,o.createVNode)(s.VCheckboxBtn,{modelValue:b,indeterminate:S,"onUpdate:modelValue":E},null)])}return(0,o.createVNode)("td",null,null)})])}}})},{vue:"gHobw","./VDataTableColumn.mjs":"axswC","../VBtn/index.mjs":"kmwjW","../VCheckbox/index.mjs":"6ncTM","./composables/group.mjs":"1MlbL","./composables/headers.mjs":"1Xk9m","./composables/select.mjs":"jLp0I","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bLQbG:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDataTableRowProps",function(){return _}),n.export(r,"VDataTableRow",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./VDataTableColumn.mjs"),s=e("../VBtn/index.mjs"),l=e("../VCheckbox/index.mjs"),c=e("./composables/expand.mjs"),u=e("./composables/headers.mjs"),d=e("./composables/select.mjs"),p=e("./composables/sort.mjs"),f=e("../../composables/display.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({index:Number,item:Object,cellProps:[Object,Function],onClick:(0,m.EventProp)(),onContextmenu:(0,m.EventProp)(),onDblclick:(0,m.EventProp)()},(0,f.makeDisplayProps)()),"VDataTableRow"),h=(0,m.genericComponent)()({name:"VDataTableRow",props:_(),setup:function(e,t){var r=t.slots,n=(0,f.useDisplay)(e,"v-data-table__tr"),o=n.displayClasses,_=n.mobile,h=(0,d.useSelection)(),g=h.isSelected,b=h.toggleSelect,y=h.someSelected,S=h.allSelected,E=h.selectAll,x=(0,c.useExpanded)(),C=x.isExpanded,T=x.toggleExpand,w=(0,p.useSort)(),I=w.toggleSort,R=w.sortBy,A=w.isSorted,N=(0,u.useHeaders)().columns;(0,m.useRender)(function(){return(0,a.createVNode)("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},o.value],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&N.value.map(function(t,n){var o=e.item,c="item.".concat(t.key),u="header.".concat(t.key),d={index:e.index,item:o.raw,internalItem:o,value:(0,m.getObjectValueByPath)(o.columns,t.key),column:t,isSelected:g,toggleSelect:b,isExpanded:C,toggleExpand:T},p={column:t,selectAll:E,isSorted:A,toggleSort:I,sortBy:R.value,someSelected:y.value,allSelected:S.value,getSortIcon:function(){return""}},f="function"==typeof e.cellProps?e.cellProps({index:d.index,item:d.item,internalItem:d.internalItem,value:d.value,column:t}):e.cellProps,h="function"==typeof t.cellProps?t.cellProps({index:d.index,item:d.item,internalItem:d.internalItem,value:d.value}):t.cellProps;return(0,a.createVNode)(i.VDataTableColumn,(0,a.mergeProps)({align:t.align,class:{"v-data-table__td--expanded-row":"data-table-expand"===t.key,"v-data-table__td--select-row":"data-table-select"===t.key},fixed:t.fixed,fixedOffset:t.fixedOffset,lastFixed:t.lastFixed,maxWidth:_.value?void 0:t.maxWidth,noPadding:"data-table-select"===t.key||"data-table-expand"===t.key,nowrap:t.nowrap,width:_.value?void 0:t.width},f,h),{default:function(){if(r[c]&&!_.value)return null===(e=r[c])||void 0===e?void 0:e.call(r,d);if("data-table-select"===t.key)return null!==(h=null===(n=r["item.data-table-select"])||void 0===n?void 0:n.call(r,d))&&void 0!==h?h:(0,a.createVNode)(l.VCheckboxBtn,{disabled:!o.selectable,modelValue:g([o]),onClick:(0,a.withModifiers)(function(){return b(o)},["stop"])},null);if("data-table-expand"===t.key)return null!==(y=null===(i=r["item.data-table-expand"])||void 0===i?void 0:i.call(r,d))&&void 0!==y?y:(0,a.createVNode)(s.VBtn,{icon:C(o)?"$collapse":"$expand",size:"small",variant:"text",onClick:(0,a.withModifiers)(function(){return T(o)},["stop"])},null);var e,n,i,f,m,h,y,S,E,x=(0,a.toDisplayString)(d.value);return _.value?(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)("div",{class:"v-data-table__td-title"},[null!==(S=null===(f=r[u])||void 0===f?void 0:f.call(r,p))&&void 0!==S?S:t.title]),(0,a.createVNode)("div",{class:"v-data-table__td-value"},[null!==(E=null===(m=r[c])||void 0===m?void 0:m.call(r,d))&&void 0!==E?E:x])]):x}})})])})}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VDataTableColumn.mjs":"axswC","../VBtn/index.mjs":"kmwjW","../VCheckbox/index.mjs":"6ncTM","./composables/expand.mjs":"2kJqN","./composables/headers.mjs":"1Xk9m","./composables/select.mjs":"jLp0I","./composables/sort.mjs":"ajM1A","../../composables/display.mjs":"5LhPp","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8zMUW":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTableProps",function(){return d}),n.export(r,"VTable",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VTable.css");var i=e("../../composables/component.mjs"),s=e("../../composables/density.mjs"),l=e("../../composables/tag.mjs"),c=e("../../composables/theme.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean},(0,i.makeComponentProps)(),(0,s.makeDensityProps)(),(0,l.makeTagProps)(),(0,c.makeThemeProps)()),"VTable"),p=(0,u.genericComponent)()({name:"VTable",props:d(),setup:function(e,t){var r=t.slots;t.emit;var n=(0,c.provideTheme)(e).themeClasses,o=(0,s.useDensity)(e).densityClasses;return(0,u.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!r.top,"v-table--has-bottom":!!r.bottom,"v-table--hover":e.hover},n.value,o.value,e.class],style:e.style},{default:function(){var t,n,o;return[null===(t=r.top)||void 0===t?void 0:t.call(r),r.default?(0,a.createVNode)("div",{class:"v-table__wrapper",style:{height:(0,u.convertToUnit)(e.height)}},[(0,a.createVNode)("table",null,[r.default()])]):null===(n=r.wrapper)||void 0===n?void 0:n.call(r),null===(o=r.bottom)||void 0===o?void 0:o.call(r)]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VTable.css":"k5QZj","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],k5QZj:[function(){},{}],fAlMd:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeDataTableItemsProps",function(){return i}),n.export(r,"transformItem",function(){return s}),n.export(r,"transformItems",function(){return l}),n.export(r,"useDataTableItems",function(){return c});var o=e("vue"),a=e("../../../util/index.mjs"),i=(0,a.propsFactory)({items:{type:Array,default:function(){return[]}},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function s(e,t,r,n){var o=e.returnObject?t:(0,a.getPropertyFromItem)(t,e.itemValue),i=(0,a.getPropertyFromItem)(t,e.itemSelectable,!0),s=n.reduce(function(e,r){return null!=r.key&&(e[r.key]=(0,a.getPropertyFromItem)(t,r.value)),e},{});return{type:"item",key:e.returnObject?(0,a.getPropertyFromItem)(t,e.itemValue):o,index:r,value:o,selectable:i,columns:s,raw:t}}function l(e,t,r){return t.map(function(t,n){return s(e,t,n,r)})}function c(e,t){return{items:(0,o.computed)(function(){return l(e,e.items,t.value)})}}},{vue:"gHobw","../../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8gKeZ":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDataTableVirtualProps",function(){return T}),n.export(r,"VDataTableVirtual",function(){return w});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue"),s=e("./VDataTable.mjs"),l=e("./VDataTableHeaders.mjs"),c=e("./VDataTableRow.mjs"),u=e("./VDataTableRows.mjs"),d=e("../VTable/index.mjs"),p=e("../VVirtualScroll/VVirtualScrollItem.mjs"),f=e("./composables/expand.mjs"),m=e("./composables/group.mjs"),_=e("./composables/headers.mjs"),h=e("./composables/items.mjs"),g=e("./composables/options.mjs"),b=e("./composables/select.mjs"),y=e("./composables/sort.mjs"),S=e("../../composables/defaults.mjs"),E=e("../../composables/filter.mjs"),x=e("../../composables/virtual.mjs"),C=e("../../util/index.mjs"),T=(0,C.propsFactory)((0,o._)({},(0,s.makeDataTableProps)(),(0,m.makeDataTableGroupProps)(),(0,x.makeVirtualProps)(),(0,E.makeFilterProps)()),"VDataTableVirtual"),w=(0,C.genericComponent)()({name:"VDataTableVirtual",props:T(),emits:{"update:modelValue":function(e){return!0},"update:sortBy":function(e){return!0},"update:options":function(e){return!0},"update:groupBy":function(e){return!0},"update:expanded":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,s=(0,m.createGroupBy)(e).groupBy,T=(0,y.createSort)(e),w=T.sortBy,I=T.multiSort,R=T.mustSort,A=(0,i.toRefs)(e).disableSort,N=(0,_.createHeaders)(e,{groupBy:s,showSelect:(0,i.toRef)(e,"showSelect"),showExpand:(0,i.toRef)(e,"showExpand")}),k=N.columns,O=N.headers,D=N.filterFunctions,j=N.sortFunctions,P=N.sortRawFunctions,M=(0,h.useDataTableItems)(e,k).items,L=(0,i.toRef)(e,"search"),V=(0,E.useFilter)(e,M,L,{transform:function(e){return e.columns},customKeyFilter:D}).filteredItems,F=(0,y.provideSort)({sortBy:w,multiSort:I,mustSort:R}).toggleSort,B=(0,m.provideGroupBy)({groupBy:s,sortBy:w,disableSort:A}),U=B.sortByWithGroups,G=B.opened,q=B.extractRows,Y=B.isGroupOpen,H=B.toggleGroup,z=(0,y.useSortedItems)(e,V,U,{transform:function(e){return(0,o._)({},e.raw,e.columns)},sortFunctions:j,sortRawFunctions:P}).sortedItems,W=(0,m.useGroupedItems)(z,s,G).flatItems,K=(0,i.computed)(function(){return q(W.value)}),Q=(0,b.provideSelection)(e,{allItems:K,currentPage:K}),$=Q.isSelected,X=Q.select,Z=Q.selectAll,J=Q.toggleSelect,ee=Q.someSelected,et=Q.allSelected,er=(0,f.provideExpanded)(e),en=er.isExpanded,eo=er.toggleExpand,ea=(0,x.useVirtual)(e,W),ei=ea.containerRef,es=ea.markerRef,el=ea.paddingTop,ec=ea.paddingBottom,eu=ea.computedItems,ed=ea.handleItemResize,ep=ea.handleScroll,ef=ea.handleScrollend,em=(0,i.computed)(function(){return eu.value.map(function(e){return e.raw})});(0,g.useOptions)({sortBy:w,page:(0,i.shallowRef)(1),itemsPerPage:(0,i.shallowRef)(-1),groupBy:s,search:L}),(0,S.provideDefaults)({VDataTableRows:{hideNoData:(0,i.toRef)(e,"hideNoData"),noDataText:(0,i.toRef)(e,"noDataText"),loading:(0,i.toRef)(e,"loading"),loadingText:(0,i.toRef)(e,"loadingText")}});var e_=(0,i.computed)(function(){return{sortBy:w.value,toggleSort:F,someSelected:ee.value,allSelected:et.value,isSelected:$,select:X,selectAll:Z,toggleSelect:J,isExpanded:en,toggleExpand:eo,isGroupOpen:Y,toggleGroup:H,items:K.value.map(function(e){return e.raw}),internalItems:K.value,groupedItems:W.value,columns:k.value,headers:O.value}});(0,C.useRender)(function(){var t=(0,l.VDataTableHeaders).filterProps(e),s=(0,u.VDataTableRows).filterProps(e),f=(0,d.VTable).filterProps(e);return(0,i.createVNode)(d.VTable,(0,i.mergeProps)({class:["v-data-table",{"v-data-table--loading":e.loading},e.class],style:e.style},f),{top:function(){var e;return null===(e=n.top)||void 0===e?void 0:e.call(n,e_.value)},wrapper:function(){var d,f,m;return(0,i.createVNode)("div",{ref:ei,onScrollPassive:ep,onScrollend:ef,class:"v-table__wrapper",style:{height:(0,C.convertToUnit)(e.height)}},[(0,i.createVNode)("table",null,[null===(d=n.colgroup)||void 0===d?void 0:d.call(n,e_.value),!e.hideDefaultHeader&&(0,i.createVNode)("thead",{key:"thead"},[(0,i.createVNode)(l.VDataTableHeaders,(0,i.mergeProps)(t,{sticky:e.fixedHeader}),n)]),!e.hideDefaultBody&&(0,i.createVNode)("tbody",null,[(0,i.createVNode)("tr",{ref:es,style:{height:(0,C.convertToUnit)(el.value),border:0}},[(0,i.createVNode)("td",{colspan:k.value.length,style:{height:0,border:0}},null)]),null===(f=n["body.prepend"])||void 0===f?void 0:f.call(n,e_.value),(0,i.createVNode)(u.VDataTableRows,(0,i.mergeProps)(r,s,{items:em.value}),(0,a._)((0,o._)({},n),{item:function(e){return(0,i.createVNode)(p.VVirtualScrollItem,{key:e.internalItem.index,renderless:!0,"onUpdate:height":function(t){return ed(e.internalItem.index,t)}},{default:function(t){var r,s,l=t.itemRef;return null!==(s=null===(r=n.item)||void 0===r?void 0:r.call(n,(0,a._)((0,o._)({},e),{itemRef:l})))&&void 0!==s?s:(0,i.createVNode)(c.VDataTableRow,(0,i.mergeProps)(e.props,{ref:l,key:e.internalItem.index,index:e.internalItem.index}),n)}})}})),null===(m=n["body.append"])||void 0===m?void 0:m.call(n,e_.value),(0,i.createVNode)("tr",{style:{height:(0,C.convertToUnit)(ec.value),border:0}},[(0,i.createVNode)("td",{colspan:k.value.length,style:{height:0,border:0}},null)])])])])},bottom:function(){var e;return null===(e=n.bottom)||void 0===e?void 0:e.call(n,e_.value)}})})}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VDataTable.mjs":"aNLJ6","./VDataTableHeaders.mjs":"gIPdI","./VDataTableRow.mjs":"bLQbG","./VDataTableRows.mjs":"gRzNM","../VTable/index.mjs":"h9biK","../VVirtualScroll/VVirtualScrollItem.mjs":"aTkVL","./composables/expand.mjs":"2kJqN","./composables/group.mjs":"1MlbL","./composables/headers.mjs":"1Xk9m","./composables/items.mjs":"fAlMd","./composables/options.mjs":"iVauq","./composables/select.mjs":"jLp0I","./composables/sort.mjs":"ajM1A","../../composables/defaults.mjs":"cYwla","../../composables/filter.mjs":"cSNwO","../../composables/virtual.mjs":"j89MU","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],h9biK:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTable",function(){return o.VTable});var o=e("./VTable.mjs")},{"./VTable.mjs":"8zMUW","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1mJ6Y":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDataTableServerProps",function(){return x}),n.export(r,"VDataTableServer",function(){return C});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./VDataTable.mjs"),s=e("./VDataTableFooter.mjs"),l=e("./VDataTableHeaders.mjs"),c=e("./VDataTableRows.mjs"),u=e("../VDivider/index.mjs"),d=e("../VTable/index.mjs"),p=e("./composables/expand.mjs"),f=e("./composables/group.mjs"),m=e("./composables/headers.mjs"),_=e("./composables/items.mjs"),h=e("./composables/options.mjs"),g=e("./composables/paginate.mjs"),b=e("./composables/select.mjs"),y=e("./composables/sort.mjs"),S=e("../../composables/defaults.mjs"),E=e("../../util/index.mjs"),x=(0,E.propsFactory)((0,o._)({itemsLength:{type:[Number,String],required:!0}},(0,g.makeDataTablePaginateProps)(),(0,i.makeDataTableProps)(),(0,s.makeVDataTableFooterProps)()),"VDataTableServer"),C=(0,E.genericComponent)()({name:"VDataTableServer",props:x(),emits:{"update:modelValue":function(e){return!0},"update:page":function(e){return!0},"update:itemsPerPage":function(e){return!0},"update:sortBy":function(e){return!0},"update:options":function(e){return!0},"update:expanded":function(e){return!0},"update:groupBy":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,o=(0,f.createGroupBy)(e).groupBy,i=(0,y.createSort)(e),x=i.sortBy,C=i.multiSort,T=i.mustSort,w=(0,g.createPagination)(e),I=w.page,R=w.itemsPerPage,A=(0,a.toRefs)(e).disableSort,N=(0,a.computed)(function(){return parseInt(e.itemsLength,10)}),k=(0,m.createHeaders)(e,{groupBy:o,showSelect:(0,a.toRef)(e,"showSelect"),showExpand:(0,a.toRef)(e,"showExpand")}),O=k.columns,D=k.headers,j=(0,_.useDataTableItems)(e,O).items,P=(0,y.provideSort)({sortBy:x,multiSort:C,mustSort:T,page:I}).toggleSort,M=(0,f.provideGroupBy)({groupBy:o,sortBy:x,disableSort:A}),L=M.opened,V=M.isGroupOpen,F=M.toggleGroup,B=M.extractRows,U=(0,g.providePagination)({page:I,itemsPerPage:R,itemsLength:N}),G=U.pageCount,q=U.setItemsPerPage,Y=(0,f.useGroupedItems)(j,o,L).flatItems,H=(0,b.provideSelection)(e,{allItems:j,currentPage:j}),z=H.isSelected,W=H.select,K=H.selectAll,Q=H.toggleSelect,$=H.someSelected,X=H.allSelected,Z=(0,p.provideExpanded)(e),J=Z.isExpanded,ee=Z.toggleExpand,et=(0,a.computed)(function(){return B(j.value)});(0,h.useOptions)({page:I,itemsPerPage:R,sortBy:x,groupBy:o,search:(0,a.toRef)(e,"search")}),(0,a.provide)("v-data-table",{toggleSort:P,sortBy:x}),(0,S.provideDefaults)({VDataTableRows:{hideNoData:(0,a.toRef)(e,"hideNoData"),noDataText:(0,a.toRef)(e,"noDataText"),loading:(0,a.toRef)(e,"loading"),loadingText:(0,a.toRef)(e,"loadingText")}});var er=(0,a.computed)(function(){return{page:I.value,itemsPerPage:R.value,sortBy:x.value,pageCount:G.value,toggleSort:P,setItemsPerPage:q,someSelected:$.value,allSelected:X.value,isSelected:z,select:W,selectAll:K,toggleSelect:Q,isExpanded:J,toggleExpand:ee,isGroupOpen:V,toggleGroup:F,items:et.value.map(function(e){return e.raw}),internalItems:et.value,groupedItems:Y.value,columns:O.value,headers:D.value}});(0,E.useRender)(function(){var t=(0,s.VDataTableFooter).filterProps(e),o=(0,l.VDataTableHeaders).filterProps(e),i=(0,c.VDataTableRows).filterProps(e),p=(0,d.VTable).filterProps(e);return(0,a.createVNode)(d.VTable,(0,a.mergeProps)({class:["v-data-table",{"v-data-table--loading":e.loading},e.class],style:e.style},p),{top:function(){var e;return null===(e=n.top)||void 0===e?void 0:e.call(n,er.value)},default:function(){var t,s,u,d,p,f;return n.default?n.default(er.value):(0,a.createVNode)(a.Fragment,null,[null===(t=n.colgroup)||void 0===t?void 0:t.call(n,er.value),!e.hideDefaultHeader&&(0,a.createVNode)("thead",{key:"thead",class:"v-data-table__thead",role:"rowgroup"},[(0,a.createVNode)(l.VDataTableHeaders,(0,a.mergeProps)(o,{sticky:e.fixedHeader}),n)]),null===(s=n.thead)||void 0===s?void 0:s.call(n,er.value),!e.hideDefaultBody&&(0,a.createVNode)("tbody",{class:"v-data-table__tbody",role:"rowgroup"},[null===(u=n["body.prepend"])||void 0===u?void 0:u.call(n,er.value),n.body?n.body(er.value):(0,a.createVNode)(c.VDataTableRows,(0,a.mergeProps)(r,i,{items:Y.value}),n),null===(d=n["body.append"])||void 0===d?void 0:d.call(n,er.value)]),null===(p=n.tbody)||void 0===p?void 0:p.call(n,er.value),null===(f=n.tfoot)||void 0===f?void 0:f.call(n,er.value)])},bottom:function(){return n.bottom?n.bottom(er.value):!e.hideDefaultFooter&&(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(u.VDivider,null,null),(0,a.createVNode)(s.VDataTableFooter,t,{prepend:n["footer.prepend"]})])}})})}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VDataTable.mjs":"aNLJ6","./VDataTableFooter.mjs":"5jlhK","./VDataTableHeaders.mjs":"gIPdI","./VDataTableRows.mjs":"gRzNM","../VDivider/index.mjs":"duptT","../VTable/index.mjs":"h9biK","./composables/expand.mjs":"2kJqN","./composables/group.mjs":"1MlbL","./composables/headers.mjs":"1Xk9m","./composables/items.mjs":"fAlMd","./composables/options.mjs":"iVauq","./composables/paginate.mjs":"cpI1f","./composables/select.mjs":"jLp0I","./composables/sort.mjs":"ajM1A","../../composables/defaults.mjs":"cYwla","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gQbmp:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VDatePicker",function(){return o.VDatePicker}),n.export(r,"VDatePickerControls",function(){return a.VDatePickerControls}),n.export(r,"VDatePickerHeader",function(){return i.VDatePickerHeader}),n.export(r,"VDatePickerMonth",function(){return s.VDatePickerMonth}),n.export(r,"VDatePickerMonths",function(){return l.VDatePickerMonths}),n.export(r,"VDatePickerYears",function(){return c.VDatePickerYears});var o=e("./VDatePicker.mjs"),a=e("./VDatePickerControls.mjs"),i=e("./VDatePickerHeader.mjs"),s=e("./VDatePickerMonth.mjs"),l=e("./VDatePickerMonths.mjs"),c=e("./VDatePickerYears.mjs")},{"./VDatePicker.mjs":"hmTVn","./VDatePickerControls.mjs":"cVqL2","./VDatePickerHeader.mjs":"egZPB","./VDatePickerMonth.mjs":"aDdjr","./VDatePickerMonths.mjs":"hDWZ8","./VDatePickerYears.mjs":"eNsCz","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hmTVn:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerProps",function(){return y}),n.export(r,"VDatePicker",function(){return S});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VDatePicker.css");var s=e("./VDatePickerControls.mjs"),l=e("./VDatePickerHeader.mjs"),c=e("./VDatePickerMonth.mjs"),u=e("./VDatePickerMonths.mjs"),d=e("./VDatePickerYears.mjs"),p=e("../transitions/index.mjs"),f=e("../VDefaultsProvider/index.mjs"),m=e("../../labs/VPicker/VPicker.mjs"),_=e("../../composables/date/index.mjs"),h=e("../../composables/locale.mjs"),g=e("../../composables/proxiedModel.mjs"),b=e("../../util/index.mjs"),y=(0,b.propsFactory)((0,a._)((0,o._)({header:{type:String,default:"$vuetify.datePicker.header"}},(0,s.makeVDatePickerControlsProps)(),(0,c.makeVDatePickerMonthProps)({weeksInMonth:"static"}),(0,b.omit)((0,u.makeVDatePickerMonthsProps)(),["modelValue"]),(0,b.omit)((0,d.makeVDatePickerYearsProps)(),["modelValue"]),(0,m.makeVPickerProps)({title:"$vuetify.datePicker.title"})),{modelValue:null}),"VDatePicker"),S=(0,b.genericComponent)()({name:"VDatePicker",props:y(),emits:{"update:modelValue":function(e){return!0},"update:month":function(e){return!0},"update:year":function(e){return!0},"update:viewMode":function(e){return!0}},setup:function(e,t){var r,n,y=t.emit,S=t.slots,E=(0,_.useDate)(),x=(0,h.useLocale)().t,C=(0,g.useProxiedModel)(e,"modelValue",void 0,function(e){return(0,b.wrapInArray)(e)},function(t){return e.multiple?t:t[0]}),T=(0,g.useProxiedModel)(e,"viewMode"),w=(0,i.computed)(function(){var e,t=E.date(null===(e=C.value)||void 0===e?void 0:e[0]);return t&&E.isValid(t)?t:E.date()}),I=(0,i.ref)(Number(null!==(r=e.month)&&void 0!==r?r:E.getMonth(E.startOfMonth(w.value)))),R=(0,i.ref)(Number(null!==(n=e.year)&&void 0!==n?n:E.getYear(E.startOfYear(E.setMonth(w.value,I.value))))),A=(0,i.shallowRef)(!1),N=(0,i.computed)(function(){return e.multiple&&C.value.length>1?x("$vuetify.datePicker.itemsSelected",C.value.length):C.value[0]&&E.isValid(C.value[0])?E.format(E.date(C.value[0]),"normalDateWithWeekday"):x(e.header)}),k=(0,i.computed)(function(){var e=E.date();return e=E.setDate(e,1),e=E.setMonth(e,I.value),e=E.setYear(e,R.value),E.format(e,"monthAndYear")}),O=(0,i.computed)(function(){return"date-picker-header".concat(A.value?"-reverse":"","-transition")}),D=(0,i.computed)(function(){var t=E.date(e.min);return e.min&&E.isValid(t)?t:null}),j=(0,i.computed)(function(){var t=E.date(e.max);return e.max&&E.isValid(t)?t:null}),P=(0,i.computed)(function(){if(e.disabled)return!0;var t=[];if("month"!==T.value)t.push.apply(t,["prev","next"]);else{var r=E.date();if(r=E.setYear(r,R.value),r=E.setMonth(r,I.value),D.value){var n=E.addDays(E.startOfMonth(r),-1);E.isAfter(D.value,n)&&t.push("prev")}if(j.value){var o=E.addDays(E.endOfMonth(r),1);E.isAfter(o,j.value)&&t.push("next")}}return t});function M(){I.value<11?I.value++:(R.value++,I.value=0,G(R.value)),U(I.value)}function L(){I.value>0?I.value--:(R.value--,I.value=11,G(R.value)),U(I.value)}function V(){T.value="month"}function F(){T.value="months"===T.value?"month":"months"}function B(){T.value="year"===T.value?"month":"year"}function U(e){"months"===T.value&&F(),y("update:month",e)}function G(e){"year"===T.value&&B(),y("update:year",e)}return(0,i.watch)(C,function(e,t){var r=(0,b.wrapInArray)(t),n=(0,b.wrapInArray)(e);if(n.length){var o=E.date(r[r.length-1]),a=E.date(n[n.length-1]),i=E.getMonth(a),s=E.getYear(a);i!==I.value&&(I.value=i,U(I.value)),s!==R.value&&(R.value=s,G(R.value)),A.value=E.isBefore(o,a)}}),(0,b.useRender)(function(){var t=(0,m.VPicker).filterProps(e),r=(0,s.VDatePickerControls).filterProps(e),n=(0,l.VDatePickerHeader).filterProps(e),_=(0,c.VDatePickerMonth).filterProps(e),h=(0,b.omit)((0,u.VDatePickerMonths).filterProps(e),["modelValue"]),g=(0,b.omit)((0,d.VDatePickerYears).filterProps(e),["modelValue"]),y={header:N.value,transition:O.value};return(0,i.createVNode)(m.VPicker,(0,i.mergeProps)(t,{class:["v-date-picker","v-date-picker--".concat(T.value),{"v-date-picker--show-week":e.showWeek},e.class],style:e.style}),{title:function(){var t,r;return null!==(r=null===(t=S.title)||void 0===t?void 0:t.call(S))&&void 0!==r?r:(0,i.createVNode)("div",{class:"v-date-picker__title"},[x(e.title)])},header:function(){return S.header?(0,i.createVNode)(f.VDefaultsProvider,{defaults:{VDatePickerHeader:(0,o._)({},y)}},{default:function(){var e;return[null===(e=S.header)||void 0===e?void 0:e.call(S,y)]}}):(0,i.createVNode)(l.VDatePickerHeader,(0,i.mergeProps)({key:"header"},n,y,{onClick:"month"!==T.value?V:void 0}),(0,a._)((0,o._)({},S),{default:void 0}))},default:function(){return(0,i.createVNode)(i.Fragment,null,[(0,i.createVNode)(s.VDatePickerControls,(0,i.mergeProps)(r,{disabled:P.value,text:k.value,"onClick:next":M,"onClick:prev":L,"onClick:month":F,"onClick:year":B}),null),(0,i.createVNode)(p.VFadeTransition,{hideOnLeave:!0},{default:function(){return["months"===T.value?(0,i.createVNode)(u.VDatePickerMonths,(0,i.mergeProps)({key:"date-picker-months"},h,{modelValue:I.value,"onUpdate:modelValue":[function(e){return I.value=e},U],min:D.value,max:j.value,year:R.value}),null):"year"===T.value?(0,i.createVNode)(d.VDatePickerYears,(0,i.mergeProps)({key:"date-picker-years"},g,{modelValue:R.value,"onUpdate:modelValue":[function(e){return R.value=e},G],min:D.value,max:j.value}),null):(0,i.createVNode)(c.VDatePickerMonth,(0,i.mergeProps)({key:"date-picker-month"},_,{modelValue:C.value,"onUpdate:modelValue":function(e){return C.value=e},month:I.value,"onUpdate:month":[function(e){return I.value=e},U],year:R.value,"onUpdate:year":[function(e){return R.value=e},G],min:D.value,max:j.value}),null)]}})])},actions:S.actions})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VDatePicker.css":"djH3t","./VDatePickerControls.mjs":"cVqL2","./VDatePickerHeader.mjs":"egZPB","./VDatePickerMonth.mjs":"aDdjr","./VDatePickerMonths.mjs":"hDWZ8","./VDatePickerYears.mjs":"eNsCz","../transitions/index.mjs":"9jbNO","../VDefaultsProvider/index.mjs":"9aMue","../../labs/VPicker/VPicker.mjs":"6pThO","../../composables/date/index.mjs":"3b53r","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],djH3t:[function(){},{}],cVqL2:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerControlsProps",function(){return c}),n.export(r,"VDatePickerControls",function(){return u});var o=e("vue");e("./VDatePickerControls.css");var a=e("../VBtn/index.mjs"),i=e("../VGrid/index.mjs"),s=e("../../composables/icons.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)({active:{type:[String,Array],default:void 0},disabled:{type:[Boolean,String,Array],default:!1},nextIcon:{type:s.IconValue,default:"$next"},prevIcon:{type:s.IconValue,default:"$prev"},modeIcon:{type:s.IconValue,default:"$subgroup"},text:String,viewMode:{type:String,default:"month"}},"VDatePickerControls"),u=(0,l.genericComponent)()({name:"VDatePickerControls",props:c(),emits:{"click:year":function(){return!0},"click:month":function(){return!0},"click:prev":function(){return!0},"click:next":function(){return!0},"click:text":function(){return!0}},setup:function(e,t){var r=t.emit,n=(0,o.computed)(function(){return Array.isArray(e.disabled)?e.disabled.includes("text"):!!e.disabled}),s=(0,o.computed)(function(){return Array.isArray(e.disabled)?e.disabled.includes("mode"):!!e.disabled}),c=(0,o.computed)(function(){return Array.isArray(e.disabled)?e.disabled.includes("prev"):!!e.disabled}),u=(0,o.computed)(function(){return Array.isArray(e.disabled)?e.disabled.includes("next"):!!e.disabled});function d(){r("click:prev")}function p(){r("click:next")}function f(){r("click:year")}function m(){r("click:month")}return(0,l.useRender)(function(){return(0,o.createVNode)("div",{class:["v-date-picker-controls"]},[(0,o.createVNode)(a.VBtn,{class:"v-date-picker-controls__month-btn",disabled:n.value,text:e.text,variant:"text",rounded:!0,onClick:m},null),(0,o.createVNode)(a.VBtn,{key:"mode-btn",class:"v-date-picker-controls__mode-btn",disabled:s.value,density:"comfortable",icon:e.modeIcon,variant:"text",onClick:f},null),(0,o.createVNode)(i.VSpacer,{key:"mode-spacer"},null),(0,o.createVNode)("div",{key:"month-buttons",class:"v-date-picker-controls__month"},[(0,o.createVNode)(a.VBtn,{disabled:c.value,icon:e.prevIcon,variant:"text",onClick:d},null),(0,o.createVNode)(a.VBtn,{disabled:u.value,icon:e.nextIcon,variant:"text",onClick:p},null)])])}),{}}})},{vue:"gHobw","./VDatePickerControls.css":"dtYIO","../VBtn/index.mjs":"kmwjW","../VGrid/index.mjs":"aq5fZ","../../composables/icons.mjs":"71CER","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dtYIO:[function(){},{}],aq5fZ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VContainer",function(){return o.VContainer}),n.export(r,"VCol",function(){return a.VCol}),n.export(r,"VRow",function(){return i.VRow}),n.export(r,"VSpacer",function(){return s.VSpacer});var o=e("./VContainer.mjs"),a=e("./VCol.mjs"),i=e("./VRow.mjs"),s=e("./VSpacer.mjs")},{"./VContainer.mjs":"dlGjE","./VCol.mjs":"fCh47","./VRow.mjs":"8Fgn0","./VSpacer.mjs":"d0NZj","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dlGjE:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVContainerProps",function(){return d}),n.export(r,"VContainer",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VGrid.css");var i=e("../../composables/component.mjs"),s=e("../../composables/dimensions.mjs"),l=e("../../composables/locale.mjs"),c=e("../../composables/tag.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({fluid:{type:Boolean,default:!1}},(0,i.makeComponentProps)(),(0,s.makeDimensionProps)(),(0,c.makeTagProps)()),"VContainer"),p=(0,u.genericComponent)()({name:"VContainer",props:d(),setup:function(e,t){var r=t.slots,n=(0,l.useRtl)().rtlClasses,o=(0,s.useDimension)(e).dimensionStyles;return(0,u.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-container",{"v-container--fluid":e.fluid},n.value,e.class],style:[o.value,e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VGrid.css":"88WZS","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/locale.mjs":"8eTqB","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"88WZS":[function(){},{}],fCh47:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVColProps",function(){return g}),n.export(r,"VCol",function(){return b});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props");e("./VGrid.css");var s=e("../../composables/component.mjs"),l=e("../../composables/display.mjs"),c=e("../../composables/tag.mjs"),u=e("vue"),d=e("../../util/index.mjs"),p=(0,l.breakpoints).reduce(function(e,t){return e[t]={type:[Boolean,String,Number],default:!1},e},{}),f=(0,l.breakpoints).reduce(function(e,t){return e["offset"+(0,u.capitalize)(t)]={type:[String,Number],default:null},e},{}),m=(0,l.breakpoints).reduce(function(e,t){return e["order"+(0,u.capitalize)(t)]={type:[String,Number],default:null},e},{}),_={col:Object.keys(p),offset:Object.keys(f),order:Object.keys(m)},h=["auto","start","end","center","baseline","stretch"],g=(0,d.propsFactory)((0,a._)((0,i._)((0,a._)((0,i._)((0,a._)((0,i._)((0,a._)({cols:{type:[Boolean,String,Number],default:!1}},p),{offset:{type:[String,Number],default:null}}),f),{order:{type:[String,Number],default:null}}),m),{alignSelf:{type:String,default:null,validator:function(e){return h.includes(e)}}}),(0,s.makeComponentProps)(),(0,c.makeTagProps)()),"VCol"),b=(0,d.genericComponent)()({name:"VCol",props:g(),setup:function(e,t){var r=t.slots,n=(0,u.computed)(function(){var t,r,n=[];for(t in _)_[t].forEach(function(r){var o=e[r],a=function(e,t,r){var n=e;if(null!=r&&!1!==r){if(t){var o=t.replace(e,"");n+="-".concat(o)}return("col"===e&&(n="v-"+n),"col"===e&&(""===r||!0===r))?n.toLowerCase():(n+="-".concat(r)).toLowerCase()}}(t,r,o);a&&n.push(a)});var a=n.some(function(e){return e.startsWith("v-col-")});return n.push((r={"v-col":!a||!e.cols},(0,o._)(r,"v-col-".concat(e.cols),e.cols),(0,o._)(r,"offset-".concat(e.offset),e.offset),(0,o._)(r,"order-".concat(e.order),e.order),(0,o._)(r,"align-self-".concat(e.alignSelf),e.alignSelf),r)),n});return function(){var t;return(0,u.h)(e.tag,{class:[n.value,e.class],style:e.style},null===(t=r.default)||void 0===t?void 0:t.call(r))}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","./VGrid.css":"88WZS","../../composables/component.mjs":"c32AV","../../composables/display.mjs":"5LhPp","../../composables/tag.mjs":"ceZPq",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"88WZS":[function(){},{}],"8Fgn0":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVRowProps",function(){return R}),n.export(r,"VRow",function(){return A});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_object_spread_props"),s=e("@swc/helpers/_/_to_consumable_array");e("./VGrid.css");var l=e("../../composables/component.mjs"),c=e("../../composables/display.mjs"),u=e("../../composables/tag.mjs"),d=e("vue"),p=e("../../util/index.mjs"),f=["start","end","center"],m=["space-between","space-around","space-evenly"];function _(e,t){return(0,c.breakpoints).reduce(function(r,n){return r[e+(0,d.capitalize)(n)]=t(),r},{})}var h=(0,s._)(f).concat(["baseline","stretch"]),g=function(e){return h.includes(e)},b=_("align",function(){return{type:String,default:null,validator:g}}),y=(0,s._)(f).concat((0,s._)(m)),S=function(e){return y.includes(e)},E=_("justify",function(){return{type:String,default:null,validator:S}}),x=(0,s._)(f).concat((0,s._)(m),["stretch"]),C=function(e){return x.includes(e)},T=_("alignContent",function(){return{type:String,default:null,validator:C}}),w={align:Object.keys(b),justify:Object.keys(E),alignContent:Object.keys(T)},I={align:"align",justify:"justify",alignContent:"align-content"},R=(0,p.propsFactory)((0,a._)((0,i._)((0,a._)((0,i._)((0,a._)({dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:g}},b),{justify:{type:String,default:null,validator:S}}),E),{alignContent:{type:String,default:null,validator:C}}),T,(0,l.makeComponentProps)(),(0,u.makeTagProps)()),"VRow"),A=(0,p.genericComponent)()({name:"VRow",props:R(),setup:function(e,t){var r=t.slots,n=(0,d.computed)(function(){var t,r,n=[];for(t in w)w[t].forEach(function(r){var o=e[r],a=function(e,t,r){var n=I[e];if(null!=r){if(t){var o=t.replace(e,"");n+="-".concat(o)}return(n+="-".concat(r)).toLowerCase()}}(t,r,o);a&&n.push(a)});return n.push((r={"v-row--no-gutters":e.noGutters,"v-row--dense":e.dense},(0,o._)(r,"align-".concat(e.align),e.align),(0,o._)(r,"justify-".concat(e.justify),e.justify),(0,o._)(r,"align-content-".concat(e.alignContent),e.alignContent),r)),n});return function(){var t;return(0,d.h)(e.tag,{class:["v-row",n.value,e.class],style:e.style},null===(t=r.default)||void 0===t?void 0:t.call(r))}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_to_consumable_array":"glvYM","./VGrid.css":"88WZS","../../composables/component.mjs":"c32AV","../../composables/display.mjs":"5LhPp","../../composables/tag.mjs":"ceZPq",vue:"gHobw","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"88WZS":[function(){},{}],d0NZj:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSpacer",function(){return o}),e("./VGrid.css");var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-spacer","div","VSpacer")},{"./VGrid.css":"88WZS","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"88WZS":[function(){},{}],egZPB:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerHeaderProps",function(){return u}),n.export(r,"VDatePickerHeader",function(){return d});var o=e("vue");e("./VDatePickerHeader.css");var a=e("../VBtn/index.mjs"),i=e("../VDefaultsProvider/index.mjs"),s=e("../../composables/color.mjs"),l=e("../../composables/transition.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)({appendIcon:String,color:String,header:String,transition:String,onClick:(0,c.EventProp)()},"VDatePickerHeader"),d=(0,c.genericComponent)()({name:"VDatePickerHeader",props:u(),emits:{click:function(){return!0},"click:append":function(){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,u=(0,s.useBackgroundColor)(e,"color"),d=u.backgroundColorClasses,p=u.backgroundColorStyles;function f(){r("click")}function m(){r("click:append")}return(0,c.useRender)(function(){var t=!!(n.default||e.header),r=!!(n.append||e.appendIcon);return(0,o.createVNode)("div",{class:["v-date-picker-header",{"v-date-picker-header--clickable":!!e.onClick},d.value],style:p.value,onClick:f},[n.prepend&&(0,o.createVNode)("div",{key:"prepend",class:"v-date-picker-header__prepend"},[n.prepend()]),t&&(0,o.createVNode)(l.MaybeTransition,{key:"content",name:e.transition},{default:function(){var t,r;return[(0,o.createVNode)("div",{key:e.header,class:"v-date-picker-header__content"},[null!==(r=null===(t=n.default)||void 0===t?void 0:t.call(n))&&void 0!==r?r:e.header])]}}),r&&(0,o.createVNode)("div",{class:"v-date-picker-header__append"},[n.append?(0,o.createVNode)(i.VDefaultsProvider,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VBtn:{icon:e.appendIcon,variant:"text"}}},{default:function(){var e;return[null===(e=n.append)||void 0===e?void 0:e.call(n)]}}):(0,o.createVNode)(a.VBtn,{key:"append-btn",icon:e.appendIcon,variant:"text",onClick:m},null)])])}),{}}})},{vue:"gHobw","./VDatePickerHeader.css":"8Yryl","../VBtn/index.mjs":"kmwjW","../VDefaultsProvider/index.mjs":"9aMue","../../composables/color.mjs":"9gjsu","../../composables/transition.mjs":"4059v","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8Yryl":[function(){},{}],aDdjr:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerMonthProps",function(){return m}),n.export(r,"VDatePickerMonth",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_to_consumable_array"),i=e("@swc/helpers/_/_type_of"),s=e("vue");e("./VDatePickerMonth.css");var l=e("../VBtn/index.mjs"),c=e("../VDefaultsProvider/index.mjs"),u=e("../../composables/calendar.mjs"),d=e("../../composables/date/date.mjs"),p=e("../../composables/transition.mjs"),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,o._)({color:String,hideWeekdays:Boolean,multiple:[Boolean,Number,String],showWeek:Boolean,transition:{type:String,default:"picker-transition"},reverseTransition:{type:String,default:"picker-reverse-transition"}},(0,u.makeCalendarProps)()),"VDatePickerMonth"),_=(0,f.genericComponent)()({name:"VDatePickerMonth",props:m(),emits:{"update:modelValue":function(e){return!0},"update:month":function(e){return!0},"update:year":function(e){return!0}},setup:function(e,t){t.emit;var r=t.slots,n=(0,s.ref)(),o=(0,u.useCalendar)(e),f=o.daysInMonth,m=o.model,_=o.weekNumbers,h=(0,d.useDate)(),g=(0,s.shallowRef)(),b=(0,s.shallowRef)(),y=(0,s.shallowRef)(!1),S=(0,s.computed)(function(){return y.value?e.reverseTransition:e.transition});"range"===e.multiple&&m.value.length>0&&(g.value=m.value[0],m.value.length>1&&(b.value=m.value[m.value.length-1]));var E=(0,s.computed)(function(){var t=["number","string"].includes((0,i._)(e.multiple))?Number(e.multiple):1/0;return m.value.length>=t});function x(t){"range"===e.multiple?function(e){var t=h.startOfDay(e);if(0===m.value.length?g.value=void 0:1===m.value.length&&(g.value=m.value[0],b.value=void 0),g.value){if(b.value)g.value=e,b.value=void 0,m.value=[g.value];else{if(h.isSameDay(t,g.value)){g.value=void 0,m.value=[];return}h.isBefore(t,g.value)?(b.value=h.endOfDay(g.value),g.value=t):b.value=h.endOfDay(t);for(var r=h.getDiff(b.value,g.value,"days"),n=[g.value],o=1;o0?t.date(r.value[0]):e.min?t.date(e.min):Array.isArray(e.allowedDates)?t.date(e.allowedDates[0]):t.date()}),l=(0,a.useProxiedModel)(e,"year",void 0,function(e){var r=null!=e?Number(e):t.getYear(n.value);return t.startOfYear(t.setYear(t.date(),r))},function(e){return t.getYear(e)}),c=(0,a.useProxiedModel)(e,"month",void 0,function(e){var r=null!=e?Number(e):t.getMonth(n.value),o=t.setYear(t.startOfMonth(t.date()),t.getYear(l.value));return t.setMonth(o,r)},function(e){return t.getMonth(e)}),u=(0,i.computed)(function(){var t,r=Number(null!==(t=e.firstDayOfWeek)&&void 0!==t?t:0);return e.weekdays.map(function(e){return(e+r)%7})}),d=(0,i.computed)(function(){var r=t.getWeekArray(c.value,e.firstDayOfWeek),n=r.flat();if("static"===e.weeksInMonth&&n.length<42)for(var o=n[n.length-1],a=[],i=1;i<=42-n.length;i++)a.push(t.addDays(o,i)),i%7==0&&(r.push(a),a=[]);return r});function p(n,o){return n.filter(function(e){return u.value.includes(t.toJsDate(e).getDay())}).map(function(n,a){var i=t.toISO(n),s=!t.isSameMonth(n,c.value),l=t.isSameDay(n,t.startOfMonth(c.value)),u=t.isSameDay(n,t.endOfMonth(c.value)),d=t.isSameDay(n,c.value);return{date:n,isoDate:i,formatted:t.format(n,"keyboardDate"),year:t.getYear(n),month:t.getMonth(n),isDisabled:function(r){if(e.disabled)return!0;var n=t.date(r);return!!(e.min&&t.isAfter(t.date(e.min),n)||e.max&&t.isAfter(n,t.date(e.max)))||(Array.isArray(e.allowedDates)&&e.allowedDates.length>0?!e.allowedDates.some(function(e){return t.isSameDay(t.date(e),n)}):"function"==typeof e.allowedDates&&!e.allowedDates(n))}(n),isWeekStart:a%7==0,isWeekEnd:a%7==6,isToday:t.isSameDay(n,o),isAdjacent:s,isHidden:s&&!e.showAdjacentMonths,isStart:l,isSelected:r.value.some(function(e){return t.isSameDay(n,e)}),isEnd:u,isSame:d,localized:t.format(n,"dayOfMonth")}})}var f=(0,i.computed)(function(){for(var r=t.startOfWeek(n.value,e.firstDayOfWeek),o=[],a=0;a<=6;a++)o.push(t.addDays(r,a));return p(o,t.date())}),m=(0,i.computed)(function(){return p(d.value.flat(),t.date())}),_=(0,i.computed)(function(){return d.value.map(function(e){return e.length?(0,o.getWeek)(t,e[0]):null})});return{displayValue:n,daysInMonth:m,daysInWeek:f,genDays:p,model:r,weeksInMonth:d,weekDays:u,weekNumbers:_}}},{"./date/date.mjs":"928qC","./proxiedModel.mjs":"7LrVW",vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hDWZ8:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerMonthsProps",function(){return c}),n.export(r,"VDatePickerMonths",function(){return u});var o=e("vue");e("./VDatePickerMonths.css");var a=e("../VBtn/index.mjs"),i=e("../../composables/date/index.mjs"),s=e("../../composables/proxiedModel.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)({color:String,height:[String,Number],min:null,max:null,modelValue:Number,year:Number},"VDatePickerMonths"),u=(0,l.genericComponent)()({name:"VDatePickerMonths",props:c(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,c=(0,i.useDate)(),u=(0,s.useProxiedModel)(e,"modelValue"),d=(0,o.computed)(function(){var t=c.startOfYear(c.date());return e.year&&(t=c.setYear(t,e.year)),(0,l.createRange)(12).map(function(r){var n=c.format(t,"monthShort"),o=!!(e.min&&c.isAfter(c.startOfMonth(c.date(e.min)),t)||e.max&&c.isAfter(t,c.startOfMonth(c.date(e.max))));return t=c.getNextMonth(t),{isDisabled:o,text:n,value:r}})});return(0,o.watchEffect)(function(){var e;u.value=null!==(e=u.value)&&void 0!==e?e:c.getMonth(c.date())}),(0,l.useRender)(function(){return(0,o.createVNode)("div",{class:"v-date-picker-months",style:{height:(0,l.convertToUnit)(e.height)}},[(0,o.createVNode)("div",{class:"v-date-picker-months__content"},[d.value.map(function(t,i){var s,l,c=function(e){if(u.value===e){r("update:modelValue",u.value);return}u.value=e},d={active:u.value===i,color:u.value===i?e.color:void 0,disabled:t.isDisabled,rounded:!0,text:t.text,variant:u.value===t.value?"flat":"text",onClick:function(){return c(i)}};return null!==(l=null===(s=n.month)||void 0===s?void 0:s.call(n,{month:t,i:i,props:d}))&&void 0!==l?l:(0,o.createVNode)(a.VBtn,(0,o.mergeProps)({key:"month"},d),null)})])])}),{}}})},{vue:"gHobw","./VDatePickerMonths.css":"gJJsu","../VBtn/index.mjs":"kmwjW","../../composables/date/index.mjs":"3b53r","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gJJsu:[function(){},{}],eNsCz:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVDatePickerYearsProps",function(){return d}),n.export(r,"VDatePickerYears",function(){return p});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_ts_generator"),i=e("vue");e("./VDatePickerYears.css");var s=e("../VBtn/index.mjs"),l=e("../../composables/date/index.mjs"),c=e("../../composables/proxiedModel.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)({color:String,height:[String,Number],min:null,max:null,modelValue:Number},"VDatePickerYears"),p=(0,u.genericComponent)()({name:"VDatePickerYears",props:d(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,d=(0,l.useDate)(),p=(0,c.useProxiedModel)(e,"modelValue"),f=(0,i.computed)(function(){var t=d.getYear(d.date()),r=t-100,n=t+52;e.min&&(r=d.getYear(d.date(e.min))),e.max&&(n=d.getYear(d.date(e.max)));var o=d.startOfYear(d.date());return o=d.setYear(o,r),(0,u.createRange)(n-r+1,r).map(function(e){var t=d.format(o,"year");return o=d.setYear(o,d.getYear(o)+1),{text:t,value:e}})});(0,i.watchEffect)(function(){var e;p.value=null!==(e=p.value)&&void 0!==e?e:d.getYear(d.date())});var m=(0,u.templateRef)();return(0,i.onMounted)(/*#__PURE__*/(0,o._)(function(){var e;return(0,a._)(this,function(t){switch(t.label){case 0:return[4,(0,i.nextTick)()];case 1:return t.sent(),null===(e=m.el)||void 0===e||e.scrollIntoView({block:"center"}),[2]}})})),(0,u.useRender)(function(){return(0,i.createVNode)("div",{class:"v-date-picker-years",style:{height:(0,u.convertToUnit)(e.height)}},[(0,i.createVNode)("div",{class:"v-date-picker-years__content"},[f.value.map(function(t,o){var a,l,c={ref:p.value===t.value?m:void 0,active:p.value===t.value,color:p.value===t.value?e.color:void 0,rounded:!0,text:t.text,variant:p.value===t.value?"flat":"text",onClick:function(){if(p.value===t.value){r("update:modelValue",p.value);return}p.value=t.value}};return null!==(l=null===(a=n.year)||void 0===a?void 0:a.call(n,{year:t,i:o,props:c}))&&void 0!==l?l:(0,i.createVNode)(s.VBtn,(0,i.mergeProps)({key:"month"},c),null)})])])}),{}}})},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","./VDatePickerYears.css":"fUDBt","../VBtn/index.mjs":"kmwjW","../../composables/date/index.mjs":"3b53r","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fUDBt:[function(){},{}],"6pThO":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVPickerProps",function(){return d}),n.export(r,"VPicker",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VPicker.css");var i=e("./VPickerTitle.mjs"),s=e("../../components/VDefaultsProvider/VDefaultsProvider.mjs"),l=e("../../components/VSheet/VSheet.mjs"),c=e("../../composables/color.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({bgColor:String,landscape:Boolean,title:String,hideHeader:Boolean},(0,l.makeVSheetProps)()),"VPicker"),p=(0,u.genericComponent)()({name:"VPicker",props:d(),setup:function(e,t){var r=t.slots,n=(0,c.useBackgroundColor)((0,a.toRef)(e,"color")),o=n.backgroundColorClasses,d=n.backgroundColorStyles;return(0,u.useRender)(function(){var t=(0,l.VSheet).filterProps(e),n=!!(e.title||r.title);return(0,a.createVNode)(l.VSheet,(0,a.mergeProps)(t,{color:e.bgColor,class:["v-picker",{"v-picker--landscape":e.landscape,"v-picker--with-actions":!!r.actions},e.class],style:e.style}),{default:function(){var t;return[!e.hideHeader&&(0,a.createVNode)("div",{key:"header",class:[o.value],style:[d.value]},[n&&(0,a.createVNode)(i.VPickerTitle,{key:"picker-title"},{default:function(){var t,n;return[null!==(n=null===(t=r.title)||void 0===t?void 0:t.call(r))&&void 0!==n?n:e.title]}}),r.header&&(0,a.createVNode)("div",{class:"v-picker__header"},[r.header()])]),(0,a.createVNode)("div",{class:"v-picker__body"},[null===(t=r.default)||void 0===t?void 0:t.call(r)]),r.actions&&(0,a.createVNode)(s.VDefaultsProvider,{defaults:{VBtn:{slim:!0,variant:"text"}}},{default:function(){return[(0,a.createVNode)("div",{class:"v-picker__actions"},[r.actions()])]}})]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VPicker.css":"7qpcR","./VPickerTitle.mjs":"bOchu","../../components/VDefaultsProvider/VDefaultsProvider.mjs":"3cy0a","../../components/VSheet/VSheet.mjs":"jUuzJ","../../composables/color.mjs":"9gjsu","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7qpcR":[function(){},{}],bOchu:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VPickerTitle",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-picker-title")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gjfnR:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VDialog",function(){return o.VDialog});var o=e("./VDialog.mjs")},{"./VDialog.mjs":"rs240","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],biPHi:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VEmptyState",function(){return o.VEmptyState});var o=e("./VEmptyState.mjs")},{"./VEmptyState.mjs":"hLjFk","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hLjFk:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVEmptyStateProps",function(){return y}),n.export(r,"VEmptyState",function(){return S});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VEmptyState.css");var s=e("../VBtn/index.mjs"),l=e("../VDefaultsProvider/index.mjs"),c=e("../VIcon/index.mjs"),u=e("../VImg/index.mjs"),d=e("../../composables/color.mjs"),p=e("../../composables/component.mjs"),f=e("../../composables/dimensions.mjs"),m=e("../../composables/display.mjs"),_=e("../../composables/icons.mjs"),h=e("../../composables/size.mjs"),g=e("../../composables/theme.mjs"),b=e("../../util/index.mjs"),y=(0,b.propsFactory)((0,a._)({actionText:String,bgColor:String,color:String,icon:_.IconValue,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String},(0,p.makeComponentProps)(),(0,f.makeDimensionProps)(),(0,h.makeSizeProps)({size:void 0}),(0,g.makeThemeProps)()),"VEmptyState"),S=(0,b.genericComponent)()({name:"VEmptyState",props:y(),emits:{"click:action":function(e){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,a=(0,g.provideTheme)(e).themeClasses,p=(0,d.useBackgroundColor)((0,i.toRef)(e,"bgColor")),_=p.backgroundColorClasses,h=p.backgroundColorStyles,y=(0,f.useDimension)(e).dimensionStyles,S=(0,m.useDisplay)().displayClasses;function E(e){r("click:action",e)}return(0,b.useRender)(function(){var t,r,d,p,f,m,g,x=!!(n.actions||e.actionText),C=!!(n.headline||e.headline),T=!!(n.title||e.title),w=!!(n.text||e.text),I=!!(n.media||e.image||e.icon),R=e.size||(e.image?200:96);return(0,i.createVNode)("div",{class:["v-empty-state",(0,o._)({},"v-empty-state--".concat(e.justify),!0),a.value,_.value,S.value,e.class],style:[h.value,y.value,e.style]},[I&&(0,i.createVNode)("div",{key:"media",class:"v-empty-state__media"},[n.media?(0,i.createVNode)(l.VDefaultsProvider,{key:"media-defaults",defaults:{VImg:{src:e.image,height:R},VIcon:{size:R,icon:e.icon}}},{default:function(){return[n.media()]}}):(0,i.createVNode)(i.Fragment,null,[e.image?(0,i.createVNode)(u.VImg,{key:"image",src:e.image,height:R},null):e.icon?(0,i.createVNode)(c.VIcon,{key:"icon",color:e.color,size:R,icon:e.icon},null):void 0])]),C&&(0,i.createVNode)("div",{key:"headline",class:"v-empty-state__headline"},[null!==(p=null===(t=n.headline)||void 0===t?void 0:t.call(n))&&void 0!==p?p:e.headline]),T&&(0,i.createVNode)("div",{key:"title",class:"v-empty-state__title"},[null!==(f=null===(r=n.title)||void 0===r?void 0:r.call(n))&&void 0!==f?f:e.title]),w&&(0,i.createVNode)("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:(0,b.convertToUnit)(e.textWidth)}},[null!==(m=null===(d=n.text)||void 0===d?void 0:d.call(n))&&void 0!==m?m:e.text]),n.default&&(0,i.createVNode)("div",{key:"content",class:"v-empty-state__content"},[n.default()]),x&&(0,i.createVNode)("div",{key:"actions",class:"v-empty-state__actions"},[(0,i.createVNode)(l.VDefaultsProvider,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:null!==(g=e.color)&&void 0!==g?g:"surface-variant",text:e.actionText}}},{default:function(){var e,t;return[null!==(t=null===(e=n.actions)||void 0===e?void 0:e.call(n,{props:{onClick:E}}))&&void 0!==t?t:(0,i.createVNode)(s.VBtn,{onClick:E},null)]}})])])}),{}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VEmptyState.css":"afXMW","../VBtn/index.mjs":"kmwjW","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","../VImg/index.mjs":"cbjM3","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/display.mjs":"5LhPp","../../composables/icons.mjs":"71CER","../../composables/size.mjs":"2mSFo","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],afXMW:[function(){},{}],lWrql:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VExpansionPanels",function(){return o.VExpansionPanels}),n.export(r,"VExpansionPanel",function(){return a.VExpansionPanel}),n.export(r,"VExpansionPanelText",function(){return i.VExpansionPanelText}),n.export(r,"VExpansionPanelTitle",function(){return s.VExpansionPanelTitle});var o=e("./VExpansionPanels.mjs"),a=e("./VExpansionPanel.mjs"),i=e("./VExpansionPanelText.mjs"),s=e("./VExpansionPanelTitle.mjs")},{"./VExpansionPanels.mjs":"7aIVf","./VExpansionPanel.mjs":"7JLtb","./VExpansionPanelText.mjs":"drhn6","./VExpansionPanelTitle.mjs":"bLpuV","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7aIVf":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVExpansionPanelsProps",function(){return h}),n.export(r,"VExpansionPanels",function(){return g});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VExpansionPanel.css");var s=e("./shared.mjs"),l=e("./VExpansionPanel.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/defaults.mjs"),d=e("../../composables/group.mjs"),p=e("../../composables/tag.mjs"),f=e("../../composables/theme.mjs"),m=e("../../util/index.mjs"),_=["default","accordion","inset","popout"],h=(0,m.propsFactory)((0,a._)((0,o._)({flat:Boolean},(0,d.makeGroupProps)(),(0,m.pick)((0,l.makeVExpansionPanelProps)(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","readonly","ripple","rounded","tile","static"]),(0,f.makeThemeProps)(),(0,c.makeComponentProps)(),(0,p.makeTagProps)()),{variant:{type:String,default:"default",validator:function(e){return _.includes(e)}}}),"VExpansionPanels"),g=(0,m.genericComponent)()({name:"VExpansionPanels",props:h(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,d.useGroup)(e,s.VExpansionPanelSymbol),o=n.next,a=n.prev,l=(0,f.provideTheme)(e).themeClasses,c=(0,i.computed)(function(){return e.variant&&"v-expansion-panels--variant-".concat(e.variant)});return(0,u.provideDefaults)({VExpansionPanel:{bgColor:(0,i.toRef)(e,"bgColor"),collapseIcon:(0,i.toRef)(e,"collapseIcon"),color:(0,i.toRef)(e,"color"),eager:(0,i.toRef)(e,"eager"),elevation:(0,i.toRef)(e,"elevation"),expandIcon:(0,i.toRef)(e,"expandIcon"),focusable:(0,i.toRef)(e,"focusable"),hideActions:(0,i.toRef)(e,"hideActions"),readonly:(0,i.toRef)(e,"readonly"),ripple:(0,i.toRef)(e,"ripple"),rounded:(0,i.toRef)(e,"rounded"),static:(0,i.toRef)(e,"static")}}),(0,m.useRender)(function(){return(0,i.createVNode)(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},l.value,c.value,e.class],style:e.style},{default:function(){var e;return[null===(e=r.default)||void 0===e?void 0:e.call(r,{prev:a,next:o})]}})}),{next:o,prev:a}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VExpansionPanel.css":"kzAhA","./shared.mjs":"5pQfW","./VExpansionPanel.mjs":"7JLtb","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/group.mjs":"c5IR1","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kzAhA:[function(){},{}],"5pQfW":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VExpansionPanelSymbol",function(){return o});var o=Symbol.for("vuetify:v-expansion-panel")},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7JLtb":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVExpansionPanelProps",function(){return g}),n.export(r,"VExpansionPanel",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_to_consumable_array"),i=e("vue"),s=e("./shared.mjs"),l=e("./VExpansionPanelText.mjs"),c=e("./VExpansionPanelTitle.mjs"),u=e("../VDefaultsProvider/index.mjs"),d=e("../../composables/color.mjs"),p=e("../../composables/elevation.mjs"),f=e("../../composables/group.mjs"),m=e("../../composables/rounded.mjs"),_=e("../../composables/tag.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,o._)({title:String,text:String,bgColor:String},(0,p.makeElevationProps)(),(0,f.makeGroupItemProps)(),(0,m.makeRoundedProps)(),(0,_.makeTagProps)(),(0,c.makeVExpansionPanelTitleProps)(),(0,l.makeVExpansionPanelTextProps)()),"VExpansionPanel"),b=(0,h.genericComponent)()({name:"VExpansionPanel",props:g(),emits:{"group:selected":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,f.useGroupItem)(e,s.VExpansionPanelSymbol),_=(0,d.useBackgroundColor)(e,"bgColor"),g=_.backgroundColorClasses,b=_.backgroundColorStyles,y=(0,p.useElevation)(e).elevationClasses,S=(0,m.useRounded)(e).roundedClasses,E=(0,i.computed)(function(){return(null==n?void 0:n.disabled.value)||e.disabled}),x=(0,i.computed)(function(){return n.group.items.value.reduce(function(e,t,r){return n.group.selected.value.includes(t.id)&&e.push(r),e},[])}),C=(0,i.computed)(function(){var e=n.group.items.value.findIndex(function(e){return e.id===n.id});return!n.isSelected.value&&x.value.some(function(t){return t-e==1})}),T=(0,i.computed)(function(){var e=n.group.items.value.findIndex(function(e){return e.id===n.id});return!n.isSelected.value&&x.value.some(function(t){return t-e==-1})});return(0,i.provide)(s.VExpansionPanelSymbol,n),(0,h.useRender)(function(){var t=!!(r.text||e.text),s=!!(r.title||e.title),d=(0,c.VExpansionPanelTitle).filterProps(e),p=(0,l.VExpansionPanelText).filterProps(e);return(0,i.createVNode)(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":n.isSelected.value,"v-expansion-panel--before-active":C.value,"v-expansion-panel--after-active":T.value,"v-expansion-panel--disabled":E.value},S.value,g.value,e.class],style:[b.value,e.style]},{default:function(){return[(0,i.createVNode)("div",{class:["v-expansion-panel__shadow"].concat((0,a._)(y.value))},null),(0,i.createVNode)(u.VDefaultsProvider,{defaults:{VExpansionPanelTitle:(0,o._)({},d),VExpansionPanelText:(0,o._)({},p)}},{default:function(){var n;return[s&&(0,i.createVNode)(c.VExpansionPanelTitle,{key:"title"},{default:function(){return[r.title?r.title():e.title]}}),t&&(0,i.createVNode)(l.VExpansionPanelText,{key:"text"},{default:function(){return[r.text?r.text():e.text]}}),null===(n=r.default)||void 0===n?void 0:n.call(r)]}})]}})}),{groupItem:n}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","./shared.mjs":"5pQfW","./VExpansionPanelText.mjs":"drhn6","./VExpansionPanelTitle.mjs":"bLpuV","../VDefaultsProvider/index.mjs":"9aMue","../../composables/color.mjs":"9gjsu","../../composables/elevation.mjs":"jNJPe","../../composables/group.mjs":"c5IR1","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],drhn6:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVExpansionPanelTextProps",function(){return d}),n.export(r,"VExpansionPanelText",function(){return p});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./shared.mjs"),s=e("../transitions/index.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/lazy.mjs"),u=e("../../util/index.mjs"),d=(0,u.propsFactory)((0,o._)({},(0,l.makeComponentProps)(),(0,c.makeLazyProps)()),"VExpansionPanelText"),p=(0,u.genericComponent)()({name:"VExpansionPanelText",props:d(),setup:function(e,t){var r=t.slots,n=(0,a.inject)(i.VExpansionPanelSymbol);if(!n)throw Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");var o=(0,c.useLazy)(e,n.isSelected),l=o.hasContent,d=o.onAfterLeave;return(0,u.useRender)(function(){return(0,a.createVNode)(s.VExpandTransition,{onAfterLeave:d},{default:function(){var t;return[(0,a.withDirectives)((0,a.createVNode)("div",{class:["v-expansion-panel-text",e.class],style:e.style},[r.default&&l.value&&(0,a.createVNode)("div",{class:"v-expansion-panel-text__wrapper"},[null===(t=r.default)||void 0===t?void 0:t.call(r)])]),[[a.vShow,n.isSelected.value]])]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./shared.mjs":"5pQfW","../transitions/index.mjs":"9jbNO","../../composables/component.mjs":"c32AV","../../composables/lazy.mjs":"jA9Wv","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bLpuV:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVExpansionPanelTitleProps",function(){return _}),n.export(r,"VExpansionPanelTitle",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./shared.mjs"),s=e("../VDefaultsProvider/index.mjs"),l=e("../VIcon/index.mjs"),c=e("../../composables/color.mjs"),u=e("../../composables/component.mjs"),d=e("../../composables/dimensions.mjs"),p=e("../../composables/icons.mjs"),f=e("../../directives/ripple/index.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({color:String,expandIcon:{type:p.IconValue,default:"$expand"},collapseIcon:{type:p.IconValue,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean},(0,u.makeComponentProps)(),(0,d.makeDimensionProps)()),"VExpansionPanelTitle"),h=(0,m.genericComponent)()({name:"VExpansionPanelTitle",directives:{Ripple:f.Ripple},props:_(),setup:function(e,t){var r=t.slots,n=(0,a.inject)(i.VExpansionPanelSymbol);if(!n)throw Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");var o=(0,c.useBackgroundColor)(e,"color"),u=o.backgroundColorClasses,p=o.backgroundColorStyles,f=(0,d.useDimension)(e).dimensionStyles,_=(0,a.computed)(function(){return{collapseIcon:e.collapseIcon,disabled:n.disabled.value,expanded:n.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly}}),h=(0,a.computed)(function(){return n.isSelected.value?e.collapseIcon:e.expandIcon});return(0,m.useRender)(function(){var t;return(0,a.withDirectives)((0,a.createVNode)("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":n.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},u.value,e.class],style:[p.value,f.value,e.style],type:"button",tabindex:n.disabled.value?-1:void 0,disabled:n.disabled.value,"aria-expanded":n.isSelected.value,onClick:e.readonly?void 0:n.toggle},[(0,a.createVNode)("span",{class:"v-expansion-panel-title__overlay"},null),null===(t=r.default)||void 0===t?void 0:t.call(r,_.value),!e.hideActions&&(0,a.createVNode)(s.VDefaultsProvider,{defaults:{VIcon:{icon:h.value}}},{default:function(){var e,t;return[(0,a.createVNode)("span",{class:"v-expansion-panel-title__icon"},[null!==(t=null===(e=r.actions)||void 0===e?void 0:e.call(r,_.value))&&void 0!==t?t:(0,a.createVNode)(l.VIcon,null,null)])]}})]),[[(0,a.resolveDirective)("ripple"),e.ripple]])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./shared.mjs":"5pQfW","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/icons.mjs":"71CER","../../directives/ripple/index.mjs":"5qUsh","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],x9NIh:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VFab",function(){return o.VFab});var o=e("./VFab.mjs")},{"./VFab.mjs":"canNh","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],canNh:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFabProps",function(){return _}),n.export(r,"VFab",function(){return h});var o=e("@swc/helpers/_/_define_property"),a=e("@swc/helpers/_/_object_spread"),i=e("vue");e("./VFab.css");var s=e("../VBtn/VBtn.mjs"),l=e("../../composables/layout.mjs"),c=e("../../composables/location.mjs"),u=e("../../composables/proxiedModel.mjs"),d=e("../../composables/resizeObserver.mjs"),p=e("../../composables/toggleScope.mjs"),f=e("../../composables/transition.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,a._)({app:Boolean,appear:Boolean,extended:Boolean,layout:Boolean,offset:Boolean,modelValue:{type:Boolean,default:!0}},(0,m.omit)((0,s.makeVBtnProps)({active:!0}),["location"]),(0,l.makeLayoutItemProps)(),(0,c.makeLocationProps)(),(0,f.makeTransitionProps)({transition:"fab-transition"})),"VFab"),h=(0,m.genericComponent)()({name:"VFab",props:_(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,u.useProxiedModel)(e,"modelValue"),c=(0,i.shallowRef)(56),_=(0,i.ref)(),h=(0,d.useResizeObserver)(function(e){e.length&&(c.value=e[0].target.clientHeight)}).resizeRef,g=(0,i.computed)(function(){return e.app||e.absolute}),b=(0,i.computed)(function(){var t,r;return!!g.value&&(null!==(r=null===(t=e.location)||void 0===t?void 0:t.split(" ").shift())&&void 0!==r?r:"bottom")}),y=(0,i.computed)(function(){var t,r;return!!g.value&&(null!==(r=null===(t=e.location)||void 0===t?void 0:t.split(" ")[1])&&void 0!==r?r:"end")});(0,p.useToggleScope)(function(){return e.app},function(){var t=(0,l.useLayoutItem)({id:e.name,order:(0,i.computed)(function(){return parseInt(e.order,10)}),position:b,layoutSize:(0,i.computed)(function(){return e.layout?c.value+24:0}),elementSize:(0,i.computed)(function(){return c.value+24}),active:(0,i.computed)(function(){return e.app&&n.value}),absolute:(0,i.toRef)(e,"absolute")});(0,i.watchEffect)(function(){_.value=t.layoutItemStyles.value})});var S=(0,i.ref)();return(0,m.useRender)(function(){var t,n=(0,s.VBtn).filterProps(e);return(0,i.createVNode)("div",{ref:S,class:["v-fab",(t={"v-fab--absolute":e.absolute,"v-fab--app":!!e.app,"v-fab--extended":e.extended,"v-fab--offset":e.offset},(0,o._)(t,"v-fab--".concat(b.value),g.value),(0,o._)(t,"v-fab--".concat(y.value),g.value),t),e.class],style:[e.app?(0,a._)({},_.value):{height:"inherit",width:void 0},e.style]},[(0,i.createVNode)("div",{class:"v-fab__container"},[(0,i.createVNode)(f.MaybeTransition,{appear:e.appear,transition:e.transition},{default:function(){return[(0,i.withDirectives)((0,i.createVNode)(s.VBtn,(0,i.mergeProps)({ref:h},n,{active:void 0,location:void 0}),r),[[i.vShow,e.active]])]}})])])}),{}}})},{"@swc/helpers/_/_define_property":"3xmRB","@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VFab.css":"4Ecd1","../VBtn/VBtn.mjs":"egE2E","../../composables/layout.mjs":"j1CRa","../../composables/location.mjs":"S9pdd","../../composables/proxiedModel.mjs":"7LrVW","../../composables/resizeObserver.mjs":"kyBb2","../../composables/toggleScope.mjs":"1GDdb","../../composables/transition.mjs":"4059v","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4Ecd1":[function(){},{}],"8223I":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VField",function(){return o.VField}),n.export(r,"VFieldLabel",function(){return a.VFieldLabel});var o=e("./VField.mjs"),a=e("./VFieldLabel.mjs")},{"./VField.mjs":"hCPVS","./VFieldLabel.mjs":"atbl8","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hT89W:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VFileInput",function(){return o.VFileInput});var o=e("./VFileInput.mjs")},{"./VFileInput.mjs":"amA60","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],amA60:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFileInputProps",function(){return S}),n.export(r,"VFileInput",function(){return E});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_object_without_properties"),s=e("@swc/helpers/_/_sliced_to_array"),l=e("@swc/helpers/_/_to_consumable_array"),c=e("vue");e("./VFileInput.css");var u=e("../VChip/index.mjs"),d=e("../VCounter/index.mjs"),p=e("../VField/index.mjs"),f=e("../VField/VField.mjs"),m=e("../VInput/VInput.mjs"),_=e("../../composables/focus.mjs"),h=e("../../composables/forwardRefs.mjs"),g=e("../../composables/locale.mjs"),b=e("../../composables/proxiedModel.mjs"),y=e("../../util/index.mjs"),S=(0,y.propsFactory)((0,o._)((0,a._)((0,o._)({chips:Boolean,counter:Boolean,counterSizeString:{type:String,default:"$vuetify.fileInput.counterSize"},counterString:{type:String,default:"$vuetify.fileInput.counter"},hideInput:Boolean,multiple:Boolean,showSize:{type:[Boolean,Number,String],default:!1,validator:function(e){return"boolean"==typeof e||[1e3,1024].includes(Number(e))}}},(0,m.makeVInputProps)({prependIcon:"$file"})),{modelValue:{type:[Array,Object],default:function(e){return e.multiple?[]:null},validator:function(e){return(0,y.wrapInArray)(e).every(function(e){return null!=e&&"object"==typeof e})}}}),(0,f.makeVFieldProps)({clearable:!0})),"VFileInput"),E=(0,y.genericComponent)()({name:"VFileInput",inheritAttrs:!1,props:S(),emits:{"click:control":function(e){return!0},"mousedown:control":function(e){return!0},"update:focused":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.emit,S=t.slots,E=(0,g.useLocale)().t,x=(0,b.useProxiedModel)(e,"modelValue",e.modelValue,function(e){return(0,y.wrapInArray)(e)},function(t){return!e.multiple&&Array.isArray(t)?t[0]:t}),C=(0,_.useFocus)(e),T=C.isFocused,w=C.focus,I=C.blur,R=(0,c.computed)(function(){return"boolean"!=typeof e.showSize?e.showSize:void 0}),A=(0,c.computed)(function(){var e;return(null!==(e=x.value)&&void 0!==e?e:[]).reduce(function(e,t){var r=t.size;return e+(void 0===r?0:r)},0)}),N=(0,c.computed)(function(){return(0,y.humanReadableFileSize)(A.value,R.value)}),k=(0,c.computed)(function(){var t;return(null!==(t=x.value)&&void 0!==t?t:[]).map(function(t){var r=t.name,n=void 0===r?"":r,o=t.size;return e.showSize?"".concat(n," (").concat((0,y.humanReadableFileSize)(void 0===o?0:o,R.value),")"):n})}),O=(0,c.computed)(function(){var t,r,n=null!==(r=null===(t=x.value)||void 0===t?void 0:t.length)&&void 0!==r?r:0;return e.showSize?E(e.counterSizeString,n,N.value):E(e.counterString,n)}),D=(0,c.ref)(),j=(0,c.ref)(),P=(0,c.ref)(),M=(0,c.computed)(function(){return T.value||e.active}),L=(0,c.computed)(function(){return["plain","underlined"].includes(e.variant)});function V(){var e;P.value!==document.activeElement&&(null===(e=P.value)||void 0===e||e.focus()),T.value||w()}function F(e){var t;null===(t=P.value)||void 0===t||t.click()}function B(e){n("mousedown:control",e)}function U(e){var t;null===(t=P.value)||void 0===t||t.click(),n("click:control",e)}function G(t){t.stopPropagation(),V(),(0,c.nextTick)(function(){x.value=[],(0,y.callEvent)(e["onClick:clear"],t)})}return(0,c.watch)(x,function(e){Array.isArray(e)&&e.length||!P.value||(P.value.value="")}),(0,y.useRender)(function(){var t=!!(S.counter||e.counter),n=!!(t||S.details),_=(0,s._)((0,y.filterInputAttrs)(r),2),h=_[0],g=_[1],b=(0,m.VInput).filterProps(e),E=(b.modelValue,(0,i._)(b,["modelValue"])),C=(0,f.filterFieldProps)(e);return(0,c.createVNode)(m.VInput,(0,c.mergeProps)({ref:D,modelValue:x.value,"onUpdate:modelValue":function(e){return x.value=e},class:["v-file-input",{"v-file-input--chips":!!e.chips,"v-file-input--hide":e.hideInput,"v-input--plain-underlined":L.value},e.class],style:e.style,"onClick:prepend":F},h,E,{centerAffix:!L.value,focused:T.value}),(0,a._)((0,o._)({},S),{default:function(t){var r=t.id,n=t.isDisabled,s=t.isDirty,d=t.isReadonly,f=t.isValid;return(0,c.createVNode)(p.VField,(0,c.mergeProps)({ref:j,"prepend-icon":e.prependIcon,onMousedown:B,onClick:U,"onClick:clear":G,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},C,{id:r.value,active:M.value||s.value,dirty:s.value||e.dirty,disabled:n.value,focused:T.value,error:!1===f.value}),(0,a._)((0,o._)({},S),{default:function(t){var r,o=t.props.class,a=(0,i._)(t.props,["class"]);return(0,c.createVNode)(c.Fragment,null,[(0,c.createVNode)("input",(0,c.mergeProps)({ref:P,type:"file",readonly:d.value,disabled:n.value,multiple:e.multiple,name:e.name,onClick:function(e){e.stopPropagation(),d.value&&e.preventDefault(),V()},onChange:function(e){if(e.target){var t,r=e.target;x.value=(0,l._)(null!==(t=r.files)&&void 0!==t?t:[])}},onFocus:V,onBlur:I},a,g),null),(0,c.createVNode)("div",{class:o},[!!(null===(r=x.value)||void 0===r?void 0:r.length)&&!e.hideInput&&(S.selection?S.selection({fileNames:k.value,totalBytes:A.value,totalBytesReadable:N.value}):e.chips?k.value.map(function(e){return(0,c.createVNode)(u.VChip,{key:e,size:"small",text:e},null)}):k.value.join(", "))])])}}))},details:n?function(r){var n,o;return(0,c.createVNode)(c.Fragment,null,[null===(n=S.details)||void 0===n?void 0:n.call(S,r),t&&(0,c.createVNode)(c.Fragment,null,[(0,c.createVNode)("span",null,null),(0,c.createVNode)(d.VCounter,{active:!!(null===(o=x.value)||void 0===o?void 0:o.length),value:O.value,disabled:e.disabled},S.counter)])])}:void 0}))}),(0,h.forwardRefs)({},D,j,P)}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ","@swc/helpers/_/_sliced_to_array":"hvLP1","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","./VFileInput.css":"digOI","../VChip/index.mjs":"2TmoL","../VCounter/index.mjs":"cfwzy","../VField/index.mjs":"8223I","../VField/VField.mjs":"hCPVS","../VInput/VInput.mjs":"75G3q","../../composables/focus.mjs":"bmd72","../../composables/forwardRefs.mjs":"fZtSV","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],digOI:[function(){},{}],eYVts:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VFooter",function(){return o.VFooter});var o=e("./VFooter.mjs")},{"./VFooter.mjs":"1kk1T","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1kk1T":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFooterProps",function(){return g}),n.export(r,"VFooter",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VFooter.css");var i=e("../../composables/border.mjs"),s=e("../../composables/color.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/elevation.mjs"),u=e("../../composables/layout.mjs"),d=e("../../composables/resizeObserver.mjs"),p=e("../../composables/rounded.mjs"),f=e("../../composables/tag.mjs"),m=e("../../composables/theme.mjs"),_=e("../../composables/toggleScope.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,o._)({app:Boolean,color:String,height:{type:[Number,String],default:"auto"}},(0,i.makeBorderProps)(),(0,l.makeComponentProps)(),(0,c.makeElevationProps)(),(0,u.makeLayoutItemProps)(),(0,p.makeRoundedProps)(),(0,f.makeTagProps)({tag:"footer"}),(0,m.makeThemeProps)()),"VFooter"),b=(0,h.genericComponent)()({name:"VFooter",props:g(),setup:function(e,t){var r=t.slots,n=(0,a.ref)(),o=(0,m.provideTheme)(e).themeClasses,l=(0,s.useBackgroundColor)((0,a.toRef)(e,"color")),f=l.backgroundColorClasses,g=l.backgroundColorStyles,b=(0,i.useBorder)(e).borderClasses,y=(0,c.useElevation)(e).elevationClasses,S=(0,p.useRounded)(e).roundedClasses,E=(0,a.shallowRef)(32),x=(0,d.useResizeObserver)(function(e){e.length&&(E.value=e[0].target.clientHeight)}).resizeRef,C=(0,a.computed)(function(){return"auto"===e.height?E.value:parseInt(e.height,10)});return(0,_.useToggleScope)(function(){return e.app},function(){var t=(0,u.useLayoutItem)({id:e.name,order:(0,a.computed)(function(){return parseInt(e.order,10)}),position:(0,a.computed)(function(){return"bottom"}),layoutSize:C,elementSize:(0,a.computed)(function(){return"auto"===e.height?void 0:C.value}),active:(0,a.computed)(function(){return e.app}),absolute:(0,a.toRef)(e,"absolute")});(0,a.watchEffect)(function(){n.value=t.layoutItemStyles.value})}),(0,h.useRender)(function(){return(0,a.createVNode)(e.tag,{ref:x,class:["v-footer",o.value,f.value,b.value,y.value,S.value,e.class],style:[g.value,e.app?n.value:{height:(0,h.convertToUnit)(e.height)},e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VFooter.css":"hjVYN","../../composables/border.mjs":"8SyXK","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/elevation.mjs":"jNJPe","../../composables/layout.mjs":"j1CRa","../../composables/resizeObserver.mjs":"kyBb2","../../composables/rounded.mjs":"4CR7Z","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/toggleScope.mjs":"1GDdb","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hjVYN:[function(){},{}],"5654V":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VForm",function(){return o.VForm});var o=e("./VForm.mjs")},{"./VForm.mjs":"7fvQM","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7fvQM":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVFormProps",function(){return u}),n.export(r,"VForm",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/form.mjs"),l=e("../../composables/forwardRefs.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({},(0,i.makeComponentProps)(),(0,s.makeFormProps)()),"VForm"),d=(0,c.genericComponent)()({name:"VForm",props:u(),emits:{"update:modelValue":function(e){return!0},submit:function(e){return!0}},setup:function(e,t){var r=t.slots,n=t.emit,o=(0,s.createForm)(e),i=(0,a.ref)();function u(e){e.preventDefault(),o.reset()}function d(e){var t=o.validate();e.then=t.then.bind(t),e.catch=t.catch.bind(t),e.finally=t.finally.bind(t),n("submit",e),e.defaultPrevented||t.then(function(e){var t;e.valid&&(null===(t=i.value)||void 0===t||t.submit())}),e.preventDefault()}return(0,c.useRender)(function(){var t;return(0,a.createVNode)("form",{ref:i,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:u,onSubmit:d},[null===(t=r.default)||void 0===t?void 0:t.call(r,o)])}),(0,l.forwardRefs)(o,i)}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/form.mjs":"e23iP","../../composables/forwardRefs.mjs":"fZtSV","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bZMDc:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VHover",function(){return o.VHover});var o=e("./VHover.mjs")},{"./VHover.mjs":"aKUmU","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],aKUmU:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVHoverProps",function(){return l}),n.export(r,"VHover",function(){return c});var o=e("@swc/helpers/_/_object_spread"),a=e("../../composables/delay.mjs"),i=e("../../composables/proxiedModel.mjs"),s=e("../../util/index.mjs"),l=(0,s.propsFactory)((0,o._)({disabled:Boolean,modelValue:{type:Boolean,default:null}},(0,a.makeDelayProps)()),"VHover"),c=(0,s.genericComponent)()({name:"VHover",props:l(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,i.useProxiedModel)(e,"modelValue"),o=(0,a.useDelay)(e,function(t){return!e.disabled&&(n.value=t)}),s=o.runOpenDelay,l=o.runCloseDelay;return function(){var e;return null===(e=r.default)||void 0===e?void 0:e.call(r,{isHovering:n.value,props:{onMouseenter:s,onMouseleave:l}})}}})},{"@swc/helpers/_/_object_spread":"j01jQ","../../composables/delay.mjs":"bqvBl","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],lCelv:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VInfiniteScroll",function(){return o.VInfiniteScroll});var o=e("./VInfiniteScroll.mjs")},{"./VInfiniteScroll.mjs":"gAaoI","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gAaoI:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVInfiniteScrollProps",function(){return _}),n.export(r,"VInfiniteScrollIntersect",function(){return h}),n.export(r,"VInfiniteScroll",function(){return g});var o=e("@swc/helpers/_/_async_to_generator"),a=e("@swc/helpers/_/_object_spread"),i=e("@swc/helpers/_/_ts_generator"),s=e("vue");e("./VInfiniteScroll.css");var l=e("../VBtn/index.mjs"),c=e("../VProgressCircular/index.mjs"),u=e("../../composables/dimensions.mjs"),d=e("../../composables/intersectionObserver.mjs"),p=e("../../composables/locale.mjs"),f=e("../../composables/tag.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,a._)({color:String,direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}},side:{type:String,default:"end",validator:function(e){return["start","end","both"].includes(e)}},mode:{type:String,default:"intersect",validator:function(e){return["intersect","manual"].includes(e)}},margin:[Number,String],loadMoreText:{type:String,default:"$vuetify.infiniteScroll.loadMore"},emptyText:{type:String,default:"$vuetify.infiniteScroll.empty"}},(0,u.makeDimensionProps)(),(0,f.makeTagProps)()),"VInfiniteScroll"),h=(0,m.defineComponent)({name:"VInfiniteScrollIntersect",props:{side:{type:String,required:!0},rootMargin:String},emits:{intersect:function(e,t){return!0}},setup:function(e,t){var r,n=t.emit,a=(0,d.useIntersectionObserver)(),l=a.intersectionRef,c=a.isIntersecting;return(0,s.watch)(c,(r=(0,o._)(function(t){return(0,i._)(this,function(r){return n("intersect",e.side,t),[2]})}),function(e){return r.apply(this,arguments)})),(0,m.useRender)(function(){return(0,s.createVNode)("div",{class:"v-infinite-scroll-intersect",style:{"--v-infinite-margin-size":e.rootMargin},ref:l},[(0,s.createTextVNode)(" ")])}),{}}}),g=(0,m.genericComponent)()({name:"VInfiniteScroll",props:_(),emits:{load:function(e){return!0}},setup:function(e,t){var r=t.slots,n=t.emit,o=(0,s.ref)(),a=(0,s.shallowRef)("ok"),i=(0,s.shallowRef)("ok"),d=(0,s.computed)(function(){return(0,m.convertToUnit)(e.margin)}),f=(0,s.shallowRef)(!1);function _(t){if(o.value){var r="vertical"===e.direction?"scrollTop":"scrollLeft";o.value[r]=t}}function g(){if(!o.value)return 0;var t="vertical"===e.direction?"scrollHeight":"scrollWidth";return o.value[t]}function b(e,t){"start"===e?a.value=t:"end"===e&&(i.value=t)}(0,s.onMounted)(function(){o.value&&("start"===e.side?_(g()):"both"===e.side&&_(g()/2-function(){if(!o.value)return 0;var t="vertical"===e.direction?"clientHeight":"clientWidth";return o.value[t]}()/2))});var y=0;function S(e,t){f.value=t,f.value&&E(e)}function E(t){if("manual"===e.mode||f.value){var r="start"===t?a.value:i.value;!o.value||["empty","loading"].includes(r)||(y=g(),b(t,"loading"),n("load",{side:t,done:function(r){b(t,r),(0,s.nextTick)(function(){"empty"!==r&&"error"!==r&&("ok"===r&&"start"===t&&_(g()-y+function(){if(!o.value)return 0;var t="vertical"===e.direction?"scrollTop":"scrollLeft";return o.value[t]}()),"manual"!==e.mode&&(0,s.nextTick)(function(){window.requestAnimationFrame(function(){window.requestAnimationFrame(function(){window.requestAnimationFrame(function(){E(t)})})})}))})}}))}}var x=(0,p.useLocale)().t;function C(t,n){if(e.side===t||"both"===e.side){var o,a,i,u,d,p,f,m,_,h=function(){return E(t)},g={side:t,props:{onClick:h,color:e.color}};return"error"===n?null===(o=r.error)||void 0===o?void 0:o.call(r,g):"empty"===n?null!==(u=null===(a=r.empty)||void 0===a?void 0:a.call(r,g))&&void 0!==u?u:(0,s.createVNode)("div",null,[x(e.emptyText)]):"manual"===e.mode?"loading"===n?null!==(f=null===(d=r.loading)||void 0===d?void 0:d.call(r,g))&&void 0!==f?f:(0,s.createVNode)(c.VProgressCircular,{indeterminate:!0,color:e.color},null):null!==(m=null===(p=r["load-more"])||void 0===p?void 0:p.call(r,g))&&void 0!==m?m:(0,s.createVNode)(l.VBtn,{variant:"outlined",color:e.color,onClick:h},{default:function(){return[x(e.loadMoreText)]}}):null!==(_=null===(i=r.loading)||void 0===i?void 0:i.call(r,g))&&void 0!==_?_:(0,s.createVNode)(c.VProgressCircular,{indeterminate:!0,color:e.color},null)}}var T=(0,u.useDimension)(e).dimensionStyles;(0,m.useRender)(function(){var t=e.tag,n="start"===e.side||"both"===e.side,l="end"===e.side||"both"===e.side,c="intersect"===e.mode;return(0,s.createVNode)(t,{ref:o,class:["v-infinite-scroll","v-infinite-scroll--".concat(e.direction),{"v-infinite-scroll--start":n,"v-infinite-scroll--end":l}],style:T.value},{default:function(){var e;return[(0,s.createVNode)("div",{class:"v-infinite-scroll__side"},[C("start",a.value)]),n&&c&&(0,s.createVNode)(h,{key:"start",side:"start",onIntersect:S,rootMargin:d.value},null),null===(e=r.default)||void 0===e?void 0:e.call(r),l&&c&&(0,s.createVNode)(h,{key:"end",side:"end",onIntersect:S,rootMargin:d.value},null),(0,s.createVNode)("div",{class:"v-infinite-scroll__side"},[C("end",i.value)])]}})})}})},{"@swc/helpers/_/_async_to_generator":"2ftfd","@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_ts_generator":"6UgKg",vue:"gHobw","./VInfiniteScroll.css":"6Ggxk","../VBtn/index.mjs":"kmwjW","../VProgressCircular/index.mjs":"jD8F7","../../composables/dimensions.mjs":"969Er","../../composables/intersectionObserver.mjs":"73TBg","../../composables/locale.mjs":"8eTqB","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6Ggxk":[function(){},{}],"5gSft":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VInput",function(){return o.VInput});var o=e("./VInput.mjs")},{"./VInput.mjs":"75G3q","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],knfIV:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VItemGroup",function(){return o.VItemGroup}),n.export(r,"VItem",function(){return a.VItem});var o=e("./VItemGroup.mjs"),a=e("./VItem.mjs")},{"./VItemGroup.mjs":"03WDa","./VItem.mjs":"36CXK","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"03WDa":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VItemGroupSymbol",function(){return d}),n.export(r,"makeVItemGroupProps",function(){return p}),n.export(r,"VItemGroup",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VItemGroup.css");var i=e("../../composables/component.mjs"),s=e("../../composables/group.mjs"),l=e("../../composables/tag.mjs"),c=e("../../composables/theme.mjs"),u=e("../../util/index.mjs"),d=Symbol.for("vuetify:v-item-group"),p=(0,u.propsFactory)((0,o._)({},(0,i.makeComponentProps)(),(0,s.makeGroupProps)({selectedClass:"v-item--selected"}),(0,l.makeTagProps)(),(0,c.makeThemeProps)()),"VItemGroup"),f=(0,u.genericComponent)()({name:"VItemGroup",props:p(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,c.provideTheme)(e).themeClasses,o=(0,s.useGroup)(e,d),i=o.isSelected,l=o.select,u=o.next,p=o.prev,f=o.selected;return function(){return(0,a.createVNode)(e.tag,{class:["v-item-group",n.value,e.class],style:e.style},{default:function(){var e;return[null===(e=r.default)||void 0===e?void 0:e.call(r,{isSelected:i,select:l,next:u,prev:p,selected:f.value})]}})}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VItemGroup.css":"3VLyT","../../composables/component.mjs":"c32AV","../../composables/group.mjs":"c5IR1","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3VLyT":[function(){},{}],"36CXK":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VItem",function(){return i});var o=e("./VItemGroup.mjs"),a=e("../../composables/group.mjs"),i=(0,e("../../util/index.mjs").genericComponent)()({name:"VItem",props:(0,a.makeGroupItemProps)(),emits:{"group:selected":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,a.useGroupItem)(e,o.VItemGroupSymbol),i=n.isSelected,s=n.select,l=n.toggle,c=n.selectedClass,u=n.value,d=n.disabled;return function(){var e;return null===(e=r.default)||void 0===e?void 0:e.call(r,{isSelected:i.value,selectedClass:c.value,select:s,toggle:l,value:u.value,disabled:d.value})}}})},{"./VItemGroup.mjs":"03WDa","../../composables/group.mjs":"c5IR1","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jVl33:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VKbd",function(){return o}),e("./VKbd.css");var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-kbd")},{"./VKbd.css":"jxhDW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jxhDW:[function(){},{}],mS19U:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VLayout",function(){return o.VLayout}),n.export(r,"VLayoutItem",function(){return a.VLayoutItem});var o=e("./VLayout.mjs"),a=e("./VLayoutItem.mjs")},{"./VLayout.mjs":"jbWY1","./VLayoutItem.mjs":"avGRp","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],jbWY1:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVLayoutProps",function(){return u}),n.export(r,"VLayout",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VLayout.css");var i=e("../../composables/component.mjs"),s=e("../../composables/dimensions.mjs"),l=e("../../composables/layout.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({},(0,i.makeComponentProps)(),(0,s.makeDimensionProps)(),(0,l.makeLayoutProps)()),"VLayout"),d=(0,c.genericComponent)()({name:"VLayout",props:u(),setup:function(e,t){var r=t.slots,n=(0,l.createLayout)(e),o=n.layoutClasses,i=n.layoutStyles,u=n.getLayoutItem,d=n.items,p=n.layoutRef,f=(0,s.useDimension)(e).dimensionStyles;return(0,c.useRender)(function(){var t;return(0,a.createVNode)("div",{ref:p,class:[o.value,e.class],style:[f.value,i.value,e.style]},[null===(t=r.default)||void 0===t?void 0:t.call(r)])}),{getLayoutItem:u,items:d}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VLayout.css":"axdFs","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/layout.mjs":"j1CRa","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],axdFs:[function(){},{}],avGRp:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVLayoutItemProps",function(){return c}),n.export(r,"VLayoutItem",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VLayoutItem.css");var i=e("../../composables/component.mjs"),s=e("../../composables/layout.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({position:{type:String,required:!0},size:{type:[Number,String],default:300},modelValue:Boolean},(0,i.makeComponentProps)(),(0,s.makeLayoutItemProps)()),"VLayoutItem"),u=(0,l.genericComponent)()({name:"VLayoutItem",props:c(),setup:function(e,t){var r=t.slots,n=(0,s.useLayoutItem)({id:e.name,order:(0,a.computed)(function(){return parseInt(e.order,10)}),position:(0,a.toRef)(e,"position"),elementSize:(0,a.toRef)(e,"size"),layoutSize:(0,a.toRef)(e,"size"),active:(0,a.toRef)(e,"modelValue"),absolute:(0,a.toRef)(e,"absolute")}).layoutItemStyles;return function(){var t;return(0,a.createVNode)("div",{class:["v-layout-item",e.class],style:[n.value,e.style]},[null===(t=r.default)||void 0===t?void 0:t.call(r)])}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VLayoutItem.css":"dJAwg","../../composables/component.mjs":"c32AV","../../composables/layout.mjs":"j1CRa","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dJAwg:[function(){},{}],g4jkc:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VLazy",function(){return o.VLazy});var o=e("./VLazy.mjs")},{"./VLazy.mjs":"3PWqE","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3PWqE":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVLazyProps",function(){return m}),n.export(r,"VLazy",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/dimensions.mjs"),l=e("../../composables/proxiedModel.mjs"),c=e("../../composables/tag.mjs"),u=e("../../composables/transition.mjs"),d=e("../../directives/intersect/index.mjs"),p=n.interopDefault(d),f=e("../../util/index.mjs"),m=(0,f.propsFactory)((0,o._)({modelValue:Boolean,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}}},(0,i.makeComponentProps)(),(0,s.makeDimensionProps)(),(0,c.makeTagProps)(),(0,u.makeTransitionProps)({transition:"fade-transition"})),"VLazy"),_=(0,f.genericComponent)()({name:"VLazy",directives:{intersect:p.default},props:m(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,s.useDimension)(e).dimensionStyles,o=(0,l.useProxiedModel)(e,"modelValue");function i(e){o.value||(o.value=e)}return(0,f.useRender)(function(){return(0,a.withDirectives)((0,a.createVNode)(e.tag,{class:["v-lazy",e.class],style:[n.value,e.style]},{default:function(){return[o.value&&(0,a.createVNode)(u.MaybeTransition,{transition:e.transition,appear:!0},{default:function(){var e;return[null===(e=r.default)||void 0===e?void 0:e.call(r)]}})]}}),[[(0,a.resolveDirective)("intersect"),{handler:i,options:e.options},null]])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/proxiedModel.mjs":"7LrVW","../../composables/tag.mjs":"ceZPq","../../composables/transition.mjs":"4059v","../../directives/intersect/index.mjs":"2y8lH","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"88NrA":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VLocaleProvider",function(){return o.VLocaleProvider});var o=e("./VLocaleProvider.mjs")},{"./VLocaleProvider.mjs":"407PI","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"407PI":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVLocaleProviderProps",function(){return c}),n.export(r,"VLocaleProvider",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VLocaleProvider.css");var i=e("../../composables/component.mjs"),s=e("../../composables/locale.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({locale:String,fallbackLocale:String,messages:Object,rtl:{type:Boolean,default:void 0}},(0,i.makeComponentProps)()),"VLocaleProvider"),u=(0,l.genericComponent)()({name:"VLocaleProvider",props:c(),setup:function(e,t){var r=t.slots,n=(0,s.provideLocale)(e).rtlClasses;return(0,l.useRender)(function(){var t;return(0,a.createVNode)("div",{class:["v-locale-provider",n.value,e.class],style:e.style},[null===(t=r.default)||void 0===t?void 0:t.call(r)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VLocaleProvider.css":"4Krls","../../composables/component.mjs":"c32AV","../../composables/locale.mjs":"8eTqB","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4Krls":[function(){},{}],"15lpI":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VMain",function(){return o.VMain});var o=e("./VMain.mjs")},{"./VMain.mjs":"4V20t","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"4V20t":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVMainProps",function(){return p}),n.export(r,"VMain",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VMain.css");var i=e("../../composables/component.mjs"),s=e("../../composables/dimensions.mjs"),l=e("../../composables/layout.mjs"),c=e("../../composables/ssrBoot.mjs"),u=e("../../composables/tag.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)((0,o._)({scrollable:Boolean},(0,i.makeComponentProps)(),(0,s.makeDimensionProps)(),(0,u.makeTagProps)({tag:"main"})),"VMain"),f=(0,d.genericComponent)()({name:"VMain",props:p(),setup:function(e,t){var r=t.slots,n=(0,s.useDimension)(e).dimensionStyles,o=(0,l.useLayout)().mainStyles,i=(0,c.useSsrBoot)().ssrBootStyles;return(0,d.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[o.value,i.value,n.value,e.style]},{default:function(){var t,n;return[e.scrollable?(0,a.createVNode)("div",{class:"v-main__scroller"},[null===(t=r.default)||void 0===t?void 0:t.call(r)]):null===(n=r.default)||void 0===n?void 0:n.call(r)]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VMain.css":"gEEqq","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/layout.mjs":"j1CRa","../../composables/ssrBoot.mjs":"ergwm","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gEEqq:[function(){},{}],kr0Lm:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VMessages",function(){return o.VMessages});var o=e("./VMessages.mjs")},{"./VMessages.mjs":"5AJ9k","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6vaEF":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VNavigationDrawer",function(){return o.VNavigationDrawer});var o=e("./VNavigationDrawer.mjs")},{"./VNavigationDrawer.mjs":"kAWQc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kAWQc:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVNavigationDrawerProps",function(){return N}),n.export(r,"VNavigationDrawer",function(){return k});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VNavigationDrawer.css");var i=e("../VDefaultsProvider/index.mjs"),s=e("../VImg/index.mjs"),l=e("./sticky.mjs"),c=e("./touch.mjs"),u=e("../../composables/index.mjs"),d=e("../../composables/border.mjs"),p=e("../../composables/color.mjs"),f=e("../../composables/component.mjs"),m=e("../../composables/defaults.mjs"),_=e("../../composables/delay.mjs"),h=e("../../composables/display.mjs"),g=e("../../composables/elevation.mjs"),b=e("../../composables/layout.mjs"),y=e("../../composables/proxiedModel.mjs"),S=e("../../composables/rounded.mjs"),E=e("../../composables/router.mjs"),x=e("../../composables/scopeId.mjs"),C=e("../../composables/ssrBoot.mjs"),T=e("../../composables/tag.mjs"),w=e("../../composables/theme.mjs"),I=e("../../composables/toggleScope.mjs"),R=e("../../util/index.mjs"),A=["start","end","left","right","top","bottom"],N=(0,R.propsFactory)((0,o._)({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:function(e){return A.includes(e)}},sticky:Boolean},(0,d.makeBorderProps)(),(0,f.makeComponentProps)(),(0,_.makeDelayProps)(),(0,h.makeDisplayProps)({mobile:null}),(0,g.makeElevationProps)(),(0,b.makeLayoutItemProps)(),(0,S.makeRoundedProps)(),(0,T.makeTagProps)({tag:"nav"}),(0,w.makeThemeProps)()),"VNavigationDrawer"),k=(0,R.genericComponent)()({name:"VNavigationDrawer",props:N(),emits:{"update:modelValue":function(e){return!0},"update:rail":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.emit,f=t.slots,T=(0,u.useRtl)().isRtl,A=(0,w.provideTheme)(e).themeClasses,N=(0,d.useBorder)(e).borderClasses,k=(0,p.useBackgroundColor)((0,a.toRef)(e,"color")),O=k.backgroundColorClasses,D=k.backgroundColorStyles,j=(0,g.useElevation)(e).elevationClasses,P=(0,h.useDisplay)(e),M=P.displayClasses,L=P.mobile,V=(0,S.useRounded)(e).roundedClasses,F=(0,E.useRouter)(),B=(0,y.useProxiedModel)(e,"modelValue",null,function(e){return!!e}),U=(0,C.useSsrBoot)().ssrBootStyles,G=(0,x.useScopeId)().scopeId,q=(0,a.ref)(),Y=(0,a.shallowRef)(!1),H=(0,_.useDelay)(e,function(e){Y.value=e}),z=H.runOpenDelay,W=H.runCloseDelay,K=(0,a.computed)(function(){return e.rail&&e.expandOnHover&&Y.value?Number(e.width):Number(e.rail?e.railWidth:e.width)}),Q=(0,a.computed)(function(){return(0,R.toPhysical)(e.location,T.value)}),$=(0,a.computed)(function(){return e.persistent}),X=(0,a.computed)(function(){return!e.permanent&&(L.value||e.temporary)}),Z=(0,a.computed)(function(){return e.sticky&&!X.value&&"bottom"!==Q.value});(0,I.useToggleScope)(function(){return e.expandOnHover&&null!=e.rail},function(){(0,a.watch)(Y,function(e){return n("update:rail",!e)})}),(0,I.useToggleScope)(function(){return!e.disableResizeWatcher},function(){(0,a.watch)(X,function(t){return!e.permanent&&(0,a.nextTick)(function(){return B.value=!t})})}),(0,I.useToggleScope)(function(){return!e.disableRouteWatcher&&!!F},function(){(0,a.watch)(F.currentRoute,function(){return X.value&&(B.value=!1)})}),(0,a.watch)(function(){return e.permanent},function(e){e&&(B.value=!0)}),null!=e.modelValue||X.value||(B.value=e.permanent||!L.value);var J=(0,c.useTouch)({el:q,isActive:B,isTemporary:X,width:K,touchless:(0,a.toRef)(e,"touchless"),position:Q}),ee=J.isDragging,et=J.dragProgress,er=(0,a.computed)(function(){var t=X.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):K.value;return ee.value?t*et.value:t}),en=(0,a.computed)(function(){return["top","bottom"].includes(e.location)?0:K.value}),eo=(0,b.useLayoutItem)({id:e.name,order:(0,a.computed)(function(){return parseInt(e.order,10)}),position:Q,layoutSize:er,elementSize:en,active:(0,a.computed)(function(){return B.value||ee.value}),disableTransitions:(0,a.computed)(function(){return ee.value}),absolute:(0,a.computed)(function(){return e.absolute||Z.value&&"string"!=typeof el.value})}),ea=eo.layoutItemStyles,ei=eo.layoutItemScrimStyles,es=(0,l.useSticky)({rootEl:q,isSticky:Z,layoutItemStyles:ea}),el=es.isStuck,ec=es.stickyStyles,eu=(0,p.useBackgroundColor)((0,a.computed)(function(){return"string"==typeof e.scrim?e.scrim:null})),ed=(0,a.computed)(function(){return(0,o._)({},ee.value?{opacity:.2*et.value,transition:"none"}:void 0,ei.value)});return(0,m.provideDefaults)({VList:{bgColor:"transparent"}}),(0,R.useRender)(function(){var t=f.image||e.image;return(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(e.tag,(0,a.mergeProps)({ref:q,onMouseenter:z,onMouseleave:W,class:["v-navigation-drawer","v-navigation-drawer--".concat(Q.value),{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":Y.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":X.value,"v-navigation-drawer--persistent":$.value,"v-navigation-drawer--active":B.value,"v-navigation-drawer--sticky":Z.value},A.value,O.value,N.value,M.value,j.value,V.value,e.class],style:[D.value,ea.value,U.value,ec.value,e.style,["top","bottom"].includes(Q.value)?{height:"auto"}:{}]},G,r),{default:function(){var r,n,o;return[t&&(0,a.createVNode)("div",{key:"image",class:"v-navigation-drawer__img"},[f.image?(0,a.createVNode)(i.VDefaultsProvider,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},f.image):(0,a.createVNode)(s.VImg,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),f.prepend&&(0,a.createVNode)("div",{class:"v-navigation-drawer__prepend"},[null===(r=f.prepend)||void 0===r?void 0:r.call(f)]),(0,a.createVNode)("div",{class:"v-navigation-drawer__content"},[null===(n=f.default)||void 0===n?void 0:n.call(f)]),f.append&&(0,a.createVNode)("div",{class:"v-navigation-drawer__append"},[null===(o=f.append)||void 0===o?void 0:o.call(f)])]}}),(0,a.createVNode)(a.Transition,{name:"fade-transition"},{default:function(){return[X.value&&(ee.value||B.value)&&!!e.scrim&&(0,a.createVNode)("div",(0,a.mergeProps)({class:["v-navigation-drawer__scrim",eu.backgroundColorClasses.value],style:[ed.value,eu.backgroundColorStyles.value],onClick:function(){$.value||(B.value=!1)}},G),null)]}})])}),{isStuck:el}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VNavigationDrawer.css":"kDXcj","../VDefaultsProvider/index.mjs":"9aMue","../VImg/index.mjs":"cbjM3","./sticky.mjs":"ideHZ","./touch.mjs":"6TW2p","../../composables/index.mjs":"3SSfs","../../composables/border.mjs":"8SyXK","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/delay.mjs":"bqvBl","../../composables/display.mjs":"5LhPp","../../composables/elevation.mjs":"jNJPe","../../composables/layout.mjs":"j1CRa","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/router.mjs":"aK38B","../../composables/scopeId.mjs":"aktTM","../../composables/ssrBoot.mjs":"ergwm","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../composables/toggleScope.mjs":"1GDdb","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kDXcj:[function(){},{}],ideHZ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useSticky",function(){return s});var o=e("@swc/helpers/_/_define_property"),a=e("vue"),i=e("../../util/index.mjs");function s(e){var t=e.rootEl,r=e.isSticky,n=e.layoutItemStyles,s=(0,a.shallowRef)(!1),l=(0,a.shallowRef)(0),c=(0,a.computed)(function(){var e="boolean"==typeof s.value?"top":s.value;return[r.value?{top:"auto",bottom:"auto",height:void 0}:void 0,s.value?(0,o._)({},e,(0,i.convertToUnit)(l.value)):{top:n.value.top}]});(0,a.onMounted)(function(){(0,a.watch)(r,function(e){e?window.addEventListener("scroll",d,{passive:!0}):window.removeEventListener("scroll",d)},{immediate:!0})}),(0,a.onBeforeUnmount)(function(){window.removeEventListener("scroll",d)});var u=0;function d(){var e,r=u>window.scrollY?"up":"down",o=t.value.getBoundingClientRect(),a=parseFloat(null!==(e=n.value.top)&&void 0!==e?e:0),i=window.scrollY-Math.max(0,l.value-a),c=o.height+Math.max(l.value,a)-window.scrollY-window.innerHeight,d=parseFloat(getComputedStyle(t.value).getPropertyValue("--v-body-scroll-y"))||0;o.height1)||void 0===arguments[1]||arguments[1],r="left"===d.value?(e-S.value)/c.value:"right"===d.value?(document.documentElement.clientWidth-e-S.value)/c.value:"top"===d.value?(e-S.value)/c.value:"bottom"===d.value?(document.documentElement.clientHeight-e-S.value)/c.value:l();return t?Math.max(0,Math.min(1,r)):r}function C(e){if(!u.value){var r=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY,a="left"===d.value?r<25:"right"===d.value?r>document.documentElement.clientWidth-25:"top"===d.value?o<25:"bottom"===d.value?o>document.documentElement.clientHeight-25:l(),i=n.value&&("left"===d.value?rdocument.documentElement.clientWidth-c.value:"top"===d.value?odocument.documentElement.clientHeight-c.value:l());(a||i||n.value&&s.value)&&(t=[r,o],S.value=E(p.value?r:o,n.value),y.value=x(p.value?r:o),g=S.value>-20&&S.value<80,_(e),m(e))}}function T(e){var r=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY;if(g){if(!e.cancelable){g=!1;return}var o=Math.abs(r-t[0]),a=Math.abs(n-t[1]);(p.value?o>a&&o>3:a>o&&a>3)?(b.value=!0,g=!1):(p.value?a:o)>3&&(g=!1)}if(b.value){e.preventDefault(),m(e);var i=x(p.value?r:n,!1);y.value=Math.max(0,Math.min(1,i)),i>1?S.value=E(p.value?r:n,!0):i<0&&(S.value=E(p.value?r:n,!1))}}function w(e){if(g=!1,b.value){m(e),b.value=!1;var t=h(e.changedTouches[0].identifier),r=Math.abs(t.x),o=Math.abs(t.y);(p.value?r>o&&r>400:o>r&&o>3)?n.value=t.direction===(({left:"right",right:"left",top:"down",bottom:"up"})[d.value]||l()):n.value=y.value>.5}}var I=(0,i.computed)(function(){return b.value?{transform:"left"===d.value?"translateX(calc(-100% + ".concat(y.value*c.value,"px))"):"right"===d.value?"translateX(calc(100% - ".concat(y.value*c.value,"px))"):"top"===d.value?"translateY(calc(-100% + ".concat(y.value*c.value,"px))"):"bottom"===d.value?"translateY(calc(100% - ".concat(y.value*c.value,"px))"):l(),transition:"none"}:void 0});return(0,o.useToggleScope)(b,function(){var e,t,n,o,a=null!==(n=null===(e=r.value)||void 0===e?void 0:e.style.transform)&&void 0!==n?n:null,s=null!==(o=null===(t=r.value)||void 0===t?void 0:t.style.transition)&&void 0!==o?o:null;(0,i.watchEffect)(function(){var e,t,n,o;null===(t=r.value)||void 0===t||t.style.setProperty("transform",(null===(e=I.value)||void 0===e?void 0:e.transform)||"none"),null===(o=r.value)||void 0===o||o.style.setProperty("transition",(null===(n=I.value)||void 0===n?void 0:n.transition)||null)}),(0,i.onScopeDispose)(function(){var e,t;null===(e=r.value)||void 0===e||e.style.setProperty("transform",a),null===(t=r.value)||void 0===t||t.style.setProperty("transition",s)})}),{isDragging:b,dragProgress:y,dragStyles:I}}function l(){throw Error()}},{"../../composables/toggleScope.mjs":"1GDdb","../../composables/touch.mjs":"higZA",vue:"gHobw","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],higZA:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"calculateImpulseVelocity",function(){return i}),n.export(r,"useVelocity",function(){return s});var o=e("../util/index.mjs");function a(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function i(e){if(e.length<2)return 0;if(2===e.length)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);for(var t=0,r=e.length-1;r>0;r--)if(e[r].t!==e[r-1].t){var n=a(t),o=(e[r].d-e[r-1].d)/(e[r].t-e[r-1].t);t+=(o-n)*Math.abs(o),r===e.length-1&&(t*=.5)}return 1e3*a(t)}function s(){var e={};return{addMovement:function(t){Array.from(t.changedTouches).forEach(function(r){var n;(null!==(n=e[r.identifier])&&void 0!==n?n:e[r.identifier]=new o.CircularBuffer(20)).push([t.timeStamp,r])})},endTouch:function(t){Array.from(t.changedTouches).forEach(function(t){delete e[t.identifier]})},getVelocity:function(t){var r=null===(u=e[t])||void 0===u?void 0:u.values().reverse();if(!r)throw Error("No samples for touch id ".concat(t));var n=r[0],o=[],a=[],s=!0,l=!1,c=void 0;try{for(var u,d,p=r[Symbol.iterator]();!(s=(d=p.next()).done);s=!0){var f=d.value;if(n[0]-f[0]>100)break;o.push({t:f[0],d:f[1].clientX}),a.push({t:f[0],d:f[1].clientY})}}catch(e){l=!0,c=e}finally{try{s||null==p.return||p.return()}finally{if(l)throw c}}return{x:i(o),y:i(a),get direction(){var m=this.x,_=this.y,h=[Math.abs(m),Math.abs(_)],g=h[0],b=h[1];return g>b&&m>=0?"right":g>b&&m<=0?"left":b>g&&_>=0?"down":b>g&&_<=0?"up":function(){throw Error()}()}}}}}},{"../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hnPKz:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VNoSsr",function(){return o.VNoSsr});var o=e("./VNoSsr.mjs")},{"./VNoSsr.mjs":"azhlj","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],azhlj:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VNoSsr",function(){return a});var o=e("../../composables/hydration.mjs"),a=(0,e("../../util/index.mjs").defineComponent)({name:"VNoSsr",setup:function(e,t){var r=t.slots,n=(0,o.useHydration)();return function(){var e;return n.value&&(null===(e=r.default)||void 0===e?void 0:e.call(r))}}})},{"../../composables/hydration.mjs":"7WUFr","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],hGrIq:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VOtpInput",function(){return o.VOtpInput});var o=e("./VOtpInput.mjs")},{"./VOtpInput.mjs":"fSWVL","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fSWVL:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVOtpInputProps",function(){return g}),n.export(r,"VOtpInput",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("vue");e("./VOtpInput.css");var l=e("../VField/VField.mjs"),c=e("../VOverlay/VOverlay.mjs"),u=e("../VProgressCircular/VProgressCircular.mjs"),d=e("../../composables/defaults.mjs"),p=e("../../composables/dimensions.mjs"),f=e("../../composables/focus.mjs"),m=e("../../composables/locale.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,o._)({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"}},(0,p.makeDimensionProps)(),(0,f.makeFocusProps)(),(0,h.only)((0,l.makeVFieldProps)({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])),"VOtpInput"),b=(0,h.genericComponent)()({name:"VOtpInput",props:g(),emits:{finish:function(e){return!0},"update:focused":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.emit,g=t.slots,b=(0,p.useDimension)(e).dimensionStyles,y=(0,f.useFocus)(e),S=y.isFocused,E=y.focus,x=y.blur,C=(0,_.useProxiedModel)(e,"modelValue","",function(e){return null==e?[]:String(e).split("")},function(e){return e.join("")}),T=(0,m.useLocale)().t,w=(0,s.computed)(function(){return Number(e.length)}),I=(0,s.computed)(function(){return Array(w.value).fill(0)}),R=(0,s.ref)(-1),A=(0,s.ref)(),N=(0,s.ref)([]),k=(0,s.computed)(function(){return N.value[R.value]});function O(){if(P(k.value.value)){k.value.value="";return}var e=C.value.slice(),t=k.value.value;e[R.value]=t;var r=null;R.value>C.value.length?r=C.value.length+1:R.value+1!==w.value&&(r="next"),C.value=e,r&&(0,h.focusChild)(A.value,r)}function D(e){var t=C.value.slice(),r=R.value,n=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(e.key)&&(e.preventDefault(),"ArrowLeft"===e.key?n="prev":"ArrowRight"===e.key?n="next":["Backspace","Delete"].includes(e.key)&&(t[R.value]="",C.value=t,R.value>0&&"Backspace"===e.key?n="prev":requestAnimationFrame(function(){var e;null===(e=N.value[r])||void 0===e||e.select()})),requestAnimationFrame(function(){null!=n&&(0,h.focusChild)(A.value,n)}))}function j(){x(),R.value=-1}function P(t){return"number"===e.type&&/[^0-9]/g.test(t)}return(0,d.provideDefaults)({VField:{color:(0,s.computed)(function(){return e.color}),bgColor:(0,s.computed)(function(){return e.color}),baseColor:(0,s.computed)(function(){return e.baseColor}),disabled:(0,s.computed)(function(){return e.disabled}),error:(0,s.computed)(function(){return e.error}),variant:(0,s.computed)(function(){return e.variant})}},{scoped:!0}),(0,s.watch)(C,function(e){e.length===w.value&&n("finish",e.join(""))},{deep:!0}),(0,s.watch)(R,function(e){e<0||(0,s.nextTick)(function(){var t;null===(t=N.value[e])||void 0===t||t.select()})}),(0,h.useRender)(function(){var t,n=(0,i._)((0,h.filterInputAttrs)(r),2),d=n[0],p=n[1];return(0,s.createVNode)("div",(0,s.mergeProps)({class:["v-otp-input",{"v-otp-input--divided":!!e.divider},e.class],style:[e.style]},d),[(0,s.createVNode)("div",{ref:A,class:"v-otp-input__content",style:[b.value]},[I.value.map(function(t,r){return(0,s.createVNode)(s.Fragment,null,[e.divider&&0!==r&&(0,s.createVNode)("span",{class:"v-otp-input__divider"},[e.divider]),(0,s.createVNode)(l.VField,{focused:S.value&&e.focusAll||R.value===r,key:r},(0,a._)((0,o._)({},g),{loader:void 0,default:function(){return(0,s.createVNode)("input",{ref:function(e){return N.value[r]=e},"aria-label":T(e.label,r+1),autofocus:0===r&&e.autofocus,autocomplete:"one-time-code",class:["v-otp-input__field"],disabled:e.disabled,inputmode:"number"===e.type?"numeric":"text",min:"number"===e.type?0:void 0,maxlength:"1",placeholder:e.placeholder,type:"number"===e.type?"text":e.type,value:C.value[r],onInput:O,onFocus:function(e){E(),R.value=r},onBlur:j,onKeydown:D,onPaste:function(e){var t,n,o,a;return e.preventDefault(),e.stopPropagation(),void(P(a=null!==(o=null==e?void 0:null===(t=e.clipboardData)||void 0===t?void 0:t.getData("Text").slice(0,w.value))&&void 0!==o?o:"")||(C.value=a.split(""),null===(n=N.value)||void 0===n||n[r].blur()))}},null)}}))])}),(0,s.createVNode)("input",(0,s.mergeProps)({class:"v-otp-input-input",type:"hidden"},p,{value:C.value.join("")}),null),(0,s.createVNode)(c.VOverlay,{contained:!0,"content-class":"v-otp-input__loader","model-value":!!e.loading,persistent:!0},{default:function(){var t,r;return[null!==(r=null===(t=g.loader)||void 0===t?void 0:t.call(g))&&void 0!==r?r:(0,s.createVNode)(u.VProgressCircular,{color:"boolean"==typeof e.loading?void 0:e.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),null===(t=g.default)||void 0===t?void 0:t.call(g)])])}),{blur:function(){var e;null===(e=N.value)||void 0===e||e.some(function(e){return e.blur()})},focus:function(){var e;null===(e=N.value)||void 0===e||e[0].focus()},reset:function(){C.value=[]},isFocused:S}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VOtpInput.css":"juqMR","../VField/VField.mjs":"hCPVS","../VOverlay/VOverlay.mjs":"3r0ub","../VProgressCircular/VProgressCircular.mjs":"hvsld","../../composables/defaults.mjs":"cYwla","../../composables/dimensions.mjs":"969Er","../../composables/focus.mjs":"bmd72","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],juqMR:[function(){},{}],"8sTTD":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VParallax",function(){return o.VParallax});var o=e("./VParallax.mjs")},{"./VParallax.mjs":"24C4Y","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"24C4Y":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVParallaxProps",function(){return p}),n.export(r,"VParallax",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VParallax.css");var i=e("../VImg/index.mjs"),s=e("../../composables/index.mjs"),l=e("../../composables/component.mjs"),c=e("../../composables/intersectionObserver.mjs"),u=e("../../composables/resizeObserver.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)((0,o._)({scale:{type:[Number,String],default:.5}},(0,l.makeComponentProps)()),"VParallax"),f=(0,d.genericComponent)()({name:"VParallax",props:p(),setup:function(e,t){var r,n=t.slots,o=(0,c.useIntersectionObserver)(),l=o.intersectionRef,p=o.isIntersecting,f=(0,u.useResizeObserver)(),m=f.resizeRef,_=f.contentRect,h=(0,s.useDisplay)().height,g=(0,a.ref)();(0,a.watchEffect)(function(){var e;l.value=m.value=null===(e=g.value)||void 0===e?void 0:e.$el}),(0,a.watch)(p,function(e){e?((r=(r=(0,d.getScrollParent)(l.value))===document.scrollingElement?document:r).addEventListener("scroll",S,{passive:!0}),S()):r.removeEventListener("scroll",S)}),(0,a.onBeforeUnmount)(function(){null==r||r.removeEventListener("scroll",S)}),(0,a.watch)(h,S),(0,a.watch)(function(){var e;return null===(e=_.value)||void 0===e?void 0:e.height},S);var b=(0,a.computed)(function(){return 1-(0,d.clamp)(+e.scale)}),y=-1;function S(){p.value&&(cancelAnimationFrame(y),y=requestAnimationFrame(function(){var e,t=(null===(e=g.value)||void 0===e?void 0:e.$el).querySelector(".v-img__img");if(t){var n,o=r instanceof Document?document.documentElement.clientHeight:r.clientHeight,a=r instanceof Document?window.scrollY:r.scrollTop,i=l.value.getBoundingClientRect().top+a,s=_.value.height,c=Math.floor(Math.abs(n=(a-(i+(s-o)/2))*b.value))*Math.sign(n),u=Math.max(1,(b.value*(o-s)+s)/s);t.style.setProperty("transform","translateY(".concat(c,"px) scale(").concat(u,")"))}}))}return(0,d.useRender)(function(){return(0,a.createVNode)(i.VImg,{class:["v-parallax",{"v-parallax--active":p.value},e.class],style:e.style,ref:g,cover:!0,onLoadstart:S,onLoad:S},n)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VParallax.css":"6fvOT","../VImg/index.mjs":"cbjM3","../../composables/index.mjs":"3SSfs","../../composables/component.mjs":"c32AV","../../composables/intersectionObserver.mjs":"73TBg","../../composables/resizeObserver.mjs":"kyBb2","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6fvOT":[function(){},{}],"5M97r":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VRadio",function(){return o.VRadio});var o=e("./VRadio.mjs")},{"./VRadio.mjs":"5wS5E","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"5wS5E":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVRadioProps",function(){return l}),n.export(r,"VRadio",function(){return c});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VSelectionControl/VSelectionControl.mjs"),s=e("../../util/index.mjs"),l=(0,s.propsFactory)((0,o._)({},(0,i.makeVSelectionControlProps)({falseIcon:"$radioOff",trueIcon:"$radioOn"})),"VRadio"),c=(0,s.genericComponent)()({name:"VRadio",props:l(),setup:function(e,t){var r=t.slots;return(0,s.useRender)(function(){var t=(0,i.VSelectionControl).filterProps(e);return(0,a.createVNode)(i.VSelectionControl,(0,a.mergeProps)(t,{class:["v-radio",e.class],style:e.style,type:"radio"}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VSelectionControl/VSelectionControl.mjs":"01Yl0","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bfjER:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VRadioGroup",function(){return o.VRadioGroup});var o=e("./VRadioGroup.mjs")},{"./VRadioGroup.mjs":"1CcJg","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1CcJg":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVRadioGroupProps",function(){return _}),n.export(r,"VRadioGroup",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("vue");e("./VRadioGroup.css");var l=e("../VInput/VInput.mjs"),c=e("../VLabel/index.mjs"),u=e("../VSelectionControl/index.mjs"),d=e("../VSelectionControlGroup/VSelectionControlGroup.mjs"),p=e("../../composables/icons.mjs"),f=e("../../composables/proxiedModel.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,a._)((0,o._)({height:{type:[Number,String],default:"auto"}},(0,l.makeVInputProps)(),(0,m.omit)((0,d.makeSelectionControlGroupProps)(),["multiple"])),{trueIcon:{type:p.IconValue,default:"$radioOn"},falseIcon:{type:p.IconValue,default:"$radioOff"},type:{type:String,default:"radio"}}),"VRadioGroup"),h=(0,m.genericComponent)()({name:"VRadioGroup",inheritAttrs:!1,props:_(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,p=(0,m.getUid)(),_=(0,s.computed)(function(){return e.id||"radio-group-".concat(p)}),h=(0,f.useProxiedModel)(e,"modelValue");return(0,m.useRender)(function(){var t=(0,i._)((0,m.filterInputAttrs)(r),2),p=t[0],f=t[1],g=(0,l.VInput).filterProps(e),b=(0,u.VSelectionControl).filterProps(e),y=n.label?n.label({label:e.label,props:{for:_.value}}):e.label;return(0,s.createVNode)(l.VInput,(0,s.mergeProps)({class:["v-radio-group",e.class],style:e.style},p,g,{modelValue:h.value,"onUpdate:modelValue":function(e){return h.value=e},id:_.value}),(0,a._)((0,o._)({},n),{default:function(t){var r=t.id,o=t.messagesId,a=t.isDisabled,i=t.isReadonly;return(0,s.createVNode)(s.Fragment,null,[y&&(0,s.createVNode)(c.VLabel,{id:r.value},{default:function(){return[y]}}),(0,s.createVNode)(d.VSelectionControlGroup,(0,s.mergeProps)(b,{id:r.value,"aria-describedby":o.value,defaultsTarget:"VRadio",trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:a.value,readonly:i.value,"aria-labelledby":y?r.value:void 0,multiple:!1},f,{modelValue:h.value,"onUpdate:modelValue":function(e){return h.value=e}}),n)])}}))}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VRadioGroup.css":"cPS3L","../VInput/VInput.mjs":"75G3q","../VLabel/index.mjs":"klORW","../VSelectionControl/index.mjs":"fU980","../VSelectionControlGroup/VSelectionControlGroup.mjs":"dFRBN","../../composables/icons.mjs":"71CER","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cPS3L:[function(){},{}],fU980:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSelectionControl",function(){return o.VSelectionControl});var o=e("./VSelectionControl.mjs")},{"./VSelectionControl.mjs":"01Yl0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9Cont":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VRangeSlider",function(){return o.VRangeSlider});var o=e("./VRangeSlider.mjs")},{"./VRangeSlider.mjs":"9Yekl","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9Yekl":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVRangeSliderProps",function(){return g}),n.export(r,"VRangeSlider",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("vue");e("../VSlider/VSlider.css");var l=e("../VInput/VInput.mjs"),c=e("../VLabel/index.mjs"),u=e("../VSlider/slider.mjs"),d=e("../VSlider/VSliderThumb.mjs"),p=e("../VSlider/VSliderTrack.mjs"),f=e("../../composables/focus.mjs"),m=e("../../composables/locale.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../util/index.mjs"),g=(0,h.propsFactory)((0,a._)((0,o._)({},(0,f.makeFocusProps)(),(0,l.makeVInputProps)(),(0,u.makeSliderProps)()),{strict:Boolean,modelValue:{type:Array,default:function(){return[0,0]}}}),"VRangeSlider"),b=(0,h.genericComponent)()({name:"VRangeSlider",props:g(),emits:{"update:focused":function(e){return!0},"update:modelValue":function(e){return!0},end:function(e){return!0},start:function(e){return!0}},setup:function(e,t){var r=t.slots,n=t.emit,g=(0,s.ref)(),b=(0,s.ref)(),y=(0,s.ref)(),S=(0,m.useRtl)().rtlClasses,E=(0,u.useSteps)(e),x=(0,_.useProxiedModel)(e,"modelValue",void 0,function(e){return(null==e?void 0:e.length)?e.map(function(e){return E.roundValue(e)}):[0,0]}),C=(0,u.useSlider)({props:e,steps:E,onSliderStart:function(){n("start",x.value)},onSliderEnd:function(t){var r,o=t.value,a=T.value===(null===(r=g.value)||void 0===r?void 0:r.$el)?[o,x.value[1]]:[x.value[0],o];!e.strict&&a[0]c?null===(n=b.value)||void 0===n?void 0:n.$el:null===(o=g.value)||void 0===o?void 0:o.$el,null===(a=T.value)||void 0===a||a.focus()),T.value===(null===(r=g.value)||void 0===r?void 0:r.$el)?x.value=[Math.min(s,u),u]:x.value=[c,Math.max(c,s)]},getActiveThumb:function(t){if(g.value&&b.value){var r=(0,u.getOffset)(t,g.value.$el,e.direction),n=(0,u.getOffset)(t,b.value.$el,e.direction),o=Math.abs(r),a=Math.abs(n);return o-1,o=d.value>=t,a=b.value>=t,i=(n?a:o)?e.fullIcon:e.emptyIcon,s=null!==(r=e.activeColor)&&void 0!==r?r:e.color,l=o||a?s:e.color;return{isFilled:o,isHovered:a,icon:i,color:l}})}),S=(0,s.computed)(function(){return[0].concat((0,i._)(_.value)).map(function(t){return{onMouseenter:e.hover?function(){b.value=t}:void 0,onMouseleave:e.hover?function(){b.value=-1}:void 0,onClick:function(){e.disabled||e.readonly||(u.value=d.value===t&&e.clearable?0:t)}}})}),E=(0,s.computed)(function(){var t;return null!==(t=e.name)&&void 0!==t?t:"v-rating-".concat((0,g.getUid)())});function x(t){var i,c,u=t.value,p=t.index,f=t.showStar,m=S.value[p+1],_=m.onMouseenter,h=m.onMouseleave,g=m.onClick,b="".concat(E.value,"-").concat(String(u).replace(".","-")),x={color:null===(i=y.value[p])||void 0===i?void 0:i.color,density:e.density,disabled:e.disabled,icon:null===(c=y.value[p])||void 0===c?void 0:c.icon,ripple:e.ripple,size:e.size,variant:"plain"};return(0,s.createVNode)(s.Fragment,null,[(0,s.createVNode)("label",{for:b,class:{"v-rating__item--half":e.halfIncrements&&u%1>0,"v-rating__item--full":e.halfIncrements&&u%1==0},onMouseenter:_,onMouseleave:h,onClick:g},[(0,s.createVNode)("span",{class:"v-rating__hidden"},[n(e.itemAriaLabel,u,e.length)]),void 0===f||f?r.item?r.item((0,a._)((0,o._)({},y.value[p]),{props:x,value:u,index:p,rating:d.value})):(0,s.createVNode)(l.VBtn,(0,s.mergeProps)({"aria-label":n(e.itemAriaLabel,u,e.length)},x),null):void 0]),(0,s.createVNode)("input",{class:"v-rating__hidden",name:E.value,id:b,type:"radio",value:u,checked:d.value===u,tabindex:-1,readonly:e.readonly,disabled:e.disabled},null)])}function C(e){return r["item-label"]?r["item-label"](e):e.label?(0,s.createVNode)("span",null,[e.label]):(0,s.createVNode)("span",null,[(0,s.createTextVNode)(" ")])}return(0,g.useRender)(function(){var t,n=!!(null===(t=e.itemLabels)||void 0===t?void 0:t.length)||r["item-label"];return(0,s.createVNode)(e.tag,{class:["v-rating",{"v-rating--hover":e.hover,"v-rating--readonly":e.readonly},c.value,e.class],style:e.style},{default:function(){return[(0,s.createVNode)(x,{value:0,index:-1,showStar:!1},null),m.value.map(function(t,r){var o,a;return(0,s.createVNode)("div",{class:"v-rating__wrapper"},[n&&"top"===e.itemLabelPosition?C({value:t,index:r,label:null===(o=e.itemLabels)||void 0===o?void 0:o[r]}):void 0,(0,s.createVNode)("div",{class:"v-rating__item"},[e.halfIncrements?(0,s.createVNode)(s.Fragment,null,[(0,s.createVNode)(x,{value:t-.5,index:2*r},null),(0,s.createVNode)(x,{value:t,index:2*r+1},null)]):(0,s.createVNode)(x,{value:t,index:r},null)]),n&&"bottom"===e.itemLabelPosition?C({value:t,index:r,label:null===(a=e.itemLabels)||void 0===a?void 0:a[r]}):void 0])})]}})}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_to_consumable_array":"glvYM",vue:"gHobw","./VRating.css":"7kkbQ","../VBtn/index.mjs":"kmwjW","../../composables/component.mjs":"c32AV","../../composables/density.mjs":"3HkdI","../../composables/icons.mjs":"71CER","../../composables/locale.mjs":"8eTqB","../../composables/proxiedModel.mjs":"7LrVW","../../composables/size.mjs":"2mSFo","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7kkbQ":[function(){},{}],jnnnL:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VResponsive",function(){return o.VResponsive});var o=e("./VResponsive.mjs")},{"./VResponsive.mjs":"cQXBU","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bhFpY:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSelectionControlGroup",function(){return o.VSelectionControlGroup});var o=e("./VSelectionControlGroup.mjs")},{"./VSelectionControlGroup.mjs":"dFRBN","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],e3Ze6:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSheet",function(){return o.VSheet});var o=e("./VSheet.mjs")},{"./VSheet.mjs":"jUuzJ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cOBPn:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSkeletonLoader",function(){return o.VSkeletonLoader});var o=e("./VSkeletonLoader.mjs")},{"./VSkeletonLoader.mjs":"iJ5fB","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iJ5fB:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"rootTypes",function(){return f}),n.export(r,"makeVSkeletonLoaderProps",function(){return g}),n.export(r,"VSkeletonLoader",function(){return b});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_sliced_to_array"),i=e("vue");e("./VSkeletonLoader.css");var s=e("../../composables/color.mjs"),l=e("../../composables/dimensions.mjs"),c=e("../../composables/elevation.mjs"),u=e("../../composables/locale.mjs"),d=e("../../composables/theme.mjs"),p=e("../../util/index.mjs"),f={actions:"button@2",article:"heading, paragraph",avatar:"avatar",button:"button",card:"image, heading","card-avatar":"image, list-item-avatar",chip:"chip","date-picker":"list-item, heading, divider, date-picker-options, date-picker-days, actions","date-picker-options":"text, avatar@2","date-picker-days":"avatar@28",divider:"divider",heading:"heading",image:"image","list-item":"text","list-item-avatar":"avatar, text","list-item-two-line":"sentences","list-item-avatar-two-line":"avatar, sentences","list-item-three-line":"paragraph","list-item-avatar-three-line":"avatar, paragraph",ossein:"ossein",paragraph:"text@3",sentences:"text@2",subtitle:"text",table:"table-heading, table-thead, table-tbody, table-tfoot","table-heading":"chip, text","table-thead":"heading@6","table-tbody":"table-row-divider@6","table-row-divider":"table-row, divider","table-row":"text@6","table-tfoot":"text@2, avatar@2",text:"text"};function m(e){var t=(0,a._)(e.split("@"),2),r=t[0];return Array.from({length:t[1]}).map(function(){return _(r)})}function _(e){var t=[];if(!e)return t;var r=f[e];if(e===r);else{if(e.includes(","))return h(e);if(e.includes("@"))return m(e);r.includes(",")?t=h(r):r.includes("@")?t=m(r):r&&t.push(_(r))}return[function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(0,i.createVNode)("div",{class:["v-skeleton-loader__bone","v-skeleton-loader__".concat(e)]},[t])}(e,t)]}function h(e){return e.replace(/\s/g,"").split(",").map(_)}var g=(0,p.propsFactory)((0,o._)({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"}},(0,l.makeDimensionProps)(),(0,c.makeElevationProps)(),(0,d.makeThemeProps)()),"VSkeletonLoader"),b=(0,p.genericComponent)()({name:"VSkeletonLoader",props:g(),setup:function(e,t){var r=t.slots,n=(0,s.useBackgroundColor)((0,i.toRef)(e,"color")),o=n.backgroundColorClasses,a=n.backgroundColorStyles,f=(0,l.useDimension)(e).dimensionStyles,m=(0,c.useElevation)(e).elevationClasses,h=(0,d.provideTheme)(e).themeClasses,g=(0,u.useLocale)().t,b=(0,i.computed)(function(){return _((0,p.wrapInArray)(e.type).join(","))});return(0,p.useRender)(function(){var t,n=!r.default||e.loading,s=e.boilerplate||!n?{}:{ariaLive:"polite",ariaLabel:g(e.loadingText),role:"alert"};return(0,i.createVNode)("div",(0,i.mergeProps)({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":e.boilerplate},h.value,o.value,m.value],style:[a.value,n?f.value:{}]},s),[n?b.value:null===(t=r.default)||void 0===t?void 0:t.call(r)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VSkeletonLoader.css":"iFhcH","../../composables/color.mjs":"9gjsu","../../composables/dimensions.mjs":"969Er","../../composables/elevation.mjs":"jNJPe","../../composables/locale.mjs":"8eTqB","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],iFhcH:[function(){},{}],"1m0RE":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSlideGroup",function(){return o.VSlideGroup}),n.export(r,"VSlideGroupItem",function(){return a.VSlideGroupItem});var o=e("./VSlideGroup.mjs"),a=e("./VSlideGroupItem.mjs")},{"./VSlideGroup.mjs":"b5bcA","./VSlideGroupItem.mjs":"57bM4","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"57bM4":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSlideGroupItem",function(){return i});var o=e("../../composables/group.mjs"),a=e("./VSlideGroup.mjs"),i=(0,e("../../util/index.mjs").genericComponent)()({name:"VSlideGroupItem",props:(0,o.makeGroupItemProps)(),emits:{"group:selected":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,o.useGroupItem)(e,a.VSlideGroupSymbol);return function(){var e;return null===(e=r.default)||void 0===e?void 0:e.call(r,{isSelected:n.isSelected.value,select:n.select,toggle:n.toggle,selectedClass:n.selectedClass.value})}}})},{"../../composables/group.mjs":"c5IR1","./VSlideGroup.mjs":"b5bcA","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1lwJD":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSnackbar",function(){return o.VSnackbar});var o=e("./VSnackbar.mjs")},{"./VSnackbar.mjs":"58eFD","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"58eFD":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSnackbarProps",function(){return x}),n.export(r,"VSnackbar",function(){return C});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VSnackbar.css");var i=e("../VDefaultsProvider/index.mjs"),s=e("../VOverlay/index.mjs"),l=e("../VOverlay/VOverlay.mjs"),c=e("../VProgressLinear/index.mjs"),u=e("../../composables/index.mjs"),d=e("../../composables/forwardRefs.mjs"),p=e("../../composables/layout.mjs"),f=e("../../composables/location.mjs"),m=e("../../composables/position.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../composables/rounded.mjs"),g=e("../../composables/scopeId.mjs"),b=e("../../composables/theme.mjs"),y=e("../../composables/toggleScope.mjs"),S=e("../../composables/variant.mjs"),E=e("../../util/index.mjs"),x=(0,E.propsFactory)((0,o._)({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean},(0,f.makeLocationProps)({location:"bottom"}),(0,m.makePositionProps)(),(0,h.makeRoundedProps)(),(0,S.makeVariantProps)(),(0,b.makeThemeProps)(),(0,E.omit)((0,l.makeVOverlayProps)({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])),"VSnackbar"),C=(0,E.genericComponent)()({name:"VSnackbar",props:x(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,_.useProxiedModel)(e,"modelValue"),o=(0,m.usePosition)(e).positionClasses,l=(0,g.useScopeId)().scopeId,f=(0,b.provideTheme)(e).themeClasses,x=(0,S.useVariant)(e),C=x.colorClasses,T=x.colorStyles,w=x.variantClasses,I=(0,h.useRounded)(e).roundedClasses,R=function(e){var t=(0,a.shallowRef)(e()),r=-1;function n(){clearInterval(r)}return(0,a.onScopeDispose)(n),{clear:n,time:t,start:function(o){var a=1e3*parseFloat((o?getComputedStyle(o):{transitionDuration:.2}).transitionDuration)||200;if(n(),!(t.value<=0)){var i=performance.now();r=window.setInterval(function(){var r=performance.now()-i+a;t.value=Math.max(e()-r,0),t.value<=0&&n()},a)}},reset:function(){n(),(0,a.nextTick)(function(){return t.value=e()})}}}(function(){return Number(e.timeout)}),A=(0,a.ref)(),N=(0,a.ref)(),k=(0,a.shallowRef)(!1),O=(0,a.shallowRef)(0),D=(0,a.ref)(),j=(0,a.inject)(p.VuetifyLayoutKey,void 0);(0,y.useToggleScope)(function(){return!!j},function(){var e=(0,u.useLayout)();(0,a.watchEffect)(function(){D.value=e.mainStyles.value})}),(0,a.watch)(n,M),(0,a.watch)(function(){return e.timeout},M),(0,a.onMounted)(function(){n.value&&M()});var P=-1;function M(){R.reset(),window.clearTimeout(P);var t=Number(e.timeout);if(n.value&&-1!==t){var r=(0,E.refElement)(N.value);R.start(r),P=window.setTimeout(function(){n.value=!1},t)}}function L(){k.value=!0,R.reset(),window.clearTimeout(P)}function V(){k.value=!1,M()}function F(e){O.value=e.touches[0].clientY}function B(e){Math.abs(O.value-e.changedTouches[0].clientY)>50&&(n.value=!1)}function U(){k.value&&V()}var G=(0,a.computed)(function(){return e.location.split(" ").reduce(function(e,t){return e["v-snackbar--".concat(t)]=!0,e},{})});return(0,E.useRender)(function(){var t=(0,s.VOverlay).filterProps(e),u=!!(r.default||r.text||e.text);return(0,a.createVNode)(s.VOverlay,(0,a.mergeProps)({ref:A,class:["v-snackbar",{"v-snackbar--active":n.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},G.value,o.value,e.class],style:[D.value,e.style]},t,{modelValue:n.value,"onUpdate:modelValue":function(e){return n.value=e},contentProps:(0,a.mergeProps)({class:["v-snackbar__wrapper",f.value,C.value,I.value,w.value],style:[T.value],onPointerenter:L,onPointerleave:V},t.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:F,onTouchend:B,onAfterLeave:U},l),{default:function(){var t,o,s;return[(0,S.genOverlays)(!1,"v-snackbar"),e.timer&&!k.value&&(0,a.createVNode)("div",{key:"timer",class:"v-snackbar__timer"},[(0,a.createVNode)(c.VProgressLinear,{ref:N,color:"string"==typeof e.timer?e.timer:"info",max:e.timeout,"model-value":R.time.value},null)]),u&&(0,a.createVNode)("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[null!==(s=null===(t=r.text)||void 0===t?void 0:t.call(r))&&void 0!==s?s:e.text,null===(o=r.default)||void 0===o?void 0:o.call(r)]),r.actions&&(0,a.createVNode)(i.VDefaultsProvider,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:function(){return[(0,a.createVNode)("div",{class:"v-snackbar__actions"},[r.actions({isActive:n})])]}})]},activator:r.activator})}),(0,d.forwardRefs)({},A)}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSnackbar.css":"57Jud","../VDefaultsProvider/index.mjs":"9aMue","../VOverlay/index.mjs":"gzxhk","../VOverlay/VOverlay.mjs":"3r0ub","../VProgressLinear/index.mjs":"dyg9r","../../composables/index.mjs":"3SSfs","../../composables/forwardRefs.mjs":"fZtSV","../../composables/layout.mjs":"j1CRa","../../composables/location.mjs":"S9pdd","../../composables/position.mjs":"gvTsA","../../composables/proxiedModel.mjs":"7LrVW","../../composables/rounded.mjs":"4CR7Z","../../composables/scopeId.mjs":"aktTM","../../composables/theme.mjs":"iNuzC","../../composables/toggleScope.mjs":"1GDdb","../../composables/variant.mjs":"e5F3N","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"57Jud":[function(){},{}],jz7Ra:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSparkline",function(){return o.VSparkline});var o=e("./VSparkline.mjs")},{"./VSparkline.mjs":"kPHVH","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],kPHVH:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSparklineProps",function(){return u}),n.export(r,"VSparkline",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./VBarline.mjs"),s=e("./VTrendline.mjs"),l=e("../../composables/color.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({type:{type:String,default:"trend"}},(0,i.makeVBarlineProps)(),(0,s.makeVTrendlineProps)()),"VSparkline"),d=(0,c.genericComponent)()({name:"VSparkline",props:u(),setup:function(e,t){var r=t.slots,n=(0,l.useTextColor)((0,a.toRef)(e,"color")),o=n.textColorClasses,u=n.textColorStyles,d=(0,a.computed)(function(){return!!(e.showLabels||e.labels.length>0||(null==r?void 0:r.label))}),p=(0,a.computed)(function(){var t=parseInt(e.height,10);return d.value&&(t+=1.5*parseInt(e.labelSize,10)),t});(0,c.useRender)(function(){var t="trend"===e.type?s.VTrendline:i.VBarline,n="trend"===e.type?(0,s.VTrendline).filterProps(e):(0,i.VBarline).filterProps(e);return(0,a.createVNode)(t,(0,a.mergeProps)({key:e.type,class:o.value,style:u.value,viewBox:"0 0 ".concat(e.width," ").concat(parseInt(p.value,10))},n),r)})}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VBarline.mjs":"e9Ccp","./VTrendline.mjs":"80SHv","../../composables/color.mjs":"9gjsu","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],e9Ccp:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVBarlineProps",function(){return c}),n.export(r,"VBarline",function(){return u});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_to_consumable_array"),i=e("vue"),s=e("./util/line.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)((0,o._)({autoLineWidth:Boolean},(0,s.makeLineProps)()),"VBarline"),u=(0,l.genericComponent)()({name:"VBarline",props:c(),setup:function(e,t){var r=t.slots,n=(0,l.getUid)(),o=(0,i.computed)(function(){return e.id||"barline-".concat(n)}),s=(0,i.computed)(function(){return Number(e.autoDrawDuration)||500}),c=(0,i.computed)(function(){return!!(e.showLabels||e.labels.length>0||(null==r?void 0:r.label))}),u=(0,i.computed)(function(){return parseFloat(e.lineWidth)||4}),d=(0,i.computed)(function(){return Math.max(e.modelValue.length*u.value,Number(e.width))}),p=(0,i.computed)(function(){return{minX:0,maxX:d.value,minY:0,maxY:parseInt(e.height,10)}}),f=(0,i.computed)(function(){return e.modelValue.map(function(t){return(0,l.getPropertyFromItem)(t,e.itemValue,t)})});function m(t,r){var n,o,i=r.minX,s=r.maxX,l=r.minY,c=r.maxY,u=t.length,d=null!=e.max?Number(e.max):(n=Math).max.apply(n,(0,a._)(t)),p=null!=e.min?Number(e.min):(o=Math).min.apply(o,(0,a._)(t));p>0&&null==e.min&&(p=0),d<0&&null==e.max&&(d=0);var f=s/u,m=(c-l)/(d-p||1),_=c-Math.abs(p*m);return t.map(function(e,t){var r=Math.abs(m*e);return{x:i+t*f,y:_-r+ +(e<0)*r,height:r,value:e}})}var _=(0,i.computed)(function(){for(var t=[],r=m(f.value,p.value),n=r.length,o=0;t.length0||(null==r?void 0:r.label))}),h=(0,l.computed)(function(){return parseFloat(e.lineWidth)||4}),g=(0,l.computed)(function(){return Number(e.width)}),b=(0,l.computed)(function(){var t=Number(e.padding);return{minX:t,maxX:g.value-t,minY:t,maxY:parseInt(e.height,10)-t}}),y=(0,l.computed)(function(){return e.modelValue.map(function(t){return(0,d.getPropertyFromItem)(t,e.itemValue,t)})}),S=(0,l.computed)(function(){for(var t=[],r=m(y.value,b.value),n=r.length,o=0;t.length2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:75;if(0===e.length)return"";var o=e.shift(),l=e[e.length-1];return(r?"M".concat(o.x," ").concat(n-o.x+2," L").concat(o.x," ").concat(o.y):"M".concat(o.x," ").concat(o.y))+e.map(function(r,n){var l=e[n+1],c=e[n-1]||o,u=l&&a(l,r,c);if(!l||u)return"L".concat(r.x," ").concat(r.y);var d=Math.min(i(c,r),i(l,r)),p=d/20,s=!e.hideActions&&!!(o||r.actions);return(0,i.createVNode)(m.VSheet,(0,i.mergeProps)(t,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":T.value},C.value,e.class],style:e.style}),{default:function(){var e,t,m;return[n&&(0,i.createVNode)(c.VStepperHeader,{key:"stepper-header"},{default:function(){return[j.value.map(function(e,t){e.raw;var n,o=(0,a._)(e,["raw"]);return(0,i.createVNode)(i.Fragment,null,[!!t&&(0,i.createVNode)(f.VDivider,null,null),(0,i.createVNode)(u.VStepperItem,o,{default:null!==(n=r["header-item.".concat(o.value)])&&void 0!==n?n:r.header,icon:r.icon,title:r.title,subtitle:r.subtitle})])})]}}),o&&(0,i.createVNode)(d.VStepperWindow,{key:"stepper-window"},{default:function(){return[j.value.map(function(e){return(0,i.createVNode)(p.VStepperWindowItem,{value:e.value},{default:function(){var t,n,o;return null!==(o=null===(t=r["item.".concat(e.value)])||void 0===t?void 0:t.call(r,e))&&void 0!==o?o:null===(n=r.item)||void 0===n?void 0:n.call(r,e)}})})]}}),null===(e=r.default)||void 0===e?void 0:e.call(r,{prev:S,next:y}),s&&(null!==(m=null===(t=r.actions)||void 0===t?void 0:t.call(r,{next:y,prev:S}))&&void 0!==m?m:(0,i.createVNode)(l.VStepperActions,{key:"stepper-actions","onClick:prev":S,"onClick:next":y},r))]}})}),{prev:S,next:y}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_without_properties":"d9YAZ",vue:"gHobw","./VStepper.css":"bPJ35","./shared.mjs":"iDZQH","./VStepperActions.mjs":"2Isas","./VStepperHeader.mjs":"h7UIR","./VStepperItem.mjs":"17q40","./VStepperWindow.mjs":"22TND","./VStepperWindowItem.mjs":"1ze2f","../VDivider/index.mjs":"duptT","../VSheet/VSheet.mjs":"jUuzJ","../../composables/defaults.mjs":"cYwla","../../composables/display.mjs":"5LhPp","../../composables/group.mjs":"c5IR1","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],bPJ35:[function(){},{}],iDZQH:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VStepperSymbol",function(){return o});var o=Symbol.for("vuetify:v-stepper")},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2Isas":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVStepperActionsProps",function(){return c}),n.export(r,"VStepperActions",function(){return u});var o=e("vue"),a=e("../VBtn/VBtn.mjs"),i=e("../VDefaultsProvider/VDefaultsProvider.mjs"),s=e("../../composables/locale.mjs"),l=e("../../util/index.mjs"),c=(0,l.propsFactory)({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),u=(0,l.genericComponent)()({name:"VStepperActions",props:c(),emits:{"click:prev":function(){return!0},"click:next":function(){return!0}},setup:function(e,t){var r=t.emit,n=t.slots,c=(0,s.useLocale)().t;function u(){r("click:prev")}function d(){r("click:next")}return(0,l.useRender)(function(){var t={onClick:u},r={onClick:d};return(0,o.createVNode)("div",{class:"v-stepper-actions"},[(0,o.createVNode)(i.VDefaultsProvider,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:c(e.prevText),variant:"text"}}},{default:function(){var e,r;return[null!==(r=null===(e=n.prev)||void 0===e?void 0:e.call(n,{props:t}))&&void 0!==r?r:(0,o.createVNode)(a.VBtn,t,null)]}}),(0,o.createVNode)(i.VDefaultsProvider,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:c(e.nextText),variant:"tonal"}}},{default:function(){var e,t;return[null!==(t=null===(e=n.next)||void 0===e?void 0:e.call(n,{props:r}))&&void 0!==t?t:(0,o.createVNode)(a.VBtn,r,null)]}})])}),{}}})},{vue:"gHobw","../VBtn/VBtn.mjs":"egE2E","../VDefaultsProvider/VDefaultsProvider.mjs":"3cy0a","../../composables/locale.mjs":"8eTqB","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],h7UIR:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VStepperHeader",function(){return o});var o=(0,e("../../util/index.mjs").createSimpleFunctional)("v-stepper-header")},{"../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"17q40":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeStepperItemProps",function(){return f}),n.export(r,"makeVStepperItemProps",function(){return m}),n.export(r,"VStepperItem",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VStepperItem.css");var i=e("../VAvatar/VAvatar.mjs"),s=e("../VIcon/VIcon.mjs"),l=e("../../composables/group.mjs"),c=e("../../composables/variant.mjs"),u=e("../../directives/ripple/index.mjs"),d=e("./shared.mjs"),p=e("../../util/index.mjs"),f=(0,p.propsFactory)({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:String,default:"$complete"},editable:Boolean,editIcon:{type:String,default:"$edit"},error:Boolean,errorIcon:{type:String,default:"$error"},icon:String,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:function(){return[]}}},"StepperItem"),m=(0,p.propsFactory)((0,o._)({},f(),(0,l.makeGroupItemProps)()),"VStepperItem"),_=(0,p.genericComponent)()({name:"VStepperItem",directives:{Ripple:u.Ripple},props:m(),emits:{"group:selected":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,l.useGroupItem)(e,d.VStepperSymbol,!0),o=(0,a.computed)(function(){var t;return null!==(t=null==n?void 0:n.value.value)&&void 0!==t?t:e.value}),u=(0,a.computed)(function(){return e.rules.every(function(e){return!0===e()})}),f=(0,a.computed)(function(){return!e.disabled&&e.editable}),m=(0,a.computed)(function(){return!e.disabled&&e.editable}),_=(0,a.computed)(function(){return e.error||!u.value}),h=(0,a.computed)(function(){return e.complete||e.rules.length>0&&u.value}),g=(0,a.computed)(function(){return _.value?e.errorIcon:h.value?e.completeIcon:n.isSelected.value&&e.editable?e.editIcon:e.icon}),b=(0,a.computed)(function(){return{canEdit:m.value,hasError:_.value,hasCompleted:h.value,title:e.title,subtitle:e.subtitle,step:o.value,value:e.value}});return(0,p.useRender)(function(){var t,l,u,d,p,y=(!n||n.isSelected.value||h.value||m.value)&&!_.value&&!e.disabled,S=!!(null!=e.title||r.title),E=!!(null!=e.subtitle||r.subtitle);return(0,a.withDirectives)((0,a.createVNode)("button",{class:["v-stepper-item",{"v-stepper-item--complete":h.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":_.value},null==n?void 0:n.selectedClass.value],disabled:!e.editable,onClick:function(){null==n||n.toggle()}},[f.value&&(0,c.genOverlays)(!0,"v-stepper-item"),(0,a.createVNode)(i.VAvatar,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:y?e.color:void 0,size:24},{default:function(){var e,t;return[null!==(t=null===(e=r.icon)||void 0===e?void 0:e.call(r,b.value))&&void 0!==t?t:g.value?(0,a.createVNode)(s.VIcon,{icon:g.value},null):o.value]}}),(0,a.createVNode)("div",{class:"v-stepper-item__content"},[S&&(0,a.createVNode)("div",{key:"title",class:"v-stepper-item__title"},[null!==(d=null===(t=r.title)||void 0===t?void 0:t.call(r,b.value))&&void 0!==d?d:e.title]),E&&(0,a.createVNode)("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[null!==(p=null===(l=r.subtitle)||void 0===l?void 0:l.call(r,b.value))&&void 0!==p?p:e.subtitle]),null===(u=r.default)||void 0===u?void 0:u.call(r,b.value)])]),[[(0,a.resolveDirective)("ripple"),e.ripple&&e.editable,null]])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VStepperItem.css":"gpxyq","../VAvatar/VAvatar.mjs":"G11Fy","../VIcon/VIcon.mjs":"eS3Rq","../../composables/group.mjs":"c5IR1","../../composables/variant.mjs":"e5F3N","../../directives/ripple/index.mjs":"5qUsh","./shared.mjs":"iDZQH","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gpxyq:[function(){},{}],"22TND":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVStepperWindowProps",function(){return u}),n.export(r,"VStepperWindow",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./shared.mjs"),s=e("../VWindow/VWindow.mjs"),l=e("../../composables/proxiedModel.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({},(0,c.omit)((0,s.makeVWindowProps)(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])),"VStepperWindow"),d=(0,c.genericComponent)()({name:"VStepperWindow",props:u(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,a.inject)(i.VStepperSymbol,null),o=(0,l.useProxiedModel)(e,"modelValue"),u=(0,a.computed)({get:function(){var e;return null==o.value&&n?null===(e=n.items.value.find(function(e){return n.selected.value.includes(e.id)}))||void 0===e?void 0:e.value:o.value},set:function(e){o.value=e}});return(0,c.useRender)(function(){var t=(0,s.VWindow).filterProps(e);return(0,a.createVNode)(s.VWindow,(0,a.mergeProps)({_as:"VStepperWindow"},t,{modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./shared.mjs":"iDZQH","../VWindow/VWindow.mjs":"lRH6n","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1ze2f":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVStepperWindowItemProps",function(){return l}),n.export(r,"VStepperWindowItem",function(){return c});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VWindow/VWindowItem.mjs"),s=e("../../util/index.mjs"),l=(0,s.propsFactory)((0,o._)({},(0,i.makeVWindowItemProps)()),"VStepperWindowItem"),c=(0,s.genericComponent)()({name:"VStepperWindowItem",props:l(),setup:function(e,t){var r=t.slots;return(0,s.useRender)(function(){var t=(0,i.VWindowItem).filterProps(e);return(0,a.createVNode)(i.VWindowItem,(0,a.mergeProps)({_as:"VStepperWindowItem"},t,{class:["v-stepper-window-item",e.class],style:e.style}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VWindow/VWindowItem.mjs":"4hmpt","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],k3rRN:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSwitch",function(){return o.VSwitch});var o=e("./VSwitch.mjs")},{"./VSwitch.mjs":"i9GFc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],i9GFc:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSwitchProps",function(){return b}),n.export(r,"VSwitch",function(){return y});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_sliced_to_array"),s=e("vue");e("./VSwitch.css");var l=e("../transitions/index.mjs"),c=e("../VDefaultsProvider/VDefaultsProvider.mjs"),u=e("../VIcon/index.mjs"),d=e("../VInput/VInput.mjs"),p=e("../VProgressCircular/index.mjs"),f=e("../VSelectionControl/VSelectionControl.mjs"),m=e("../../composables/focus.mjs"),_=e("../../composables/loader.mjs"),h=e("../../composables/proxiedModel.mjs"),g=e("../../util/index.mjs"),b=(0,g.propsFactory)((0,o._)({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1}},(0,d.makeVInputProps)(),(0,f.makeVSelectionControlProps)()),"VSwitch"),y=(0,g.genericComponent)()({name:"VSwitch",inheritAttrs:!1,props:b(),emits:{"update:focused":function(e){return!0},"update:modelValue":function(e){return!0},"update:indeterminate":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,b=(0,h.useProxiedModel)(e,"indeterminate"),y=(0,h.useProxiedModel)(e,"modelValue"),S=(0,_.useLoader)(e).loaderClasses,E=(0,m.useFocus)(e),x=E.isFocused,C=E.focus,T=E.blur,w=(0,s.ref)(),I=g.IN_BROWSER&&window.matchMedia("(forced-colors: active)").matches,R=(0,s.computed)(function(){return"string"==typeof e.loading&&""!==e.loading?e.loading:e.color}),A=(0,g.getUid)(),N=(0,s.computed)(function(){return e.id||"switch-".concat(A)});function k(){b.value&&(b.value=!1)}function O(e){var t,r;e.stopPropagation(),e.preventDefault(),null===(r=w.value)||void 0===r||null===(t=r.input)||void 0===t||t.click()}return(0,g.useRender)(function(){var t=(0,i._)((0,g.filterInputAttrs)(r),2),m=t[0],h=t[1],E=(0,d.VInput).filterProps(e),A=(0,f.VSelectionControl).filterProps(e);return(0,s.createVNode)(d.VInput,(0,s.mergeProps)({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":b.value},S.value,e.class]},m,E,{modelValue:y.value,"onUpdate:modelValue":function(e){return y.value=e},id:N.value,focused:x.value,style:e.style}),(0,a._)((0,o._)({},n),{default:function(t){var r=t.id,i=t.messagesId,d=t.isDisabled,m=t.isReadonly,g=t.isValid,S={model:y,isValid:g};return(0,s.createVNode)(f.VSelectionControl,(0,s.mergeProps)({ref:w},A,{modelValue:y.value,"onUpdate:modelValue":[function(e){return y.value=e},k],id:r.value,"aria-describedby":i.value,type:"checkbox","aria-checked":b.value?"mixed":void 0,disabled:d.value,readonly:m.value,onFocus:C,onBlur:T},h),(0,a._)((0,o._)({},n),{default:function(e){var t=e.backgroundColorClasses,r=e.backgroundColorStyles;return(0,s.createVNode)("div",{class:["v-switch__track",I?void 0:t.value],style:r.value,onClick:O},[n["track-true"]&&(0,s.createVNode)("div",{key:"prepend",class:"v-switch__track-true"},[n["track-true"](S)]),n["track-false"]&&(0,s.createVNode)("div",{key:"append",class:"v-switch__track-false"},[n["track-false"](S)])])},input:function(t){var r=t.inputNode,i=t.icon,d=t.backgroundColorClasses,f=t.backgroundColorStyles;return(0,s.createVNode)(s.Fragment,null,[r,(0,s.createVNode)("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":i||e.loading},e.inset||I?void 0:d.value],style:e.inset?void 0:f.value},[n.thumb?(0,s.createVNode)(c.VDefaultsProvider,{defaults:{VIcon:{icon:i,size:"x-small"}}},{default:function(){return[n.thumb((0,a._)((0,o._)({},S),{icon:i}))]}}):(0,s.createVNode)(l.VScaleTransition,null,{default:function(){return[e.loading?(0,s.createVNode)(_.LoaderSlot,{name:"v-switch",active:!0,color:!1===g.value?void 0:R.value},{default:function(e){return n.loader?n.loader(e):(0,s.createVNode)(p.VProgressCircular,{active:e.isActive,color:e.color,indeterminate:!0,size:"16",width:"2"},null)}}):i&&(0,s.createVNode)(u.VIcon,{key:String(i),icon:i,size:"x-small"},null)]}})])])}}))}}))}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VSwitch.css":"2v64a","../transitions/index.mjs":"9jbNO","../VDefaultsProvider/VDefaultsProvider.mjs":"3cy0a","../VIcon/index.mjs":"kpG2s","../VInput/VInput.mjs":"75G3q","../VProgressCircular/index.mjs":"jD8F7","../VSelectionControl/VSelectionControl.mjs":"01Yl0","../../composables/focus.mjs":"bmd72","../../composables/loader.mjs":"hjVll","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2v64a":[function(){},{}],b1cNz:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VSystemBar",function(){return o.VSystemBar});var o=e("./VSystemBar.mjs")},{"./VSystemBar.mjs":"2IJxE","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2IJxE":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVSystemBarProps",function(){return _}),n.export(r,"VSystemBar",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VSystemBar.css");var i=e("../../composables/color.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/elevation.mjs"),c=e("../../composables/layout.mjs"),u=e("../../composables/rounded.mjs"),d=e("../../composables/ssrBoot.mjs"),p=e("../../composables/tag.mjs"),f=e("../../composables/theme.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({color:String,height:[Number,String],window:Boolean},(0,s.makeComponentProps)(),(0,l.makeElevationProps)(),(0,c.makeLayoutItemProps)(),(0,u.makeRoundedProps)(),(0,p.makeTagProps)(),(0,f.makeThemeProps)()),"VSystemBar"),h=(0,m.genericComponent)()({name:"VSystemBar",props:_(),setup:function(e,t){var r=t.slots,n=(0,f.provideTheme)(e).themeClasses,o=(0,i.useBackgroundColor)((0,a.toRef)(e,"color")),s=o.backgroundColorClasses,p=o.backgroundColorStyles,_=(0,l.useElevation)(e).elevationClasses,h=(0,u.useRounded)(e).roundedClasses,g=(0,d.useSsrBoot)().ssrBootStyles,b=(0,a.computed)(function(){var t;return null!==(t=e.height)&&void 0!==t?t:e.window?32:24}),y=(0,c.useLayoutItem)({id:e.name,order:(0,a.computed)(function(){return parseInt(e.order,10)}),position:(0,a.shallowRef)("top"),layoutSize:b,elementSize:b,active:(0,a.computed)(function(){return!0}),absolute:(0,a.toRef)(e,"absolute")}).layoutItemStyles;return(0,m.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-system-bar",{"v-system-bar--window":e.window},n.value,s.value,_.value,h.value,e.class],style:[p.value,y.value,g.value,e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VSystemBar.css":"1FA1Q","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/elevation.mjs":"jNJPe","../../composables/layout.mjs":"j1CRa","../../composables/rounded.mjs":"4CR7Z","../../composables/ssrBoot.mjs":"ergwm","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1FA1Q":[function(){},{}],"4eoq4":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTab",function(){return o.VTab}),n.export(r,"VTabs",function(){return a.VTabs}),n.export(r,"VTabsWindow",function(){return i.VTabsWindow}),n.export(r,"VTabsWindowItem",function(){return s.VTabsWindowItem});var o=e("./VTab.mjs"),a=e("./VTabs.mjs"),i=e("./VTabsWindow.mjs"),s=e("./VTabsWindowItem.mjs")},{"./VTab.mjs":"8SkYz","./VTabs.mjs":"2V0er","./VTabsWindow.mjs":"kJMqm","./VTabsWindowItem.mjs":"9GBR9","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8SkYz":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTabProps",function(){return p}),n.export(r,"VTab",function(){return f});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("vue");e("./VTab.css");var s=e("../VBtn/VBtn.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/forwardRefs.mjs"),u=e("./shared.mjs"),d=e("../../util/index.mjs"),p=(0,d.propsFactory)((0,o._)({fixed:Boolean,sliderColor:String,hideSlider:Boolean,direction:{type:String,default:"horizontal"}},(0,d.omit)((0,s.makeVBtnProps)({selectedClass:"v-tab--selected",variant:"text"}),["active","block","flat","location","position","symbol"])),"VTab"),f=(0,d.genericComponent)()({name:"VTab",props:p(),setup:function(e,t){var r=t.slots,n=t.attrs,p=(0,l.useTextColor)(e,"sliderColor"),f=p.textColorClasses,m=p.textColorStyles,_=(0,i.ref)(),h=(0,i.ref)(),g=(0,i.computed)(function(){return"horizontal"===e.direction}),b=(0,i.computed)(function(){var e,t,r;return null!==(r=null===(t=_.value)||void 0===t?void 0:null===(e=t.group)||void 0===e?void 0:e.isSelected.value)&&void 0!==r&&r});function y(e){if(e.value){var t,r,n=null===(r=_.value)||void 0===r?void 0:null===(t=r.$el.parentElement)||void 0===t?void 0:t.querySelector(".v-tab--selected .v-tab__slider"),o=h.value;if(n&&o){var a=getComputedStyle(n).color,i=n.getBoundingClientRect(),s=o.getBoundingClientRect(),l=g.value?"x":"y",c=g.value?"X":"Y",u=g.value?"right":"bottom",p=g.value?"width":"height",f=i[l]>s[l]?i[u]-s[u]:i[l]-s[l],m=Math.sign(f)>0?g.value?"right":"bottom":0>Math.sign(f)?g.value?"left":"top":"center",b=(Math.abs(f)+(0>Math.sign(f)?i[p]:s[p]))/Math.max(i[p],s[p])||0,y=i[p]/s[p]||0;(0,d.animate)(o,{backgroundColor:[a,"currentcolor"],transform:["translate".concat(c,"(").concat(f,"px) scale").concat(c,"(").concat(y,")"),"translate".concat(c,"(").concat(f/1.5,"px) scale").concat(c,"(").concat((b-1)/1.5+1,")"),"none"],transformOrigin:[,,,].fill(m)},{duration:225,easing:d.standardEasing})}}}return(0,d.useRender)(function(){var t=(0,s.VBtn).filterProps(e);return(0,i.createVNode)(s.VBtn,(0,i.mergeProps)({symbol:u.VTabsSymbol,ref:_,class:["v-tab",e.class],style:e.style,tabindex:b.value?0:-1,role:"tab","aria-selected":String(b.value),active:!1},t,n,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":y}),(0,a._)((0,o._)({},r),{default:function(){var t,n;return(0,i.createVNode)(i.Fragment,null,[null!==(n=null===(t=r.default)||void 0===t?void 0:t.call(r))&&void 0!==n?n:e.text,!e.hideSlider&&(0,i.createVNode)("div",{ref:h,class:["v-tab__slider",f.value],style:m.value},null)])}}))}),(0,c.forwardRefs)({},_)}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k",vue:"gHobw","./VTab.css":"dKHzk","../VBtn/VBtn.mjs":"egE2E","../../composables/color.mjs":"9gjsu","../../composables/forwardRefs.mjs":"fZtSV","./shared.mjs":"hVWYQ","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],dKHzk:[function(){},{}],hVWYQ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTabsSymbol",function(){return o});var o=Symbol.for("vuetify:v-tabs")},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"2V0er":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTabsProps",function(){return b}),n.export(r,"VTabs",function(){return y});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VTabs.css");var i=e("./VTab.mjs"),s=e("./VTabsWindow.mjs"),l=e("./VTabsWindowItem.mjs"),c=e("../VSlideGroup/VSlideGroup.mjs"),u=e("../../composables/color.mjs"),d=e("../../composables/defaults.mjs"),p=e("../../composables/density.mjs"),f=e("../../composables/proxiedModel.mjs"),m=e("../../composables/scopeId.mjs"),_=e("../../composables/tag.mjs"),h=e("../../util/index.mjs"),g=e("./shared.mjs"),b=(0,h.propsFactory)((0,o._)({alignTabs:{type:String,default:"start"},color:String,fixedTabs:Boolean,items:{type:Array,default:function(){return[]}},stacked:Boolean,bgColor:String,grow:Boolean,height:{type:[Number,String],default:void 0},hideSlider:Boolean,sliderColor:String},(0,c.makeVSlideGroupProps)({mandatory:"force",selectedClass:"v-tab-item--selected"}),(0,p.makeDensityProps)(),(0,_.makeTagProps)()),"VTabs"),y=(0,h.genericComponent)()({name:"VTabs",props:b(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.attrs,n=t.slots,o=(0,f.useProxiedModel)(e,"modelValue"),_=(0,a.computed)(function(){var t;return(t=e.items)?t.map(function(e){return(0,h.isObject)(e)?e:{text:e,value:e}}):[]}),b=(0,p.useDensity)(e).densityClasses,y=(0,u.useBackgroundColor)((0,a.toRef)(e,"bgColor")),S=y.backgroundColorClasses,E=y.backgroundColorStyles,x=(0,m.useScopeId)().scopeId;return(0,d.provideDefaults)({VTab:{color:(0,a.toRef)(e,"color"),direction:(0,a.toRef)(e,"direction"),stacked:(0,a.toRef)(e,"stacked"),fixed:(0,a.toRef)(e,"fixedTabs"),sliderColor:(0,a.toRef)(e,"sliderColor"),hideSlider:(0,a.toRef)(e,"hideSlider")}}),(0,h.useRender)(function(){var t=(0,c.VSlideGroup).filterProps(e),u=!!(n.window||e.items.length>0);return(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(c.VSlideGroup,(0,a.mergeProps)(t,{modelValue:o.value,"onUpdate:modelValue":function(e){return o.value=e},class:["v-tabs","v-tabs--".concat(e.direction),"v-tabs--align-tabs-".concat(e.alignTabs),{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--stacked":e.stacked},b.value,S.value,e.class],style:[{"--v-tabs-height":(0,h.convertToUnit)(e.height)},E.value,e.style],role:"tablist",symbol:g.VTabsSymbol},x,r),{default:function(){var e,t;return[null!==(t=null===(e=n.default)||void 0===e?void 0:e.call(n))&&void 0!==t?t:_.value.map(function(e){var t,r;return null!==(r=null===(t=n.tab)||void 0===t?void 0:t.call(n,{item:e}))&&void 0!==r?r:(0,a.createVNode)(i.VTab,(0,a.mergeProps)(e,{key:e.text,value:e.value}),{default:n["tab.".concat(e.value)]?function(){var t;return null===(t=n["tab.".concat(e.value)])||void 0===t?void 0:t.call(n,{item:e})}:void 0})})]}}),u&&(0,a.createVNode)(s.VTabsWindow,(0,a.mergeProps)({modelValue:o.value,"onUpdate:modelValue":function(e){return o.value=e},key:"tabs-window"},x),{default:function(){var e;return[_.value.map(function(e){var t,r;return null!==(r=null===(t=n.item)||void 0===t?void 0:t.call(n,{item:e}))&&void 0!==r?r:(0,a.createVNode)(l.VTabsWindowItem,{value:e.value},{default:function(){var t;return null===(t=n["item.".concat(e.value)])||void 0===t?void 0:t.call(n,{item:e})}})}),null===(e=n.window)||void 0===e?void 0:e.call(n)]}})])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VTabs.css":"7nOBI","./VTab.mjs":"8SkYz","./VTabsWindow.mjs":"kJMqm","./VTabsWindowItem.mjs":"9GBR9","../VSlideGroup/VSlideGroup.mjs":"b5bcA","../../composables/color.mjs":"9gjsu","../../composables/defaults.mjs":"cYwla","../../composables/density.mjs":"3HkdI","../../composables/proxiedModel.mjs":"7LrVW","../../composables/scopeId.mjs":"aktTM","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","./shared.mjs":"hVWYQ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"7nOBI":[function(){},{}],kJMqm:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTabsWindowProps",function(){return u}),n.export(r,"VTabsWindow",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VWindow/VWindow.mjs"),s=e("../../composables/proxiedModel.mjs"),l=e("../../util/index.mjs"),c=e("./shared.mjs"),u=(0,l.propsFactory)((0,o._)({},(0,l.omit)((0,i.makeVWindowProps)(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])),"VTabsWindow"),d=(0,l.genericComponent)()({name:"VTabsWindow",props:u(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,a.inject)(c.VTabsSymbol,null),o=(0,s.useProxiedModel)(e,"modelValue"),u=(0,a.computed)({get:function(){var e;return null==o.value&&n?null===(e=n.items.value.find(function(e){return n.selected.value.includes(e.id)}))||void 0===e?void 0:e.value:o.value},set:function(e){o.value=e}});return(0,l.useRender)(function(){var t=(0,i.VWindow).filterProps(e);return(0,a.createVNode)(i.VWindow,(0,a.mergeProps)({_as:"VTabsWindow"},t,{modelValue:u.value,"onUpdate:modelValue":function(e){return u.value=e},class:["v-tabs-window",e.class],style:e.style,mandatory:!1,touch:!1}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VWindow/VWindow.mjs":"lRH6n","../../composables/proxiedModel.mjs":"7LrVW","../../util/index.mjs":"iWvvc","./shared.mjs":"hVWYQ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"9GBR9":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTabsWindowItemProps",function(){return l}),n.export(r,"VTabsWindowItem",function(){return c});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VWindow/VWindowItem.mjs"),s=e("../../util/index.mjs"),l=(0,s.propsFactory)((0,o._)({},(0,i.makeVWindowItemProps)()),"VTabsWindowItem"),c=(0,s.genericComponent)()({name:"VTabsWindowItem",props:l(),setup:function(e,t){var r=t.slots;return(0,s.useRender)(function(){var t=(0,i.VWindowItem).filterProps(e);return(0,a.createVNode)(i.VWindowItem,(0,a.mergeProps)({_as:"VTabsWindowItem"},t,{class:["v-tabs-window-item",e.class],style:e.style}),r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VWindow/VWindowItem.mjs":"4hmpt","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gN9Op:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTextarea",function(){return o.VTextarea});var o=e("./VTextarea.mjs")},{"./VTextarea.mjs":"i70R0","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],i70R0:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTextareaProps",function(){return y}),n.export(r,"VTextarea",function(){return S});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_object_spread_props"),i=e("@swc/helpers/_/_object_without_properties"),s=e("@swc/helpers/_/_sliced_to_array"),l=e("vue");e("./VTextarea.css"),e("../VTextField/VTextField.css");var c=e("../VCounter/VCounter.mjs"),u=e("../VField/index.mjs"),d=e("../VField/VField.mjs"),p=e("../VInput/VInput.mjs"),f=e("../../composables/focus.mjs"),m=e("../../composables/forwardRefs.mjs"),_=e("../../composables/proxiedModel.mjs"),h=e("../../directives/intersect/index.mjs"),g=n.interopDefault(h),b=e("../../util/index.mjs"),y=(0,b.propsFactory)((0,o._)({autoGrow:Boolean,autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,noResize:Boolean,rows:{type:[Number,String],default:5,validator:function(e){return!isNaN(parseFloat(e))}},maxRows:{type:[Number,String],validator:function(e){return!isNaN(parseFloat(e))}},suffix:String,modelModifiers:Object},(0,p.makeVInputProps)(),(0,d.makeVFieldProps)()),"VTextarea"),S=(0,b.genericComponent)()({name:"VTextarea",directives:{Intersect:g.default},inheritAttrs:!1,props:y(),emits:{"click:control":function(e){return!0},"mousedown:control":function(e){return!0},"update:focused":function(e){return!0},"update:modelValue":function(e){return!0}},setup:function(e,t){var r,n=t.attrs,h=t.emit,g=t.slots,y=(0,_.useProxiedModel)(e,"modelValue"),S=(0,f.useFocus)(e),E=S.isFocused,x=S.focus,C=S.blur,T=(0,l.computed)(function(){return"function"==typeof e.counterValue?e.counterValue(y.value):(y.value||"").toString().length}),w=(0,l.computed)(function(){return n.maxlength?n.maxlength:e.counter&&("number"==typeof e.counter||"string"==typeof e.counter)?e.counter:void 0});function I(t,r){var n,o;e.autofocus&&t&&(null===(o=r[0].target)||void 0===o||null===(n=o.focus)||void 0===n||n.call(o))}var R=(0,l.ref)(),A=(0,l.ref)(),N=(0,l.shallowRef)(""),k=(0,l.ref)(),O=(0,l.computed)(function(){return e.persistentPlaceholder||E.value||e.active});function D(){var e;k.value!==document.activeElement&&(null===(e=k.value)||void 0===e||e.focus()),E.value||x()}function j(e){D(),h("click:control",e)}function P(e){h("mousedown:control",e)}function M(t){t.stopPropagation(),D(),(0,l.nextTick)(function(){y.value="",(0,b.callEvent)(e["onClick:clear"],t)})}function L(t){var r,n=t.target;if(y.value=n.value,null===(r=e.modelModifiers)||void 0===r?void 0:r.trim){var o=[n.selectionStart,n.selectionEnd];(0,l.nextTick)(function(){n.selectionStart=o[0],n.selectionEnd=o[1]})}}var V=(0,l.ref)(),F=(0,l.ref)(+e.rows),B=(0,l.computed)(function(){return["plain","underlined"].includes(e.variant)});function U(){e.autoGrow&&(0,l.nextTick)(function(){if(V.value&&A.value){var t=getComputedStyle(V.value),r=getComputedStyle(A.value.$el),n=parseFloat(t.getPropertyValue("--v-field-padding-top"))+parseFloat(t.getPropertyValue("--v-input-padding-top"))+parseFloat(t.getPropertyValue("--v-field-padding-bottom")),o=V.value.scrollHeight,a=parseFloat(t.lineHeight),i=Math.max(parseFloat(e.rows)*a+n,parseFloat(r.getPropertyValue("--v-input-control-height"))),s=parseFloat(e.maxRows)*a+n||1/0,l=(0,b.clamp)(null!=o?o:0,i,s);F.value=Math.floor((l-n)/a),N.value=(0,b.convertToUnit)(l)}})}return(0,l.watchEffect)(function(){e.autoGrow||(F.value=+e.rows)}),(0,l.onMounted)(U),(0,l.watch)(y,U),(0,l.watch)(function(){return e.rows},U),(0,l.watch)(function(){return e.maxRows},U),(0,l.watch)(function(){return e.density},U),(0,l.watch)(V,function(e){e?(r=new ResizeObserver(U)).observe(V.value):null==r||r.disconnect()}),(0,l.onBeforeUnmount)(function(){null==r||r.disconnect()}),(0,b.useRender)(function(){var t=!!(g.counter||e.counter||e.counterValue),r=!!(t||g.details),f=(0,s._)((0,b.filterInputAttrs)(n),2),m=f[0],_=f[1],h=(0,p.VInput).filterProps(e),S=(h.modelValue,(0,i._)(h,["modelValue"])),x=(0,d.filterFieldProps)(e);return(0,l.createVNode)(p.VInput,(0,l.mergeProps)({ref:R,modelValue:y.value,"onUpdate:modelValue":function(e){return y.value=e},class:["v-textarea v-text-field",{"v-textarea--prefixed":e.prefix,"v-textarea--suffixed":e.suffix,"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-textarea--auto-grow":e.autoGrow,"v-textarea--no-resize":e.noResize||e.autoGrow,"v-input--plain-underlined":B.value},e.class],style:e.style},m,S,{centerAffix:1===F.value&&!B.value,focused:E.value}),(0,a._)((0,o._)({},g),{default:function(t){var r=t.id,n=t.isDisabled,s=t.isDirty,c=t.isReadonly,d=t.isValid;return(0,l.createVNode)(u.VField,(0,l.mergeProps)({ref:A,style:{"--v-textarea-control-height":N.value},onClick:j,onMousedown:P,"onClick:clear":M,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},x,{id:r.value,active:O.value||s.value,centerAffix:1===F.value&&!B.value,dirty:s.value||e.dirty,disabled:n.value,focused:E.value,error:!1===d.value}),(0,a._)((0,o._)({},g),{default:function(t){var r=t.props.class,o=(0,i._)(t.props,["class"]);return(0,l.createVNode)(l.Fragment,null,[e.prefix&&(0,l.createVNode)("span",{class:"v-text-field__prefix"},[e.prefix]),(0,l.withDirectives)((0,l.createVNode)("textarea",(0,l.mergeProps)({ref:k,class:r,value:y.value,onInput:L,autofocus:e.autofocus,readonly:c.value,disabled:n.value,placeholder:e.placeholder,rows:e.rows,name:e.name,onFocus:D,onBlur:C},o,_),null),[[(0,l.resolveDirective)("intersect"),{handler:I},null,{once:!0}]]),e.autoGrow&&(0,l.withDirectives)((0,l.createVNode)("textarea",{class:[r,"v-textarea__sizer"],id:"".concat(o.id,"-sizer"),"onUpdate:modelValue":function(e){return y.value=e},ref:V,readonly:!0,"aria-hidden":"true"},null),[[l.vModelText,y.value]]),e.suffix&&(0,l.createVNode)("span",{class:"v-text-field__suffix"},[e.suffix])])}}))},details:r?function(r){var n;return(0,l.createVNode)(l.Fragment,null,[null===(n=g.details)||void 0===n?void 0:n.call(g,r),t&&(0,l.createVNode)(l.Fragment,null,[(0,l.createVNode)("span",null,null),(0,l.createVNode)(c.VCounter,{active:e.persistentCounter||E.value,value:T.value,max:w.value,disabled:e.disabled},g.counter)])])}:void 0}))}),(0,m.forwardRefs)({},R,A,k)}})},{"@swc/helpers/_/_object_spread":"j01jQ","@swc/helpers/_/_object_spread_props":"jpe5k","@swc/helpers/_/_object_without_properties":"d9YAZ","@swc/helpers/_/_sliced_to_array":"hvLP1",vue:"gHobw","./VTextarea.css":"3pbaz","../VTextField/VTextField.css":"1VPbA","../VCounter/VCounter.mjs":"iMVlv","../VField/index.mjs":"8223I","../VField/VField.mjs":"hCPVS","../VInput/VInput.mjs":"75G3q","../../composables/focus.mjs":"bmd72","../../composables/forwardRefs.mjs":"fZtSV","../../composables/proxiedModel.mjs":"7LrVW","../../directives/intersect/index.mjs":"2y8lH","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"3pbaz":[function(){},{}],"1VPbA":[function(){},{}],gmstT:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VThemeProvider",function(){return o.VThemeProvider});var o=e("./VThemeProvider.mjs")},{"./VThemeProvider.mjs":"1zQHT","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1zQHT":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVThemeProviderProps",function(){return u}),n.export(r,"VThemeProvider",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VThemeProvider.css");var i=e("../../composables/component.mjs"),s=e("../../composables/tag.mjs"),l=e("../../composables/theme.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({withBackground:Boolean},(0,i.makeComponentProps)(),(0,l.makeThemeProps)(),(0,s.makeTagProps)()),"VThemeProvider"),d=(0,c.genericComponent)()({name:"VThemeProvider",props:u(),setup:function(e,t){var r=t.slots,n=(0,l.provideTheme)(e).themeClasses;return function(){var t;return e.withBackground?(0,a.createVNode)(e.tag,{class:["v-theme-provider",n.value,e.class],style:e.style},{default:function(){var e;return[null===(e=r.default)||void 0===e?void 0:e.call(r)]}}):null===(t=r.default)||void 0===t?void 0:t.call(r)}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VThemeProvider.css":"cqmxi","../../composables/component.mjs":"c32AV","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],cqmxi:[function(){},{}],bcrx5:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTimeline",function(){return o.VTimeline}),n.export(r,"VTimelineItem",function(){return a.VTimelineItem});var o=e("./VTimeline.mjs"),a=e("./VTimelineItem.mjs")},{"./VTimeline.mjs":"6EzCq","./VTimelineItem.mjs":"iiePb","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"6EzCq":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTimelineProps",function(){return m}),n.export(r,"VTimeline",function(){return _});var o=e("@swc/helpers/_/_object_spread"),a=e("vue");e("./VTimeline.css");var i=e("../../composables/component.mjs"),s=e("../../composables/defaults.mjs"),l=e("../../composables/density.mjs"),c=e("../../composables/locale.mjs"),u=e("../../composables/tag.mjs"),d=e("../../composables/theme.mjs"),p=e("../../util/index.mjs"),f=e("./VTimelineItem.mjs"),m=(0,p.propsFactory)((0,o._)({align:{type:String,default:"center",validator:function(e){return["center","start"].includes(e)}},direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}},justify:{type:String,default:"auto",validator:function(e){return["auto","center"].includes(e)}},side:{type:String,validator:function(e){return null==e||["start","end"].includes(e)}},lineThickness:{type:[String,Number],default:2},lineColor:String,truncateLine:{type:String,validator:function(e){return["start","end","both"].includes(e)}}},(0,p.only)((0,f.makeVTimelineItemProps)({lineInset:0}),["dotColor","fillDot","hideOpposite","iconColor","lineInset","size"]),(0,i.makeComponentProps)(),(0,l.makeDensityProps)(),(0,u.makeTagProps)(),(0,d.makeThemeProps)()),"VTimeline"),_=(0,p.genericComponent)()({name:"VTimeline",props:m(),setup:function(e,t){var r=t.slots,n=(0,d.provideTheme)(e).themeClasses,o=(0,l.useDensity)(e).densityClasses,i=(0,c.useRtl)().rtlClasses;(0,s.provideDefaults)({VTimelineDivider:{lineColor:(0,a.toRef)(e,"lineColor")},VTimelineItem:{density:(0,a.toRef)(e,"density"),dotColor:(0,a.toRef)(e,"dotColor"),fillDot:(0,a.toRef)(e,"fillDot"),hideOpposite:(0,a.toRef)(e,"hideOpposite"),iconColor:(0,a.toRef)(e,"iconColor"),lineColor:(0,a.toRef)(e,"lineColor"),lineInset:(0,a.toRef)(e,"lineInset"),size:(0,a.toRef)(e,"size")}});var u=(0,a.computed)(function(){var t=e.side?e.side:"default"!==e.density?"end":null;return t&&"v-timeline--side-".concat(t)}),f=(0,a.computed)(function(){var t=["v-timeline--truncate-line-start","v-timeline--truncate-line-end"];switch(e.truncateLine){case"both":return t;case"start":return t[0];case"end":return t[1];default:return null}});return(0,p.useRender)(function(){return(0,a.createVNode)(e.tag,{class:["v-timeline","v-timeline--".concat(e.direction),"v-timeline--align-".concat(e.align),"v-timeline--justify-".concat(e.justify),f.value,{"v-timeline--inset-line":!!e.lineInset},n.value,o.value,u.value,i.value,e.class],style:[{"--v-timeline-line-thickness":(0,p.convertToUnit)(e.lineThickness)},e.style]},r)}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VTimeline.css":"b0Srs","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/density.mjs":"3HkdI","../../composables/locale.mjs":"8eTqB","../../composables/tag.mjs":"ceZPq","../../composables/theme.mjs":"iNuzC","../../util/index.mjs":"iWvvc","./VTimelineItem.mjs":"iiePb","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],b0Srs:[function(){},{}],iiePb:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTimelineItemProps",function(){return _}),n.export(r,"VTimelineItem",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("./VTimelineDivider.mjs"),s=e("../../composables/component.mjs"),l=e("../../composables/dimensions.mjs"),c=e("../../composables/elevation.mjs"),u=e("../../composables/icons.mjs"),d=e("../../composables/rounded.mjs"),p=e("../../composables/size.mjs"),f=e("../../composables/tag.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({density:String,dotColor:String,fillDot:Boolean,hideDot:Boolean,hideOpposite:{type:Boolean,default:void 0},icon:u.IconValue,iconColor:String,lineInset:[Number,String]},(0,s.makeComponentProps)(),(0,l.makeDimensionProps)(),(0,c.makeElevationProps)(),(0,d.makeRoundedProps)(),(0,p.makeSizeProps)(),(0,f.makeTagProps)()),"VTimelineItem"),h=(0,m.genericComponent)()({name:"VTimelineItem",props:_(),setup:function(e,t){var r=t.slots,n=(0,l.useDimension)(e).dimensionStyles,o=(0,a.shallowRef)(0),s=(0,a.ref)();return(0,a.watch)(s,function(e){var t,r;e&&(o.value=null!==(r=null===(t=e.$el.querySelector(".v-timeline-divider__dot"))||void 0===t?void 0:t.getBoundingClientRect().width)&&void 0!==r?r:0)},{flush:"post"}),(0,m.useRender)(function(){var t,l;return(0,a.createVNode)("div",{class:["v-timeline-item",{"v-timeline-item--fill-dot":e.fillDot},e.class],style:[{"--v-timeline-dot-size":(0,m.convertToUnit)(o.value),"--v-timeline-line-inset":e.lineInset?"calc(var(--v-timeline-dot-size) / 2 + ".concat((0,m.convertToUnit)(e.lineInset),")"):(0,m.convertToUnit)(0)},e.style]},[(0,a.createVNode)("div",{class:"v-timeline-item__body",style:n.value},[null===(t=r.default)||void 0===t?void 0:t.call(r)]),(0,a.createVNode)(i.VTimelineDivider,{ref:s,hideDot:e.hideDot,icon:e.icon,iconColor:e.iconColor,size:e.size,elevation:e.elevation,dotColor:e.dotColor,fillDot:e.fillDot,rounded:e.rounded},{default:r.icon}),"compact"!==e.density&&(0,a.createVNode)("div",{class:"v-timeline-item__opposite"},[!e.hideOpposite&&(null===(l=r.opposite)||void 0===l?void 0:l.call(r))])])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","./VTimelineDivider.mjs":"99EtX","../../composables/component.mjs":"c32AV","../../composables/dimensions.mjs":"969Er","../../composables/elevation.mjs":"jNJPe","../../composables/icons.mjs":"71CER","../../composables/rounded.mjs":"4CR7Z","../../composables/size.mjs":"2mSFo","../../composables/tag.mjs":"ceZPq","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"99EtX":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTimelineDividerProps",function(){return _}),n.export(r,"VTimelineDivider",function(){return h});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../VDefaultsProvider/index.mjs"),s=e("../VIcon/index.mjs"),l=e("../../composables/color.mjs"),c=e("../../composables/component.mjs"),u=e("../../composables/elevation.mjs"),d=e("../../composables/icons.mjs"),p=e("../../composables/rounded.mjs"),f=e("../../composables/size.mjs"),m=e("../../util/index.mjs"),_=(0,m.propsFactory)((0,o._)({dotColor:String,fillDot:Boolean,hideDot:Boolean,icon:d.IconValue,iconColor:String,lineColor:String},(0,c.makeComponentProps)(),(0,p.makeRoundedProps)(),(0,f.makeSizeProps)(),(0,u.makeElevationProps)()),"VTimelineDivider"),h=(0,m.genericComponent)()({name:"VTimelineDivider",props:_(),setup:function(e,t){var r=t.slots,n=(0,f.useSize)(e,"v-timeline-divider__dot"),o=n.sizeClasses,c=n.sizeStyles,d=(0,l.useBackgroundColor)((0,a.toRef)(e,"dotColor")),_=d.backgroundColorStyles,h=d.backgroundColorClasses,g=(0,p.useRounded)(e,"v-timeline-divider__dot").roundedClasses,b=(0,u.useElevation)(e).elevationClasses,y=(0,l.useBackgroundColor)((0,a.toRef)(e,"lineColor")),S=y.backgroundColorClasses,E=y.backgroundColorStyles;return(0,m.useRender)(function(){return(0,a.createVNode)("div",{class:["v-timeline-divider",{"v-timeline-divider--fill-dot":e.fillDot},e.class],style:e.style},[(0,a.createVNode)("div",{class:["v-timeline-divider__before",S.value],style:E.value},null),!e.hideDot&&(0,a.createVNode)("div",{key:"dot",class:["v-timeline-divider__dot",b.value,g.value,o.value],style:c.value},[(0,a.createVNode)("div",{class:["v-timeline-divider__inner-dot",h.value,g.value],style:_.value},[r.default?(0,a.createVNode)(i.VDefaultsProvider,{key:"icon-defaults",disabled:!e.icon,defaults:{VIcon:{color:e.iconColor,icon:e.icon,size:e.size}}},r.default):(0,a.createVNode)(s.VIcon,{key:"icon",color:e.iconColor,icon:e.icon,size:e.size},null)])]),(0,a.createVNode)("div",{class:["v-timeline-divider__after",S.value],style:E.value},null)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../VDefaultsProvider/index.mjs":"9aMue","../VIcon/index.mjs":"kpG2s","../../composables/color.mjs":"9gjsu","../../composables/component.mjs":"c32AV","../../composables/elevation.mjs":"jNJPe","../../composables/icons.mjs":"71CER","../../composables/rounded.mjs":"4CR7Z","../../composables/size.mjs":"2mSFo","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],g5nQl:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VToolbar",function(){return o.VToolbar}),n.export(r,"VToolbarTitle",function(){return a.VToolbarTitle}),n.export(r,"VToolbarItems",function(){return i.VToolbarItems});var o=e("./VToolbar.mjs"),a=e("./VToolbarTitle.mjs"),i=e("./VToolbarItems.mjs")},{"./VToolbar.mjs":"lxjiq","./VToolbarTitle.mjs":"dEDln","./VToolbarItems.mjs":"1x4Vu","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"1x4Vu":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVToolbarItemsProps",function(){return u}),n.export(r,"VToolbarItems",function(){return d});var o=e("@swc/helpers/_/_object_spread"),a=e("vue"),i=e("../../composables/component.mjs"),s=e("../../composables/defaults.mjs"),l=e("../../composables/variant.mjs"),c=e("../../util/index.mjs"),u=(0,c.propsFactory)((0,o._)({},(0,i.makeComponentProps)(),(0,l.makeVariantProps)({variant:"text"})),"VToolbarItems"),d=(0,c.genericComponent)()({name:"VToolbarItems",props:u(),setup:function(e,t){var r=t.slots;return(0,s.provideDefaults)({VBtn:{color:(0,a.toRef)(e,"color"),height:"inherit",variant:(0,a.toRef)(e,"variant")}}),(0,c.useRender)(function(){var t;return(0,a.createVNode)("div",{class:["v-toolbar-items",e.class],style:e.style},[null===(t=r.default)||void 0===t?void 0:t.call(r)])}),{}}})},{"@swc/helpers/_/_object_spread":"j01jQ",vue:"gHobw","../../composables/component.mjs":"c32AV","../../composables/defaults.mjs":"cYwla","../../composables/variant.mjs":"e5F3N","../../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],fJCZJ:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"VTooltip",function(){return o.VTooltip});var o=e("./VTooltip.mjs")},{"./VTooltip.mjs":"ijbxN","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ijbxN:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"makeVTooltipProps",function(){return f}),n.export(r,"VTooltip",function(){return m});var o=e("@swc/helpers/_/_object_spread"),a=e("@swc/helpers/_/_to_consumable_array"),i=e("vue");e("./VTooltip.css");var s=e("../VOverlay/index.mjs"),l=e("../VOverlay/VOverlay.mjs"),c=e("../../composables/forwardRefs.mjs"),u=e("../../composables/proxiedModel.mjs"),d=e("../../composables/scopeId.mjs"),p=e("../../util/index.mjs"),f=(0,p.propsFactory)((0,o._)({id:String,text:String},(0,p.omit)((0,l.makeVOverlayProps)({closeOnBack:!1,location:"end",locationStrategy:"connected",eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:"auto",scrim:!1,scrollStrategy:"reposition",transition:!1}),["absolute","persistent"])),"VTooltip"),m=(0,p.genericComponent)()({name:"VTooltip",props:f(),emits:{"update:modelValue":function(e){return!0}},setup:function(e,t){var r=t.slots,n=(0,u.useProxiedModel)(e,"modelValue"),o=(0,d.useScopeId)().scopeId,l=(0,p.getUid)(),f=(0,i.computed)(function(){return e.id||"v-tooltip-".concat(l)}),m=(0,i.ref)(),_=(0,i.computed)(function(){return e.location.split(" ").length>1?e.location:e.location+" center"}),h=(0,i.computed)(function(){return"auto"===e.origin||"overlap"===e.origin||e.origin.split(" ").length>1||e.location.split(" ").length>1?e.origin:e.origin+" center"}),g=(0,i.computed)(function(){return e.transition?e.transition:n.value?"scale-transition":"fade-transition"}),b=(0,i.computed)(function(){return(0,i.mergeProps)({"aria-describedby":f.value},e.activatorProps)});return(0,p.useRender)(function(){var t=(0,s.VOverlay).filterProps(e);return(0,i.createVNode)(s.VOverlay,(0,i.mergeProps)({ref:m,class:["v-tooltip",e.class],style:e.style,id:f.value},t,{modelValue:n.value,"onUpdate:modelValue":function(e){return n.value=e},transition:g.value,absolute:!0,location:_.value,origin:h.value,persistent:!0,role:"tooltip",activatorProps:b.value,_disableGlobalStack:!0},o),{activator:r.activator,default:function(){for(var t,n,o=arguments.length,i=Array(o),s=0;s0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;null==_||_(r,n),u&&a(e,t)});d&&(null==_||_([],g)),e._mutate=Object(e._mutate),e._mutate[t.instance.$.uid]={observer:g},g.observe(e,h)},unmounted:a};r.default=i},{"@swc/helpers/_/_object_without_properties":"d9YAZ","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],"8Mz4F":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Resize",function(){return o});var o={mounted:function(e,t){var r,n,o=t.value,a={passive:!(null===(r=t.modifiers)||void 0===r?void 0:r.active)};window.addEventListener("resize",o,a),e._onResize=Object(e._onResize),e._onResize[t.instance.$.uid]={handler:o,options:a},(null===(n=t.modifiers)||void 0===n?void 0:n.quiet)||o()},unmounted:function(e,t){if(null===(r=e._onResize)||void 0===r?void 0:r[t.instance.$.uid]){var r,n=e._onResize[t.instance.$.uid],o=n.handler,a=n.options;window.removeEventListener("resize",o,a),delete e._onResize[t.instance.$.uid]}}};r.default=o},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],g9n6W:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t){var r,n=(null!==(r=t.modifiers)&&void 0!==r?r:{}).self,o=void 0!==n&&n,a=t.value,i="object"==typeof a&&a.options||{passive:!0},s="function"==typeof a||"handleEvent"in a?a:a.handler,l=o?e:t.arg?document.querySelector(t.arg):window;l&&(l.addEventListener("scroll",s,i),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:s,options:i,target:o?void 0:l})}function a(e,t){if(null===(r=e._onScroll)||void 0===r?void 0:r[t.instance.$.uid]){var r,n=e._onScroll[t.instance.$.uid],o=n.handler,a=n.options,i=n.target;(void 0===i?e:i).removeEventListener("scroll",o,a),delete e._onScroll[t.instance.$.uid]}}n.defineInteropFlag(r),n.export(r,"Scroll",function(){return i});var i={mounted:o,unmounted:a,updated:function(e,t){t.value!==t.oldValue&&(a(e,t),o(e,t))}};r.default=i},{"@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],gFIl4:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"Tooltip",function(){return a});var o=e("../../components/VTooltip/index.mjs"),a=(0,e("../../composables/directiveComponent.mjs").useDirectiveComponent)(o.VTooltip,function(e){var t;return{activator:"parent",location:null===(t=e.arg)||void 0===t?void 0:t.replace("-"," "),text:"boolean"==typeof e.value?void 0:e.value}});r.default=a},{"../../components/VTooltip/index.mjs":"fJCZJ","../../composables/directiveComponent.mjs":"ew0N2","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],ew0N2:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"useDirectiveComponent",function(){return i});var o=e("vue"),a=e("../util/index.mjs");function i(e,t){var r,n=(r="string"==typeof e?(0,o.resolveComponent)(e):e,function(e,n,i){var s,l,c,u,d,p,f="function"==typeof t?t(n):t,m=null!==(d=null!==(u=null===(s=n.value)||void 0===s?void 0:s.text)&&void 0!==u?u:n.value)&&void 0!==d?d:null==f?void 0:f.text,_=(0,a.isObject)(n.value)?n.value:{},h=null!==(p=i.ctx===n.instance.$?null===(l=function(e,t){var r=new Set,n=function(t){var o=!0,a=!1,i=void 0;try{for(var s,l=t[Symbol.iterator]();!(o=(s=l.next()).done);o=!0){var c,u,d=s.value;if(d){if(d===e||d.el&&e.el&&d.el===e.el)return!0;r.add(d);var p=void 0;if(d.suspense?p=n([d.ssContent]):Array.isArray(d.children)?p=n(d.children):(null===(c=d.component)||void 0===c?void 0:c.vnode)&&(p=n([null===(u=d.component)||void 0===u?void 0:u.subTree])),p)return p;r.delete(d)}}}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}return!1};if(!n([t.subTree]))return(0,a.consoleError)("Could not find original vnode, component will not inherit provides"),t;var o=Array.from(r).reverse(),i=!0,s=!1,l=void 0;try{for(var c,u=o[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var d=c.value;if(d.component)return d.component}}catch(e){s=!0,l=e}finally{try{i||null==u.return||u.return()}finally{if(s)throw l}}return t}(i,n.instance.$))||void 0===l?void 0:l.provides:null===(c=i.ctx)||void 0===c?void 0:c.provides)&&void 0!==p?p:n.instance.$.provides,g=(0,o.h)(r,(0,o.mergeProps)(f,_),function(){return null!=m?m:e.textContent});g.appContext=Object.assign(Object.create(null),n.instance.$.appContext,{provides:h}),(0,o.render)(g,e)});return{mounted:n,updated:n,unmounted:function(e){(0,o.render)(null,e)}}}},{vue:"gHobw","../util/index.mjs":"iWvvc","@parcel/transformer-js/src/esmodule-helpers.js":"7qSmP"}],b6c4M:[function(){},{}]},["ee4LT"],"ee4LT","parcelRequiredcf9"); -//# sourceMappingURL=index.27c14863.js.map +//# sourceMappingURL=index.54261725.js.map diff --git a/docs/index.27c14863.js.map b/docs/index.54261725.js.map similarity index 69% rename from docs/index.27c14863.js.map rename to docs/index.54261725.js.map index 3c45037..8f4b486 100644 --- a/docs/index.27c14863.js.map +++ b/docs/index.54261725.js.map @@ -1 +1 @@ -{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,I,C,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,E,IC0De,EA7CX,E,E,E,kD,E,iB,C,G,E,M,C,E,a,WAoCS,OAAA,C,G,I,E,E,sC,E,E,iC,E,E,gCAjDb,EAAA,EAAA,OACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,sB,E,E,c,C,GAGA,EAAA,gCACA,IAAA,EAAA,EAAA,WACA,EAAA,EAAA,gDACA,EAAA,EAAA,0CACA,EAAA,EAAA,0CACA,EAAA,2BAIA,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,CAC5B,WAAA,EACA,WAAA,EACA,MAAO,CACL,WAAY,MACZ,QAAA,EAAA,OAAM,CACN,KAAM,CACJ,IAAA,EAAA,GAAE,AACJ,CACF,CACF,GAKM,EAAY,SAAC,CAAnB,EACE,IAAM,EAA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OACA,UAAA,WACA,UAAA,MACA,WAAA,EACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,GACA,WAAA,OACA,WAAA,MACA,WAAA,MACA,WAAA,OACA,WAAA,OACA,WAAA,WACA,WAAA,OACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,OACA,WAAA,OACA,WAAA,WACA,WAAA,MACA,WAAA,WACA,WAAA,WACA,WAAA,GACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,OACA,WAAA,EACA,WAAA,MACA,WAAA,WACA,WAAA,MACA,EACA,CACA,EAAA,IACA,QAAA,EACA,QAAA,UACA,QAAA,MACA,QAAA,MACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,SAAA,MACA,SAAA,UACA,SAAA,UACA,SAAA,MACA,SAAA,EACA,SAAA,IACA,OAAA,UACA,QAAA,UACA,QAAA,EACA,QAAA,UACA,QAAA,UACA,QAAA,MACA,QAAA,MACA,QAAA,IACA,QAAA,EACA,QAAA,IACA,SAAA,UACA,SAAA,MACA,SAAA,MACA,SAAA,UACA,SAAA,UACA,SAAA,UACA,UAAA,UACA,UAAA,MACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,MACA,UAAA,UACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,EACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,MACA,UAAA,UACA,UAAA,MACA,UAAA,UACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,KACA,EACA,CACA,EAAA,WACA,MAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,EACA,OAAA,QACA,OAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,QACA,OAAA,GACA,OAAA,WACA,OAAA,WACA,OAAA,KACA,OAAA,KACA,OAAA,WACA,MAAA,WACA,MAAA,GACA,OAAA,WACA,OAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,EACA,OAAA,WACA,OAAA,KACA,OAAA,WACA,OAAA,QACA,OAAA,KACA,OAAA,WACA,OAAA,QACA,OAAA,QACA,QAAA,WACA,QAAA,QACA,QAAA,QACA,QAAA,WACA,QAAA,EACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,QACA,QAAA,WACA,QAAA,QACA,QAAA,GACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,EACA,QAAA,QACA,QAAA,QACA,QAAA,WACA,QAAA,WACA,QAAA,GACA,QAAA,WACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,KACA,QAAA,WACA,QAAA,QACA,QAAA,OACA,EACA,CACA,EAAA,IACA,KAAA,UACA,KAAA,OACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,OACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,EACA,MAAA,UACA,MAAA,WACA,KAAA,UACA,KAAA,WACA,MAAA,IACA,MAAA,UACA,MAAA,OACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,EACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,OACA,MAAA,OACA,MAAA,IACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,OAAA,WACA,OAAA,UACA,OAAA,WACA,OAAA,OACA,OAAA,WACA,OAAA,EACA,OAAA,UACA,MAAA,WACA,MAAA,UACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,IACA,MAAA,WACA,OAAA,OACA,OAAA,WACA,OAAA,EACA,OAAA,WACA,OAAA,UACA,OAAA,OACA,OAAA,WACA,OAAA,UACA,EACA,CACA,EAAA,WACA,IAAA,KACA,IAAA,WACA,IAAA,WACA,KAAA,WACA,KAAA,QACA,KAAA,QACA,KAAA,WACA,KAAA,EACA,KAAA,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A,C,IACA,CAAA,CAAA,EAAA,CAAA,E,E,E,E,I,C,K,C,G,E,K,C,ECPA,MAAA,GAMA,IAHA,EAAA,EACA,EAAA,KAAA,GAAA,CAAA,EAAA,GACA,EAAA,EACA,GAAA,GACA,EAAA,EAAA,GAAA,CAAA,EAAA,QAAA,C,E,Q,G,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,KCNA,GAAA,AAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,EACA,IAAA,EAGA,OAAA,EAAA,GACA,KAAA,E,IACA,EAAA,E,E,I,E,E,G,G,E,E,G,C,E,Q,CCPA,EAAA,QAAA,GAAA,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,KCAA,GAAA,AAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,EACA,IAAA,CAGA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,GACA,EAAA,EAAA,EACA,I,K,M,E,I,E,E,E,M,E,E,G,G,E,E,G,C,E,Q,C,E,Q,G,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,K,G,A,C,E,E,E,C,E,E,I,CCNsC,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,GAEtC,EAAA,EAAA,E,I,K,M,E,O,E,I,C,G,C,G,G,I,E,K,G,C,E,G,K,C,C,E,C,E,C,C,E,K,C,G,I,E,O,K,E,E,E,M,C,E,C,E,I,C,G,C,C,I,C,E,E,M,C,G,I,E,E,G,I,E,K,G,C,E,G,I,C,C,E,O,C,G,A,M,I,C,E,A,C,W,O,C,C,E,I,C,E,E,E,E,G,C,E,O,C,C,C,E,Q;;0B,E,W,C,E,E,C,E,S,E,C,E,I,E,C,C,E,C,G,A,K,I,E,O,E,O,C,I,E,C,C,E,C,C,Q,C,C,E,O,C,C,E,C,I,C,E,O,C,E,E,O,C,G,E,O,A,C,E,C,C,S,C,E,I,E,G,E,U,C,W,O,E,O,A,E,W,O,C,E,O,E,C,C,E,C,E,C,G,C,E,E,C,C,S,C,C,C,E,I,I,K,E,E,C,C,E,I,C,E,C,C,E,I,O,c,C,E,E,C,W,C,E,I,C,C,E,A,E,E,E,C,C,W,G,A,U,O,W,O,W,G,C,O,I,E,A,S,gB,C,M,E,C,G,A,U,O,O,O,M,C,I,E,C,C,S,C,C,C,E,O,O,S,C,c,C,I,C,E,E,E,E,C,C,S,C,E,a,O,Q,O,W,E,O,c,C,E,O,W,C,C,M,Q,G,O,c,C,E,a,C,M,C,C,E,E,I,E,C,E,O;;wB,E,E,C,C,G,E,C,C,E,C,Q,W,O,C,C,G,E,A,E,e,E,qB,Q,C,E,G,E3BGI,EAAA,OAAA,CAAA,G,E,C,mC,Q,+B,Q,kC,O,E,C,M,C,S,C,C,C,C,C,E,I4BJA,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAyB,MAAM,CAEvD,EAAQ,oBAAuB,OAAO,CAAC,GACvC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,aAIH,EAAA,OAAA,CAAA,C,E,C,mB,Q,mB,Q,mB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAZA,EAAA,OAAA,CAAA,CACb,KAAM,SACN,KAAA,WACE,MAAO,CAAC,CACV,CACF,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,YAIE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA4CW,EA5CX,CAAU,MAAM,kBAAmB,IAAK,CAAA,EAAM,UAAU,I,E,CACtD,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA0CQ,EA1CR,CAAO,QAAQ,SAAS,aAAA,E,E,CACtB,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,uBAAuB,SAAS,K,E,CAC7B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,aACL,KAAK,4CACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,GAMd,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,yBAAyB,SAAS,K,E,CAC/B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,kBACL,KAAK,8CACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,GAMd,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,qBAAqB,SAAS,K,E,CAC3B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,mBACL,KAAK,sCACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,G,A,G,E,C,G,A,G,E,C,E,C,E,C,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GA7CL,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,I,C,E,E,C,I,C,E,E,C,I,C,E,E,C,Y,C,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,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A,EAAA,OAAI,AAAE,CACxD,C,E,C,sB,Q,yB,Q,yB,Q,0B,Q,uB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,ICrEI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAuB,MAAM,CAErD,EAAQ,oBAAqB,OAAO,CAAC,GACrC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,WAIH,EAAA,OAAA,CAAA,C,E,C,iB,Q,mB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GA8BA,EAAA,OAAA,CAAA,CACb,KAAM,gBAEN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,gBAAiB,CACf,KAAM,QACN,SAAU,CAAA,CACZ,CACF,EAEA,KAAA,WACE,MAAO,CAAC,CACV,CACF,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,gB,E,A,C,E,E,gB,A,E,c,E,A,C,E,E,gB,A,E,c,M,A,C,E,E,S,A,I,A,C,E,E,kB,A,E,E,Q,C,K,CA5DE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAOgB,EAPhB,CACW,WAAA,EAAA,MAAM,CAAC,IAAI,CAAX,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,MAAM,CAAC,IAAI,CAAX,CAAA,CAAA,EACR,QAAS,GACV,MAAM,aACN,SAAA,GACA,SAAA,GACC,SAAU,EAAA,eAAe,A,E,K,E,C,a,W,EAG5B,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMgB,EANhB,CACW,WAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAhB,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAhB,CAAA,C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EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,IAAI,CAAJ,CAAA,CAAA,EACR,UAAW,EAAA,WAAW,CACvB,eAAA,GACC,SAAU,EAAA,eAAe,A,E,K,E,C,a,Y,W,E,A,G,E,C,G,A,G,E,C,E,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAnBnB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,2B,E,A,C,E,E,gB,A,E,gB,E,A,C,E,E,gB,A,E,0B,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,W,E,A,C,E,E,gB,A,E,iB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,sBDJE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAuGqB,EAvGrB,CAAoB,QAAQ,YAAY,MAAA,CAAA,YAAA,OAAA,C,E,CACtC,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAgBoB,EAhBpB,KAAA,CACE,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAM0B,EAN1B,KAAA,CAGmB,QAAO,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACtB,WADe,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAA2B,EAA3B,KAAA,CAAQ,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,c,A,C,G,E,C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AA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,gB,A,C,G,E,C,GAAqB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,sBAAA,E,A,G,E,C,G,C,G,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAnGvB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IyKJI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAA2B,MAAM,CAEzD,EAAQ,oBAAyB,OAAO,CAAC,GACzC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,eAIH,EAAA,OAAA,CAAA,C,E,C,mB,Q,iB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAKf,IAAA,EAAA,EAAA,iBAEe,CAAA,EAAA,OAAA,CAAA,CACb,KAAM,oBAEN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,SAAU,CAAA,CACZ,CACF,EAEA,KAAA,WACE,MAAO,CACL,IAAK,OAAO,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAa,UACvD,CACF,EAEA,QAAS,CACP,QAAA,WACE,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,EAAgB,IAAI,CAAC,GAAG,CAC1B,CACF,CACF,C,E,C,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,WAxCE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAaU,EAbV,CACE,SAAA,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AA,SAAA,CAAL,EAAO,OAAA,EAAA,WAAW,CAAlB,EAAA,CAAA,C,E,CACA,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,oB,A,C,G,E,C,E,E,A,C,E,E,kB,A,E,G,C,G,A,G,E,C,E,E,C,a,c,iB,W,E,A,G,E,C,G,A,G,E,C,GAOX,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAoC,EAAA,CAAzB,MAAM,MAAjB,GACA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAGQ,EAHR,CAAO,KAAK,sCAAsC,OAAO,Q,E,CACvD,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAkC,EAAA,CAA1B,KAAA,EAAR,EAAA,CAAa,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,gB,A,C,G,E,C,GAAqB,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,sBAAA,E,A,G,E,C,G,C,G,C,E,C,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GApDvB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O7KyEY,EAAA,CAAA,MAAM,gDAAN,E,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,mB,E,A,C,E,E,gB,A,E,Y,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,Q,E,A,C,E,E,gB,A,E,iB,E,A,C,E,E,gB,A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iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCrGA,EAAA,MAAA,CAAA,EAAA,MAAA,WAAS,OAAA,EAAA,OAAG,A,GAAZ,EAAA,MAAA,CAAA,EAAA,KAAA,WAAc,OAAA,EAAA,OAAE,A,GAAhB,EAAA,MAAA,CAAA,EAAA,KAAA,WAAkB,OAAA,EAAA,OAAE,A,GAApB,EAAA,MAAA,CAAA,EAAA,IAAA,WAAsB,OAAA,EAAA,OAAC,A,GAAvB,EAAA,MAAA,CAAA,EAAA,IAAA,WAAyB,OAAA,EAAA,OAAC,A,GAA1B,EAAA,MAAA,CAAA,EAAA,IAAA,WAA4B,OAAA,EAAA,OAAC,A,GAP7B,IAAA,EAAA,EAAA,8B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,E,E,C,6B,Q,4B,Q,4B,Q,2B,Q,2B,Q,2B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCLe,EAAA,OAAA,CAAA,kI,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,oB,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,yP,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,2+D,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,w+E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,0D,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IEUH,EAOA,EAPA,EAOA,E,E,E,kD,E,iB,C,GAmIZ,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GAAA,EAAA,MAAA,CAAA,EAAA,aAAA,W,O,E,U,A,GAAA,EAAA,MAAA,CAAA,EAAA,kBAAA,W,O,E,e,A,GAAA,EAAA,MAAA,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CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EA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,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW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AAQ,qBACrC,EAAK,gBAAgB,CAAC,OAAQ,EAAQ,qBACtC,EAAK,gBAAgB,CAAC,OAAQ,EAAQ,qBACtC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBACxC,EAAK,gBAAgB,CAAC,KAAM,EAAQ,qBACpC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBACxC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBAExC,EAAK,WAAW,CAAG,EACnB,EAAK,OAAO,CAAG,EACf,EAAO,OAAO,CAAG,C,E,C,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,iB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,kB,Q,iB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,kB,Q,mB,Q,iB,Q,mB,Q,gB,Q,iB,Q,kB,Q,gB,Q,gB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,kB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,e,Q,mB,Q,iB,Q,mB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,kB,Q,mB,Q,mB,Q,mB,Q,gB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,gB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,kB,Q,iB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,kB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,kB,Q,mB,Q,kB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,gB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,mB,Q,iB,Q,gB,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,e,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,gB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,iB,Q,mB,Q,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,QAAS,KACT,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,QAAS,KACT,UAAW,CACb,EAEA,CACE,UAAW,SACX,MAAO,sBACP,IAAK,IACL,QAAS,KACT,UAAW,CACb,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACT,UAAW,CACb,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC+DA,EAAO,OAAO,CAhJd,SAAsB,CAAI,EACxB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,2BACX,EAAc,EAAM,MAAM,CAC9B,EACA,EAAM,MAAM,CAAC,OAAQ,EAAU,OAsEjC,MAAO,CACL,KAAM,eACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,QA/Da,CACf,KACA,QACA,OACA,QACA,QACA,QACA,WACA,UACA,SACA,KACA,UACA,OACA,OACA,UACA,QACA,UACA,MACA,WACA,MACA,KACA,aACA,SACA,KACA,UACA,aACA,YACA,WACA,KACA,YACA,SACA,MACA,WACA,UACA,UACA,YACA,SACA,SACA,MACA,SACA,QACA,SACA,OACA,QACA,MACA,SACA,MACA,MACA,OACA,QACA,OACD,CAaG,QAZa,CACf,OACA,QACA,OACA,YACD,AAQC,EACA,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,aAAa,CAClB,CACE,MAAO,CACL,YACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,CACL,2CACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,UAAW,OACX,cAAe,iBACf,IAAK,IACL,SAAU,CAAE,QAAS,gBAAiB,CACxC,EACA,CACE,cAAe,WACf,IAAK,OACL,WAAY,CAAA,EACZ,QAAS,KACT,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,UAAW,gBAAiB,GAC5D,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA1HX,CACxB,UAAW,WACX,MAAO,SACP,IAAK,EACL,UAAW,EACb,EAuHW,AACH,EACA,CAAE,MAAO,EAAM,MAAM,CAAC,OAhII,iCAgI+B,EAC1D,AACH,EACA,EAAK,YAAY,CAClB,CACD,QAAS,GACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkHA,EAAO,OAAO,CApPd,SAAa,CAAI,EAKf,IAAM,EAAa,cACb,EAAc,YAAc,EAU5B,EAAW,4BAGX,EAAa,gBAGb,EAAW,EAAK,OAAO,CAAC,KAAM,KAK9B,EAAY,CAIhB,MAAO,YACP,IAAK,sBAGL,QAAS,EACT,SAAU,CACR,CAGE,cAAe,0BACf,WAAY,CAAA,CACd,EACA,CAEE,UAAW,UACX,cAAe,sEACjB,EACA,CACE,UAAW,OACX,MAAO,EACP,WAAY,CAAA,EACZ,UAAW,CACb,EACD,AACH,EA4EA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QA9Ea,CACf,QACA,OACA,MACA,SACA,MACA,QACA,MACA,UACA,WACA,MACA,SACA,QACA,SACA,SACA,YACA,KACA,WACA,UACA,OACA,KACA,OACA,MACA,SACA,UACA,MACA,MACA,MACA,eACA,QACA,WACA,aACA,KACA,SACA,UACA,UACA,OACA,QACA,OACA,SACA,YACA,OACA,UACA,OACA,KACA,YACA,OACA,OACA,KACA,YACA,WACA,YACA,KACA,QACA,MACA,UACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,MACA,QACA,SACA,UACA,OACA,KACA,MACA,UACA,MACD,CAOG,QAAS,CACP,OACA,QACD,AACH,EACA,SAAU,CACR,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EAEA,CAEE,UAAW,SACX,MAAO,KACT,EACA,CAEE,UAAW,SACX,MAvJY,OAFO,EAAA,oBAAqF,EAE5F,MANS,CAAA,EAAa,OAAS,CAAA,EAAtB,MAAgD,EAMzD,MAwJZ,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,IAAM,CACf,EACA,CAEE,UAAW,QACX,MAAO,8DACP,IAAK,SACL,SAAU,eACV,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,CACX,EACA,CAGE,MAAO,yDACP,IAAK,sCACL,SAAU,uDAGV,YAAa,CAAA,EACb,SACQ,CACE,EACA,CAEE,UAAW,QACX,MAAO,4CACP,IAAK,eACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,CACX,EAGA,EACA,CAEE,UAAW,OACX,MAAO,gBACP,IAAK,aACL,SAAU,SACV,aAAc,CAAA,EACd,WAAY,CAAA,EAEZ,WAAY,CAAA,EACZ,QAAS,CAEX,EACD,AACX,EACA,CAGE,UAAW,OACX,MAAO,oBACP,IAAK,OACL,SAAU,OACV,aAAc,CAAA,EACd,QAAS,CACX,EAGA,EAOD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECrFA,EAAO,OAAO,CAzKd,SAAqB,CAAI,EACvB,IAAM,EAAkB,CACtB,UAAW,WACX,MAAO,yHACT,EAEM,EAAmB,CACvB,UAAW,SACX,MAAO,gBACT,EAEM,EAAc,CAClB,UAAW,UACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EACA,EACD,AACH,SAEA,EAAgB,QAAQ,CAAG,CAAE,EAAa,CAC1C,EAAiB,QAAQ,CAAG,CAAE,EAAa,CAmDpC,CACL,KAAM,cACN,QAAS,CAAE,MAAO,CAElB,SArDe,CACf,MACA,OACA,QACA,WACA,QACA,OACA,SACA,KACA,OACA,OACA,SACA,YACA,KACA,OACA,KACA,MACA,MACA,MACA,QACA,KACA,WACA,MACA,WACA,QACA,UACA,SACA,QACA,YACA,QACA,SACA,WACA,WACA,OACA,UACA,UACA,OACA,QACA,SACA,OACA,YACA,aACA,MACA,QACA,YACA,WACA,WACD,CASC,QAAS,uDAET,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,UAAW,CACb,EAGA,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,UAAW,CACb,EAEA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAEzB,CACE,UAAW,SACX,MAAO,WACP,IAAK,KACP,EAEA,CACE,cAAe,sBACf,IAAK,KACL,QAAS,UACT,SAAU,CACR,CACE,UAAW,SACX,MAAO,eACT,EACD,AACH,EAEA,CACE,cAAe,QACf,IAAK,KACL,QAAS,UACT,SAAU,CACR,CACE,UAAW,SACX,MAAO,gBACP,SAAU,CACR,CACE,MAAO,WACP,SAAU,CACR,CACE,UAAW,SACX,MAAO,eACT,EACD,AACH,EACD,AACH,EACD,AACH,EAEA,EACA,EAEA,CACE,UAAW,UACX,MAAO,sBACT,EAEA,CACE,UAAW,SACX,UAAW,EACX,MAAO,oFACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3EA,EAAO,OAAO,CAzFd,SAAgB,CAAI,EASlB,IAAM,EAAa,CACjB,UAAW,SACX,MAAO,+CACT,EAKA,MAAO,CACL,KAAM,gBACN,QAAS,CAAE,aAAc,CACzB,iBAAkB,CAAA,EAClB,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,UAAW,UACX,MAAO,OACP,IAAK,IACL,SAAU,CACR,EAfY,CAClB,UAAW,SACX,MAAO,UACT,EAgBQ,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,CAAE,GACrD,AACH,EACA,CACE,UAAW,YACX,MAAO,MACP,UAAW,EAGX,SAAU,CAAE,EAAG,CACb,QACA,OACA,QACA,SACA,cACA,gBACA,cACA,eACA,aACA,gBACA,aACA,UACA,SACA,SACA,aACA,aACD,AAAC,EACF,OAAQ,CACN,IAAK,IACL,UAAW,EACX,SAAU,CAAE,QAAS,uBAAwB,EAC7C,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,IAAK,KACP,EACA,CACE,UAAW,WACX,MAAO,UACP,IAAK,KACL,SAAU,CACR,OAzEK,CACjB,UAAW,SACX,MAAO,SACT,EAwEa,AACH,EACA,EAzEK,CACb,UAAW,SACX,MAAO,OACT,EAwEU,EAAK,iBAAiB,CACvB,AACH,CACF,EACD,CACD,QAAS,IACX,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC5FA,IAAA,EAAA,EAAA,sCA8IA,CAAA,EAAO,OAAO,CA3Id,SAAqB,CAAI,EACvB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAS,EAAK,OAAO,CACzB,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GACpC,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACR,OACA,EAAK,aAAa,CAClB,EACD,AACH,EACM,EAAiB,EAAK,OAAO,CAAC,KAAM,KACpC,EAAiB,EAAK,OAAO,CACjC,OACA,OACA,CAAE,SAAU,CACV,OACA,EACD,AAAC,GAEE,EAAW,CACf,EACA,EACA,EAAK,iBAAiB,CACvB,CA4CD,MAAO,CACL,KAAM,cACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,QACE,0iBAUF,QACE,mEACF,SACE,sUAOJ,EACA,SAAU,CACR,EACA,EAAK,aAAa,CAClB,CACE,UAAW,WACX,MAAO,EAAM,MAAM,CACjB,KACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1DK,CACxB,iBACA,gBACA,WACA,sBACA,eACA,UACA,0BACA,gBACA,eACA,kBACA,sBACA,gBACA,aACA,mBACA,cACA,cACA,0BACA,uBACA,2BACA,mBACA,oFACA,yBACD,GAoCO,KAEJ,EACA,CACE,UAAW,WACX,MAAO,cACT,EACA,CACE,UAAW,UACX,MACE,8DACJ,EACA,CACE,UAAW,UACX,MAAO,EAAM,MAAM,CACjB,KACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA5FI,CACvB,aACA,aACA,aACA,SACA,eACA,kEACA,kCACA,8BACA,eACA,uBACA,oBACA,oBACA,qBACA,cACD,GA8EO,KAEJ,EACA,CACE,cAAe,KACf,QAAS,WACT,SAAU,CACR,EAAK,qBAAqB,CAC1B,EACD,AACH,EAED,CArCS,MAAA,CAoCR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEL,QAAS,iBACX,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5IA,IAAA,EAAA,EAAA,sCA0ZA,CAAA,EAAO,OAAO,CAvZd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,yBACX,EAAW,CACf,QAAS,CACP,QACA,OACA,QACA,WACA,WACA,KACA,OACA,SACA,MACA,WACA,KACA,SACA,KACA,MACA,SACA,SACA,MACA,MACA,OACA,QACD,CACD,QAAS,CACP,YACA,cACA,eACA,WACA,MACA,UACA,KACA,cACA,MACA,iBACA,QACA,OACA,OACA,YACD,CACD,SAAU,CACR,MACA,OACA,MACA,QACA,MACA,OACA,eACA,QACA,OACA,OACA,QACA,cACA,UACA,OACA,UACA,UACA,SACA,iBACA,OACA,WACA,iBACA,OACA,cACA,UACA,YACA,WACA,mBACA,aACA,MACA,QACA,UACA,MACA,SACA,UACA,WACA,WACA,MACA,SACA,eACA,UACA,kBACA,aACA,aACA,WACA,WACA,mBACA,WACA,SACA,aACA,aACA,qBACA,SACA,QACA,MACA,UACA,SACA,UACA,aACA,0BACA,iBACA,mBACA,yBACA,gCACA,+BACA,SACA,OACA,UACA,QACA,eACA,gBACA,WACA,QACA,aACA,aACA,WACA,iBACA,gBACA,oBACA,UACA,UACA,OACA,SACA,WACA,OACA,OACA,MACA,WACA,UACA,aACA,UACA,WACA,UACA,SACA,eACA,aACA,UACA,QACA,qBACA,WACA,SACA,SACA,WACA,iBACA,MACA,QACA,MACA,MACA,OACA,MACA,cACA,MACA,SACA,QACA,wBACA,aACA,oBACA,gBACA,oBACA,OACA,MACA,SACA,SACA,UACA,WACA,QACA,UACA,WACA,MACA,SACA,MACA,SACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,kBACA,SACA,QACA,SACA,SACA,cACA,WACA,MACA,QACA,OACA,SACA,QACA,OACA,kBACA,QACA,cACA,cACA,WACA,MACA,sBACA,MACA,OACA,OACA,WACA,iBACA,YACA,aACA,cACA,QACA,UACA,QACA,QACA,QACA,UACA,sBACA,0BACA,2BACA,uBACA,oBACA,mBACA,kBACA,sBACA,gBACA,mBACA,sBACA,aACA,eACA,mBACA,iBACA,cACA,OACA,SACA,QACA,QACA,YACA,WACA,OACA,UACA,SACA,SACA,SACD,AACH,EAiCM,EAAS,CACb,UAAW,SACX,MAAO,MAAQ,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAlCT,CACnB,qBACA,WACA,SACA,YACA,YACA,cACA,UACA,aACA,cACA,eACA,wBACA,OACA,QACA,iBACA,MACA,UACA,UACA,kBACA,SACA,YACA,WACA,kBACA,gBACA,cACA,SACA,kBACA,gBACA,cACA,QACA,OACD,EAID,EACM,EAAS,CACb,UAAW,SACX,SAAU,CACR,CAAE,MAAO,iBAAkB,EAC3B,CAAE,MAAO,kBAAmB,EAC5B,CAAE,MAAO,EAAK,WAAW,AAAC,EAC3B,CACD,UAAW,CACb,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,SACP,IAAK,MACL,SAAU,EACV,SAAU,EAAE,AACd,EACM,EAAkB,CACtB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,CACA,CAAA,EAAM,QAAQ,CAAG,CACf,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EACA,EAAK,WAAW,CACjB,CACD,IAAM,EAAkB,EAAM,QAAQ,CAAC,MAAM,CAAC,CAC5C,EAAK,oBAAoB,CACzB,EAAK,mBAAmB,CACzB,EAED,MAAO,CACL,KAAM,gBACN,iBAAkB,CAAA,EAClB,SAAU,EACV,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EACA,EACA,CACE,MAAO,UACP,UAAW,EACX,SAAU,CACR,CACE,MAAO,EAAW,QAClB,YAAa,CAAA,EACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACA,CACE,MAAO,IAAM,EAAK,cAAc,CAAG,uBACnC,SAAU,SACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,WAAW,CAChB,CACE,UAAW,WACX,MAAO,cAAgB,EAAW,UAClC,YAAa,CAAA,EACb,IAAK,SACL,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,CAAS,EAClB,CAAE,MAAO,SAAU,EACnB,CACE,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,EACV,SAAU,CACZ,EACD,AACH,EACD,AACH,EACD,CACD,UAAW,CACb,EACA,CACE,cAAe,WACf,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,UAAW,iBACX,MAAO,CACT,GACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACZ,EACD,CACD,QAAS,MACX,EACA,CAAE,MAAO,QAAS,EACnB,CACD,QAAS,QACX,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC1ZA,IAAA,EAAA,EAAA,sCAy+BA,CAAA,EAAO,OAAO,CAzYd,SAAiB,CAAI,EAgXnB,IA58BM,EAIA,EACA,EACA,EAEA,EAMA,EAQA,EAqBA,EA6CA,EAsBA,EAMA,EA6RA,EAQA,EAiBA,EAUA,EA+BA,EAyfA,GA58BA,EAAQ,AA48BY,EA58BP,KAAK,CAIlB,EAAsB,AAw8BF,EAx8BO,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAEhF,EAAe,kBAEf,EAAmB,eAHnB,EAAmB,sBAIF,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAEI,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACT,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,AA+6BQ,EA/6BH,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,AAw6BsB,EAx6BjB,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBF,EAEA,CAAE,MACA,6JAcF,EACD,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACwC,EAC5C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,AAw2BsB,EAx2BjB,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,AAk2BsB,EAl2BjB,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,AA41Bd,EA51BmB,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,AAw1B5B,EAx1BiC,QAAQ,CAAG,UAgUhE,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,QAAA,CArDI,EAAe,CACnB,KAhMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,SACD,CAgLC,QA5RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,SACD,CAqMC,QAde,CACf,OACA,QACA,UACA,UACA,OACD,CASC,SANe,CAAE,UAAW,CAO5B,YAjLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,eACD,AA0HD,EAgDE,SAAU,CA7BN,EAAsB,CAjBtB,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MA/HmB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,WACD,AA0ByB,EACxB,MAAO,EAAM,MAAM,CACjB,KACA,eACA,SACA,UACA,aACA,YACA,AAsiBsB,EAtiBjB,QAAQ,CACb,EAAM,SAAS,CAAC,oBACpB,EAIE,EACA,EACA,EACA,AA6hBwB,EA7hBnB,oBAAoB,CACzB,EACA,EACD,EAqB+B,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAY,CACxB,UAAW,CACb,EAGA,CACE,MAAO,KACP,UAAW,CACb,EAEA,CACE,MAAO,IACP,eAAgB,CAAA,EAChB,SAAU,CACR,EACA,EACD,AACH,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,AAwckB,EAxcb,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,AA2bc,EA3bT,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,AAibsB,EAjbjB,oBAAoB,CACzB,EACD,AACH,EAEO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,MACD,CACD,SAAU,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAW,EACpD,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAU,EACV,SAAU,CACR,OACA,EACD,AACH,EACA,CACE,MAAO,AA6YW,EA7YN,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,MAAO,CAEL,wDACA,MACA,MACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACD,CACL,GA+XM,EAAyC,EAAQ,QAAQ,CAoB/D,OAlBA,EAAI,IAAI,CAAG,AACT,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,IAAI,EAAA,MAAA,CACX,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EApXM,CACJ,UACA,OACA,OACA,SACD,GAiXH,EAAI,OAAO,CAAG,AACZ,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,OAAO,EAAA,MAAA,CACd,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAjCS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,MACD,GAeH,EAAI,QAAQ,CAAG,AACb,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,QAAQ,EAAA,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtXU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,KACD,GAgUH,EAAI,MAAM,CA/TA,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACD,CA0CH,EAAQ,IAAI,CAAG,UACf,EAAQ,OAAO,CAAG,CAAE,MAAO,CAC3B,EAAQ,UAAU,CAAG,MAEd,CACT,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECh3BA,EAAO,OAAO,CAnHd,SAAgB,CAAI,EAGlB,IAAM,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,gBAAiB,IAAK,CACjC,UAAW,EACX,aAAc,CAAA,CAChB,GACA,EAAK,OAAO,CAAC,OAAQ,IAAK,CAAE,UAAW,CAAE,GACzC,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AAAC,EAEF,MAAO,CACL,KAAM,eACN,iBAAkB,CAAA,EAClB,QAAS,CAAE,MAAO,CAClB,SAAU,CACR,SAAU,OAAS,EAAK,QAAQ,CAChC,KAEE,6tBAGF,SACE,6jCAsBJ,EACA,SAAU,CACR,CACE,UAAW,UACX,MAAO,4tBAkBT,EACA,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,UAAW,CACb,EACA,CACE,UAAW,QACX,MAAO,MACP,IAAK,MACL,QAAS,MACT,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,mBAAoB,EAC7B,CACE,MAAO,eAAgB,EACzB,CACE,MAAO,WAAY,EACrB,CACE,MAAO,SAAU,EACpB,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,uCAAwC,EACjD,CACE,MAAO,+BAAgC,EACzC,CACE,MAAO,UAAW,EACrB,CACD,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuHA,EAAO,OAAO,CAxOd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAQlB,EAAc,EAAM,MAAM,CAAC,OAAA,YAAA,KAAa,EAAM,QAAQ,CAAC,OAAA,mBAAA,MAAqB,OAAlF,kBAAA,MACM,EAAe,OAArB,mBAAA,KACM,EAAe,CACnB,UAAW,SACX,MAAO,kCACT,EACM,EAAoB,CACxB,MAAO,KACP,SAAU,CACR,CACE,UAAW,UACX,MAAO,sBACP,QAAS,IACX,EACD,AACH,EACM,EAAwB,EAAK,OAAO,CAAC,EAAmB,CAC5D,MAAO,KACP,IAAK,IACP,GACM,EAAwB,EAAK,OAAO,CAAC,EAAK,gBAAgB,CAAE,CAAE,UAAW,QAAS,GAClF,EAAyB,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,QAAS,GACpF,EAAgB,CACpB,eAAgB,CAAA,EAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAc,AAC5B,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAc,AAC5B,EACA,CAAE,MAAO,cAAe,EACzB,AACH,EACD,AACH,EACD,AACH,EACA,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,MACD,CACD,iBAAkB,CAAA,EAClB,aAAc,CAAA,EACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACR,EACA,EACA,EACA,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,EACD,AACH,EACD,AACH,EACA,EAAK,OAAO,CACV,OACA,MACA,CAAE,UAAW,EAAG,GAElB,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACb,EACA,EAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACR,EACD,AACH,EACA,CACE,MAAO,mBACT,EACD,AAEH,EACA,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,KAAM,OAAQ,EAC1B,SAAU,CAAE,EAAe,CAC3B,OAAQ,CACN,IAAK,YACL,UAAW,CAAA,EACX,YAAa,CACX,MACA,MACD,AACH,CACF,EACA,CACE,UAAW,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CP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,MACP,IAAK,UACL,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACD,CACD,UAAW,EACb,EACD,CACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5BA,EAAO,OAAO,CA5Nd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,CACf,QACA,eACA,MACA,WACA,QACA,UACA,OACA,UACA,SACA,OACA,KACA,QACA,MACA,OACA,QACA,OACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,SACA,OACA,OACA,OACA,UACA,aACA,QACA,YACA,MACA,QACA,aACA,OACA,QACA,WACA,OACA,SACA,QACA,UACA,UACA,SACA,SACA,MACA,OACA,SACA,WACA,SACA,aACA,WACA,kBACA,UACA,aACA,QACA,iBACA,oBACA,uBACA,aACA,SACA,SACA,YACA,oBACA,UACA,gBACA,0BACA,mCACA,UACA,UACA,UACA,QACA,OACA,aACA,qBACD,CACK,EAAY,CAChB,MACA,MACA,OACA,OACD,CAED,MAAO,CACL,KAAM,UACN,SAAU,EACV,QAAS,QACT,SAAU,CACR,EAAK,OAAO,CACV,SACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAEF,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,QACX,cAAe,SACf,IAAK,QACL,WAAY,CAAA,EACZ,QAAS,YACT,SAAU,CACR,CAAE,cAAe,uFAAwF,EACzG,EAAK,qBAAqB,CAC1B,CACE,MAAO,WACP,IAAK,OACL,SAAU,EAAS,MAAM,CAAC,GAC1B,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,QACX,cAAe,kBACf,IAAK,QACL,WAAY,CAAA,EACZ,UAAW,EACX,S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A7FiB,CACnB,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAjEK,CACjB,YACA,WACA,WACA,aACA,UACA,eACA,aACA,wBACA,SACA,SACA,eACA,WACA,UACA,kBACD,AAkDiC,EAChC,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,CACE,cAAe,UACf,SAAU,CAAE,QAAS,SAAU,EAC/B,IAAK,IACL,SAAU,CACR,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACD,AACH,EACA,EACA,EACD,AACH,EAEiB,CACf,UAAW,SAKX,MAAO,aACT,EAqCI,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EClGA,EAAO,OAAO,CArEd,SAAgB,CAAI,EAClB,MAAO,CACL,KAAM,eACN,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,OAAS,EAAK,QAAQ,CAChC,QAEE,mgBAOF,SAEE,6xBAWF,KACE,oHAEJ,EACA,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EAAK,aAAa,CAClB,EAAK,kBAAkB,CACvB,CACE,UAAW,SACX,MAAO,+BACT,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,QAAS,aACX,EACA,CACE,UAAW,SACX,MAAO,mBACT,EACA,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACA,CACE,UAAW,QACX,MAAO,SACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECRA,EAAO,OAAO,CA1Dd,SAAa,CAAI,EA6Cf,MAAO,CACL,KAAM,MACN,SAAU,CAAE,QAvCG,6FAuCe,EAC9B,SAAU,CA/CK,CACf,UAAW,WACX,SAAU,CACR,CAAE,MAAO,oBAAqB,EAC9B,CAAE,MAAO,aAAc,EACxB,AACH,EAEe,CACb,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACb,EACA,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACb,EACA,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,UACP,IAAK,GACP,EACA,CACE,MAAO,UACP,IAAK,GACP,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EAOI,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC0HA,EAAO,OAAO,CAlLd,SAAgB,CAAI,EAClB,IAAM,EAAW,EAAK,mBAAmB,CAmInC,EAAW,CACf,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,QACD,CAIC,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,MACD,CAmHC,QAjHuB,CACvB,UACA,QACA,OACA,OACD,AA6GD,EAsBA,MAAO,CACL,KAAM,MACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EAlCqB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,uBACA,EACA,6BACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,WACA,EACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAkBG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnLA,IAAA,EAAA,EAAA,sCAgZA,CAAA,EAAO,OAAO,CA7Yd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAM,CAAC,EAYb,OAAO,MAAM,CAAC,EAAK,CACjB,UAAW,WACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CAAC,qBAGnB,sBAAsB,EAjBV,CACjB,MAAO,OACP,IAAK,KACL,SAAU,CACR,OACA,CACE,MAAO,KACP,SAAU,CAAE,EAAK,AACnB,EACD,AACH,EASG,AACH,GAEA,IAAM,EAAQ,CACZ,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAU,EAAK,OAAO,CAC1B,EAAK,OAAO,GACZ,CACE,MAAO,CACL,SACA,OACD,CACD,MAAO,CACL,EAAG,SACL,CACF,GAEI,EAAW,CACf,MAAO,iBACP,OAAQ,CAAE,SAAU,CAClB,EAAK,iBAAiB,CAAC,CACrB,MAAO,QACP,IAAK,QACL,UAAW,QACb,GACD,AAAC,CACJ,EACM,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,EAAM,QAAQ,CAAC,IAAI,CAAC,GAYpB,IAAM,EAAa,CACjB,MAAO,UACP,IAAK,OACL,SAAU,CACR,CACE,MAAO,gBACP,UAAW,QACb,EACA,EAAK,WAAW,CAChB,EACD,AACH,EAYM,EAAgB,EAAK,OAAO,CAAC,CACjC,OAAS,IAA4B,MAAA,CAAzB,0CAAyB,KACrC,UAAW,EACb,GACM,EAAW,CACf,UAAW,WACX,MAAO,4BACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,YAAa,GAAI,CACpE,UAAW,CACb,EA4PA,MAAO,CACL,KAAM,OACN,QAAS,CACP,KACA,MACD,CACD,SAAU,CACR,SAAU,wBACV,QAlQa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,QACA,KACA,KACA,OACA,OACA,OACA,WACA,SACD,CAmPG,QAjPa,CACf,OACA,QACD,CA+OG,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EA1OkB,CACtB,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,QACD,EAuNQ,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtNiB,CACrB,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,OACA,UACA,SACA,UACD,EA6La,CAIR,MACA,QAGD,CAFC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAjMgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,OACD,EA6HK,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA3HiB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,MACD,EAqBC,EACA,SAAU,CACR,EACA,EAAK,OAAO,GACZ,EACA,EACA,EACA,EA5Pc,CAAE,MAAO,gBAAiB,EA8PxC,EApUkB,CACpB,MAAO,KACT,EACoB,CAClB,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACqB,CACnB,MAAO,KACT,EA8TI,EACD,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC/KA,EAAO,OAAO,CA5Nd,SAAe,CAAI,EAqLjB,MAAO,CACL,KAAM,QACN,iBAAkB,CAAA,EAClB,QAAS,KAET,SAAU,CACR,SAAU,4BACV,QA3La,CACf,MACA,MACA,MACA,MACA,SACA,OACA,WACA,WACA,OACA,QACA,OACA,QACA,QACA,UACA,OACA,SACA,QACA,QACA,MACA,QACA,MACA,SACA,OACA,MACA,OACA,SACA,MACA,MACA,MACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,UACA,WACA,MACA,MACA,QACA,QACA,SACA,MACA,MACA,QACA,MACA,QACA,QACA,MACA,QACA,MACA,MACA,WACA,OACA,OACA,KACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,MACA,MACA,QACA,SACA,MACA,KACA,MACA,OACA,OACA,QACA,MACA,MACA,OACA,QACA,OACA,MACA,SACA,MACA,MACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,MACA,OACA,KACA,KACA,MACA,OACA,QACA,OACA,SACA,OACA,MACA,QACA,UACA,QACA,OACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,SACA,MACA,YACA,OACA,MACA,QACA,UACA,UACA,SACA,WACA,SACA,QACA,MACA,OACA,MACA,OACA,SACA,MACA,QACA,MACA,QACA,SACA,MACA,MACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,MACA,MACA,SACA,UACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,MACD,AAUC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,MAAO,IAAK,CAAE,UAAW,EAAG,GACzC,EAAK,OAAO,CAAC,IAAM,IAAK,CAAE,UAAW,CAAE,GACvC,CAEE,UAAW,SACX,MAAO,WACP,UAAW,EACb,EACA,CAEE,UAAW,SACX,MAAO,sCACP,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,yBACT,EACA,CAEE,UAAW,SACX,MAAO,mBACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC7LA,EAAO,OAAO,CA9Bd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,mBACN,SAAU,CAER,CACE,UAAW,YACX,MAAO,IACP,IAAK,GACP,EAEA,CACE,MAAO,MACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EAEA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECiBA,EAAO,OAAO,CA9Cd,SAAmB,CAAI,EACrB,IAAM,EAAU,CACd,UAAW,UACX,MAAO,QACP,UAAW,CACb,EACA,MAAO,CACL,KAAM,YACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,EAAK,OAAO,CACV,wBACA,uBACA,CACE,SAAU,CACR,CACE,MAAO,4BACP,UAAW,CACb,EACD,CACD,UAAW,CAAA,EACX,UAAW,CACb,GAEF,CACE,UAAW,QACX,MAAO,WACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,SACP,UAAW,CACb,EACA,CAIE,MAAO,cACP,SAAU,CAAE,EAAS,AACvB,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECwRA,EAAO,OAAO,CApUd,SAAW,CAAI,EACb,IAAM,EAAQ,EAAK,KAAK,CAIlB,EAAsB,EAAK,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAChF,EAAmB,qBACnB,EAAe,kBAEf,EAAmB,IACrB,EAAmB,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAGI,EAAQ,CACZ,UAAW,OACX,SAAU,CACR,CAAE,MAAO,oBAAqB,EAC9B,CAAE,MAAO,uBAAwB,EAClC,AAEH,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,uFAA2F,EACpG,CAAE,MAAO,qFAA2F,EACrG,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,yGACyD,EAC7D,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,EAAK,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CAAG,UAoFhE,EAAW,CACf,QAnFiB,CACjB,MACA,OACA,QACA,OACA,WACA,UACA,KACA,OACA,OACA,SACA,MACA,UACA,OACA,KACA,SACA,WACA,WACA,SACA,SACA,SACA,gBACA,SACA,SACA,UACA,QACA,WACA,QACA,WACA,WACA,UACA,WACA,YACA,iBACA,gBAEA,UACA,UACA,WACA,gBACA,eAEA,UACD,CAyCC,KAvCc,CACd,QACA,SACA,SACA,WACA,MACA,QACA,OACA,OACA,OACA,QACA,UACA,WACA,aACA,aACA,aACA,aACA,cACA,cACA,eACA,WACA,WACA,WACA,YACA,YACA,YACA,aAEA,QACA,SACA,YAEA,UACA,OACA,YACD,CAKC,QAAS,kBAET,SAAU,kzBASZ,EAEM,EAAsB,CAC1B,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACD,CAEK,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,OAAO,CAAC,EAAY,CAAE,UAAW,gBAAiB,GAAI,CACvE,UAAW,CACb,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACD,AACH,EAEA,MAAO,CACL,KAAM,IACN,QAAS,CAAE,IAAK,CAChB,SAAU,EAGV,kBAAmB,CAAA,EACnB,QAAS,KACT,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EAAK,UAAU,CAChB,AACH,EACD,EACH,QAAS,CACP,aAAc,EACd,QAAS,EACT,SAAU,CACZ,CACF,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECnUA,IAAA,EAAA,EAAA,sCAyJA,CAAA,EAAO,OAAO,CAtJd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,CACf,MACA,MACA,KACA,MACA,KACA,MACA,MACA,cACA,QACA,OACA,KACA,SACA,OACA,MACA,OACA,MACA,QACA,KACA,KACA,SACA,OACA,KACA,QACA,QACA,OACA,MACD,CAEK,EAAgB,CACpB,EAAK,mBAAmB,CACxB,EAAK,OAAO,CACV,KACA,KACA,CAAE,UAAW,CAAE,GAEjB,EAAK,OAAO,CACV,OACA,OACA,CAAE,UAAW,EAAG,GAEnB,CACK,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACM,EAAc,CAClB,UAAW,SACX,MAAO,SACT,EAYM,EAAY,CAChB,MAAO,CACL,YACA,MACA,kBACA,MACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,EACA,EACA,EAAK,WAAW,CACjB,AACH,EAED,CAbS,MAAA,CAYR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAEP,EAaM,EAAS,CACb,MAAO,CACL,SACA,MACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAfI,CACnB,QACA,OACA,SACA,WACA,WACA,UACA,YACA,OACA,QACD,GAMG,MACA,MACA,eACA,KACA,IACD,CACD,UAAW,EACX,MAAO,CACL,EAAG,UACH,EAAG,OACH,EAAG,SACH,EAAG,OACL,CACF,EAQA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAAS,EACT,QAxGa,YAyGf,EACA,QAAS,OACT,SAAU,CAdK,CACf,MAAO,cACP,MAAO,YACP,UAAW,CACb,EAYI,EACA,EAtFS,CACX,UAAW,SACX,MAAO,4BACP,UAAW,CACb,EAC4B,CAC1B,UAAW,SACX,MAAO,IACP,IAAK,GACP,EAgFI,EAAK,WAAW,CAChB,EACA,EACD,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC3DA,EAAO,OAAO,CAzFd,SAAmB,CAAI,EA4CrB,IAAM,EAAmB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,0BACA,MACA,EAAK,QAAQ,CACd,AAAC,EACF,CAAE,MAAO,CACP,UACA,QACA,EAAK,QAAQ,CACb,QACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EACA,MAAO,CACL,KAAM,cACN,QAAS,CAAE,QAAS,CACpB,SAAU,CACR,QAlEa,CACf,SACA,OACA,YACA,QACA,QACA,SACA,QACA,QACA,aACA,UACA,KACA,KACA,KACA,KACA,OACA,OACA,QACD,CAiDG,KAhDU,CACZ,OACA,OACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,UACA,UACA,OACA,OACA,aACA,YACA,aACA,OACD,CA8BG,QA7Ba,CACf,OACA,QACD,AA2BC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,iBACP,QAAS,IACX,EACA,CACE,UAAW,SACX,MAAO,QACT,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC2CA,EAAO,OAAO,CAnId,SAAgB,CAAI,EAElB,IAAM,EAAW,CACf,WACA,SACA,UACA,SACA,QACA,QACA,YACA,SACA,QACA,QACA,SACA,OACA,WACA,MACA,KACA,UACA,YACA,YACA,KACA,MACA,SACA,QACA,WACA,QACA,SACA,UACA,KACA,OACA,SACA,OACA,MACA,QACA,MACA,QACA,UACA,OACA,MACA,OACA,QACA,QACA,KACA,SACA,WACD,CA2BK,EAAQ,CACZ,UAAW,QACX,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACb,EACM,EAAc,CAClB,CAEE,UAAW,SACX,MAAO,MACP,IAAK,MACL,UAAW,EACb,EACA,CAEE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAO,AACrB,EACA,CAEE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,CAEE,UAAW,SACX,MAAO,gFACP,UAAW,CACb,EACD,CAGD,OAFA,EAAM,QAAQ,CAAG,EAEV,CACL,KAAM,SACN,SAAU,CACR,QAAS,EAAS,MAAM,CAnEE,CAC5B,SACA,WACA,SACA,UACA,SACA,WACA,OACA,SACA,aACA,QACA,SACA,aACA,mBACA,QACD,EAqDG,KAnDkB,CACpB,MACA,KACA,UACA,MACA,SACA,SACD,AA6CC,EACA,QAAS,yBACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,SAAU,CAAE,OAAQ,AAAC,GACpD,CAEE,UAAW,OACX,MAAO,yBACT,EACD,CAAC,MAAM,CAAC,EACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvEA,EAAO,OAAO,CA1Dd,SAAe,CAAI,EAiCjB,MAAO,CACL,KAAM,QACN,QAAS,CACP,MACA,MACD,CACD,SAAU,CACR,QAvCa,CACf,KACA,MACA,KACA,OACA,QACA,OACA,KACA,QACA,WACA,YACA,iBACA,aACA,SACA,SACA,OACA,SACA,YACA,KACA,UACA,OACA,SACA,UACA,SACA,QACA,UACA,UACA,SACA,QACA,SACA,SACD,CASG,SACE,qBACF,QACE,YACJ,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,MAAO,4CAA6C,EACvD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuHA,EAAO,OAAO,CA9Kd,SAAiB,CAAI,EACnB,IAAM,EAAc,uBACd,EAAY,QAAU,EAAc,KAAO,EAAc,aACzD,EAAU,6FAuCV,EAAS,CACb,MAAO,SACP,UAAW,EACX,SAAU,CACR,CAAE,MAAO,0BAA2B,EACpC,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,oCAAqC,EAC9C,CAAE,MAAO,uBAAwB,EACjC,CAAE,MAAO,mEAAoE,EAC7E,CAAE,MAAO,wBAAyB,EACnC,AACH,EACM,EAAY,CAChB,MAAO,YACP,SAAU,CACR,CAAE,MAAO,qBAAsB,EAC/B,CAAE,MAAO,mBAAoB,EAC7B,CAAE,MAAO,iDAAkD,EAC3D,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACM,EAAQ,CACZ,MAAO,QACP,MAAO,KACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAS,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GAC9D,EAAQ,CACZ,MAAO,cACP,MAAO,IACP,UAAW,CACb,EACM,EAAU,EAAK,OAAO,CAC1B,IACA,IACA,CAAE,UAAW,CAAE,GAEX,EAAU,CACd,UAAW,UACX,MAAO,sBACT,EACM,EAAa,CACjB,MAAO,YAAc,EAAY,QACjC,IAAK,WACL,UAAW,CACb,EACM,EAAM,CACV,UAAW,SACX,MAAO,WAAa,CACtB,EACM,EAAO,CACX,MAAO,MACP,IAAK,KACP,EACM,EAAO,CACX,eAAgB,CAAA,EAChB,UAAW,CACb,EAQM,EAAmB,CACvB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAnFa,CACb,MAAO,EACP,UAAW,CACb,EAkFC,CAEK,EAAS,CACb,cAAe,EACf,SAAU,CACR,SAAU,EACV,QAAS,CACX,EACA,IAAK,gCACL,SAAU,CACR,CACE,UAAW,QACX,MAAO,EACP,UAAW,EACX,WAAY,CAAA,EAEZ,WAAY,CAAA,CACd,EACD,CAAC,MAAM,CAAC,EACX,EAUA,OARA,EAAK,QAAQ,CAAG,CACd,EAzCW,CACX,SArGe,CACf,SAAU,EACV,SAEE,EAAA,2+EA4BJ,EAsEE,UAAW,OACX,MAAO,EACP,UAAW,EACX,OAAQ,CACV,EAqCE,EACD,CACD,EAAK,QAAQ,CAAG,EAChB,EAAW,QAAQ,CAAG,EAEf,CACL,KAAM,UACN,QAAS,CACP,MACA,MACD,CACD,QAAS,KACT,SAAU,CACR,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3JA,EAAO,OAAO,CAhBd,SAAqB,CAAI,EACvB,MAAO,CACL,KAAM,eACN,SAAU,CACR,CACE,UAAW,cACX,MAAO,sBACP,OAAQ,CACN,IAAK,IACL,YAAa,SACf,CACF,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuCA,EAAO,OAAO,CAtDd,SAAe,CAAI,EACjB,MAAO,CACL,KAAM,QACN,QAAS,CAAE,WAAY,CACvB,iBAAkB,CAAA,EAClB,SAAU,CAAE,QAER,soEAgC2F,EAC/F,SAAU,CACR,CACE,UAAW,WACX,MAAO,OACP,IAAK,IACP,EACA,EAAK,OAAO,CAAC,QAAS,MACtB,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC7DM,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAwFK,EAAY,EAAE,CAAC,MAAM,CAtBF,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAnFa,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEmB,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CA2PD,CAAA,EAAO,OAAO,CAlNd,SAAsB,CAAI,EAiCxB,IAFmB,EAEb,EAAa,CACjB,QAAS,EAAS,MAAM,CAvBF,CACtB,OACA,SACA,QACA,OACA,KACA,OACA,MACA,KACA,KACA,OACA,MACD,EAW2C,MAAM,EAH/B,EAPQ,CACzB,MACA,QACA,MACA,WACA,SACD,CAEC,SAAC,CAAD,EAAQ,MAAA,CAAC,EAAK,QAAQ,CAAC,E,IAGvB,QAAS,EAAS,MAAM,CA9BF,CACtB,MACA,KACA,KACA,MACD,EA0BC,SAAU,EAAU,MAAM,CAnCH,CACvB,MACA,QACD,CAiCD,EACM,EAAc,2BACd,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,kBAAkB,CACvB,EAAK,OAAO,CAAC,EAAK,aAAa,CAAE,CAAE,OAAQ,CACzC,IAAK,WACL,UAAW,CACb,CAAE,GACF,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EACA,EAAK,iBAAiB,CACvB,AACH,EACA,CACE,MAAO,sBACP,UAAW,CACb,EACA,CAGE,MAAO,0CAA2C,EACrD,AACH,EACA,CAAE,MAAO,IAAM,CACf,EACA,CACE,YAAa,aACb,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAqB,0BACrB,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,CAAA,EAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAAE,OAAQ,CAAC,MAAM,CAAC,EAC9B,EACD,AACH,EAsBA,MAAO,CACL,KAAM,eACN,QAAS,CACP,SACA,OACA,OACD,CACD,SAAU,EACV,QAAS,OACT,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,EAAK,OAAO,CAAC,MAAO,OACpB,EAAK,iBAAiB,CACtB,CACE,UAAW,WACX,MAAO,QAAU,EAAc,YAAc,EAC7C,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACD,AACH,EACA,CAEE,MAAO,aACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO,EACP,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EAxDqB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,WACA,EACA,gBACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,WACA,EACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAwCI,CACE,MAAO,EAAc,IACrB,IAAK,IACL,YAAa,CAAA,EACb,UAAW,CAAA,EACX,UAAW,CACb,EACD,CACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECiFA,EAAO,OAAO,CApbd,SAAa,CAAI,EA8Zf,MAAO,CACL,KAAM,MACN,SAAU,CACR,QAhaa,CACf,MACA,KACA,KACA,QACA,OACA,MACA,SACA,UACA,MACA,MACA,SACA,MACA,KACA,KACA,KACA,MACA,QACA,MACA,OACA,SACA,MACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,MACA,QACA,WACA,MACA,YACA,cACA,QACA,OACA,SACA,YACA,OACA,YACA,YACA,KACA,QACA,QACA,UACA,QACA,WACA,YACA,aACA,cACA,aACA,WACA,UACA,aACA,cACA,WACA,SACA,aACA,eACA,UACA,YACA,eACA,MACA,UACA,UACA,aACA,UACA,eACA,YACA,SACA,OACA,QACA,MACA,WACA,OACA,UACA,cACA,eACA,WACA,SACA,YACA,SACA,UACA,aACA,OACA,QACA,SACA,OACA,WACA,QACA,MACA,OACA,WACA,aACA,gBACA,SACA,OACA,OACA,UACA,QACA,UACA,OACA,OACA,SACA,QACA,aACA,aACA,QACA,WACA,KACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,UACA,SACA,UACA,WACA,YACA,QACA,SACA,YACA,kBACA,WACA,OACA,QACA,MACA,YACA,UACA,OACA,WACA,QACA,SACA,OACA,KACA,OACA,SACA,UACA,cACA,WACA,OACA,WACA,WACA,aACA,cACA,SACA,OACA,WACA,UACA,YACA,aACA,aACA,OACA,QACA,UACA,cACA,UACA,QACA,WACA,UACA,cACA,QACA,cACA,MACA,MACA,OACA,MACA,SACA,YACA,WACA,WACA,SACA,SACA,UACA,WACA,QACA,UACA,UACA,UACA,QACA,OACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,cACA,aACA,gBACA,gBACA,UACA,WACA,MACA,SACA,OACA,QACA,SACA,OACA,aACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,UACA,OACA,UACA,cACA,OACA,cACA,QACA,YACA,OACA,UACA,YACA,SACA,WACA,YACA,QACA,WACA,QACA,WACA,YACA,UACA,UACA,aACA,QACA,OACD,CAoLG,SAnLc,CAChB,WACA,SACA,QACA,QACA,QACA,KACA,SACA,aACA,KACA,OACA,cACA,aACA,SACA,SACA,SACA,KACA,OACA,UACA,MACA,MACA,SACA,iBACA,kBACA,QACA,YACA,QACA,UACA,UACA,aACA,YACA,cACA,aACA,gBACA,MACA,aACA,QACA,SACA,YACA,YACA,WACA,cACA,aACA,eACA,SACA,KACA,SACA,SACA,SACA,cACA,QACA,QACA,eACA,YACA,gBACA,QACA,SACA,UACA,aACA,aACA,QACA,OACA,WACA,SACA,WACA,WACA,SACA,eACA,SACA,OACA,QACA,eACA,UACA,SACA,UACA,OACA,QACA,iBACA,oBACA,QACA,aACA,MACA,OACA,UACA,aACA,aACA,eACA,QACA,UACA,WACA,MACA,QACA,KACA,YACA,YACA,cACA,QACA,gBACA,SACA,YACA,YACA,kBACA,UACA,SACA,SACA,OACA,OACA,MACA,MACA,OACA,iBACA,MACA,QACA,QACA,OACA,UACA,OACA,WACA,QACA,QACA,QACA,SACA,MACA,SACA,cACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,gBACA,QACA,OACA,gBACA,SACA,MACA,qBACA,iBACA,iBACA,kBACA,sBACA,SACA,mBACA,QACA,SACA,cACA,QACA,aACA,QACA,aACA,cACA,QACA,QACA,QACA,MACA,OACA,WACA,SACA,QACA,OACA,UACA,MACA,eACA,UACA,MACA,QACA,SACA,QACA,QACA,QACA,aACA,OACD,AAMC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,SAAU,UACvB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,aAAc,CAAA,EACd,MAAO,UACP,IAAK,MACP,EACA,CACE,MAAO,OAAQ,EAClB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC/SA,EAAO,OAAO,CAnId,SAAa,CAAI,EAqEf,MAAO,CACL,KAAM,sBACN,iBAAkB,CAAA,EAClB,QAAS,CAAE,MAAO,CAClB,SAjDA,gbAkDA,SAAU,CAzDI,CACd,UAAW,SACX,MAAO,8BACP,UAAW,CACb,EApBgB,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA8DI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,UACX,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,CACE,UAAW,WACX,MAAO,4BACT,EACA,CACE,UAAW,WACX,MAAO,iBACT,EACA,CACE,UAAW,WACX,MAAO,sBACT,EACA,CACE,UAAW,SACX,MAAO,mBACT,EACA,CACE,UAAW,UACX,MAAO,8BACT,EAGA,CACE,MAAO,SACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,KACf,EACA,CACE,MAAO,4BACP,IAAK,IACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,YACf,EACA,CAEE,MAAO,aACP,IAAK,QACL,YAAa,KACf,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECidA,EAAO,OAAO,CAnlBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAIlB,EAAsB,EAAK,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAChF,EAAmB,qBACnB,EAAe,kBAEf,EAAmB,cACrB,EAAmB,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAEI,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACT,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBF,EAEA,CAAE,MACA,6JAcF,EACD,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACwC,EAC5C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,EAAK,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CAAG,UA6RhE,EAAe,CACnB,KAhMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,SACD,CAgLC,QA5RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,SACD,CAqMC,QAde,CACf,OACA,QACA,UACA,UACA,OACD,CASC,SANe,CAAE,UAAW,CAO5B,YAjLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,eACD,AA0HD,EAEM,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MA/HmB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,WACD,AA0ByB,EACxB,MAAO,EAAM,MAAM,CACjB,KACA,eACA,SACA,UACA,aACA,YACA,EAAK,QAAQ,CACb,EAAM,SAAS,CAAC,oBACpB,EAEM,EAAsB,CAC1B,EACA,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACD,CAEK,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAY,CACxB,UAAW,CACb,EAGA,CACE,MAAO,KACP,UAAW,CACb,EAEA,CACE,MAAO,IACP,eAAgB,CAAA,EAChB,SAAU,CACR,EACA,EACD,AACH,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACD,AACH,EAEA,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,MACD,CACD,SAAU,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAW,EACpD,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAU,EACV,SAAU,CACR,OACA,EACD,AACH,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,MAAO,CAEL,wDACA,MACA,MACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACD,CACL,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECrfA,EAAO,OAAO,CA1Fd,SAAe,CAAI,EAEjB,IAAM,EAAW,qHAWjB,MAAO,CACL,KAAM,QACN,QAAS,CACP,MACA,OACD,CACD,iBAAkB,CAAA,EAClB,SAAU,CACR,QAAS,6MACT,QAXa,2EAYf,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,cAAe,OACf,OAAQ,CACN,IAAK,mBACL,OAAQ,CACN,UAAW,QACX,IAAK,uBACP,CACF,CACF,EACA,CACE,cApCY,yBAqCZ,OAAQ,CACN,UAAW,QACX,IAAK,wBACL,OAAQ,CAAE,IAAK,0BAA2B,CAC5C,CACF,EACA,CACE,MAAO,OAAS,EAAS,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,QAChD,SAAU,EACV,OAAQ,CACN,UAAW,QACX,IAAK,mBACP,CACF,EACA,CACE,cAhDgB,oCAiDhB,OAAQ,CACN,UAAW,QACX,IAAK,kBACP,CACF,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,sCACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,+BACP,UAAW,CACb,EACA,CACE,UAAW,UACX,MAAO,qBACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,wBACP,UAAW,CACb,EACA,CACE,UAAW,MACX,MAAO,MACP,IAAK,MACL,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsNA,EAAO,OAAO,CA/Sd,SAAiB,CAAI,EACnB,IAAM,EAAa,4BAGb,EAAoB,gHACpB,EAAkB,iCAClB,EAAmB,CACvB,SAJuB,sBAKvB,QACE,yYAIF,QAAS,gBACX,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EAQM,EAAY,CAChB,UAAW,oBACX,SAAU,CACR,CACE,MAAO,SACP,IAAK,QACP,EACA,CACE,MAAO,OACP,IAAK,MACP,EACD,CACD,SAAU,CACZ,EAEA,SAAS,EAAe,CAAK,CAAE,CAAG,EAChC,IACI,EAAW,CACT,CACE,MAAO,EACP,IAAK,CACP,EACD,CAEL,OADA,CAAQ,CAAC,EAAE,CAAC,QAAQ,CAAG,EAChB,CACT,CACA,IAAM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,aACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,aACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,aACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,WACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,aACP,IAAK,KACP,EACA,CACE,MAAO,UACP,IAAK,UACP,EACD,CACD,UAAW,CACb,EACM,EAAW,CACf,UAAW,SACX,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,QACP,IAAK,KACP,EACA,CACE,MAAO,YACP,IAAK,UACP,EACD,CACD,UAAW,CACb,EACM,EAAS,CACb,MAAO,YAAc,EAAK,cAAc,CAAG,2DAC3C,SAAU,yCACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,WACP,UAAW,CACb,EACA,CACE,MAAO,WACP,IAAK,SACP,EACD,AACH,EACD,CACD,UAAW,CACb,EAyCM,EAA2B,CAC/B,EACA,EACA,EA3Cc,CACd,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,QACP,IAAK,KACP,EACD,CACD,UAAW,CACb,EAYE,EAXgB,CAChB,UAAW,OACX,MAAO,OACP,IAAK,MACL,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,QAAS,GAAI,AAC7E,EAnLiB,CAGf,UAAW,WACX,MAAO,4DACT,EAuLE,EAAK,iBAAiB,CACtB,CACE,UAAW,QACX,cAAe,sBACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACvD,CACE,MAAO,GAAI,EACd,AACH,EACA,CACE,UAAW,QACX,cAAe,iBACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACxD,AACH,EACA,CACE,cAAe,aACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACxD,CACD,UAAW,CACb,EACA,CACE,UAAW,WACX,cAAe,MACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,AACH,EACA,CACE,UAAW,WACX,cAAe,YACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,EAAK,mBAAmB,CAAG,YAClC,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,IACP,SAAU,CACR,EACA,CAAE,MAAO,CAAkB,EAC5B,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB,CAAW,EACtC,CAAE,MAAO,iBAAmB,CAAW,EACvC,CAAE,MAAO,uBAAyB,CAAW,EAC7C,CAAE,MAAO,uFAA+F,EACxG,CAAE,MAAO,sBAAwB,CAAW,EAC7C,CACD,UAAW,CACb,EACD,CAID,OAHA,EAAM,QAAQ,CAAG,EACjB,EAAU,QAAQ,CAAG,EAAyB,KAAK,CAAC,GAE7C,CACL,KAAM,UACN,QAAS,CAAE,KAAM,CACjB,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECgGA,EAAO,OAAO,CA5Yd,SAAgB,CAAI,EA8IlB,IAAM,EAAW,CACf,QAAS,AAjGa,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,QACD,CAuC0B,MAAM,CAtCL,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,QACD,EAIC,SA/IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACD,CA2HC,QAzGuB,CACvB,UACA,QACA,OACA,OACD,AAqGD,EACM,EAAa,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,oBAAqB,GACzE,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,iEAAqE,EAC9E,CAAE,MAAO,qFAA2F,EACrG,CACD,UAAW,CACb,EAMM,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACM,EAAwB,EAAK,OAAO,CAAC,EAAiB,CAAE,QAAS,IAAK,GACtE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ACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC1VA,EAAO,OAAO,CA9Cd,SAAa,CAAI,EAuBf,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,yBACV,QA3Ba,CACf,WACA,YACA,cACA,cACA,WACA,cACA,kBACA,YACA,UACA,eACA,YACA,aACA,eACA,aACA,UACA,aACA,YACA,gBACA,gBACA,aACD,AAOC,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,CACE,UAAW,YACX,MAAO,WACP,IAAK,IACL,WAAY,CAAA,CACd,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,uCCkHM,EACJ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7HgB,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EA0IhB,CAAA,EAAO,OAAO,CAhId,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAttBC,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe,AAitBG,EAjtBE,oBAAoB,CACxC,SAAU,CACR,MAAO,SACP,MAAO,iDACT,EACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,AAksBc,EAlsBT,gBAAgB,CACrB,AAisBc,EAjsBT,iBAAiB,CACvB,AACH,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,AA4rBS,EA5rBJ,SAAS,CAAd,kGASP,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF,EAkrBM,EAAU,CACd,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,CAED,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,QAAS,UACT,SAAU,CAAE,iBAAkB,SAAU,EACxC,iBAAkB,CAGhB,iBAAkB,cAAe,EACnC,SAAU,CACR,EAAM,aAAa,CAnBD,CAAE,MAAO,8BAA+B,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CA,EACD,AACH,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACD,AACH,CACA,CAAA,EAAa,QAAQ,CAAG,CACtB,EAAK,aAAa,CAClB,EACD,CAED,IAAM,EAAiB,CAErB,aACA,WACA,WACA,WACA,WACA,WACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,YACA,SACA,eACA,aACA,SACA,OACA,MACA,OACA,SACA,MACA,MAEA,UACA,cACD,CACK,EAA0B,EAAe,GAAG,CAAC,SAAC,CAApD,EAA0D,MAAC,GAAI,MAAA,CAAF,EAAE,I,GA2F/D,MAAO,CACL,KAAM,OACN,SAtBe,CACf,QAtEqB,CACrB,WACA,KACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,YACA,UACA,WACA,KACA,UACA,OACA,OACA,SACA,UACA,YACA,WACA,UACA,QACA,QACA,UACA,MACA,WACA,MACA,OACA,KACA,aACA,SACA,KACA,YACA,KACA,OACA,UACA,QACA,MACA,OACA,KACA,WACA,OACA,WACA,UACA,SACA,SACA,MACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,UACA,MACA,OACA,OACA,QACA,OACA,QACD,CAIC,SACE,EACG,MAAM,CAAC,GACP,MAAM,CAAC,CAEN,QACA,OACA,UACA,QAEA,WACA,gBACA,mBACA,SACD,EACL,SAAU,0BACZ,EAKE,SAAU,CACR,EACA,EAAK,OAAO,CACV,eACA,OACA,CACE,YAAa,WACb,UAAW,CACb,GAEF,EAAK,OAAO,CACV,WACA,IAAK,CAAE,SAAU,CACf,CACE,YAAa,WACb,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACD,AAAC,GAEJ,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EAAK,qBAAqB,CAC3B,AACH,EACA,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,YACT,EACA,CAAE,MAAO,IACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECdA,EAAO,OAAO,CA9Od,SAAgB,CAAI,EAClB,IAAM,EAAW,CACf,UACA,WACA,OACA,MACA,QACA,SACA,WACA,MACA,MACA,QACA,MACA,OACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,MACA,YACA,KACA,UACA,SACA,OACA,QACA,YACA,KACA,OACA,UACA,WACA,MACA,MACA,MACA,iBACA,eACA,SACA,UACA,MACA,MACA,YACA,UACA,KACA,WACA,OACA,OACA,WACA,MACA,MACA,WACA,SACA,OACA,QACA,SACA,KACA,SACA,SACA,QACA,aACA,QACA,UACA,UACA,OACA,OACA,iBACA,SACA,UACA,MACA,KACA,OACA,QACA,KACA,SACA,YACA,KACA,MACA,SACA,QACA,WACA,cACA,OACA,SACA,OACA,iBACA,UACA,YACA,YACA,WACA,cACA,WACA,KACA,KACA,WACA,QACA,YACA,YACA,QACA,WACA,UACA,OACA,aACA,eACA,WACA,aACA,gBACA,UACA,SACA,QACA,UACA,UACA,SACA,aACA,YACA,WACA,QACA,OACA,YACA,WACA,eACA,aACA,YACA,gBACA,YACA,aACA,SACA,YACA,UACD,CACK,EAAgB,CACpB,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,KAAM,KAAM,CAAE,UAAW,CAAE,GACxC,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,UAAW,EAAG,GAC9C,CACK,EAAY,CAChB,UAAW,OACX,SAAU,CACR,CACE,MAAO,OACP,IAAK,IACP,EACA,CACE,MAAO,SACP,IAAK,MACP,EACD,AACH,EACM,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EA4BM,EAAc,CAClB,UAAW,SACX,SAAU,CACR,CAAE,MAAO,WAAY,EACrB,CAAE,MAAO,2BAA4B,EACrC,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,cAAe,EACzB,AACH,EACM,EAAQ,CACZ,MAAO,EAAK,QAAQ,CAAG,wBACvB,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,UAAU,CAAE,AAC/B,EACM,EAAW,CACf,UAAW,WACX,cAAe,4CACf,IAAK,OACL,SAAU,qDACV,SAAU,CACR,EAAK,UAAU,CACf,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,EACA,EACA,EACD,CAAC,MAAM,CAAC,EACX,EACA,EACD,CAAC,MAAM,CAAC,EACX,EACA,MAAO,CACL,KAAM,SACN,QAAS,CACP,MACA,MACA,MACA,SACD,CACD,iBAAkB,CAAA,EAClB,SAAU,EACV,QAAS,2BACT,SAAU,CACR,EACA,EA3EW,CACb,UAAW,SACX,UAAW,EAEX,SAAU,CACR,CAEE,MAAO,yBAA0B,EACnC,CAEE,MAAO,gBAAiB,EAC1B,CAEE,MAAO,KACP,UAAW,CAAE,EACf,CAEE,MAAO,eAAgB,EACzB,CAEE,MAAO,SAAU,EACnB,CAEE,MAAO,IACP,UAAW,CAAE,EAChB,AACH,EAmDI,EACA,EACA,EACD,CAAC,MAAM,CAAC,EACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECtLA,EAAO,OAAO,CApDd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CACxB,MAAO,CACL,KAAM,OACN,QAAS,CAAE,QAAS,CACpB,SAAU,CACR,CACE,UAAW,OACX,UAAW,GACX,MAAO,EAAM,MAAM,CACjB,+BACA,8BACA,uBAEJ,EACA,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,EAAM,MAAM,CACjB,UACA,SACA,QACA,QACA,UACA,SACA,eAEF,IAAK,GACP,EACA,CAAE,MAAO,UAAW,EACrB,AACH,EACA,CACE,UAAW,WACX,MAAO,MACP,IAAK,GACP,EACA,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACP,EACA,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACP,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECeA,EAAO,OAAO,CA/Dd,SAAgB,CAAI,EAClB,IAAM,EAAS,CACb,MAAO,gBACP,SAAU,CAAE,KACR,0kBAO2B,EAC/B,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACtB,AACH,EAEA,MAAO,CACL,KAAM,SACN,QAAS,CAAE,QAAS,CACpB,iBAAkB,CAAA,EAClB,YAAa,MACb,SAAU,CACR,EAAK,OAAO,CAAC,sBAAuB,0BACpC,EAAK,OAAO,CAAC,MAAO,OACpB,CACE,UAAW,eACX,MAAO,MACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,SAAU,CAAE,KACR,+lBAQa,EACjB,OAAQ,CACN,eAAgB,CAAA,EAChB,SAAU,WACV,SAAU,CAAE,EAAQ,CACpB,UAAW,CACb,CACF,EACD,AACH,EACA,CACE,UAAW,oBACX,MAAO,OACP,IAAK,OACL,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECKA,EAAO,OAAO,CArEd,SAAa,CAAI,EAyCf,MAAO,CACL,KAAM,WACN,QAAS,CACP,OACA,OACD,CACD,SA9Ce,CACf,KACA,IACA,OACA,QACA,MACA,MACA,UACA,MACA,OACA,QACA,QACA,MACA,QACA,SACA,KACA,MACA,WACA,MACA,KACA,MACA,KACA,QACA,KACA,OACA,QACA,aACA,MACA,QACA,KACA,MACA,MACA,MACA,QACA,KACA,OACA,OACA,OACA,MACD,CAQC,SAAU,CACR,EAAK,OAAO,CAAC,IAAK,IAAK,CAAE,UAAW,CAAE,GACtC,CACE,UAAW,OACX,MAAO,oCACT,EAEA,CACE,UAAW,SACX,MAAO,6mCACT,EAEA,CACE,UAAW,SACX,MAAO,6FACT,EACA,EAAK,OAAO,CAAC,EAAK,WAAW,CAAE,CAAE,MAAO,cAAe,GACxD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EChCA,EAAO,OAAO,CAjCd,SAAoB,CAAI,EAWtB,MAAO,CACL,KAAM,aACN,QAAS,CAAE,SAAU,CACrB,iBAAkB,CAAA,EAClB,SAde,CACf,OACA,aACA,SACA,MACA,MACA,OACA,UACA,aACD,CAMC,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,CACE,cAAe,qEACf,OAAQ,CACN,IAAK,SACL,YAAa,MACf,CACF,EACD,CACD,QAAS,IACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC6HA,EAAO,OAAO,CA7Jd,SAAa,CAAI,EACf,IAAM,EAAU,EAAK,OAAO,CAC1B,cAAe,IACf,CAAE,UAAW,EAAG,GAsHlB,MAAO,CACL,KAAM,mBACN,QAAS,CACP,MACA,MACD,CACD,iBAAkB,CAAA,EAClB,QAAS,OACT,SAAU,CACR,QAxHa,CACf,KACA,OACA,OACA,MACA,KACA,KACA,OACA,OACA,MACA,QACA,aACA,UACA,MACA,MACA,MACA,MACA,MACA,MACD,CAsGG,SArGc,CAChB,MACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,QACA,KACA,MACA,OACA,WACA,WACA,MACA,QACA,OACA,SACA,QACA,KACA,SACA,QACA,QACA,KACA,OACA,QACA,SACA,UACA,MACA,MACA,QACA,OACA,UACA,UACA,OACA,MACA,WACA,WACA,SACA,QACA,KACA,OACA,UACA,SACA,QACA,WACA,OACA,OACA,QACA,KACA,QACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,KACA,UACA,MACA,SACA,UACA,UACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,SACA,MAEA,OACA,MACA,WACA,WACA,QACA,MACA,MACD,AAYC,EACA,SAAU,CACR,CACE,UAAW,WACX,MAAO,0BACT,EACA,CACE,UAAW,WACX,MArIG,mDAsIH,IAAK,WACL,SAAU,CACR,EAAK,OAAO,CAAC,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OACL,SAAU,CACR,EATwB,CAC1B,UAAW,OACX,MAAO,QACT,EAQI,CAEE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACD,AACH,EAEA,MAAO,CACL,KAAM,4BACN,QAAS,KACT,SAAU,CACR,EAnCoB,CACtB,UAAW,YACX,MAAO,mCACT,EAkCI,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECmOA,EAAO,OAAO,CA7Qd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAkB,kCAwClB,EAAM,CACV,SAAU,EACV,QAxCe,CACf,QACA,QACA,MACA,OACA,QACA,OACA,YACA,WACA,KACA,OACA,MACA,KACA,MACA,KACA,SACA,KACA,MACA,KACA,QACA,QACA,UACA,UACA,UACA,SACA,MACA,SACA,UACA,mBACA,MACA,OACA,SACD,CASC,QARe,CACf,QACA,MACA,OACD,AAKD,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EAaM,EAAmB,CACvB,MAHiB,WAIjB,MAAO,cACP,UAAW,CACb,EACM,EAAmB,cACnB,EAAwB,CAC5B,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,CACK,EAAiB,SAAC,CAAxB,EACE,MAAO,CACL,MAAO,cACP,MAAO,EAAM,MAAM,CAAC,KAAM,GAC1B,UAAW,CACb,CACF,EACM,EAAkB,CACtB,UAAW,SACX,MAAO,YAAmB,EAAmB,IAC7C,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CAAE,SAAU,CACV,EAAe,EAAE,GAAG,EACpB,EACA,EACD,AAAC,E,EAEN,EAEM,EAAe,CACnB,UAAW,SACX,MAAO,YAAmB,EAAmB,IAC7C,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CAAE,SAAU,CAAE,EAAe,EAAE,GAAG,EAAG,AAAC,E,EAE1C,EAEM,EAAc,CAClB,UAAW,QACX,SAAU,CACR,CACE,MAAO,QAAe,EAAmB,IACzC,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CACE,IAAK,EAAM,MAAM,CAAC,EAAE,GAAG,CAAE,kBACzB,SAAU,CACR,EAAe,EAAE,GAAG,EACpB,EACA,EACD,AACH,E,EAEJ,EACA,CACE,MAAO,QAAe,EAAmB,IACzC,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CACE,IAAK,EAAM,MAAM,CAAC,EAAE,GAAG,CAAE,kBACzB,SAAU,CAAE,EAAe,EAAE,GAAG,EAAG,AACrC,E,EAEJ,EACD,AACH,EAEM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACM,EAAW,CACf,UAAW,WACX,cAAe,8BACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,AACH,EACM,EAAQ,EAAK,OAAO,CAAC,EAAU,CACnC,UAAW,QACX,cAAe,0CACf,IAAK,YACP,GACM,EAA0B,CAC9B,EACA,EACA,EACA,EACA,EAAK,iBAAiB,CACtB,EACA,EACA,CAAE,MAAO,IAAK,EACd,CACE,UAAW,SACX,MAAO,cACP,SAAU,CACR,EACA,CAAE,MAxOiB,kFAwOO,EAC3B,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,EAAkB,SACzB,UAAW,CACb,EACA,CACE,UAAW,cACX,MAAO,yBACP,UAAW,CACb,EAnMa,CACb,UAAW,SACX,MAAO,uGACP,UAAW,CACb,EAiME,CACE,UAAW,WACX,MAAO,4BACT,EAED,CAGD,OAFA,EAAM,QAAQ,CAAG,EAEV,CACL,KAAM,SACN,QAAS,CACP,KACA,MACD,CACD,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECtIA,EAAO,OAAO,CAtId,SAAa,CAAI,EACf,IAAM,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,KAAM,KACnB,EAAK,OAAO,CACV,MACA,MACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAE1B,AAAC,EAEI,EAAc,CAClB,UAAW,OACX,MAAO,kBACP,UAAW,CACb,EAEM,EAAO,CACX,MAAO,MACP,IAAK,MACL,QAAS,IACT,SAAU,CACR,CACE,UAAW,OACX,MAAO,wCACT,EACA,EACD,AACH,EAEM,EAAS,CACb,MAAO,KACP,IAAK,KACL,SAAU,EAAK,QAAQ,AACzB,EAiCA,MAAO,CACL,KAAM,MACN,SA1Be,CACf,MACA,KACA,KACA,OACA,OACA,OACA,KACA,QACA,SACA,SACA,WACA,OACA,QACA,KACA,QACA,SACA,SACA,OACA,SACA,UACA,eACD,CAKC,SAAU,CAIR,CACE,cAAe,qBACf,IAAK,WACL,SAAU,yDACV,SAAU,CACR,EACA,EACD,CACD,QAAS,UACX,EACA,CACE,MAAO,SACP,IAAK,IACL,SAAU,qBACV,SAAU,CACR,EACA,EACD,CACD,QAAS,UACX,EACA,CACE,MAAO,OACP,IAAK,IACL,SAAU,aACV,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,EACA,CACE,cAAe,sBACf,IAAK,IACL,SAAU,CACR,EAAK,aAAa,CAClB,EACD,AACH,EACA,CACE,MAAO,OACP,IAAK,IACL,SAAU,OACV,SAAU,CAAE,EAAS,AACvB,EAlFc,CAChB,UAAW,SACX,MAAO,UACP,IAAK,IACL,QAAS,GACX,EAiFI,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,EACA,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,gBAAkB,GACzD,EAEA,CACE,MAAO,OAAQ,EAClB,CACD,QAAS,GACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrIA,IAAA,EAAA,EAAA,sCAwbA,CAAA,EAAO,OAAO,CAtbd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAiB,qFAEjB,EAAgB,EAAM,MAAM,CAChC,uBAEA,8BAGI,EAA+B,EAAM,MAAM,CAAC,EAAe,YAa3D,EAAgB,CACpB,oBAAqB,CACnB,WACA,WACA,eACD,CACD,oBAAqB,CACnB,OACA,QACD,CACD,QAAS,CACP,QACA,MACA,QACA,QACA,QACA,OACA,QACA,UACA,KACA,OACA,QACA,MACA,MACA,SACA,MACA,KACA,KACA,SACA,OACA,MACA,KACA,OACA,UACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,QAED,CAnCQ,MAAA,CAkCP,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtDe,CACjB,UACA,SACA,UACA,SACA,UACA,YACA,QACA,QACD,GA+CC,SAAU,CACR,OACA,SACA,gBACA,cACA,cACA,gBACA,mBACA,kBACD,CACD,QAAS,CACP,OACA,QACA,MACD,AACH,EACM,EAAY,CAChB,UAAW,SACX,MAAO,YACT,EACM,EAAa,CACjB,MAAO,KACP,IAAK,GACP,EACM,EAAgB,CACpB,EAAK,OAAO,CACV,IACA,IACA,CAAE,SAAU,CAAE,EAAW,AAAC,GAE5B,EAAK,OAAO,CACV,UACA,QACA,CACE,SAAU,CAAE,EAAW,CACvB,UAAW,EACb,GAEF,EAAK,OAAO,CAAC,WAAY,EAAK,gBAAgB,EAC/C,CACK,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EAGA,CAAE,MAAO,iBAAkB,EAC3B,CAAE,MAAO,2BAA4B,EACrC,CAAE,MAAO,iCAAkC,EAC3C,CAAE,MAAO,yDAA0D,EACnE,CAAE,MAAO,yBAA0B,EACnC,CAAE,MAAO,WAAY,EAErB,CAGE,MAAO,EAAM,MAAM,CACjB,YACA,EAAM,SAAS,CAAC,6CAElB,SAAU,CACR,EAAK,iBAAiB,CAAC,CACrB,MAAO,QACP,IAAK,QACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,GACD,AACH,EACD,AACH,EAMM,EAAS,kBACT,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAER,CAAE,MAAO,OAAuB,MAAA,CAPpB,oBAOY,UAA+B,MAAA,CAAvB,EAAO,kBAAuB,MAAA,CAAP,EAAO,aAAY,EAI1E,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,4CAA6C,EAGtD,CAAE,MAAO,uBAAwB,EAClC,AACH,EAEM,EAAS,CACb,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,SACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACZ,EACD,AACH,EA2EM,EAAwB,CAC5B,EA/DuB,CACvB,SAAU,CACR,CACE,MAAO,CACL,WACA,EACA,UACA,EACD,AACH,EACA,CACE,MAAO,CACL,sBACA,EACD,AACH,EACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAjCuB,CACrB,MAAO,CACL,sBACA,EACD,CACD,MAAO,CACL,EAAG,aACL,EACA,SAAU,CACZ,EA8CwB,CACtB,UAAW,EACX,MAAO,CACL,EACA,aACD,CACD,MAAO,CACL,EAAG,aACL,CACF,EA7B4B,CAC1B,UAAW,EACX,MAAO,sBACP,UAAW,mBACb,EA4BwB,CACtB,UAAW,EACX,MAAO,EACP,MAAO,aACT,EA9B0B,CACxB,MAAO,CACL,MAAO,MACP,EACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,EACA,SAAU,CACR,EACD,AACH,EA4BE,CAEE,MAAO,EAAK,QAAQ,CAAG,IAAK,EAC9B,CACE,UAAW,SACX,MAAO,EAAK,mBAAmB,CAAG,YAClC,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,WACP,SAAU,CACR,EACA,CAAE,MAAO,CAAe,EACzB,CACD,UAAW,CACb,EACA,EACA,CAGE,UAAW,WACX,MAAO,4DACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,EACX,SAAU,CACZ,EACA,CACE,MAAO,IAAM,EAAK,cAAc,CAAG,eACnC,SAAU,SACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,QAAS,KACT,SAAU,CACR,CACE,MAAO,IACP,IAAK,SACP,EACA,CACE,MAAO,OACP,IAAK,UACP,EACA,CACE,MAAO,QACP,IAAK,WACP,EACA,CACE,MAAO,MACP,IAAK,SACP,EACA,CACE,MAAO,QACP,IAAK,WACP,EACD,AACH,EACD,CAAC,MAAM,CAAC,EAAY,GACrB,UAAW,CACb,EACD,CAAC,MAAM,CAAC,EAAY,EAErB,CAAA,EAAM,QAAQ,CAAG,EACjB,EAAO,QAAQ,CAAG,EASlB,IAAM,EAAc,CAClB,CACE,MAAO,SACP,OAAQ,CACN,IAAK,IACL,SAAU,CA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,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAc,GACtD,CACD,OAAQ,CACN,IAAK,QACL,SAAU,EACV,SAAU,CACZ,CACF,EACA,EACA,CACE,MAAO,KACP,IAAK,MACL,UAAW,EACX,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,SAAU,CACR,SAAU,IAAM,EAAK,QAAQ,CAC7B,QAAS,AA9DE,CACjB,UACA,UACA,SACA,UACA,SACA,UACA,UACA,aACA,OACA,OACA,UACA,WACA,eACA,WACA,UACA,QACA,SACA,QACA,aACA,YACA,QACD,CAwC2B,GAAG,CAAC,SAAA,CAAxB,EAA6B,MAAC,GAAI,MAAA,CAAF,EAAE,OAAO,GAAA,IAAI,CAAC,IAChD,EACA,SAAU,CAAE,EAAQ,AACtB,EACA,EACA,EAAK,iBAAiB,CACtB,EACA,EACA,EACA,EACA,EACA,CAAE,MAAO,KAAM,EAChB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC4VA,EAAO,OAAO,CAvhBd,SAAe,CAAI,EAkejB,MAAO,CACL,KAAM,iBACN,QAAS,CACP,OACA,MACD,CACD,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,kBACV,SAzec,CAChB,MACA,UACA,WACA,OACA,QACA,OACA,QACA,YACA,UACA,YACA,WACA,MACA,SACA,QACA,MACA,OACA,QACA,OACA,QACA,QACA,SACA,UACA,WACA,YACA,aACA,WACA,OACA,UACA,UACA,UACA,UACA,WACA,YACA,UACA,WACA,UACA,UACA,UACA,YACA,aACA,mBACA,YACA,SACA,YACA,QACA,YACA,SACA,OACA,UACA,eACA,kBACA,OACA,OACA,UACA,SACA,UACA,aACA,gBACA,YACA,eACA,aACA,SACA,QACA,OACA,SACA,UACA,SACA,UACA,UACA,SACA,cACA,aACA,kBACA,eACA,UACA,SACA,MACA,OACA,MACA,OACA,QACA,SACA,aACA,UACA,WACA,YACA,WACA,aACA,UACA,UACA,UACA,QACA,eACA,eACA,YACA,MACA,OACA,gBACA,aACA,qBACA,mBACA,UACA,eACA,YACA,UACA,WACA,OACA,UACA,YACA,WACA,MACA,OACA,UACA,KACA,OACA,SACA,UACA,MACA,UACA,UACA,UACA,UACA,UACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,WACA,WACA,WACA,SACA,UACA,OACA,WACA,OACA,QACA,QACA,SACA,YACA,UACA,MACA,cACA,OACA,eACA,aACA,cACA,OACA,QACA,MACA,aACA,YACA,OACA,aACA,UACA,SACA,QACA,YACA,YACA,OACA,QACA,QACA,WACA,OACA,SACA,YACA,QACA,QACA,aACA,gBACA,WACA,eACA,uBACA,2BACA,oBACA,kBACA,cACA,YACA,SACA,QACA,KACA,aACA,QACA,aACA,YACA,YACA,WACA,UACA,kBACA,QACA,MACA,UACA,SACA,eACA,SACA,UACA,UACA,UACA,UACA,UACA,OACA,YACA,eACA,cACA,KACA,UACA,OACA,MACA,QACA,YACA,aACA,cACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,UACA,SACA,UACA,YACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,WACA,OACA,MACA,YACA,UACA,OACA,MACA,UACA,QACA,UACA,SACA,YACA,YACA,OACA,YACA,WACA,QACA,QACA,SACA,cACA,aACA,QACA,MACA,OACA,QACA,MACA,OACA,QACA,MACA,OACA,SACA,KACA,MACA,QACA,SACA,SACA,eACA,cACA,cACA,SACA,QACA,QACA,MACA,OACA,SACA,UACA,YACA,SACA,MACA,QACA,MACA,SACA,OACA,SACA,WACA,OACA,QACA,MACA,OACA,YACA,YACA,QACA,SACA,cACA,QACA,IACA,KACA,gBACA,eACA,cACA,mBACA,UACA,YACA,WACA,UACA,WACA,cACA,YACA,aACA,WACA,MACA,MACA,OACA,MACA,cACA,UACA,UACA,UACA,MACA,YACA,YACA,YACA,YACA,SACA,KACA,YACA,UACA,iBACA,iBACA,aACA,kBACA,kBACA,cACA,SACA,eACA,MACA,WACA,KACA,MACA,eACA,UACA,QACA,OACA,QACA,YACA,WACA,OACA,UACA,SACA,KACA,WACA,eACA,eACA,WACA,UACA,OACA,cACA,WACA,UACA,OACA,OACA,WACA,cACA,UACA,WACA,OACA,QACA,SACA,QACA,QACA,YACA,UACA,MACA,OACA,MACA,MACA,MACA,SACA,UACA,MACA,OACA,SACA,YACA,QACA,SACA,OACA,MACA,OACA,OACA,SACA,MACA,QACA,QACA,cACA,OACA,SACA,cACA,QACA,UACA,UACA,SACA,SACA,UACA,QACA,aACA,WACA,MACA,QACA,SACA,aACA,QACA,WACA,WACA,UACA,SACA,MACA,IACA,MACA,OACA,UACA,aACA,aACA,SACA,YACA,YACA,QACA,OACA,WACA,OACA,YACA,QACA,WACA,OACA,QACA,YACA,QACA,OACA,WACA,SACA,QACA,SACA,QACA,OACA,UACA,UACA,QACA,QACA,MACA,QACA,QACA,OACA,OACA,QACA,MACA,UACA,aACA,UACA,UACA,UACA,eACA,UACA,eACA,OACA,OACA,MACA,OACA,WACA,QACA,YACA,WACA,SACA,QACD,AAWC,EACA,SAAU,CACR,CAEE,MAAO,KACP,IAAK,OACL,UAAW,CAAA,EACX,QAAS,IACT,UAAW,EACb,EAEA,CAEE,UAAW,SACX,MAAO,oBACP,IAAK,QACL,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,8BACP,UAAW,CACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,EAAK,SAAS,CAAG,OACxB,UAAW,CACb,EAEA,EAAK,OAAO,CAAC,QAAS,KACpB,CACE,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,IACX,GACH,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxfA,EAAO,OAAO,CAhCd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,MACN,SAAU,CACR,CACE,MAAO,mBACP,IAAK,iBACL,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,UAAW,CAAA,EACX,SAAU,CACR,CACE,MAAO,sBACP,IAAK,uBACL,UAAW,CAAA,EACX,YAAa,CAAA,EACb,UAAW,MACb,EACA,CACE,MAAO,IACP,IAAK,mBACL,WAAY,CAAA,EACZ,aAAc,CAAA,EACd,UAAW,QACb,EACD,AACH,EACD,CACD,iBAAkB,CAAA,CACpB,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC0CA,EAAO,OAAO,CAtEd,SAAc,CAAI,EA8BhB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QAAS,CACP,OACA,QACA,MACA,OACA,OACA,KACA,OACA,SACA,KACA,MACA,MACA,QACA,MACA,QACA,YACA,SACA,OACA,QACA,OACD,CACD,QAAS,CACP,OACA,QACD,AACH,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA5DhB,CACX,UAAW,SACX,MAAO,4BACT,EAEe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAQe,CACb,UAAW,WACX,cAAe,MACf,IAAK,cACL,WAAY,CAAA,EACZ,SAAU,CAXC,CACX,UAAW,QACX,UAAW,EACX,MAAO,gFACT,EAOoB,AACpB,EAqCI,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECifA,EAAO,OAAO,CArjBd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAOlB,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,IAAK,IAAK,CAAE,UAAW,CAAE,GAEtC,EAAK,OAAO,CAAC,QAAS,IAAK,CAAE,UAAW,CAAE,GAC1C,EAAK,OAAO,CAAC,MAAO,IAAK,CAAE,UAAW,CAAE,GACzC,AAAC,EAGI,EAAyB,gBACzB,EAAsB,kBACtB,EAAS,CACb,UAAW,SACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,UAAW,EAAqB,EAAwB,EACvF,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,EAAqB,EAAwB,EAC5E,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,EAAqB,EAAwB,EAC7E,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,WACX,cAAe,8BACf,QAAS,WACT,SAAU,CACR,EAAK,qBAAqB,CA/Bf,CACb,UAAW,SACX,MAAO,MACP,IAAK,KACP,EA6BG,AACH,EAofA,MAAO,CACL,KAAM,UACN,iBAAkB,CAAA,EAClB,QAAS,CACP,MACA,MACD,CACD,SAAU,CACR,SAAU,0CACV,QAlfa,CACf,OACA,KACA,aACA,QACA,SACA,QACA,UACA,OACA,YACA,QACA,YACA,OACA,UACA,YACA,YACA,eACA,MACA,QACA,QACA,KACA,SACA,YACA,OACA,WACA,UACA,SACA,OACA,OACA,QACA,WACA,eACA,SACA,gBACA,WACA,UACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,OACA,MACA,OACA,YACA,SACA,OACA,QACA,UACA,SACA,SACA,MACA,OACA,aACA,SACA,cACA,OACA,WACA,SACA,QACA,QACA,OACA,cACA,UACA,cACA,cACA,QACA,OACA,UACA,QACA,QACA,cACA,SACA,kBACA,OACA,YACA,WACA,WACA,UACA,SACA,gBACA,QACA,WACA,UACA,QACA,aACA,QACA,YACA,OACA,OACA,QACA,UACA,SACA,cACA,gBACA,WACA,WACA,YACA,YACA,YACA,iBACA,kBACA,kBACA,kBACA,gBACA,iBACA,iBACA,iBACA,aACA,aACA,UACA,WACA,gBACA,kBACA,mBACA,wBACA,SACA,SACA,aACA,gBACA,aACA,oBACA,mBACA,iBACA,gBACA,QACA,WACA,eACA,cACA,QACA,WACA,kBACA,yBACA,aACA,oBACA,aACA,aACA,aACA,uBACA,cACA,kBACA,kBACA,iCACA,0BACA,0BACA,UACA,aACA,YACA,MACA,WACA,SACA,QACA,YACA,MACA,UACA,MACA,YACA,YACA,WACA,UACA,WACA,YACA,OACA,SACA,UACA,OACA,YACA,UACA,UACA,cACA,YACA,iBACA,YACA,WACA,cACA,OACA,SACA,YACA,SACA,SACA,WACA,UACA,SACA,KACA,MACA,SACA,cACA,OACD,CAySG,QAxSa,CACf,UACA,SACD,CAsSG,SArSc,CAChB,OACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,MACA,OACA,MACA,QACA,QACA,MACA,MACA,QACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,QACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,WACA,aACA,UACA,UACA,MACA,YACA,MACA,aACA,WACA,QACA,UACA,QACA,SACA,gBACA,SACA,cACA,UACA,UACA,WACA,QACA,WACA,OACA,OACA,QACA,QACA,QACA,OACA,MACA,QACA,SACA,SACA,WACA,SACA,cACA,SACA,SACA,QACA,cACA,SACA,SACA,SACA,SACA,UACA,OACA,UACA,UACA,QACA,gBACA,cACA,QACA,SACA,UACA,YACA,QACA,OACA,oBACA,qBACA,eACA,QACA,OACA,UACA,SACA,MACA,eACA,OACA,YACA,OACA,SACA,SACA,SACA,QACA,SACA,WACA,OACA,QACA,QACA,WACA,yBACA,cACA,uBACA,2BACA,gBACA,kBACA,iCACA,0BACA,0BACA,gBACA,aACA,WACA,qBACA,eACA,kBACA,QACA,QACA,QACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,OACA,cACA,QACA,YACA,QACA,QACA,gBACA,aACA,uBACA,QACA,SACA,eACA,aACA,MACA,MACA,MACA,MACA,UACA,UACA,UACA,OACA,OACA,UACA,cACA,WACA,WACA,QACA,QACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,aACA,OACA,SACA,OACA,eACA,SACA,SACA,SACA,YACD,AAaC,EACA,QAAS,OACT,SAAU,CAhgBG,CACb,UAAW,SACX,UAAW,EACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EA2fI,EAGA,CACE,MAAO,cACP,UAAW,CACb,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxjBG,IAAA,EAAA,EAAA,uCACH,SAAS,EAAO,CAAK,EACnB,OAAO,AAAI,OAAO,EAAM,OAAO,CAAC,wBAAyB,QAAS,IACpE,CAMA,SAAS,EAAO,CAAE,SAChB,AAAK,EACD,AAAc,UAAd,OAAO,EAAwB,EAE5B,EAAG,MAAM,CAHA,IAIlB,CAMA,SAAS,EAAU,CAAE,EACnB,OAAO,EAAO,MAAO,EAAI,IAC3B,CAMA,SAAS,IAAO,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAErB,OADe,EAAK,GAAG,CAAC,SAAC,CAAzB,EAA+B,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,GAEjD,CA0BA,SAAS,IAAO,IAAA,IAnBR,EAmBQ,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAMrB,MAHe,IACV,CAAA,AArBL,CAAA,AAAI,AAAgB,UAAhB,OAFE,EAAO,AAqBqB,CArBjB,CAAC,AAqBgB,EArBX,MAAM,CAAG,EAAE,GAEF,EAAK,WAAW,GAAK,QACnD,AAkBgC,EAlB3B,MAAM,CAAC,AAkBoB,EAlBf,MAAM,CAAG,EAAG,GACtB,GAEA,CAAC,CADV,EAkBU,OAAO,CAAG,GAAK,IAAA,EACrB,EAAK,GAAG,CAAC,SAAC,CAFd,EAEoB,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,KAAO,GAE7C,CA+iBA,EAAO,OAAO,CAniBd,SAAgB,CAAI,EAoElB,IAAM,EAAoB,CAExB,MAAO,UACP,MAAO,oCACT,EAwCM,EAAc,CAElB,OACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,QACA,SACA,YACA,aACA,UACA,QACA,SACA,UACA,SACA,OACA,SACA,OACA,SAEA,SACA,UACA,OACA,QACA,MACA,QACA,MACA,QACA,YACA,MACA,SACA,UAEA,SACD,CA2CK,EAAe,CACnB,QApMe,CACf,WACA,MACA,KACA,SACA,OACA,QACA,QACA,UACA,WACA,KACA,OACA,WACA,SACA,OACA,OACA,MACA,YACA,SAEA,UACA,QACA,MACA,MACA,WACA,SACA,KACA,KACA,UACA,SACA,YACA,WACA,OACA,MACA,QACA,SACA,SACA,UACA,YACA,MAGA,KACA,OACA,KACA,WACA,UACA,SACA,MACA,SACA,SACA,SACA,OACA,KAEA,MACA,OACA,SACA,MACA,MACA,OACA,OACA,QACA,OACA,QACD,CAoIC,QA5Ge,CACf,OACA,QACA,OACA,OACA,OACA,KACA,QACA,WACA,YACA,MACA,OACD,CAiGC,SA5Ce,CAKf,MACA,MACA,QACA,UACA,OACA,eACA,MACA,MACA,OACA,SACA,SACA,YACA,SACA,UACA,aACA,YACA,KACA,MACA,MACA,SACA,OACA,QACA,MACA,QACA,WACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,YACD,CAMC,oBAhG0B,CAC1B,WACA,uBACA,kBACD,AA6FD,EAQM,EAAU,CACd,SAAU,CALV,EAAK,OAAO,CAAC,aAAc,OAAQ,CACjC,SAAU,CAAC,OAAO,AACpB,GAKE,EAAK,mBAAmB,CACzB,AACH,EAKM,EAAoB,CACxB,MAAO,WACP,MAAO,KACP,IAAK,IACP,EAGM,EAA+B,WAC/B,EAAsB,CAC1B,MAAO,SACP,SAAU,CAER,CAAE,MAAO,EAAO,EAA8B,UAAW,EAEzD,CAAE,MAAO,EAAO,EAA8B,EAAK,mBAAmB,CAAE,EACzE,CACD,UAAW,CACb,EAEM,EAAmB,SAAS,CAAgB,EAOhD,IAAM,EAAiB,MAAM,IAAI,CAPD,EAAE,YAAF,CAIX,kBAEA,kBAEf,EAAmB,EAAA,KAAA,CAAA,KAAA,EAAA,CAAO,IAAwC,CAA/C,MAAA,CAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAe,GAAG,CAAC,IAAlC,CAA2C,IAAI,GAElE,EAA0B,EAAO,EAAkB,MAEnD,EAAqC,EAAO,EAAyB,EAAU,IAC/E,EAAuB,EAC3B,EAAO,EAAoC,EAAyB,KACpE,EAAO,EAAkB,MAE3B,MAAO,CACL,MAAO,WACP,MAAO,EAEL,EAGA,OACA,MACA,KACA,KACA,MACA,MACF,UAAW,CACb,CACF,EAEM,EAAW,EAAiB,CAAE,aAAc,CAAA,CAAK,GAEjD,EAAyB,EAAiB,CAAE,aAAc,CAAA,CAAM,GAEhE,EAAyB,SAAS,CAAM,CAAE,CAAW,EACzD,MAAO,CACL,MAAO,EACL,EACA,EACE,EACE,MACA,EACE,KACA,IACA,KACA,IACA,KACA,KACA,UAER,WAAY,EAMZ,IAAK,EACH,EACE,KACA,MACJ,UAAW,EAEX,SAAU,EAAK,OAAO,CAAC,EAAc,CAAE,KAAM,CAAY,GACzD,SAAU,CACR,EACA,EACA,EAAK,OAAO,CAAC,EAAmB,CAAE,MAAO,IAAK,GAC9C,EACD,AACH,CACF,EAEM,EAAkB,EAAuB,IAAK,YAC9C,EAAsC,EAAuB,SAAU,WAGvE,EAAmB,CACvB,MAAO,CACL,UACA,OACA,MAzGkB,mBA2GnB,CACD,WAAY,CACV,EAAG,UACH,EAAG,aACL,EACA,IAAK,EAAU,UACf,SAAU,EACV,SAAU,CACR,EACA,EAAK,OAAO,CAAC,EAAmB,CAAE,MAAO,IAAK,GAC9C,EACA,CAEE,MAAO,WACP,MAAO,KACT,EACA,EACD,AACH,EAEM,EAAyB,CAE7B,MAAO,yBAEP,MAAO,sBACT,EAEM,EAAe,CAEnB,MAAO,CACL,OACA,EAAO,IAAK,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAzRO,CAC5B,KACA,OACA,QACA,OACA,SACA,QACA,IACA,IACA,IACA,OACA,OACA,OACA,OACD,IA4QG,KACD,CACD,WAAY,CAAE,EAAG,MAAO,EACxB,IAAK,EAAU,OACjB,EAIM,EAAS,CACb,SAAU,CACR,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,AACH,EAMM,EAAgB,CACpB,MAAO,SACP,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACtB,AACH,EAEM,EAAkB,CACtB,MAAO,SACP,MAAO,KACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACT,EACA,EAAK,gBAAgB,CACtB,AACH,EAEM,EAAuB,CAC3B,MAAO,SACP,MAAO,MACP,IAAK,MACL,UAAW,CACb,EACM,EAAQ,CACZ,MAAO,QACP,MAAO,KACP,IAAK,KACL,SAAU,CACZ,EAEM,EAAsB,CAC1B,MAAO,SACP,MAAO,MACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,MAAO,MACT,EACA,EAAK,gBAAgB,CACrB,EACD,AACH,EAEM,EAA+B,CACnC,MAAO,SACP,MAAO,aACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,MAAO,MACT,EACA,CACE,MAAO,IACT,EACA,EAAK,gBAAgB,CACrB,EACD,AACH,EAkBM,EAAe,CACnB,MAAO,SACP,MAAO,EACL,IACA,EACE,SACA,8DAEF,IAEJ,SAIA,EAAM,QAAQ,CAAG,CACf,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAaM,CACL,KAAM,KACN,QAAS,CACP,KACA,KACD,CACD,SAAU,EACV,QAAS,OACT,iBAAkB,CAChB,yBAA0B,SAC5B,EACA,SAAU,C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ACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,OACL,QAAS,KACX,EACD,AACH,EACD,CAgBD,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC9BA,EAAO,OAAO,CAzCd,SAAiB,CAAI,EACnB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,UAAW,CACtB,SAAU,kIACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,WACT,EACA,CACE,MAAO,MACP,IAAK,WACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,OACT,EACD,AACH,EACA,CACE,UAAW,WACX,MAAO,IACP,IAAK,GACP,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECiFA,EAAO,OAAO,CAvHd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QAEE,igCAaF,KACE,wwCAeF,SAEE,ynLAkEF,QAAS,YACX,EACA,QAAS,IACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC47FA,EAAO,OAAO,CAljGd,SAAa,CAAI,EA+hGf,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAliGa,CACf,aACA,SACA,UACA,MACA,QACA,QACA,OACA,cACA,WACA,UACA,SACA,MACA,KACA,OACA,MACA,OACA,OACA,MACA,WACA,YACA,KACA,MACA,MACA,MACA,KACA,SACA,SACA,SACA,SACA,OACA,QACA,MACA,QACA,OACA,MACD,CA+/FG,SA7/Fc,CAChB,MACA,YACA,YACA,mBACA,6BACA,wBACA,mBACA,oBACA,mBACA,gBACA,wBACA,8BACA,sBACA,YACA,2BACA,kCACA,6BACA,iCACA,SACA,SACA,SACA,UACA,YACA,YACA,eACA,iBACA,qBACA,aACA,mBACA,eACA,mBACA,eACA,eACA,eACA,mBACA,mBACA,cACA,gBACA,YACA,kBACA,eACA,qBACA,aACA,eACA,YACA,gBACA,YACA,aACA,eACA,eACA,gBACA,oBACA,YACA,gBACA,oBACA,aACA,cACA,eACA,mBACA,iBACA,mBACA,gBACA,kBACA,iBACA,iBACA,oBACA,iBACA,oBACA,2BACA,mBACA,yBACA,oBACA,4BACA,0BACA,sBACA,0BACA,cACA,uBACA,2BACA,sBACA,oBACA,uBACA,uBACA,wBACA,qBACA,qBACA,wBACA,yBACA,kCACA,0BACA,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,yBACA,kCACA,yBACA,eACA,0BACA,0BACA,wBACA,2BACA,0BACA,0BACA,wBACA,iBACA,2BACA,0BACA,iBACA,yBACA,uBACA,wBACA,mBACA,4BACA,mBACA,uBACA,uBACA,qBACA,kBACA,mBACA,0BACA,6BACA,0BACA,iCACA,8BACA,8BACA,0BACA,oBACA,kBACA,oBACA,yBACA,2BACA,mBACA,sBACA,uBACA,sBACA,oBACA,mBACA,qBACA,0BACA,0BACA,wBACA,mBACA,8BACA,uBACA,gCACA,uBACA,2BACA,6BACA,wBACA,iCACA,0BACA,qBACA,mBACA,uBACA,yBACA,oBACA,gCACA,iCACA,wBACA,yBACA,iBACA,uBACA,mBACA,wBACA,yBACA,iCACA,6BACA,8BACA,4BACA,8BACA,gBACA,gBACA,OACA,wBACA,2BACA,yBACA,4BACA,uBACA,2BACA,uBACA,kBACA,cACA,iCACA,qBACA,eACA,gBACA,mCACA,uCACA,oBACA,gBACA,gBACA,cACA,qBACA,uBACA,kBACA,qBACA,kBACA,cACA,oBACA,kBACA,sBACA,aACA,cACA,cACA,cACA,gBACA,cACA,oBACA,kBACA,cACA,qBACA,uBACA,cACA,gBACA,cACA,eACA,cACA,aACA,eACA,yBACA,gBACA,qBACA,iBACA,oBACA,0BACA,qBACA,wBACA,sBACA,2BACA,wBACA,2BACA,2BACA,yBACA,sBACA,0BACA,0BACA,yBACA,wBACA,oBACA,oBACA,0BACA,qBACA,wBACA,sBACA,2BACA,wBACA,yBACA,sBACA,sBACA,uBACA,wBACA,yBACA,OACA,SACA,MACA,QACA,gBACA,oBACA,mBACA,uBACA,mBACA,mBACA,sBACA,qBACA,qBACA,qBACA,kBACA,oBACA,oBACA,mBACA,mBACA,wBACA,oBACA,yBACA,iBACA,sBACA,kBACA,uBACA,sBACA,2BACA,iBACA,kBACA,gBACA,gBACA,uBACA,kBACA,kBACA,mBACA,iBACA,iBACA,wBACA,mBACA,MACA,UACA,UACA,UACA,WACA,oBACA,wBACA,oBACA,uBACA,wBACA,eACA,mBACA,uBACA,gBACA,qBACA,oBACA,eACA,uBACA,gBACA,wBACA,kBACA,0BACA,iBACA,kBACA,0BACA,oBACA,gBACA,mBACA,gBACA,iBACA,eACA,gBACA,kBACA,iBACA,kBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,mBACA,oBACA,eACA,mBACA,sBACA,iBACA,iBACA,YACA,sBACA,aACA,eACA,YACA,aACA,gBACA,gBACA,cACA,qBACA,qBACA,aACA,iBACA,aACA,WACA,iBACA,WACA,kBACA,kBACA,YACA,OACA,cACA,sBACA,WACA,oBACA,oBACA,oBACA,wBACA,4BACA,oCACA,qCACA,8BACA,qBACA,qBACA,iBACA,wBACA,iBACA,wBACA,mBACA,oBACA,mBACA,oBACA,oBACA,wBACA,yBACA,wBACA,qBACA,0BACA,2BACA,4BACA,oBACA,sBACA,sBACA,oBACA,gBACA,2BACA,2BACA,uBACA,2BACA,4BACA,4BACA,qBACA,oBACA,cACA,iBACA,4BACA,4BACA,yBACA,yBACA,aACA,cACA,cACA,oBACA,qBACA,aACA,mBACA,eACA,qBACA,sBACA,wBACA,kCACA,qBACA,aACA,iBACA,iBACA,kBACA,sCACA,gBACA,kBACA,oBACA,wBACA,kBACA,gBACA,oBACA,iBACA,iBACA,4BACA,8BACA,0BACA,oBACA,iBACA,yBACA,YACA,kBACA,mBACA,kBACA,wBACA,yBACA,YACA,aACA,mBACA,oBACA,uBACA,+BACA,qBACA,iBACA,uBACA,wBACA,iBACA,uBACA,2BACA,wBACA,4BACA,qBACA,YACA,iBACA,4BACA,iBACA,kBACA,gBACA,kBACA,oBACA,wBACA,kBACA,gBACA,0BACA,yBACA,qBACA,cACA,kBACA,sBACA,mBACA,uBACA,kBACA,wBACA,4BACA,oBACA,wBACA,eACA,mBACA,uBACA,oBACA,wBACA,yBACA,6BACA,qBACA,yBACA,YACA,kBACA,mBACA,gBACA,sBACA,uBACA,4BACA,kCACA,mCACA,wBACA,8BACA,+BACA,qBACA,YACA,eACA,gBACA,sBACA,uBACA,cACA,oBACA,qBACA,sBACA,4BACA,6BACA,YACA,cACA,mBACA,0BACA,qBACA,gBACA,eACA,iBACA,kBACA,cACA,uBACA,wBACA,uBACA,uBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,wBACA,+BACA,0BACA,eACA,iBACA,cACA,mBACA,0BACA,qBACA,kBACA,eACA,qBACA,4BACA,uBACA,uBACA,uBACA,kBACA,kBACA,gBACA,gBACA,cACA,gBACA,eACA,iBACA,iBACA,kBACA,gBACA,qBACA,qBACA,iBACA,kBACA,iBACA,uBACA,sBACA,eACA,kBACA,cACA,kBACA,eACA,eACA,gBACA,aACA,kBACA,iBACA,eACA,cACA,gBACA,gBACA,iBACA,eACA,gBACA,oBACA,mBACA,mBACA,uBACA,oBACA,iBACA,gBACA,uBACA,cACA,iBACA,sBACA,qBACA,qBACA,4BACA,qBACA,4BACA,aACA,cACA,yBACA,eACA,kBACA,8BACA,oBACA,mBACA,qBACA,yBACA,yBACA,2BACA,sBACA,oBACA,uBACA,uBACA,4BACA,mBACA,mBACA,oBACA,iBACA,gBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,iBACA,gBACA,kBACA,mBACA,iBACA,eACA,gBACA,gBACA,gBACA,eACA,iBACA,OACA,OACA,eACA,sBACA,sBACA,sBACA,sBACA,2BACA,kBACA,gBACA,sBACA,uBACA,aACA,8BACA,MACA,mBACA,6BACA,6BACA,6BACA,wBACA,wBACA,gBACA,kBACA,gBACA,kBACA,iBACA,gBACA,oBACA,qBACA,mBACA,gBACA,gBACA,sBACA,YACA,cACA,cACA,kBACA,kBACA,iBACA,cACA,kBACA,gBACA,iBACA,wBACA,6BACA,sBACA,uBACA,sBACA,wBACA,mBACA,uBACA,yBACA,oBACA,sBACA,eACA,iBACA,eACA,gBACA,gBACA,QACA,WACA,qBACA,yBACA,kBACA,sBACA,mBACA,cACA,sBACA,kBACA,cACA,gBACA,iBACA,oBACA,gBACA,kBACA,gBACA,gBACA,uBACA,sBACA,gBACA,mBACA,eACA,sBACA,0BACA,kBACA,sBACA,OACA,YACA,cACA,mBACA,yBACA,oBACA,sBACA,mBACA,oBACA,sBACA,cACA,WACA,iBACA,YACA,mBACA,eACA,YACA,mBACA,iBACA,qBACA,qBACA,uBACA,+BACA,gCACA,uBACA,uBACA,4BACA,+BACA,0BACA,2BACA,mBACA,sBACA,qBACA,oBACA,oBACA,uBACA,uBACA,yBACA,4BACA,+BACA,oBACA,qBACA,qBACA,wBACA,uBACA,aACA,YACA,eACA,2BACA,gBACA,uBACA,8BACA,0BACA,wBACA,oBACA,sBACA,kCACA,8BACA,4BACA,wBACA,0BACA,+BACA,kCACA,6BACA,2BACA,0BACA,wBACA,2BACA,8BACA,yBACA,uBACA,sBACA,oBACA,cACA,oBACA,kBACA,oBACA,wBACA,oBACA,wBACA,aACA,mBACA,YACA,kBACA,WACA,WACA,kBACA,aACA,mBACA,0BACA,uBACA,sBACA,oBACA,yBACA,8BACA,wBACA,iCACA,wBACA,6BACA,2BACA,4BACA,mBACA,gBACA,cACA,gBACA,qBACA,yBACA,wBACA,4BACA,sBACA,0BACA,sBACA,0BACA,uBACA,2BACA,yBACA,6BACA,yBACA,6BACA,qBACA,yBACA,oBACA,wBACA,oBACA,wBACA,gBACA,sBACA,uBACA,gBACA,iBACA,0BACA,uBACA,sBACA,oBACA,wBACA,iCACA,2BACA,4BACA,mBACA,gBACA,cACA,gBACA,qBACA,yBACA,wBACA,4BACA,sBACA,0BACA,sBACA,0BACA,uBACA,2BACA,yBACA,6BACA,yBACA,6BACA,qBACA,yBACA,oBACA,wBACA,oBACA,wBACA,gBACA,sBACA,uBACA,eACA,gBACA,kBACA,iBACA,kBACA,WACA,gBACA,+BACA,mBACA,eACA,+BACA,cACA,eACA,cACA,yBACA,sBACA,uBACA,kBACA,aACA,YACA,iBACA,iBACA,WACA,uBACA,gBACA,kBACA,qBACA,qBACA,iBACA,mBACA,wBACA,0BACA,2BACA,2BACA,kBACA,gBACA,wBACA,wBACA,0BACA,4BACA,6BACA,6BACA,mBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,iBACA,sBACA,oBACA,yBACA,aACA,QACA,WACA,UACA,gBACA,WACA,UACA,cACA,wBACA,YACA,cACA,gBACA,WACA,WACA,iCACA,YACA,8BACA,SACA,aACA,SACA,UACA,YACA,YACA,eACA,cACA,cACA,aACA,iBACA,iBACA,wBACA,yBACA,0BACA,iBACA,mBACA,uBACA,qBACA,uBACA,mBACA,uBACA,qBACA,0BACA,wBACA,wBACA,0BACA,qBACA,yBACA,yBACA,0BACA,0BACA,2BACA,0BACA,6BACA,6BACA,8BACA,0BACA,6BACA,6BACA,8BACA,+BACA,+BACA,8BACA,8BACA,8BACA,0BACA,yBACA,yBACA,0BACA,2BACA,2BACA,0BACA,0BACA,0BACA,iBACA,eACA,cACA,gBACA,0BACA,qBACA,kBACA,eACA,yBACA,sBACA,gBACA,yBACA,kBACA,0BACA,yBACA,yBACA,eACA,mBACA,eACA,wBACA,iBACA,yBACA,uBACA,mBACA,wBACA,oBACA,mBACA,cACA,cACA,qBACA,eACA,8BACA,6BACA,0BACA,qBACA,mBACA,uBACA,wBACA,yBACA,wBACA,2BACA,6BACA,6BACA,8BACA,4BACA,8BACA,gCACA,uBACA,4BACA,uBACA,4BACA,yBACA,yBACA,6BACA,2BACA,uBACA,sBACA,4BACA,mBACA,wBACA,mBACA,wBACA,eACA,wBACA,oBACA,eACA,qBACA,qBACA,qBACA,sBACA,sBACA,uBACA,sBACA,yBACA,yBACA,yBACA,sBACA,yBACA,yBACA,0BACA,qBACA,0BACA,qBACA,0BACA,qBACA,qBACA,iBACA,sBACA,iBACA,sBACA,mBACA,mBACA,oBACA,oBACA,qBACA,oBACA,uBACA,uBACA,wBACA,wBACA,yBACA,mBACA,wBACA,mBACA,wBACA,oBACA,qBACA,eACA,oBACA,eACA,oBACA,uBACA,wBACA,uBACA,uBACA,eACA,UACA,UACA,cACA,cACA,OACA,YACA,KACA,WACA,QACA,OACA,OACA,iBACA,iBACA,kBACA,kBACA,mBACA,mBACA,eACA,wBACA,sBACA,gCACA,sCACA,0CACA,aACA,kBACA,aACA,qBACA,wBACA,mBACA,oBACA,mBACA,mBACA,0BACA,MACA,WACA,qBACA,kBACA,OACA,SACA,cACA,eACA,SACA,cACA,mBACA,kBACA,MACA,aACA,aACA,qBACA,6BACA,8BACA,cACA,mBACA,iBACA,mBACA,kBACA,oBACA,mBACA,qBACA,mBACA,qBACA,cACA,YACA,qBACA,YACA,mBACA,wBACA,wBACA,oBACA,qBACA,0BACA,iBACA,kBACA,eACA,mBACA,eACA,qBACA,iBACA,wBACA,iBACA,wBACA,oBACA,2BACA,wBACA,oBACA,2BACA,SACA,kBACA,wBACA,sBACA,4BACA,wBACA,4BACA,wBACA,4BACA,kBACA,kBACA,yBACA,sBACA,mBACA,mBACA,uBACA,qBACA,sBACA,gBACA,kBACA,kBACA,oBACA,wBACA,qBACA,mBACA,oBACA,qBACA,qBACA,kBACA,wBACA,mBACA,oBACA,qBACA,MACA,sBACA,gBACA,cACA,kBACA,gBACA,0BACA,eACA,sBACA,sBACA,wBACA,0BACA,kBACA,mBACA,qBACA,qBACA,sBACA,qBACA,uBACA,2BACA,sBACA,sBACA,wBACA,sBACA,wBACA,sBACA,uBACA,uBACA,uBACA,wBACA,8BACA,+BACA,oBACA,6BACA,+BACA,oBACA,oBACA,qBACA,qBACA,2BACA,oBACA,sBACA,yBACA,qBACA,qBACA,uBACA,wBACA,2BACA,oBACA,uBACA,qBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,sBACA,sBACA,sBACA,oBACA,oBACA,oBACA,uBACA,uBACA,uBACA,mBACA,kBACA,oBACA,sBACA,mBACA,oBACA,iBACA,wBACA,kBACA,kBACA,iBACA,mBACA,mBACA,kBACA,mBACA,iBACA,qBACA,kBACA,oBACA,WACA,iBACA,cACA,cACA,oBACA,oBACA,cACA,oBACA,iBACA,WACA,cACA,YACA,kBACA,gBACA,kBACA,gBACA,kBACA,uBACA,mBACA,mBACA,qBACA,iBACA,aACA,aACA,oBACA,cACA,eACA,eACA,cACA,kBACA,gBACA,qBACA,aACA,aACA,gCACA,sBACA,wBACA,4BACA,8BACA,uBACA,qBACA,4BACA,uBACA,2BACA,yBACA,yBACA,sCACA,4BACA,gCACA,kCACA,mCACA,sCACA,8BACA,iCACA,+BACA,gCACA,qCACA,oCACA,kCACA,6BACA,sBACA,uBACA,0BACA,uBACA,gCACA,6BACA,gCACA,4BACA,0BACA,iCACA,8BACA,gCACA,4BACA,0BACA,4BACA,6BACA,0BACA,yBACA,0BACA,0BACA,qCACA,wCACA,sCACA,wBACA,4BACA,+BACA,4BACA,qCACA,+BACA,qCACA,mCACA,iCACA,8BACA,mCACA,+BACA,6BACA,gCACA,+BACA,gCACA,6BACA,qCACA,mCACA,sCACA,sCACA,kCACA,qCACA,kCACA,mCACA,mCACA,+BACA,+BACA,8BACA,iCACA,sCACA,+BACA,+BACA,6BACA,qCACA,mCACA,iCACA,8BACA,uBACA,yBACA,sBACA,uBACA,0BACA,uBACA,uBACA,2BACA,wBACA,kCACA,6BACA,cACA,aACA,gBACA,gBACA,kBACA,iBACA,oBACA,kBACA,qBACA,oBACA,kBACA,mBACA,iBACA,mBACA,QACA,MACA,WACA,SACA,kBACA,eACA,kBACA,YACA,YACA,OACA,sBACA,yBACA,wBACA,aACA,gBACA,uBACA,wCACA,wBACA,oCACA,6BACA,yBACA,0BACA,oBACA,qBACA,4BACA,qBACA,sBACA,4BACA,sBACA,yBACA,yBACA,4BACA,4BACA,4BACA,WACA,cACA,iBACA,cACA,kBACA,gBACA,gBACA,oBACA,YACA,iBACA,qBACA,oBACA,sBACA,YACA,gBACA,eACA,kBACA,kBACA,sBACA,wBACA,oBACA,iBACA,QACA,2BACA,2BACA,cACA,mBACA,iBACA,qBACA,gBACA,kBACA,kBACA,mBACA,kBACA,eACA,uBACA,oCACA,wBACA,4BACA,qBACA,YACA,sBACA,mBACA,iBACA,0BACA,kBACA,2BACA,qBACA,qBACA,eACA,aACA,uBACA,6BACA,8BACA,uBACA,6BACA,4BACA,kCACA,wBACA,oBACA,qBACA,yBACA,qBACA,aACA,eACA,qBACA,gBACA,sBACA,OACA,MACA,2BACA,yBACA,kCACA,sCACA,6BACA,+BACA,gCACA,kCACA,iCACA,gCACA,0BACA,yBACA,yBACA,6BACA,+BACA,kCACA,6BACA,mCACA,oCACA,8BACA,6BACA,0BACA,8BACA,oCACA,qCACA,0BACA,yBACA,yBACA,qBACA,0BACA,0BACA,8BACA,qBACA,sBACA,sBACA,0BACA,uBACA,oBACA,qBACA,oBACA,0BACA,0BACA,0BACA,2BACA,2BACA,qBACA,8BACA,qBACA,aACA,iBACA,0BACA,gBACA,wBACA,6BACA,gBACA,mBACA,gBACA,eACA,qBACA,yBACA,uBACA,uBACA,wBACA,sBACA,oBACA,kBACA,kBACA,uBACA,oBACA,mBACA,wBACA,qBACA,iBACA,iBACA,mBACA,qBACA,qBACA,eACA,0BACA,kBACA,wBACA,iBACA,cACA,oBACA,+BACA,kBACA,uBACA,wBACA,4BACA,uBACA,oBACA,mBACA,MACA,OACA,aACA,aACA,SACA,iBACA,qBACA,iBACA,gBACA,oBACA,cACA,eACA,gBACA,gBACA,mBACA,aACA,iBACA,gBACA,yBACA,gBACA,oBACA,gBACA,cACA,kBACA,kBACA,sBACA,gBACA,iBACA,uBACA,eACA,gBACA,aACA,iBACA,gBACA,iBACA,qBACA,qBACA,eACA,mBACA,qBACA,cACA,kBACA,oBACA,eACA,eACA,mBACA,gBACA,iBACA,aACA,uBACA,mBACA,qBACA,gBACA,aACA,uBACA,eACA,oBACA,iBACA,qBACA,wBACA,iBACA,8BACA,eACA,4BACA,qBACA,qBACA,qBACA,yBACA,sBACA,oBACA,mBACA,uBACA,uBACA,iBACA,eACA,oBACA,qBACA,yBACA,oBACA,iBACA,MACA,yBACA,gBACA,qBACA,2BACA,0BACA,kBACA,oBACA,uBACA,mBACA,mBACA,oBACA,yBACA,yBACA,2BACA,0BACA,4BACA,4BACA,oBACA,wBACA,sBACA,iBACA,gBACA,iBACA,kBACA,kBACA,iBACA,gBACA,iBACA,kBACA,kBACA,gBACA,cACA,uBACA,8BACA,8BACA,oBACA,0BACA,qBACA,mBACA,0BACA,yBACA,sBACA,oBACA,gBACA,gBACA,cACA,uBACA,0BACA,qBACA,mBACA,oBACA,kBACA,YACA,YACA,mBACA,mBACA,sBACA,kBACA,sBACA,sBACA,qBACA,sBACA,qBACA,2BACA,yBACA,yBACA,iCACA,iCACA,wBACA,iCACA,wBACA,oBACA,0BACA,oBACA,qBACA,oBACA,mBACA,eACA,iBACA,kBACA,kBACA,oBACA,sBACA,6BACA,wBACA,gBACA,SACA,iBACA,WACA,eACA,gBACA,mCACA,2BACA,kCACA,kCACA,gCACA,mCACA,sCACA,4CACA,gCACA,yCACA,qCACA,4BACA,0BACA,gCACA,uCACA,2BACA,wBACA,+BACA,iBACA,oBACA,yBACA,sBACA,sBACA,2BACA,wBACA,8BACA,gCACA,wBACA,yBACA,sBACA,4BACA,8BACA,yBACA,sBACA,cACA,eACA,eACA,gBACA,uBACA,2BACA,mCACA,uCACA,uBACA,aACA,gBACA,gBACA,gBACA,gBACA,0BACA,2BACA,2BACA,2BACA,6BACA,gCACA,6BACA,sBACA,uBACA,oBACA,yBACA,gBACA,yBACA,oBACA,gBACA,kBACA,qBACA,gBACA,oBACA,kBACA,gBACA,mCACA,mCACA,cACA,aACA,oBACA,qBACA,mBACA,qBACA,mBACA,mBACA,mBACA,aACA,cACA,eACA,gBACA,mBACA,kBACA,iBACA,sBACA,mBACA,iBACA,iBACA,iBACA,kBACA,iBACA,sBACA,mBACA,iBACA,iBACA,iBACA,kBACA,qBACA,mBACA,mBACA,uBACA,8BACA,iBACA,qBACA,kBACA,gBACA,gBACA,sCACA,mCACA,qBACA,mBACA,oBACA,oBACA,wBACA,oBACA,wBACA,2BACA,mBACA,eACA,eACA,gBACA,mBACA,2BACA,2BACA,0BACA,qBACA,qBACA,mBACA,0BACA,qBACA,mBACA,oBACA,oBACA,wBACA,wBACA,uBACA,wBACA,uBACA,sBACA,uBACA,wBACA,kBACA,0BACA,0BACA,2BACA,2BACA,iCACA,kCACA,eACA,aACA,WACA,YACA,kBACD,CAqhCG,OAphCY,CACd,cACA,kBACA,eACA,gBACA,gBACA,kBACA,sBACA,qBACA,aACA,MACA,WACA,eACA,WACA,aACA,aACA,MACA,uBACA,2BACA,uBACA,uBACA,aACA,eACA,aACA,aACA,eACA,iBACA,eACA,cACA,eACA,cACA,iBACA,gBACA,WACA,iBACA,kCACA,0CACA,yCACA,iCACA,yCACA,wCACA,gCACA,wCACA,qBACA,aACA,eACA,mBACA,mBACA,mBACA,uBACA,qBACA,qBACA,kBACA,SACA,gBACA,gBACA,iBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,SACA,YACA,SACA,eACA,mBACA,eACA,gBACA,cACA,UACA,iBACA,eACA,kBACA,aACA,oBACA,wBACA,gBACA,iBACA,wBACA,gBACA,kBACA,wBACA,cACA,aACA,aACA,aACA,cACA,eACA,cACA,aACA,aACA,YACA,kBACA,uBACA,oBACA,gBACA,cACA,aACA,aACA,aACA,YACA,iBACA,cACA,SACA,UACA,SACA,WACA,WACA,YACA,SACA,UACA,SACA,SACA,WACA,WACA,WACA,SACA,UACA,WACA,WACA,QACA,WACA,SACA,UACA,WACA,kBACA,mBACA,iBACA,gBACA,kBACA,uBACA,eACA,oBACA,gBACA,mBACA,YACA,aACA,cACA,WACA,UACA,WACA,aACA,UACA,eACA,eACA,UACA,cACA,eACA,aACA,eACA,aACA,aACA,iBACA,wBACA,iBACA,kBACA,kBACA,yBACA,oBACA,qBACA,qBACA,yBACA,2BACA,qBACA,gBACA,oBACA,4BACA,mBACA,2BACA,YACA,cACA,oBACA,oBACA,eACA,eACA,cACA,mBACA,gBACA,gBACA,WACA,aACA,eACA,cACA,WACA,UACA,UACA,WACA,aACA,UACA,WACA,UACA,iBACA,iBACA,WACA,mBACA,qBACA,sBACA,0BACA,gCACA,2BACA,kBACA,6BACA,qBACA,qBACA,kBACA,wBACA,eACA,qBACA,mBACA,0BACA,0BACA,qBACA,oBACA,0BACA,qBACA,cACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,uBACA,aACA,eACA,YACA,aACA,kBACA,UACA,gBACA,cACA,iBACA,eACA,cACA,iBACA,cACA,gBACA,aACA,wBACA,sBACA,wBACA,sBACA,mBACA,uBACA,sBACA,uBACA,yBACA,wBACA,0BACA,sBACA,iBACA,+BACA,6BACA,+BACA,6BACA,0BACA,8BACA,6BACA,8BACA,gCACA,+BACA,iCACA,6BACA,wBACA,wBACA,uBACA,yBACA,0BACA,yBACA,2BACA,yBACA,wBACA,0BACA,SACA,eACA,aACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,oBACA,oBACA,qBACA,kBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,oBACA,oBACA,qBACA,kBACA,cACA,cACA,gBACA,iBACA,gBACA,kBACA,mBACA,kBACA,oBACA,WACA,iBACA,iBACA,sBACA,oBACA,eACA,oBACA,mBACA,WACA,aACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,gBACA,uBACA,kBACA,iBACA,mBACA,cACA,gBACA,YACA,UACA,gBACA,cACA,iBACA,kBACA,aACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,eACA,eACA,aACA,oBACA,oBACA,oBACA,eACA,aACA,YACA,YACA,eACA,YACA,UACA,YACA,UACA,cACA,WACA,aACA,SACA,cACA,QACA,aACA,aACA,gBACA,yBACA,SACA,YACA,aACA,cACA,cACA,UACA,YACA,yBACA,yBACA,yBACA,6BACA,6BACA,6BACA,wBACA,wBACA,wBACA,wBACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,eACA,gBACA,eACA,gBACA,WACA,YACA,YACA,gBACA,eACA,iBACA,iBACA,kBACA,iBACA,mBACA,aACA,gBACA,eACA,uBACA,qBACA,wBACA,uBACA,yBACA,2BACA,uBACA,mBACA,kBACA,WACA,gCACA,0BACA,+BACA,2BACA,yBACA,wBACA,qBACA,0BACA,mBACA,uBACA,qBACA,qBACA,sBACA,uBACA,qBACA,sBACA,iBACA,mBACA,iBACA,mBACA,iBACA,sBACA,eACA,8BACA,4BACA,8BACA,kCACA,4BACA,0BACA,wBACA,2BACA,6BACA,0BACA,kCACA,gBACA,kBACA,cACA,UACA,cACA,UACA,cACA,gBACA,cACA,oBACA,cACA,eACA,SACA,UACA,YACA,UACA,WACA,WACA,WACA,iBACA,UACA,SACA,iCACA,iCACA,mCACA,sCACA,kCACA,qCACA,yCACA,oCACA,yBACA,2BACA,8BACA,uBACA,0BACA,sBACA,oBACA,2BACA,qBACA,qBACA,oBACA,qBACA,uBACA,oBACA,0BACA,oBACA,oCACA,kBACA,yBACA,kBACA,mBACA,mBACA,mBACA,iBACA,iBACA,mBACA,mBACA,kBACA,oBACA,gBACA,QACA,oBACA,mBACA,mBACA,aACA,SACA,aACA,SACA,WACA,YACA,aACA,uBACA,oCACA,wBACA,SACA,SACA,SACA,YACA,YACA,UACA,aACA,SACA,gBACA,aACA,cACA,aACA,kBACA,QACA,eACA,gBACA,cACA,iBACA,iBACA,mBACA,uBACA,sBACA,sBACA,mBACA,wBACA,mCACA,wBACA,+BACA,0BACA,uBACA,0BACA,uBACA,uBACA,uBACA,uBACA,kBACA,yBACA,0BACA,sBACA,qBACA,qBACA,8BACA,sBACA,uBACA,4BACA,6BACA,uBACA,wBACA,wBACA,yBACA,6BACA,6BACA,4BACA,kBACA,wBACA,8BACA,kCACA,+BACA,gCACA,kCACA,mCACA,kCACA,gCACA,iCACA,4BACA,2BACA,2BACA,4BACA,4BACA,yBACA,0BACA,2BACA,gCACA,gCACA,KACA,kBACA,eACA,cACA,eACA,eACA,iBACA,kBACA,mBACA,oBACA,uBACA,kBACA,gBACA,iBACA,mBACA,mBACA,gBACA,qBACA,kBACA,iBACA,gBACA,qBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,kBACA,kBACA,gBACA,wBACA,yBACA,wBACA,6BACA,+BACA,kCACA,oBACA,qBACA,qBACA,4BACA,wBACA,wBACA,wBACA,6BACA,kCACA,mCACA,OACA,mBACA,sBACA,cACA,eACA,0BACA,wBACA,eACA,kBACA,mBACA,oBACA,oBACA,qBACA,kBACA,oBACA,mBACA,iBACA,qBACA,oBACA,wBACA,6BACA,gCACA,qBACA,sBACA,qBACA,uBACA,qBACA,wBACA,uBACA,sBACA,8BACA,oBACA,wBACA,4BACA,sBACA,oBACA,cACA,eACA,gBACA,gBACA,iBACA,iCACA,wCACA,kCACA,mCACA,sCACA,+BACA,iCACA,8BACA,mBACA,mBACA,kBACA,mBACA,sBACA,sBACA,qBACA,qBACA,8BACA,6BACA,8BACA,+BACA,iBACA,YACA,WACA,YACA,YACA,kBACA,cACA,cACA,2BACA,6BACA,mBACA,qBACA,2BACA,4BACA,2BACA,4BACA,2BACA,4BACA,iBACA,eACA,iBACA,WACA,kBACA,OACA,UACA,YACA,YACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,wBACA,4BACA,2BACA,qBACA,sBACA,qBACA,mBACA,sBACA,wBACA,qBACA,sBACA,uBACA,wBACA,oBACA,mBACA,sBACA,sBACA,uBACA,yBACA,SACA,SACA,YACA,eACA,aACA,aACA,YACA,YACA,UACA,SACA,WACA,YACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,YACA,UACA,cACA,UACA,YACA,cACA,WACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,cACA,YACA,WACA,iBACA,UACA,cACA,YACA,WACA,YACA,WACA,WACA,cACA,SACA,QACA,mBACA,8BACA,OACD,CAuMG,oBAtMuB,CACzB,QACA,sBACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,iBACA,aACA,mBACA,oBACA,uBACA,wBACA,cACA,YACA,aACA,WACA,iBACA,gBACA,qBACA,cACA,eACA,iBACA,gBACA,iBACA,eACA,kBACA,eACA,gBACA,aACA,aACA,QACA,YACA,aACA,oBACA,eACA,aACA,eACA,eACA,aACA,yBACA,MACA,WACA,WACA,oBACA,UACA,oBACA,eACA,UACA,oBACA,SACA,SACA,WACA,KACA,cACA,cACA,cACA,cACA,eACA,cACA,eACA,eACA,oBACA,cACA,iBACA,cACA,eACA,oBACA,mBACA,kBACA,QACA,QACA,cACA,UACA,aACA,UACA,eACA,mBACA,UACA,UACA,eACA,aACA,YACA,UACA,aACA,iBACA,aACA,mBACA,gBACA,wBACA,aACA,aACA,aACA,aACA,sBACA,uBACA,aACA,mBACA,mBACA,uBACA,kBACA,kBACA,YACA,YACA,cACA,qBACA,cACA,gBACA,qBACA,wBACA,wBACA,WACA,iBACA,yBACA,iBACA,yBACA,eACA,eACA,YACA,cACA,cACA,uBACA,oBACA,YACA,eACA,cACA,iBACA,oBACA,sBACA,2BACA,yBACA,oBACA,uBACA,wBACA,OACA,aACA,cACA,YACA,kBACA,aACA,aACA,QACA,SACA,oBACA,QACA,QACA,gBACA,eACA,eACA,iBACA,iBACA,aACA,iBACA,iBACA,gBACA,oBACA,mBACA,iBACA,cACA,eACA,eACA,aACA,kBACA,eACA,aACA,aACA,aACA,UACA,SACA,gBACA,oBACA,IACA,YACA,SACA,IACA,YACA,SACD,AASC,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC55FA,EAAO,OAAO,CAlJd,SAAY,CAAI,EAyEd,IAAM,EAAW,CACf,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,MACD,CAGC,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,OACD,CA+BC,QA3Ee,CACf,OACA,QACA,OACA,MACD,CAuEC,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,SACD,AAuDD,EACA,MAAO,CACL,KAAM,KACN,QAAS,CAAE,SAAU,CACrB,SAAU,EACV,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,SACX,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,6DACP,UAAW,CACb,EACA,CACE,MAAO,sFACP,UAAW,CACb,EACA,CACE,MAAO,wBACP,UAAW,CACb,EACA,CACE,MAAO,uCACP,UAAW,CACb,EACA,CACE,MAAO,wDACP,UAAW,CACb,EACD,AACH,EACA,CAAE,MAAO,IACT,EACA,CACE,UAAW,WACX,cAAe,OACf,IAAK,cACL,WAAY,CAAA,EACZ,SAAU,CACR,EAAK,UAAU,CACf,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,MACX,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECzEA,EAAO,OAAO,CAxEd,SAAc,CAAI,EAkDhB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QApDa,CACf,UACA,SACA,QACA,SACA,SACA,WACA,QACA,SACA,MACA,MACA,QACA,MACA,UACA,QACA,KACA,OACA,OACA,QACA,OACA,QACA,WACA,UACA,eACA,OACA,OACA,SACA,SACA,KACA,OACA,OACA,YACA,MACA,QACA,UACA,QACA,QACA,WACA,mBACA,kBACA,SACA,aACA,MACA,MACA,SACA,OACA,QACD,CAMG,QAAS,CACP,OACA,QACA,OACD,AACH,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,YACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC+GA,EAAO,OAAO,CArLd,SAAgB,CAAI,EAqKlB,MAAO,CACL,KAAM,SACN,iBAAkB,CAAA,EAClB,SAvKe,CACf,OACA,UACA,cACA,cACA,YACA,cACA,iBACA,eACA,eACA,aACA,cACA,SACA,OACA,OACA,UACA,UACA,SACA,YACA,iBACA,WACA,UACA,sBACA,sBACA,QACA,UACA,SACA,UACA,UACA,QACA,UACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,UACA,KACA,OACA,UACA,QACA,UACA,MACA,KACA,aACA,aACA,SACA,MACA,UACA,YACA,SACA,SACA,SACA,SACA,eACA,QACA,SACA,YACA,MACA,WACA,QACA,WACA,UACA,SACA,QACA,OACA,QACA,OACA,OACA,YACA,aACA,WACA,OACA,UACA,OACA,OACA,QACA,SACA,QACA,MACA,YACA,OACA,QACA,OACA,UACA,UACA,OACA,WACA,MACA,MACA,SACA,SACA,aACA,OACA,UACA,YACA,QACA,MACA,OACA,OACA,WACA,WACA,WACA,QACA,OACA,UACA,UACA,QACA,SACA,QACA,SACA,UACA,OACA,YACA,SACA,UACA,YACA,gBACA,SACA,OACA,YACA,QACA,WACA,iBACA,kBACA,iBACA,YACA,YACA,OACA,OACA,MACA,QACA,WACA,QACA,UACA,OACA,QACA,OACA,YACA,YACA,UACA,cACA,QACA,OACA,OACA,gBACA,OACA,SACA,QACA,YACA,SACA,WACA,OACA,gBACA,kBACA,aACA,aACA,aACA,mBACA,QACA,YACD,CAKC,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,WAAW,CAEjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC9GA,EAAO,OAAO,CArEd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAExB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,MAAO,CAClB,iBAAkB,CAAA,EAClB,kBAAmB,CAAA,EACnB,SAAU,CACR,QAAS,CACP,QACA,WACA,eACA,OACA,QACA,SACA,YACA,YACA,QACA,SACA,WACA,OACA,KACD,CACD,QAAS,CACP,OACA,QACA,OACD,AACH,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,CACE,MAAO,cACP,MAAO,SACP,UAAW,CACb,EACA,CACE,MAAO,cACP,MAAO,4BACP,UAAW,CACb,EACA,CACE,MAAO,WACP,MAAO,KACP,IAAK,KACL,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CACE,MAAO,OACP,MAAO,OACP,WAAY,CAAA,CACd,EACA,CACE,MAAO,SACP,MAAO,EAAM,MAAM,CAxDR,yBAwDmB,EAAM,SAAS,CAAC,SAC9C,UAAW,CACb,EACD,CACD,QAAS,CACP,QACA,QACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECnEA,SAAS,EAAS,CAAQ,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAM,CAAC,EAEjC,OADA,EAAI,QAAQ,CAAG,EACR,CACT,CAkLA,EAAO,OAAO,CAhLd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,iBACX,EAAU,EAAS,CACvB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAEH,EACK,EAAS,CACb,UAAW,SACX,MAAO,iBACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAS,EAAS,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,EACK,EAAS,EAAS,CACtB,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,OACP,IAAK,OACL,UAAW,EACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,CACD,CAAE,UAAW,QAAS,GAGhB,EAAmB,CACvB,MAAO,CACL,yDACA,MACA,EAAK,mBAAmB,CACzB,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EAwDA,MAAO,CACL,KAAM,SACN,SAAU,CACR,oBAAqB,aACrB,QAAS,kBACT,KA5DU,CACZ,OACA,QACA,OACA,MACA,OACA,UACA,QACA,SACA,OACD,CAmDG,QAlDa,CAEf,MACA,KACA,KACA,SACA,QAEA,WACA,SACA,WACA,YACA,SACA,UACA,YACA,eACA,QACA,QACA,YACA,OACA,KACA,OACA,MACA,QACA,SACA,OACA,QACA,UACA,WACA,QACA,SACA,MACA,QACA,UACA,aACA,UACA,MACA,SACA,UACA,SACA,aACA,MACD,AASC,EACA,SAAU,CACR,EAAK,OAAO,CAAC,CACX,OAAQ,SACR,UAAW,EACb,GACA,EACA,EACA,EACA,EACA,EACA,CACE,UAAW,OACX,MAAO,aACP,UAAW,CACb,EACA,CAEE,UAAW,OACX,MAAO,EAAW,SAClB,UAAW,CACb,EACA,CAGE,MAAO,KACP,IAAK,IACL,UAAW,EACX,SAAU,CACR,EACA,EACA,EACA,EACA,OACD,AACH,EACA,CAEE,UAAW,SACX,MAAO,SAAY,EAAM,SAAS,CAAC,EAAW,KAC9C,aAAc,CAAA,EACd,IAAK,EAAW,IAChB,UAAW,CACb,EACD,CACD,QAAS,OACX,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3EA,EAAO,OAAO,CAvGd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,CACE,UAAW,OACX,MAAO,gEACP,UAAW,EACb,EAEA,EAAK,OAAO,CACV,wBACA,KACA,CAAE,UAAW,CAAE,GAEjB,CACE,MAAO,qBACP,IAAK,IACL,YAAa,OACb,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,MACX,MAAO,SACP,SAAU,CACR,CACE,UAAW,eACX,MAAO,MACT,EACA,CACE,UAAW,cACX,MAAO,UACT,EACA,CACE,UAAW,iBACX,MAAO,YACT,EACA,CACE,MAAO,QACP,IAAK,QACL,SAAU,CACR,CACE,MAAO,cACP,IAAK,QACL,YAAa,CAAA,EACb,eAAgB,CAAA,EAChB,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACT,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACA,CACE,MAAO,UACP,IAAK,UACL,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,YACP,IAAK,OACL,YAAa,CAAA,EACb,eAAgB,CAAA,EAChB,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,UAAW,CACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACD,AACH,EACA,CAAE,MAAO,eAAgB,EACzB,CACE,MAAO,MACP,IAAK,KACL,YAAa,OACb,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECmJA,EAAO,OAAO,CAxPd,SAAoB,CAAI,EACtB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,CAChB,SAAU,WACV,SAAU,CACR,SACA,WACA,aACA,YACA,SACA,WACA,OACA,UACA,MACA,OACA,KACA,KACA,QACA,UACA,MACA,MACA,SACA,MACA,SACA,UACA,eACA,SACA,WACA,WACA,UACA,SACA,OACA,OACA,QACD,AACH,EAkBM,EAA0B,kBAC1B,EAAiB,wCAEjB,EAAS,EAAM,MAAM,CALI,aACA,aAO7B,EACA,GAGI,EAAmB,EAAM,MAAM,CACnC,EAAM,QAAQ,CAAC,cACf,EACA,EAAM,gBAAgB,CAAC,EAAM,MAAM,CAXR,UAazB,KAKE,EAAmB,EAAM,MAAM,CACnC,IACA,EAAyB,IACzB,EACA,UAGI,EAAiC,CAAE,MAAO,CAAiB,EAE3D,EAAmB,EAAK,OAAO,CAAC,EAAgC,CAAE,SA7CvD,CACf,SAAU,WACV,QAAS,CACP,OACA,QACA,YACA,OACD,AACH,CAqC2F,GAErF,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SAIT,SACE,aACF,QACE,mBACJ,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,CACE,UAAW,QACX,MAAO,OACP,IAAK,IACP,EACA,CACE,UAAW,QACX,MAAO,KACP,IAAK,MACP,EACD,AACH,EACA,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,SACX,MAzCiB,0FA0CjB,UAAW,CACb,EACA,CACE,UAAW,WACX,MAAO,6BACT,EACA,CACE,UAAW,OACX,MAAO,MACP,IAAK,OACL,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAAS,0BAA2B,CAClD,EACA,CACE,UAAW,OACX,MAAO,UACP,IAAK,sBACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,UACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,cAAe,MACf,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,cACX,cAAe,OACf,IAAK,KACL,SAAU,CAAE,EAAK,UAAU,CAAE,AAC/B,EACA,CACE,UAAW,cACX,MAAO,wBAA0B,EAAK,QAAQ,CAAG,WACjD,IAAK,QACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,SACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,OACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,EAAK,UAAU,CAChB,CACD,SAAU,CAAE,QAAS,kBAAmB,CAC1C,EACA,CACE,UAAW,cACX,MAAO,wBACP,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,kBACV,SAAU,CACR,CACE,UAAW,UACX,MAAO,2BACP,SAAU,qBACV,SAAU,CACR,CACE,UAAW,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WACA,SACA,YACA,SACA,UACA,SACA,WACA,UACA,KACA,SACA,QACA,UACA,OACD,CA0BC,QAnBe,CACf,QACA,OACA,OACD,CAgBC,KAdY,CACZ,OACA,UACA,OACA,QACA,MACA,OACA,QACA,SACD,CAMC,SA1BgB,CAChB,QACA,OACD,AAwBD,EAEM,EAAa,CACjB,UAAW,OACX,MAAO,IAAM,EACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,OAAQ,AACtB,EACD,AACH,EACM,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CAAE,EAAK,oBAAoB,CAAE,CACvC,WAAY,CAAA,CACd,EAEA,MAAO,CACL,KAAM,OACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,QAAS,QACT,SAAU,CACR,EAAK,OAAO,CACV,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAGF,CACE,MAAO,wBACP,SAAU,SACV,UAAW,CACb,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,MAAO,MACP,IAAK,MACL,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,CACL,oDACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CAEE,MAAO,aACP,MAAO,SACT,EACA,CACE,MAAO,CACL,EAAM,MAAM,CAAC,WAAY,GACzB,MACA,EACA,MACA,SACD,CACD,UAAW,CACT,EAAG,OACH,EAAG,WACH,EAAG,UACL,CACF,EACA,CACE,MAAO,CACL,SACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,EACA,SAAU,CACR,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EACA,CAGE,cAAe,wBACf,UAAW,CACb,EACA,CACE,MAAO,CACL,MAAQ,EAAmB,QAC3B,EAAK,mBAAmB,CACxB,YACD,CACD,UAAW,CAAE,EAAG,gBAAiB,EACjC,SAAU,EACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EAAK,oBAAoB,CAC1B,AACH,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC/RM,EAAW,2BACX,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAGK,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEK,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAEK,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAEK,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,SACD,CAEK,EAAY,EAAE,CAAC,MAAM,CACzB,EACA,EACA,EAmmBF,CAAA,EAAO,OAAO,CAvlBd,SAAoB,CAAI,EACtB,IAgXgB,EAhXV,EAAQ,EAAK,KAAK,CAQlB,EAAgB,SAAC,CADtB,CAAA,CAAA,EAC+B,IAAA,EAAA,EAAA,K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SAAU,CA/BM,CAChB,UAAW,OACX,MAAO,8BACP,UAAW,IACb,EACoB,CAClB,MAAO,YACP,UAAW,cACX,UAAW,CACb,EAyBI,EAAK,iBAAiB,CACtB,EACA,EAAK,aAAa,CAClB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,CACD,QAAS,KACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsYA,EAAO,OAAO,CAhbd,SAAe,CAAI,EAOjB,IAAM,EAAmB,uDAoTnB,EAAW,CACf,SAAU,EACV,QA1SmB,CACnB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,QACD,CA0QC,QAzPmB,CACnB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,IACA,IACD,CAkNC,SAjMoB,CACpB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,UACD,AAOD,EAGM,EAAU,CACd,SAAU,EACV,QAAS,KACX,EAqBM,EAAgB,CACpB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CACZ,EAEM,EAAwB,CAC5B,UAAW,WACX,MAAO,MAAQ,CACjB,EAGM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,CACD,SAAU,CACR,CACE,MAAO,SACP,IAAK,SACL,UAAW,EACb,EACA,CACE,MAAO,OACP,IAAK,MACP,EACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,CACD,MAAO,IACP,IAAK,GACP,EAwCA,OAlBA,EAAQ,IAAI,CAAG,QACf,EAAQ,QAAQ,CAAG,CAnFJ,CACb,UAAW,SAQX,MAAO,qIACP,UAAW,CACb,EAEa,CACX,UAAW,SACX,MAAO,4BACT,EAsEE,EACA,EAzBgB,CAChB,UAAW,OACX,MAAO,IAAM,CACf,EAEgB,CACd,UAAW,UACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,UAAW,EACb,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAUE,EAAK,iBAAiB,CACtB,CACE,UAAW,UACX,MACE,6DACJ,EACA,CAAE,MAA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AO,CAClB,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAEP,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECrPA,EAAO,OAAO,CAtBd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,SAAU,CACR,CACE,UAAW,YACX,MAAO,WACP,UAAW,EACb,EACA,CACE,UAAW,YACX,MAAO,YACT,EACA,CACE,UAAW,UACX,MAAO,IACT,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECoEA,EAAO,OAAO,CAzFd,SAAc,CAAI,EAChB,IAAM,EAAQ,4BAMR,EAAS,CACb,MAAO,SACP,MAAO,KACP,IAAK,YACL,WAAY,CAAA,EACZ,UAAW,EACX,SAAU,CACR,CACE,MAAO,SACP,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,UACP,MAAO,eACT,EACA,CACE,MAAO,WACP,MAAO,wBACT,EACA,CACE,MAAO,WACP,MAAO,2CACT,EACD,AACH,EAYA,OADA,EAAO,QAAQ,CAAC,OAAO,CAVC,CACtB,MAAO,CACL,EACA,SACD,CACD,MAAO,CACL,EAAG,SACL,EACA,SAAU,CAAE,EAAQ,AACtB,GAEO,CACL,KAAM,OACN,SAAU,CAER,CACE,MAAO,CACL,KACA,EACA,SACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,SACL,EAGA,OAAQ,CACN,SAAU,CACR,CACE,MAAO,KACP,MAAO,aACT,EACD,AACH,EACA,SAAU,CACR,EACD,AACH,EAEA,CACE,MAAO,CACL,KACA,EACA,KACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,UACH,EAAG,aACL,CACF,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC2EM,EACJ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7HgB,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAmB,E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H,EACA,CACE,UAAW,WACX,MAAO,aACP,IAAK,IACL,SAAU,MACV,SAAU,CACR,EACA,EACD,CACD,UAAW,CACb,EACA,CACE,cAAe,aACf,IAAK,IACL,SAAU,CACR,EACA,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CAClB,EACD,AACH,EACA,CACE,UAAW,OACX,SAAU,CACR,CACE,MAAO,wBACP,UAAW,EACb,EACA,CAAE,MAAO,MAAO,EAChB,CAAE,MAAO,MAAO,EACjB,AACH,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CAClB,EACD,CAAC,MAAM,CAAC,GACT,QAAS,kBACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC1KA,IAAM,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAwFK,EAAY,EAAE,CAAC,MAAM,CAtBF,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAnFa,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEmB,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAuQD,CAAA,EAAO,OAAO,CA9Nd,SAAoB,CAAI,EA6CtB,IAAM,EAAa,CACjB,QAAS,EAAS,MAAM,CAhCE,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,YACD,EAGC,QAAS,EAAS,MAAM,CA1CE,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,OACD,EAmCC,SAAU,EAAU,MAAM,CA/CC,CAC3B,MACA,QACD,CA6CD,EACM,EAAc,8CACd,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAe,CACnB,UAAW,QACX,MAAO,cACP,IAAK,oCACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,kBAAkB,CACvB,CACE,UAAW,SACX,MAAO,0GACP,UAAW,EACX,OAAQ,CACN,IAAK,WACL,UAAW,CACb,CACF,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,KACP,IAAK,SACL,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,WACL,SAAU,CACR,EACA,EAAK,iBAAiB,CACvB,AACH,EACA,CAGE,MAAO,yCAA0C,EACpD,AACH,EACA,CAAE,MAAO,IAAM,CAAY,EAC3B,CACE,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,YACf,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAS,CACb,UAAW,SACX,MAAO,MACP,YAAa,CA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AAU,AACxB,EAqCI,EAjCS,CACX,UAAW,OACX,MAAO,YACP,IAAK,IACL,SAAU,CACR,SAAU,UACV,QAAS,QACX,CACF,EAEe,CACb,UAAW,UACX,MAAO,WACP,IAAK,IACL,SAAU,CAAE,EAAU,AACxB,EAqBG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnFA,IAAM,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,yBACA,yBACA,8BACA,uBACA,4BACA,yBACA,yBACA,6BACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,WACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,sBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,gBACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,iBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,gBACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,cACA,QACA,gBACA,aACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,mBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,cACA,SACA,cACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,qBACA,yBACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,yBACA,kBACA,cACA,gBACA,gBACA,iBACA,sBACA,mBACA,gBACA,kBACA,aACA,oBACA,sBACA,eACA,iBACA,aACA,wBACA,kBACA,uBACA,wBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,wBACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,aACA,iBACA,WACA,QACA,aACA,eACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,kBACA,sBACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,yBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,YACA,mBACA,UACA,iBACA,YACA,aACA,YACA,oBACA,OACA,gBACA,oBACA,kBACA,wBACA,2BACA,4BACA,kBACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,SACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,UACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,4BACA,sBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,sBACA,WACA,uBACA,uBACA,kBACA,uBACA,4BACA,cACA,+BACA,wBACA,uBACA,oBACA,kBACA,eACA,+BACA,wBACA,uBACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,UACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,sBACA,6BACA,WACA,cACA,6BACA,gBACA,oBACA,OACA,OACA,WACA,WACA,eACA,OACA,OACA,YACA,aACA,iBACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,iBACA,yBACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,mBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,qBACA,gBACA,iCACA,2BACA,aACA,kBACA,SACA,MACA,UACA,uBACA,aACA,eACA,iBACA,UACA,uBACA,oBACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,mBACA,eACA,QACA,gBACA,WACA,aACA,OACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,oBACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,iBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,yBACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,mBACA,kBACA,oBACA,uBACA,YACA,SACA,cACA,YACA,mBACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,iBACA,WACA,cACA,cACA,qBACA,kBACA,eACA,kBACA,mBACA,mBACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,qBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,cACA,qBACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,yBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,kBACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,oBACA,gCACA,mBACA,gBACA,mBACA,sBACA,4BACA,8BACA,4BACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,mBACA,wBACA,UACA,mBACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,kBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,UACA,gBACA,YACA,eACA,eACA,qBACA,eACA,gBACA,YACA,uBACA,kBACA,uBACA,8BACA,qBACA,4BACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,+BACA,eACA,cACA,gCACA,iBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,0BACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,oBACA,cACA,oBACA,kBACA,sBACA,4BACA,iBACA,mBACA,qBACA,iBACA,oBACA,gBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,iBACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,eACA,UACA,kBACA,6BACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,WACA,WACA,YACA,YACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,4BACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,2BACA,iCACA,iBACA,sBACA,gBACA,yBACA,sBACA,oBACA,oBACA,kBACA,qBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,YACA,aACA,gBACA,eACA,OACA,WACA,SACA,SACA,YACA,mBACA,WACA,6BACA,8BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,qBACA,2BACA,mCACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,eACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,kBACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,YACA,aACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,2BACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,gBACA,gBACA,2BACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,yBACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,2BACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,iBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,wBACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,oBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,0BACA,4BACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,mBACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,2BACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,iBACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,cACA,kBACA,gBACA,eACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,aACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,qBACA,sBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,qBACA,cACA,gBACA,YACA,iBACA,kBACA,gBACA,OACA,eACA,gBACA,SACA,wBACA,cACA,KACA,wBACA,kBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,iBACA,eACA,YACA,aACA,cACA,UACA,4BACA,eACA,cACA,sBACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,uBACA,iBACA,iBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,yBACA,wBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,cACA,2BACA,UACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,wBACA,wBACA,mBACA,0BACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,uBACA,sBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,mBACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,gBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,oBACA,eACA,iBACA,mBACA,qBACA,eACA,6BACA,yBACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,uBACA,cACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,uBACA,YACA,WACA,gBACA,iBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,cACA,WACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,mBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,cACA,yBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,qBACA,6BACA,kBACA,wBACA,sBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,0BACA,6BACA,oBACA,gBACA,sBACA,qBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,cACA,UACA,YACA,eACA,gBACA,aACA,WACA,QACA,iBACA,OACA,WACA,WACA,eACA,YACA,gBACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,aACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,uBACA,YACA,cACA,gBACA,cACA,UACA,kBACA,0BACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,OACA,aACA,kCACA,cACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,iBACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,iBACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,iBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,qBACA,mBACA,yBACA,4BACA,6BACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,mBACA,oBACA,kBACA,wBACA,iCACA,+BACA,8BACA,qBACA,oBACA,sBACA,0BACA,iBACA,iBACA,oBACA,wBACA,gBACA,sBACA,uBACA,iBACA,gBACA,gBACA,eACA,wBACA,gBACA,qBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,uBACA,yBACA,gBACA,sBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,cACA,iBACA,YACA,kBACA,0BACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,qBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,eACA,oBACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,gBACA,wBACA,gBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,qBACA,UACA,aACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,aACA,iBACA,cACA,gCACA,oBACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,iBACA,OACA,WACA,iBACA,qBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,YACA,mBACA,cACA,kBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,eACA,4BACA,SACA,cACA,mBACA,YACA,aACA,WACA,YACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,aACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,YACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,mBACA,yBACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,uBACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,UACA,aACA,cACA,QACA,gBACA,sBACA,mBACA,qBACA,oBACA,2BACA,2BACA,oBACA,kBACA,cACA,iBACA,cACA,WACA,wBACA,oBACA,sBACA,sBACA,qBACA,OACA,uBACA,WACA,YACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,kBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,wBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,aACA,mBACA,iBACA,oBACA,mBACA,wBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,cACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,uBACA,oBACA,gBACA,YACA,iBACA,UACA,SACA,yBACA,kBACA,iBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,gBACA,iBACA,gBACA,kBACA,uBACA,uBACA,mBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,2BACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,gBACA,kBACA,iBACA,iBACA,iBACA,eACA,sBACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,mCACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,uBACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,aACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,2BACA,cACA,0BACA,oBACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,mCACA,6BACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,sBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,WACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,sBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,QACA,aACA,kBACA,kBACA,QACA,aACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,mBACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,qBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,cACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,qBACA,oBACA,kBACA,kBACA,6BACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,2BACA,sBACA,YACA,oBACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,wBACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,iBACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,mBACA,oBACA,wBACA,6BACA,+BACA,iBACA,mBACA,iBACA,UACA,gBACA,cACA,wBACA,wBACA,aACA,6BACA,gBACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,wBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,WACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,6BACA,gBACA,+BACA,mBACA,oBACA,oBACA,4BACA,wBACA,kBACA,kBACA,SACA,WACA,kBACA,qBACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,uBACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,mBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,uBACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,qBACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,wBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,4BACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,gBACA,oBACA,eACA,sBACA,gBACA,gBACA,iBACA,oCACA,iBACA,eACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,4BACA,gBACA,SACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,uBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,wBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,WACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,mBACA,uBACA,YACA,aACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,2BACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,WACA,YACA,gBACA,YACA,WACA,gBACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,YACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,0BACA,eACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,eACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,0BACA,gBACA,0BACA,iBACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,cACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,eACA,gBACA,cACA,eACA,YACA,eACA,oBACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,eACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,cACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,gBACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,eACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,cACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,eACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,eACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,mBACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,uBACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,mBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,kBACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,+BACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,kBACA,0BACA,uBACA,0BACA,kBACA,0BACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,wBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,oBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,mBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,eACA,qBACA,KACA,OACA,iBACA,WACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,mBACA,qBACA,QACA,cACA,iBACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,mBACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,yBACA,eACA,uBACA,mBACA,cACA,aACA,wBACA,sBACA,mCACA,yBACA,YACA,yBACA,iBACA,4BACA,sBACA,sBACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,gBACA,uBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,6BACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,kBACA,mBACA,WACA,0BACA,mBACA,2BACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,sBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,oBACA,aACA,SACA,aACA,cACA,kBACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,oBACA,oBACA,iBACA,mBACA,yBACA,kBACA,kBACA,QACA,YACA,OACA,WACA,oBACA,iBACA,wBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,mBACA,eACA,cACA,gBACA,aACA,eACA,iBACA,uBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,2BACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,aACA,aACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,sBACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,kBACA,oBACA,kBACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,wBACA,mBACA,uBACA,qBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,kBACA,gBACA,mBACA,iBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,gBACA,qBACA,YACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,gBACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,sBACA,uBACA,kBACA,uBACA,mCACA,oBACA,gBACA,yBACA,iBACA,aACA,mBACA,qBACA,yBACA,YACA,mBACA,oBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,YACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,qBACA,eACA,UACA,aACA,cACA,UACA,wBACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,uBACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,UACA,qBACA,4BACA,0BACA,2BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,WACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,YACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,SACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,sBACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,oBACA,8BACA,gBACA,uBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,uBACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,oBACA,aACA,aACA,eACA,iBACA,cACA,0BACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,iBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,qBACA,eACA,UACA,gBACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,YACA,aACA,yBACA,YACA,6BACA,sBACA,6BACA,uBACA,uBACA,eACA,QACA,cACA,eACA,cACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,gBACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,eACA,yBACA,4BACA,kBACA,2BACA,2BACA,WACA,gBACA,oBACA,4BACA,mBACA,qBACA,wBACA,6BACA,uBACA,QACA,gBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,SACA,YACA,mBACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,YACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,8BACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,eACA,iBACA,UACA,cACA,cACA,qBACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,gBACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,oBACA,aACA,gBACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,yBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,sBACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,0BACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,6BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,wBACA,yBACA,sBACA,uBACA,wBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,uBACA,kBACA,qBACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,qBACA,kBACA,SACA,WACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,gBACA,uBACA,uBACA,aACA,cACA,gBACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,aACA,oBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,eACA,UACA,QACA,aACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,YACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,uBACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,4BACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,2BACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,eACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,OACA,YACA,eACA,YACA,WACA,aACA,YACA,yBACA,mBACA,2BACA,wBACA,mBACA,2BACA,kBACA,0BACA,mBACA,2BACA,iBACA,cACA,WACA,WACA,YACA,aACA,aACA,aACA,gBACA,YACA,aACA,YACA,UACA,YACA,cACA,WACA,eACA,QACA,kBACA,YACA,WACA,aACA,WACA,qBACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,kBACA,eACA,WACA,SACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,gBACA,iBACA,YACA,8BACA,UACA,mBACA,QACA,cACA,QACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,wBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,qBACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,iBACA,mBACA,gBACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,oBACA,YACA,WACA,0BACA,4BACA,4BACA,4BACA,eACA,oBACA,iBACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,yBACA,2BACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,uBACA,YACA,iBACA,wBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,yBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,0BACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,yBACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,eACA,eACA,cACA,gBACA,qBACA,iBACA,gBACA,iBACA,cACA,iBACA,YACA,WACA,eACA,qBACA,eACA,aACA,YACA,SACA,cACA,eACA,qBACA,aACA,YACA,cACA,eACA,mBACA,sBACA,iBACA,oBACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,YACA,mBACA,SACA,aACA,WACA,iBACA,UACA,yBACA,SACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,uBACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,cACA,WACA,eACA,mBACA,uBACA,qBACA,uBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,uBACA,iBACA,qBACA,WACA,kBACA,eACA,wBACA,WACA,eACA,gBACA,mCACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,kBACA,oBACA,sBACA,kBACA,2BACA,eACA,qBACA,2CACA,uBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,0BACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,wBACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,qBACA,eACA,wBACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,wBACA,0BACA,sBACA,wBACA,sBACA,sBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,iBACA,gBACA,sBACA,mBACA,gBACA,aACA,YACA,YACA,YACA,kBACA,gBACA,YACA,WACA,gBACA,mBACA,kBACA,cACA,UACA,uBACA,sBACA,oBACA,iBACA,4BACA,mBACA,oBACA,qBACA,4BACA,0BACA,YACA,YACA,eACA,WACA,iBACA,iBACA,iBACA,eACA,6BACA,aACA,eACD,AA4HD,CAAA,EAAO,OAAO,CAhHd,SAAqB,CAAI,EACvB,IAAM,EAAQ,EAAK,KAAK,CAQlB,EAAiB,EAAM,MAAM,CAAC,EAAM,MAAM,CAHhC,+BACO,2BACL,2BAKZ,EAAwB,EAAM,MAAM,CAFtB,iCACC,oCAKf,EAAwB,EAAM,MAAM,CACxC,EACA,EAAM,QAAQ,CAAC,GACf,EAAM,QAAQ,CALe,iBAczB,EAAY,yBACZ,EAAqB,IAAI,IAAI,GA8C7B,EAAW,CACf,UAAW,eACX,UAAW,EACX,MAAO,EAAM,MAAM,C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CzB,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,CACF,EACM,EAAmB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,uCACA,MACA,EAAK,mBAAmB,CACzB,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EA+FA,MAAO,CACL,KAAM,SACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QArDa,CACf,SACA,UACA,WACA,WACA,OACA,SACA,MACA,MACA,QACA,SACA,MACA,WACA,QACA,SACA,OACA,UACA,QACA,QACA,SACA,QACA,MACA,KACA,OACA,OACA,SACA,QACA,QACA,OACA,SACA,QACA,UACA,MACA,KACA,OACA,OACA,SACA,SACA,SACA,QACA,SAEA,MACA,KACA,MACA,MACA,MACD,CAOG,SAnGc,CAChB,WACA,YACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,SACA,QACA,MACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,KACA,SACA,QACD,CA6DG,QA5Da,CACf,OACA,QACA,OACD,AAyDC,EACA,QAAS,OACT,SAAU,CACR,EAAK,OAAO,CAAC,OAAQ,QACrB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EACA,EACA,CACE,UAAW,oBACX,MAAO,kBACT,EACA,CACE,UAAW,OACX,MAAO,OACP,IAAK,IACL,SAAU,CAAE,QAAS,+BAAgC,CACvD,EACA,CACE,MAAO,CACL,OACA,WACD,CACD,MAAO,CAAE,EAAG,MAAO,CACrB,EACA,CACE,cAAe,QACf,IAAK,IACL,SAAU,CAAE,EAAK,qBAAqB,CAAE,AAC1C,EACA,EAAK,iBAAiB,CACtB,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECzCA,EAAO,OAAO,CAnId,SAAoB,CAAI,EACtB,IAAM,EAAW,CACf,QAEE,6IAEF,QACE,iBACF,SACE,mRAIJ,EACM,EAAc,2BACd,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,OAAO,CAAC,EAAK,aAAa,CAC7B,CAAE,OAAQ,CACR,IAAK,WACL,UAAW,CACb,CAAE,GACJ,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACD,AACH,EACA,CACE,UAAW,WACX,MAAO,MAAQ,EAAK,QAAQ,AAC9B,EACA,CAAE,MAAO,IAAM,EAAK,QAAQ,AAC5B,EACA,CAAE,MAAO,EAAK,QAAQ,CAAG,OAAS,EAAK,QAAQ,AAC/C,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAqB,0BACrB,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,CAAA,EAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAAE,OAAQ,CAAC,MAAM,CAAC,EAC9B,EACD,AACH,EAEA,MAAO,CACL,KAAM,aACN,QAAS,CAAE,OAAQ,CACnB,SAAU,EACV,QAAS,OACT,SAAU,EAAY,MAAM,CAAC,CAC3B,EAAK,OAAO,CAAC,KAAM,KACnB,CACE,UAAW,WACX,MAAO,QAAU,EAAc,YAAc,EAC7C,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACD,AACH,EACA,CACE,MAAO,aACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO,EACP,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EACA,CACE,UAAW,QACX,cAAe,QACf,IAAK,IACL,QAAS,YACT,SAAU,CACR,CACE,cAAe,UACf,eAAgB,CAAA,EAChB,QAAS,YACT,SAAU,CAAE,EAAO,AACrB,EACA,EACD,AACH,EACA,CACE,UAAW,OACX,MAAO,EAAc,IACrB,IAAK,IACL,YAAa,CAAA,EACb,UAAW,CAAA,EACX,UAAW,CACb,EACD,CACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECkOA,EAAO,OAAO,CAnWd,SAAc,CAAI,EA0ThB,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,CACE,cACE,+FACF,IAAK,IACL,SAAU,CACR,QAjUS,CACf,MACA,QACA,UACA,MACA,MACA,QACA,KACA,MACA,QACA,UACA,SACA,UACA,QACA,SACA,QACA,KACA,OACA,OACA,OACA,UACA,UACA,aACA,SACA,UACA,WACA,YACA,QACA,SACA,WACA,UACA,YACA,UACA,YACA,SACA,UACA,OACA,WACA,WACA,KACA,OACA,OACA,UACA,OACA,MACA,QACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,MACA,QACA,OACA,WACA,QACA,QACA,MACA,SACA,KACA,SACA,QACA,KACA,UACA,YACA,QACA,QACA,SACA,QACA,SACA,YACA,OACA,KACA,OACA,MACA,OACA,WACA,QACA,OACA,OACA,MACA,UACA,OACA,QACA,MACA,MACA,UACA,UACA,eACA,QACA,QACA,YACA,OACA,MACA,SACA,SACA,SACA,KACA,SACA,KACA,QACA,QACA,OACA,QACA,YACA,WACA,OACA,OACA,UACA,UACA,UACA,YACA,YACA,SACA,MACA,QACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,WACA,YACA,SACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,aACA,SACA,SACA,OACA,KACA,cACA,UACA,WACA,QACA,QACA,SACA,UACA,SACA,QACA,SACA,SACA,MACA,OACA,QACA,WACA,QACA,SACA,SACA,MACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,MACD,CA0JO,QAxJS,CACf,OACA,QACA,OACA,YACD,CAoJO,SAlJU,CAChB,YACA,eACA,eACA,iBACA,cACA,iBACA,eACA,eACA,YACA,YACA,iBACA,gBACA,YACA,cACA,eACA,eACA,gBACA,gBACA,aACA,YACA,MACA,QACA,MACA,MACA,MACA,WACA,QACA,YACA,kBACA,SACA,YACA,SACA,QACA,QACA,aACA,SACA,WACA,WACA,eACA,YACA,kBACA,eACA,mBACA,gBACA,mBACA,gBACA,oBACA,iBACA,kBACA,SACA,gBACA,gBACA,gBACA,sBACA,aACA,UACA,kBACA,aACA,mBACA,cACA,cACA,eACA,cACA,SACA,gBACA,gBACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA,OACA,MACA,UACA,IACA,MACA,KACA,MACA,QACA,KACA,QACA,UACA,SACA,QACA,OACA,MACA,OACA,MACA,QACA,gBACA,eACA,eACA,qBACA,gBACA,sBACA,aACA,aACA,gBACA,gBACA,kBACA,cACA,kBACA,iBACA,WACA,UACA,SACA,QACA,QACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,OACA,QACA,UACA,SACA,YACA,WACA,WACA,WACA,OACA,UACA,SACA,YACA,WACA,WACA,WACD,AAcK,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,EAAK,aAAa,CAClB,EAAK,oBAAoB,CAC1B,AACH,EACA,EAAK,oBAAoB,CAC1B,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxRA,EAAO,OAAO,CA1Ed,SAAoB,CAAI,EA0DtB,MAAO,CACL,KAAM,cACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CACnC,MAAO,YACP,aAAc,CAAA,CAChB,GA1Bc,CAChB,SAAU,CACR,CAAE,MAAO,CACP,OACA,IACA,MACA,MACD,AAAC,EACF,CAAE,MAAO,CACP,OACA,KACD,AAAC,EACH,CACD,UAAW,CACT,EAAG,SACH,EAAG,QACL,CACF,EA7Be,CACb,MAAO,CACL,OACA,IACA,MACA,MACD,CACD,UAAW,CACT,EAAG,cACH,EAAG,QACL,CACF,EArCe,CACb,MAAO,CACL,aACA,QACA,OACA,IACD,CACD,UAAW,CACT,EAAG,YACH,EAAG,aACL,CACF,EACwB,CACtB,MAAO,CACL,aACA,aACA,QACA,MACA,MACD,CACD,UAAW,CACT,EAAG,YACH,EAAG,cACH,EAAG,QACL,CACF,EA4CG,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECwEA,EAAO,OAAO,CA/Id,SAAe,CAAI,EACjB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAM,CACV,UAAW,WACX,SAAU,CACR,CAAE,MAAO,OAAQ,EACjB,CAAE,MAAO,WAAY,EACrB,CAAE,MAAO,EAAM,MAAM,CAAC,OAAQ,EAAK,mBAAmB,CAAE,EACzD,AACH,EA2BM,EAAU,CACd,eAAgB,CAAA,EAChB,SAAU,CACR,SAAU,yBACV,QA9Ba,CACf,KACA,MACA,MACA,KACA,OACA,QACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,YACA,WACA,SACA,QACA,QACA,OACA,YACD,AAMC,EACA,UAAW,EACX,QAAS,KACT,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAEA,CACE,MAAO,aACP,IAAK,MACL,eAAgB,CAAA,EAChB,WAAY,CAAA,EACZ,SAAU,CAAE,EAAK,AACnB,EACA,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,SACP,IAAK,YACL,UAAW,CAAA,CACb,EAEA,CACE,MAAO,YACP,IAAK,YACL,UAAW,CAAA,CACb,EAEA,CAAE,MAAO,oBAAqB,EAE9B,CAAE,MAAO,oBAAqB,EAC/B,AACH,EAEA,CACE,UAAW,SACX,MAAO,6DACT,EAEA,CACE,UAAW,SACX,MAAO,4BACP,UAAW,CACb,EACA,EACD,AACH,EAEA,MAAO,CACL,KAAM,eACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,cAAe,oBACf,IAAK,OACL,SAAU,EAAQ,QAAQ,CAC1B,SAAU,CAAE,QAAS,mBAAoB,CAC3C,EACA,CACE,UAAW,UACX,MAAO,EAAM,MAAM,CAAC,EAAK,mBAAmB,CAAG,EAAM,SAAS,CAAC,UAC/D,UAAW,CACb,EACA,CACE,MAAO,EAAM,SAAS,CAAC,EAAK,mBAAmB,CAAG,OAClD,IAAK,QACL,SAAU,CACR,CACE,UAAW,YACX,MAAO,EAAK,mBAAmB,CAC/B,OAAQ,CACV,EACD,CACD,UAAW,CACb,EACD,CACD,QAAS,cACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkCA,EAAO,OAAO,CAjLd,SAAa,CAAI,EAkIf,MAAO,CACL,KAAM,MACN,SAAU,CACR,QApFa,CACf,OACA,MACA,KACA,MACA,OACA,QACA,QACA,OACA,OACA,QACA,WACA,YACA,UACA,WACA,MACA,KACA,OACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,OACA,OACA,UACA,UACA,KACA,SACA,KACA,UACA,YACA,KACA,QACA,WACA,MACA,QACA,SACA,QACA,MACA,MACA,MACA,QACA,SACA,KACA,KACA,MACA,OACA,MACA,QACA,MACA,SACA,SACA,MACA,MACA,SACA,WACA,MACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,UACA,MACA,QACD,CAeG,QARa,CACf,OACA,QACD,CAMG,KAtIU,CACZ,MACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,UACA,UACA,OACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,MACA,QACA,QACA,YACA,UACA,MACA,MACA,QACA,SACA,QACA,SACA,SACA,OACA,QACA,YACA,SACA,UACA,cACA,SACA,UACA,QACA,aACA,eACA,aACD,CAwFG,SAhBc,CAChB,QACA,SACA,SACA,SACD,AAYC,EACA,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,IAAK,OACL,UAAW,EACb,EACA,CACE,UAAW,SACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACA,CACE,UAAW,SACX,MAAO,oBACP,IAAK,KACP,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,eACP,UAAW,CACb,EACA,CACE,UAAW,SACX,UAAW,EACX,SAAU,CACR,CAAE,MAAO,0DAA2D,EACpE,CAAE,MAAO,6CAA8C,EACvD,CAAE,MAAO,+CAAgD,EACzD,CAAE,MAAO,uCAAwC,EAClD,AACH,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxFA,EAAO,OAAO,CAtFd,SAAa,CAAI,EACf,IAAM,EAAW,CACf,QAAS,CACP,MACA,OACA,MACA,KACA,UACA,SACA,KACA,OACA,OACD,CACD,QAAS,CACP,OACA,QACA,KACA,MACA,OACD,CACD,SAAU,CACR,SACA,QACA,aACA,QACA,SACA,WACA,MACA,cACA,QACA,WACA,aACD,AACH,EACM,EAAY,CAChB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CACZ,EA+BM,EAAc,CAClB,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,EAAK,oBAAoB,CAjBZ,CACb,UAAW,SACX,SAAU,CAlBW,CACrB,UAAW,cACX,MAAO,MACT,EAe8B,EAAW,CACvC,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAzBc,CACZ,MAAO,uBACP,YAAa,CAAA,EACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,UAAW,EACb,EACD,AACH,EAqBC,CAED,OADA,EAAU,QAAQ,CAAG,EACd,CACL,KAAM,MACN,QAAS,CAAE,QAAS,CACpB,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC5DA,EAAO,OAAO,CAxBd,SAAkB,CAAI,EACpB,MAAO,CACL,KAAM,YACN,SAAU,CACR,CACE,UAAW,cACX,OAAQ,CAGN,IAAK,MACL,OAAQ,CACN,IAAK,IACL,YAAa,YACf,CACF,EACA,SAAU,CACR,CAAE,MAAO,aAAc,EACvB,CAAE,MAAO,kBAAmB,EAC7B,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxBA,IAAA,EAAA,EAAA,sCAsiBA,CAAA,EAAO,OAAO,CAniBd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CA2IlB,EAAY,CAChB,UAAW,oBACX,MAAO,EAAM,MAAM,CAAC,KAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA5Id,CACzB,aACA,UACA,cACA,UACA,gBACA,gBACA,cACA,UACA,UACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,aACA,UACA,iBACA,WACA,eACA,QACA,UACA,SACA,WACA,aACA,YACA,UACA,iBACA,iBACA,eACA,cACA,SACA,sBACA,YACA,SACA,aACA,YACA,YACA,SACA,OACA,YACA,SACA,SACD,GAgGD,EAEM,EAAU,CAEd,UAAW,WACX,MAAO,mBACT,EAEM,EAAY,CAEhB,UAAW,WACX,MAAO,eACP,QAAS,UACX,EAEM,EAAY,CAEhB,UAAW,WACX,MAAO,mBACT,EAEM,EAAa,CAEjB,UAAW,SACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtHF,CAClB,UACA,yBACA,wBACA,yBACA,0BACA,wBACA,2BACA,OACA,OACA,OACA,oBACA,sBACA,oBACA,gBACA,qBACA,wBACA,aACA,OACA,OACA,MACA,UACA,WACA,WACA,OACA,OACA,UACA,QACA,sBACA,gBACA,gBACA,gBACA,gBACA,qBACA,qBACA,kBACA,cACA,QACA,cACA,iBACA,WACA,gBACA,mBACA,aACA,cACA,WACA,SACA,UACA,WACA,QACA,gBACA,mBACD,EAmED,EAEM,EAAW,CAEf,UAAW,UACX,MAAO,EAAM,MAAM,CACjB,IACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAxEM,CACrB,gBACA,eACA,aACA,SACA,KACA,SACA,UACA,OACA,OACA,QACA,QACA,UACA,WACA,gBACA,gBACA,KACA,QACA,aACA,cACA,SACA,UACA,cACA,QACA,WACA,WACA,UACA,cACA,gBACA,SACA,WACA,QACA,iBACA,UACA,UACD,GAuCD,EAuTM,EAAsB,CAC1B,MAAO,CACL,WACA,MACA,EAAM,MAAM,CAAC,QAAS,EAAK,QAAQ,EACpC,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,CACF,EAmBA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAhTa,CACf,QACA,mBACA,UACA,sBACA,iBACA,kBACA,SACA,aACA,eACA,eACA,OACA,cACA,UACA,WACA,cACA,cACA,gBACA,gBACA,YACA,WACA,kBACA,aACA,iBACA,SACA,eACA,eACA,eACA,iBACA,cACA,oBACA,UACA,SACA,YACA,eACA,aACA,eACA,OACA,OACA,YACA,gBACA,WACA,mBACA,OACA,cACA,YACA,gBACA,WACA,WACA,eACA,kBACA,eACA,mBACA,WACA,YACA,gBACA,gBACA,YACA,YACA,WACA,aACA,WACA,iBACA,oBACA,aACA,gBACA,qBACA,gBACA,cACA,mBACA,kBACA,qBACA,kBACA,qBACA,kBACA,kBACA,YACA,OACA,aACA,OACA,UACA,WACA,eACA,eACA,gBACA,uBACA,WACA,iBACA,oBACA,gBACA,aACA,mBACA,oBACA,WACA,kBACA,kBACA,WACA,YACA,WACA,SACA,UACA,SACA,QACA,YACA,aACA,WACA,WACA,aACA,iBACA,cACA,wBACA,oBACA,cACA,kBACA,mBACA,aACA,SACA,UACA,mBACA,wBACA,2BACA,sBACA,aACA,iBACA,SACA,MACA,UACA,OACA,gBACA,gBACA,uBACA,mBACA,cACA,MACA,OACA,OACA,aACA,aACA,eACA,aACA,SACA,SACA,SACA,wBACA,cACA,SACA,QACA,aACA,kBACA,sBACA,iBACA,iBACA,YACA,kBACA,sBACA,iBACA,iBACA,cACA,eACA,mBACA,cACA,gBACA,wBACA,eACA,iBACA,uBACA,cACA,kBACA,iBACA,gBACA,YACA,oBACA,UACA,aACA,eACA,gBACA,aACA,qBACA,YACA,kBACA,oBACA,aACA,gBACA,kBACA,QACA,aACA,SACA,UACA,SACA,SACA,aACA,UACA,sBACA,mBACA,gBACA,sBACA,gBACA,aACA,WACA,MACA,kBACA,gBACA,mBACA,aACA,cACA,cACA,gBACA,oBACA,mBACA,eACA,cACA,mBACA,UACD,CA4FG,QA1Fa,CACf,QACA,MACA,OACA,OACA,SACA,QACA,UACA,aACA,UACA,SACA,YACA,QACA,QACA,OACA,UACA,SACA,UACA,YACA,WACA,QACA,OACA,UACA,WACA,OACA,YACA,OACA,SACA,SACA,MACA,KACA,OACA,QACA,QACA,OACA,SACA,YACA,SACA,WACA,MACA,OACA,MACA,gBACA,YACA,eACA,eACA,aACA,gBACA,OACA,QACA,OACA,OACA,WACA,OACD,AAqCC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GA3BO,CAC1B,MAAO,CACL,MACA,MACA,mBALqB,iBAOtB,CACD,MAAO,CACL,EAAG,UACH,EAAG,SACH,EAAG,UACL,CACF,EAkBI,EACA,CAAE,cAAe,6DAA+D,EAvVrE,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,CACD,QAAS,KACT,SAAU,CA7BS,CAEnB,UAAW,cACX,MAAO,gBACT,EA2BI,EACA,EACA,EACA,EACD,AACH,EAiUI,EACA,EACA,EACA,EACA,EAnWY,CAEd,UAAW,iBACX,MAAO,UACT,EAiWI,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC9SA,EAAO,OAAO,CApPd,SAAoB,CAAI,EAKtB,IAAM,EAAgB,yBAkKhB,EAAiB,CACrB,SAAU,EACV,QAAS,CACP,aACA,SACA,YACA,kBACD,AACH,EACA,MAAO,CACL,KAAM,cACN,QAAS,CACP,KACA,OACA,QACA,UACA,gBACD,CACD,SA7Be,CACf,oBAAqB,CACnB,OACA,QACD,CACD,SAAU,EACV,QA3IU,CACV,QACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,SACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,gBACD,CAyBC,QAxBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,OACD,CAgBC,SAfgB,CAChB,kBACA,mBACA,gBACA,iBACA,gBACD,CAUC,KA/JY,CACZ,MACA,QACA,OACA,WACA,SACA,QACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,QACD,AAgJD,EAoBE,QAAS,KACT,SAAU,CA1LM,CAChB,UAAW,WACX,MAAO,sEACT,EAyLI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA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AW,CACb,EACM,EAAW,CACf,QACA,OACA,OACD,CACK,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,QACD,CAEK,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCACA,6BACA,0BACA,oBACA,4BACA,yBACA,wBACA,gBACA,mBACA,mBACA,sBACA,cACA,gBACA,gBACA,UACA,aACA,aACA,mBACA,cACA,mBACA,WACA,WACA,aACA,oBACA,YACA,qBACA,2BACA,sBAGA,cACA,aACA,UACA,QACA,YACA,WACA,oBACA,eACA,aACA,YACA,cACA,WACA,gBACA,UAGA,YACA,yBACA,SACA,kBACA,OACA,SACA,WACD,CAsBK,EAAW,CACf,QAAS,EACT,OAAA,EAdM,EAAS,EAAE,CACjB,AAakB,EAbZ,OAAO,CAAC,SAAA,CAAd,EACE,EAAO,IAAI,CAAC,GACR,EAAK,WAAW,KAAO,EACzB,EAAO,IAAI,CAAC,EAAK,WAAW,IAE5B,EAAO,IAAI,CAAC,EAAK,WAAW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O,WACP,UAAW,EACX,UAAW,SACb,EACA,CACE,UAAW,QACX,MAvHgB,yBAwHhB,UAAW,CACb,EACA,CACE,MAAO,KACP,IAAK,KACL,UAAW,SACX,UAAW,EACX,SAAU,CAAE,EAAK,AACnB,EAED,AACH,EAGiB,CACf,MAAO,UACP,IAAK,IACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACA,CACE,UAAW,UACX,MAAO,gDACT,EACD,AACH,EAGqB,CAAE,SAAU,CAE/B,CACE,UAAW,WACX,MAAO,IAAI,MAAM,CApLnB,+bAoL0C,OAC1C,EACA,CACE,UAAW,UACX,MAAO,mBACP,UAAW,CACb,EACD,AAAC,EAkFE,EAEJ,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECpTA,IAAA,EAAA,EAAA,sCA2aA,CAAA,EAAO,OAAO,CAzad,SAAoB,CAAI,EACtB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,CAChB,gBACA,eACA,SACA,SACA,eACA,UACA,UACA,MACA,UACA,SACA,UACA,aACA,YACA,SACA,QACA,OACA,iBACA,YACA,cACA,YACA,SACA,MACA,UACA,OACA,QACA,OACA,OACA,WACA,SACA,eACA,cACA,gBACA,QACA,cACA,aACA,eACA,iBACA,QACA,YACA,eACA,aACA,eACA,cACA,aACA,WACA,kBACA,SACA,cACA,WACA,WACA,SACA,YACA,aACA,eACA,eACA,eACA,aACA,eACA,gBACA,aACA,aACA,wBACA,WACA,QACA,UACA,OACA,YACA,MACA,OACA,SACA,SACA,QACA,SACA,OACA,aACA,QACA,YACA,OACA,SACA,WACA,SACA,QACA,OACA,aACA,QACA,QACA,MACA,YACA,MACA,aACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,YACA,WACA,MACA,cACA,cACA,SACA,YACA,UACA,QACA,cACA,cACA,kBACA,SACA,YACA,WACA,OACA,OACA,SACA,WACA,YACA,SACA,SACA,UACA,OACA,OACA,QACA,MACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,KACA,MACA,MACA,MACA,QACA,cACA,OACA,SACA,YACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,MACA,SACA,eACA,cACA,eACA,YACA,gBACA,iBACA,cACA,YACA,UACA,OACA,WACA,YACA,eACA,cACA,WACA,cACA,eACA,eACA,SACA,YACA,uBACA,gBACA,iBACA,aACA,cACA,UACA,eACA,YACA,cACA,aACA,cACA,SACA,UACA,UACA,UACA,QACA,SACA,SACA,YACA,eACA,mBACA,eACA,SACA,gBACA,WACA,SACA,aACA,YACA,QACA,YACA,YACA,SACA,eACA,OACA,UACA,cACA,cACA,QACA,OACA,SACA,MACA,aACA,MACA,eACA,YACA,aACA,qBACA,SACA,aACA,WACA,OACA,WACA,YACA,cACA,WACA,WACA,YACA,aACA,cACA,MACA,OACA,YACA,OACA,MACA,QACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,KACA,OACA,OACA,OACA,OACA,QACA,MACA,UACA,UACA,MACA,MACA,QACA,cACA,YACA,SACA,iBACA,aACD,CACK,EAAQ,EAAK,QAAQ,CACrB,EAAY,CAAE,SAAU,CAC5B,CACE,MAAO,EAAM,MAAM,CAAC,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAY,EAAM,SAAS,CAAC,UAChE,UAAW,UACb,EACA,CACE,UAAW,EACX,MAAO,EAAM,MAAM,CACjB,qBACA,EAAO,EAAM,SAAS,CAAC,UACzB,UAAW,gBACb,EACD,AAAC,EAuHF,MAAO,CACL,KAAM,aACN,QAAS,CAAE,MAAO,CAClB,SAAU,CACR,QAAW,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7CO,CACpB,WACA,SACA,QACA,OACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,UACA,MACA,KACA,SACA,aACA,OACA,SACA,MACA,UACA,UACA,UACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,SACA,eACA,QACA,SACA,YACA,MACA,OACA,WACA,QACD,EAOG,QAAS,2DACT,MAAO,aACP,SAAU,aACV,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1EU,CACd,iBACA,UACA,QACA,SACA,YACA,UACA,SACA,QACA,YACA,YACA,YACA,UACA,UACA,YACA,aACA,SACA,aACA,aACA,QACA,WACA,MACD,GAsDG,KAvFU,CACZ,UACA,OACA,OACA,QACA,SACA,QACA,MACA,OACA,QACD,AA8EC,EACA,SAAU,CAlHE,CACZ,SAAU,CACR,CAAE,MAAO,CACP,QACA,MACA,EACA,MACA,UACA,MACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,QACA,MACA,EACD,AAAC,EACH,CACD,UAAW,CACT,EAAG,UACH,EAAG,cACH,EAAG,UACH,EAAG,uBACL,CACF,EAzCkB,CAChB,MAAO,CACL,SACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EA8HI,EA7Ha,CACf,UAAW,EACX,MAAO,CACL,KACA,EACD,CACD,UAAW,CAAE,EAAG,UAAW,CAC7B,EAwHI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECrYA,EAAO,OAAO,CApCd,SAAiB,CAAI,EACnB,MAAO,CACL,KAAM,kBACN,SAAU,CACR,EAAK,aAAa,CAClB,CACE,MAAO,6CACP,IAAK,IACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,2BACP,IAAK,IACL,SAAU,wCACV,UAAW,EACb,EACA,CACE,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,EAAK,aAAa,CAAE,CAChC,UAAW,EACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,MACP,IAAK,OACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,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SACA,MACA,QACA,OACA,QACD,CAsGK,EAAW,CACf,SAAU,sBACV,QAAS,EACT,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,MACD,CAkCC,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,OACD,CA0BC,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,QACD,AAQD,EAEM,EAAS,CACb,UAAW,OACX,MAAO,gBACT,EAEM,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,QAAS,GACX,EAEM,EAAkB,CACtB,MAAO,OACP,UAAW,CACb,EAEM,EAAS,CACb,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,UAAW,EACb,EACA,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,UAAW,EACb,EACA,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACA,EACD,AACH,EACA,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACA,EACD,AACH,EACA,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,4BACP,IAAK,GACP,EACA,CACE,MAAO,4B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ACrB,MAAO,cACP,IAAK,SACP,GACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,cACP,IAAK,SACP,GACA,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACD,AACH,EAWA,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACL,EACA,MAAO,CACL,EACA,EACD,AACH,EACA,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACL,EACA,MAAO,CACL,UACA,EACD,AACH,EACA,CACE,MAAO,CACL,EAAG,cACH,EAAG,QACL,EACA,MAAO,CACL,EACA,EACD,AACH,EACA,CACE,MAAO,CAAE,EAAG,QAAS,EACrB,MAAO,CACL,mBACA,EACD,AACH,EACD,AACH,EAGA,CAEE,MAAO,CAAE,EAAG,UAAW,EACvB,MAAO,CACL,EACA,MACA,KACA,MACD,AACH,EAEA,CACE,MAAO,WACP,UAAW,EACX,SAAU,CACR,CAAE,MAAO,CAAa,EACtB,CAAE,MAAO,SAAU,EACpB,AACH,EAEA,CACE,MAAO,cACP,UAAW,EACX,MAAO,CACT,EAEA,CAEE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAM,EAAG,AAChC,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECjHA,EAAO,OAAO,CAtId,SAAkB,CAAI,EAkBpB,MAAO,CACL,KAAM,WACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAW,cACX,QAAS,CACP,MACA,KACA,MACA,SACA,QACA,QACA,aACA,KACA,OACA,SACA,OACA,MACA,QACA,YACA,WACA,MACA,MACA,WACA,UACA,KACA,KACA,UACA,UACA,cACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,SACA,UACA,MACA,SACA,SACA,KACA,OACA,KACA,MACA,MACA,MACA,MACA,SACA,SACA,OACA,KACA,MACA,OACA,MACA,UACA,OACA,QACA,OACD,CACD,SA/EmB,CACrB,QACA,OACA,QACA,OACA,Q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KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,MAClD,EACA,CAEE,MAAO,uBAAwB,EAiBlC,AACH,EACD,AACH,EACA,CAEE,UAAW,SACX,MAAO,gBACT,EACA,CACE,MAAO,OAAS,AAvHE,wFAuHc,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,iBACvD,YAAa,CAAA,EACb,SAAU,CACR,CACE,UAAW,WACX,MAAO,KACT,EACD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,oBAAsB,AA/HvB,26BA+H+B,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,UAAW,EACzE,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECbA,EAAO,OAAO,CA5Id,SAAa,CAAI,EAoGf,IAAM,EAAmB,CACvB,MAAO,CACL,6CACA,MACA,EAAK,QAAQ,CACd,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EAEA,MAAO,CACL,KAAM,gBACN,SAAU,CACR,QA3Ba,CACf,QACA,MACA,KACA,KACA,SACA,OACA,QACA,SACA,WACD,CAkBG,SAnHc,CAChB,MACA,OACA,UACA,OACA,OACA,OACA,aACA,YACA,kBACA,OACA,YACA,QACA,OACA,SACA,MACA,UACA,QACA,QACA,UACA,WACA,KACA,KACA,cACA,MACA,cACA,aACA,QACA,SACA,UACA,WACA,SACA,cACA,MACA,QACA,MACA,MACA,MACA,QACA,YACA,aACA,WACA,SACA,QACA,SACA,MACA,SACA,UACA,UACA,SACA,UACA,UACA,aACA,QACA,UACA,WACA,WACA,WACA,SACA,OACA,MACA,aACA,WACA,eACA,SACA,OACA,OACA,MACA,UACA,cACA,QACA,YACA,aACA,QACA,QACA,QACD,CAwCG,KAtCU,CACZ,SACA,QACA,QACA,QACA,SACA,SACD,AAgCC,EACA,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACA,EACA,CACE,cAAe,gCACf,IAAK,KACP,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvEA,EAAO,OAAO,CAnEd,SAAuB,CAAI,EACzB,MAAO,CACL,KAAM,wBACN,SAAU,CACR,QACE,y/FAmCF,SACE,kcAKJ,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,QACP,UAAW,CACb,EACA,CAAE,MAAO,cAAe,EACzB,AACH,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkPA,EAAO,OAAO,CAjTd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAGlB,EAAiB,QACjB,EAAsB,EAAM,MAAM,CAAC,EAAgB,EAAK,mBAAmB,EAC3E,EAAW,EAAM,MAAM,CAAC,EAAgB,EAAK,QAAQ,EAErD,EAAkB,CACtB,UAAW,wBACX,UAAW,EACX,MAAO,EAAM,MAAM,CACjB,KACA,oCACA,EACA,EAAM,SAAS,CAAC,SACpB,EACM,EAAgB,wCA+DhB,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,YACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,mBACD,CACK,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,MACD,CACD,MAAO,CACL,KAAM,OACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAU,EAAK,QAAQ,CAAG,KAC1B,KAAM,EACN,QAhKa,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,QACA,SACA,UACA,MACA,UACA,QACA,QACA,QACD,CA4GG,QA3Ga,CACf,OACA,QACA,OACA,OACA,KACA,MACD,CAqGG,SAAU,CACZ,EACA,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,SAAU,CAAE,OAAQ,AAAC,GACpD,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CACnC,MAAO,MACP,QAAS,IACX,GACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,0BAA2B,EACpC,CAAE,MAAO,iCAAkC,EAC5C,AACH,EACA,CACE,UAAW,SACX,MAAO,yBACT,EACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB,CAAc,EACzC,CAAE,MAAO,iBAAmB,CAAc,EAC1C,CAAE,MAAO,uBAAyB,CAAc,EAChD,CAAE,MAAO,kDACE,CAAc,EAC1B,CACD,UAAW,CACb,EACA,CACE,MAAO,CACL,KACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,gBACL,CACF,EACA,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACtB,AACH,EACD,AACH,EACA,CACE,MAAO,CACL,MACA,MACA,cACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,UACH,EAAG,UACL,CACF,EAEA,CACE,MAAO,CACL,MACA,MACA,EACA,MACA,KACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,WACH,EAAG,SACL,CACF,EACA,CACE,MAAO,CACL,OACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,CACL,uCACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACR,QAAS,OACT,SAAU,EACV,KAAM,CACR,CACF,EACA,CACE,UAAW,cACX,MAAO,IACT,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECpTA,IAAA,EAAA,EAAA,sCAuiBA,CAAA,EAAO,OAAO,CApiBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CA6dxB,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAnBa,CACf,OACA,UACA,QACA,cACA,cACA,WACA,MACA,SACA,SACA,YACA,SACA,WACD,CAOG,QAheiB,CACnB,KACA,KACA,OACA,OACA,MACA,QACA,QACA,QACA,QACA,SACA,KACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,SACA,QACA,YACA,UACA,KACA,OACA,SACA,QACA,OACA,WACA,WACA,SACA,OACA,KACA,SACA,WACA,QACA,OACA,QACA,QACA,SACA,UACA,OACA,OACA,WACA,QACA,UACA,SACA,UACA,SACA,MACA,OACA,MACA,WACA,SACA,SACA,UACA,SACA,SACA,SACA,MACA,OACA,WACA,OACA,QACA,SACA,UACA,QACA,SACA,MACA,UACA,MACA,MACA,QACA,KACA,UACA,QACA,SACA,SACA,WACA,WACA,OACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,KACA,MACA,OACA,UACA,SACA,UACA,MACA,OACA,KACA,KACA,QACA,UACA,aACA,QACA,WACA,SACA,MACA,QACA,SACA,SACA,WACA,OACA,QACD,AAkXC,EACA,SAAU,CACR,CAEE,UAAW,UACX,MAAO,wCACT,EACA,CAEE,UAAW,WACX,MAAO,6BACT,EACA,CACE,MAAO,CACL,OACA,oBACA,YACA,YACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,QACL,CACF,EACA,CACE,MAAO,CACL,eACA,MACA,0BACD,CACD,UAAW,CACT,EAAG,WACH,EAAG,gBACL,CACF,EACA,CACE,UAAW,WACX,MAAO,IAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAzHR,CACtB,SACA,WACA,SACA,UACA,WACA,UACA,UACA,KACA,OACA,MACA,OACA,SACA,OACA,KACA,QACA,QACA,SACA,QACA,OACA,SACA,MACA,QACA,UACA,QACA,OACA,WACA,UACA,QACA,MACA,UACA,QACA,WACA,QACA,UACA,WACA,QACA,QACA,UACA,OACA,MACA,SACA,SACA,UACA,WACA,UACA,UACA,SACA,UACA,UACA,QACA,UACA,OACA,KACA,OACA,UACA,QACA,SACA,SACA,QACA,SACD,EA6DG,EACA,CAEE,UAAW,iBACX,MAAO,yBACT,EACA,CAIE,UAAW,OACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAhaR,CAChB,MACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,UACA,UACA,OACA,MACA,UACA,OACA,OACA,MACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,WACA,WACA,MACA,OACA,MACA,SACA,KACA,SACA,WACA,SACA,UACA,UACA,QACA,OACA,UACA,WACA,WACA,MACA,SACA,QACA,UACA,UACA,QACA,QACA,SACA,SACA,SACA,SACA,UACA,OACA,MACA,UACA,MACA,QACA,OACA,QACA,WACA,UACA,QACA,WACA,SACA,MACA,OACA,QACA,MACA,UACA,SACA,OACA,UACA,QACA,WACA,SACA,OACA,YACA,WACA,UACA,QACA,OACA,UACA,WACA,WACA,QACA,SACA,QACA,QACA,WACA,UACA,SACA,OACA,OACA,QACA,UACA,QACA,OACA,OACA,SACA,SACA,QACA,YACA,UACA,UACA,SACA,MACA,WACA,OACA,UACA,QACA,SACA,SACA,QACA,SACA,SACA,MACA,QACA,QACA,QACA,MACA,UACA,UACA,WACA,MACA,SACA,OACA,SACA,SACA,UACA,SACA,MACA,QACA,OACA,SACA,SACA,SACA,UACA,MACA,MACA,OACA,MACA,SACA,MACA,QACA,QACA,OACA,IACA,QACA,QACA,SACA,OACA,MACA,OACA,UACA,WACA,MACA,OACA,QACA,MACA,QACA,UACA,OACA,WACA,WACA,UACA,QACA,UACA,WACA,SACA,WACA,WACA,QACA,MACA,OACA,OACA,MACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,OACA,MACA,SACA,OACA,MACA,OACA,WACA,UACA,SACA,OACA,MACA,SACA,SACA,SACA,UACA,SACA,MACA,SACA,SACA,SACA,UACA,QACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,QACA,YACA,UACA,WACA,OACA,QACA,QACA,UACA,SACA,MACA,MACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,UACA,WACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,aACA,cACA,aACA,cACA,aACA,cACA,aACA,SACA,UACA,UACA,WACA,QACA,SACA,QACA,SACA,UACA,OACA,MACA,UACA,UACA,WACA,WACD,GAwIyC,SACtC,EACA,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EACA,EAAK,OAAO,CAAC,MAAO,KACpB,EAAK,oBAAoB,CAC1B,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECpiBA,IAAA,EAAA,EAAA,sCA+MA,CAAA,EAAO,OAAO,CA7Md,SAAe,CAAI,EACjB,IAAM,EAAQ,EAAK,KAAK,CAOlB,EAAQ,CACZ,UAAW,QACX,SAAU,CACR,CAAE,MAAO,kBAAmB,EAC5B,CACE,MAA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CA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EAgIhB,CAAA,EAAO,OAAO,CApHd,SAAc,CAAI,EAChB,IAAM,EAvtBC,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe,AAktBG,EAltBE,oBAAoB,CACxC,SAAU,CACR,MAAO,SACP,MAAO,iDACT,EACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,AAmsBc,EAnsBT,gBAAgB,CACrB,AAksBc,EAlsBT,iBAAiB,CACvB,AACH,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,AA6rBS,EA7rBJ,SAAS,CAAd,kGASP,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF,EAkrBM,EAAgB,WAGhB,EAAW,CACf,UAAW,WACX,MAAO,kCACP,UAAW,CACb,EAEA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,QAAS,SACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAGzB,EAAM,eAAe,CACrB,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACb,EACA,CACE,UAAW,iBACX,MAAO,oBACP,UAAW,CACb,EACA,EAAM,uBAAuB,CAC7B,CACE,UAAW,eACX,MAAO,OAAS,EAAK,IAAI,CAAC,KAAO,OAEjC,UAAW,CACb,EACA,CACE,UAAW,kBACX,MAAO,KAAO,AAxCK,EAwCY,IAAI,CAAC,KAAO,GAC7C,EACA,CACE,UAAW,kBACX,MAAO,SAAW,AA7CE,EA6CgB,IAAI,CAAC,KAAO,GAClD,EACA,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,EAAM,eAAe,CAAE,AACrC,EACA,EAAM,YAAY,CAClB,CACE,UAAW,YACX,MAAO,OAAS,EAAW,IAAI,CAAC,KAAO,MACzC,EACA,CAAE,MAAO,4oCAA6oC,EACtpC,CACE,MAAO,IACP,IAAK,QACL,UAAW,EACX,SAAU,CACR,EAAM,aAAa,CACnB,EACA,EAAM,QAAQ,CACd,EAAM,eAAe,CACrB,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAM,SAAS,CACf,EAAM,iBAAiB,CACxB,AACH,EAIA,CACE,MAAO,oBACP,SAAU,CACR,SAAU,EACV,QAAS,kBACX,CACF,EACA,CACE,MAAO,IACP,IAAK,OACL,YAAa,CAAA,EACb,SAAU,CACR,SAAU,UACV,QAtFa,kBAuFb,UAAW,EAAe,IAAI,CAAC,IACjC,EACA,SAAU,CACR,CACE,MAAO,EACP,UAAW,SACb,EACA,CACE,MAAO,eACP,UAAW,WACb,EACA,EACA,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAM,QAAQ,CACd,EAAM,eAAe,CACtB,AACH,EACA,EAAM,iBAAiB,CACxB,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECzyBA,EAAO,OAAO,CAvBd,SAAe,CAAI,EACjB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA,eACD,CACD,SAAU,CACR,CACE,UAAW,cAIX,MAAO,qCACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACf,CACF,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC+FA,EAAO,OAAO,CArHd,SAAe,CAAI,EACjB,IAAM,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,MACD,CAiCD,MAAO,CACL,KAAM,QACN,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,CACE,UAAW,UACX,SAAU,CACR,CAAE,MAAO,2BAA4B,EACrC,CACE,MAAO,oBACP,UAAW,CACb,EACA,CACE,MAAO,oBACP,UAAW,CACb,EACA,CAAE,MAAO,mGAAwC,EAClD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,OAAS,EAAqB,IAAI,CAAC,KAAO,MAAO,EAC1D,CACE,MAAO,OAAS,EAAqB,IAAI,CAAC,KAAO,2BACjD,UAAW,EACb,EACA,CACE,MAAO,6IACP,UAAW,EACb,EACD,AACH,EACA,CACE,UAAW,QACX,MAAO,cACP,UAAW,CACb,EACA,CAAE,MAAO,YAAa,EACvB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvDA,EAAO,OAAO,CA5Dd,SAAmB,CAAI,EACrB,IAAM,EAAe,qBACf,EAAO,CACX,UAAW,SACX,MAAO,SACT,EACM,EAAS,CACb,UAAW,SACX,MAAO,IAAM,EAAK,mBAAmB,AACvC,EACA,MAAO,CACL,KAAM,YACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,OACA,QACA,MACA,OACA,QACA,cACD,CACD,SAAU,CACR,EAAK,OAAO,CAAC,IAAK,KAClB,EAAK,gBAAgB,CACrB,CACE,UAAW,OACX,MAAO,wBACP,UAAW,CACb,EACA,CACE,MAAO,EAAe,IACtB,UAAW,CACb,EACA,EAAK,aAAa,CAClB,EACA,EACA,CAIE,MAAO,UAAY,EAAe,QAAU,EAAe,YAC3D,YAAa,CAAA,EACb,IAAK,KACL,QAAS,KACT,SAAU,CAAE,CAAE,MAAO,aAAe,CAAa,EAAG,AACtD,EACA,CACE,MAAO,OACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EAAK,aAAa,CAClB,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECQA,EAAO,OAAO,CAlEd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,oBACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAU,eACV,QAEE,iPAIF,SAEE,uFACF,QACE,6CACJ,EACA,QAAS,UACT,SAAU,CACR,CACE,UAAW,UACX,MAAO,mBACP,UAAW,CACb,EACA,EAAK,OAAO,CACV,SACA,SACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAEzB,CACE,UAAW,SACX,MAAO,wBAET,EACA,CACE,UAAW,OACX,MAAO,eACT,EACA,CACE,UAAW,OACX,MAAO,kBACP,UAAW,CACb,EACA,CACE,MAAO,oBAAuB,EAChC,EAAK,OAAO,CAAC,EAAK,gBAAgB,CAAE,CAClC,UAAW,SACX,UAAW,CACb,GACA,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GACrD,CACE,UAAW,SACX,MACE,2HAIF,UAAW,CACb,EACA,CAAE,MAAO,OACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC6hFA,EAAO,OAAO,CA7jFd,SAAa,CAAI,EAgBf,IAAM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA+9EM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,kDACV,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,MAAO,YACP,IAAK,IACL,QAAS,KACX,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EAEA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAt/Ea,CACf,QACA,YACA,WACA,UACA,OACA,QACA,WACA,eACA,UACA,KACA,OACA,OACA,WACA,MACA,UACA,OACA,KACA,QACA,UACA,SACA,OACA,OACA,QACA,KACA,MACA,YACA,QACA,OACD,CA09EG,SAx7Ea,CACf,MACA,UACA,OACA,SACA,YACA,aACA,eACA,mBACA,kBACA,uBACA,aACA,eACA,iBACA,kBACA,cACA,0BACA,oBACA,sBACA,eACA,YACA,cACA,mBACA,yBACA,oBACA,mBACA,cACA,mBACA,uBACA,4BACA,wBACA,mBACA,kBACA,kBACA,WACA,uBACA,aACA,eACA,iBACA,cACA,UACA,eACA,qBACA,cACA,oBACA,mBACA,gBACA,eACA,cACA,uBACA,mBACA,yBACA,oBACA,kBACA,eACA,oBACA,UACA,cACA,yBACA,oBACA,uBACA,aACA,eACA,kBACA,uBACA,gCACA,YACA,eACA,WACA,eACA,yBACA,oBACA,gBACA,wBACA,YACA,aACA,4BACA,aACA,UACA,cACA,YACA,iBACA,uBACA,kBACA,gBACA,gBACA,kBACA,gCACA,sCACA,QACA,QACA,SACA,WACA,gBACA,SACA,qBACA,gBACA,mBACA,cACA,gBACA,QACA,kBACA,wBACA,gBACA,cACA,cACA,cACA,eACA,UACA,aACA,kBACA,mBACA,cACA,uBACA,YACA,UACA,gBACA,WACA,oBACA,aACA,cACA,sBACA,+BACA,cACA,eACA,iBACA,sBACA,eACA,aACA,eACA,cACA,aACA,mBACA,WACA,aACA,WACA,cACA,WACA,eACA,qBACA,OACA,cACA,MACA,UACA,aACA,cACA,eACA,gBACA,iBACA,iBACA,uBACA,iBACA,iBACA,SACA,QACA,eACA,iBACA,OACA,WACA,WACA,SACA,gBACA,qBACA,oBACA,iBACA,iBACA,iBACA,gBACA,gBACA,oBACA,iBACA,gBACA,iBACA,gBACA,iBACA,eACA,kBACA,sBACA,mBACA,aACA,aACA,kBACA,OACA,QACA,MACA,WACA,iBACA,kBACA,aACA,eACA,WACA,gBACA,QACA,WACA,gBACA,oBACA,gBACA,oBACA,mBACA,YACA,YACA,sBACA,YACA,iBACA,oBACA,cACA,kBACA,iBACA,iBACA,eACA,eACA,cACA,0BACA,6BACA,wBACA,yBACA,eACA,kBACA,YACA,gBACA,sCACA,OACA,gBACA,aACA,YACA,oBACA,eACA,0BACA,YACA,aACA,eACA,wBACA,iBACA,WACA,aACA,qBACA,aACA,eACA,iBACA,gBACA,iBACA,kBACA,gBACA,qBACA,gBACA,mBACA,mBACA,aACA,YACA,aACA,cACA,YACA,iBACA,YACA,eACA,eACA,YACA,YACA,SACA,uBACA,sBACA,mBACA,8BACA,kBACA,UACA,UACA,eACA,WACA,aACA,8BACA,oBACA,kBACA,UACA,aACA,YACA,eACA,OACA,iBACA,gBACA,iBACA,kBACA,YACA,qBACA,qBACA,4BACA,qBACA,2BACA,iBACA,kBACA,iBACA,uBACA,gBACA,qBACA,2BACA,oBACA,eACA,aACA,mBACA,yBACA,kBACA,cACA,cACA,eACA,eACA,qBACA,qBACA,gBACA,wBACA,kBACA,aACA,uBACA,cACA,YACA,cACA,gBACA,aACA,gBACA,iBACA,cACA,eACA,cACA,yBACA,gBACA,eACA,UACA,gBACA,kBACA,sBACA,UACA,eACA,gBACA,eACA,cACA,gBACA,aACA,kBACA,aACA,WACA,mBACA,wBACA,kBACA,sBACA,sBACA,uBACA,kBACA,oBACA,uBACA,oBACA,kBACA,gBACA,MACA,QACA,aACA,gBACA,YACA,YACA,eACA,wBACA,mBACA,cACA,eACA,eACA,kBACA,oBACA,qBACA,gBACA,mBACA,cACA,qBACA,gBACA,yBACA,iBACA,eACA,oBACA,aACA,aACA,uBACA,0BACA,qBACA,mBACA,aACA,oBACA,aACA,aACA,gBACA,aACA,gBACA,oBACA,qBACA,OACA,cACA,WACA,UACA,WACA,SACA,mBACA,kBACA,mBACA,gBACA,kBACA,eACA,eACA,sBACA,YACA,mBACA,0BACA,SACA,sBACA,uBACA,sBACA,sBACA,cACA,gBACA,aACA,gBACA,aACA,aACA,aACA,cACA,WACA,iBACA,sBACA,iBACA,UACA,UACA,iBACA,mBACA,oBACA,kBACA,gBACA,mBACA,kBACA,eACA,uBACA,qBACA,uBACA,YACA,oBACA,iBACA,oBACA,aACA,0BACA,eACA,6BACA,yBACA,YACA,mBACA,qBACA,eACA,yBACA,0BACA,yBACA,yBACA,iBACA,uBACA,sBACA,cACA,eACA,cACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,oBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,6BACA,eACA,gBACA,uBACA,yBACA,eACA,uBACA,oBACA,uBACA,wBACA,kBACA,mBACA,mBACA,mBACA,mBACA,eACA,sBACA,gBACA,wBACA,cACA,mBACA,4BACA,uBACA,uBACA,iBACA,yBACA,2BACA,0BACA,yBACA,aACA,wBACA,aACA,WACA,YACA,YACA,WACA,gBACA,iBACA,oBACA,oBACA,gBACA,cACA,WACA,UACA,qBACA,cACA,gBACA,aACA,cACA,YACA,sBACA,mBACA,aACA,UACA,gBACA,gBACA,oBACA,2BACA,cACA,yBACA,qBACA,yBACA,mBACA,gBACA,2BACA,kBACA,sBACA,uBACA,iBACA,iBACA,kBACA,wBACA,8BACA,wBACA,gBACA,mBACA,eACA,cACA,eACA,mBACA,oBACA,kBACA,gBACA,oBACA,sBACA,iBACA,eACA,eACA,aACA,cACA,yBACA,aACA,SACA,SACA,UACA,SACA,OACA,eACA,UACA,gBACA,iBACA,WACA,WACA,mBACA,MACA,qBACA,WACA,eACA,mBACA,qBACA,cACA,uBACA,iBACA,iBACA,eACA,oBACA,cACA,kBACA,aACA,eACA,aACA,gBACA,oBACA,iBACA,SACA,gBACA,yBACA,qBACA,wBACA,wBACA,+BACA,oBACA,0BACA,wBACA,uBACA,iBACA,gBACA,0BACA,0BACA,wBACA,4BACA,cACA,eACA,oBACA,wBACA,WACA,cACA,eACA,+BACA,oBACA,YACA,iBACA,WACA,oBACA,uBACA,0BACA,gBACA,mBACA,aACA,mBACA,kBACA,gBACA,cACA,SACA,qBACA,SACA,cACA,aACA,oBACA,uBACA,mBACA,YACA,gCACA,YACA,YACA,gBACA,uBACA,sBACA,yBACA,uBACA,sBACA,uBACA,uBACA,qBACA,2BACA,mBACA,yBACA,eACA,cACA,gBACA,gCACA,4BACA,yBACA,oBACA,gBACA,eACA,WACA,aACA,cACA,qBACA,eACA,kBACA,SACA,WACA,QACA,WACA,SACA,YACA,SACA,oBACA,WACA,UACA,YACA,cACA,WACA,aACA,YACA,WACA,aACA,WACA,eACA,cACA,gBACA,eACA,SACA,OACA,4BACA,gCACA,2BACA,iCACA,OACA,4BACA,aACA,wBACA,qBACA,mBACA,iBACA,WACA,kBACA,qBACA,eACA,qBACA,uBACA,oBACA,iBACA,iBACA,gBACA,sBACA,gBACA,wBACA,mBACA,+BACA,0BACA,gCACA,kBACA,wBACA,oBACA,gBACA,kBACA,2BACA,iBACA,eACA,qBACA,cACA,eACA,mBACA,0BACA,eACA,kBACA,mBACA,yBACA,gBACA,qBACA,mBACA,gBACA,0BACA,qBACA,qBACA,sBACA,0BACA,mBACA,aACA,WACA,iBACA,kBACA,gBACA,mBACA,WACA,qBACA,oBACA,oBACA,yBACA,oBACA,qBACA,gBACA,iBACA,OACA,mBACA,UACA,SACA,MACA,sBACA,oBACA,eACA,SACA,OACA,UACA,kBACA,YACA,YACA,YACA,aACA,cACA,aACA,sBACA,OACA,UACA,YACA,cACA,mBACA,oBACA,yBACA,SACA,mBACA,oBACA,SACA,OACA,eACA,gBACA,OACA,qBACA,YACA,WACA,cACA,UACA,UACA,QACA,cACA,iBACA,cACA,MACA,cACA,YACA,kBACA,qBACA,uBACA,YACA,WACA,mBACA,kBACA,oBACA,WACA,eACA,aACA,eACA,YACA,kBACA,qBACA,gBACA,qBACA,oBACA,eACA,SACA,YACA,qBACA,kBACA,mBACA,oBACA,gBACA,aACA,aACA,gBACA,WACA,aACA,OACA,WACA,mBACA,oBACA,eACA,eACA,MACA,qBACA,mBACA,gBACA,qBACA,gBACA,kBACA,cACA,sBACA,uBACA,sBACA,0BACA,mBACA,kBACA,gBACA,8BACA,4BACA,wBACA,mBACA,mBACA,yBACA,mBACA,eACA,sBACA,mBACA,WACA,mBACA,+BACA,kBACA,kBACA,0BACA,yBACA,kBACA,wBACA,mBACA,uBACA,kBACA,yCACA,yBACA,gBACA,kBACA,iBACA,uBACA,8BACA,kBACA,sBACA,sBACA,YACA,mBACA,wBACA,mBACA,2BACA,gCACA,aACA,oBACA,iBACA,SACA,eACA,gBACA,oBACA,0BACA,UACA,kBACA,kBACA,gBACA,uBACA,qBACA,wBACA,0BACA,wBACA,sBACA,aACA,0BACA,uBACA,iBACA,YACA,iBACA,eACA,iBACA,eACA,qBACA,gBACA,cACA,SACA,cACA,oBACA,eACA,cACA,gBACA,oBACA,mBACA,iBACA,eACA,gBACA,gBACA,UACA,mBACA,wBACA,iBACA,0BACA,mBACA,iBACA,eACA,mBACA,qBACA,YACA,oBACA,oBACA,eACA,eACA,cACA,qBACA,iBACA,iBACA,oBACA,gBACA,wBACA,gBACA,eACA,mBACA,qBACA,oBACA,0BACA,yBACA,yBACA,uBACA,qBACA,iBACA,mBACA,cACA,kBACA,eACA,qBACA,SACA,YACA,kBACA,aACA,YACA,kBACA,eACA,cACA,oBACA,oBACA,YACA,YACA,2BACA,iBACA,gBACA,cACA,mBACA,mBACA,mBACA,oBACA,iBACA,eACA,qBACA,2BACA,WACA,aACA,eACA,yBACA,qBACA,iBACA,iBACA,mBACA,sBACA,iBACA,UACA,aACA,iBACA,eACA,kBACA,uBACA,mBACA,kBACA,sBACA,sBACA,iBACA,eACA,oBACA,cACA,iBACA,kBACA,cACA,kBACA,mBACA,iBACA,gBACA,yBACA,sBACA,WACA,WACA,aACA,cACA,UACA,OACA,QACA,YACA,iBACA,sBACA,oBACA,UACA,aACA,aACA,SACA,qBACA,kBACA,SACA,QACA,OACA,eACA,kBACA,gBACA,WACA,YACA,eACA,iBACA,YACA,cACA,gBACA,WACA,oBACA,gBACA,aACA,gBACA,aACA,YACA,aACA,WACA,WACA,aACA,mBACA,gBACA,OACA,QACA,YACA,aACA,MACA,cACA,WACA,oBACA,WACA,QACA,kBACA,aACA,KACA,SACA,cACA,qBACA,UACA,WACA,YACA,4BACA,sBACA,aACA,0BACA,eACA,kBACA,YACA,cACA,kBACA,aACA,qBACA,SACA,qBACA,YACA,SACA,oBACA,gBACA,kBACA,sBACA,UACA,wBACA,0BACA,UACA,gBACA,eACA,0BACA,aACA,kBACA,UACA,aACA,YACA,UACA,qBACA,mBACA,kBACA,cACA,iBACA,aACA,aACA,YACA,cACA,iBACA,iBACA,mBACA,oBACA,wBACA,UACA,iBACA,cACA,eACA,oBACA,gBACA,eACA,0BACA,WACA,uBACA,4BACA,cACA,cACA,WACA,YACA,YACA,cACA,eACA,wBACA,kCACA,gBACA,oBACA,QACA,gBACA,eACA,SACA,WACA,iBACA,cACA,WACA,eACA,WACA,aACA,mBACA,sBACA,WACA,0BACA,WACA,mBACA,iBACA,kBACA,mBACA,iBACA,wBACA,4BACA,wBACA,SACA,mBACA,cACA,oBACA,mBACA,iBACA,cACA,mBACA,iBACA,mBACA,yBACA,YACA,mBACA,iBACA,YACA,QACA,qBACA,OACA,SACA,eACA,aACA,aACA,gBACA,uBACA,aACA,aACA,UACA,gBACA,SACA,YACA,WACA,UACA,OACA,aACA,OACA,SACA,aACA,WACA,cACA,QACA,UACA,UACA,eACA,WACA,SACA,WACA,eACA,YACA,iBACA,cACA,aACA,kBACA,cACA,YACA,eACA,oBACA,4BACA,4BACA,oBACA,yBACA,iCACA,iCACA,mBACA,wBACA,gBACA,YACA,iBACA,eACA,aACA,SACA,SACA,WACA,gBACA,SACA,cACA,YACA,UACA,SACA,oBACA,qBACA,kBACA,gCACA,+BACA,yCACA,iCACA,yCACA,mBACA,eACA,iBACA,qBACA,YACA,oBACA,oBACA,YACA,aACA,aACA,mBACA,iBACA,qBACA,yBACA,qBACA,WACA,OACA,cACA,oBACA,qBACA,KACA,cACA,eACA,YACA,WACA,WACA,gBACA,eACA,UACA,kBACA,eACA,wBACA,aACA,kBACA,cACA,mBACA,mBACA,kBACA,aACA,gBACA,qBACA,0BACA,6BACA,kCACA,qBACA,aACA,kBACA,gBACA,cACA,UACA,UACA,YACA,iBACA,UACA,eACA,WACA,OACA,UACA,eACA,aACA,WACA,WACA,eACA,eACA,cACA,aACA,cACA,WACA,WACA,iBACA,mBACA,OACA,eACA,YACA,aACA,SACA,iBACA,cACA,eACA,kBACA,eACA,eACA,gBACA,aACA,SACA,MACA,cACA,aACA,sBACA,SACA,YACA,gBACA,YACA,sBACA,gBACA,qBACA,oBACA,kBACA,0BACA,yBACA,sBACA,kBACA,qBACA,aACA,eACA,gBACA,cACA,oBACA,kBACA,wBACA,cACA,cACA,gBACA,cACA,YACA,iBACA,YACA,eACA,cACA,aACA,aACA,aACA,iBACA,kBACA,MACA,UACA,UACA,aACA,UACA,cACA,YACA,eACA,WACA,aACA,aACA,cACA,aACA,YACA,cACA,gBACA,eACA,cACA,iBACA,kBACA,cACA,aACA,eACA,eACA,mBACA,WACA,WACA,WACA,UACA,YACA,QACA,MACA,aACA,iBACA,gBACA,mBACA,oBACA,oBACA,aACA,cACA,oBACA,mBACA,0BACA,eACA,iBACA,MACA,eACA,qBACA,0BACA,oBACA,YACA,gBACA,YACA,SACA,OACA,iBACA,YACA,cACA,kBACA,eACA,eACA,eACA,kBACA,UACA,WACA,SACA,kBACA,eACA,cACA,OACA,kBACA,YACA,eACA,kBACA,kBACA,mBACA,6BACA,eACA,gBACA,iBACA,wBACA,cACA,mBACA,YACA,eACA,cACA,aACA,cACA,QACA,aACA,aACA,oBACA,oBACA,aACA,MACA,qBACA,eACA,iBACA,kBACA,eACA,YACA,kBACA,kBACA,iBACA,uBACA,uBACA,gBACA,cACA,mBACA,uBACA,uBACA,4BACA,mBACA,oBACA,uBACA,oBACA,mBACA,kBACA,eACA,uBACA,cACA,UACA,UACA,eACA,mBACA,KACA,aACA,WACA,mBACA,QACA,QACA,SACA,cACA,mBACA,YACA,mBACA,mBACA,qBACA,iBACA,QACA,YACA,gBACA,qBACA,SACA,SACA,sBACA,gBACA,aACA,gBACA,SACA,oBACA,aACA,gBACA,cACA,cACA,WACA,cACA,YACA,sBACA,YACA,cACA,cACA,OACA,WACA,wBACA,mBACA,mBACA,iBACA,iBACA,oBACA,iBACA,kBACA,iBACA,kBACA,qBACA,YACA,gBACA,gBACA,eACA,kBACA,kBACA,iBACA,4BACA,gBACA,qBACA,wBACA,WACA,mBACA,iBACA,cACA,mBACA,mBACA,wBACA,mBACA,sBACA,iBACA,uBACA,uBACA,WACA,iBACA,gBACA,iBACA,oBACA,kBACA,MACA,kBACA,qBACA,mBACA,qBACA,0BACA,uBACA,eACA,cACA,OACA,UACA,aACA,SACA,OACA,SACA,SACA,cACA,YACA,aACA,eACA,kBACA,eACA,SACA,gBACA,gBACA,aACA,iBACA,sBACA,uBACA,yBACA,kBACA,eACA,6BACA,mBACA,yBACA,0BACA,sBACA,yBACA,8BACA,+BACA,yBACA,wBACA,iBACA,8BACA,gCACA,2BACA,8BACA,sBACA,8BACA,gCACA,mCACA,mBACA,iBACA,uBACA,sBACA,sBACA,0BACA,+BACA,2BACA,oBACA,qBACA,iBACA,kBACA,qBACA,6BACA,gBACA,kBACA,oBACA,iBACA,aACA,yBACA,wBACA,qBACA,cACA,iBACA,uBACA,kBACA,wBACA,uBACA,iBACA,4BACA,uBACA,0BACA,kBACA,0BACA,4BACA,mBACA,uBACA,mBACA,gBACA,+BACA,aACA,eACA,8BACA,oBACA,qBACA,qBACA,qBACA,kBACA,gBACA,yBACA,SACA,YACA,iBACA,sBACA,SACA,aACA,UACA,iBACA,SACA,mBACA,kBACA,sBACA,iBACA,oBACA,eACA,aACA,UACA,cACA,aACA,kBACA,aACA,QACA,kBACA,eACA,aACA,cACA,kBACA,eACA,QACA,gBACA,YACA,YACA,eACA,YACA,eACA,YACA,oBACA,WACA,eACA,gBACA,8BACA,cACA,uBACA,aACA,UACA,gBACA,MACA,QACA,QACA,YACA,QACA,YACA,aACA,gBACA,aACA,aACA,YACA,kBACA,uBACA,0BACA,SACA,mBACA,qBACA,wBACA,qBACA,iBACA,oBACA,0BACA,eACA,YACA,YACA,iBACA,eACA,eACA,uBACA,eACA,qBACA,gBACA,oBACA,WACA,iBACA,iBACA,mBACA,gBACA,yBACA,0BACA,aACA,kBACA,aACA,MACA,mBACA,oBACA,cACA,sBACA,eACA,sBACA,mBACA,0BACA,2BACA,uBACA,oBACA,kBACA,aACA,yBACA,sBACA,iBACA,UACA,eACA,iBACA,mBACA,cACA,iBACA,kBACA,gBACA,gBACA,eACA,qBACA,uBACA,eACA,oBACA,uBACA,oBACA,cACA,aACA,kBACA,oBACA,qBACA,gBACA,wBACA,sBACA,mBACA,8BACA,iBACA,4BACA,yBACA,oBACA,iBACA,qBACA,mBACA,uBACA,2BACA,qBACA,YACA,aACA,UACA,oBACA,mBACA,iBACA,wBACA,qBACA,yBACA,SACA,eACA,cACA,iBACA,kBACA,+BACA,mCACA,gBACA,uBACA,qBACA,wBACA,kBACA,UACA,mBACA,aACA,iBACA,wBACA,eACA,cACA,iBACA,SACA,uBACA,eACA,mBACA,aACA,YACA,gBACA,iBACA,UACA,eACA,eACA,qBACA,0BACA,uBACA,aACA,mBACA,gBACA,WACA,gBACA,SACA,cACA,oBACA,yBACA,uBACA,cACA,cACA,gBACA,eACA,YACA,kBACA,sBACA,qBACA,gBACA,mBACA,mBACA,2BACA,oBACA,oBACA,aACA,gBACA,mBACA,sBACA,qBACA,wBACA,iBACA,sBACA,iBACA,sBACA,iBACA,sBACA,eACA,oBACA,oBACA,yBACA,eACA,oBACA,kBACA,uBACA,iBACA,sBACA,gBACA,qBACA,gBACA,qBACA,gBACA,qBACA,UACA,aACA,WACA,mBACA,sBACA,mBACA,iBACA,uBACA,UACA,eACA,qBACA,oBACA,0BACA,iBACA,iBACA,mBACA,yBACA,wBACA,gBACA,cACA,WACA,qBACA,oBACA,mBACA,kBACA,oBACA,oBACA,0BACA,yBACA,uBACA,gBACA,eACA,qBACA,WACA,iBACA,cACA,uBACA,qBACA,SACA,YACA,aACA,aACA,YACA,cACA,cACA,kBACA,oBACA,cACA,UACA,aACA,eACA,UACA,iBACA,iBACA,mBACA,oBACA,iBACA,UACA,6BACA,0BACA,2BACA,2BACA,sBACA,oBACA,wBACA,UACA,WACA,eACA,iBACA,aACA,YACA,eACA,aACA,mBACA,eACA,iBACA,mBACA,eACA,sBACA,gBACA,eACA,iBACA,mBACA,UACA,oBACA,iBACA,iBACA,eACA,oBACA,qBACA,gBACA,kBACA,uBACA,iBACA,qBACA,uBACA,iBACA,oBACA,iBACA,kBACA,sBACA,UACA,iBACA,iBACA,oBACA,wBACA,iBACA,aACA,iBACA,cACA,2BACA,eACA,oBACA,oBACA,iBACA,kBACA,cACA,eACA,oBACA,cACA,iBACA,oBACA,kBACA,kBACA,eACA,iBACA,qBACA,kBACA,iCACA,8BACA,gCACA,mBACA,oBACA,cACA,wBACA,4BACA,kBACA,4BACA,kBACA,WACA,uBACA,wBACA,8BACA,yBACA,4BACA,uBACA,2BACA,4BACA,0BACA,wBACA,kBACA,sBACA,oBACA,mBACA,wBACA,qBACA,kBACA,qBACA,yBACA,mBACA,UACA,aACA,eACA,aACA,uBACA,WACA,cACA,WACA,mBACA,qBACA,cACA,qBACA,UACA,UACA,aACA,UACA,yBACA,YACA,eACA,sBACA,sBACA,WACA,WACA,WACA,WACA,aACA,kBACA,iBACA,eACA,eACA,aACA,UACA,YACA,iBACA,gBACA,cACA,cACA,YACA,eACA,gBACA,OACA,WACA,YACA,cACA,oBACA,oBACA,sBACA,gBACA,mBACA,MACA,OACA,SACA,QACA,aACA,WACA,QACA,iBACA,cACA,oBACA,iBACA,iBACA,cACA,0BACA,mBACA,WACA,OACA,cACA,QACA,UACA,eACA,QACA,YACA,cACA,OACA,cACA,SACA,qBACA,OACA,gBACA,UACA,MACA,YACA,cACA,cACA,iBACA,gBACA,iBACA,cACA,cACA,kBACA,eACA,eACA,gBACA,cACA,aACA,sBACA,uBACA,wBACA,wBACA,2BACA,qBACA,sBACA,aACA,gBACA,aACA,gBACA,MACA,kBACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,iBACA,kBACA,kBACA,WACA,mBACA,WACA,aACA,aACA,YACA,WACA,aACA,WACA,QACA,aACA,oBACA,WACA,YACA,mBACA,sBACA,wBACA,OACA,UACA,gBACA,KACA,OACA,iBACA,WACA,eACA,WACA,WACA,YACA,UACA,UACA,UACA,cACA,WACA,UACA,cACA,mBACA,oBACA,cACA,cACA,yBACA,sBACA,uBACA,2BACA,kBACA,oBACA,cACA,iBACA,wBACA,cACA,OACA,cACA,cACA,aACA,QACA,UACA,aACA,gBACA,UACA,WACA,SACA,WACA,WACA,cACA,eACA,YACA,iBACA,cACA,aACA,cACA,YACA,eACA,oBACA,4BACA,4BACA,oBACA,yBACA,iCACA,iCACA,mBACA,gBACA,YACA,eACA,aACA,SACA,YACA,gBACA,mBACA,SACA,YACA,UACA,OACA,WACA,SACA,aACA,cACA,UACA,kBACA,eACA,eACA,kBACA,aACA,UACA,mBACA,eACA,mBACA,kBACA,aACA,kBACA,wBACA,eACA,iBACA,YACA,UACA,YACA,wBACA,QACA,mBACA,aACA,aACA,oBACA,iBACA,iBACA,iBACA,mBACA,8BACA,yBACA,uBACA,oBACA,SACA,YACA,YACA,qBACA,aACA,YACA,kBACA,iBACA,oBACA,mBACA,eACA,yBACA,kBACA,qBACA,qBACA,2BACA,iBACA,mBACA,WACA,iBACA,qBACA,2BACA,UACA,sBACA,cACA,kBACA,eACA,8BACA,2BACA,6BACA,WACA,iBACA,WACA,qBACA,kBACA,OACA,gBACA,YACA,gBACA,eACA,iBACA,aACA,aACA,kBACA,qBACA,oBACA,eACA,QACA,yBACA,0BACA,uBACA,wBACA,oBACA,qBACA,2BACA,sBACA,yBACA,oBACA,wBACA,yBACA,uBACA,qBACA,eACA,mBACA,YACA,iBACA,sBACA,eACA,gBACA,qBACA,kBACA,yBACA,eACA,kBACA,oBACA,yBACA,cACA,kBACA,gBACA,gBACA,sBACA,UACA,cACA,eACA,oBACA,cACA,gBACA,YACA,aACA,OACA,UACA,UACA,UACA,iBACA,YACA,YACA,eACA,qBACA,gBACD,CA+BG,QAz9EY,CACd,SACA,WACA,aACA,cACA,cACA,kBACA,OACA,OACA,QACA,UACA,cACA,YACA,eACA,MACA,UACA,QACA,KACA,aACA,aACA,kBACA,YACA,YACA,eACA,YACA,cACA,WACA,iBACA,OACA,OACD,AA47EC,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,WAAW,CAriFH,CACf,UAAW,WACX,MAAO,iBACT,EAIiB,CACf,UAAW,QACX,MAAO,yCACT,EA8hFI,EACA,EACD,CACD,QAAS,CAEP,iBACA,OACA,KACA,IAEA,OAEA,cACA,OACA,OACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC/kFC,IAAA,EAAA,EAAA,sCAqpBD,CAAA,EAAO,OAAO,CAnpBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAe,EAAK,OAAO,CAAC,KAAM,KAiBlC,EAAW,CACf,OACA,QAGA,UACD,CASK,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,YACD,CAkYK,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,eACD,CAuBK,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,gBACD,CAIK,EAAW,AACf,CAAA,EAAA,EAAA,CAAA,AAAA,EAvfqB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,OACD,EAwII,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EApgByB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,OACD,GA4fC,MAAM,CAAC,SAAC,CAHV,EAIE,MAAO,CAAC,EAAmB,QAAQ,CAAC,EACtC,GAaM,EAAgB,CACpB,MAAO,EAAM,MAAM,CAAC,KAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EArBvB,IAqBsC,SACtD,UAAW,EACX,SAAU,CAAE,SAvBI,CAuBgB,CAClC,EAmBA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAElB,QAAS,WACT,SAAU,CACR,SAAU,YACV,QACE,AAxBN,SAAyB,CAAI,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAE3B,CAAC,EADH,EAD6B,EAC7B,UAAA,CAAY,EADiB,EACjB,IADiB,CAK7B,OADA,EAAa,GAAc,EAAE,CACtB,EAAK,GAAG,CAAC,SAAC,CAAjB,SACE,AAAI,EAAK,KAAK,CAAC,WAAa,EAAW,QAAQ,CAAC,GACvC,EACE,AALK,EAKK,GACZ,GAAQ,MAAA,CAAL,EAAK,MAER,CAEX,EACF,EAUsB,EAAU,CAAE,KAAM,SAAC,CAAP,EAAa,OAAA,EAAE,MAAM,CAAG,C,CAAE,GACxD,QAAS,EACT,KAAM,EACN,SA7F4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,iBACD,AA8EC,EACA,SAAU,CACR,CACE,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACvB,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAAS,EAAS,MAAM,CAAC,GACzB,QAAS,EACT,KAAM,CACR,CACF,EACA,CACE,UAAW,OACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1mBD,CACvB,mBACA,eACA,gBACA,mBACD,EAsmBG,EACA,EA9Da,CACf,UAAW,WACX,MAAO,qBACT,EAzkBe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACD,AACH,EAC0B,CACxB,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EA0nBI,EAAK,aAAa,CAClB,EAAK,oBAAoB,CACzB,EA/Da,CACf,UAAW,WACX,MAAO,gDACP,UAAW,CACb,EA6DG,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECjqBA,IAAA,EAAA,EAAA,sCAkgBA,CAAA,EAAO,OAAO,CAhgBd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAoTlB,EAAgB,CACpB,YACA,kBACA,sBACA,OACA,gBACA,kBACA,WACA,iBACA,cACA,oBACA,wBACA,SACA,aACA,YACA,iBACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,aACA,iBACA,iBACA,YACA,cACA,uBACA,WACA,oBACA,WACA,cACA,YACA,WACA,oBACA,cACA,oBACA,eACA,wBACA,oBACA,2BACA,kBACA,2BACA,eACA,iBACA,qBACA,yBACA,SACA,gBACA,mBACA,uBACA,iBACA,SACA,gBACA,UACA,cACA,kBACA,WACA,wBACA,0BACA,cACA,aACA,iBACA,YACA,UACA,YACA,UACA,SACA,UACA,mBACD,CAEK,EAAgB,EAAK,OAAO,CAChC,OACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,SACP,MAAO,iBACT,EACD,AACH,GAGI,EAAU,CACd,MAAO,OACP,MAAO,aACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,iBACP,MAAO,QACT,EACA,EAAK,mBAAmB,CACzB,AACH,EAEM,EAAoB,CACxB,QACA,QACA,SACA,aACD,CAED,MAAO,CACL,KAAM,OACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,SAAU,EAAK,QAAQ,CACvB,MAlaW,CACb,YACA,QACA,OACA,aACA,aACA,cACA,YACD,CA2ZG,KA9YU,CACZ,QACA,QACA,UACA,MACA,OACA,SACA,iBACA,UACA,mBACA,UACA,cACA,aACA,qBACA,SACA,iBACA,0BACA,yBACA,iBACA,gBACA,OACD,CA0XG,QA1Ze,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,SACD,CAkZG,SAjXc,CAChB,MACA,OACA,QACA,WACA,iBACA,wBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,oBACA,qBACA,kBACA,QACA,OACA,OACA,WACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,0BACA,4BACA,4BACA,OACA,MACA,OACA,eACA,YACA,cACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,MACA,UACA,cACA,cACA,WACA,qBACA,oBACA,UACA,OACA,WACA,cACA,WACA,iBACA,qBACA,cACA,kBACA,eACA,mBACA,MACA,OACA,MACA,OACA,QACA,oBACA,OACA,MACA,OACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,sBACA,WACA,WACA,OACA,wBACA,eACA,QACA,kBACA,WACA,eACA,gBACA,sBACA,oBACA,qBACA,WACA,MACA,cACA,WACA,UACA,cACA,UACA,WACA,eACA,YACA,UACA,WACA,aACA,SACA,SACA,aACA,cACA,QACA,UACA,QACA,SACA,kBACA,sBACA,uBACA,mBACA,UACA,YACA,MACA,QACA,YACA,kBACA,QACA,YACA,kBACA,eACA,wBACA,gBACA,qBACA,QACA,UACA,iCACA,uBACA,cACA,cACA,oBACA,WACA,aACA,sBACA,eACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,oCACA,oBACA,OACA,QACA,QACA,eACA,eACA,YACA,gBACA,sBACA,UACA,cACA,WACA,eACA,WACA,eACA,gBACA,oBACA,qBACA,iBACA,aACA,iBACA,kBACA,cACA,UACA,MACA,aACA,QACA,oBACA,MACA,QACA,OACA,OACA,KACA,OACA,OACA,UACA,YACA,YACA,YACA,iBACA,gBACA,WACA,OACA,aACA,SACA,YACA,aACA,iBACA,aACA,UACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,UACA,WACA,YACA,mBACA,oBACA,OACA,SACA,mBACA,OACA,UACA,UACA,MACA,MACA,QACA,QACA,4BACA,OACA,MA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ACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EA4LhB,CAAA,EAAO,OAAO,CAhLd,SAAgB,CAAI,EAClB,IAAM,EAvtBC,CACL,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,IAnBR,EAmBQ,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAMrB,MAHe,IACV,CAAA,AArBL,CAAA,AAAI,AAAgB,UAAhB,OAFE,EAAO,AAqBqB,CArBjB,CAAC,AAqBgB,EArBX,MAAM,CAAG,EAAE,GAEF,EAAK,WAAW,GAAK,QACnD,AAkBgC,EAlB3B,MAAM,CAAC,AAkBoB,EAlBf,MAAM,CAAG,EAAG,GACtB,GAEA,CAAC,CADV,EAkBU,OAAO,CAAG,GAAK,IAAA,EACrB,EAAK,GAAG,CAAC,SAAC,CAFd,EAEoB,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,KAAO,GAE7C,CAEA,IAAM,EAAiB,SAAA,CAAvB,EAAkC,OAAA,EAChC,KACA,EACA,MAAM,IAAI,CAAC,GAAW,KAAO,K,EAIzB,EAAc,CAClB,WACA,OACD,CAAC,GAAG,CAAC,GAGA,EAAsB,CAC1B,OACA,OACD,CAAC,GAAG,CAAC,GAGA,EAAe,CACnB,MACA,OACD,CAGK,EAAW,CAIf,QACA,MACA,iBACA,QACA,QACA,OACA,MACA,KACA,YACA,QACA,OACA,QACA,QACA,UACA,YACA,WACA,cACA,OACA,UACA,QACA,SACA,SACA,cACA,KACA,UACA,OACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,QACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,UACD,CAMK,EAAW,CACf,QACA,MACA,OACD,CAGK,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,QACD,CAIK,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,WACD,CAGK,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,MACD,CAGK,EAAe,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII,EAAoB,EACxB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMI,EAAW,EAAO,EAAc,EAAmB,KAGnD,EAAiB,EACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASI,EAAsB,EAC1B,EACA,KACA,0DAII,EAAa,EAAO,EAAgB,EAAqB,KAGzD,EAAiB,EAAO,QAAS,EAAqB,KAKtD,EAAoB,CACxB,WACA,cACA,EAAO,eAAgB,EAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,eACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACA,EAAO,SAAU,EAAY,MAC7B,OACA,cACA,kBACA,iCACA,gBACA,WACA,WACA,oBACA,YACA,UACA,mBACA,0BACD,CAGK,EAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,QACD,AAiiBD,CAAA,EAAO,OAAO,CAphBd,SAAe,CAAI,EACjB,IAAM,EAAa,CACjB,MAAO,MACP,UAAW,CACb,EAEM,EAAgB,EAAK,OAAO,CAChC,OACA,OACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAEnB,EAAW,CACf,EAAK,mBAAmB,CACxB,EACD,CAIK,EAAc,CAClB,MAAO,CACL,KACA,EAAA,KAAA,CAAA,KAAA,EAAA,AAAO,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAC3B,CACD,UAAW,CAAE,EAAG,SAAU,CAC5B,EACM,EAAgB,CAEpB,MAAO,EAAO,KAAM,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAC9B,UAAW,CACb,EACM,EAAiB,EACpB,MAAM,CAAC,SAAA,CADV,EACgB,MAAA,AAAc,UAAd,OAAO,CACpB,GAAA,MAAM,CAAC,CAAE,MAAO,EACb,EAAiB,EACpB,MAAM,CAAC,SAAA,CADV,EACgB,MAAA,AAAc,UAAd,OAAO,CAAiB,GACrC,MAAM,CAAC,GACP,GAAG,CAAC,GACD,EAAU,CAAE,SAAU,CAC1B,CACE,UAAW,UACX,MAAO,EAAA,KAAA,CAAA,KAAA,EAAA,AAAO,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CAAgB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACtC,EACD,AAAC,EAEI,EAAW,CACf,SAAU,EACR,QACA,QAEF,QAAS,EACN,MAAM,CAAC,GACV,QAAS,CACX,EACM,EAAgB,CACpB,EACA,EACA,EACD,CAYK,EAAY,CATK,CAErB,MAAO,EAAO,KAAM,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAC9B,UAAW,CACb,EACiB,CACf,UAAW,WACX,MAAO,EAAO,KAAM,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAW,SAC3C,EAIC,CAGK,EAAiB,CAErB,MAAO,KACP,UAAW,CACb,EAaM,EAAY,CAChB,EAbe,CACf,UAAW,WACX,UAAW,EACX,SAAU,CACR,CAAE,MAAO,CAAS,EAClB,CAIE,MAAO,WAA6B,MAAA,CAAlB,EAAkB,KAAI,EAC3C,AACH,EAIC,CAIK,EAAgB,aAChB,EAAY,mBACZ,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAER,CAAE,MAAO,OAA6B,MAAA,CAAtB,EAAc,UAAsB,MAAA,CAAd,EAAc,OAAO,cAA4B,MAAA,CAAd,EAAc,SAAQ,EAE/F,CAAE,MAAO,SAA2B,MAAA,CAAlB,EAAU,UAAkB,MAAA,CAAV,EAAU,OAAO,cAA4B,MAAA,CAAd,EAAc,SAAQ,EAEzF,CAAE,MAAO,kBAAmB,EAE5B,CAAE,MAAO,iBAAkB,EAC5B,AACH,EAGM,EAAoB,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,GAAQ,MAAA,CAChD,UAAW,QACX,SAAU,CACR,CAAE,MAAO,EAAO,KAAM,EAAc,aAAc,EAClD,CAAE,MAAO,EAAO,KAAM,EAAc,wBAAyB,EAC9D,AACH,C,EACM,EAAkB,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,GAAQ,MAAA,CAC9C,UAAW,QACX,MAAO,EAAO,KAAM,EAAc,wBACpC,C,EACM,EAAgB,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,GAAQ,MAAA,CAC5C,UAAW,QACX,MAAO,WACP,MAAO,EAAO,KAAM,EAAc,MAClC,IAAK,IACP,C,EACM,EAAmB,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,GAAQ,MAAA,CAC/C,MAAO,EAAO,EAAc,OAC5B,IAAK,EAAO,MAAO,GACnB,SAAU,CACR,EAAkB,GAClB,EAAgB,GAChB,EAAc,GACf,AACH,C,EACM,EAAqB,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,GAAQ,MAAA,CACjD,MAAO,EAAO,EAAc,KAC5B,IAAK,EAAO,IAAK,GACjB,SAAU,CACR,EAAkB,GAClB,EAAc,GACf,AACH,C,EACM,EAAS,CACb,UAAW,SACX,SAAU,CACR,IACA,EAAiB,KACjB,EAAiB,MACjB,EAAiB,OACjB,IACA,EAAmB,KACnB,EAAmB,MACnB,EAAmB,OACpB,AACH,EAEM,EAAkB,CACtB,EAAK,gBAAgB,CACrB,CACE,MAAO,KACP,IAAK,KACL,UAAW,EACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACD,CAQK,EAA0B,SAAC,CAAjC,EACE,IAAM,EAAQ,EAAO,EAAc,MAC7B,EAAM,EAAO,KAAM,GACzB,MAAO,CACL,MAAA,EACA,IAAA,EACA,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,CACE,MAAO,UACP,MAAO,SAAa,MAAA,CAAJ,EAAI,KACpB,IAAK,GACP,EACD,CACH,CACF,EAGM,EAAS,CACb,MAAO,SACP,SAAU,CACR,EAAwB,OACxB,EAAwB,MACxB,EAAwB,KA7BA,CAC1B,MAAO,uBACP,IAAK,KACL,SAAU,CACZ,EA2BG,AACH,EAGM,EAAoB,CAAE,MAAO,EAAO,IAAK,EAAY,IAAK,EAS1D,EAAc,CAClB,EATyB,CACzB,UAAW,WACX,MAAO,OACT,EACoC,CAClC,UAAW,WACX,MAAO,MAA0B,MAAA,CAApB,EAAoB,IACnC,EAKC,CA8BK,EAAa,CA3BS,CAC1B,MAAO,sBACP,MAAO,UACP,OAAQ,CAAE,SAAU,CAClB,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,EACA,EACD,CACH,EACD,AAAC,CACJ,EAE0B,CACxB,MAAO,UACP,MAAO,EAAO,IAAK,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAoB,EAAU,EAAO,KAAM,QAC1E,EAE+B,CAC7B,MAAO,OACP,MAAO,EAAO,IAAK,EACrB,EAMC,CAGK,EAAO,CACX,MAAO,EAAU,WACjB,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,EAAO,gEAAiE,EAAqB,IACtG,EACA,CACE,UAAW,OACX,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,QACP,UAAW,CACb,EACA,CACE,MAAO,SACP,UAAW,CACb,EACA,CACE,MAAO,EAAO,UAAW,EAAU,IACnC,UAAW,CACb,EACD,AACH,EACM,EAAoB,CACxB,MAAO,IACP,IAAK,IACL,SAAU,EACV,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAHK,CAIR,EACA,EACD,CACH,EACA,EAAK,QAAQ,CAAC,IAAI,CAAC,GAUnB,IAAM,EAAQ,CACZ,MAAO,KACP,IAAK,KACL,UAAW,EACX,SAAU,EACV,SAAU,CACR,OAZuB,CACzB,MAAO,EAAO,EAAY,QAC1B,SAAU,MACV,UAAW,CACb,EAoBG,CAbS,MAAA,CAGR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAHK,CAIR,EASD,CARC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAPK,CAQR,EACA,EAID,CAHC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAXK,CAYR,EACD,CACH,EAEM,EAAqB,CACzB,MAAO,IACP,IAAK,IACL,SAAU,cACV,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,EACD,CACH,EAmBM,GAAsB,CAC1B,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAtBoB,CAC9B,MAAO,EACL,EAAU,EAAO,EAAY,SAC7B,EAAU,EAAO,EAAY,MAAO,EAAY,UAElD,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,UACX,MAAO,OACT,EACA,CACE,UAAW,SACX,MAAO,CACT,EACD,AACH,EAeG,CAVS,MAAA,CAER,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAJK,CAKR,EACA,EAID,CAHC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAPK,CAQR,EACA,EACD,EACD,WAAY,CAAA,EACZ,QAAS,MACX,EAGM,GAAoB,CACxB,MAAO,CACL,eACA,MACA,EAAO,EAAkB,KAAK,CAAE,EAAY,GAC7C,CACD,UAAW,CACT,EAAG,UACH,EAAG,gBACL,EACA,SAAU,CACR,EACA,GACA,EACD,CACD,QAAS,CACP,KACA,IACD,AACH,EA+BM,GAAkB,CACtB,MAAO,CACL,kBACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,OACL,EACA,SAAU,CAAE,EAAM,CAClB,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEL,IAAK,GACP,EAEM,GAAmB,CACvB,MAAO,CACL,+CACA,MACA,EACA,MACD,CACD,WAAY,CACV,EAAG,UACH,EAAG,aACL,EACA,SAAU,EACV,SAAU,CACR,EAeD,CAhBS,MAAA,CAER,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAFK,CAGR,CACE,MAAO,IACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,CACE,MAAO,wBACP,MAAO,CACT,EAED,CANS,MAAA,CAKR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEL,UAAW,CACb,EACD,CACH,EAGK,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,E,G,CAAL,IAAA,IAAK,GAAA,GAAiB,EAAO,QAAQ,CAAA,OAAA,QAAA,CAAA,GAAhC,CAAA,CAAA,GAAA,AAAA,CAAA,GAAA,GAAA,IAAA,EAAA,EAAA,IAAA,AAAA,EAAA,GAAA,CAAA,EAAkC,CACrC,IAAM,GAAgB,AADnB,GAAA,KAAA,CAC2B,QAAQ,CAAC,IAAI,CAAC,SAAA,CAA5C,EAAoD,MAAA,AAAe,aAAf,EAAK,KAAK,A,EAE9D,CAAA,GAAc,QAAQ,CAAG,EACzB,IAAM,GAAW,AACf,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAHY,CAIf,EACA,EAED,CADC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAEL,CAAA,GAAc,QAAQ,CAAG,AACvB,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAA,MAAA,CADoB,CAEvB,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,OAED,CAHS,MAAA,CAER,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEP,EACD,CACH,C,C,M,E,CAvBK,GAAA,CAAA,EAAA,GAAA,C,Q,C,G,CAAA,IAAA,AAAA,MAAA,GAAA,MAAA,EAAA,GAAA,MAAA,E,Q,CAAA,GAAA,GAAA,MAAA,E,C,CAyBL,MAAO,CACL,KAAM,QACN,SAAU,EACV,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,GA3GmB,CACrB,MAAO,CACL,4BACA,cACD,CACD,UAAW,CAAE,EAAG,SAAU,EAC1B,SAAU,CACR,EACA,GACA,EACD,CACD,QAAS,MACX,EAiGI,GA/FyB,CAC3B,MAAO,CACL,WACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,OACL,CACF,EAuFI,GACA,CACE,cAAe,SACf,IAAK,IACL,SAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACf,UAAW,CACb,EACA,EAUD,CATC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAhBK,CAiBR,EACA,EAKD,CAJC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GApBK,CAqBR,EACA,EACD,CACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECl3BA,EAAO,OAAO,CAnDd,SAAsB,CAAI,EAuCxB,MAAO,CACL,KAAM,gBACN,SAAU,CAxCC,CACX,UAAW,UACX,MAAO,WACP,IAAK,KACL,SAAU,CACR,CAAE,MAAO,QAAS,EAClB,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CAAE,MAAO,QAAS,EAClB,OACD,AACH,EACD,CACD,UAAW,EACb,EAEiB,CACf,UAAW,UACX,MAAO,uBACT,EAEiB,CACf,UAAW,WACX,MAAO,kBACT,EAOwB,CACtB,UAAW,SACX,MAAO,eACT,EARgC,CAC9B,UAAW,SACX,MAAO,mBACT,EAeG,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EChDA,IAAA,EAAA,EAAA,sCA0LA,CAAA,EAAO,OAAO,CAzLd,SAAc,CAAI,EAChB,IAAM,EAAW,yBAGX,EAAiB,8BA+BjB,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CAAE,MAAO,KAAM,EAChB,CACD,SAAU,CACR,EAAK,gBAAgB,CA5BE,CACzB,UAAW,oBACX,SAAU,CACR,CACE,MAAO,OACP,IAAK,MACP,EACA,CACE,MAAO,MACP,IAAK,IACP,EACD,AACH,EAkBG,AACH,EAIM,EAAmB,EAAK,OAAO,CAAC,EAAQ,CAAE,SAAU,CACxD,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CAAE,MAAO,cAAe,EACzB,AAAC,GAWI,EAAkB,CACtB,IAAK,IACL,eAAgB,CAAA,EAChB,WAAY,CAAA,EACZ,SAAU,EACV,UAAW,CACb,EAgBM,EAAQ,CA1FF,CACV,UAAW,OACX,SAAU,CAER,CAAE,MAAO,6BAA8B,EACvC,CACE,MAAO,+BAAgC,EACzC,CACE,MAAO,+BAAgC,EAC1C,AACH,EAkFE,CACE,UAAW,OACX,MAAO,YACP,UAAW,EACb,EACA,CAKE,UAAW,SACX,MAAO,+DACT,EACA,CACE,MAAO,WACP,IAAK,UACL,YAAa,OACb,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,SAAW,CACpB,EAEA,CACE,UAAW,OACX,MAAO,KAAO,EAAiB,GACjC,EACA,CACE,UAAW,OACX,MAAO,IAAM,CACf,EACA,CACE,UAAW,OACX,MAAO,KAAO,CAChB,EACA,CACE,UAAW,OACX,MAAO,IAAM,EAAK,mBAAmB,CAAG,GAC1C,EACA,CACE,UAAW,OACX,MAAO,MAAQ,EAAK,mBAAmB,CAAG,GAC5C,EACA,CACE,UAAW,SAEX,MAAO,aACP,UAAW,CACb,EACA,EAAK,iBAAiB,CACtB,CACE,cAAe,EACf,SAAU,CAAE,QAAS,CAAS,CAChC,EArFgB,CAChB,UAAW,SACX,MAAO,+HACT,EAsFE,CACE,UAAW,SACX,MAAO,EAAK,WAAW,CAAG,MAC1B,UAAW,CACb,EAjFa,CACb,MAAO,KACP,IAAK,KACL,SAAU,CAAE,EAAiB,CAC7B,QAAS,MACT,UAAW,CACb,EACc,CACZ,MAAO,MACP,IAAK,MACL,SAAU,CAAE,EAAiB,CAC7B,QAAS,MACT,UAAW,CACb,EAuEE,EACD,CAEK,EAAgB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAKzB,OAJA,EAAY,GAAG,GACf,EAAY,IAAI,CAAC,GACjB,EAAgB,QAAQ,CAAG,EAEpB,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,QAAS,CAAE,MAAO,CAClB,SAAU,CACZ,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EClJA,EAAO,OAAO,CAtCd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,yBACN,iBAAkB,CAAA,EAClB,SAAU,CACR,EAAK,iBAAiB,CAEtB,CACE,UAAW,OACX,SAAU,CACR,CAAE,MAAO,sBAAuB,EAChC,CAAE,MAAO,iBAAkB,EAC5B,AACH,EAEA,CACE,MAAO,OACP,IAAK,aACL,YAAa,OACb,UAAW,CACb,EAEA,CACE,UAAW,SACX,MAAO,UACT,EAEA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,KAAM,EACf,CAAE,MAAO,SAAU,EACpB,AACH,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkJA,EAAO,OAAO,CAtLd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,yBAEZ,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,AACH,EA2HA,MAAO,CACL,KAAM,MACN,QAAS,CAAE,KAAM,CACjB,SA5He,CACf,QACA,SACA,QACA,QACA,cACA,cACA,YACA,eACA,mBACA,eACA,aACA,UACA,SACA,QACA,QACA,KACA,OACA,QACA,QACA,SACA,WACA,MACA,OACA,WACA,MACA,QACA,OACA,OACA,OACA,OACA,WACA,aACA,QACA,OACA,YACA,WACA,QACA,MACA,UACA,SACA,OACA,OACA,SACA,UACA,OACA,KACA,OACA,OACA,SACA,OACA,aACA,aACA,YACA,aACA,OACA,aACA,OACA,YACA,aACA,cACA,cACA,aACA,UACA,WACA,WACA,SACA,SACA,SACA,YACA,OACA,UACA,SACA,MACA,cACA,cACA,WACA,kBACA,OACA,OACA,MACA,OACA,UACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,OACA,MACA,SACA,SACA,QACA,SACA,QACA,SACA,gBACA,kBACA,sBACA,0BACA,qBACA,sBACA,UACA,UACA,OACA,OACA,KACA,QACA,UACA,SACA,QACA,SACA,UACA,QACA,WACA,QACA,QACD,CAMC,SAAU,CACR,EAAK,OAAO,CAAC,YAAa,KAC1B,EAAK,OAAO,CAAC,YAAa,KAC1B,CACE,cAAe,OACf,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,CACR,CACE,UAAW,QACX,MAAO,kDACP,IAAK,eACL,eAAgB,CAAA,EAChB,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CACnB,KACA,EAAM,QAAQ,CAAC,MACf,EACA,MACA,EACA,KACA,EACF,CACE,MAAO,2CACP,IAAK,MACL,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GAAI,AACvE,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECtLA,IAAA,EAAA,EAAA,sCAsEA,CAAA,EAAO,OAAO,CApEd,SAAgB,CAAI,EAClB,IAAM,EAAQ,CACZ,OACA,OACA,MACA,MACA,MACA,SACA,SACA,SACD,CAiBD,MAAO,CACL,KAAM,SACN,SAAU,CACR,QAnBa,CACf,YACA,QACA,UACA,SACA,OACA,UACA,YACA,OACA,SACA,MACA,OACA,MACA,WACA,WACD,CAKG,KAAM,EACN,QAAS,YACX,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,QACX,cAAe,gCACf,IAAK,KACL,QAAS,KACT,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAE5B,OAAQ,CACN,eAAgB,CAAA,EAChB,WAAY,CAAA,CACd,CAAE,GACL,AACH,EACA,CACE,MAAO,yBACP,SAAU,CAAE,KACV,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADa,CAEhB,MACA,OACA,MACD,CAAC,EACF,IAAK,IACL,SAAU,CAAE,OAAQ,AACtB,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECiGA,EAAO,OAAO,CApKd,SAAY,CAAI,EACd,IAAM,EAAO,CACX,UAAW,SACX,MAAO,cACP,UAAW,CACb,EACM,EAAU,CACd,UAAW,SACX,MAAO,UACT,EAYM,EAAO,CACX,UAAW,WACX,MAAO,6CACP,IAAK,MACL,SAAU,CACR,OACA,EACA,EAAK,iBAAiB,CACtB,EACD,AACH,EAqFA,MAAO,CACL,KAAM,KACN,SAAU,CACR,QAtFa,CACf,QACA,MACA,SACA,MACA,QACA,QACA,OACA,MACA,MACA,YACA,SACA,KACA,KACA,MACA,SACA,OACA,MACA,SACA,UACA,aACA,OACA,MACA,KACA,QACA,MACA,KACA,MACA,mBACA,OACA,MACA,UACA,SACA,SACA,KACA,WACA,QACA,OACA,MACA,QACA,MACA,SACA,OACA,OACA,KACA,KACA,KACA,cACA,cACA,KACA,KACA,aACA,YACA,SACA,OACA,IACA,IACA,IACA,IACA,IACA,IACA,SACA,SACA,UACA,UACA,OACA,OACA,KACA,MACD,CAkBG,QAjBa,CACf,KACA,MACA,YACA,OACA,OACA,SACA,UACA,QACA,OACA,QACD,AAOC,EACA,SAAU,CAhHG,CACb,UAAW,WACX,MAAO,2HAEP,IAAK,MACL,SAAU,CACR,OACA,EACA,EACD,AACH,EAwGI,EACA,CACE,UAAW,UACX,MAAO,4BACT,EACA,CAEE,UAAW,UACX,MAAO,+BACT,EACA,CAGE,UAAW,UACX,MAAO,uDACT,EACA,CAEE,UAAW,SACX,MAAO,6DACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,KAAM,QACnB,EAAK,OAAO,CAAC,IAAK,QAClB,EAAK,OAAO,CAAC,QAAS,KACtB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,EAAK,aAAa,CAClB,CACE,UAAW,WACX,MAAO,kBACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EClKA,IAAA,EAAA,EAAA,sCA4PA,CAAA,EAAO,OAAO,CA1Pd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAiB,CACrB,eACA,UACA,gBACA,YACA,QACA,WACA,eACA,oBACA,aACA,QACA,OACA,OACA,aACA,SACA,WACA,cACA,YACA,aACA,YACA,WACA,aACA,cACA,eACA,UACA,aACA,cACA,aACA,MACA,MACA,SACA,SACA,SACA,QACA,gBACA,SACA,aACA,SACA,uBACA,QACD,CA0EG,EAAY,CACd,QACA,aACA,QACA,QACA,aACA,KACA,QACA,UACA,SACA,QACA,MACA,aACA,OACA,KACA,SACA,UACA,QACA,UACA,MACA,YACA,QACA,uBACA,cACA,MACA,WACA,OACD,CAED,EAAY,EAAU,MAAM,CAAC,EAAU,GAAG,CAAC,SAAA,CAA3C,EAAgD,MAAC,MAAO,MAAA,CAAF,E,IAEtD,IAAM,EAAS,CACb,MAAO,SACP,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAEM,EAAS,CACb,MAAO,SACP,MAAO,KACT,EAcM,EAAY,CAChB,cAAe,EAAe,IAAI,CAAC,KACnC,SAAU,CAAE,KAAM,CAAe,EACjC,UAAW,EACX,SAAU,CAhBG,CACb,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACR,EACA,EACD,AACH,EAOsB,AACtB,EAEM,EAAS,CACb,MAAO,qBACP,WAAY,cACZ,UAAW,EACX,SAAU,CACR,CACE,MAAO,eACP,SApJU,CACd,MACA,aACA,cACA,QACA,aACA,SACA,mBACA,eACA,gBACA,kBACA,WACA,OACA,cACA,UACA,SACA,eACA,YACA,gBACA,SACA,QACA,SACA,cACA,sBACA,kBACA,cACA,kBACA,cACA,wBACA,gBACA,cACA,mBACA,WACA,eACA,aACA,OACA,cACA,OACA,gBACA,OACA,SACA,cACA,QACA,MACA,WACA,mBACA,QACA,QACA,gBACA,MACA,SACA,UACA,UACA,QACA,QACA,OACA,OACA,YACA,QACA,YACA,gBACA,QACA,QACA,cACA,OACA,MACA,QACA,aACA,YACA,cACD,AA+EG,EACD,AACH,EAEM,EAAW,SAAC,CAAlB,CAAA,CAAA,EACE,MAAO,CACL,WAAY,CACV,EAAG,eACH,EAAG,MACL,EACA,UAAW,AANe,EAAA,SAAA,EAMF,EACxB,SAAU,eACV,MAAO,CACL,MACA,MACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACjB,CACD,IAAK,MACL,SAAU,KACV,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,CACF,EAGM,EAAM,EAAS,EAAW,CAAE,UAAW,CAAE,GACzC,EAAa,EAAS,CAFN,UAEuB,CAAE,CAAE,UAAW,CAAE,GAE9D,MAAO,CACL,KAAM,OACN,QAAS,CAAE,WAAY,CACvB,iBAAkB,CAAA,EAClB,YAAa,MACb,SAAU,CACR,EAAK,OAAO,CAAC,MAAO,OACpB,EACA,EACA,CACE,UAAW,oBACX,MAAO,OACP,IAAK,OACL,SAAU,CACR,OACA,EACA,EACA,EACA,EACD,AACH,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCCjQM,EAAW,2BACX,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAGK,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEK,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAEK,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAEK,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,SACD,CAEK,EAAY,EAAE,CAAC,MAAM,CACzB,EACA,EACA,EAyuBF,CAAA,EAAO,OAAO,CA3Hd,SAAoB,CAAI,EACtB,IAlmBM,EAQA,QAuEA,EASA,EACA,EAGA,EACA,EAuBA,EAOA,EAaA,EAaA,EAaA,EAgDA,EAQA,EAyBA,EACA,EASA,EAYA,EAoCA,EAmEU,EAIV,EAaA,EA8BA,EAQA,EA2LA,GAlmBA,EAAQ,AAkmBgB,EAlmBX,KAA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AE,QACR,oEAAqE,EACzE,SAAU,CAAE,EAAS,AACvB,EAyCG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnJA,IAAA,EAAA,EAAA,sCAoNA,CAAA,EAAO,OAAO,CAjNd,SAAkB,CAAI,EACpB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAqB,CACzB,QACA,QACA,UACA,WACA,SACA,YACA,YACA,MACA,SACA,SACA,cACA,MACA,UACA,YACA,MACA,MACA,SACA,UACA,QACA,QACA,iBACA,cACA,OACA,YACA,SACA,OACA,QACA,MACA,OACA,aACA,OACA,MACA,MACA,UACA,QACA,aACA,MACA,QACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,WACA,iBACA,UACA,SACA,QACA,MACA,QACA,WACA,MACA,OACA,MACA,MACA,SACA,SACA,QACA,YACA,MACA,QACA,QACA,QACA,OACA,OACA,MACA,WACA,OACA,UACA,MACA,eACA,cACA,MACA,eACA,MACA,QACA,OACA,MACA,WACA,QACA,MACA,OACA,UACA,OACA,OACA,gBACA,MACA,WACA,OACA,OACA,OACA,SACA,OACA,MACD,CAuFD,MAAO,CACL,KAAM,WACN,QAAS,CAAE,MAAO,CAClB,iBAAkB,CAAA,EAClB,SAAU,CACR,QAjEa,CACf,OACA,QACA,QACA,MACA,KACA,OACA,QACA,UACA,gBACA,OACA,MACA,OACA,OACA,WACA,KACA,OACA,OACA,KACA,QACA,SACA,WACA,MACA,UACA,WACA,MACA,MACA,SACA,YACA,QACA,MACA,SACA,OACA,MACA,OACA,MACA,QACA,OACA,OACA,MACA,KACA,SACA,KACA,KACA,MACA,MACA,MACA,mBACA,kBACA,UACA,WACA,KACA,KACA,QACA,QACA,OACA,SACA,OACD,CAQG,SA5FqB,CACvB,SACA,WACA,UAEA,eACA,2BACA,2BACA,2BACD,CAoFG,QA3Ea,CACf,OACA,QACA,OACA,UACA,QACD,AAsEC,EACA,QAAS,KACT,SAAU,CArFU,CACpB,MAAO,EAAM,MAAM,CAAC,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAqB,WAEzD,UAAW,EACX,SAAU,CAAE,SAAU,CAAmB,CAC3C,EAkFI,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAAC,GACrE,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EClMA,EAAO,OAAO,CAdd,SAAsB,CAAI,EACxB,MAAO,CACL,KAAM,mBACN,YAAa,MACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,YAAa,UACf,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECdA,IAAA,EAAA,EAAA,sCA8hBA,CAAA,EAAO,OAAO,CA5hBd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CA2clB,EAAa,CACjB,iBACA,aACA,kBACA,qBACA,0BACA,SACA,yBACA,kBACA,kBACA,kBACA,OACA,QACA,eACA,gBACA,QACA,QACA,SACA,UACA,OACA,sBACA,SACA,WACA,YACA,oBACA,QACA,cACD,CAED,MAAO,CACL,KAAM,UACN,QAAS,CACP,IACA,KACA,MACD,CACD,iBAAkB,CAAA,EAClB,SA/ee,CACf,SAAU,qBACV,QAAS,CACP,YACA,QACA,SACA,cACA,YACA,eACA,MACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,UACA,UACA,QACA,WACA,OACA,SACA,QACA,aACA,UACA,WACA,QACA,aACA,aACA,QACA,WACA,UACA,WACA,SACA,UACA,OACA,KACA,OACA,OACA,MACA,UACA,aACA,WACA,cACA,YACA,cACA,cACA,WACA,eACA,YACA,aACA,eACA,aACA,cACA,aACA,cACA,WACA,UACA,OACA,QACA,aACA,SACA,SACA,UACA,SACA,QACA,cACA,MACA,QACA,UACA,UACA,OACA,WACA,WACA,aACA,SACA,SACA,SACA,SACA,KACA,MACA,SACA,cACA,eACA,aACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,SACA,WACA,MACA,UACA,eACA,YACA,YACA,OACA,WACA,YACA,QACA,MACA,UACA,UACA,QACA,aACA,QACA,UACA,cACA,UACA,SACA,UACA,SACA,OACA,UACA,UACA,MACA,WACA,OACA,MACA,kBACA,MACA,SACA,SACA,KACA,SACA,UACA,SACA,YACA,OACA,UACA,YACA,WACA,UACA,WACA,YACA,QACA,QACA,WACA,SACA,sBACA,qBACA,OACA,OACA,QACA,WACA,eACA,QACA,OACA,WACA,MACA,MACA,YACA,UACA,SACA,WACA,SACA,QACA,QACA,QACA,WACA,WACA,WACA,eACA,aACA,UACA,eACA,WACA,WACA,WACA,YACA,gBACA,SACA,QACA,OACA,QACA,UACA,YACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,UACA,UACA,iBACA,iBACA,QACA,SACA,OACA,OACA,aACA,OACA,gBACA,WACA,OACA,UACA,UACA,MACA,OACA,OACA,SACA,QACA,SACA,OACA,UACA,QACA,SACA,UACA,WACA,QACA,aACA,UACA,MACA,QACA,MACA,WACA,UACA,OACA,OACA,aACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,OACA,SACA,MACA,OACA,MACD,CACD,QAAS,CAAE,OAAQ,CACnB,SAAU,CACR,UACA,QACA,QACA,SACA,SACA,WACA,QACA,YACA,QACA,kBACA,cACA,mBACA,QACA,UACA,QACA,QACA,SACA,cACA,cACA,mBACA,QACA,YACA,YACA,cACA,gBACA,gBACA,sBACA,aACA,iBACA,iBACA,iBACA,oBACA,eACA,WACA,QACA,WACA,aACA,aACA,gBACA,eACA,eACA,oBACA,gBACA,iBACA,wBACA,QACA,UACA,QACA,aACA,eACA,eACA,gBACA,iBACA,WACA,oBACA,kBACA,gBACA,oBACA,YACA,uBACA,QACA,OACA,aACA,SACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,aACA,UACA,aACA,SACA,WACA,cACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,aACA,WACA,SACA,QACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,UACA,gBACA,gBACA,YACA,UACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,SACA,UACA,YACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,UACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,SACA,YACA,YACA,aACA,kBACA,YACA,UACA,aACA,aACA,eACA,kBACA,UACA,UACA,UACA,WACA,YACA,YACA,YACA,aACA,YACA,WACA,WACA,aACA,gBACA,gBACA,kBACA,UACA,YACA,aACA,aACA,aACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,QACA,SACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,aACA,WACA,YACA,SACA,UACA,SACA,UACA,UACA,SACA,UACD,AACH,EA2CE,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,mBAAmB,CACxB,EAAK,iBAAiB,CACtB,CACE,MAAO,SACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CAAE,MAAO,yCAA0C,EACnD,CAAE,MAAO,sCAAuC,EAChD,CACE,MAAO,iBACP,UAAW,CACb,EACD,AACH,EAEA,CACE,MAAO,WACP,SAAU,CACR,CAAE,MAAO,wBAAyB,EAClC,CACE,MAAO,UACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,oBACP,MAAO,EAAM,MAAM,CAAC,IAAK,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAvEjB,CACzB,WACA,WACD,GAqEG,EACA,CACE,MAAO,OACP,MAAO,EAAM,MAAM,CAAC,IAAK,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KACzC,IAAK,cACL,UAAW,CAAA,EACX,SAAU,CACZ,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5UA,EAAO,OAAO,CA9Md,SAAc,CAAI,EAIhB,IAAM,EAAa,cACb,EAAc,YAAc,EAyKlC,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QArKa,CACf,MACA,SACA,QACA,QACA,MACA,MACA,eACA,QACA,SACA,SACA,mBACA,YACA,QACA,QACA,OACA,SACA,MACA,OACA,YACA,gBACA,WACA,UACA,QACA,aACA,SACA,UACA,OACA,QACA,MACA,SACA,OACA,WACA,OACA,MACA,QACA,WACA,WACA,UACA,QACA,UACA,KACA,SACA,KACA,WACA,QACA,KACA,QACA,UACA,UACA,UACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,KACA,KACA,OACA,KACA,SACA,MACA,UACA,YACA,OACA,YACA,YACA,UACA,WACA,YACA,OACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,WACA,qBACA,SACA,MACA,MACA,SACA,WACA,WACA,SACA,SACA,MACA,MACA,MACA,MACA,SACA,UACA,OACA,KACA,YACA,OACA,aACA,QACA,QACA,MACA,WACA,OACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,MACD,CAiDG,SAhDc,CAChB,UACA,MACA,YACA,UACA,OACA,eACA,UACA,WACA,SACA,aACA,iBACA,mBACA,YACA,mBACA,WACA,SACA,iBACA,iBACA,aACA,oBACA,sBACA,aACA,oBACA,WACA,cACA,cACD,CAsBG,QArBa,CAEf,QACA,OACA,OACA,UACA,QACA,UAEA,OACA,OACA,OACA,QACD,AASC,EACA,QAAS,KACT,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,OAAO,CAAC,KAAM,KACnB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAlLY,OAFO,EAAA,oBAAqF,EAE5F,MALS,CAAA,EAAa,OAAS,CAAA,EAAtB,MAAgD,EAKzD,MAmLZ,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,wBACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,4BACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrFA,EAAO,OAAO,CAxHd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,aACN,SAAU,CACR,SAAU,WACV,QAEE,mwLAkBF,SACE,6nEAmCJ,EACA,QAAS,IACT,SAAU,CACR,EAAK,WAAW,CAChB,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EAYA,CACE,UAAW,SACX,MAAO,sBACT,EACA,EAAK,OAAO,CAAC,IAAK,KAElB,CACE,UAAW,WACX,MAAO,qBACT,EACA,CACE,MAAO,CACL,2BACA,MACA,EAAK,QAAQ,CACd,CACD,UAAW,CACT,EAAG,UACH,EAAG,OACL,EACA,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EACD,AACH,EACA,CACE,UAAW,SACX,MAAO,UACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECYA,EAAO,OAAO,CAjId,SAAc,CAAI,EAChB,EAAK,KAAK,CACV,IAAM,EAAgB,EAAK,OAAO,CAAC,MAAO,OA0G1C,OAzGA,EAAc,QAAQ,CAAC,IAAI,CAAC,QAyGrB,CACL,KAAM,cACN,SAAU,CACR,SAAU,SACV,QA1GQ,CACV,UACA,QACA,KACA,QACA,WACA,OACA,gBACA,OACA,OACA,OACA,OACA,MACA,SACA,OACA,aACA,aACA,YACA,YACA,YACA,aACA,YACA,SACA,KACA,SACA,QACA,OACA,SACA,cACA,cACA,SACA,MACA,MACA,SACA,QACA,SACA,SACA,SACA,aACA,YACA,QACA,QACA,YACA,OACA,OACA,cACD,AA6DC,EACA,SAAU,CA9GS,EAAK,OAAO,CAAC,KAAM,KAgHpC,EApBiB,CACnB,MAAO,CACL,mBACA,MACA,IACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,UACL,CACF,EAxCiB,CACf,UAAW,WACX,MAAO,UACT,EAEe,CACb,MAAO,gBACP,UAAW,cACX,UAAW,CACb,EArB2B,CACzB,MAAO,CACL,8BACA,MACA,YACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,gBACL,CACF,EAyDI,EAAK,iBAAiB,CArCb,CAEX,MAAO,0BACP,UAAW,MACb,EAEwB,CACtB,UAAW,UAEX,MAAO,mZACT,EAjBe,CACb,UAAW,SACX,UAAW,EAEX,MAAO,iNACT,EA2CG,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECjIA,IAAA,EAAA,EAAA,sCAsSA,CAAA,EAAO,OAAO,CAnSd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,cACX,EAAW,CACf,KACA,QACA,QACA,YACA,WACA,OACA,MACA,UACA,KACA,SACA,KACA,KACA,SACA,SACA,MACA,QACD,CACK,EAAW,CACf,OACA,QACA,OACD,CACK,EAAgB,CACpB,OACA,QACD,CAgBK,EAAY,CAChB,IACA,IACA,KACA,IACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,IACA,SACA,KACA,KACA,IACA,OACA,KACA,MACA,IACD,CACK,EAAW,CACf,UAAW,EACX,MAAO,EAAM,MAAM,CAAC,oCAAqC,EAAU,eACnE,UAAW,gBACb,EACM,EAAsB,CAC1B,MAAO,EAAM,MAAM,CACjB,EAAM,MAAM,CACV,EAAM,MAAM,CAAC,oCAAqC,GAClD,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAElB,yBACF,UAAW,iBACX,OAAQ,CAAE,SAAU,CAClB,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,EACX,MAAO,SACP,MAAO,CACT,EACD,AACH,EACD,AAAC,CACJ,EAqBM,EAAW,CACf,UAAW,EACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACvB,UAAW,UACb,EAQM,EAAW,CACf,UAAW,WACX,MAAO,EAAM,MAAM,CAAC,KAAM,EAAM,SAAS,CAAC,IAC1C,IAAK,EACL,aAAc,CAAA,EACd,UAAW,CACb,EAEM,EAAQ,CACZ,UAAW,EACX,MAAO,EAAM,MAAM,CAAC,MAAO,GAC3B,MAAO,UACT,EAGM,EAAkB,CACtB,UAAW,EACX,MAAO,gCACP,MAAO,cACP,SAAU,CAAE,EAvHO,CACnB,OACA,QACA,QACA,KACA,OACA,MACA,OACA,MACA,SACA,QACA,WACA,SACA,SACD,AAyG6B,CAC9B,EAGM,EAAS,EAAK,aAAa,CAmB3B,EAAe,EAAK,OAAO,CAC/B,SACA,OACA,CAAE,SAAU,CACV,CACE,MAAO,UACP,MAAO,QACT,EACA,OACD,AAAC,GAEE,EAAQ,CACZ,MAAO,QACP,MAAO,MACP,IAAK,KACL,SAAU,CACR,EACA,EACA,EACA,EACA,EACD,AACH,EACM,EAAS,CACb,MAAO,SACP,MAAO,IACP,IAAK,IACL,SAAU,CACR,EACA,CACE,MAAO,cACP,SAAU,CACR,CAAE,MAAO,sBAAuB,EAChC,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,gBAAiB,EAC3B,AACH,EACD,AACH,EACA,EAAM,QAAQ,CAAC,IAAI,CAAC,GAEpB,IAAM,EAAU,AACd,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEC,EAAW,CACf,UAAW,EACX,MAAO,EAAM,MAAM,CACjB,SACA,EAAQ,IAAI,CAAC,KACb,OACA,2BAEF,UAAW,UACb,EAmCA,MAAO,CACL,KAAM,OACN,SAAU,CACR,QAAS,EACT,oBAAqB,EACrB,QAAS,CACX,EACA,SAAU,CAvCM,CAEhB,MAAO,UACP,SAAU,CACR,CACE,MAAO,CACL,MACA,mBACD,CACD,WAAY,CAEZ,EACA,SAAU,CAAE,QAAS,CAAS,EAC9B,SAAU,EAGT,CACD,IAAK,IACP,EACA,CACE,MAAO,CACL,MACA,aACD,CACD,WAAY,CAEZ,EACA,IAAK,GACP,EACD,AACH,EAWI,EACA,EArJkB,CACpB,UAAW,SACX,MAAO,MACP,IAAK,KACP,EAmJI,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EApLqB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,WACA,EACA,WACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,WACA,EACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAuCe,CACb,MAAO,CACL,EACA,MACA,IACA,MACA,KACA,EACA,UACD,CACD,MAAO,CACL,EAAG,iBACH,EAAG,WACH,EAAG,QACL,CACF,EA+GI,EACA,EACA,EACA,EACA,EACA,EACD,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECnJA,EAAO,OAAO,CAhJd,SAAgB,CAAI,EAClB,MAAO,CACL,KAAM,qBACN,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,QAAU,EAAK,QAAQ,CACjC,QACE,qteAEF,SAEE,i5CAyCF,KACE,w/BAaJ,EACA,SAAU,CACR,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,CACE,UAAW,SACX,SAAU,CAER,CACE,MAAO,uHAEP,UAAW,CACb,EAGA,CACE,MAAO,uBACP,UAAW,CACb,EAGA,CAAE,MAAO,kGAAmG,EAG5G,CAAE,MAAO,2EAA4E,EACtF,AACH,EAEA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,SAAU,CAER,CACE,MAAO,IACP,IAAK,UACP,EAEA,CACE,MAAO,IACP,IAAK,UACP,EACD,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CAER,CAAE,MAAO,kDAAmD,EAE5D,CAAE,MAAO,6BAA8B,EACxC,CACD,UAAW,CACb,EAEA,CACE,UAAW,QACX,MAAO,UACP,UAAW,CACb,EAEA,CACE,UAAW,QACX,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,eACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsDA,EAAO,OAAO,CArMd,SAAY,CAAI,EAqId,IAAM,EAAW,CACf,SAAU,yBACV,QAtIU,CACV,KACA,OACA,OACA,KACA,QACA,QACA,MACA,OACA,SACA,OACA,KACA,KACA,QACA,OACA,KACA,OACA,WACA,UACA,OACA,OACA,OACA,UACA,SACA,QACA,SACA,UACA,QACA,OACD,CA0GC,QARe,CACf,OACA,QACA,MACD,CAKC,SAAU,AA1GM,CAChB,KACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,QACA,OACA,OACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,QACA,MACA,OACA,QACA,QACA,KACA,KACA,cACA,aACA,YACA,eACA,WACA,OACA,QACA,cACA,cACA,QACA,WACA,UACA,WACA,UACA,cACA,QACA,aACA,aACA,eACA,oBACA,UACA,WACA,WACA,YACA,eACA,eACA,gBACA,YACA,YACA,aACA,YACA,SACA,UACA,SACA,OACA,UACA,UACA,UACA,WACA,QACA,aACA,WACA,UACA,OACA,WACA,WACA,gBACD,CAgCqB,MAAM,CA/BJ,CACtB,eACA,UACA,eACA,SACA,UACA,UACA,YACA,YACA,UACA,gBACA,gBACA,aACA,gBACA,gBACA,SACA,YACA,WACA,SACA,SACA,SACD,CAWD,EAEM,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EAsBM,EAAsB,CAC1B,UAAW,WACX,MAAO,gBACP,YAAa,CAAA,EACb,IAAK,KACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,OAAQ,CACtC,eAAgB,CAAA,EAChB,SAAU,CACZ,CAAE,GACH,AACH,EACA,MAAO,CACL,KAAM,KACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAxCsB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EACkB,CAChB,UAAW,SACX,MAAO,KACP,IAAK,IACP,EAiCI,EA5BW,CACb,cAAe,SACf,IAAK,IACL,SAAU,EACV,SAAU,CAAE,EAAmB,AACjC,EATqB,CACnB,UAAW,SACX,MAAO,wDACT,EAgCI,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC6JA,EAAO,OAAO,CA3Vd,SAAgB,CAAK,EAwUnB,MAAO,CACL,KAAM,SACN,QAAS,CACP,QACA,KACA,MACD,CACD,iBAAkB,CAAA,EAClB,QAAS,0CACT,SAAU,CACR,SAAU,2BACV,QAjVa,CACf,SACA,SACA,YACA,iBACA,WACA,cACA,QACA,UACA,YACA,WACA,WACA,UACA,iBACA,oBACA,kBACA,iBACA,SACA,qBACA,WACA,qBACA,UACA,aACA,MACA,aACA,YACA,UACA,mBACA,iBACA,SACA,YACA,aACA,UACA,SACA,SACA,WACA,WACA,WACA,MACA,KACA,KACA,MACA,QACA,QACA,QACA,KACA,SACA,KACA,OACA,OACA,WACA,UACA,SACA,QACA,OACA,OACA,MACA,WACA,OACA,SACA,YACA,aACA,WACA,QACA,WACA,QACA,OACA,QACA,YACA,SACA,OACA,aACA,MACA,QACA,MACA,KACA,KACA,QACA,YACA,WACA,KACA,QACA,KACA,WACA,OACA,MACA,QACA,SACA,SACA,OACA,UACA,QACA,SACA,OACA,SACA,SACD,CAkPG,KA9OU,CACZ,OACA,gBACA,OACA,YACA,WACA,UACA,UACA,YACA,iBACA,yBACA,OACA,eACA,mBACA,mBACA,cACA,UACA,aACA,WACA,YACA,gBACA,WACA,eACA,YACA,UACA,aACA,kBACA,eACA,YACA,WACA,cACA,cACA,mBACA,UACA,YACA,sBACA,WACA,cACA,aACA,UACA,YACA,QACA,WACA,YACA,aACA,wBACA,qBACA,UACA,SACA,WACA,UACA,wBACA,mBACA,iBACA,mBACA,kBACA,qBACA,uBACA,qBACD,CAoLG,QAlLa,CACf,KACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,UACA,eACA,uBACA,cACA,cACA,sBACA,WACA,aACA,qBACA,cACA,sBACA,MACD,AA8JC,EACA,SA3Be,CA/EL,CACV,UAAW,WACX,MAAO,aACT,EArDiB,CACf,UAAW,WACX,SAAU,CACR,CACE,MAAO,WACP,IAAK,2IACP,EACA,CACE,MAAO,SACP,IAAK,mEACP,EACA,CACE,MAAO,UACP,IAAK,0EACP,EACA,CACE,MAAO,QACP,IAAK,KACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,QACP,IAAK,KACL,WAAY,CAAA,CACd,EAEA,CAAE,MAAO,62DAA82D,EACv3D,CACE,MAAO,WACP,IAAK,KACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,SACP,IAAK,oEACP,EACA,CACE,MAAO,uCACP,IAAK,KACL,WAAY,CAAA,CACd,EACD,AACH,EAmBe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA9Be,CACb,UAAW,SACX,MAAO,uEACP,UAAW,CACb,EAiCgB,CACd,UAAW,UACX,MAAO,MACP,IAAK,MACL,UAAW,GACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACT,EACD,AACH,EAhBmB,CACjB,UAAW,OACX,MAAO,WACT,EA9Cc,CACZ,UAAW,QACX,MAAO,qDACP,IAAK,GACP,EA4DiB,CACf,cAAe,4DACf,IAAK,KACL,WAAY,CAAA,CACd,EAGe,CACb,MAAO,sCACP,IAAK,iBACL,YAAa,MACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,YAAa,QACf,EACA,OACD,AACH,EAYC,AAkBD,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrOA,EAAO,OAAO,CAtHd,SAAgB,CAAI,EAClB,IAAM,EAAS,CACb,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,gBAAgB,CAAE,CAAE,QAAS,IAAK,GACpD,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GACtD,AACH,EACM,EAAa,EAAK,qBAAqB,CACvC,EAAS,CAAE,SAAU,CACzB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,AAAC,EACI,EAEJ,sfAyBF,MAAO,CACL,KAAM,SACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,OAAO,CACV,OACA,OACA,CAAE,SAAU,CACV,CACE,UAAW,SACX,MAAO,YACT,EACD,AAAC,GAEJ,CACE,UAAW,SACX,MAAO,oBACP,IAAK,QACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CAEE,MAAO,kDAAmD,EAC5D,CACE,UAAW,WACX,cAAe,cACf,IAAK,OACL,WAAY,CAAA,EACZ,QAAS,UACT,SAAU,CACR,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,OACA,EAAK,oBAAoB,CACzB,EACA,EACD,AACH,EACD,AACH,EACA,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,CAAA,EACZ,QAAS,SACT,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EACD,AACH,EACA,CACE,cAAe,YACf,IAAK,IACL,QAAS,OACT,SAAU,CAAE,EAAY,AAC1B,EACA,CACE,cAAe,MACf,IAAK,IACL,SAAU,CAAE,EAAY,AAC1B,EACA,CAAE,MAAO,IACT,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,Y,C,E,CzRlBgB,MAAM,oCACN,MAAA,CAAA,YAAA,OAAA,MAAA,OAAA,aAAA,OAAA,C,EAUL,EAAA,CAAA,MAAM,MAAN,E,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,I,C,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,c,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,uBArCT,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA2DsB,EA3DtB,CACG,MAAO,IACP,UAAW,EAAA,SAAS,GACZ,WAAA,EAAA,IAAI,CAAJ,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,IAAI,CAAJ,CAAA,CAAA,EACT,SAAS,O,E,CAgCQ,OAAM,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACrB,WADe,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAoBM,MApBN,EAAA,CACE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQa,EARb,CACE,QAAA,GACA,YAAA,GACA,KAAK,IACI,WAAA,EAAA,OAAO,CAAP,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,OAAO,CAAP,CAAA,CAAA,EACT,UAAU,OACT,QAAK,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,aAAA,AAAA,EAAA,SAAA,CAAL,EAAkB,OAAA,EAAA,IAAI,EAAtB,EAAA,CAAA,OAAA,EAAA,CAAA,QAAA,CAAA,C,E,K,E,C,a,EAIH,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,CACE,cAAY,mBACZ,UAAA,GACA,MAAA,GACA,MAAM,OACL,QAAK,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAL,EAAO,OAAA,EAAA,IAAI,EAAX,CAAA,C,E,CACF,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,U,A,C,G,E,C,G,E,A,GAhDL,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA6Bc,EA7Bd,KAAA,CACE,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA2BQ,EA3BR,CAAO,MAAM,SAAS,QAAQ,Q,E,CAC5B,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAGa,EAAA,eAAe,CAH5B,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMQ,EANR,C,I,EACE,KAAK,KACL,MAAA,CAAA,QAAA,yBAAA,C,E,CAGA,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAAkD,MAAA,KAA7C,0CAAL,I,A,C,G,E,C,E,E,A,C,E,E,kB,A,E,G,C,GAEF,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,EAAA,CAAA,GAAA,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAkBQ,EAAA,QAAA,CAAA,KAAA,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAjBQ,EAAA,OAAO,CAAA,SAAd,CADT,EAAA,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAkBQ,EAlBR,CAEG,IAAK,EAAI,SAAS,CACnB,KAAK,KACL,MAAA,CAAA,QAAA,uBAAA,C,E,CAEA,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAWS,EAXT,CAAQ,QAAQ,WAAW,MAAM,S,E,CAC/B,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EASc,EAAA,CATD,MAAA,CAAA,iBAAA,KAAA,CAAb,EAAA,CACE,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAA6D,MAA7D,CAAK,MAAM,WAAW,UAAQ,EAAA,MAAM,CAAC,EAAI,EAAE,CAAE,EAAI,GAAG,C,E,K,E,GAEpD,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAKI,IALJ,EAKI,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EADC,EAAA,MAAM,CAAC,EAAI,SAAS,GAAI,MAAG,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAG,EAAI,IAAI,EAJ3C,G,A,G,E,C,E,M,A,G,E,C,E,M,A,G,E,C,E,K,G,I,E,A,G,E,C,G,A,G,E,C,G,A,G,E,C,E,E,C,Y,a,C,C,E,C,I,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAxGC,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I0RJI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAyB,MAAM,CAEvD,EAAQ,oBAAuB,OAAO,CAAC,GACvC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,aAIH,EAAA,OAAA,CAAA,C,E,C,iB,Q,iB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAZA,EAAA,OAAA,CAAA,CACb,KAAM,SAEN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,SAAU,CAAA,CACZ,CACF,EAEA,KAAA,WACE,MAAO,CAAE,MAAO,IAAI,CAAC,KAAK,EAAG,CAC/B,EAEA,QAAS,CACP,MAAA,WACE,MAAO,CACL,CAAA,IAAI,CAAC,MAAM,CAAC,kBAAiB,EAC7B,IAAI,CAAC,MAAM,CAAC,aAAY,EACxB,IAAI,CAAC,MAAM,CAAC,qBAAZ,AAAY,CAEhB,CACF,EAEA,MAAO,CACL,OAAQ,CACN,QAAA,WACE,IAAI,CAAC,KAAI,CAAI,IAAI,CAAC,KAAK,EACzB,EACA,KAAM,CAAA,CACR,CACF,CACF,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,uB,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,aAIE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA8EY,EA9EZ,CAAoB,WAAA,EAAA,KAAK,CAAL,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,KAAK,CAAL,CAAA,CAAA,EAAO,MAAA,CAAA,mBAAA,qBAAA,UAAA,MAAA,C,E,CACzB,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA4Ec,EA5Ed,KAAA,CACE,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA0EQ,EA1ER,CACE,QAAQ,SACR,MAAM,SACN,MAAA,CAAA,MAAA,QAAA,MAAA,QAAA,OAAA,MAAA,C,E,CAEA,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAoEQ,EApER,CAAO,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,QAAQ,SAAS,MAAM,Q,E,CACrD,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMuB,EANvB,CACE,cAAA,GACC,KAAM,GACN,MAAO,EACR,QAAQ,SACR,MAAM,Q,GAGR,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAkBM,MAlBN,KAAA,CAAK,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,mBAAA,EAQK,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,aAAa,CAL5B,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,UACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,GASC,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,aAAa,CAL5B,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,QACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,G,EAKT,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAkBM,MAlBN,KAAA,CAAK,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,yBAAA,EAQK,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,qBAAqB,CALpC,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,UACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,GASC,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,qBAAqB,CALpC,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,QACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,G,EAKT,AAAA,CAAA,EAAA,EAAA,kBAAA,AAAA,EAkBM,MAlBN,KAAA,CAAK,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,qCAAA,EAQK,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,kBAAkB,CALjC,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,UACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,GASC,AAAA,CAAA,IAAA,EAAA,MAAM,CAAC,kBAAkB,CALjC,CAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMS,EANT,C,I,EACE,MAAM,OACN,KAAK,UACL,MAAM,QACN,KAAK,W,E,E,A,C,E,E,kB,A,E,G,C,G,E,A,G,E,C,G,A,G,E,C,G,A,G,E,C,G,A,G,E,C,E,E,C,a,C,C,E,C,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAzGJ,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,ICJI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAA0B,MAAM,CACxD,EAAO,YAAY,CAAG,EAAQ,oBAAuB,OAAO,CAC5D,EAAQ,oBAAwB,OAAO,CAAC,GACxC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,cAIH,EAAA,OAAA,CAAA,C,E,C,iB,Q,mB,Q,mB,Q,iB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,I,E,E,sC,E,E,iC,E,E,gCAZf,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,S,E,E,c,C,EAEe,CAAA,EAAA,OAAA,CAAA,CACb,WAAY,CAAE,OAAA,EAAA,OAAK,AAAE,EACrB,KAAM,UACN,MAAO,CACL,OACA,YACA,iBACA,kBACA,gBACA,WACD,CACD,KAAA,WACE,MAAO,CACL,SAAU,IAAI,CAAC,SAAS,CACxB,KAAM,KAEN,MAAO,CACT,CACF,EACA,SAAU,CACR,SAAA,WACS,IAAA,EAAP,MAAO,AAAA,CAAA,AAAwC,OAAxC,CAAA,EAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,AAAD,GAAvC,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,EAA0C,IAAG,AAAH,GAAQ,WAAa,IAAI,CAAC,QAAQ,AACrF,EACA,YAAA,WACE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAc,UAAY,MAC5D,EACA,qBAAA,W,I,E,I,CAKE,OAJA,WAAW,WACT,EAAK,UAAU,EACjB,EAAG,KAEI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAC,CAApC,EACE,IAAM,EAAS,EAAE,YAAjB,CACI,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,SAAC,CADnC,EACyC,OAAA,EAAE,IAAI,EAC3C,GAAA,EAAE,OAAO,CAEb,MACE,AAAC,CAAA,EAAO,QAAQ,CAAC,EAAK,WAAW,GAC/B,EACG,GAAG,CAAC,SAAC,CAHZ,EAGkB,OAAA,EAAE,WAAW,GAAG,OAAO,CAAC,MAAO,KAC1C,GAAA,GAAG,CAAC,SAAC,CAAL,EAAW,OAAA,IAAI,OAAO,EACtB,GAAA,GAAG,CAAC,SAAC,CAAL,EAAW,OAAA,AAAyC,OAAzC,EAAK,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,EAC7C,GAAA,QAAQ,CAAC,CAAA,IACZ,AAAU,KAAV,CAAU,GACZ,CAAC,EAAO,QAAQ,CAAC,eAErB,EACF,CACF,EACA,QAAA,WACE,OAAO,gBAAgB,CAAC,UAAW,IAAI,CAAC,cAAc,EACtD,IAAM,EAAU,SAAS,oBAAoB,CAAC,UAC9C,IAAI,CAAC,aAAa,CAAC,EAAE,CACnB,UACA,SAAC,CAFH,EAGI,IAAK,IACH,EADO,EAAI,EAAG,EAAI,EAAQ,MAAM,CAAE,IAAA,AACV,OAAxB,CAAA,EAAA,CAAO,CAAC,EAAE,CAAC,aAAa,AAAb,GAAX,AAAA,KAAA,IAAA,GAAA,EAA0B,WAAW,CACnC,AAFJ,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAGM,MAAO,SACJ,EAAA,GAEL,IAGN,EAGJ,EACA,cAAA,WACE,OAAO,mBAAmB,CAAC,UAAW,IAAI,CAAC,cAAc,EACzD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAW,KAAA,EACnC,EAEM,QAAN,WAAgB,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,W,M,A,C,E,E,C,A,E,I,C,S,C,E,OACd,IAAI,CAAC,UAAU,G,C,E,A,EACjB,GAAA,KAAA,CAAA,IAAA,C,EAEA,QAAS,CACP,WAAA,WACoB,OAAd,IAAI,CAAC,IAAG,EAAY,IAAI,CAAC,IAAI,CAAC,OAAO,GAEzC,IAAI,CAAC,IAAG,CAAI,IAAI,EAAA,OAAI,CAAE,QAAS,CAC7B,YAAa,CAAA,EACb,aAAc,CAAA,EACd,eAAgB,IAChB,aAAc,OACd,OAAQ,CACN,SAAU,CAAA,EACV,WAAY,CAAA,EACZ,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,SAAU,CAAA,CACZ,CACF,EACF,EAEA,KAAA,SAAK,CAAc,CAAE,CAAa,EAChC,IAAI,EAAS,CAAC,OAAO,CAErB,OAAQ,GACN,IAAK,OACH,EAAO,IAAI,CAAC,YACZ,KACF,KAAK,OACH,EAAO,IAAI,CAAC,YACZ,KACF,KAAK,SACH,EAAO,IAAI,CAAC,WAEhB,CAEA,OAAQ,GACN,IAAK,OACH,EAAO,IAAI,CAAC,YACZ,KACF,KAAK,OACH,EAAO,IAAI,CAAC,WAEhB,CAEA,OAAO,EAAO,IAAI,CAAC,IACrB,EAEA,eAAA,SAAe,CAAC,EACd,OAAQ,EAAE,IAAI,CAAC,KAAK,EAClB,IAAK,UACH,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAE,EAAE,IAAI,CAAC,IAAI,CAAE,EAAE,IAAI,CAAC,MAAM,EAC3D,KACF,KAAK,SACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAE,EAAE,IAAI,CAAC,IAAI,CAAE,EAAE,IAAI,CAAC,KAAK,EAC9D,KACF,KAAK,QACH,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,EAC1C,KACF,KAAK,OACH,QAAQ,GAAG,CAAC,QAAS,EAAE,IAAI,EAC3B,KACF,SACE,QAAQ,IAAI,CAAC,gBAAiB,EAAE,IAAI,CAExC,CACF,EAEM,YAAN,SAAkB,CAAO,CAAE,CAAI,CAAE,CAAU,EAAE,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,W,M,A,C,E,E,C,A,E,I,C,S,C,E,OAC9B,KAAA,IAAT,GACF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAE,CAC1C,KAAM,IAAI,CAAC,QAAO,CAClB,QAAS,EACT,KAAM,EACN,OAAQ,CACV,G,C,E,A,EAEJ,GAAA,KAAA,CAAA,IAAA,C,CACF,CACF,C,E,C,qC,Q,gC,Q,+B,Q,e,Q,M,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,IC7JI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAyB,MAAM,CAEvD,EAAQ,oBAAuB,OAAO,CAAC,GACvC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,aAIH,EAAA,OAAA,CAAA,C,E,C,iB,Q,iB,Q,mB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,G,I,E,E,uCAef,EAAA,EAAA,MAEe,CAAA,EAAA,OAAA,CAAA,CACb,KAAM,SACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,SAAU,CACR,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,eAAgB,CACd,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,cAAe,CACb,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,SAAU,CACR,KAAM,OACN,SAAU,CAAA,CACZ,CACF,EACA,KAAA,WACE,MAAO,CAAC,CACV,EACA,SAAU,CACR,aAAA,WACE,OAAO,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,AAC/C,CACF,EACA,MAAO,CACL,eAAA,WACE,IAAI,CAAC,YAAY,EACnB,CACF,EAEA,QAAS,CACP,aAAA,WAGE,IACoB,EADd,EAAmB,AAAA,CAAA,EAAA,EAAA,mBAAkB,AAAlB,EAAoB,IAAI,CAAC,cAAc,CAAC,GAAG,EAC9D,EAAS,KAAK,AAAA,CAAA,EAAA,MAAA,EAAO,YAAY,CAAnB,KAAA,CAAA,EAAoB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAI,WAAW,MAE1D,GAAI,CACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CACzC,CACE,MAAO,SACP,OAAQ,OAAO,MAAM,CACrB,KAAM,IAAI,CAAC,IAAI,CACf,SAAU,IAAI,CAAC,QAAQ,CACvB,UAAW,EACX,OAAQ,KAAK,KAAK,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,GACpD,SAAU,IAAI,CAAC,QAAQ,AACzB,EACA,IAAI,CAAC,aAAa,CAAC,MAAK,EAAK,IAAI,CAAC,YAAlC,CAEJ,CAAE,MAAO,EAAG,CACV,QAAQ,IAAI,CAAC,EACf,CACF,CACF,CACF,C,E,C,sC,Q,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,oB,W,O,C,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,Q,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,M,W,O,E,G,E,M,C,E,K,W,O,E,G,E,M,C,E,K,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,M,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,S,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,2B,W,O,E,G,E,M,C,E,4B,W,O,E,G,E,M,C,E,4B,W,O,E,G,E,M,C,E,6C,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,iC,W,O,C,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,iC,W,O,E,G,E,M,C,E,sC,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,sB,W,O,E,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,8B,W,O,E,G,E,M,C,E,gC,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,Y,W,O,C,G,E,M,C,E,a,W,O,E,G,E,M,C,E,wB,W,O,C,G,E,M,C,E,U,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,e,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,Q,W,O,E,G,E,M,C,E,0B,W,O,E,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,qB,W,O,E,G,I,E,E,2C,E,E,oC,E,E,gC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iB,C,G,E,M,C,E,Q,WAEY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,O,WAEA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,GAnDN,IAAM,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAChB,EAAQ,KAAK,KAAK,CAClB,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAQhB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,C,EAQpB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAQ5B,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAE5B,EAAQ,OAAO,KAAK,CAEpB,EAAM,KAAK,GAAG,CAOd,EAAQ,SAAA,CAAd,EAAqB,OAAA,KAAK,GAAG,CAAC,GAAI,E,EAE5B,EAAO,KAAK,IAAI,CAMhB,EAAiB,SAAA,CAAvB,EAA4B,OAAA,AAAM,IAAN,EAAU,EAAI,EAAI,EAAI,EAAI,C,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,EC/B5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,gB,WAeA,OAAA,C,G,E,M,C,E,S,WAKA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,Y,WAmBA,OAAA,C,G,E,M,C,E,Q,WAgBA,OAAA,C,G,E,M,C,E,M,WAmBA,OAAA,C,G,E,M,C,E,a,WAyBA,OAAA,C,G,E,M,C,E,W,WAUA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,Y,WAYA,OAAA,C,G,E,M,C,E,c,WAYA,OAAA,C,G,E,M,C,E,uB,WAeA,OAAA,C,G,E,M,C,E,Y,WAcA,OAAA,C,G,E,M,C,E,e,WAcA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,wB,WA6BA,OAAA,C,G,E,M,C,E,0B,WAqBA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,wB,WAaA,OAAA,C,G,E,M,C,E,4B,WAoBA,OAAA,C,G,E,M,C,E,qB,WAsBA,OAAA,C,G,E,M,C,E,kB,WASA,OAAA,C,G,E,M,C,E,qB,WA0BA,OAAA,C,G,E,M,C,E,kB,WAsBA,OAAA,C,G,E,M,C,E,e,WAWA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,W,WAmDA,OAAA,C,G,E,M,C,E,a,WA+EA,OAAA,C,G,E,M,C,E,iB,WA0CA,OAAA,C,G,E,M,C,E,oB,WA6BA,OAAA,C,G,E,M,C,E,oB,WAwDA,OAAA,E,G,E,M,C,E,uB,WA0CA,OAAA,E,G,E,M,C,E,uB,WAqEA,OAAA,E,G,E,M,C,E,gB,WA+CA,OAAA,E,G,I,E,E,oC,E,E,gC,E,E,4B,E,E,2B,E,E,gCAv2Bb,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,cAKa,EAAN,SAAM,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAET,IAAI,CAAC,IAAI,CAAG,EACZ,IAAI,CAAC,IAAI,CAAG,IAAI,WAAW,KAI3B,IAAI,CAAC,IAAI,CAAG,EAAE,A,EAQL,EAAgB,WAAM,OAAA,IAAI,C,EAK1B,EAAS,SAAC,CAAhB,EACL,IAAM,EAAU,IAEhB,OADA,EAAE,GACK,EAAa,EACtB,EASa,EAAS,SAAA,CAAf,EAEL,IAAK,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,S,C,C,C,C,C,EC/3BZ,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,mB,WAKY,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,e,WAEA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,Y,WAGA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,Y,WASA,OAAA,C,GAtBb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,eAEa,EAAmB,OAAO,gBAAgB,CAC1C,EAAmB,OAAO,gBAAgB,CAE1C,EAAe,YACf,EAAgB,EAAO,MAAM,CAC7B,EAAiB,EAAO,MAAM,CAG9B,EAAY,OAAO,SAAS,EAAK,SAAA,CAAvC,EAA8C,MAAA,AAAe,UAAf,OAAO,GAAoB,SAAS,IAAQ,EAAK,KAAK,CAAC,KAAS,C,EACxG,EAAQ,OAAO,KAAK,CACpB,EAAW,OAAO,QAAQ,CAS1B,EAAY,SAAA,CAAlB,EACL,GAAK,EAAO,MAAM,CAElB,IADA,IAAI,EAAQ,EACL,GACL,GAAM,EAAI,EACV,IAEF,OAAO,CACT,C,E,C,Y,Q,c,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECxBC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,GA5EN,IAAM,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GACP,EAAO,GACP,EAAO,GACP,EAAO,IACP,EAAO,IACP,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,WACR,EAAQ,WACR,EAAQ,WACR,EAAQ,YAOR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,GACR,EAAQ,GACR,EAAQ,GACR,EAAQ,IACR,EAAQ,IACR,EAAQ,IACR,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,MACT,EAAS,MACT,EAAS,MACT,GAAS,OACT,GAAS,OACT,GAAS,OACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,SACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,WACT,GAAS,WAIT,GAAS,WAIT,GAAS,U,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WCjFT,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,W,WAcA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,iB,WAOA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,kB,WAWA,OAAA,C,G,E,M,C,E,oB,WAMA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,kB,WAgBF,OAAA,C,G,E,M,C,E,oB,WAkBE,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,G,E,M,C,E,S,WAMA,OAAA,C,GAxIb,IAAA,EAAA,EAAA,cAQa,EAAe,OAAO,YAAY,CAClC,EAAgB,OAAO,aAAa,CAMpC,EAAsB,EAAa,OAQ1C,EAAgB,QAMT,EAAW,SAAA,CAAjB,EAAsB,OAAA,EAAE,OAAO,CAAC,EAAe,G,EAEhD,EAAqB,WAOd,EAAgB,SAAC,CAAA,CAAG,CAA1B,EAAwC,OAAA,EAAS,EAAE,OAAO,CAAC,EAAoB,SAAA,CAAvC,EAAgD,MAAC,GAAc,MAAA,CAAZ,GAA+B,MAAA,CAjBxG,AAiBiG,EAjB/F,WAAW,G,G,EAwBzB,EAAiB,SAAA,CAAvB,EAA8B,OAAA,SAAS,mBAAmB,IAAM,MAAM,A,EAMhE,EAAsB,SAAA,CAA5B,EAIL,IAAK,IAHC,EAAgB,SAAS,mBAAmB,IAC5C,EAAM,EAAc,MAAM,CAC1B,EAAM,IAAI,WAAW,GAClB,EAAI,EAAG,EAAI,EAAK,IACvB,CAAG,CAAC,EAAE,CAA0B,EAAc,WAAW,CAAC,GAE5D,OAAO,CACT,EAGa,EAA8C,AAAuB,aAAvB,OAAO,YAA8B,IAAI,YAAgB,KAMvG,EAAoB,SAAA,CAA1B,EAAiC,OAAA,EAAgB,MAAM,CAAC,E,EAOlD,EAAa,EAAkB,EAAoB,EAMnD,EAAsB,SAAA,CAA5B,EAIL,IAHA,IAAI,EAAe,EAAI,MAAM,CACzB,EAAgB,GAChB,EAAS,EACN,EAAe,GAAG,CACvB,IAAM,EAAU,EAAe,IAAQ,EAAe,IAChD,EAAQ,EAAI,QAAQ,CAAC,EAAQ,EAAS,GAC5C,GAAU,EAEV,GAAiB,OAAO,aAAa,CAAC,KAAK,CAAC,KAA0B,GACtE,GAAgB,CAClB,CACA,OAAO,mBAAmB,OAAO,GACnC,EAGW,EAAkB,AAAuB,aAAvB,OAAO,YAA8B,KAAO,IAAI,YAAY,QAAS,CAAE,MAAO,CAAA,EAAM,UAAW,CAAA,CAAK,GAG7H,GAAmB,AAAoD,IAApD,EAAgB,MAAM,CAAC,IAAI,YAAc,MAAM,EAOpE,CAAA,EAAkB,IADlB,EASK,IAAM,EAAoB,SAAA,CAA1B,EAA4D,OAAC,EAAiB,MAAM,CAAC,E,EAO/E,EAAa,EAAkB,EAAoB,EAQnD,EAAS,SAAC,CAAA,CAAK,CAAA,CAAO,CAA5B,EAAoC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,GAAO,OAAA,EAAI,KAAK,CAAC,EAAG,GAAS,EAAS,EAAI,KAAK,CAAC,EAAQ,E,EAM/F,EAAS,SAAC,CAAA,CAAQ,CAAxB,EAA8B,OAAA,EAAM,MAAM,CAAC,EAAG,WAAM,OAAA,CAAQ,GAAA,IAAI,CAAC,G,C,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC9GvE,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAeY,OAAA,C,G,E,M,C,E,gB,WAyBA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,Q,WAWA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,oB,WAgBA,OAAA,C,G,E,M,C,E,uB,WAQA,OAAA,C,G,E,M,C,E,Q,WAQA,OAAA,C,G,E,M,C,E,Y,WAQA,OAAA,C,G,E,M,C,E,a,WASA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,sB,WAkBA,OAAA,C,G,E,M,C,E,Y,WAkBA,OAAA,C,G,E,M,C,E,a,WAUA,OAAA,C,G,E,M,C,E,a,WAYA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,a,WAgCA,OAAA,C,G,E,M,C,E,c,WAkCA,OAAA,C,G,E,M,C,E,a,WAcA,OAAA,C,G,E,M,C,E,yB,WAqBA,OAAA,C,G,E,M,C,E,uB,WA+BA,OAAA,C,G,E,M,C,E,gB,WAaA,OAAA,C,G,E,M,C,E,2B,WAMA,OAAA,C,G,E,M,C,E,uB,WAmBA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,mB,WAYA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,c,WAKA,OAAA,C,G,E,M,C,E,e,WAKA,OAAA,C,G,E,M,C,E,gB,WAKA,OAAA,C,G,E,M,C,E,U,WAyCA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,iB,WAiCA,OAAA,C,G,E,M,C,E,oB,WAuBA,OAAA,C,G,E,M,C,E,oB,WAgCA,OAAA,C,G,E,M,C,E,uB,WA6BA,OAAA,C,G,E,M,C,E,uB,WA6BA,OAAA,E,G,E,M,C,E,gB,WAkCA,OAAA,E,G,I,E,E,oC,E,E,gC,E,E,4B,E,E,gCA/oBb,EAAA,EAAA,eACA,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,cACA,EAAA,EAAA,iBAEM,EAA4B,EAAM,MAAM,CAAC,2BACzC,EAAyB,EAAM,MAAM,CAAC,wBAKrC,EAAA,SAAM,EAIE,CAAU,EAJZ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAUT,IAAI,CAAC,GAAG,CAAG,EAMX,IAAI,CAAC,GAAG,CAAG,C,EASF,EAAgB,SAAA,CAAtB,EAAoC,OAAA,IAAI,EAAQ,E,EAO1C,EAAa,SAAA,CAAnB,EAA8B,OAAA,EAAQ,GAAG,GAAK,EAAQ,GAAG,CAAC,MAAM,A,EAW1D,EAAQ,SAAC,CAAf,EAAwB,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,EAAQ,GAAG,CAC3C,EAAW,EAAc,EAAQ,GAAG,EAE1C,OADA,EAAS,GAAG,CAAG,EACR,CACT,EAaa,EAAiB,SAAC,CAAA,CAAS,CAAjC,EACL,IAAM,EAAO,IAAI,WAAW,EAAQ,GAAG,CAAC,MAAM,CAAE,EAAQ,GAAG,CAAG,EAAQ,GAAG,CAAC,UAAU,CAAE,GAEtF,OADA,EAAQ,GAAG,EAAI,EACR,CACT,EAYa,EAAoB,SAAA,CAA1B,EAAqC,OAAA,EAAe,EAAS,EAAY,G,EAQnE,EAAuB,SAAA,CAA7B,EAAwC,OAAA,EAAe,EAAS,EAAQ,GAAG,CAAC,MAAM,CAAG,EAAQ,GAAG,C,EAQ1F,EAAQ,SAAA,CAAd,EAAyB,OAAA,EAAQ,GAAG,E,EAQ9B,EAAY,SAAA,CAAlB,EAA6B,OAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,GAAG,A,EASjD,EAAa,SAAA,CAAnB,EACL,IAAM,EACJ,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAC,CACvB,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,CAAA,EAEnC,OADA,EAAQ,GAAG,EAAI,EACR,CACT,EASa,EAAa,SAAA,CAAnB,EACL,IAAM,EACJ,EAAS,GAAG,CAAC,EAAQ,GAAG,CAAC,CACxB,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,CAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,EAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,EAAA,IAAS,EAE5C,OADA,EAAQ,GAAG,EAAI,EACR,CACT,EAUa,EAAsB,SAAA,CAA5B,EACL,IAAM,EACJ,EAAS,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,CAC5B,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,CAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,EAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAC,EAAI,EAAA,IAAS,EAExC,OADA,EAAQ,GAAG,EAAI,EACR,CACT,EAUa,EAAY,SAAA,CAAlB,EAA6B,OAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAC,A,EAU/C,EAAa,SAAA,CAAnB,EACL,OAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAC,CACvB,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,CAAA,C,EAUtB,EAAa,SAAA,CAAnB,EAA8B,OACnC,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAC,CACvB,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,CAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,EAAA,EAChC,CAAA,EAAQ,GAAG,CAAC,EAAQ,GAAG,CAAG,EAAE,EAAI,EAAA,IAC7B,C,EAYO,EAAc,SAAA,CAApB,EAIL,IAHA,IAAI,EAAM,EACN,EAAO,EACL,EAAM,EAAQ,GAAG,CAAC,MAAM,CACvB,EAAQ,GAAG,CAAG,GAAK,CACxB,IAAM,EAAI,EAAQ,GAAG,CAAC,EAAQ,GAAG,GAAG,CAIpC,GAFA,GAAa,AAAA,CAAA,EAAI,EAAO,KAAI,AAAJ,EAAS,EACjC,GAAQ,IACJ,EAAI,EAAO,IAAI,CACjB,OAAO,EAGT,GAAI,EAAM,EAAO,gBAAgB,CAC/B,MAAM,CAGV,CACA,MAAM,CACR,EAaa,EAAa,SAAA,CAAnB,EACL,IAAI,EAAI,EAAQ,GAAG,CAAC,EAAQ,GAAG,GAAG,CAC9B,EAAM,EAAI,EAAO,KAAK,CACtB,EAAO,GACL,EAAQ,AAAA,CAAA,EAAI,EAAO,IAAG,AAAH,EAAQ,EAAI,GAAK,EAC1C,GAAK,AAAA,CAAA,EAAI,EAAO,IAAG,AAAH,GAAU,EAExB,OAAO,EAAO,EAGhB,IADA,IAAM,EAAM,EAAQ,GAAG,CAAC,MAAM,CACvB,EAAQ,GAAG,CAAG,GAAK,CAKxB,GAFA,GAAY,AAAC,CAAA,AAFb,CAAA,EAAI,EAAQ,GAAG,CAAC,EAAQ,GAAG,GAAG,AAAH,EAEV,EAAO,KAAI,AAAJ,EAAS,EACjC,GAAQ,IACJ,EAAI,EAAO,IAAI,CACjB,OAAO,EAAO,EAGhB,GAAI,EAAM,EAAO,gBAAgB,CAC/B,MAAM,CAGV,CACA,MAAM,CACR,EASa,EAAc,SAAA,CAApB,EACL,IAAM,EAAM,EAAQ,GAAG,CACjB,EAAI,EAAY,GAEtB,OADA,EAAQ,GAAG,CAAG,EACP,CACT,EASa,EAAa,SAAA,CAAnB,EACL,IAAM,EAAM,EAAQ,GAAG,CACjB,EAAI,EAAW,GAErB,OADA,EAAQ,GAAG,CAAG,EACP,CACT,EAgBa,EAAyB,SAAA,CAA/B,EACL,IAAI,EAAe,EAAY,GAC/B,GAAI,AAAiB,IAAjB,EACF,MAAO,GAEP,IAAI,EAAgB,OAAO,aAAa,CAAC,EAAU,IACnD,GAAI,EAAE,EAAe,IACnB,KAAO,KACL,GAAiB,OAAO,aAAa,CAAC,EAAU,SAGlD,KAAO,EAAe,GAAG,CACvB,IAAM,EAAU,EAAe,IAAQ,EAAe,IAEhD,EAAQ,EAAQ,GAAG,CAAC,QAAQ,CAAC,EAAQ,GAAG,CAAE,EAAQ,GAAG,CAAG,EAC9D,CAAA,EAAQ,GAAG,EAAI,EAEf,GAAiB,OAAO,aAAa,CAAC,KAAK,CAAC,KAA0B,GACtE,GAAgB,CAClB,CAEF,OAAO,mBAAmB,OAAO,GAErC,EAQa,EAAuB,SAAA,CAA7B,EACY,OAAC,EAAO,eAAe,CAAE,MAAM,CAAC,EAAkB,G,EAYxD,EAAgB,EAAO,eAAe,CAAG,EAAuB,EAMhE,EAA2B,SAAA,CAAjC,EAGL,IAFA,IACI,EADE,EAAU,EAAS,aAAa,KAEzB,CAEX,GAAI,AAAM,IADV,CAAA,EAAI,EAAU,EAAd,EAEE,OAAO,EAAS,YAAY,CAAC,EAErB,CAAA,IAAN,GACF,CAAA,EAAI,EAAU,EADhB,EAGA,EAAS,KAAK,CAAC,EAAS,EAC1B,CACF,EAMa,EAAuB,SAAA,CAA7B,EAAwC,OAAA,EAAO,UAAU,CAAC,EAAyB,G,EAS7E,EAAgB,SAAA,CAAtB,EACL,IAAM,EAAM,EAAQ,GAAG,CACjB,EAAI,EAAc,GAExB,OADA,EAAQ,GAAG,CAAG,EACP,CACT,EAOa,EAAmB,SAAC,CAAA,CAAS,CAAnC,EACL,IAAM,EAAK,IAAI,SAAS,EAAQ,GAAG,CAAC,MAAM,CAAE,EAAQ,GAAG,CAAC,UAAU,CAAG,EAAQ,GAAG,CAAE,GAElF,OADA,EAAQ,GAAG,EAAI,EACR,CACT,EAKa,EAAc,SAAA,CAApB,EAA+B,OAAA,EAAiB,EAAS,GAAG,UAAU,CAAC,EAAG,CAAA,E,EAKpE,EAAc,SAAA,CAApB,EAA+B,OAAA,EAAiB,EAAS,GAAG,UAAU,CAAC,EAAG,CAAA,E,EAKpE,EAAe,SAAA,CAArB,EAAmD,OAAC,EAAiB,EAAS,GAAI,WAAW,CAAC,EAAG,CAAA,E,EAK3F,EAAgB,SAAA,CAAtB,EAAoD,OAAC,EAAiB,EAAS,GAAI,YAAY,CAAC,EAAG,CAAA,E,EAKpG,EAAqB,CACzB,SAAA,CAAA,E,EACA,SAAA,CAAA,EAAW,OAAA,I,EACX,EACA,EACA,EACA,EACA,SAAA,CAAA,EAAW,MAAA,CAAA,C,EACX,SAAA,CAAA,EAAW,MAAA,CAAA,C,EACX,EACA,SAAA,CAAA,EAME,IAAK,IALC,EAAM,EAAY,GAIlB,EAAM,CAAC,EACJ,EAAI,EAAG,EAAI,EAAK,IAEvB,CAAG,CADS,EAAc,GAClB,CAAG,EAAQ,GAErB,OAAO,CACT,EACA,SAAA,CAAA,EAGE,IAAK,IAFC,EAAM,EAAY,GAClB,EAAM,EAAE,CACL,EAAI,EAAG,EAAI,EAAK,IACvB,EAAI,IAAI,CAAC,EAAQ,IAEnB,OAAO,CACT,EACA,EACD,CAKY,EAAU,SAAA,CAAhB,EAA2B,OAAA,CAAkB,CAAC,IAAM,EAAU,GAAS,CAAC,E,EAOlE,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAKE,CAAU,CAAE,CAAM,M,E,MALpB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAUT,AAJM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAID,MAAM,CAAG,EAKd,EAAK,CAAC,CAAG,KACT,EAAK,KAAK,CAAG,E,C,CAhBJ,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAmBX,IAAA,OAAA,MAAA,WAUE,OATmB,IAAf,IAAI,CAAC,KAAK,GACZ,IAAI,CAAC,CAAC,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EACrB,EAAW,IAAI,EACjB,IAAI,CAAC,KAAK,CAAG,EAAY,IAAI,EAAI,EAEjC,IAAI,CAAC,KAAK,CAAG,IAGjB,IAAI,CAAC,KAAK,GACe,IAAI,CAAC,CAAC,AACjC,C,E,EA9BW,CAAmB,EAAA,GAiCnB,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAKE,CAAU,CAAE,CAAK,M,E,MALnB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAWT,AALM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAKD,CAAC,CAAG,E,C,CAXA,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAiBX,IAAA,OAAA,MAAA,WAEE,OADA,IAAI,CAAC,CAAC,EAAI,EAAW,IAAI,EAClB,IAAI,CAAC,CAAC,AACf,C,E,EApBW,CAAuB,EAAA,GAuBvB,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAKE,CAAU,CAAE,CAAK,M,E,MALnB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAWT,AALM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAKD,CAAC,CAAG,EACT,EAAK,KAAK,CAAG,E,C,CAZJ,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAkBX,IAAA,OAAA,MAAA,WAUE,OATmB,IAAf,IAAI,CAAC,KAAK,GACZ,IAAI,CAAC,CAAC,EAAI,EAAW,IAAI,EACrB,EAAW,IAAI,EACjB,IAAI,CAAC,KAAK,CAAG,EAAY,IAAI,EAAI,EAEjC,IAAI,CAAC,KAAK,CAAG,IAGjB,IAAI,CAAC,KAAK,GACoB,IAAI,CAAC,CAAC,AACtC,C,E,EA7BW,CAA0B,EAAA,GAgC1B,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAIE,CAAU,M,E,MAJZ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAST,AAJM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAID,CAAC,CAAG,EACT,EAAK,KAAK,CAAG,E,C,CAVJ,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAaX,IAAA,OAAA,MAAA,WACE,GAAI,AAAe,IAAf,IAAI,CAAC,KAAK,CAAQ,CACpB,IAAI,CAAC,CAAC,CAAG,EAAW,IAAI,EAExB,IAAM,EAAa,EAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAA,IAAI,CAAC,KAAK,CAAG,EACT,IACF,IAAI,CAAC,CAAC,CAAG,CAAC,IAAI,CAAC,CAAC,CAChB,IAAI,CAAC,KAAK,CAAG,EAAY,IAAI,EAAI,EAErC,CAEA,OADA,IAAI,CAAC,KAAK,GACoB,IAAI,CAAC,CAAC,AACtC,C,E,EA1BW,CAA0B,EAAA,GA6B1B,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAIE,CAAU,M,E,MAJZ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAST,AAJM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAID,CAAC,CAAG,EACT,EAAK,KAAK,CAAG,E,C,CAVJ,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAaX,IAAA,OAAA,MAAA,WACE,GAAI,AAAe,IAAf,IAAI,CAAC,KAAK,CAAQ,CACpB,IAAI,CAAC,CAAC,CAAG,EAAW,IAAI,EAExB,IAAM,EAAa,EAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAA,IAAI,CAAC,KAAK,CAAG,EACT,IACF,IAAI,CAAC,CAAC,CAAG,CAAC,IAAI,CAAC,CAAC,CAChB,IAAI,CAAC,KAAK,CAAG,EAAY,IAAI,EAAI,EAErC,CAEA,OADA,IAAI,CAAC,KAAK,GACoB,IAAI,CAAC,CAAC,EACtC,C,E,EA1BW,CAA6B,EAAA,GA6B7B,GAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAIE,CAAU,M,E,MAJZ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAST,AAJM,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EAID,CAAC,CAAG,EACT,EAAK,KAAK,CAAG,EACb,EAAK,IAAI,CAAG,E,C,CAXH,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAiBX,IAAA,OAAA,MAAA,WACE,GAAI,AAAe,IAAf,IAAI,CAAC,KAAK,CAAQ,CACpB,IAAM,EAAO,EAAW,IAAI,CAG5B,CAAA,IAAI,CAAC,IAAI,CAAG,EAAK,KAAK,CAAC,EAAO,GAC9B,IAAI,CAAC,KAAK,CAAG,EAFW,EAAP,GAIf,CAAA,IAAI,CAAC,KAAK,CAAG,EAAY,IAAI,EAAI,CAAA,CAErC,CAGA,OAFA,IAAI,CAAC,CAAC,EAAI,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,KAAK,GACH,IAAI,CAAC,CAAC,AACf,C,E,EA/BW,CAA6B,EAAA,GAkC7B,GAAA,WAAA,EAAN,WAAM,SAAA,EAIE,CAAU,EAJZ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAKT,IAAI,CAAC,OAAO,CAAG,IAAI,EAAkB,GACrC,IAAI,CAAC,GAAG,CAAG,EAAc,IAAI,CAAC,OAAO,EAIrC,IAAI,CAAC,IAAI,CAAG,C,CAVH,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAgBX,IAAA,OAAA,MAAA,WACE,IAAM,EAAM,IAAI,CAAC,IAAI,CAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GACnC,EAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,GAEtC,OADA,IAAI,CAAC,IAAI,CAAG,EACL,CACT,C,E,EArBW,C,G,E,C,mC,Q,+B,Q,2B,Q,+B,Q,c,Q,Y,Q,c,Q,c,Q,a,Q,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EClqBZ,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAEY,OAAA,C,G,E,M,C,E,sB,WAOA,OAAA,C,G,E,M,C,E,iB,WASA,OAAA,C,GAhBN,IAAM,EAAS,SAAA,CAAf,EAAoB,OAAA,AAAI,MAAM,E,EAOxB,EAAsB,WACjC,MAAM,EAAO,uBACf,EAOa,EAAiB,WAC5B,MAAM,EAAO,kBACf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,ECvBC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WAMY,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,Q,WAUA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,GA1Bb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,kBAEa,EAAO,KAAK,MAAM,CAElB,EAAS,WAAM,MAAA,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,EAAgB,IAAI,YAAY,GAAG,CAAC,EAAE,A,EAErD,EAAS,WACpB,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,IAAI,YAAY,IAC5C,MAAO,AAAC,CAAA,CAAG,CAAC,EAAE,CAAG,EAAO,MAAM,AAAN,EAAW,CAAA,EAAO,MAAM,CAAG,CAAA,EAAM,CAAA,CAAG,CAAC,EAAE,GAAK,CAAA,CACtE,EAOa,EAAQ,SAAA,CAAd,EAAqB,OAAA,CAAG,CAAC,EAAK,KAAK,CAAC,IAAS,EAAI,MAAM,EAAE,A,EAQnD,EAAS,WAAM,MAAA,AALL,uCAKoB,OAAO,CAAC,SAAmC,SAAA,CAA1D,EAC1B,MAAC,AAAA,CAAA,EAAI,IAAW,IAAM,EAAI,CAAA,EAAG,QAAQ,CAAC,G,E,C,E,C,Y,Q,c,Q,iB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECnCxC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAEa,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,GADN,IAAM,EAAS,OAAO,MAAM,CACtB,EAAkB,OAAO,eAAe,CAAC,IAAI,CAAC,O,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,ECC1D,IAqFyB,EArFzB,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAeY,OAAA,C,G,E,M,C,E,c,WAMA,OAAA,C,G,E,M,C,E,M,WASA,OAAA,C,G,E,M,C,E,S,WAMA,OAAA,C,G,E,M,C,E,U,WAOA,OAAA,C,G,E,M,C,E,c,WAOA,OAAA,C,G,E,M,C,E,Q,WAWA,OAAA,C,G,E,M,C,E,a,WAwBA,OAAA,C,G,E,M,C,E,O,WAeA,OAAA,C,G,E,M,C,E,Y,WAWA,OAAA,C,G,I,E,E,sC,E,E,gCA7Gb,EAAA,EAAA,aAaa,EAAS,SAAA,CAAf,EAAoB,OAA2B,IAAI,QAAQ,E,EAMrD,EAAc,SAAA,CAApB,EAAyB,OAAA,IAAI,QAAQ,E,EAS/B,EAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAMvB,EAAS,SAAA,CAAf,EAAyB,OAAA,QAAQ,MAAM,CAAC,E,EAOlC,EAAU,SAAA,CAAhB,EAAuB,OAAA,QAAQ,OAAO,CAAC,E,EAOjC,EAAc,SAAA,CAApB,EAA2B,OAAA,QAAQ,OAAO,CAAC,E,EAWrC,EAAQ,SAAC,CAAA,CAAS,CAAxB,EAA+B,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAqB,GAAO,OAAA,EAAO,SAAC,CAAA,CAAS,CAAjB,EAChE,IAAM,EAAY,EAAK,WAAW,GAC5B,EAAa,EAAU,EAavB,EAAiB,YAZD,WAChB,KACF,cAAc,GACd,KACS,GAEL,EAAK,WAAW,GAAK,EAAY,IACnC,cAAc,GACd,EAAO,AAAI,MAAM,YAGvB,EACkD,EACpD,E,EAQa,GAAa,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAP,E,IAAc,EAAa,EAC7C,EACA,E,E,U,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAFgC,EAAA,EAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAU,EAAG,EAAA,EAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAqB,GAClE,EAAY,EAAK,WAAW,GAC5B,EAAY,GAAW,E,E,K,C,C,M,EAEtB,GAAA,CAAA,CAAA,GAAa,EAAK,WAAW,GAAK,GAAa,CAAA,EAA/C,MAAA,C,E,E,CACD,MAAA,C,EAAM,I,A,M,EAAV,GAAI,EAAA,IAAA,GAAe,MAAnB,C,E,CACA,MAAA,C,EAAM,EAAK,G,A,M,E,OAAX,EAAA,IAAA,G,C,E,E,A,M,EAEF,MAAM,AAAI,MAAM,U,C,EAClB,GATa,SAAoB,CAApB,E,O,E,K,C,I,C,U,GAeA,EAAO,SAAA,CAAb,EAAwB,OAAA,EAAO,SAAC,CAAA,CAAS,CAAjB,EAA6B,OAAA,WAAW,EAAS,E,E,EAWnE,EAAY,SAAA,CAAlB,EAAuB,OAAA,aAAa,SAAY,GAAK,EAAE,IAAI,EAAI,EAAE,KAAK,EAAI,EAAE,OAAO,A,C,E,C,qC,Q,+B,Q,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC/GzF,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAUY,OAAA,C,G,E,M,C,E,c,WAOA,OAAA,C,G,E,M,C,E,mB,WAQA,OAAA,C,GAvBb,IAAA,EAAA,EAAA,eACA,EAAA,EAAA,aAOa,EAAU,WAAM,OAAA,IAAI,I,EAOpB,EAAc,KAAK,GAAG,CAQtB,EAAmB,SAAA,CAAzB,EACL,GAAI,EAAI,IAAO,CACb,IAAM,EAAI,EAAO,MAAM,CAAC,EAAG,IAC3B,OAAO,EAAK,KAAK,CAAC,AAAM,IAAN,EAAE,CAAC,EAAU,IAAM,EAAE,MAAM,CAAG,GAClD,CAEA,IAAM,EAAU,AADhB,CAAA,EAAI,EAAK,KAAK,CAAC,EAAI,IAAnB,EACoB,GACd,EAAU,EAAK,KAAK,CAAC,EAAI,IAAM,GAC/B,EAAQ,EAAK,KAAK,CAAC,EAAI,MAAQ,GAC/B,EAAO,EAAK,KAAK,CAAC,EAAI,cAC5B,AAAI,EAAO,EACF,EAAO,IAAQ,CAAA,EAAQ,GAAK,EAAU,GAAM,IAAO,CAAA,EAAU,GAAK,EAAQ,EAAI,CAAA,EAAS,IAAM,EAAA,EAElG,EAAQ,EAEH,EAAQ,IAAO,CAAA,EAAW,GAAK,EAAU,GAAM,IAAO,CAAA,EAAU,GAAK,EAAU,EAAI,CAAA,EAAW,MAAQ,EAAA,EAExG,EAAU,MAAS,CAAA,EAAU,EAAI,IAAM,EAAU,IAAM,EAAA,CAChE,C,E,C,c,Q,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC3CC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,Q,WAIY,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,S,WAYA,OAAA,C,GAjCb,IAAA,EAAA,EAAA,aAEa,EAAQ,KACR,EAAQ,KACR,EAAM,KACN,EAAO,KACP,EAAO,KACP,EAAO,IACP,EAAO,IACP,EAAO,IACP,EAAQ,IACR,EAAO,GACP,EAAO,GACP,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAO,KACP,EAAO,MACP,EAAQ,MACR,EAAO,MACP,EAAQ,MACR,EAAQ,MAEf,EAAW,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,CACvD,EAAa,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,CASlD,EAAS,SAAC,CAAhB,EAGL,IAHwB,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAiB,EACnC,EAAO,AAAM,IAAN,EAAU,EAAI,EAAK,KAAK,CAAC,GAClC,EAAO,EACJ,EAAO,AAAO,EAAP,GAAY,EAAiB,IACzC,IACA,IAEF,KAAO,GAAQ,EAAI,AAAO,EAAP,GAAY,EAAiB,GAC9C,IACA,IAEF,IAAM,EAAS,EAAiB,EAAI,CAAU,CAAC,CAAC,EAAe,CAAG,CAAQ,CAAC,EAAe,CAC1F,MAAO,CACL,EAAG,EAAK,KAAK,CAAE,AAAA,CAAA,EAAO,EAAI,EAAI,EAAK,KAAK,CAAC,AAAO,EAAP,GAAY,EAAI,EAAK,KAAK,CAAC,AAAO,GAAP,EAAO,EAAO,MAAQ,KAC1F,OAAA,CACF,CACF,C,E,C,Y,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,ECnDC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,0B,WAYY,OAAA,C,G,E,M,C,E,sC,WASA,OAAA,C,G,E,M,C,E,kC,WAOA,OAAA,C,G,E,M,C,E,W,WAgDA,OAAA,C,G,E,M,C,E,a,WAGA,OAAA,C,G,E,M,C,E,qB,WAMA,OAAA,C,G,E,M,C,E,uB,WAKA,OAAA,C,G,E,M,C,E,c,WAOA,OAAA,C,G,E,M,C,E,gB,WAOA,OAAA,C,G,E,M,C,E,iB,WAeA,OAAA,C,G,E,M,C,E,Y,WAaA,OAAA,C,G,E,M,C,E,Y,WASA,OAAA,C,G,E,M,C,E,iB,WAQA,OAAA,C,GAnJb,IAAA,EAAA,EAAA,eACA,EAAA,EAAA,oBACA,EAAA,EAAA,cACA,EAAA,EAAA,aACA,EAAA,EAAA,iBACA,EAAA,EAAA,iB,E,E,oB,M,CAKa,EAA0B,SAAA,CAAhC,EAAuC,OAAA,IAAI,WAAW,E,EAShD,EAAsC,SAAC,CAAA,CAAQ,CAAA,CAAY,CAAjE,EAA4E,OAAA,IAAI,WAAW,EAAQ,EAAY,E,EAOzG,EAAkC,SAAA,CAAxC,EAAkD,OAAA,IAAI,WAAW,E,EAgD3D,EAAW,EAAI,SAAS,CAzCb,SAAA,CADvB,EAGC,IAAK,IADD,EAAI,GACC,EAAI,EAAG,EAAI,EAAM,UAAU,CAAE,IACpC,GAAK,EAAO,YAAY,CAAC,CAAK,CAAC,EAAE,EAGnC,OAAO,KAAK,EACd,EAOqB,SAAA,CADpB,EAC6B,OAAA,EAAO,IAAI,CAAC,EAAM,MAAM,CAAE,EAAM,UAAU,CAAE,EAAM,UAAU,EAAE,QAAQ,CAAC,S,EA8BxF,EAAa,EAAI,SAAS,CAvBb,SAAA,CADzB,EAKC,IAAK,IAFC,EAAI,KAAK,GACT,EAAQ,EAAwB,EAAE,MAAM,EACrC,EAAI,EAAG,EAAI,EAAE,MAAM,CAAE,IAC5B,CAAK,CAAC,EAAE,CAAG,EAAE,UAAU,CAAC,GAE1B,OAAO,CACT,EAMuB,SAAA,CADtB,EAEC,IAAM,EAAM,EAAO,IAAI,CAAC,EAAG,UAC3B,OAAO,EAAoC,EAAI,MAAM,CAAE,EAAI,UAAU,CAAE,EAAI,UAAU,CACvF,EAYa,EAAqB,SAAA,CAA3B,EAAkC,OAAA,EAAS,GAAK,UAAU,CAAC,IAAK,KAAK,UAAU,CAAC,IAAK,KAAK,UAAU,CAAC,IAAK,G,EAKpG,EAAuB,SAAA,CAA7B,EAAuC,OAAA,EAAW,EAAO,UAAU,CAAC,IAAK,KAAK,UAAU,CAAC,IAAK,K,EAOxF,EAAc,SAAA,CAApB,EAA2B,OAAA,EAAM,GAAG,CAAC,EAAK,SAAA,CAAf,EAAoB,OAAA,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,IAAM,GAAA,IAAI,CAAC,G,EAO/E,EAAgB,SAAA,CAAtB,EAGL,IAAK,IAFC,EAAO,EAAI,MAAM,CACjB,EAAM,IAAI,WAAW,EAAK,IAAI,CAAC,EAAO,IACnC,EAAI,EAAG,EAAI,EAAM,GAAK,EAC7B,CAAG,CAAC,EAAI,MAAM,CAAG,EAAI,EAAI,EAAE,CAAG,OAAO,QAAQ,CAAC,EAAI,KAAK,CAAC,EAAO,EAAI,EAAG,EAAO,GAAI,IAEnF,OAAO,CACT,EAQa,EAAiB,SAAA,CAAvB,EACL,IAAM,EAAS,EAAwB,EAAW,UAAU,EAE5D,OADA,EAAO,GAAG,CAAC,GACJ,CACT,EASa,EAAY,SAAA,CAAlB,EACL,OAAA,EAAS,MAAM,CAAC,SAAA,CAAhB,EAA2B,OAAA,EAAS,QAAQ,CAAC,EAAS,E,E,EAQ3C,EAAY,SAAA,CAAlB,EAAyB,OAAA,EAAS,OAAO,CAAC,EAAS,aAAa,CAAC,G,EAQ3D,EAAiB,SAAC,CAAA,CAAI,CAA5B,EACL,GAAI,AAAM,IAAN,EAAS,OAAO,EACpB,EAAK,IAAI,WAAW,GACpB,CAAE,CAAC,EAAE,GAAK,EACV,IAAK,IAAI,EAAI,EAAG,EAAI,EAAG,MAAM,CAAE,IAC7B,CAAE,CAAC,EAAI,EAAE,EAAI,CAAE,CAAC,EAAE,GAAM,EAAI,EAC5B,CAAE,CAAC,EAAE,GAAK,EAEZ,OAAO,CACT,C,E,C,mB,Q,c,Q,mB,Q,a,Q,Y,Q,gB,Q,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EClKA;;;;;CAKC,EAAA,IAAA,EAAA,EAAA,2C,E,E,oC,E,E,gC,E,E,4B,E,E,2B,E,E,gCAKK,EAAS,EAAQ,oBACjB,EAAU,EAAQ,oBAClB,EACH,AAAkB,YAAlB,OAAO,QAAyB,AAAyB,YAAzB,OAAO,OAAO,GAAM,CACjD,OAAO,GAAM,CAAC,8BACd,KA8DN,SAAS,EAAc,CAAM,EAC3B,GAAI,EAzDe,WA0DjB,MAAM,AAAI,WAAW,cAAgB,EAAS,kCAGhD,IAAM,EAAM,IAAI,WAAW,GAE3B,OADA,OAAO,cAAc,CAAC,EAAK,EAAO,SAAS,EACpC,CACT,CAYA,SAAS,EAAQ,CAAG,CAAE,CAAgB,CAAE,CAAM,EAE5C,GAAI,AAAe,UAAf,OAAO,EAAkB,CAC3B,GAAI,AAA4B,UAA5B,OAAO,EACT,MAAM,AAAI,UACR,sEAGJ,OAAO,EAAY,EACrB,CACA,OAAO,EAAK,EAAK,EAAkB,EACrC,CAIA,SAAS,EAAM,CAAK,CAAE,CAAgB,CAAE,CAAM,EAC5C,GAAI,AAAiB,UAAjB,OAAO,EACT,OAAO,AAqHX,SAAqB,CAAM,CAAE,CAAQ,EAKnC,GAJI,CAAA,AAAoB,UAApB,OAAO,GAAyB,AAAa,KAAb,CAAa,GAC/C,CAAA,EAAW,MADb,EAII,CAAC,EAAO,UAAU,CAAC,GACrB,MAAM,AAAI,UAAU,qBAAuB,GAG7C,IAAM,EAAS,AAA+B,EAA/B,EAAW,EAAQ,GAC9B,EAAM,EAAa,GAEjB,EAAS,EAAI,KAAK,CAAC,EAAQ,GASjC,OAPI,IAAW,GAIb,CAAA,EAAM,EAAI,KAAK,CAAC,EAAG,EAAnB,EAGK,CACT,EA3IsB,EAAO,GAG3B,GAAI,YAAY,MAAM,CAAC,GACrB,OAAO,AAkJX,SAAwB,CAAS,EAC/B,GAAI,EAAW,EAAW,YAAa,CACrC,IAAM,EAAO,IAAI,WAAW,GAC5B,OAAO,EAAgB,EAAK,MAAM,CAAE,EAAK,UAAU,CAAE,EAAK,UAAU,CACtE,CACA,OAAO,EAAc,EACvB,EAxJyB,GAGvB,GAAI,AAAS,MAAT,EACF,MAAM,AAAI,UACR,kHAC0C,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAY,AAAZ,EAAO,EAAA,GAIrD,GAAI,EAAW,EAAO,cACjB,GAAS,EAAW,EAAM,MAAM,CAAE,cAInC,AAA6B,aAA7B,OAAO,mBACN,CAAA,EAAW,EAAO,oBAClB,GAAS,EAAW,EAAM,MAAM,CAAE,kBAAA,EALrC,OAAO,EAAgB,EAAO,EAAkB,GASlD,GAAI,AAAiB,UAAjB,OAAO,EACT,MAAM,AAAI,UACR,yEAIJ,IAAM,EAAU,EAAM,OAAO,EAAI,EAAM,OAAO,GAC9C,GAAI,AAAW,MAAX,GAAmB,IAAY,EACjC,OAAO,EAAO,IAAI,CAAC,EAAS,EAAkB,GAGhD,IAAM,EAAI,AAkJZ,SAAqB,CAAG,EACtB,GAAI,EAAO,QAAQ,CAAC,GAAM,CACxB,IAqvDkB,EArvDZ,EAAM,AAAsB,EAAtB,EAAQ,EAAI,MAAM,EACxB,EAAM,EAAa,UAEN,IAAf,EAAI,MAAM,EAId,EAAI,IAAI,CAAC,EAAK,EAAG,EAAG,GAHX,CAKX,QAEA,AAAI,AAAe,KAAA,IAAf,EAAI,MAAM,CACZ,AAAI,AAAsB,UAAtB,OAAO,EAAI,MAAM,EA2uDhB,CAFa,EAzuDgC,EAAI,MAAM,GA2uD/C,EA1uDJ,EAAa,GAEf,EAAc,GAGnB,AAAa,WAAb,EAAI,IAAI,EAAiB,MAAM,OAAO,CAAC,EAAI,IAAI,EAC1C,EAAc,EAAI,IAAI,QAEjC,EAzKuB,GACrB,GAAI,EAAG,OAAO,EAEd,GAAI,AAAkB,aAAlB,OAAO,QAA0B,AAAsB,MAAtB,OAAO,WAAW,EACnD,AAAqC,YAArC,OAAO,CAAK,CAAC,OAAO,WAAW,CAAC,CAClC,OAAO,EAAO,IAAI,CAAC,CAAK,CAAC,OAAO,WAAW,CAAC,CAAC,UAAW,EAAkB,EAG5E,OAAM,AAAI,UACR,kHAC0C,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAW,AAAX,EAAO,EAAA,EAErD,CAmBA,SAAS,EAAY,CAAI,EACvB,GAAI,AAAgB,UAAhB,OAAO,EACT,MAAM,AAAI,UAAU,0CACf,GAAI,EAAO,EAChB,MAAM,AAAI,WAAW,cAAgB,EAAO,iCAEhD,CA0BA,SAAS,EAAa,CAAI,EAExB,OADA,EAAW,GACJ,EAAa,EAAO,EAAI,EAAI,AAAgB,EAAhB,EAAQ,GAC7C,CAuCA,SAAS,EAAe,CAAK,EAG3B,IAAK,IAFC,EAAS,EAAM,MAAM,CAAG,EAAI,EAAI,AAAwB,EAAxB,EAAQ,EAAM,MAAM,EACpD,EAAM,EAAa,GAChB,EAAI,EAAG,EAAI,EAAQ,GAAK,EAC/B,CAAG,CAAC,EAAE,CAAG,AAAW,IAAX,CAAK,CAAC,EAAE,CAEnB,OAAO,CACT,CAUA,SAAS,EAAiB,CAAK,CAAE,CAAU,CAAE,CAAM,MAS7C,EARJ,GAAI,EAAa,GAAK,EAAM,UAAU,CAAG,EACvC,MAAM,AAAI,WAAW,wCAGvB,GAAI,EAAM,UAAU,CAAG,EAAc,CAAA,GAAU,CAAA,EAC7C,MAAM,AAAI,WAAW,wCAevB,OAFA,OAAO,cAAc,CARnB,EADE,AAAe,KAAA,IAAf,GAA4B,AAAW,KAAA,IAAX,EACxB,IAAI,WAAW,GACZ,AAAW,KAAA,IAAX,EACH,IAAI,WAAW,EAAO,GAEtB,IAAI,WAAW,EAAO,EAAY,GAIf,EAAO,SAAS,EAEpC,CACT,CA2BA,SAAS,EAAS,CAAM,EAGtB,GAAI,GA/Se,WAgTjB,MAAM,AAAI,WAAW,yEAGvB,OAAO,AAAS,EAAT,CACT,CAsGA,SAAS,EAAY,CAAM,CAAE,CAAQ,EACnC,GAAI,EAAO,QAAQ,CAAC,GAClB,OAAO,EAAO,MAAM,CAEtB,GAAI,YAAY,MAAM,CAAC,IAAW,EAAW,EAAQ,aACnD,OAAO,EAAO,UAAU,CAE1B,GAAI,AAAkB,UAAlB,OAAO,EACT,MAAM,AAAI,UACR,2FACmB,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAa,AAAb,EAAO,EAAA,GAI9B,IAAM,EAAM,EAAO,MAAM,CACnB,EAAa,UAAU,MAAM,CAAG,GAAK,AAAiB,CAAA,IAAjB,SAAS,CAAC,EAAE,CACvD,GAAI,CAAC,GAAa,AAAQ,IAAR,EAAW,OAAO,EAIpC,IADA,IAAI,EAAc,CAAA,IAEhB,OAAQ,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO,CACT,KAAK,OACL,IAAK,QACH,OAAO,EAAY,GAAQ,MAAM,AACnC,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,AAAM,EAAN,CACT,KAAK,MACH,OAAO,IAAQ,CACjB,KAAK,SACH,OAAO,EAAc,GAAQ,MAAM,AACrC,SACE,GAAI,EACF,OAAO,EAAY,GAAK,EAAY,GAAQ,MAAM,CAEpD,EAAY,AAAA,CAAA,GAAK,CAAA,EAAU,WAAW,GACtC,EAAc,CAAA,CAClB,CAEJ,CAGA,SAAS,EAAc,CAAQ,CAAE,CAAK,CAAE,CAAG,EACzC,IA8cyB,EAAO,EA9c5B,EAAc,CAAA,EAclB,GALI,CAAA,AAAU,KAAA,IAAV,GAAuB,EAAQ,CAAA,GACjC,CAAA,EAAQ,CAAA,EAIN,EAAQ,IAAI,CAAC,MAAM,GAInB,CAAA,AAAQ,KAAA,IAAR,GAAqB,EAAM,IAAI,CAAC,MAAM,AAAN,GAClC,CAAA,EAAM,IAAI,CAAC,MAAM,AAAN,EAGT,GAAO,GAQP,AAHJ,CAAA,KAAS,CAAA,GACT,CAAA,KAAW,CAAA,GAbT,MAAO,GAqBT,IAFK,GAAU,CAAA,EAAW,MAA1B,IAGE,OAAQ,GACN,IAAK,MACH,OAAO,AAsiBf,SAAmB,CAAG,CAAE,CAAK,CAAE,CAAG,EAChC,IAAM,EAAM,EAAI,MAAM,CAElB,CAAA,CAAC,GAAS,EAAQ,CAAA,GAAG,CAAA,EAAQ,CAAA,EAC7B,CAAA,CAAC,GAAO,EAAM,GAAK,EAAM,CAAA,GAAK,CAAA,EAAM,CAAxC,EAGA,IAAK,IADD,EAAM,GACD,EAAI,EAAO,EAAI,EAAK,EAAE,EAC7B,GAAO,CAAmB,CAAC,CAAG,CAAC,EAAE,CAAC,CAEpC,OAAO,CACT,EAjjBwB,IAAI,CAAE,EAAO,EAE/B,KAAK,OACL,IAAK,QACH,OAAO,EAAU,IAAI,CAAE,EAAO,EAEhC,KAAK,QACH,OAAO,AA2gBf,SAAqB,CAAG,CAAE,CAAK,CAAE,CAAG,EAClC,IAAI,EAAM,GACV,EAAM,KAAK,GAAG,CAAC,EAAI,MAAM,CAAE,GAE3B,IAAK,IAAI,EAAI,EAAO,EAAI,EAAK,EAAE,EAC7B,GAAO,OAAO,YAAY,CAAC,AAAS,IAAT,CAAG,CAAC,EAAE,EAEnC,OAAO,CACT,EAnhB0B,IAAI,CAAE,EAAO,EAEjC,KAAK,SACL,IAAK,SACH,OAAO,AAihBf,SAAsB,CAAG,CAAE,CAAK,CAAE,CAAG,EACnC,IAAI,EAAM,GACV,EAAM,KAAK,GAAG,CAAC,EAAI,MAAM,CAAE,GAE3B,IAAK,IAAI,EAAI,EAAO,EAAI,EAAK,EAAE,EAC7B,GAAO,OAAO,YAAY,CAAC,CAAG,CAAC,EAAE,EAEnC,OAAO,CACT,EAzhB2B,IAAI,CAAE,EAAO,EAElC,KAAK,SACH,OAyZmB,EAzZM,EAyZC,EAzZM,EA0ZtC,AAAI,AAAU,IAAV,GAAe,IAAQ,AA1ZF,IAAI,CA0ZE,MAAM,CAC5B,EAAO,aAAa,CA3ZJ,IAAI,EA6ZpB,EAAO,aAAa,CAAC,AA7ZL,IAAI,CA6ZK,KAAK,CAAC,EAAO,GA3Z3C,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,AA+hBf,SAAuB,CAAG,CAAE,CAAK,CAAE,CAAG,EAIpC,IAAK,IAHC,EAAQ,EAAI,KAAK,CAAC,EAAO,GAC3B,EAAM,GAED,EAAI,EAAG,EAAI,EAAM,MAAM,CAAG,EAAG,GAAK,EACzC,GAAO,OAAO,YAAY,CAAC,CAAK,CAAC,EAAE,CAAI,AAAe,IAAf,CAAK,CAAC,EAAI,EAAE,EAErD,OAAO,CACT,EAviB4B,IAAI,CAAE,EAAO,EAEnC,SACE,GAAI,EAAa,MAAM,AAAI,UAAU,qBAAuB,GAC5D,EAAY,AAAA,CAAA,EAAW,EAAA,EAAI,WAAW,GACtC,EAAc,CAAA,CAClB,CAEJ,CAUA,SAAS,EAAM,CAAC,CAAE,CAAC,CAAE,CAAC,EACpB,IAAM,EAAI,CAAC,CAAC,EAAE,AACd,CAAA,CAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,CACX,CAAC,CAAC,EAAE,CAAG,CACT,CA2IA,SAAS,EAAsB,CAAM,CAAE,CAAG,CAAE,CAAU,CAAE,CAAQ,CAAE,CAAG,MAk2C/C,EAh2CpB,GAAI,AAAkB,IAAlB,EAAO,MAAM,CAAQ,OAAO,GAmBhC,GAhBI,AAAsB,UAAtB,OAAO,GACT,EAAW,EACX,EAAa,GACJ,EAAa,WACtB,EAAa,WACJ,EAAa,aACtB,CAAA,EAAa,WADR,GAw1Ca,EAr1CpB,EAAa,CAAC,IAu1CC,GAp1Cb,CAAA,EAAa,EAAM,EAAK,EAAO,MAAM,CAAG,CAAA,EAItC,EAAa,GAAG,CAAA,EAAa,EAAO,MAAM,CAAG,CAAjD,EACI,GAAc,EAAO,MAAM,CAAE,CAC/B,GAAI,EAAK,OAAO,GACX,EAAa,EAAO,MAAM,CAAG,CACpC,MAAO,GAAI,EAAa,EAAG,CACzB,IAAI,EACC,OAAO,GADH,EAAa,CAExB,CAQA,GALmB,UAAf,OAAO,GACT,CAAA,EAAM,EAAO,IAAI,CAAC,EAAK,EADzB,EAKI,EAAO,QAAQ,CAAC,UAElB,AAAI,AAAe,IAAf,EAAI,MAAM,CACL,GAEF,EAAa,EAAQ,EAAK,EAAY,EAAU,GAClD,GAAI,AAAe,UAAf,OAAO,QAEhB,CADA,GAAY,IACR,AAAwC,YAAxC,OAAO,WAAW,SAAS,CAAC,OAAO,EACrC,AAAI,EACK,WAAW,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAQ,EAAK,GAE/C,WAAW,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAQ,EAAK,GAGvD,EAAa,EAAQ,CAAC,EAAI,CAAE,EAAY,EAAU,EAG3D,OAAM,AAAI,UAAU,uCACtB,CAEA,SAAS,EAAc,CAAG,CAAE,CAAG,CAAE,CAAU,CAAE,CAAQ,CAAE,CAAG,EACxD,IA0BI,EA1BA,EAAY,EACZ,EAAY,EAAI,MAAM,CACtB,EAAY,EAAI,MAAM,CAE1B,GAAI,AAAa,KAAA,IAAb,GAEE,CAAA,AAAa,SADjB,CAAA,EAAW,OAAO,GAAU,WAAW,EAAvC,GAC2B,AAAa,UAAb,GACvB,AAAa,YAAb,GAA0B,AAAa,aAAb,CAAa,EAAY,CACrD,GAAI,EAAI,MAAM,CAAG,GAAK,EAAI,MAAM,CAAG,EACjC,OAAO,GAET,EAAY,EACZ,GAAa,EACb,GAAa,EACb,GAAc,CAChB,CAGF,SAAS,EAAM,CAAG,CAAE,CAAC,SACnB,AAAI,AAAc,IAAd,EACK,CAAG,CAAC,EAAE,CAEN,EAAI,YAAY,CAAC,EAAI,EAEhC,CAGA,GAAI,EAAK,CACP,IAAI,EAAa,GACjB,IAAK,EAAI,EAAY,EAAI,EAAW,IAClC,GAAI,EAAK,EAAK,KAAO,EAAK,EAAK,AAAe,KAAf,EAAoB,EAAI,EAAI,GAEzD,CAAA,GADmB,KAAf,GAAmB,CAAA,EAAa,CAAA,EAChC,EAAI,EAAa,IAAM,EAAW,OAAO,EAAa,CAA1D,MAEmB,KAAf,GAAmB,CAAA,GAAK,EAAI,CAAhC,EACA,EAAa,EAGnB,MAEE,IADI,EAAa,EAAY,GAAW,CAAA,EAAa,EAAY,CAAjE,EACK,EAAI,EAAY,GAAK,EAAG,IAAK,CAEhC,IAAK,IADD,EAAQ,CAAA,EACH,EAAI,EAAG,EAAI,EAAW,IAC7B,GAAI,EAAK,EAAK,EAAI,KAAO,EAAK,EAAK,GAAI,CACrC,EAAQ,CAAA,EACR,KACF,CAEF,GAAI,EAAO,OAAO,CACpB,CAGF,OAAO,EACT,CA4IA,SAAS,EAAW,CAAG,CAAE,CAAK,CAAE,CAAG,EACjC,EAAM,KAAK,GAAG,CAAC,EAAI,MAAM,CAAE,GAI3B,IAHA,IAAM,EAAM,EAAE,CAEV,EAAI,EACD,EAAI,GAAK,CACd,IAAM,EAAY,CAAG,CAAC,EAAE,CACpB,EAAY,KACZ,EAAoB,EAAY,IAChC,EACC,EAAY,IACT,EACC,EAAY,IACT,EACA,EAEZ,GAAI,EAAI,GAAoB,EAAK,CAC/B,IAAI,EAAA,KAAA,EAAY,EAAA,KAAA,EAAW,EAAA,KAAA,EAAY,EAAA,KAAA,EAEvC,OAAQ,GACN,KAAK,EACC,EAAY,KACd,CAAA,EAAY,CADd,EAGA,KACF,MAAK,EAEE,CAAA,AAAa,IADlB,CAAA,EAAa,CAAG,CAAC,EAAI,EAAE,AAAF,CACH,GAAU,KAEtB,AADJ,CAAA,EAAiB,AAAA,CAAA,AAAY,GAAZ,CAAY,GAAS,EAAO,AAAa,GAAb,CAA7C,EACoB,KAClB,CAAA,EAAY,CADd,EAIF,KACF,MAAK,EACH,EAAa,CAAG,CAAC,EAAI,EAAE,CACvB,EAAY,CAAG,CAAC,EAAI,EAAE,CACjB,CAAA,AAAa,IAAb,CAAa,GAAU,KAAQ,AAAC,CAAA,AAAY,IAAZ,CAAY,GAAU,KAErD,AADJ,CAAA,EAAgB,AAAC,CAAA,AAAY,GAAZ,CAAY,GAAQ,GAAM,AAAC,CAAA,AAAa,GAAb,CAAa,GAAS,EAAO,AAAY,GAAZ,CAAzE,EACoB,MAAU,CAAA,EAAgB,OAAU,EAAgB,KAAA,GACtE,CAAA,EAAY,CADd,EAIF,KACF,MAAK,EACH,EAAa,CAAG,CAAC,EAAI,EAAE,CACvB,EAAY,CAAG,CAAC,EAAI,EAAE,CACtB,EAAa,CAAG,CAAC,EAAI,EAAE,CAClB,CAAA,AAAa,IAAb,CAAa,GAAU,KAAS,AAAA,CAAA,AAAY,IAAZ,CAAY,GAAU,KAAQ,AAAC,CAAA,AAAa,IAAb,CAAa,GAAU,KAErF,AADJ,CAAA,EAAiB,AAAA,CAAA,AAAY,GAAZ,CAAY,GAAQ,GAAQ,AAAA,CAAA,AAAa,GAAb,CAAa,GAAS,GAAM,AAAC,CAAA,AAAY,GAAZ,CAAY,GAAS,EAAO,AAAa,GAAb,CAAtG,EACoB,OAAU,EAAgB,SAC5C,CAAA,EAAY,CADd,CAIN,CACF,CAEI,AAAc,OAAd,GAGF,EAAY,MACZ,EAAmB,GACV,EAAY,QAErB,GAAa,MACb,EAAI,IAAI,CAAC,IAAc,GAAK,KAAQ,OACpC,EAAY,MAAS,AAAY,KAAZ,GAGvB,EAAI,IAAI,CAAC,GACT,GAAK,CACP,CAEA,OAAO,AAQT,SAAgC,CAAU,EACxC,IAAM,EAAM,EAAW,MAAM,CAC7B,GAAI,GAJuB,KAKzB,OAAO,OAAO,YAAY,CAAC,KAAK,CAAC,OAAQ,GAM3C,IAFA,IAAI,EAAM,GACN,EAAI,EACD,EAAI,GACT,GAAO,OAAO,YAAY,CAAC,KAAK,CAC9B,OACA,EAAW,KAAK,CAAC,EAAG,GAdG,OAiB3B,OAAO,CACT,EAxB+B,EAC/B,CAmGA,SAAS,EAAa,CAAM,CAAE,CAAG,CAAE,CAAM,EACvC,GAAK,EAAS,GAAO,GAAK,EAAS,EAAG,MAAM,AAAI,WAAW,sBAC3D,GAAI,EAAS,EAAM,EAAQ,MAAM,AAAI,WAAW,wCAClD,CAyQA,SAAS,EAAU,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAG,CAAE,CAAG,CAAE,CAAG,EAClD,GAAI,CAAC,EAAO,QAAQ,CAAC,GAAM,MAAM,AAAI,UAAU,+CAC/C,GAAI,EAAQ,GAAO,EAAQ,EAAK,MAAM,AAAI,WAAW,qCACrD,GAAI,EAAS,EAAM,EAAI,MAAM,CAAE,MAAM,AAAI,WAAW,qBACtD,CA+FA,SAAS,EAAgB,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAG,CAAE,CAAG,EACnD,EAAW,EAAO,EAAK,EAAK,EAAK,EAAQ,GAEzC,IAAI,EAAK,OAAO,EAAQ,OAAO,YAC/B,CAAA,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EAChB,IAAI,EAAK,OAAO,GAAS,OAAO,IAAM,OAAO,aAQ7C,OAPA,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EAChB,IAAW,EACX,CAAG,CAAC,IAAS,CAAG,EACT,CACT,CAEA,SAAS,EAAgB,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAG,CAAE,CAAG,EACnD,EAAW,EAAO,EAAK,EAAK,EAAK,EAAQ,GAEzC,IAAI,EAAK,OAAO,EAAQ,OAAO,YAC/B,CAAA,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAI,EAAK,OAAO,GAAS,OAAO,IAAM,OAAO,aAQ7C,OAPA,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAS,EAAE,CAAG,EAClB,IAAW,EACX,CAAG,CAAC,EAAO,CAAG,EACP,EAAS,CAClB,CAkHA,SAAS,EAAc,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAG,CAAE,CAAG,CAAE,CAAG,EACtD,GAAI,EAAS,EAAM,EAAI,MAAM,EACzB,EAAS,EADkB,MAAM,AAAI,WAAW,qBAEtD,CAEA,SAAS,EAAY,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAY,CAAE,CAAQ,EAO7D,OANA,EAAQ,CAAC,EACT,KAAoB,EACf,GACH,EAAa,EAAK,EAAO,EAAQ,EAAG,qBAAwB,uBAE9D,EAAQ,KAAK,CAAC,EAAK,EAAO,EAAQ,EAAc,GAAI,GAC7C,EAAS,CAClB,CAUA,SAAS,EAAa,CAAG,CAAE,CAAK,CAAE,CAAM,CAAE,CAAY,CAAE,CAAQ,EAO9D,OANA,EAAQ,CAAC,EACT,KAAoB,EACf,GACH,EAAa,EAAK,EAAO,EAAQ,EAAG,sBAAyB,wBAE/D,EAAQ,KAAK,CAAC,EAAK,EAAO,EAAQ,EAAc,GAAI,GAC7C,EAAS,CAClB,CA7nDA,EAAQ,MAAM,CAAG,EACjB,EAAQ,UAAU,CAyTlB,SAAqB,CAAM,EAIzB,MAHI,CAAC,GAAU,GACb,CAAA,EAAS,CAAA,EAEJ,EAAO,KAAK,CAAC,CAAC,EACvB,EA7TA,EAAQ,iBAAiB,CAAG,GAG5B,EAAQ,UAAU,CADG,WAiBrB,EAAO,mBAAmB,CAAG,AAU7B,WAEE,GAAI,CACF,IAAM,EAAM,IAAI,WAAW,GACrB,EAAQ,CAAE,IAAK,WAAc,OAAO,EAAG,CAAE,EAG/C,OAFA,OAAO,cAAc,CAAC,EAAO,WAAW,SAAS,EACjD,OAAO,cAAc,CAAC,EAAK,GACpB,AAAc,KAAd,EAAI,GAAG,EAChB,CAAE,MAAO,EAAG,CACV,MAAO,CAAA,CACT,CACF,IAnBK,EAAO,mBAAmB,EAAI,AAAmB,aAAnB,OAAO,SACtC,AAAyB,YAAzB,OAAO,QAAQ,KAAK,EACtB,QAAQ,KAAK,CACX,iJAkBJ,OAAO,cAAc,CAAC,EAAO,SAAS,CAAE,SAAU,CAChD,WAAY,CAAA,EACZ,IAAK,WACH,GAAK,EAAO,QAAQ,CAAC,IAAI,EACzB,OAAO,IAAI,CAAC,MAAM,AACpB,CACF,GAEA,OAAO,cAAc,CAAC,EAAO,SAAS,CAAE,SAAU,CAChD,WAAY,CAAA,EACZ,IAAK,WACH,GAAK,EAAO,QAAQ,CAAC,IAAI,EACzB,OAAO,IAAI,CAAC,UAAU,AACxB,CACF,GAmCA,EAAO,QAAQ,CAAG,KA8DlB,EAAO,IAAI,CAAG,SAAU,CAAK,CAAE,CAAgB,CAAE,CAAM,EACrD,OAAO,EAAK,EAAO,EAAkB,EACvC,EAIA,OAAO,cAAc,CAAC,EAAO,SAAS,CAAE,WAAW,SAAS,EAC5D,OAAO,cAAc,CAAC,EAAQ,YA8B9B,EAAO,KAAK,CAAG,SAAU,CAAI,CAAE,CAAI,CAAE,CAAQ,EAC3C,OApBA,EAoBa,GAnBT,AAmBS,GAnBD,GACH,EAkBI,GAhBT,AAAS,KAAA,IAgBM,EAZV,AAAoB,UAApB,OAYgB,EAXnB,EAWO,GAXY,IAAI,CAWV,EAAM,GAVnB,EAUO,GAVY,IAAI,CAUV,GARZ,EAQM,EACf,EAUA,EAAO,WAAW,CAAG,SAAU,CAAI,EACjC,OAAO,EAAY,EACrB,EAIA,EAAO,eAAe,CAAG,SAAU,CAAI,EACrC,OAAO,EAAY,EACrB,EA6GA,EAAO,QAAQ,CAAG,SAAmB,CAAC,EACpC,OAAO,AAAK,MAAL,GAAa,AAAgB,CAAA,IAAhB,EAAE,SAAS,EAC7B,IAAM,EAAO,SAAS,AAC1B,EAEA,EAAO,OAAO,CAAG,SAAkB,CAAC,CAAE,CAAC,EAGrC,GAFI,EAAW,EAAG,aAAa,CAAA,EAAI,EAAO,IAAI,CAAC,EAAG,EAAE,MAAM,CAAE,EAAE,UAAU,CAAA,EACpE,EAAW,EAAG,aAAa,CAAA,EAAI,EAAO,IAAI,CAAC,EAAG,EAAE,MAAM,CAAE,EAAE,UAAU,CAAA,EACpE,CAAC,EAAO,QAAQ,CAAC,IAAM,CAAC,EAAO,QAAQ,CAAC,GAC1C,MAAM,AAAI,UACR,yEAIJ,GAAI,IAAM,EAAG,OAAO,EAKpB,IAAK,IAHD,EAAI,EAAE,MAAM,CACZ,EAAI,EAAE,MAAM,CAEP,EAAI,EAAG,EAAM,KAAK,GAAG,CAAC,EAAG,GAAI,EAAI,EAAK,EAAE,EAC/C,GAAI,CAAC,CAAC,EAAE,GAAK,CAAC,CAAC,EAAE,CAAE,CACjB,EAAI,CAAC,CAAC,EAAE,CACR,EAAI,CAAC,CAAC,EAAE,CACR,KACF,QAGF,AAAI,EAAI,EAAU,GACd,EAAI,EAAU,EACX,CACT,EAEA,EAAO,UAAU,CAAG,SAAqB,CAAQ,EAC/C,OAAQ,OAAO,GAAU,WAAW,IAClC,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO,CAAA,CACT,SACE,MAAO,CAAA,CACX,CACF,EAEA,EAAO,MAAM,CAAG,SAAiB,CAAI,CAAE,CAAM,EAC3C,GAAI,CAAC,MAAM,OAAO,CAAC,GACjB,MAAM,AAAI,UAAU,+CAGtB,GAAI,AAAgB,IAAhB,EAAK,MAAM,CACb,OAAO,EAAO,KAAK,CAAC,GAItB,GAAI,AAAW,KAAA,IAAX,EAEF,IAAK,EAAI,EADT,EAAS,EACG,EAAI,EAAK,MAAM,CAAE,EAAE,EAC7B,GAAU,CAAI,CAAC,EAAE,CAAC,MAAM,CAI5B,IARI,EAQE,EAAS,EAAO,WAAW,CAAC,GAC9B,EAAM,EACV,IAAK,EAAI,EAAG,EAAI,EAAK,MAAM,CAAE,EAAE,EAAG,CAChC,IAAI,EAAM,CAAI,CAAC,EAAE,CACjB,GAAI,EAAW,EAAK,YACd,EAAM,EAAI,MAAM,CAAG,EAAO,MAAM,EAC7B,EAAO,QAAQ,CAAC,IAAM,CAAA,EAAM,EAAO,IAAI,CAAC,EAA7C,EACA,EAAI,IAAI,CAAC,EAAQ,IAEjB,WAAW,SAAS,CAAC,GAAG,CAAC,IAAI,CAC3B,EACA,EACA,QAGC,GAAK,EAAO,QAAQ,CAAC,GAG1B,EAAI,IAAI,CAAC,EAAQ,QAFjB,MAAM,AAAI,UAAU,+CAItB,GAAO,EAAI,MAAM,AACnB,CACA,OAAO,CACT,EAiDA,EAAO,UAAU,CAAG,EA8EpB,EAAO,SAAS,CAAC,SAAS,CAAG,CAAA,EAQ7B,EAAO,SAAS,CAAC,MAAM,CAAG,WACxB,IAAM,EAAM,IAAI,CAAC,MAAM,CACvB,GAAI,EAAM,GAAM,EACd,MAAM,AAAI,WAAW,6CAEvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,GAAK,EAC5B,EAAK,IAAI,CAAE,EAAG,EAAI,GAEpB,OAAO,IAAI,AACb,EAEA,EAAO,SAAS,CAAC,MAAM,CAAG,WACxB,IAAM,EAAM,IAAI,CAAC,MAAM,CACvB,GAAI,EAAM,GAAM,EACd,MAAM,AAAI,WAAW,6CAEvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,GAAK,EAC5B,EAAK,IAAI,CAAE,EAAG,EAAI,GAClB,EAAK,IAAI,CAAE,EAAI,EAAG,EAAI,GAExB,OAAO,IAAI,AACb,EAEA,EAAO,SAAS,CAAC,MAAM,CAAG,WACxB,IAAM,EAAM,IAAI,CAAC,MAAM,CACvB,GAAI,EAAM,GAAM,EACd,MAAM,AAAI,WAAW,6CAEvB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,GAAK,EAC5B,EAAK,IAAI,CAAE,EAAG,EAAI,GAClB,EAAK,IAAI,CAAE,EAAI,EAAG,EAAI,GACtB,EAAK,IAAI,CAAE,EAAI,EAAG,EAAI,GACtB,EAAK,IAAI,CAAE,EAAI,EAAG,EAAI,GAExB,OAAO,IAAI,AACb,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,WAC1B,IAAM,EAAS,IAAI,CAAC,MAAM,QAC1B,AAAI,AAAW,IAAX,EAAqB,GACrB,AAAqB,GAArB,UAAU,MAAM,CAAe,EAAU,IAAI,CAAE,EAAG,GAC/C,EAAa,KAAK,CAAC,IAAI,CAAE,UAClC,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,EAAO,SAAS,CAAC,QAAQ,CAE3D,EAAO,SAAS,CAAC,MAAM,CAAG,SAAiB,CAAC,EAC1C,GAAI,CAAC,EAAO,QAAQ,CAAC,GAAI,MAAM,AAAI,UAAU,oCAC7C,AAAI,IAAI,GAAK,GACN,AAA4B,IAA5B,EAAO,OAAO,CAAC,IAAI,CAAE,EAC9B,EAEA,EAAO,SAAS,CAAC,OAAO,CAAG,WACzB,IAAI,EAAM,GACJ,EAAM,EAAQ,iBAAiB,CAGrC,OAFA,EAAM,IAAI,CAAC,QAAQ,CAAC,MAAO,EAAG,GAAK,OAAO,CAAC,UAAW,OAAO,IAAI,GAC7D,IAAI,CAAC,MAAM,CAAG,GAAK,CAAA,GAAO,OAA9B,EACO,WAAa,EAAM,GAC5B,EACI,GACF,CAAA,EAAO,SAAS,CAAC,EAAoB,CAAG,EAAO,SAAS,CAAC,OAAO,AAAP,EAG3D,EAAO,SAAS,CAAC,OAAO,CAAG,SAAkB,CAAM,CAAE,CAAK,CAAE,CAAG,CAAE,CAAS,CAAE,CAAO,EAIjF,GAHI,EAAW,EAAQ,aACrB,CAAA,EAAS,EAAO,IAAI,CAAC,EAAQ,EAAO,MAAM,CAAE,EAAO,UAAU,CAAA,EAE3D,CAAC,EAAO,QAAQ,CAAC,GACnB,MAAM,AAAI,UACR,iFACoB,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAY,AAAZ,EAAO,EAAA,GAiB/B,GAbc,KAAA,IAAV,GACF,CAAA,EAAQ,CAAA,EAEE,KAAA,IAAR,GACF,CAAA,EAAM,EAAS,EAAO,MAAM,CAAG,CAAA,EAEf,KAAA,IAAd,GACF,CAAA,EAAY,CAAA,EAEE,KAAA,IAAZ,GACF,CAAA,EAAU,IAAI,CAAC,MAAM,AAAN,EAGb,EAAQ,GAAK,EAAM,EAAO,MAAM,EAAI,EAAY,GAAK,EAAU,IAAI,CAAC,MAAM,CAC5E,MAAM,AAAI,WAAW,sBAGvB,GAAI,GAAa,GAAW,GAAS,EACnC,OAAO,EAET,GAAI,GAAa,EACf,OAAO,GAET,GAAI,GAAS,EACX,OAAO,EAQT,GALA,KAAW,EACX,KAAS,EACT,KAAe,EACf,KAAa,EAET,IAAI,GAAK,EAAQ,OAAO,EAS5B,IAAK,IAPD,EAAI,EAAU,EACd,EAAI,EAAM,EACR,EAAM,KAAK,GAAG,CAAC,EAAG,GAElB,EAAW,IAAI,CAAC,KAAK,CAAC,EAAW,GACjC,EAAa,EAAO,KAAK,CAAC,EAAO,GAE9B,EAAI,EAAG,EAAI,EAAK,EAAE,EACzB,GAAI,CAAQ,CAAC,EAAE,GAAK,CAAU,CAAC,EAAE,CAAE,CACjC,EAAI,CAAQ,CAAC,EAAE,CACf,EAAI,CAAU,CAAC,EAAE,CACjB,KACF,QAGF,AAAI,EAAI,EAAU,GACd,EAAI,EAAU,EACX,CACT,EA2HA,EAAO,SAAS,CAAC,QAAQ,CAAG,SAAmB,CAAG,CAAE,CAAU,CAAE,CAAQ,EACtE,OAAO,AAA4C,KAA5C,IAAI,CAAC,OAAO,CAAC,EAAK,EAAY,EACvC,EAEA,EAAO,SAAS,CAAC,OAAO,CAAG,SAAkB,CAAG,CAAE,CAAU,CAAE,CAAQ,EACpE,OAAO,EAAqB,IAAI,CAAE,EAAK,EAAY,EAAU,CAAA,EAC/D,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAG,CAAE,CAAU,CAAE,CAAQ,EAC5E,OAAO,EAAqB,IAAI,CAAE,EAAK,EAAY,EAAU,CAAA,EAC/D,EA4CA,EAAO,SAAS,CAAC,KAAK,CAAG,SAAgB,CAAM,CAAE,CAAM,CAAE,CAAM,CAAE,CAAQ,EAEvE,GAAI,AAAW,KAAA,IAAX,EACF,EAAW,OACX,EAAS,IAAI,CAAC,MAAM,CACpB,EAAS,OAEJ,GAAI,AAAW,KAAA,IAAX,GAAwB,AAAkB,UAAlB,OAAO,EACxC,EAAW,EACX,EAAS,IAAI,CAAC,MAAM,CACpB,EAAS,OAEJ,GAAI,SAAS,GAClB,KAAoB,EAChB,SAAS,IACX,KAAoB,EACH,KAAA,IAAb,GAAwB,CAAA,EAAW,MAAvC,IAEA,EAAW,EACX,EAAS,KAAA,QAGX,MAAM,AAAI,MACR,2EAIJ,IA3C+B,EAAQ,EAIP,EAAQ,EAIP,EAAQ,EAIV,EAAQ,EA+BjC,EAAY,IAAI,CAAC,MAAM,CAAG,EAGhC,GAFI,CAAA,AAAW,KAAA,IAAX,GAAwB,EAAS,CAAA,GAAW,CAAA,EAAS,CAAzD,EAEK,EAAO,MAAM,CAAG,GAAM,CAAA,EAAS,GAAK,EAAS,CAAA,GAAO,EAAS,IAAI,CAAC,MAAM,CAC3E,MAAM,AAAI,WAAW,0CAGlB,GAAU,CAAA,EAAW,MAA1B,EAGA,IADA,IAAI,EAAc,CAAA,IAEhB,OAAQ,GACN,IAAK,MACH,OAAO,AAlFf,SAAmB,CAAG,CAAE,CAAM,CAAE,CAAM,CAAE,CAAM,EAC5C,EAAS,OAAO,IAAW,EAC3B,IAeI,EAfE,EAAY,EAAI,MAAM,CAAG,EAC1B,EAGH,CAAA,EAAS,OAAO,EAAhB,EACa,GACX,CAAA,EAAS,CADX,EAHA,EAAS,EAQX,IAAM,EAAS,EAAO,MAAM,CAM5B,IAJI,EAAS,EAAS,GACpB,CAAA,EAAS,EAAS,CAAA,EAGf,EAAI,EAAG,EAAI,EAAQ,EAAE,EAAG,CAC3B,IAAM,EAAS,SAAS,EAAO,MAAM,CAAC,AAAI,EAAJ,EAAO,GAAI,IACjD,GAotCK,AAptCW,GAAA,EAAS,KACzB,CAAA,CAAG,CAAC,EAAS,EAAE,CAAG,CACpB,CACA,OAAO,CACT,EA0DwB,IAAI,CAAE,EAAQ,EAAQ,EAExC,KAAK,OACL,IAAK,QACH,OA5DyB,EA4DM,EA5DE,EA4DM,EA3DtC,EAAW,EA2DW,EA3DS,AA2Df,IAAI,CA3De,MAAM,CAAG,GA2D5B,IAAI,CA3DsC,EAAQ,EA6DrE,KAAK,QACL,IAAK,SACL,IAAK,SACH,OA7D0B,EA6DM,EA7DE,EA6DM,EA5DvC,EAAW,AAypCpB,SAAuB,CAAG,EAExB,IAAK,IADC,EAAY,EAAE,CACX,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,EAAE,EAEhC,EAAU,IAAI,CAAC,AAAoB,IAApB,EAAI,UAAU,CAAC,IAEhC,OAAO,CACT,EApmCgC,GAAN,IAAI,CA5DiB,EAAQ,EA8DjD,KAAK,SAEH,OA7D2B,EA6DM,EA7DE,EA6DM,EA5DxC,EAAW,EA4Da,GAAN,IAAI,CA5DiB,EAAQ,EA8DlD,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OA/DyB,EA+DM,EA/DE,EA+DM,EA9DtC,EAAW,AA0pCpB,SAAyB,CAAG,CAAE,CAAK,EAGjC,IAAK,IAFD,EAAG,EACD,EAAY,EAAE,CACX,EAAI,EACX,AADc,EAAI,EAAI,MAAM,GACvB,CAAA,AAAA,CAAA,GAAS,CAAA,EAAK,CAAA,EADW,EAAE,EAIhC,EAAK,AADL,CAAA,EAAI,EAAI,UAAU,CAAC,EAAnB,GACU,EAEV,EAAU,IAAI,CADT,EAAI,KAET,EAAU,IAAI,CAAC,GAGjB,OAAO,CACT,EA1mC+B,EA9DY,AA8DlB,IAAI,CA9DkB,MAAM,CAAG,GA8D/B,IAAI,CA9DyC,EAAQ,EAgExE,SACE,GAAI,EAAa,MAAM,AAAI,UAAU,qBAAuB,GAC5D,EAAY,AAAA,CAAA,GAAK,CAAA,EAAU,WAAW,GACtC,EAAc,CAAA,CAClB,CAEJ,EAEA,EAAO,SAAS,CAAC,MAAM,CAAG,WACxB,MAAO,CACL,KAAM,SACN,KAAM,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAI,IAAI,CAAE,EACtD,CACF,EAwJA,EAAO,SAAS,CAAC,KAAK,CAAG,SAAgB,CAAK,CAAE,CAAG,EACjD,IAAM,EAAM,IAAI,CAAC,MAAM,CACvB,EAAQ,CAAC,CAAC,EACV,EAAM,AAAQ,KAAA,IAAR,EAAoB,EAAM,CAAC,CAAC,EAE9B,EAAQ,EACV,CAAA,GAAS,CAAT,EACY,GAAG,CAAA,EAAQ,CAAA,EACd,EAAQ,GACjB,CAAA,EAAQ,CADV,EAII,EAAM,EACR,CAAA,GAAO,CAAP,EACU,GAAG,CAAA,EAAM,CAAA,EACV,EAAM,GACf,CAAA,EAAM,CADR,EAII,EAAM,GAAO,CAAA,EAAM,CAAvB,EAEA,IAAM,EAAS,IAAI,CAAC,QAAQ,CAAC,EAAO,GAIpC,OAFA,OAAO,cAAc,CAAC,EAAQ,EAAO,SAAS,EAEvC,CACT,EAUA,EAAO,SAAS,CAAC,UAAU,CAC3B,EAAO,SAAS,CAAC,UAAU,CAAG,SAAqB,CAAM,CAAE,CAAU,CAAE,CAAQ,EAC7E,KAAoB,EACpB,KAA4B,EACvB,GAAU,EAAY,EAAQ,EAAY,IAAI,CAAC,MAAM,EAK1D,IAHA,IAAI,EAAM,IAAI,CAAC,EAAO,CAClB,EAAM,EACN,EAAI,EACD,EAAE,EAAI,GAAe,CAAA,GAAO,GAAA,GACjC,GAAO,IAAI,CAAC,EAAS,EAAE,CAAG,EAG5B,OAAO,CACT,EAEA,EAAO,SAAS,CAAC,UAAU,CAC3B,EAAO,SAAS,CAAC,UAAU,CAAG,SAAqB,CAAM,CAAE,CAAU,CAAE,CAAQ,EAC7E,KAAoB,EACpB,KAA4B,EACvB,GACH,EAAY,EAAQ,EAAY,IAAI,CAAC,MAAM,EAK7C,IAFA,IAAI,EAAM,IAAI,CAAC,EAAS,EAAE,EAAW,CACjC,EAAM,EACH,EAAa,GAAM,CAAA,GAAO,GAAA,GAC/B,GAAO,IAAI,CAAC,EAAS,EAAE,EAAW,CAAG,EAGvC,OAAO,CACT,EAEA,EAAO,SAAS,CAAC,SAAS,CAC1B,EAAO,SAAS,CAAC,SAAS,CAAG,SAAoB,CAAM,CAAE,CAAQ,EAG/D,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,IAAI,CAAC,EAAO,AACrB,EAEA,EAAO,SAAS,CAAC,YAAY,CAC7B,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAGrE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,IAAI,CAAC,EAAO,CAAI,IAAI,CAAC,EAAS,EAAE,EAAI,CAC7C,EAEA,EAAO,SAAS,CAAC,YAAY,CAC7B,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAGrE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,IAAK,CAAC,EAAO,EAAI,EAAK,IAAI,CAAC,EAAS,EAAE,AAC/C,EAEA,EAAO,SAAS,CAAC,YAAY,CAC7B,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAIrE,OAHA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAE1C,AAAC,CAAA,IAAK,CAAC,EAAO,CAChB,IAAI,CAAC,EAAS,EAAE,EAAI,EACpB,IAAI,CAAC,EAAS,EAAE,EAAI,EAAA,EACpB,AAAmB,UAAnB,IAAI,CAAC,EAAS,EAAE,AACvB,EAEA,EAAO,SAAS,CAAC,YAAY,CAC7B,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAIrE,OAHA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAE1C,AAAgB,UAAhB,IAAK,CAAC,EAAO,CACjB,CAAA,IAAK,CAAC,EAAS,EAAE,EAAI,GACrB,IAAI,CAAC,EAAS,EAAE,EAAI,EACrB,IAAI,CAAC,EAAS,EAAC,AAAD,CAClB,EAEA,EAAO,SAAS,CAAC,eAAe,CAAG,EAAmB,SAA0B,CAAM,EAEpF,EADA,KAAoB,EACG,UACvB,IAAM,EAAQ,IAAI,CAAC,EAAO,CACpB,EAAO,IAAI,CAAC,EAAS,EAAE,CACzB,CAAA,AAAU,KAAA,IAAV,GAAuB,AAAS,KAAA,IAAT,CAAS,GAClC,EAAY,EAAQ,IAAI,CAAC,MAAM,CAAG,GAGpC,IAAM,EAAK,EACT,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,UAAjB,IAAI,CAAC,EAAE,EAAO,CAEV,EAAK,IAAI,CAAC,EAAE,EAAO,CACvB,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAO,UAAP,EAEF,OAAO,OAAO,GAAO,CAAA,OAAO,IAAO,OAAO,GAAA,CAC5C,GAEA,EAAO,SAAS,CAAC,eAAe,CAAG,EAAmB,SAA0B,CAAM,EAEpF,EADA,KAAoB,EACG,UACvB,IAAM,EAAQ,IAAI,CAAC,EAAO,CACpB,EAAO,IAAI,CAAC,EAAS,EAAE,CACzB,CAAA,AAAU,KAAA,IAAV,GAAuB,AAAS,KAAA,IAAT,CAAS,GAClC,EAAY,EAAQ,IAAI,CAAC,MAAM,CAAG,GAGpC,IAAM,EAAK,AAAQ,UAAR,EACT,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,IAAI,CAAC,EAAE,EAAO,CAEV,EAAK,AAAiB,UAAjB,IAAI,CAAC,EAAE,EAAO,CACvB,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,EAEF,MAAQ,AAAA,CAAA,OAAO,IAAO,OAAO,GAAA,EAAO,OAAO,EAC7C,GAEA,EAAO,SAAS,CAAC,SAAS,CAAG,SAAoB,CAAM,CAAE,CAAU,CAAE,CAAQ,EAC3E,KAAoB,EACpB,KAA4B,EACvB,GAAU,EAAY,EAAQ,EAAY,IAAI,CAAC,MAAM,EAK1D,IAHA,IAAI,EAAM,IAAI,CAAC,EAAO,CAClB,EAAM,EACN,EAAI,EACD,EAAE,EAAI,GAAe,CAAA,GAAO,GAAA,GACjC,GAAO,IAAI,CAAC,EAAS,EAAE,CAAG,EAM5B,OAFI,GAFJ,CAAA,GAAO,GAAP,GAEgB,CAAA,GAAO,KAAK,GAAG,CAAC,EAAG,EAAI,EAAvC,EAEO,CACT,EAEA,EAAO,SAAS,CAAC,SAAS,CAAG,SAAoB,CAAM,CAAE,CAAU,CAAE,CAAQ,EAC3E,KAAoB,EACpB,KAA4B,EACvB,GAAU,EAAY,EAAQ,EAAY,IAAI,CAAC,MAAM,EAK1D,IAHA,IAAI,EAAI,EACJ,EAAM,EACN,EAAM,IAAI,CAAC,EAAS,EAAE,EAAE,CACrB,EAAI,GAAM,CAAA,GAAO,GAAA,GACtB,GAAO,IAAI,CAAC,EAAS,EAAE,EAAE,CAAG,EAM9B,OAFI,GAFJ,CAAA,GAAO,GAAP,GAEgB,CAAA,GAAO,KAAK,GAAG,CAAC,EAAG,EAAI,EAAvC,EAEO,CACT,EAEA,EAAO,SAAS,CAAC,QAAQ,CAAG,SAAmB,CAAM,CAAE,CAAQ,QAG7D,CAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC3C,AAAe,IAAf,IAAI,CAAC,EAAO,EACT,CAAA,CAAA,AAAA,CAAA,IAAO,IAAI,CAAC,EAAO,CAAG,CAAA,EAAK,CAApC,EADoC,IAAI,CAAC,EAAO,AAElD,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EACnE,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EACjD,IAAM,EAAM,IAAI,CAAC,EAAO,CAAI,IAAI,CAAC,EAAS,EAAE,EAAI,EAChD,OAAO,AAAO,MAAP,EAAiB,AAAM,WAAN,EAAmB,CAC7C,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EACnE,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EACjD,IAAM,EAAM,IAAI,CAAC,EAAS,EAAE,CAAI,IAAI,CAAC,EAAO,EAAI,EAChD,OAAO,AAAO,MAAP,EAAiB,AAAM,WAAN,EAAmB,CAC7C,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EAInE,OAHA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAE1C,IAAK,CAAC,EAAO,CACjB,IAAI,CAAC,EAAS,EAAE,EAAI,EACpB,IAAI,CAAC,EAAS,EAAE,EAAI,GACpB,IAAI,CAAC,EAAS,EAAE,EAAI,EACzB,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EAInE,OAHA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAE1C,IAAK,CAAC,EAAO,EAAI,GACrB,IAAI,CAAC,EAAS,EAAE,EAAI,GACpB,IAAI,CAAC,EAAS,EAAE,EAAI,EACpB,IAAI,CAAC,EAAS,EAAE,AACrB,EAEA,EAAO,SAAS,CAAC,cAAc,CAAG,EAAmB,SAAyB,CAAM,EAElF,EADA,KAAoB,EACG,UACvB,IAAM,EAAQ,IAAI,CAAC,EAAO,CACpB,EAAO,IAAI,CAAC,EAAS,EAAE,CAU7B,MATI,CAAA,AAAU,KAAA,IAAV,GAAuB,AAAS,KAAA,IAAT,CAAS,GAClC,EAAY,EAAQ,IAAI,CAAC,MAAM,CAAG,GAQ5B,AAAA,CAAA,OALI,IAAI,CAAC,EAAS,EAAE,CAC1B,AAAmB,IAAnB,IAAI,CAAC,EAAS,EAAE,CAChB,AAAmB,MAAnB,IAAI,CAAC,EAAS,EAAE,CACf,CAAA,GAAQ,EAAA,IAEY,OAAO,GAAA,EAC5B,OAAO,EACP,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,UAAjB,IAAI,CAAC,EAAE,EAAO,CAClB,GAEA,EAAO,SAAS,CAAC,cAAc,CAAG,EAAmB,SAAyB,CAAM,EAElF,EADA,KAAoB,EACG,UACvB,IAAM,EAAQ,IAAI,CAAC,EAAO,CACpB,EAAO,IAAI,CAAC,EAAS,EAAE,CAU7B,MATI,CAAA,AAAU,KAAA,IAAV,GAAuB,AAAS,KAAA,IAAT,CAAS,GAClC,EAAY,EAAQ,IAAI,CAAC,MAAM,CAAG,GAQ5B,AAAA,CAAA,OALI,AAAC,CAAA,GAAS,EAAA,EACpB,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,IAAI,CAAC,EAAE,EAAO,GAEO,OAAO,GAAA,EAC5B,OAAO,AAAiB,UAAjB,IAAI,CAAC,EAAE,EAAO,CACrB,AAAiB,MAAjB,IAAI,CAAC,EAAE,EAAO,CACd,AAAiB,IAAjB,IAAI,CAAC,EAAE,EAAO,CACd,EACJ,GAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EAGnE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,EAAQ,IAAI,CAAC,IAAI,CAAE,EAAQ,CAAA,EAAM,GAAI,EAC9C,EAEA,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAM,CAAE,CAAQ,EAGnE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,EAAQ,IAAI,CAAC,IAAI,CAAE,EAAQ,CAAA,EAAO,GAAI,EAC/C,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAGrE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,EAAQ,IAAI,CAAC,IAAI,CAAE,EAAQ,CAAA,EAAM,GAAI,EAC9C,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAM,CAAE,CAAQ,EAGrE,OAFA,KAAoB,EACf,GAAU,EAAY,EAAQ,EAAG,IAAI,CAAC,MAAM,EAC1C,EAAQ,IAAI,CAAC,IAAI,CAAE,EAAQ,CAAA,EAAO,GAAI,EAC/C,EAQA,EAAO,SAAS,CAAC,WAAW,CAC5B,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAK,CAAE,CAAM,CAAE,CAAU,CAAE,CAAQ,EAItF,GAHA,EAAQ,CAAC,EACT,KAAoB,EACpB,KAA4B,EACxB,CAAC,EAAU,CACb,IAAM,EAAW,KAAK,GAAG,CAAC,EAAG,EAAI,GAAc,EAC/C,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAY,EAAU,EACtD,CAEA,IAAI,EAAM,EACN,EAAI,EAER,IADA,IAAI,CAAC,EAAO,CAAG,AAAQ,IAAR,EACR,EAAE,EAAI,GAAe,CAAA,GAAO,GAAA,GACjC,IAAI,CAAC,EAAS,EAAE,CAAG,EAAS,EAAO,IAGrC,OAAO,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,WAAW,CAC5B,EAAO,SAAS,CAAC,WAAW,CAAG,SAAsB,CAAK,CAAE,CAAM,CAAE,CAAU,CAAE,CAAQ,EAItF,GAHA,EAAQ,CAAC,EACT,KAAoB,EACpB,KAA4B,EACxB,CAAC,EAAU,CACb,IAAM,EAAW,KAAK,GAAG,CAAC,EAAG,EAAI,GAAc,EAC/C,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAY,EAAU,EACtD,CAEA,IAAI,EAAI,EAAa,EACjB,EAAM,EAEV,IADA,IAAI,CAAC,EAAS,EAAE,CAAG,AAAQ,IAAR,EACZ,EAAE,GAAK,GAAM,CAAA,GAAO,GAAA,GACzB,IAAI,CAAC,EAAS,EAAE,CAAG,EAAS,EAAO,IAGrC,OAAO,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,UAAU,CAC3B,EAAO,SAAS,CAAC,UAAU,CAAG,SAAqB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAKxE,OAJA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,IAAM,GACtD,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EACT,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,aAAa,CAC9B,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAM9E,OALA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,MAAQ,GACxD,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EAChB,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EACvB,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,aAAa,CAC9B,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAM9E,OALA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,MAAQ,GACxD,IAAI,CAAC,EAAO,CAAI,IAAU,EAC1B,IAAI,CAAC,EAAS,EAAE,CAAI,AAAQ,IAAR,EACb,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,aAAa,CAC9B,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAQ9E,OAPA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,WAAY,GAC5D,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EAC9B,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EACT,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,aAAa,CAC9B,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAQ9E,OAPA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,WAAY,GAC5D,IAAI,CAAC,EAAO,CAAI,IAAU,GAC1B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,AAAQ,IAAR,EACb,EAAS,CAClB,EA8CA,EAAO,SAAS,CAAC,gBAAgB,CAAG,EAAmB,SAA2B,CAAK,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,EAChG,OAAO,EAAe,IAAI,CAAE,EAAO,EAAQ,OAAO,GAAI,OAAO,sBAC/D,GAEA,EAAO,SAAS,CAAC,gBAAgB,CAAG,EAAmB,SAA2B,CAAK,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,EAChG,OAAO,EAAe,IAAI,CAAE,EAAO,EAAQ,OAAO,GAAI,OAAO,sBAC/D,GAEA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAqB,CAAK,CAAE,CAAM,CAAE,CAAU,CAAE,CAAQ,EAGpF,GAFA,EAAQ,CAAC,EACT,KAAoB,EAChB,CAAC,EAAU,CACb,IAAM,EAAQ,KAAK,GAAG,CAAC,EAAI,EAAI,EAAc,GAE7C,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAY,EAAQ,EAAG,CAAC,EACxD,CAEA,IAAI,EAAI,EACJ,EAAM,EACN,EAAM,EAEV,IADA,IAAI,CAAC,EAAO,CAAG,AAAQ,IAAR,EACR,EAAE,EAAI,GAAe,CAAA,GAAO,GAAA,GAC7B,EAAQ,GAAK,AAAQ,IAAR,GAAa,AAAyB,IAAzB,IAAI,CAAC,EAAS,EAAI,EAAE,EAChD,CAAA,EAAM,CAAA,EAER,IAAI,CAAC,EAAS,EAAE,CAAG,AAAC,CAAA,EAAS,GAAQ,CAAA,EAAK,EAAM,IAGlD,OAAO,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,UAAU,CAAG,SAAqB,CAAK,CAAE,CAAM,CAAE,CAAU,CAAE,CAAQ,EAGpF,GAFA,EAAQ,CAAC,EACT,KAAoB,EAChB,CAAC,EAAU,CACb,IAAM,EAAQ,KAAK,GAAG,CAAC,EAAI,EAAI,EAAc,GAE7C,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAY,EAAQ,EAAG,CAAC,EACxD,CAEA,IAAI,EAAI,EAAa,EACjB,EAAM,EACN,EAAM,EAEV,IADA,IAAI,CAAC,EAAS,EAAE,CAAG,AAAQ,IAAR,EACZ,EAAE,GAAK,GAAM,CAAA,GAAO,GAAA,GACrB,EAAQ,GAAK,AAAQ,IAAR,GAAa,AAAyB,IAAzB,IAAI,CAAC,EAAS,EAAI,EAAE,EAChD,CAAA,EAAM,CAAA,EAER,IAAI,CAAC,EAAS,EAAE,CAAG,AAAC,CAAA,EAAS,GAAQ,CAAA,EAAK,EAAM,IAGlD,OAAO,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,SAAS,CAAG,SAAoB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAMtE,OALA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,IAAM,MAClD,EAAQ,GAAG,CAAA,EAAQ,IAAO,EAAQ,CAAA,EACtC,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EACT,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAM5E,OALA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,MAAQ,QACxD,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EAChB,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EACvB,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAM5E,OALA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,MAAQ,QACxD,IAAI,CAAC,EAAO,CAAI,IAAU,EAC1B,IAAI,CAAC,EAAS,EAAE,CAAI,AAAQ,IAAR,EACb,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAQ5E,OAPA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,WAAY,aAC5D,IAAI,CAAC,EAAO,CAAI,AAAQ,IAAR,EAChB,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GACvB,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAS5E,OARA,EAAQ,CAAC,EACT,KAAoB,EACf,GAAU,EAAS,IAAI,CAAE,EAAO,EAAQ,EAAG,WAAY,aACxD,EAAQ,GAAG,CAAA,EAAQ,WAAa,EAAQ,CAAA,EAC5C,IAAI,CAAC,EAAO,CAAI,IAAU,GAC1B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,GAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,IAAU,EAC9B,IAAI,CAAC,EAAS,EAAE,CAAI,AAAQ,IAAR,EACb,EAAS,CAClB,EAEA,EAAO,SAAS,CAAC,eAAe,CAAG,EAAmB,SAA0B,CAAK,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,EAC9F,OAAO,EAAe,IAAI,CAAE,EAAO,EAAQ,CAAC,OAAO,sBAAuB,OAAO,sBACnF,GAEA,EAAO,SAAS,CAAC,eAAe,CAAG,EAAmB,SAA0B,CAAK,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,EAC9F,OAAO,EAAe,IAAI,CAAE,EAAO,EAAQ,CAAC,OAAO,sBAAuB,OAAO,sBACnF,GAiBA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAC5E,OAAO,EAAW,IAAI,CAAE,EAAO,EAAQ,CAAA,EAAM,EAC/C,EAEA,EAAO,SAAS,CAAC,YAAY,CAAG,SAAuB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAC5E,OAAO,EAAW,IAAI,CAAE,EAAO,EAAQ,CAAA,EAAO,EAChD,EAYA,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAC9E,OAAO,EAAY,IAAI,CAAE,EAAO,EAAQ,CAAA,EAAM,EAChD,EAEA,EAAO,SAAS,CAAC,aAAa,CAAG,SAAwB,CAAK,CAAE,CAAM,CAAE,CAAQ,EAC9E,OAAO,EAAY,IAAI,CAAE,EAAO,EAAQ,CAAA,EAAO,EACjD,EAGA,EAAO,SAAS,CAAC,IAAI,CAAG,SAAe,CAAM,CAAE,CAAW,CAAE,CAAK,CAAE,CAAG,EACpE,GAAI,CAAC,EAAO,QAAQ,CAAC,GAAS,MAAM,AAAI,UAAU,+BAQlD,GAPK,GAAO,CAAA,EAAQ,CAAA,EACf,GAAO,AAAQ,IAAR,GAAW,CAAA,EAAM,IAAI,CAAC,MAAM,AAAN,EAC9B,GAAe,EAAO,MAAM,EAAE,CAAA,EAAc,EAAO,MAAM,AAAN,EAClD,GAAa,CAAA,EAAc,CAAA,EAC5B,EAAM,GAAK,EAAM,GAAO,CAAA,EAAM,CAAlC,EAGI,IAAQ,GACR,AAAkB,IAAlB,EAAO,MAAM,EAAU,AAAgB,IAAhB,IAAI,CAAC,MAAM,CADnB,OAAO,EAI1B,GAAI,EAAc,EAChB,MAAM,AAAI,WAAW,6BAEvB,GAAI,EAAQ,GAAK,GAAS,IAAI,CAAC,MAAM,CAAE,MAAM,AAAI,WAAW,sBAC5D,GAAI,EAAM,EAAG,MAAM,AAAI,WAAW,2BAG9B,EAAM,IAAI,CAAC,MAAM,EAAE,CAAA,EAAM,IAAI,CAAC,MAAM,AAAN,EAC9B,EAAO,MAAM,CAAG,EAAc,EAAM,GACtC,CAAA,EAAM,EAAO,MAAM,CAAG,EAAc,CADtC,EAIA,IAAM,EAAM,EAAM,EAalB,OAXI,IAAI,GAAK,GAAU,AAA2C,YAA3C,OAAO,WAAW,SAAS,CAAC,UAAU,CAE3D,IAAI,CAAC,UAAU,CAAC,EAAa,EAAO,GAEpC,WAAW,SAAS,CAAC,GAAG,CAAC,IAAI,CAC3B,EACA,IAAI,CAAC,QAAQ,CAAC,EAAO,GACrB,GAIG,CACT,EAMA,EAAO,SAAS,CAAC,IAAI,CAAG,SAAe,CAAG,CAAE,CAAK,CAAE,CAAG,CAAE,CAAQ,EAE9D,GAAI,AAAe,UAAf,OAAO,EAAkB,CAS3B,GARI,AAAiB,UAAjB,OAAO,GACT,EAAW,EACX,EAAQ,EACR,EAAM,IAAI,CAAC,MAAM,EACO,UAAf,OAAO,IAChB,EAAW,EACX,EAAM,IAAI,CAAC,MAAM,EAEf,AAAa,KAAA,IAAb,GAA0B,AAAoB,UAApB,OAAO,EACnC,MAAM,AAAI,UAAU,6BAEtB,GAAI,AAAoB,UAApB,OAAO,GAAyB,CAAC,EAAO,UAAU,CAAC,GACrD,MAAM,AAAI,UAAU,qBAAuB,GAE7C,GAAI,AAAe,IAAf,EAAI,MAAM,CAAQ,CACpB,IA2BA,EA3BM,EAAO,EAAI,UAAU,CAAC,GACvB,CAAA,AAAa,SAAb,GAAuB,EAAO,KAC/B,AAAa,WAAb,CAAa,GAEf,CAAA,EAAM,CAAN,CAEJ,CACF,KAAW,AAAe,UAAf,OAAO,EAChB,GAAY,IACY,WAAf,OAAO,GAChB,CAAA,EAAM,OAAO,EADR,EAKP,GAAI,EAAQ,GAAK,IAAI,CAAC,MAAM,CAAG,GAAS,IAAI,CAAC,MAAM,CAAG,EACpD,MAAM,AAAI,WAAW,sBAGvB,GAAI,GAAO,EACT,OAAO,IAAI,CASb,GANA,KAAkB,EAClB,EAAM,AAAQ,KAAA,IAAR,EAAoB,IAAI,CAAC,MAAM,CAAG,IAAQ,EAE3C,GAAK,CAAA,EAAM,CAAA,EAGZ,AAAe,UAAf,OAAO,EACT,IAAK,EAAI,EAAO,EAAI,EAAK,EAAE,EACzB,IAAI,CAAC,EAAE,CAAG,MAEP,CACL,IAAM,EAAQ,EAAO,QAAQ,CAAC,GAC1B,EACA,EAAO,IAAI,CAAC,EAAK,GACf,EAAM,EAAM,MAAM,CACxB,GAAI,AAAQ,IAAR,EACF,MAAM,AAAI,UAAU,cAAgB,EAClC,qCAEJ,IAAK,EAAI,EAAG,EAAI,EAAM,EAAO,EAAE,EAC7B,IAAI,CAAC,EAAI,EAAM,CAAG,CAAK,CAAC,EAAI,EAAI,AAEpC,CAEA,OAAO,IAAI,AACb,EAMA,IAAM,EAAS,CAAC,EAChB,SAAS,EAAG,CAAG,CAAE,CAAU,CAAE,CAAI,EAC/B,CAAM,CAAC,EAAI,CAAA,WAAA,EAAG,SAAd,CAAA,E,A,C,E,E,C,A,E,E,G,I,E,A,C,E,E,C,A,E,GAAoB,SAAA,Q,E,M,A,C,E,E,C,A,E,I,C,G,E,E,I,C,I,EAIhB,OAAO,cAAc,CAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAO,UAAW,CACrC,MAAO,EAAW,KAAK,CAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAO,WAC9B,SAAU,CAAA,EACV,aAAc,CAAA,CAChB,GAGA,EAAK,IAAI,CAAG,GAAiB,MAAA,CAAd,EAAK,IAAI,CAAC,MAAQ,MAAA,CAAJ,EAAI,KAGjC,EAAK,KAAK,CAEV,OAAO,EAAK,IAAI,C,C,C,M,A,C,E,E,C,A,E,E,C,CAGd,IAAA,OAAJ,IAAA,WACE,OAAO,CACT,EAEA,IAAA,SAAU,CAAK,EACb,OAAO,cAAc,CAAC,IAAI,CAAE,OAAQ,CAClC,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,MAAA,EACA,SAAU,CAAA,CACZ,EACF,C,E,CAEA,IAAA,WAAA,MAAA,WACE,MAAQ,GAAgB,MAAA,CAAd,IAAI,CAAC,IAAI,CAAC,MAAa,MAAA,CAAT,EAAI,OAAkB,MAAA,CAAb,IAAI,CAAC,OAAO,CAC/C,C,E,E,CAlCoC,EAAA,EAoCxC,CA+BA,SAAS,EAAuB,CAAG,EAIjC,IAHA,IAAI,EAAM,GACN,EAAI,EAAI,MAAM,CACZ,EAAQ,AAAW,MAAX,CAAG,CAAC,EAAE,CAAW,EAAI,EAC5B,GAAK,EAAQ,EAAG,GAAK,EAC1B,EAAM,IAA0B,MAAA,CAAtB,EAAI,KAAK,CAAC,EAAI,EAAG,IAAS,MAAA,CAAJ,GAElC,MAAQ,GAAoB,MAAA,CAAlB,EAAI,KAAK,CAAC,EAAG,IAAS,MAAA,CAAJ,EAC9B,CAYA,SAAS,EAAY,CAAK,CAAE,CAAG,CAAE,CAAG,CAAE,CAAG,CAAE,CAAM,CAAE,CAAU,EAC3D,GAAI,EAAQ,GAAO,EAAQ,EAAK,CAC9B,IACI,EADE,EAAI,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAS,AAAT,EAAO,EAAA,IAAQ,SAAW,IAAM,EAY1C,OARI,EAFA,EAAa,EACX,AAAQ,IAAR,GAAa,IAAQ,OAAO,GACrB,OAAkB,MAAA,CAAZ,EAAE,YAAkB,MAAA,CAAR,EAAE,QAA6B,MAAA,CAAtB,AAAA,CAAA,EAAa,CAAA,EAAK,GAAM,MAAA,CAAF,GAElD,SAAiB,MAAA,CAAR,EAAE,QAAiC,MAAA,CAA3B,AAAC,CAAA,EAAa,CAAA,EAAK,EAAI,GAAM,MAAA,CAAF,EAAE,iBAC7C,GAA6B,MAAA,CAA3B,AAAC,CAAA,EAAa,CAAA,EAAK,EAAI,GAAM,MAAA,CAAF,GAGhC,MAAY,MAAA,CAAN,GAAkB,MAAA,CAAZ,EAAE,YAAgB,MAAA,CAAN,GAAQ,MAAA,CAAF,GAElC,IAAI,EAAO,gBAAgB,CAAC,QAAS,EAAO,EACpD,CArBA,EAsBiB,EAtBM,UACnB,CAAA,AAAgB,KAAA,IAAhB,AAqBQ,CArBL,CAqBU,EArBF,EAAkB,AAA6B,KAAA,IAA7B,AAqBrB,CArBwB,CAAC,AAqBpB,EAAQ,EArBgC,AAAK,GAC5D,EAoBe,EApBK,AAoBV,EApBc,MAAM,CAAI,CAAA,AAoBX,EApBwB,CAAA,EAqBnD,CAEA,SAAS,EAAgB,CAAK,CAAE,CAAI,EAClC,GAAI,AAAiB,UAAjB,OAAO,EACT,MAAM,IAAI,EAAO,oBAAoB,CAAC,EAAM,SAAU,EAE1D,CAEA,SAAS,EAAa,CAAK,CAAE,CAAM,CAAE,CAAI,EACvC,GAAI,KAAK,KAAK,CAAC,KAAW,EAExB,MADA,EAAe,EAAO,GAChB,IAAI,EAAO,gBAAgB,CAAC,GAAQ,SAAU,aAAc,GAGpE,GAAI,EAAS,EACX,MAAM,IAAI,EAAO,wBAAwB,AAG3C,OAAM,IAAI,EAAO,gBAAgB,CAAC,GAAQ,SACP,MAA4B,MAAA,CAAvB,EAAO,EAAI,EAAE,YAAiB,MAAA,CAAP,GAC7B,EACpC,CAvFA,EAAE,2BACA,SAAU,CAAI,SACZ,AAAI,EACM,GAAO,MAAA,CAAL,EAAK,gCAGV,gDACT,EAAG,YACL,EAAE,uBACA,SAAU,CAAI,CAAE,CAAM,EACpB,MAAO,QAAgE,MAAA,CAAxD,EAAK,qDAAiE,MAAA,CAAd,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAY,AAAZ,EAAO,GAChF,EAAG,WACL,EAAE,mBACA,SAAU,CAAG,CAAE,CAAK,CAAE,CAAK,EACzB,IAAI,EAAO,iBAAoB,MAAA,CAAJ,EAAI,sBAC3B,EAAW,EAWf,OAVI,OAAO,SAAS,CAAC,IAAU,KAAK,GAAG,CAAC,GAAS,YAC/C,EAAW,EAAsB,OAAO,IAC/B,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAW,AAAX,EAAO,EAAA,IAAU,WAC1B,EAAW,OAAO,GACd,CAAA,EAAQ,KAAA,GAAA,CAAA,OAAO,GAAM,OAAO,MAAO,EAAQ,CAAE,KAAA,GAAA,CAAA,OAAO,GAAM,OAAO,IAAA,GACnE,CAAA,EAAW,EAAsB,EADnC,EAGA,GAAY,KAEd,GAAQ,eAAiC,MAAA,CAAnB,EAAM,eAAsB,MAAA,CAAT,EAE3C,EAAG,YAiEL,IAAM,EAAoB,oBAgB1B,SAAS,EAAa,CAAM,CAAE,CAAK,EACjC,EAAQ,GAAS,IAMjB,IAAK,IALD,EACE,EAAS,EAAO,MAAM,CACxB,EAAgB,KACd,EAAQ,EAAE,CAEP,EAAI,EAAG,EAAI,EAAQ,EAAE,EAAG,CAI/B,GAAI,AAHJ,CAAA,EAAY,EAAO,UAAU,CAAC,EAA9B,EAGgB,OAAU,EAAY,MAAQ,CAE5C,GAAI,CAAC,EAAe,CAElB,GAAI,EAAY,OAIL,EAAI,IAAM,EAJG,CAEjB,CAAA,GAAS,CAAA,EAAK,IAAI,EAAM,IAAI,CAAC,IAAM,IAAM,KAC9C,QACF,CAOA,EAAgB,EAEhB,QACF,CAGA,GAAI,EAAY,MAAQ,CACjB,CAAA,GAAS,CAAA,EAAK,IAAI,EAAM,IAAI,CAAC,IAAM,IAAM,KAC9C,EAAgB,EAChB,QACF,CAGA,EAAa,AAAA,CAAA,EAAgB,OAAU,GAAK,EAAY,KAAA,EAAU,KACpE,MAAW,GAEL,AAAC,CAAA,GAAS,CAAA,EAAK,IAAI,EAAM,IAAI,CAAC,IAAM,IAAM,KAMhD,GAHA,EAAgB,KAGZ,EAAY,IAAM,CACpB,GAAK,AAAA,CAAA,GAAS,CAAA,EAAK,EAAG,MACtB,EAAM,IAAI,CAAC,EACb,MAAO,GAAI,EAAY,KAAO,CAC5B,GAAK,AAAA,CAAA,GAAS,CAAA,EAAK,EAAG,MACtB,EAAM,IAAI,CACR,GAAa,EAAM,IACnB,AAAY,GAAZ,EAAmB,IAEvB,MAAO,GAAI,EAAY,MAAS,CAC9B,GAAK,AAAA,CAAA,GAAS,CAAA,EAAK,EAAG,MACtB,EAAM,IAAI,CACR,GAAa,GAAM,IACnB,GAAa,EAAM,GAAO,IAC1B,AAAY,GAAZ,EAAmB,IAEvB,MAAO,GAAI,EAAY,QAAU,CAC/B,GAAK,AAAA,CAAA,GAAS,CAAA,EAAK,EAAG,MACtB,EAAM,IAAI,CACR,GAAa,GAAO,IACpB,GAAa,GAAM,GAAO,IAC1B,GAAa,EAAM,GAAO,IAC1B,AAAY,GAAZ,EAAmB,IAEvB,MACE,MAAM,AAAI,MAAM,qBAEpB,CAEA,OAAO,CACT,CA2BA,SAAS,EAAe,CAAG,EACzB,OAAO,EAAO,WAAW,CAAC,AAxH5B,SAAsB,CAAG,EAMvB,GAAI,AAFJ,CAAA,EAAM,AAFN,CAAA,EAAM,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,AAAF,EAEX,IAAI,GAAG,OAAO,CAAC,EAAmB,GAA5C,EAEQ,MAAM,CAAG,EAAG,MAAO,GAE3B,KAAO,EAAI,MAAM,CAAG,GAAM,GACxB,GAAY,IAEd,OAAO,CACT,EA4GwC,GACxC,CAEA,SAAS,EAAY,CAAG,CAAE,CAAG,CAAE,CAAM,CAAE,CAAM,EAC3C,IAAI,EACJ,IAAK,EAAI,EACP,AADU,EAAI,IACV,CAAA,EAAK,GAAU,EAAI,MAAM,AAAN,IAAY,CAAA,GAAK,EAAI,MAAM,AAAN,EADtB,EAAE,EAExB,CAAG,CAAC,EAAI,EAAO,CAAG,CAAG,CAAC,EAAE,CAE1B,OAAO,CACT,CAKA,SAAS,EAAY,CAAG,CAAE,CAAI,EAC5B,OAAO,aAAe,GACnB,AAAO,MAAP,GAAe,AAAmB,MAAnB,EAAI,WAAW,EAAY,AAAwB,MAAxB,EAAI,WAAW,CAAC,IAAI,EAC7D,EAAI,WAAW,CAAC,IAAI,GAAK,EAAK,IAAI,AACxC,CAQA,IAAM,EAAsB,WAG1B,IAAK,IAFC,EAAW,mBACX,EAAQ,AAAI,MAAM,KACf,EAAI,EAAG,EAAI,GAAI,EAAE,EAExB,IAAK,IADC,EAAM,AAAI,GAAJ,EACH,EAAI,EAAG,EAAI,GAAI,EAAE,EACxB,CAAK,CAAC,EAAM,EAAE,CAAG,CAAQ,CAAC,EAAE,CAAG,CAAQ,CAAC,EAAE,CAG9C,OAAO,CACT,IAGA,SAAS,EAAoB,CAAE,EAC7B,MAAO,AAAkB,aAAlB,OAAO,OAAyB,EAAyB,CAClE,CAEA,SAAS,IACP,MAAM,AAAI,MAAM,uBAClB,C,E,C,0C,Q,mC,Q,+B,Q,2B,Q,0B,Q,+B,Q,mB,Q,iB,O,E,C,Q,C,S,C,C,C,C,C,ECvjEA,EAAQ,UAAU,CAuClB,SAAqB,CAAG,EACtB,IAAI,EAAO,EAAQ,GACf,EAAW,CAAI,CAAC,EAAE,CAClB,EAAkB,CAAI,CAAC,EAAE,CAC7B,MAAS,AAAA,CAAA,EAAW,CAAA,EAAmB,EAAI,EAAK,CAClD,EA3CA,EAAQ,WAAW,CAiDnB,SAAsB,CAAG,EAEvB,IADI,EAcA,EAbA,EAAO,EAAQ,GACf,EAAW,CAAI,CAAC,EAAE,CAClB,EAAkB,CAAI,CAAC,EAAE,CAEzB,EAAM,IAAI,EATL,CAAA,AAS0B,EAAU,CATzB,EAAmB,EAAI,EASE,GAEzC,EAAU,EAGV,EAAM,EAAkB,EACxB,EAAW,EACX,EAGJ,IAAK,EAAI,EAAG,EAAI,EAAK,GAAK,EACxB,EACG,CAAS,CAAC,EAAI,UAAU,CAAC,GAAG,EAAI,GAChC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,EAAI,GACpC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,EAAI,EACrC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,CAClC,CAAG,CAAC,IAAU,CAAG,GAAQ,GAAM,IAC/B,CAAG,CAAC,IAAU,CAAG,GAAQ,EAAK,IAC9B,CAAG,CAAC,IAAU,CAAG,AAAM,IAAN,EAmBnB,OAhBwB,IAApB,IACF,EACG,CAAS,CAAC,EAAI,UAAU,CAAC,GAAG,EAAI,EAChC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,EAAI,EACvC,CAAG,CAAC,IAAU,CAAG,AAAM,IAAN,GAGK,IAApB,IACF,EACE,CAAU,CAAC,EAAI,UAAU,CAAC,GAAG,EAAI,GAChC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,EAAI,EACpC,CAAS,CAAC,EAAI,UAAU,CAAC,EAAI,GAAG,EAAI,EACvC,CAAG,CAAC,IAAU,CAAG,GAAQ,EAAK,IAC9B,CAAG,CAAC,IAAU,CAAG,AAAM,IAAN,GAGZ,CACT,EA5FA,EAAQ,aAAa,CAkHrB,SAAwB,CAAK,EAQ3B,IAAK,IAPD,EACA,EAAM,EAAM,MAAM,CAClB,EAAa,EAAM,EACnB,EAAQ,EAAE,CAIL,EAAI,EAAG,EAAO,EAAM,EAAY,EAAI,EAAM,GAH9B,MAInB,EAAM,IAAI,CAAC,AAtBf,SAAsB,CAAK,CAAE,CAAK,CAAE,CAAG,EAGrC,IAAK,IAFD,EACA,EAAS,EAAE,CACN,EAAI,EAAO,EAAI,EAAK,GAAK,EAKhC,EAAO,IAAI,CAdN,CAAM,CAAC,AAUZ,CAAA,EACE,AAAC,CAAA,CAAM,CAAC,EAAE,EAAI,GAAM,QAAA,EAClB,CAAA,CAAK,CAAC,EAAI,EAAE,EAAI,EAAK,KAAA,EACtB,CAAA,AAAe,IAAf,CAAK,CAAC,EAAI,EAAE,AAAG,CAAG,GAbF,GAAK,GAAK,CAC7B,CAAM,CAAC,AAaqB,GAbd,GAAK,GAAK,CACxB,CAAM,CAAC,AAYqB,GAZd,EAAI,GAAK,CACvB,CAAM,CAAC,AAAM,GAWe,EAXV,EAapB,OAAO,EAAO,IAAI,CAAC,GACrB,EAW2B,EAAO,EAAI,EAJf,MAIqC,EAAO,EAAQ,EAJpD,QAyBrB,OAjBI,AAAe,IAAf,EAEF,EAAM,IAAI,CACR,CAAM,CAAC,AAFT,CAAA,EAAM,CAAK,CAAC,EAAM,EAAE,AAAF,GAEF,EAAE,CAChB,CAAM,CAAC,GAAQ,EAAK,GAAK,CACzB,MAEsB,IAAf,GAET,EAAM,IAAI,CACR,CAAM,CAAC,AAFT,CAAA,EAAM,AAAC,CAAA,CAAK,CAAC,EAAM,EAAE,EAAI,CAAA,EAAK,CAAK,CAAC,EAAM,EAAE,AAAF,GAE1B,GAAG,CACjB,CAAM,CAAE,GAAO,EAAK,GAAK,CACzB,CAAM,CAAC,GAAQ,EAAK,GAAK,CACzB,KAIG,EAAM,IAAI,CAAC,GACpB,EA1IA,IAAK,IALD,EAAS,EAAE,CACX,EAAY,EAAE,CACd,EAAM,AAAsB,aAAtB,OAAO,WAA6B,WAAa,MAEvD,EAAO,mEACF,EAAI,EAAG,EAAM,EAAK,MAAM,CAAE,EAAI,EAAK,EAAE,EAC5C,CAAM,CAAC,EAAE,CAAG,CAAI,CAAC,EAAE,CACnB,CAAS,CAAC,EAAK,UAAU,CAAC,GAAG,CAAG,EAQlC,SAAS,EAAS,CAAG,EACnB,IAAI,EAAM,EAAI,MAAM,CAEpB,GAAI,EAAM,EAAI,EACZ,MAAM,AAAI,MAAM,kDAKlB,IAAI,EAAW,EAAI,OAAO,CAAC,IACV,CAAA,KAAb,GAAiB,CAAA,EAAW,CAAhC,EAEA,IAAI,EAAkB,IAAa,EAC/B,EACA,EAAK,EAAW,EAEpB,MAAO,CAAC,EAAU,EAAgB,AACpC,CApBA,CAAS,CAAC,IAAI,UAAU,CAAC,GAAG,CAAG,GAC/B,CAAS,CAAC,IAAI,UAAU,CAAC,GAAG,CAAG,E,E,C,E,C,M,C,S,C,C,C,C,C,ECnB/B,uFAAuF,EACvF,EAAQ,IAAI,CAAG,SAAU,CAAM,CAAE,CAAM,CAAE,CAAI,CAAE,CAAI,CAAE,CAAM,EAEzD,IADI,EAAG,EACH,EAAQ,AAAS,EAAT,EAAc,EAAO,EAC7B,EAAO,AAAC,CAAA,GAAK,CAAA,EAAQ,EACrB,EAAQ,GAAQ,EAChB,EAAQ,GACR,EAAI,EAAQ,EAAS,EAAK,EAC1B,EAAI,EAAO,GAAK,EAChB,EAAI,CAAM,CAAC,EAAS,EAAE,CAO1B,IALA,GAAK,EAEL,EAAI,EAAK,AAAC,CAAA,GAAM,CAAC,CAAA,EAAU,EAC3B,IAAO,CAAC,EACR,GAAS,EACF,EAAQ,EAAG,EAAI,AAAK,IAAL,EAAY,CAAM,CAAC,EAAS,EAAE,CAAE,GAAK,EAAG,GAAS,GAKvE,IAHA,EAAI,EAAK,AAAC,CAAA,GAAM,CAAC,CAAA,EAAU,EAC3B,IAAO,CAAC,EACR,GAAS,EACF,EAAQ,EAAG,EAAI,AAAK,IAAL,EAAY,CAAM,CAAC,EAAS,EAAE,CAAE,GAAK,EAAG,GAAS,GAEvE,GAAI,AAAM,IAAN,EACF,EAAI,EAAI,MAGH,CAFA,GAAI,IAAM,EACf,OAAO,EAAI,IAAO,IAAC,CAAA,EAAI,GAAK,CAAA,EAE5B,GAAQ,KAAK,GAAG,CAAC,EAAG,GACpB,GAAQ,CACV,CACA,MAAO,AAAC,CAAA,EAAI,GAAK,CAAA,EAAK,EAAI,KAAK,GAAG,CAAC,EAAG,EAAI,EAC5C,EAEA,EAAQ,KAAK,CAAG,SAAU,CAAM,CAAE,CAAK,CAAE,CAAM,CAAE,CAAI,CAAE,CAAI,CAAE,CAAM,EAEjE,IADI,EAAG,EAAG,EACN,EAAQ,AAAS,EAAT,EAAc,EAAO,EAC7B,EAAO,AAAC,CAAA,GAAK,CAAA,EAAQ,EACrB,EAAQ,GAAQ,EAChB,EAAM,AAAS,KAAT,EAAc,qBAAsC,EAC1D,EAAI,EAAO,EAAK,EAAS,EACzB,EAAI,EAAO,EAAI,GACf,EAAI,EAAQ,GAAM,AAAU,IAAV,GAAe,EAAI,EAAQ,EAAK,EAAI,EAmC1D,IA/BI,MAFJ,EAAQ,KAAK,GAAG,CAAC,KAEG,IAAU,KAC5B,EAAI,MAAM,GAAS,EAAI,EACvB,EAAI,IAEJ,EAAI,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,GAAS,KAAK,GAAG,EACrC,EAAS,CAAA,EAAI,KAAK,GAAG,CAAC,EAAG,CAAC,EAAA,EAAM,IAClC,IACA,GAAK,GAEH,EAAI,GAAS,EACf,GAAS,EAAK,EAEd,GAAS,EAAK,KAAK,GAAG,CAAC,EAAG,EAAI,GAE5B,EAAQ,GAAK,IACf,IACA,GAAK,GAGH,EAAI,GAAS,GACf,EAAI,EACJ,EAAI,GACK,EAAI,GAAS,GACtB,EAAI,AAAC,CAAA,EAAS,EAAK,CAAA,EAAK,KAAK,GAAG,CAAC,EAAG,GACpC,GAAQ,IAER,EAAI,EAAQ,KAAK,GAAG,CAAC,EAAG,EAAQ,GAAK,KAAK,GAAG,CAAC,EAAG,GACjD,EAAI,IAID,GAAQ,EAAG,CAAM,CAAC,EAAS,EAAE,CAAG,AAAI,IAAJ,EAAU,GAAK,EAAG,GAAK,IAAK,GAAQ,GAI3E,IAFA,EAAK,GAAK,EAAQ,EAClB,GAAQ,EACD,EAAO,EAAG,CAAM,CAAC,EAAS,EAAE,CAAG,AAAI,IAAJ,EAAU,GAAK,EAAG,GAAK,IAAK,GAAQ,GAE1E,CAAM,CAAC,EAAS,EAAI,EAAE,EAAI,AAAI,IAAJ,CAC5B,C,E,C,E,C,M,C,S,C,C,C,C,C,EChFC,IAsBG,EAtBH,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAUY,OAAA,C,G,E,M,C,E,Y,WAGA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,W,WA2DA,OAAA,C,G,E,M,C,E,W,WAQA,OAAA,C,G,E,M,C,E,c,WAQA,OAAA,C,G,E,M,C,E,U,WAUA,OAAA,C,G,E,M,C,E,a,WAQA,OAAA,C,G,E,M,C,E,U,WAWA,OAAA,C,G,E,M,C,E,a,WAIA,OAAA,C,G,E,M,C,E,gB,WAcA,OAAA,C,G,I,E,E,mCAvIb,EAAA,EAAA,YACA,EAAA,EAAA,eACA,EAAA,EAAA,mBACA,EAAA,EAAA,gBACA,EAAA,EAAA,iB,E,E,oBAIa,EAAS,AAAmB,KAAA,IAAZ,GAA2B,EAAQ,OAAO,EAAI,cAAc,IAAI,CAAC,EAAQ,OAAO,CAAC,IAAI,GAAK,AAAiF,qBAAjF,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,AAAmB,KAAA,IAAZ,EAA0B,EAAU,GAGpL,EAAY,AAAkB,aAAlB,OAAO,QAA0B,AAAoB,aAApB,OAAO,UAA4B,CAAC,EAEjF,EAAQ,AAAqB,aAArB,OAAO,WACxB,MAAM,IAAI,CAAC,UAAU,QAAQ,EAO3B,EAAO,EAAE,CAGT,EAAgB,WACpB,GAAI,AAAW,KAAA,IAAX,GACF,GAAI,EAAQ,CACV,EAAS,EAAI,MAAM,GAGnB,IAAK,IAFC,EAAQ,EAAQ,IAAI,CACtB,EAAgB,KACX,EAAI,EAAG,EAAI,EAAM,MAAM,CAAE,IAAK,CACrC,IAAM,EAAO,CAAK,CAAC,EAAE,AACjB,AAAY,CAAA,MAAZ,CAAI,CAAC,EAAE,EACa,OAAlB,GACF,EAAO,GAAG,CAAC,EAAe,IAE5B,EAAgB,GAEZ,AAAkB,OAAlB,GACF,EAAO,GAAG,CAAC,EAAe,GAC1B,EAAgB,MAEhB,EAAK,IAAI,CAAC,EAGhB,CACsB,OAAlB,GACF,EAAO,GAAG,CAAC,EAAe,GAG9B,KAAW,AAAoB,UAApB,OAAO,UAChB,EAAS,EAAI,MAAM,GAClB,AAAA,CAAA,SAAS,MAAM,EAAI,GAAA,EAAK,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,OAAO,CAAC,SAAC,CAArD,EACC,GAAI,AAAc,IAAd,EAAG,MAAM,CAAQ,CACnB,IAAqB,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAG,KAAK,CAAC,KAAA,GAAvB,EAAc,CAAA,CAAA,EAAA,CAAT,EAAS,CAArB,CAAA,EAAA,CACA,EAAO,GAAG,CAAC,KAAoC,MAAA,CAA/B,EAAO,aAAa,CAAC,EAAK,MAAQ,GAClD,EAAO,GAAG,CAAC,IAAmC,MAAA,CAA/B,EAAO,aAAa,CAAC,EAAK,MAAQ,EACnD,CACF,IAEA,EAAS,EAAI,MAAM,GAGvB,OAAO,CACT,EAQa,EAAW,SAAC,CAAlB,EAA2B,OAAA,IAAgB,GAAG,CAAC,E,EAQzC,EAAW,SAAC,CAAA,CAAM,CAAxB,EACL,OAAA,IAAgB,GAAG,CAAC,IAAS,C,EAOlB,EAAc,SAAC,CAArB,EACL,OAAA,EACI,EAAW,eAAe,CAAC,EAAQ,GAAG,CAAC,EAAK,WAAW,GAAG,UAAU,CAAC,IAAK,KAAK,EAC/E,EAAW,eAAe,CAAC,EAAQ,UAAU,CAAC,OAAO,CAAC,G,EAO/C,EAAU,SAAC,CAAjB,EACL,OAAA,IAAgB,GAAG,CAAC,KAAO,IAAS,EAAY,E,EAOrC,EAAa,SAAC,CAApB,EACL,IAAM,EAAI,EAAQ,GAClB,GAAI,AAAK,MAAL,EAAW,MAAM,AAAI,MAAM,2BAAmE,MAAA,CAAxC,EAAK,WAAW,GAAG,UAAU,CAAC,IAAK,KAAK,MAClG,OAAO,CACT,EAOa,EAAU,SAAC,CAAjB,EACL,OAAA,EAAS,KAAO,IAAS,AAAsB,OAAtB,EAAY,E,EAG1B,EAAa,EAAQ,cAcrB,EAAgB,AAXV,GACjB,EAAE,OAAO,CAAA,KAAA,EAA0B,CAAC,OAAQ,IAAK,IAAI,GAWrD,CAAC,EAAS,gBACV,CAAC,EAAQ,aACR,CAAA,CAAC,GAAU,EAAQ,MAAM,CAAC,KAAK,AAAL,GACzB,CAAA,CAAC,GACD,EAAS,YACT,AAA6B,OAA7B,EAAY,cACZ,AAAC,CAAA,EAAY,SAAW,EAAA,EAAI,QAAQ,CAAC,QAAA,C,E,C,kC,Q,mB,Q,W,Q,c,Q,kB,Q,e,Q,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECnJzC,IAOI,EACA,EAkFA,EA1FA,EAAU,EAAO,OAAO,CAAG,CAAC,EAUhC,SAAS,IACL,MAAM,AAAI,MAAM,kCACpB,CACA,SAAS,IACL,MAAM,AAAI,MAAM,oCACpB,CAqBA,SAAS,EAAW,CAAG,EACnB,GAAI,IAAqB,WAErB,OAAO,WAAW,EAAK,GAG3B,GAAK,AAAA,CAAA,IAAqB,GAAoB,CAAC,CAAA,GAAqB,WAEhE,OADA,EAAmB,WACZ,WAAW,EAAK,GAE3B,GAAI,CAEA,OAAO,EAAiB,EAAK,EACjC,CAAE,MAAM,EAAE,CACN,GAAI,CAEA,OAAO,EAAiB,IAAI,CAAC,KAAM,EAAK,EAC5C,CAAE,MAAM,EAAE,CAEN,OAAO,EAAiB,IAAI,CAAC,IAAI,CAAE,EAAK,EAC5C,CACJ,CAGJ,EA5CC,AAAA,WACG,GAAI,CAEI,EADA,AAAsB,YAAtB,OAAO,WACY,WAEA,CAE3B,CAAE,MAAO,EAAG,CACR,EAAmB,CACvB,CACA,GAAI,CAEI,EADA,AAAwB,YAAxB,OAAO,aACc,aAEA,CAE7B,CAAE,MAAO,EAAG,CACR,EAAqB,CACzB,CACJ,IAqDA,IAAI,EAAQ,EAAE,CACV,EAAW,CAAA,EAEX,EAAa,GAEjB,SAAS,IACA,GAAa,IAGlB,EAAW,CAAA,EACP,EAAa,MAAM,CACnB,EAAQ,EAAa,MAAM,CAAC,GAE5B,EAAa,GAEb,EAAM,MAAM,EACZ,IAER,CAEA,SAAS,IACL,IAAI,GAGJ,IAAI,EAAU,EAAW,GACzB,EAAW,CAAA,EAGX,IADA,IAAI,EAAM,EAAM,MAAM,CAChB,GAAK,CAGP,IAFA,EAAe,EACf,EAAQ,EAAE,CACH,EAAE,EAAa,GACd,GACA,CAAY,CAAC,EAAW,CAAC,GAAG,GAGpC,EAAa,GACb,EAAM,EAAM,MAAM,AACtB,CACA,EAAe,KACf,EAAW,CAAA,EACX,AApEJ,SAAyB,CAAM,EAC3B,GAAI,IAAuB,aAEvB,OAAO,aAAa,GAGxB,GAAK,AAAA,CAAA,IAAuB,GAAuB,CAAC,CAAA,GAAuB,aAEvE,OADA,EAAqB,aACd,aAAa,GAExB,GAAI,CAEO,EAAmB,EAC9B,CAAE,MAAO,EAAE,CACP,GAAI,CAEA,OAAO,EAAmB,IAAI,CAAC,KAAM,EACzC,CAAE,MAAO,EAAE,CAGP,OAAO,EAAmB,IAAI,CAAC,IAAI,CAAE,EACzC,CACJ,CAIJ,EA0CoB,GACpB,CAgBA,SAAS,EAAK,CAAG,CAAE,CAAK,EACpB,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,KAAK,CAAG,CACjB,CAWA,SAAS,IAAQ,CA5BjB,EAAQ,QAAQ,CAAG,SAAU,CAAG,EAC5B,IAAI,EAAO,AAAI,MAAM,UAAU,MAAM,CAAG,GACxC,GAAI,UAAU,MAAM,CAAG,EACnB,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAClC,CAAI,CAAC,EAAI,EAAE,CAAG,SAAS,CAAC,EAAE,CAGlC,EAAM,IAAI,CAAC,IAAI,EAAK,EAAK,IACJ,IAAjB,EAAM,MAAM,EAAW,GACvB,EAAW,EAEnB,EAOA,EAAK,SAAS,CAAC,GAAG,CAAG,WACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAM,IAAI,CAAC,KAAK,CACnC,EACA,EAAQ,KAAK,CAAG,UAChB,EAAQ,OAAO,CAAG,CAAA,EAClB,EAAQ,GAAG,CAAG,CAAC,EACf,EAAQ,IAAI,CAAG,EAAE,CACjB,EAAQ,OAAO,CAAG,GAClB,EAAQ,QAAQ,CAAG,CAAC,EAIpB,EAAQ,EAAE,CAAG,EACb,EAAQ,WAAW,CAAG,EACtB,EAAQ,IAAI,CAAG,EACf,EAAQ,GAAG,CAAG,EACd,EAAQ,cAAc,CAAG,EACzB,EAAQ,kBAAkB,CAAG,EAC7B,EAAQ,IAAI,CAAG,EACf,EAAQ,eAAe,CAAG,EAC1B,EAAQ,mBAAmB,CAAG,EAE9B,EAAQ,SAAS,CAAG,SAAU,CAAI,EAAI,MAAO,EAAE,AAAC,EAEhD,EAAQ,OAAO,CAAG,SAAU,CAAI,EAC5B,MAAM,AAAI,MAAM,mCACpB,EAEA,EAAQ,GAAG,CAAG,WAAc,MAAO,GAAI,EACvC,EAAQ,KAAK,CAAG,SAAU,CAAG,EACzB,MAAM,AAAI,MAAM,iCACpB,EACA,EAAQ,KAAK,CAAG,WAAa,OAAO,CAAG,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC7KtC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,kB,WAEY,OAAA,C,GAAN,IAAM,EAAkB,SAAA,CAAxB,EAA6B,OAAA,AAAM,KAAA,IAAN,EAAkB,KAAO,C,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,ECJ5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,a,WA6CY,OAAA,C,G,E,M,C,E,W,WASA,OAAA,C,G,E,M,C,E,Y,WASA,OAAA,C,G,I,E,E,oC,E,E,gCAnCT,EAAgB,GAzBd,WAAA,EAAN,CAAA,WAAM,SAAA,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAEF,IAAI,CAAC,GAAG,CAAG,IAAI,G,CAFb,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CASJ,IAAA,UAAA,MAAA,SAAS,CAAG,CAAE,CAAQ,EACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAK,EACpB,C,E,CAKA,IAAA,UAAA,MAAA,SAAS,CAAG,EACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,C,E,EAlBI,C,G,EA0BF,EAAc,CAAA,EAGlB,GAAI,CAE0B,aAAxB,OAAO,cAAgC,eACzC,EAAgB,aAChB,EAAc,CAAA,EAElB,CAAE,MAAO,EAAG,CAAE,CAOP,IAAM,EAAa,EASb,EAAW,SAAA,CAAjB,EAAiC,OAAA,GAAe,iBAAiB,UAA+B,E,EAS1F,EAAY,SAAA,CAAlB,EAAkC,OAAA,GAAe,oBAAoB,UAA+B,E,C,E,C,mC,Q,+B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECnE1G,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,M,WAYA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,K,WAQA,OAAA,C,G,E,M,C,E,iB,WASA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,U,WAkFA,OAAA,C,G,E,M,C,E,U,WAGA,OAAA,C,G,E,M,C,E,W,WAMA,OAAA,C,G,E,M,C,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F,C,E,EA1HW,C,IAkIA,EAAiB,SAAC,CAAxB,EAAgC,OAAA,IAAI,EAAS,E,EAMvC,EAAqB,SAAC,CAA5B,EAA2C,OAAA,EAAO,kBAAkB,CAAC,EAAO,E,C,E,C,mC,Q,+B,Q,kC,Q,sC,Q,mB,Q,W,Q,Y,Q,W,Q,Y,Q,W,Q,iB,Q,Y,Q,sB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECtXlF,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,S,WAiBA,OAAA,C,G,E,M,C,E,iB,WAQA,OAAA,C,G,E,M,C,E,U,WAOA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,I,E,E,oCAxCA,EAAN,SAAM,EAKE,CAAI,CAAE,CAAK,EALb,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAMT,IAAI,CAAC,IAAI,CAAG,EACZ,IAAI,CAAC,KAAK,CAAG,C,EAUJ,EAAS,SAAC,CAAA,CAAM,CAAtB,EAAgC,OAAA,IAAI,EAAK,EAAM,E,EAQzC,EAAiB,SAAC,CAAA,CAAO,CAA/B,EAAwC,OAAA,IAAI,EAAK,EAAM,E,EAOjD,EAAU,SAAC,CAAA,CAAK,CAAtB,EAA4B,OAAA,EAAI,OAAO,CAAC,SAAA,CAAZ,EAAiB,OAAA,EAAE,EAAE,IAAI,CAAE,EAAE,KAAK,C,E,EAQxD,EAAM,SAAC,CAAA,CAAK,CAAlB,EAAwB,OAAA,EAAI,GAAG,CAAC,SAAA,CAAR,EAAa,OAAA,EAAE,EAAE,IAAI,CAAE,EAAE,KAAK,C,E,C,E,C,mC,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC3C5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,M,WASY,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,yB,WAKA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,kB,WAOA,OAAA,C,G,E,M,C,E,gB,WAOA,OAAA,C,G,E,M,C,E,mB,WAmBA,OAAA,C,G,E,M,C,E,W,WASA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,G,E,M,C,E,mB,WAOA,OAAA,C,G,E,M,C,E,sB,WAOA,OAAA,C,G,E,M,C,E,oB,WAOA,OAAA,C,G,E,M,C,E,uB,WAUA,OAAA,C,G,E,M,C,E,U,WAWA,OAAA,C,G,E,M,C,E,S,WAOA,OAAA,C,G,E,M,C,E,O,WAWA,OAAA,C,G,E,M,C,E,oB,WAKA,OAAA,C,G,E,M,C,E,qB,WAMA,OAAA,C,G,E,M,C,E,mB,WAMA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,mB,WAOA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,gB,WAYA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,c,WAMA,OAAA,C,G,E,M,C,E,e,WAQA,OAAA,C,G,E,M,C,E,c,WAOA,OAAA,C,G,E,M,C,E,e,WAEA,OAAA,C,G,E,M,C,E,Y,WACA,OAAA,C,G,E,M,C,E,qB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,qB,WACA,OAAA,C,G,E,M,C,E,yB,WACA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,a,WAMA,OAAA,C,GAvPb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,YAMa,EAA+B,AAAoB,aAApB,OAAO,SAA2B,SAAW,CAAC,EAM7E,EAAgB,SAAA,CAAtB,EAA8B,OAAA,EAAI,aAAa,CAAC,E,EAK1C,EAAyB,WAAM,OAAA,EAAI,sBAAsB,E,EAMzD,EAAiB,SAAA,CAAvB,EAA+B,OAAA,EAAI,cAAc,CAAC,E,EAE5C,EAAsC,AAAqB,aAArB,OAAO,UAA4B,IAAI,UAAc,KAO3F,EAAkB,SAAC,CAAA,CAAI,CAAA,CAAM,CAAnC,EAA4C,OAAA,EAAG,aAAa,CAAC,IAAI,YAAY,EAAM,G,EAO7E,EAAgB,SAAC,CAAA,CAAI,CAA3B,EAWL,OAVA,EAAK,OAAO,CAAC,EAAO,SAAC,CAAA,CAAK,CAA1B,EACM,AAAU,CAAA,IAAV,EACF,EAAG,eAAe,CAAC,GACV,AAAU,CAAA,IAAV,EACT,EAAG,YAAY,CAAC,EAAK,IAGrB,EAAG,YAAY,CAAC,EAAK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A,CAAA,EAAA,EAAA,CAAA,AAAA,EA9GS,EAAA,SAAA,EA8GH,UAAN,IAAK,EAAL,IAAA,CAAA,IAAA,CACF,C,E,EA/GW,CAAyB,EAAA,EAAA,YAAW,C,E,C,0C,Q,mC,Q,+B,Q,sB,Q,mC,Q,2B,Q,+B,Q,Y,Q,kB,Q,e,Q,c,Q,e,Q,gB,Q,S,Q,iB,Q,mB,Q,a,Q,S,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EChChD,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,Q,WAEY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,O,WAEA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,GAnDN,IAAM,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAChB,EAAQ,KAAK,KAAK,CAClB,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAQhB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,C,EAQpB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAQ5B,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAE5B,EAAQ,OAAO,KAAK,CAEpB,EAAM,KAAK,GAAG,CAOd,EAAQ,SAAA,CAAd,EAAqB,OAAA,KAAK,GAAG,CAAC,GAAI,E,EAE5B,EAAO,KAAK,IAAI,CAMhB,EAAiB,SAAA,CAAvB,EAA4B,OAAA,AAAM,IAAN,EAAU,EAA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AAK,CAAC,AAAO,GAAP,EAAO,EAAO,MAAQ,KAC1F,OAAA,CACF,CACF,C,E,C,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECjDC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WAMY,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,Q,WAUA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,GA1Bb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,kBAEa,EAAO,KAAK,MAAM,CAElB,EAAS,WAAM,MAAA,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,EAAgB,IAAI,YAAY,GAAG,CAAC,EAAE,A,EAErD,EAAS,WACpB,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,IAAI,YAAY,IAC5C,MAAO,AAAC,CAAA,CAAG,CAAC,EAAE,CAAG,EAAO,MAAM,AAAN,EAAW,CAAA,EAAO,MAAM,CAAG,CAAA,EAAM,CAAA,CAAG,CAAC,EAAE,GAAK,CAAA,CACtE,EAOa,EAAQ,SAAA,CAAd,EAAqB,OAAA,CAAG,CAAC,EAAK,KAAK,CAAC,IAAS,EAAI,MAAM,EAAE,A,EAQnD,EAAS,WAAM,MAAA,AALL,uCAKoB,OAAO,CAAC,SAAmC,SAAA,CAA1D,EAC1B,MAAC,AAAA,CAAA,EAAI,IAAW,IAAM,EAAI,CAAA,EAAG,QAAQ,CAAC,G,E,C,E,C,Y,Q,c,Q,iB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECvBvC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,GA5EN,IAAM,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GACP,EAAO,GACP,EAAO,GACP,EAAO,IACP,EAAO,IACP,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,WACR,EAAQ,WACR,EAAQ,WACR,EAAQ,YAOR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,GACR,EAAQ,GACR,EAAQ,GACR,EAAQ,IACR,EAAQ,IACR,EAAQ,IACR,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,MACT,EAAS,MACT,EAAS,MACT,GAAS,OACT,GAAS,OACT,GAAS,OACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,SACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,WACT,GAAS,WAIT,GAAS,WAIT,GAAS,U,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,ECzFtB,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAEa,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,GADN,IAAM,EAAS,OAAO,MAAM,CACtB,EAAkB,OAAO,eAAe,CAAC,IAAI,CAAC,O,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCH3D,EAAA,MAAA,CAAA,EAAA,eAAA,W,O,C,GACA,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,C,GACA,EAAA,MAAA,CAAA,EAAA,eAAA,W,O,C,GAFA,IAAA,EAAA,EAAA,UACA,EAAA,EAAA,eACA,EAAA,EAAA,S,E,C,S,Q,c,Q,S,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,0B,WCEa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAUA,OAAA,C,GAfb,IAAA,EAAA,EAAA,iBACA,EAAA,EAAA,iBAEa,EAAkC,EAElC,EAAwB,SACnC,CAAA,CACA,CAFK,EAIL,EAAS,YAAY,CAAC,EAAS,GAC/B,EAAS,cAAc,CAAC,EAAS,EACnC,EAIa,EAAkB,SAC7B,CAAA,CACA,CAAA,CACA,CAHK,EAKG,EAAS,WAAW,CAAC,KACtB,GACH,EAAwB,EAAG,EAAS,aAAa,CAAC,GAExD,C,E,C,gB,Q,gB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,ECCC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,gB,WAeA,OAAA,C,G,E,M,C,E,S,WAKA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,Y,WAmBA,OAAA,C,G,E,M,C,E,Q,WAgBA,OAAA,C,G,E,M,C,E,M,WAmBA,OAAA,C,G,E,M,C,E,a,WAyBA,OAAA,C,G,E,M,C,E,W,WAUA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,Y,WAYA,OAAA,C,G,E,M,C,E,c,WAYA,OAAA,C,G,E,M,C,E,uB,WAeA,OAAA,C,G,E,M,C,E,Y,WAcA,OAAA,C,G,E,M,C,E,e,WAcA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,wB,WA6BA,OAAA,C,G,E,M,C,E,0B,WAqBA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,wB,WAaA,OAAA,C,G,E,M,C,E,4B,WAoBA,OAAA,C,G,E,M,C,E,qB,WAsBA,OAAA,C,G,E,M,C,E,kB,WASA,OAAA,C,G,E,M,C,E,qB,WA0BA,OAAA,C,G,E,M,C,E,kB,WAsBA,OAAA,C,G,E,M,C,E,e,WAWA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,W,WAmDA,OAAA,C,G,E,M,C,E,a,WA+EA,OAAA,C,G,E,M,C,E,iB,WA0CA,OAAA,C,G,E,M,C,E,oB,WA6BA,OAAA,C,G,E,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AA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAEF,IAAI,CAAC,GAAG,CAAG,IAAI,G,CAFb,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CASJ,IAAA,UAAA,MAAA,SAAS,CAAG,CAAE,CAAQ,EACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAK,EACpB,C,E,CAKA,IAAA,UAAA,MAAA,SAAS,CAAG,EACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,C,E,EAlBI,C,G,EA0BF,EAAc,CAAA,EAGlB,GAAI,CAE0B,aAAxB,OAAO,cAAgC,eACzC,EAAgB,aAChB,EAAc,CAAA,EAElB,CAAE,MAAO,EAAG,CAAE,CAOP,IAAM,EAAa,EASb,EAAW,SAAA,CAAjB,EAAiC,OAAA,GAAe,iBAAiB,UAA+B,E,EAS1F,EAAY,SAAA,CAAlB,EAAkC,OAAA,GAAe,oBAAoB,UAA+B,E,C,E,C,mC,Q,+B,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,EC5C1G,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,c,WACY,OAAA,C,GAAN,IAAM,EAAc,WACzB,IAAI,EAAQ,CAAA,EACZ,OAAO,SAAC,CAAA,CAAG,CAAX,EACE,GAAI,EAAO,CACT,EAAQ,CAAA,EACR,GAAI,CACF,GACF,QAAU,CACR,EAAQ,CAAA,CACV,CACF,MAAiB,KAAA,IAAN,GACT,GAEJ,CACF,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IC1CY,E,E,E,E,kD,E,iB,C,G,E,M,C,E,c,W,O,C,G,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,E,C,E,I,C,E,C,O,C,C,E,c,C,E,C,iB,C,C,E,S,C,E,C,Y,C,C,E,Q,C,E,C,U,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,Q,WCGC,OAAA,C,GAAN,IAAM,EAA2B,IAAI,G,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WCQ/B,OAAA,C,G,E,M,C,E,gB,WAsGA,OAAA,C,GAjHb,IAAA,EAAA,EAAA,iBAC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GAAA,CAAE,E,CACf,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,G,G,A,M,EAPlB,MAAA,C,EACE,EAEA,EAAA,KAFA,CAAA,KAAA,EAAA,CAGE,EAAA,IAAA,G,E,A,C,EAON,GAda,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,GAgBA,GAAU,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAM,CAAb,EACL,IAAA,EAAT,EAAI,EAAK,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAKZ,OALG,EAAS,AAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAI,KAAK,CApBV,KAoBW,EAAA,CAAV,CAAA,EAAA,CAAL,EAAK,CAAA,CAAA,EAAA,CAGR,EAAA,AAAA,CAAA,EAAA,OAAO,MAAM,AAAN,EAAO,OAAO,C,E,CACzB,CAAC,KAAM,EAAM,GAAI,IAAI,WAAW,EAAG,KAAK,CAvB3B,KAuBwC,E,CACrD,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,EAAO,G,G,A,M,EAJX,MAAA,C,EAAO,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAA,KAAA,CAAA,KAAA,EAAA,CACL,EAAA,IAAA,G,E,A,C,EAMJ,GAVa,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,E,E,C,qC,Q,kC,Q,+B,Q,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,U,WC7DA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,Q,WAIA,OAAA,C,G,E,M,C,E,S,WAGA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,U,WAEC,OAAA,C,G,E,M,C,E,c,WAAS,OAAA,C,G,E,M,C,E,O,WAAa,OAAA,C,G,E,M,C,E,O,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nHuB,EAmHZ,EA7Id,IA6IwB,UAE1B,GAhJE,IAiJG,EAtHuB,EAsHZ,EAjJd,IAiJwB,UAEvB,AAxHyB,EAwHpB,MArCZ,AAAI,CADA,EAAQ,KAAK,GAAG,CAlF4B,KAxB1C,MA4GG,KAAK,KAAK,CAAC,AApF4B,EAxB1C,OA4GwB,IAE1B,GA/GE,KAgHG,KAAK,KAAK,CAAC,AAvF4B,EAzB1C,MAgHwB,IAE1B,GAnHE,IAoHG,KAAK,KAAK,CAAC,AA1F4B,EA1B1C,KAoHwB,IAE1B,GAvHE,IAwHG,KAAK,KAAK,CAAC,AA7F4B,EA3B1C,KAwHwB,IAEvB,AA/FyC,EA+FpC,IA7FZ,OAAM,AAAI,MACR,wDACE,KAAK,SAAS,CAAC,GAErB,C,E,C,0B,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WClCa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAEA,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,c,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,wB,WACA,OAAA,C,G,E,M,C,E,4B,WACA,OAAA,C,G,E,M,C,E,sB,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,oB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,GAEb,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,C,GAAA,IAAA,EAAA,EAAA,gBAzBM,EAAQ,AAAkB,aAAlB,OAAO,OAAyB,OAAS,KAG1C,EAAoB,EAAM,iBAAiB,EAAI,EAAM,oBAAoB,EAAI,EAAM,uBAAuB,CAE1G,EAAwB,EAAM,qBAAqB,EAAI,EAAM,wBAAwB,EAAI,EAAM,2BAA2B,CAE1H,EAAkB,EAAM,eAAe,EAAI,EAAM,kBAAkB,EAAI,EAAM,qBAAqB,CAClG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CACf,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,G,G,A,M,EAPlB,MAAA,C,EACE,EAEA,EAAA,KAFA,CAAA,KAAA,EAAA,CAGE,EAAA,IAAA,G,E,A,C,EAON,GAda,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,GAgBA,GAAU,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAM,CAAb,EACL,IAAA,EAAT,EAAI,EAAK,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAKZ,OALG,EAAS,AAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAI,KAAK,CApBV,KAoBW,EAAA,CAAV,CAAA,EAAA,CAAL,EAAK,CAAA,CAAA,EAAA,CAGR,EAAA,AAAA,CAAA,EAAA,OAAO,MAAM,AAAN,EAAO,OAAO,C,E,CACzB,CAAC,KAAM,EAAM,GAAI,IAAI,WAAW,EAAG,KAAK,CAvB3B,KAuBwC,E,CACrD,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,EAAO,G,G,A,M,EAJX,MAAA,C,EAAO,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAA,KAAA,CAAA,KAAA,EAAA,CACL,EAAA,IAAA,G,E,A,C,EAMJ,GAVa,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,E,E,C,qC,Q,kC,Q,+B,Q,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,U,WC7DA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,Q,WAIA,OAAA,C,G,E,M,C,E,S,WAGA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,U,WAEC,OAAA,C,G,E,M,C,E,c,WAAS,OAAA,C,G,E,M,C,E,O,WAAa,OAAA,C,G,E,M,C,E,O,WAEvB,OAAA,C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GAAG,CAlF4B,KAxB1C,MA4GG,KAAK,KAAK,CAAC,AApF4B,EAxB1C,OA4GwB,IAE1B,GA/GE,KAgHG,KAAK,KAAK,CAAC,AAvF4B,EAzB1C,MAgHwB,IAE1B,GAnHE,IAoHG,KAAK,KAAK,CAAC,AA1F4B,EA1B1C,KAoHwB,IAE1B,GAvHE,IAwHG,KAAK,KAAK,CAAC,AA7F4B,EA3B1C,KAwHwB,IAEvB,AA/FyC,EA+FpC,IA7FZ,OAAM,AAAI,MACR,wDACE,KAAK,SAAS,CAAC,GAErB,C,E,C,0B,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WClCa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAEA,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,c,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,wB,WACA,OAAA,C,G,E,M,C,E,4B,WACA,OAAA,C,G,E,M,C,E,sB,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,oB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,GAEb,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,C,GAAA,IAAA,EAAA,EAAA,gBAzBM,EAAQ,AAAkB,aAAlB,OAAO,OAAyB,OAAS,KAG1C,EAAoB,EAAM,iBAAiB,EAAI,EAAM,oBAAoB,EAAI,EAAM,uBAAuB,CAE1G,EAAwB,EAAM,qBAAqB,EAAI,EAAM,wBAAwB,EAAI,EAAM,2BAA2B,CAE1H,EAAkB,EAAM,eAAe,EAAI,EAAM,kBAAkB,EAAI,EAAM,qBAAqB,CAClG,EAAkB,EAAM,eAAe,CACvC,EAAiB,EAAM,cAAc,CACrC,EAAmB,EAAM,gBAAgB,CACzC,EAAmB,EAAM,gBAAgB,CACzC,EAAiB,EAAM,cAAc,CACrC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AAsB,EAAtB,MAAA,CAAa,EAAS,EAAd,GAA/B,CACA,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,EAAK,GACL,IAAM,EAAM,AAAgB,UAAhB,OAAO,EAAoB,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,GAAQ,EAErD,EAAI,KAAK,IAAI,CAAE,AAAA,CAAA,AADP,EAAE,QAAQ,CAAC,GAAG,MAAM,CACL,CAAA,EAAK,GAC5B,EAAe,EAAQ,EAAI,EAEjC,GAAI,AAAW,QAAX,EACF,EAAM,EAAmB,EAAK,EAAK,EAAc,QAC5C,GAAI,AAAW,QAAX,EACT,EAAM,EAAmB,EAAK,EAAK,EAAc,EAAG,QAC/C,GAAI,AAAW,mBAAX,EAET,EAAM,OAEN,MAAM,AAAI,MAAM,iCAGlB,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAO,IAAK,CAE9B,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,IAAM,EAAa,EAAK,CAAA,EAAI,EAAI,CAAA,EAC1B,EAAK,EAAI,QAAQ,CAAC,EAAY,EAAa,EACjD,CAAA,CAAC,CAAC,EAAE,CAAG,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAM,GAAK,EACxB,CACA,CAAC,CAAC,EAAE,CAAG,CACT,CACA,OAAO,CACT,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,0B,Q,gB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,mC,E,E,O1qB0Te,EAAA,CAAA,MAAM,MAAN,E,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,sB,E,A,C,E,E,gB,A,E,mB,E,A,C,E,E,gB,A,E,Y,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,W,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,e,E,A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EAAK,WAAW,CAAC,EACnB,CAAE,MAAO,EAAO,CACd,EAAK,KAAK,CAAC,IAAI,CAAC,sBAChB,QAAQ,KAAK,CAAC,EAChB,CACF,GACC,KAAK,CAAC,SAAC,CADR,EAEE,EAAK,KAAK,CAAC,IAAI,CAAC,uBAChB,QAAQ,KAAK,CAAC,EAChB,EACJ,EAEA,MAAO,CACL,cAAA,SAAc,CAAK,EACjB,aAAa,OAAO,CAAC,WAAY,EACnC,CACF,EAEA,QAAS,CACD,YAAN,SAAkB,CAAS,EAAE,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,WACrB,IAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,OAAA,EAAK,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,IAEpB,EAAK,SAAQ,CAAI,IAAI,CAAC,MAAM,CAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAE,GAAA,EAAI,KAAA,EAAM,UAAW,KAAK,GAAG,EAAG,GAEpD,IAAI,CAAC,SAAQ,CACX,OAAO,QAAQ,CAAC,MAAK,CAAI,OAAO,QAAQ,CAAC,QAAO,CAAI,eAAiB,EAEnE,IAAI,CAAC,aAAa,CACpB,OAAO,QAAQ,CAAC,MAAK,CAAK,eAAiB,MAAA,CAAH,GAExC,IAAI,CAAC,KAAI,CAAI,CAAA,E,C,E,A,EAEjB,GAAA,KAAA,CAAA,IAAA,C,CACF,CACF,C,E,C,qC,Q,+B,Q,iB,Q,c,Q,2B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,c,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E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AAAA,EAAa12U,KAAK,CAAGkP,CAAK,CAACy/C,EAAK,CAAGqnR,EAASh2U,KAAvD1F,A,CACF,GAEOs4N,CACT,C,E,C,oB,Q,I,Q,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEhEA,EAAA,MAAA,CAAA,EAAA,iBAAA,WAAgBokH,OAAAA,C,GALhB,IAAA,EAAA,EAAA,OAKO,SAASA,EAAgBp2U,CAA4B,CAAEN,CAA+B,EAC3F,IAAIkiD,EASJjpB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM34B,EAAQ4zD,SAAAA,CAAdj7B,EACMi7B,GAAU,CAAChS,EACbt1B,AAVJ,SAASA,IAEPs1B,AADAA,CAAAA,EAAQ1vB,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,GAAR0vB,EACMG,GAAG,CAAC,WAAMriD,OAAAA,EAAG9F,MAAM,CACrB8F,EAAG,WAAQkiD,MAAAA,GAAAA,EAAOp6B,IAAI,GAAI8E,GAAQ,GACjC5sB,G,EAEP,IAKck0D,IACVhS,MAAAA,GAAAA,EAAOp6B,IAAI,GACXo6B,EAAQhiD,KAAAA,EAEZ,EAAG,CAAEonD,UAAW,CAAA,CAAK,GAErBr0B,AAAAA,CAAAA,EAAAA,EAAAA,cAAc,AAAdA,EAAe,WACbivB,MAAAA,GAAAA,EAAOp6B,IAAI,EACb,EACF,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,I,E,E,gB,E,S,C,E,G,I,E,E,mB,E,S,C,E,G,I,E,E,mB,E,S,C,E,G,I,E,E,oB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,gC,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,a,E,S,C,E,G,I,E,E,gB,E,S,C,E,G,I,E,E,gB,E,S,C,E,G,I,E,E,4B,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,oB,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,sB,E,S,C,E,G,I,E,E,mB,E,S,C,E,E,E,C,e,Q,kB,Q,kB,Q,mB,Q,gB,Q,+B,Q,wB,Q,Y,Q,e,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,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CAML,OAAOs9V,CACT,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,I,Q,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,EE3aA,IAAA,EAAA,EAAA,kD,E,iB,C,GAHA,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,E,O,A,GAKgB,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GACI,EAAA,MAAA,CAAA,EAAA,aAAA,W,O,E,U,A,GACD,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,E,O,A,GACH,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GACE,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GACQ,EAAA,MAAA,CAAA,EAAA,WAAA,W,O,E,Q,A,GAV1B,IAAA,EAAA,EAAA,oBAKgB,EAAA,EAAA,kBACI,EAAA,EAAA,iBACD,EAAA,EAAA,cACH,EAAA,EAAA,gBACE,EAAA,EAAA,gBACQ,EAAA,EAAA,c,E,C,mB,C,E,iB,C,E,gB,Q,a,C,E,e,Q,e,Q,c,C,E,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEVjB7tB,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,oBAAAA,W,O,E,iB,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WE+DIowB,OAAAA,C,G,E,M,C,E,uB,WACAC,OAAAA,C,G,E,M,C,E,kB,WAIAC,OAAAA,C,G,E,M,C,E,sB,WASAC,OAAAA,C,GAWb,EAAA,MAAA,CAAA,EAAA,YAAA,WAAgBJ,OAAAA,C,GAYhB,EAAA,MAAA,CAAA,EAAA,gBAAA,WAAgBK,OAAAA,C,GAoEhB,EAAA,MAAA,CAAA,EAAA,eAAA,WAAgBppE,OAAA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,EAAA,SAAA,CAAA,GAAA,GAAA,IAAA,GAAA,EAAA,2BAAA,EAAA,SAAA,CAAA,GAAA,E,E,C,mB,Q,sB,Q,qB,Q,4B,Q,sB,Q,qB,Q,sB,Q,gC,Q,2B,Q,2B,Q,mB,Q,wB,Q,yB,Q,oB,Q,wB,Q,wB,Q,oB,Q,yB,Q,oB,Q,2B,Q,wB,Q,2B,Q,uB,Q,4B,Q,yB,Q,0B,Q,gC,Q,sB,Q,uB,Q,0B,Q,8B,Q,mB,Q,qB,Q,yB,Q,sB,Q,oB,Q,oB,Q,qB,Q,oB,Q,mB,Q,8B,Q,qB,Q,yB,Q,mB,Q,qB,Q,sB,Q,oB,Q,oB,Q,8B,Q,oB,Q,oB,Q,wB,Q,gC,Q,qB,Q,wB,Q,uB,Q,0B,Q,wB,Q,gC,Q,8B,Q,qB,Q,0B,Q,2B,Q,sB,Q,0B,Q,sB,Q,gC,Q,qC,Q,qB,Q,8B,Q,0B,Q,sB,Q,wB,Q,yB,Q,yB,Q,uB,Q,sB,Q,yB,Q,oB,Q,qB,Q,wB,Q,yB,Q,6B,Q,wB,Q,uB,Q,uB,Q,0B,Q,6B,Q,sB,Q,0B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzFSmH,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA,W,O,E,I,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,gB,WEYIC,OAAAA,C,G,E,M,C,E,O,WAMAD,OAAAA,C,G,I,E,E,iC,E,E,OAjBb,EAAA,cAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,gCACW,EAAA,EAAA,gCACvB,EAAA,EAAA,+BAGf,EAAA,EAAA,wBAGaC,EAAgBjlB,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EACrCF,AAAAA,CAAAA,EAAAA,EAAAA,kBAAAA,AAAAA,IACAic,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB,CAAEK,WAAY,CAAA,CAAK,GACnCvD,AAAAA,CAAAA,EAAAA,EAAAA,cAAAA,AAAAA,KACF,QAEUmM,EAAOnlB,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,CACrC5qV,KAAM,OAENiW,MAAO+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AAM8mB,EAAU,CAAC,CAAE5+V,CAAAA,EAAMhR,OAAO,EAAIgR,EAAMod,IAAI,EAAItd,EAAMsd,IAAI,AAAJA,EAExD,MAAAlN,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAApQ,EAAAqL,GAAA,CAAA,CAAA,MAEW,CACL,kBACArL,EAAM+/a,KAAK,CACZ,CAAA,MACO//a,EAAMwG,KADb,AACkB,EAAA,CAAAtX,QAAAA,WAMbgR,IAAAA,EANa,MAAA,CAEjB4+V,GAAO1uV,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAFUlhB,MAAAA,CAEV,MAAA,8BAAA,EAAA,CAEHgR,EAAMod,IAAI,CAAGpd,EAAMod,IAAI,GAAKtd,EAAMsd,IAAI,CAEtCpd,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAAiB,EAJd,A,CAMR,EAGP,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,I,Q,kC,Q,4B,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WExCao9V,OAAAA,C,GAAN,IAAMA,EAAexoB,AAAAA,CAAAA,EAAAA,AAT5B,EAAA,qBAS4BA,YAAAA,AAAAA,EAAa,CACvCzpU,IAAK,CACHtM,KAAMzJ,OACNpG,QAAS,KACX,CACF,EAAG,M,E,C,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEYqH,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,G,E,M,C,E,iB,WAlB3G+vW,OAAAA,C,G,E,M,C,E,0B,WAGAC,OAAAA,C,G,E,M,C,E,uB,WACAC,OAAAA,C,G,E,M,C,E,kB,WACAC,OAAAA,C,G,E,M,C,E,mB,WACAC,OAAAA,C,G,E,M,C,E,qB,WACAC,OAAAA,C,G,E,M,C,E,4B,WACAC,OAAAA,C,G,E,M,C,E,qB,WACAC,OAAAA,C,G,E,M,C,E,4B,WACAC,OAAAA,C,G,E,M,C,E,oB,WACAC,OAAAA,C,G,E,M,C,E,2B,WACAC,OAAAA,C,G,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,AAAAA,EAFR,CAEQ,IAAA,YAAA,KAGHhhb,EAAMq2W,SAAS,CAAA,KAAA,UAAA,QAAA,MAAA,EAGjBK,EAAW5lX,KAAK,EAAA,MAexB,EAF+C,AAInD,CAAA,EAGP,CACF,CACF,E,E,C,kC,Q,gC,Q,I,Q,e,Q,oB,Q,oB,Q,iC,Q,qB,Q,8B,Q,kC,Q,gC,Q,mC,Q,kC,Q,8B,Q,+B,Q,iC,Q,iC,Q,qC,Q,gC,Q,4B,Q,8B,Q,gC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WE/PaklX,OAAAA,C,GAAN,IAAMA,EAAcvhC,AAAAA,CAAAA,EAAAA,AAH3B,EAAA,wBAG2BA,sBAAAA,AAAAA,EAAuB,gB,E,C,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEHzC0pB,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA,W,O,E,I,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAA+Y,EAAAA,MAAAA,CAAAA,EAAAA,gBAAAA,W,O,E,a,A,GAAAA,IAAAA,EAAAA,EAAAA,sB,E,C,sB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,yB,WE4EIC,OAAAA,C,G,E,M,C,E,gB,WAkBAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,uC,E,E,OA7Fb,EAAA,uBAEA,IAAA,EAAA,EAAA,wBACgB,EAAA,EAAA,0BACK,EAAA,EAAA,sBACP,EAAA,EAAA,kCACY,EAAA,EAAA,sBACZ,EAAA,EAAA,sBACW,EAAA,EAAA,sBACX,EAAA,EAAA,0BACU,EAAA,EAAA,gCACgB,EAAA,EAAA,+BAGxC,EAAA,EAAA,+BACqB,EAAA,EAAA,+BACA,EAAA,EAAA,gCACc,EAAA,EAAA,8BACnB,EAAA,EAAA,qCACI,EAAA,EAAA,oCACH,EAAA,EAAA,gCACC,EAAA,EAAA,sCACM,EAAA,EAAA,oCAIoD,EAAA,EAAA,wBAiD/DC,EAAyBriC,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,A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CAAAA,EAAgC,CAAhCA,MAAAA,CAAwB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG7O,KAC1B,AAAA,CAAA,CAAC2O,EAAMs6W,UAAU,EAAIt6W,EAAMowJ,KAAK,CAAC9kK,MAAM,AAANA,GAAW0U,EAAMq+W,QAAQ,CAAAjuW,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAg8V,EAAAA,KAAA,CAHzC,CAGyC,MAAA,wBAAA,KAGlDpsW,EAAMq+W,QAAQ,CAAA,YACPxD,GAAmB,QACvBpoH,EAAAA,IAAAA,CAAI,aACD98P,EAAE6C,EAAM1H,KAAK,EAAC,MACnB6E,EAAE6C,EAAM1H,KAAK,EAAC,SAAA,IAAA,EAAA,MAGtBQ,KAAAA,EAHsB,CAGb,C,GAMzB,GAEOgtX,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAY,CACjBnG,UAAAA,EACAC,WAAAA,EACAvrB,KAAAA,EACAx9V,OAAAA,GACAspX,eAAAA,EACAa,cAAAA,GACA5mV,OAAAA,EACF,EAAGslV,EACL,CACF,E,E,C,kC,Q,gC,Q,sC,Q,sC,Q,I,Q,kB,Q,uB,Q,yB,Q,qB,Q,iC,Q,qB,Q,qB,Q,qB,Q,yB,Q,0B,Q,+B,Q,8B,Q,8B,Q,8B,Q,+B,Q,6B,Q,oC,Q,mC,Q,+B,Q,qC,Q,mC,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzsBS+D,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,IAAAA,EAAAA,EAAAA,mB,E,C,mB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAmgC,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W,O,E,Y,A,GAAAA,IAAAA,EAAAA,EAAAA,qB,E,C,qB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,wB,WEyBIC,OAAAA,C,G,E,M,C,E,e,WAaAD,OAAAA,C,G,I,E,E,OAtCb,EAAA,EAAA,qBAGA,EAAA,EAAA,+BACkB,EAAA,EAAA,sCAIqC,EAAA,EAAA,wBAiB1CC,EAAwBvnE,AAAAA,CAA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AAM,CAAC+9U,GAAUjtX,KAAK,EAAI,CAACkP,EAAMolZ,iBAAiB,EAAAh1Y,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAgxa,EAAAA,QAAAA,CAAA,KAAA,CAAAhxa,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAm8W,EAAAA,QAAAA,CAAA,KAAA,MAAAn8W,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAi0Y,EAAAA,gBAAAA,CAK1E4B,EACI,CACPl0Y,QAAS7R,CAAK,CAAC,iBAAf6R,AACF,GAAA,C,CAGL,EAIT,EACF,CACF,E,E,C,gC,Q,I,Q,mB,Q,yB,Q,0B,Q,uB,Q,wB,Q,sB,Q,2B,Q,0B,Q,4B,Q,0B,Q,4B,Q,6B,Q,2B,Q,yB,Q,iC,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GErNSy+Y,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAW,EAAA,MAAA,CAAA,EAAA,sBAAA,W,O,E,mB,A,GACQ,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,GACF,EAAA,MAAA,CAAA,EAAA,mBAAA,W,O,E,gB,A,GACD,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,GACC,EAAA,MAAA,CAAA,EAAA,mBAAA,W,O,E,gB,A,GAJjBA,IAAAA,EAAAA,EAAAA,qBAAW,EAAA,EAAA,6BACQ,EAAA,EAAA,2BACF,EAAA,EAAA,0BACD,EAAA,EAAA,2BACC,EAAA,EAAA,yB,E,C,oB,Q,4B,Q,0B,Q,yB,Q,0B,Q,yB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,uB,WE8BbW,OAAAA,C,G,E,M,C,E,c,WAsCAX,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,OAvEb,EAAA,qBAEA,IAAA,EAAA,EAAA,6BAC0D,EAAA,EAAA,2BAChC,EAAA,EAAA,0BAC0B,EAAA,EAAA,2BACE,EAAA,EAAA,0BACF,EAAA,EAAA,4BAC5B,EAAA,EAAA,kCACE,EAAA,EAAA,kCAG1B,EAAA,EAAA,oCACgB,EAAA,EAAA,gCACE,EAAA,EAAA,sCA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AA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAAiB,EAGnBA,EAAM6gK,OAAO,EAAA3wJ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAkuV,EAAAA,iBAAA,CANd,CAMc,SAED,CACRH,KAAM,CACJ+K,KAAM,CAAA,EACN77O,QAAS,MACX,CACF,CAAC,EAAA,CAAAn+H,QAAAA,WAAA,MAAA,CAAAkhB,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAlhB,MAAAA,CAAA,MAAA,mBAAA,EAAA,CAGGgR,EAAM6gK,OAAO,GAHhB,EAAA,A,CAGkB,GAAA,A,CAGtB,EAGP,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,I,Q,gB,Q,qB,Q,2D,Q,qC,Q,8B,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WEtGag5P,OAAAA,C,GAAN,IAAMA,EAAetlF,AAAAA,CAAAA,EAAAA,AAH5B,EAAA,wBAG4BA,sBAAAA,AAAAA,EAAuB,iB,E,C,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEH1C4zD,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAAA,IAAAA,EAAAA,EAAAA,gB,E,C,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAA4xB,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAAA,IAAAA,EAAAA,EAAAA,oB,E,C,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,uB,WEwCIC,OAAAA,C,G,E,M,C,E,c,WA0BAD,OAAAA,C,G,I,E,E,mC,E,E,iC,E,E,OAjEb,EAAA,qBAEA,IAAA,EAAA,EAAA,qBACa,EAAA,EAAA,kCACa,EAAA,EAAA,sBACZ,EAAA,EAAA,qBAGd,EAAA,EAAA,+BAC2B,EAAA,EAAA,mCACA,EAAA,EAAA,oCACc,EAAA,EAAA,iCACtB,EAAA,EAAA,+BACD,EAAA,EAAA,8BACI,EAAA,EAAA,+BAIK,EAAA,EAAA,wBAqBdC,EAAuBplF,AA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,WAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA6iF,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAA9xb,CAAA,IAIrBwjW,CAAS,EACV2mE,EADU,CACF,OACJ/na,KAAAA,EAAS,SACPA,KAAAA,CAAS,GACV4O,GAAK,CAAA,CAAAyhb,EAAAA,KAAAA,CALN3hb,EAAMslD,MAAM,CAID,CAAA,EAAA,A,CAJC,GAAA,EAAA,CAWjC,GAEO,CAAC,CACV,CACF,E,E,C,kC,Q,gC,Q,I,Q,a,Q,mB,Q,+B,Q,iC,Q,qC,Q,uC,Q,oC,Q,mC,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GE3IS26U,EAAAA,MAAAA,CAAAA,EAAAA,SAAAA,W,O,E,M,A,GAAM,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GAANA,IAAAA,EAAAA,EAAAA,gBAAM,EAAA,EAAA,oB,E,C,e,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAN48B,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,IAAAA,EAAAA,EAAAA,mB,E,C,mB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,sB,WE0CIC,OAAAA,C,G,E,M,C,E,a,WAqCAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,6C,E,E,mC,E,E,uC,E,E,OA9Eb,EAAA,oBAEA,IAAA,EAAA,EAAA,sBACc,EAAA,EAAA,yBACG,EAAA,EAAA,uBACF,EAAA,EAAA,wBAC2B,EAAA,EAAA,wBAG1C,EAAA,EAAA,+BACiB,EAAA,EAAA,qCACG,EAAA,EAAA,gCACF,EAAA,EAAA,sCAIkC,EAAA,EAAA,wBAyBvCC,EAAsBhoF,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAzC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACLglC,MAAO76W,QACPw0H,QAASx0H,QACT89Z,kBAAmB,CA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A,EAAAA,EAAAA,WAAAA,AAAAA,EAAA8uZ,EANP,CAMO,IAAA,QAAA,KAAA,QAAA,YAIlBU,EAAe,WAChBT,EAAOrua,KADS,AACJ,EAAA,MAI3BoP,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAEAuga,GAAmBC,GAAatwZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA8uZ,EANL,CAMK,IAAA,MAAA,KAAA,MAAA,YAIhBU,EAAe,WAChBT,EAAOrua,KADS,AACJ,EAAA,MAE5Bsf,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAF4B,MAAA,CAE5B,MAAA,yBAAA,EAAA,CAGG4vZ,EAAW,MAAOT,EAAUzua,KAAK,EAHpC,EAAA,A,CAGqC,EAI5C,EACF,CACF,E,E,C,qC,Q,gC,Q,+B,Q,I,Q,wB,Q,oB,Q,iC,Q,mC,Q,6C,Q,+B,Q,4B,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEvSSwuX,EAAAA,MAAAA,CAAAA,EAAAA,SAAAA,W,O,E,M,A,GAAAA,IAAAA,EAAAA,EAAAA,e,E,C,e,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAshD,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAU,EAAA,MAAA,CAAA,EAAA,QAAA,W,O,E,K,A,GAAVA,IAAAA,EAAAA,EAAAA,oBAAU,EAAA,EAAA,c,E,C,mB,Q,c,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WEeNG,OAAAA,C,G,E,M,C,E,sB,WAEAC,OAAAA,C,G,E,M,C,E,a,WAmBAJ,OAAAA,C,G,I,E,E,iC,E,E,OAnCb,EAAA,oBAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,+BACM,EAAA,EAAA,6BACZ,EAAA,EAAA,+BAGrB,EAAA,EAAA,wBAMaG,EAAmBhoa,OAAOulb,GAAG,CAAC,wBAE9Btd,EAAsBlsF,AAAAA,CAAAA,EAAAA,EAAA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2B,EAAW7kC,KAAK,CAAA,SAChBmzB,EAAWnzB,KAAK,CAAA,kBACT0H,EAAQhO,EAAGsG,KAAK,CAAGQ,KAAAA,EAAS,SACnC,CAAA,CAAK,EACX8tX,EADW,CACC,WACP17J,EAAM5yN,KAAK,CAAA,sBAAAw8H,SAAAA,CAAA,EAAXo2F,OAAAA,EAAM5yN,KAAK,CAAAw8H,C,CAAA,GACXptH,GADW,CACN,C,GAO7B,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,sC,Q,kC,Q,I,Q,oB,Q,uB,Q,sB,Q,iC,Q,uD,Q,8B,Q,qC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzIS6/W,EAAAA,MAAAA,CAAAA,EAAAA,oBAAAA,W,O,E,iB,A,GAAAA,IAAAA,EAAAA,EAAAA,0B,E,C,0B,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAqoD,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W,O,E,Y,A,GAAAA,IAAAA,EAAAA,EAAAA,qB,E,C,qB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,wB,WEuBIC,OAAAA,C,G,E,M,C,E,e,WAYAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,mC,E,E,OAlCb,EAAA,0BAEA,IAAA,EAAA,EAAA,wBACgC,EAAA,EAAA,uBACjB,EAAA,EAAA,yBACyC,EAAA,EAAA,+BACnC,EAAA,EAAA,+BAGrB,EAAA,EAAA,+BACiC,EAAA,EAAA,gCAClB,EAAA,EAAA,sCAIoB,EAAA,EAAA,wBAOtBC,EAAwBvzF,AAAAA,CAAAA,EAAAA,EAAAA,YAAY,AAAZA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAC7CuuC,AAAAA,CAAAA,EAAAA,EAAAA,cAAc,AAAdA,IACAtE,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,IACAo1B,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,KAHE,CAKLm0B,OAAQrpa,QACR6X,WAAY,CACV/X,KAAM/Q,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,EAA4BF,EAAMsd,IAAI,AAAA,CAAA,EAIpE,GAEOghW,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAY,CAAC,EAAG+T,EACzB,CACF,E,E,C,gC,Q,sC,Q,I,Q,iB,Q,wB,Q,2B,Q,oC,Q,qC,Q,gC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GE1HSsnD,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAAA,IAAAA,EAAAA,EAAAA,oB,E,C,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WEaIA,OAAAA,C,GAbb,IAAA,EAAA,EAAA,oCAaaA,EAAchlG,AAAAA,CAAAA,EAAAA,AAV3B,EAAA,wBAU2BA,gBAAAA,AAAAA,IAMsB,CAC/C5qV,KAAM,cAENiW,MAAO8hX,AAAAA,CAAAA,EAAAA,EAAAA,mBAAAA,AAAAA,IAEP/2U,MAAO,CACL,oBAAsBj6C,SAAAA,CAAtB,EAAqC,MAAA,CAAA,C,CACvC,EAEA4iB,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACjB05a,EAAa13D,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAAcliX,EAAO,cAExC,OAAO,WAAME,IAAAA,EAAAA,OAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAgB05a,E,CAC/B,CACF,E,E,C,mC,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEjCSnuC,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAO,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GAAPA,IAAAA,EAAAA,EAAAA,iBAAO,EAAA,EAAA,oB,E,C,gB,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAP7W,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W,O,E,Y,AACT,GAAA,EAAA,MAAA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","sources":["","src/index.ts","node_modules/@swc/helpers/esm/_async_to_generator.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/@swc/helpers/esm/_object_spread.js","node_modules/@swc/helpers/esm/_define_property.js","node_modules/@swc/helpers/esm/_ts_generator.js","node_modules/tslib/tslib.es6.js","node_modules/@swc/helpers/esm/_type_of.js","node_modules/vue/dist/vue.runtime.esm-bundler.js","node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","node_modules/@swc/helpers/esm/_assert_this_initialized.js","node_modules/@swc/helpers/esm/_class_call_check.js","node_modules/@swc/helpers/esm/_create_class.js","node_modules/@swc/helpers/esm/_inherits.js","node_modules/@swc/helpers/esm/_set_prototype_of.js","node_modules/@swc/helpers/esm/_sliced_to_array.js","node_modules/@swc/helpers/esm/_array_with_holes.js","node_modules/@swc/helpers/esm/_iterable_to_array_limit.js","node_modules/@swc/helpers/esm/_non_iterable_rest.js","node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","node_modules/@swc/helpers/esm/_array_like_to_array.js","node_modules/@swc/helpers/esm/_to_consumable_array.js","node_modules/@swc/helpers/esm/_array_without_holes.js","node_modules/@swc/helpers/esm/_iterable_to_array.js","node_modules/@swc/helpers/esm/_non_iterable_spread.js","node_modules/@swc/helpers/esm/_create_super.js","node_modules/@swc/helpers/esm/_get_prototype_of.js","node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","node_modules/@swc/helpers/esm/_possible_constructor_return.js","node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","node_modules/@vue/shared/dist/shared.esm-bundler.js","src/views/Index.vue","src/ts/Database.ts","node_modules/dexie/dist/dexie.mjs","node_modules/dexie/node_modules/tslib/tslib.es6.js","node_modules/dexie/src/globals/global.ts","node_modules/dexie/src/functions/utils.ts","node_modules/dexie/src/helpers/debug.ts","node_modules/dexie/src/errors/errors.js","node_modules/dexie/src/functions/chaining-functions.js","node_modules/dexie/src/helpers/promise.js","node_modules/dexie/src/functions/temp-transaction.ts","node_modules/dexie/src/globals/constants.ts","node_modules/dexie/src/functions/combine.ts","node_modules/dexie/src/dbcore/keyrange.ts","node_modules/dexie/src/functions/workaround-undefined-primkey.ts","node_modules/dexie/src/classes/table/table.ts","node_modules/dexie/src/helpers/Events.js","node_modules/dexie/src/functions/make-class-constructor.ts","node_modules/dexie/src/classes/table/table-constructor.ts","node_modules/dexie/src/classes/collection/collection-helpers.ts","node_modules/dexie/src/functions/cmp.ts","node_modules/dexie/src/classes/collection/collection.ts","node_modules/dexie/src/classes/collection/collection-constructor.ts","node_modules/dexie/src/functions/compare-functions.ts","node_modules/dexie/src/classes/where-clause/where-clause-helpers.ts","node_modules/dexie/src/classes/where-clause/where-clause.ts","node_modules/dexie/src/classes/where-clause/where-clause-constructor.ts","node_modules/dexie/src/functions/event-wrappers.ts","node_modules/dexie/src/globals/global-events.ts","node_modules/dexie/src/classes/transaction/transaction.ts","node_modules/dexie/src/classes/transaction/transaction-constructor.ts","node_modules/dexie/src/helpers/index-spec.ts","node_modules/dexie/src/helpers/table-schema.ts","node_modules/dexie/src/functions/quirks.ts","node_modules/dexie/src/dbcore/get-key-extractor.ts","node_modules/dexie/src/dbcore/dbcore-indexeddb.ts","node_modules/dexie/src/classes/dexie/generate-middleware-stacks.ts","node_modules/dexie/src/classes/version/schema-helpers.ts","node_modules/dexie/src/classes/version/version.ts","node_modules/dexie/src/classes/version/version-constructor.ts","node_modules/dexie/src/helpers/database-enumerator.ts","node_modules/dexie/src/classes/dexie/vip.ts","node_modules/dexie/node_modules/safari-14-idb-fix/dist/index.js","node_modules/dexie/src/classes/dexie/dexie-open.ts","node_modules/dexie/src/helpers/yield-support.ts","node_modules/dexie/src/classes/dexie/transaction-helpers.ts","node_modules/dexie/src/dbcore/virtual-index-middleware.ts","node_modules/dexie/src/functions/get-object-diff.ts","node_modules/dexie/src/dbcore/get-effective-keys.ts","node_modules/dexie/src/hooks/hooks-middleware.ts","node_modules/dexie/src/dbcore/cache-existing-values-middleware.ts","node_modules/dexie/src/helpers/rangeset.ts","node_modules/dexie/src/live-query/observability-middleware.ts","node_modules/dexie/src/classes/dexie/dexie.ts","node_modules/dexie/src/classes/observable/observable.ts","node_modules/dexie/src/live-query/extend-observability-set.ts","node_modules/dexie/src/live-query/live-query.ts","node_modules/dexie/src/classes/dexie/dexie-dom-dependencies.ts","node_modules/dexie/src/classes/dexie/dexie-static-props.ts","node_modules/dexie/src/live-query/propagate-locally.ts","node_modules/dexie/src/live-query/enable-broadcast.ts","node_modules/dexie/src/index.ts","src/ts/Utils.ts","node_modules/@swc/helpers/esm/_object_spread_props.js","node_modules/js-yaml/dist/js-yaml.mjs","node_modules/secure-ls/dist/secure-ls.js","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/universalModuleDefinition","node_modules/secure-ls/dist/webpack:/SecureLS/src/Base64.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/SecureLS.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/WordArray.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/constants.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/enc-utf8.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/utils.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/aes.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/cipher-core.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/core.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/enc-base64.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/evpkdf.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/hmac.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/md5.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/pbkdf2.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/rabbit.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/rc4.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/sha1.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/sha256.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/tripledes.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/lz-string/libs/lz-string.js","node_modules/secure-ls/dist/webpack:/SecureLS/ignored|/Users/varunmalhotra/sp/secure-ls/node_modules/crypto-js|crypto","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/bootstrap","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/compat get default export","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/define property getters","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/global","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/hasOwnProperty shorthand","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/make namespace object","node_modules/secure-ls/dist/webpack:/SecureLS/src/index.js","src/components/Footer.vue","src/views/Classroom.vue","src/components/Settings.vue","src/components/Settings/Main.vue","src/components/Settings/Members.vue","src/components/Settings/Modules.vue","node_modules/vuedraggable/dist/vuedraggable.umd.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/webpack/universalModuleDefinition","node_modules/vuedraggable/dist/webpack:/vuedraggable/webpack/bootstrap","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-string-tag-support.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/function-bind-context.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/ie8-dom-define.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.reduce.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/web.dom-collections.for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/html.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/a-function.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/require-object-coercible.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-has-species-support.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-absolute-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/export.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-names.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.regexp.to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.starts-with.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/engine-v8-version.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/engine-user-agent.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/get-iterator-method.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-define-properties.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/a-possible-prototype.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/iterators.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/path.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/indexed-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/add-to-unscopables.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-regexp.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/native-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-includes.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.filter.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-from.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.entries.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-length.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/has.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.replace.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/own-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/not-a-regexp.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.flat-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/string-multibyte.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-species-create.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/internal-state.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/redefine.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-to-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.unscopables.flat-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/define-well-known-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/enum-bug-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-create.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/define-iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/native-weak-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/an-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/descriptors.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@soda/get-current-script/index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/inspect-source.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/advance-string-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/uid.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-exec.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-forced.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.concat.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-define-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-iterator-constructor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/flatten-into-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.splice.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.from.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-is-strict.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-integer.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.regexp.exec.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-flags.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-uses-to-length.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/iterators-core.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.function.name.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/well-known-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-iteration.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-primitive.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-pure.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/classof-raw.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared-store.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.find-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/(webpack)/buildin/global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.index-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-keys-internal.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.includes.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/document-create-element.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/set-global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/hidden-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/fails.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/get-built-in.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-set-prototype-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/set-to-string-tag.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-reduce.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/console.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.description.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-prototype-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/correct-prototype-getter.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/copy-constructor-properties.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-array-iterator-method.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/classof.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared-key.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/htmlHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/sortableEvents.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/tags.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/componentBuilderHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/componentStructure.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/renderHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/vuedraggable.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.slice.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-indexed-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/dom-iterables.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/sortablejs/modular/sortable.esm.js","src/components/Settings/Module.vue","src/components/Settings/Editor.vue","node_modules/vue-prism-editor/dist/prismeditor.esm.js","node_modules/vue-prism-editor/src/Editor.ts","node_modules/prismjs/components/prism-core.js","node_modules/prismjs/components/prism-json.js","node_modules/prismjs/components/prism-yaml.js","src/components/Settings/Stations.vue","src/components/Settings/Share.vue","src/components/Chat.vue","node_modules/markdown-it/index.mjs","node_modules/markdown-it/lib/index.mjs","node_modules/markdown-it/lib/common/utils.mjs","node_modules/mdurl/index.mjs","node_modules/mdurl/lib/decode.mjs","node_modules/mdurl/lib/encode.mjs","node_modules/mdurl/lib/format.mjs","node_modules/mdurl/lib/parse.mjs","node_modules/uc.micro/index.mjs","node_modules/uc.micro/properties/Any/regex.mjs","node_modules/uc.micro/categories/Cc/regex.mjs","node_modules/uc.micro/categories/Cf/regex.mjs","node_modules/uc.micro/categories/P/regex.mjs","node_modules/uc.micro/categories/S/regex.mjs","node_modules/uc.micro/categories/Z/regex.mjs","node_modules/entities/lib/esm/index.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/index.ts","node_modules/entities/lib/esm/decode.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","node_modules/entities/lib/esm/generated/decode-data-html.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","node_modules/entities/lib/esm/generated/decode-data-xml.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","node_modules/entities/lib/esm/decode_codepoint.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","node_modules/entities/lib/esm/encode.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/encode.ts","node_modules/entities/lib/esm/generated/encode-html.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/encode-html.ts","node_modules/entities/lib/esm/escape.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","node_modules/markdown-it/lib/helpers/index.mjs","node_modules/markdown-it/lib/helpers/parse_link_label.mjs","node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","node_modules/markdown-it/lib/helpers/parse_link_title.mjs","node_modules/markdown-it/lib/renderer.mjs","node_modules/markdown-it/lib/parser_core.mjs","node_modules/markdown-it/lib/ruler.mjs","node_modules/markdown-it/lib/rules_core/state_core.mjs","node_modules/markdown-it/lib/token.mjs","node_modules/markdown-it/lib/rules_core/normalize.mjs","node_modules/markdown-it/lib/rules_core/block.mjs","node_modules/markdown-it/lib/rules_core/inline.mjs","node_modules/markdown-it/lib/rules_core/linkify.mjs","node_modules/markdown-it/lib/rules_core/replacements.mjs","node_modules/markdown-it/lib/rules_core/smartquotes.mjs","node_modules/markdown-it/lib/rules_core/text_join.mjs","node_modules/markdown-it/lib/parser_block.mjs","node_modules/markdown-it/lib/rules_block/state_block.mjs","node_modules/markdown-it/lib/rules_block/table.mjs","node_modules/markdown-it/lib/rules_block/code.mjs","node_modules/markdown-it/lib/rules_block/fence.mjs","node_modules/markdown-it/lib/rules_block/blockquote.mjs","node_modules/markdown-it/lib/rules_block/hr.mjs","node_modules/markdown-it/lib/rules_block/list.mjs","node_modules/markdown-it/lib/rules_block/reference.mjs","node_modules/markdown-it/lib/rules_block/html_block.mjs","node_modules/markdown-it/lib/common/html_blocks.mjs","node_modules/markdown-it/lib/common/html_re.mjs","node_modules/markdown-it/lib/rules_block/heading.mjs","node_modules/markdown-it/lib/rules_block/lheading.mjs","node_modules/markdown-it/lib/rules_block/paragraph.mjs","node_modules/markdown-it/lib/parser_inline.mjs","node_modules/markdown-it/lib/rules_inline/state_inline.mjs","node_modules/markdown-it/lib/rules_inline/text.mjs","node_modules/markdown-it/lib/rules_inline/linkify.mjs","node_modules/markdown-it/lib/rules_inline/newline.mjs","node_modules/markdown-it/lib/rules_inline/escape.mjs","node_modules/markdown-it/lib/rules_inline/backticks.mjs","node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","node_modules/markdown-it/lib/rules_inline/emphasis.mjs","node_modules/markdown-it/lib/rules_inline/link.mjs","node_modules/markdown-it/lib/rules_inline/image.mjs","node_modules/markdown-it/lib/rules_inline/autolink.mjs","node_modules/markdown-it/lib/rules_inline/html_inline.mjs","node_modules/markdown-it/lib/rules_inline/entity.mjs","node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","node_modules/linkify-it/index.mjs","node_modules/linkify-it/lib/re.mjs","node_modules/punycode.js/punycode.es6.js","node_modules/markdown-it/lib/presets/default.mjs","node_modules/markdown-it/lib/presets/zero.mjs","node_modules/markdown-it/lib/presets/commonmark.mjs","node_modules/highlight.js/lib/index.js","node_modules/highlight.js/lib/core.js","node_modules/@swc/helpers/esm/_wrap_native_super.js","node_modules/@swc/helpers/esm/_construct.js","node_modules/@swc/helpers/esm/_is_native_function.js","node_modules/highlight.js/lib/languages/1c.js","node_modules/highlight.js/lib/languages/abnf.js","node_modules/highlight.js/lib/languages/accesslog.js","node_modules/highlight.js/lib/languages/actionscript.js","node_modules/highlight.js/lib/languages/ada.js","node_modules/highlight.js/lib/languages/angelscript.js","node_modules/highlight.js/lib/languages/apache.js","node_modules/highlight.js/lib/languages/applescript.js","node_modules/highlight.js/lib/languages/arcade.js","node_modules/highlight.js/lib/languages/arduino.js","node_modules/highlight.js/lib/languages/armasm.js","node_modules/highlight.js/lib/languages/xml.js","node_modules/highlight.js/lib/languages/asciidoc.js","node_modules/highlight.js/lib/languages/aspectj.js","node_modules/highlight.js/lib/languages/autohotkey.js","node_modules/highlight.js/lib/languages/autoit.js","node_modules/highlight.js/lib/languages/avrasm.js","node_modules/highlight.js/lib/languages/awk.js","node_modules/highlight.js/lib/languages/axapta.js","node_modules/highlight.js/lib/languages/bash.js","node_modules/highlight.js/lib/languages/basic.js","node_modules/highlight.js/lib/languages/bnf.js","node_modules/highlight.js/lib/languages/brainfuck.js","node_modules/highlight.js/lib/languages/c.js","node_modules/highlight.js/lib/languages/cal.js","node_modules/highlight.js/lib/languages/capnproto.js","node_modules/highlight.js/lib/languages/ceylon.js","node_modules/highlight.js/lib/languages/clean.js","node_modules/highlight.js/lib/languages/clojure.js","node_modules/highlight.js/lib/languages/clojure-repl.js","node_modules/highlight.js/lib/languages/cmake.js","node_modules/highlight.js/lib/languages/coffeescript.js","node_modules/highlight.js/lib/languages/coq.js","node_modules/highlight.js/lib/languages/cos.js","node_modules/highlight.js/lib/languages/cpp.js","node_modules/highlight.js/lib/languages/crmsh.js","node_modules/highlight.js/lib/languages/crystal.js","node_modules/highlight.js/lib/languages/csharp.js","node_modules/highlight.js/lib/languages/csp.js","node_modules/highlight.js/lib/languages/css.js","node_modules/highlight.js/lib/languages/d.js","node_modules/highlight.js/lib/languages/markdown.js","node_modules/highlight.js/lib/languages/dart.js","node_modules/highlight.js/lib/languages/delphi.js","node_modules/highlight.js/lib/languages/diff.js","node_modules/highlight.js/lib/languages/django.js","node_modules/highlight.js/lib/languages/dns.js","node_modules/highlight.js/lib/languages/dockerfile.js","node_modules/highlight.js/lib/languages/dos.js","node_modules/highlight.js/lib/languages/dsconfig.js","node_modules/highlight.js/lib/languages/dts.js","node_modules/highlight.js/lib/languages/dust.js","node_modules/highlight.js/lib/languages/ebnf.js","node_modules/highlight.js/lib/languages/elixir.js","node_modules/highlight.js/lib/languages/elm.js","node_modules/highlight.js/lib/languages/ruby.js","node_modules/highlight.js/lib/languages/erb.js","node_modules/highlight.js/lib/languages/erlang-repl.js","node_modules/highlight.js/lib/languages/erlang.js","node_modules/highlight.js/lib/languages/excel.js","node_modules/highlight.js/lib/languages/fix.js","node_modules/highlight.js/lib/languages/flix.js","node_modules/highlight.js/lib/languages/fortran.js","node_modules/highlight.js/lib/languages/fsharp.js","node_modules/highlight.js/lib/languages/gams.js","node_modules/highlight.js/lib/languages/gauss.js","node_modules/highlight.js/lib/languages/gcode.js","node_modules/highlight.js/lib/languages/gherkin.js","node_modules/highlight.js/lib/languages/glsl.js","node_modules/highlight.js/lib/languages/gml.js","node_modules/highlight.js/lib/languages/go.js","node_modules/highlight.js/lib/languages/golo.js","node_modules/highlight.js/lib/languages/gradle.js","node_modules/highlight.js/lib/languages/graphql.js","node_modules/highlight.js/lib/languages/groovy.js","node_modules/highlight.js/lib/languages/haml.js","node_modules/highlight.js/lib/languages/handlebars.js","node_modules/highlight.js/lib/languages/haskell.js","node_modules/highlight.js/lib/languages/haxe.js","node_modules/highlight.js/lib/languages/hsp.js","node_modules/highlight.js/lib/languages/http.js","node_modules/highlight.js/lib/languages/hy.js","node_modules/highlight.js/lib/languages/inform7.js","node_modules/highlight.js/lib/languages/ini.js","node_modules/highlight.js/lib/languages/irpf90.js","node_modules/highlight.js/lib/languages/isbl.js","node_modules/highlight.js/lib/languages/java.js","node_modules/highlight.js/lib/languages/javascript.js","node_modules/highlight.js/lib/languages/jboss-cli.js","node_modules/highlight.js/lib/languages/json.js","node_modules/highlight.js/lib/languages/julia.js","node_modules/highlight.js/lib/languages/julia-repl.js","node_modules/highlight.js/lib/languages/kotlin.js","node_modules/highlight.js/lib/languages/lasso.js","node_modules/highlight.js/lib/languages/latex.js","node_modules/highlight.js/lib/languages/ldif.js","node_modules/highlight.js/lib/languages/leaf.js","node_modules/highlight.js/lib/languages/less.js","node_modules/highlight.js/lib/languages/lisp.js","node_modules/highlight.js/lib/languages/livecodeserver.js","node_modules/highlight.js/lib/languages/livescript.js","node_modules/highlight.js/lib/languages/llvm.js","node_modules/highlight.js/lib/languages/lsl.js","node_modules/highlight.js/lib/languages/lua.js","node_modules/highlight.js/lib/languages/makefile.js","node_modules/highlight.js/lib/languages/mathematica.js","node_modules/highlight.js/lib/languages/matlab.js","node_modules/highlight.js/lib/languages/maxima.js","node_modules/highlight.js/lib/languages/mel.js","node_modules/highlight.js/lib/languages/mercury.js","node_modules/highlight.js/lib/languages/mipsasm.js","node_modules/highlight.js/lib/languages/mizar.js","node_modules/highlight.js/lib/languages/perl.js","node_modules/highlight.js/lib/languages/mojolicious.js","node_modules/highlight.js/lib/languages/monkey.js","node_modules/highlight.js/lib/languages/moonscript.js","node_modules/highlight.js/lib/languages/n1ql.js","node_modules/highlight.js/lib/languages/nestedtext.js","node_modules/highlight.js/lib/languages/nginx.js","node_modules/highlight.js/lib/languages/nim.js","node_modules/highlight.js/lib/languages/nix.js","node_modules/highlight.js/lib/languages/node-repl.js","node_modules/highlight.js/lib/languages/nsis.js","node_modules/highlight.js/lib/languages/objectivec.js","node_modules/highlight.js/lib/languages/ocaml.js","node_modules/highlight.js/lib/languages/openscad.js","node_modules/highlight.js/lib/languages/oxygene.js","node_modules/highlight.js/lib/languages/parser3.js","node_modules/highlight.js/lib/languages/pf.js","node_modules/highlight.js/lib/languages/pgsql.js","node_modules/highlight.js/lib/languages/php.js","node_modules/highlight.js/lib/languages/php-template.js","node_modules/highlight.js/lib/languages/plaintext.js","node_modules/highlight.js/lib/languages/pony.js","node_modules/highlight.js/lib/languages/powershell.js","node_modules/highlight.js/lib/languages/processing.js","node_modules/highlight.js/lib/languages/profile.js","node_modules/highlight.js/lib/languages/prolog.js","node_modules/highlight.js/lib/languages/properties.js","node_modules/highlight.js/lib/languages/protobuf.js","node_modules/highlight.js/lib/languages/puppet.js","node_modules/highlight.js/lib/languages/purebasic.js","node_modules/highlight.js/lib/languages/python.js","node_modules/highlight.js/lib/languages/python-repl.js","node_modules/highlight.js/lib/languages/q.js","node_modules/highlight.js/lib/languages/qml.js","node_modules/highlight.js/lib/languages/r.js","node_modules/highlight.js/lib/languages/reasonml.js","node_modules/highlight.js/lib/languages/rib.js","node_modules/highlight.js/lib/languages/roboconf.js","node_modules/highlight.js/lib/languages/routeros.js","node_modules/highlight.js/lib/languages/rsl.js","node_modules/highlight.js/lib/languages/ruleslanguage.js","node_modules/highlight.js/lib/languages/rust.js","node_modules/highlight.js/lib/languages/sas.js","node_modules/highlight.js/lib/languages/scala.js","node_modules/highlight.js/lib/languages/scheme.js","node_modules/highlight.js/lib/languages/scilab.js","node_modules/highlight.js/lib/languages/scss.js","node_modules/highlight.js/lib/languages/shell.js","node_modules/highlight.js/lib/languages/smali.js","node_modules/highlight.js/lib/languages/smalltalk.js","node_modules/highlight.js/lib/languages/sml.js","node_modules/highlight.js/lib/languages/sqf.js","node_modules/highlight.js/lib/languages/sql.js","node_modules/highlight.js/lib/languages/stan.js","node_modules/highlight.js/lib/languages/stata.js","node_modules/highlight.js/lib/languages/step21.js","node_modules/highlight.js/lib/languages/stylus.js","node_modules/highlight.js/lib/languages/subunit.js","node_modules/highlight.js/lib/languages/swift.js","node_modules/highlight.js/lib/languages/taggerscript.js","node_modules/highlight.js/lib/languages/yaml.js","node_modules/highlight.js/lib/languages/tap.js","node_modules/highlight.js/lib/languages/tcl.js","node_modules/highlight.js/lib/languages/thrift.js","node_modules/highlight.js/lib/languages/tp.js","node_modules/highlight.js/lib/languages/twig.js","node_modules/highlight.js/lib/languages/typescript.js","node_modules/highlight.js/lib/languages/vala.js","node_modules/highlight.js/lib/languages/vbnet.js","node_modules/highlight.js/lib/languages/vbscript.js","node_modules/highlight.js/lib/languages/vbscript-html.js","node_modules/highlight.js/lib/languages/verilog.js","node_modules/highlight.js/lib/languages/vhdl.js","node_modules/highlight.js/lib/languages/vim.js","node_modules/highlight.js/lib/languages/wasm.js","node_modules/highlight.js/lib/languages/wren.js","node_modules/highlight.js/lib/languages/x86asm.js","node_modules/highlight.js/lib/languages/xl.js","node_modules/highlight.js/lib/languages/xquery.js","node_modules/highlight.js/lib/languages/zephir.js","src/components/Checks.vue","src/components/Modules.vue","src/components/Module.vue","node_modules/yjs/dist/yjs.mjs","node_modules/yjs/src/utils/AbstractConnector.js","node_modules/yjs/src/utils/DeleteSet.js","node_modules/yjs/src/utils/Doc.js","node_modules/yjs/src/utils/UpdateDecoder.js","node_modules/yjs/src/utils/UpdateEncoder.js","node_modules/yjs/src/utils/encoding.js","node_modules/yjs/src/utils/EventHandler.js","node_modules/yjs/src/utils/ID.js","node_modules/yjs/src/utils/isParentOf.js","node_modules/yjs/src/utils/logging.js","node_modules/yjs/src/utils/PermanentUserData.js","node_modules/yjs/src/utils/RelativePosition.js","node_modules/yjs/src/utils/Snapshot.js","node_modules/yjs/src/utils/StructStore.js","node_modules/yjs/src/utils/Transaction.js","node_modules/yjs/src/utils/UndoManager.js","node_modules/yjs/src/utils/updates.js","node_modules/yjs/src/utils/YEvent.js","node_modules/yjs/src/types/AbstractType.js","node_modules/yjs/src/types/YArray.js","node_modules/yjs/src/types/YMap.js","node_modules/yjs/src/types/YText.js","node_modules/yjs/src/types/YXmlFragment.js","node_modules/yjs/src/types/YXmlElement.js","node_modules/yjs/src/types/YXmlEvent.js","node_modules/yjs/src/types/YXmlHook.js","node_modules/yjs/src/types/YXmlText.js","node_modules/yjs/src/structs/AbstractStruct.js","node_modules/yjs/src/structs/GC.js","node_modules/yjs/src/structs/ContentBinary.js","node_modules/yjs/src/structs/ContentDeleted.js","node_modules/yjs/src/structs/ContentDoc.js","node_modules/yjs/src/structs/ContentEmbed.js","node_modules/yjs/src/structs/ContentFormat.js","node_modules/yjs/src/structs/ContentJSON.js","node_modules/yjs/src/structs/ContentAny.js","node_modules/yjs/src/structs/ContentString.js","node_modules/yjs/src/structs/ContentType.js","node_modules/yjs/src/structs/Item.js","node_modules/yjs/src/structs/Skip.js","node_modules/yjs/src/index.js","node_modules/@swc/helpers/esm/_get.js","node_modules/@swc/helpers/esm/_super_prop_base.js","node_modules/lib0/observable.js","node_modules/lib0/map.js","node_modules/lib0/set.js","node_modules/lib0/array.js","node_modules/lib0/math.js","node_modules/lib0/encoding.js","node_modules/lib0/number.js","node_modules/lib0/binary.js","node_modules/lib0/string.js","node_modules/lib0/decoding.js","node_modules/lib0/error.js","node_modules/lib0/random.js","node_modules/lib0/webcrypto.js","node_modules/lib0/promise.js","node_modules/lib0/time.js","node_modules/lib0/metric.js","node_modules/lib0/buffer.js","node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/lib0/environment.js","node_modules/process/browser.js","node_modules/lib0/conditions.js","node_modules/lib0/storage.js","node_modules/lib0/function.js","node_modules/lib0/object.js","node_modules/lib0/logging.js","node_modules/lib0/pair.js","node_modules/lib0/dom.js","node_modules/lib0/json.js","node_modules/lib0/eventloop.js","node_modules/lib0/logging.common.js","node_modules/lib0/symbol.js","node_modules/lib0/iterator.js","node_modules/muuri/dist/muuri.module.js","src/ts/Peer.ts","node_modules/y-trystero/src/TrysteroProvider.ts","node_modules/y-trystero/node_modules/lib0/math.js","node_modules/y-trystero/node_modules/lib0/observable.js","node_modules/y-trystero/node_modules/lib0/map.js","node_modules/y-trystero/node_modules/lib0/set.js","node_modules/y-trystero/node_modules/lib0/array.js","node_modules/y-trystero/node_modules/lib0/promise.js","node_modules/y-trystero/node_modules/lib0/time.js","node_modules/y-trystero/node_modules/lib0/metric.js","node_modules/y-trystero/node_modules/lib0/random.js","node_modules/y-trystero/node_modules/lib0/binary.js","node_modules/y-trystero/node_modules/lib0/webcrypto.js","node_modules/y-trystero/protocols/index.ts","node_modules/y-trystero/protocols/auth.ts","node_modules/y-trystero/node_modules/lib0/encoding.js","node_modules/y-trystero/node_modules/lib0/number.js","node_modules/y-trystero/node_modules/lib0/string.js","node_modules/y-trystero/node_modules/lib0/decoding.js","node_modules/y-trystero/node_modules/lib0/error.js","node_modules/y-trystero/protocols/awareness.ts","node_modules/y-trystero/node_modules/lib0/function.js","node_modules/y-trystero/node_modules/lib0/object.js","node_modules/y-trystero/protocols/sync.ts","node_modules/y-trystero/src/cryptoutils.ts","node_modules/y-trystero/src/Room.ts","node_modules/y-trystero/node_modules/process/browser.js","node_modules/y-trystero/node_modules/lib0/broadcastchannel.js","node_modules/y-trystero/node_modules/lib0/buffer.js","node_modules/y-trystero/node_modules/buffer/index.js","node_modules/y-trystero/node_modules/base64-js/index.js","node_modules/y-trystero/node_modules/ieee754/index.js","node_modules/y-trystero/node_modules/lib0/environment.js","node_modules/y-trystero/node_modules/lib0/conditions.js","node_modules/y-trystero/node_modules/lib0/storage.js","node_modules/y-trystero/node_modules/lib0/mutex.js","node_modules/y-trystero/src/types.ts","node_modules/y-trystero/src/connectionMaps.ts","node_modules/y-trystero/src/messagesRead.ts","node_modules/y-trystero/src/MessageType.ts","node_modules/y-trystero/src/messagesSend.ts","node_modules/y-trystero/node_modules/trystero/src/index.js","node_modules/y-trystero/node_modules/trystero/src/nostr.js","node_modules/y-trystero/node_modules/@noble/curves/secp256k1.js","node_modules/y-trystero/node_modules/@noble/curves/src/secp256k1.ts","node_modules/y-trystero/node_modules/@noble/hashes/sha256.js","node_modules/y-trystero/node_modules/@noble/hashes/src/sha256.ts","node_modules/y-trystero/node_modules/@noble/hashes/_md.js","node_modules/y-trystero/node_modules/@noble/hashes/src/_md.ts","node_modules/y-trystero/node_modules/@noble/hashes/_assert.js","node_modules/y-trystero/node_modules/@noble/hashes/src/_assert.ts","node_modules/y-trystero/node_modules/@noble/hashes/utils.js","node_modules/y-trystero/node_modules/@noble/hashes/src/utils.ts","node_modules/y-trystero/node_modules/@noble/hashes/crypto.js","node_modules/y-trystero/node_modules/@noble/hashes/src/crypto.ts","node_modules/y-trystero/node_modules/@noble/curves/_shortw_utils.js","node_modules/y-trystero/node_modules/@noble/curves/src/_shortw_utils.ts","node_modules/y-trystero/node_modules/@noble/hashes/hmac.js","node_modules/y-trystero/node_modules/@noble/hashes/src/hmac.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/weierstrass.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/weierstrass.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/curve.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/curve.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/modular.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/modular.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/utils.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/utils.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/hash-to-curve.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/hash-to-curve.ts","node_modules/y-trystero/node_modules/trystero/src/strategy.js","node_modules/y-trystero/node_modules/trystero/src/crypto.js","node_modules/y-trystero/node_modules/trystero/src/utils.js","node_modules/y-trystero/node_modules/trystero/src/peer.js","node_modules/y-trystero/node_modules/@thaunknown/simple-peer/index.js","node_modules/y-trystero/node_modules/@thaunknown/simple-peer/lite.js","node_modules/y-trystero/node_modules/debug/src/browser.js","node_modules/y-trystero/node_modules/debug/src/common.js","node_modules/y-trystero/node_modules/ms/index.js","node_modules/y-trystero/node_modules/webrtc-polyfill/browser.js","node_modules/y-trystero/node_modules/streamx/index.js","node_modules/y-trystero/node_modules/events/events.js","node_modules/y-trystero/node_modules/queue-tick/queue-microtask.js","node_modules/y-trystero/node_modules/fast-fifo/index.js","node_modules/y-trystero/node_modules/fast-fifo/fixed-size.js","node_modules/y-trystero/node_modules/text-decoder/index.js","node_modules/y-trystero/node_modules/text-decoder/lib/browser-decoder.js","node_modules/y-trystero/node_modules/err-code/index.js","node_modules/y-trystero/node_modules/uint8-util/browser.js","node_modules/y-trystero/node_modules/uint8-util/util.js","node_modules/y-trystero/node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","node_modules/y-trystero/node_modules/src/index.ts","node_modules/y-trystero/node_modules/trystero/src/room.js","node_modules/trystero/src/torrent.js","node_modules/trystero/src/crypto.js","node_modules/trystero/src/utils.js","node_modules/trystero/src/strategy.js","node_modules/trystero/src/peer.js","node_modules/@thaunknown/simple-peer/index.js","node_modules/@thaunknown/simple-peer/lite.js","node_modules/debug/src/browser.js","node_modules/debug/src/common.js","node_modules/ms/index.js","node_modules/webrtc-polyfill/browser.js","node_modules/streamx/index.js","node_modules/events/events.js","node_modules/queue-tick/queue-microtask.js","node_modules/fast-fifo/index.js","node_modules/fast-fifo/fixed-size.js","node_modules/text-decoder/index.js","node_modules/text-decoder/lib/browser-decoder.js","node_modules/err-code/index.js","node_modules/uint8-util/browser.js","node_modules/uint8-util/util.js","node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","node_modules/src/index.ts","node_modules/trystero/src/room.js","node_modules/trystero/src/index.js","node_modules/trystero/src/nostr.js","node_modules/@noble/curves/secp256k1.js","node_modules/@noble/curves/src/secp256k1.ts","node_modules/@noble/hashes/sha256.js","node_modules/@noble/hashes/src/sha256.ts","node_modules/@noble/hashes/_md.js","node_modules/@noble/hashes/src/_md.ts","node_modules/@noble/hashes/_assert.js","node_modules/@noble/hashes/src/_assert.ts","node_modules/@noble/hashes/utils.js","node_modules/@noble/hashes/src/utils.ts","node_modules/@noble/hashes/crypto.js","node_modules/@noble/hashes/src/crypto.ts","node_modules/@noble/curves/_shortw_utils.js","node_modules/@noble/curves/src/_shortw_utils.ts","node_modules/@noble/hashes/hmac.js","node_modules/@noble/hashes/src/hmac.ts","node_modules/@noble/curves/abstract/weierstrass.js","node_modules/@noble/curves/src/abstract/weierstrass.ts","node_modules/@noble/curves/abstract/curve.js","node_modules/@noble/curves/src/abstract/curve.ts","node_modules/@noble/curves/abstract/modular.js","node_modules/@noble/curves/src/abstract/modular.ts","node_modules/@noble/curves/abstract/utils.js","node_modules/@noble/curves/src/abstract/utils.ts","node_modules/@noble/curves/abstract/hash-to-curve.js","node_modules/@noble/curves/src/abstract/hash-to-curve.ts","src/views/Deploy.vue","node_modules/vuetify/lib/framework.mjs","node_modules/vuetify/src/framework.ts","node_modules/@swc/helpers/esm/_object_without_properties.js","node_modules/@swc/helpers/esm/_object_without_properties_loose.js","node_modules/vuetify/lib/composables/date/date.mjs","node_modules/vuetify/src/composables/date/date.ts","node_modules/vuetify/lib/composables/locale.mjs","node_modules/vuetify/src/composables/locale.ts","node_modules/vuetify/lib/locale/adapters/vuetify.mjs","node_modules/vuetify/src/locale/adapters/vuetify.ts","node_modules/vuetify/lib/composables/proxiedModel.mjs","node_modules/vuetify/src/composables/proxiedModel.ts","node_modules/vuetify/lib/composables/toggleScope.mjs","node_modules/vuetify/src/composables/toggleScope.ts","node_modules/vuetify/lib/util/index.mjs","node_modules/vuetify/src/util/index.ts","node_modules/vuetify/lib/util/anchor.mjs","node_modules/vuetify/src/util/anchor.ts","node_modules/vuetify/lib/util/helpers.mjs","node_modules/vuetify/src/util/helpers.ts","node_modules/vuetify/lib/util/globals.mjs","node_modules/vuetify/src/util/globals.ts","node_modules/vuetify/lib/util/animation.mjs","node_modules/vuetify/src/util/animation.ts","node_modules/vuetify/lib/util/box.mjs","node_modules/vuetify/src/util/box.ts","node_modules/vuetify/lib/util/bindProps.mjs","node_modules/vuetify/src/util/bindProps.ts","node_modules/vuetify/lib/util/colorUtils.mjs","node_modules/vuetify/src/util/colorUtils.ts","node_modules/vuetify/lib/util/color/APCA.mjs","node_modules/vuetify/src/util/color/APCA.ts","node_modules/vuetify/lib/util/console.mjs","node_modules/vuetify/src/util/console.ts","node_modules/vuetify/lib/util/color/transformCIELAB.mjs","node_modules/vuetify/src/util/color/transformCIELAB.ts","node_modules/vuetify/lib/util/color/transformSRGB.mjs","node_modules/vuetify/src/util/color/transformSRGB.ts","node_modules/vuetify/lib/util/createSimpleFunctional.mjs","node_modules/vuetify/src/util/createSimpleFunctional.ts","node_modules/vuetify/lib/composables/component.mjs","node_modules/vuetify/src/composables/component.ts","node_modules/vuetify/lib/util/propsFactory.mjs","node_modules/vuetify/src/util/propsFactory.ts","node_modules/vuetify/lib/util/defineComponent.mjs","node_modules/vuetify/src/util/defineComponent.tsx","node_modules/vuetify/lib/composables/defaults.mjs","node_modules/vuetify/src/composables/defaults.ts","node_modules/vuetify/lib/util/getCurrentInstance.mjs","node_modules/vuetify/src/util/getCurrentInstance.ts","node_modules/vuetify/lib/util/injectSelf.mjs","node_modules/vuetify/src/util/injectSelf.ts","node_modules/vuetify/lib/util/dom.mjs","node_modules/vuetify/src/util/dom.ts","node_modules/vuetify/lib/util/easing.mjs","node_modules/vuetify/src/util/easing.ts","node_modules/vuetify/lib/util/events.mjs","node_modules/vuetify/src/util/events.ts","node_modules/vuetify/lib/util/getScrollParent.mjs","node_modules/vuetify/src/util/getScrollParent.ts","node_modules/vuetify/lib/util/isFixedPosition.mjs","node_modules/vuetify/src/util/isFixedPosition.ts","node_modules/vuetify/lib/util/useRender.mjs","node_modules/vuetify/src/util/useRender.ts","node_modules/vuetify/lib/locale/en.mjs","node_modules/vuetify/src/locale/en.ts","node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs","node_modules/vuetify/src/composables/date/adapters/vuetify.ts","node_modules/vuetify/lib/composables/display.mjs","node_modules/vuetify/src/composables/display.ts","node_modules/vuetify/lib/composables/goto.mjs","node_modules/vuetify/src/composables/goto.ts","node_modules/vuetify/lib/composables/icons.mjs","node_modules/vuetify/src/composables/icons.tsx","node_modules/vuetify/lib/iconsets/mdi.mjs","node_modules/vuetify/src/iconsets/mdi.ts","node_modules/vuetify/lib/composables/theme.mjs","node_modules/vuetify/src/composables/theme.ts","node_modules/vuetify/lib/composables/index.mjs","node_modules/vuetify/src/composables/index.ts","node_modules/vuetify/lib/composables/date/index.mjs","node_modules/vuetify/src/composables/date/index.ts","node_modules/vuetify/lib/composables/layout.mjs","node_modules/vuetify/src/composables/layout.ts","node_modules/vuetify/lib/composables/resizeObserver.mjs","node_modules/vuetify/src/composables/resizeObserver.ts","node_modules/vuetify/lib/components/index.mjs","node_modules/vuetify/src/components/index.ts","node_modules/vuetify/lib/components/VApp/index.mjs","node_modules/vuetify/src/components/VApp/index.ts","node_modules/vuetify/lib/components/VApp/VApp.mjs","node_modules/vuetify/src/components/VApp/VApp.tsx","node_modules/vuetify/lib/components/VAppBar/index.mjs","node_modules/vuetify/src/components/VAppBar/index.ts","node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs","node_modules/vuetify/src/components/VAppBar/VAppBar.tsx","node_modules/vuetify/lib/components/VToolbar/VToolbar.mjs","node_modules/vuetify/src/components/VToolbar/VToolbar.tsx","node_modules/vuetify/lib/components/VToolbar/VToolbarTitle.mjs","node_modules/vuetify/src/components/VToolbar/VToolbarTitle.tsx","node_modules/vuetify/lib/composables/tag.mjs","node_modules/vuetify/src/composables/tag.ts","node_modules/vuetify/lib/components/transitions/index.mjs","node_modules/vuetify/src/components/transitions/index.ts","node_modules/vuetify/lib/components/transitions/createTransition.mjs","node_modules/vuetify/src/components/transitions/createTransition.ts","node_modules/vuetify/lib/components/transitions/expand-transition.mjs","node_modules/vuetify/src/components/transitions/expand-transition.ts","node_modules/vuetify/lib/components/transitions/dialog-transition.mjs","node_modules/vuetify/src/components/transitions/dialog-transition.tsx","node_modules/vuetify/lib/components/VDefaultsProvider/index.mjs","node_modules/vuetify/src/components/VDefaultsProvider/index.ts","node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.mjs","node_modules/vuetify/src/components/VDefaultsProvider/VDefaultsProvider.tsx","node_modules/vuetify/lib/components/VImg/index.mjs","node_modules/vuetify/src/components/VImg/index.ts","node_modules/vuetify/lib/components/VImg/VImg.mjs","node_modules/vuetify/src/components/VImg/VImg.tsx","node_modules/vuetify/lib/components/VResponsive/VResponsive.mjs","node_modules/vuetify/src/components/VResponsive/VResponsive.tsx","node_modules/vuetify/lib/composables/dimensions.mjs","node_modules/vuetify/src/composables/dimensions.ts","node_modules/vuetify/lib/composables/color.mjs","node_modules/vuetify/src/composables/color.ts","node_modules/vuetify/lib/composables/rounded.mjs","node_modules/vuetify/src/composables/rounded.ts","node_modules/vuetify/lib/composables/transition.mjs","node_modules/vuetify/src/composables/transition.ts","node_modules/vuetify/lib/directives/intersect/index.mjs","node_modules/vuetify/src/directives/intersect/index.ts","node_modules/vuetify/lib/composables/border.mjs","node_modules/vuetify/src/composables/border.ts","node_modules/vuetify/lib/composables/elevation.mjs","node_modules/vuetify/src/composables/elevation.ts","node_modules/vuetify/lib/composables/scroll.mjs","node_modules/vuetify/src/composables/scroll.ts","node_modules/vuetify/lib/composables/ssrBoot.mjs","node_modules/vuetify/src/composables/ssrBoot.ts","node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs","node_modules/vuetify/src/components/VAppBar/VAppBarNavIcon.tsx","node_modules/vuetify/lib/components/VBtn/VBtn.mjs","node_modules/vuetify/src/components/VBtn/VBtn.tsx","node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.mjs","node_modules/vuetify/src/components/VBtnToggle/VBtnToggle.tsx","node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.mjs","node_modules/vuetify/src/components/VBtnGroup/VBtnGroup.tsx","node_modules/vuetify/lib/composables/density.mjs","node_modules/vuetify/src/composables/density.ts","node_modules/vuetify/lib/composables/variant.mjs","node_modules/vuetify/src/composables/variant.tsx","node_modules/vuetify/lib/composables/group.mjs","node_modules/vuetify/src/composables/group.ts","node_modules/vuetify/lib/components/VIcon/index.mjs","node_modules/vuetify/src/components/VIcon/index.ts","node_modules/vuetify/lib/components/VIcon/VIcon.mjs","node_modules/vuetify/src/components/VIcon/VIcon.tsx","node_modules/vuetify/lib/composables/size.mjs","node_modules/vuetify/src/composables/size.ts","node_modules/vuetify/lib/components/VProgressCircular/index.mjs","node_modules/vuetify/src/components/VProgressCircular/index.ts","node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.mjs","node_modules/vuetify/src/components/VProgressCircular/VProgressCircular.tsx","node_modules/vuetify/lib/composables/intersectionObserver.mjs","node_modules/vuetify/src/composables/intersectionObserver.ts","node_modules/vuetify/lib/composables/loader.mjs","node_modules/vuetify/src/composables/loader.tsx","node_modules/vuetify/lib/components/VProgressLinear/index.mjs","node_modules/vuetify/src/components/VProgressLinear/index.ts","node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.mjs","node_modules/vuetify/src/components/VProgressLinear/VProgressLinear.tsx","node_modules/vuetify/lib/composables/location.mjs","node_modules/vuetify/src/composables/location.ts","node_modules/vuetify/lib/composables/position.mjs","node_modules/vuetify/src/composables/position.ts","node_modules/vuetify/lib/composables/router.mjs","node_modules/vuetify/src/composables/router.tsx","node_modules/vuetify/lib/composables/selectLink.mjs","node_modules/vuetify/src/composables/selectLink.ts","node_modules/vuetify/lib/directives/ripple/index.mjs","node_modules/vuetify/src/directives/ripple/index.ts","node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs","node_modules/vuetify/src/components/VAppBar/VAppBarTitle.tsx","node_modules/vuetify/lib/components/VAlert/index.mjs","node_modules/vuetify/src/components/VAlert/index.ts","node_modules/vuetify/lib/components/VAlert/VAlert.mjs","node_modules/vuetify/src/components/VAlert/VAlert.tsx","node_modules/vuetify/lib/components/VAlert/VAlertTitle.mjs","node_modules/vuetify/src/components/VAlert/VAlertTitle.ts","node_modules/vuetify/lib/components/VBtn/index.mjs","node_modules/vuetify/src/components/VBtn/index.ts","node_modules/vuetify/lib/components/VAutocomplete/index.mjs","node_modules/vuetify/src/components/VAutocomplete/index.ts","node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs","node_modules/vuetify/src/components/VAutocomplete/VAutocomplete.tsx","node_modules/vuetify/lib/components/VAvatar/index.mjs","node_modules/vuetify/src/components/VAvatar/index.ts","node_modules/vuetify/lib/components/VAvatar/VAvatar.mjs","node_modules/vuetify/src/components/VAvatar/VAvatar.tsx","node_modules/vuetify/lib/components/VCheckbox/index.mjs","node_modules/vuetify/src/components/VCheckbox/index.ts","node_modules/vuetify/lib/components/VCheckbox/VCheckbox.mjs","node_modules/vuetify/src/components/VCheckbox/VCheckbox.tsx","node_modules/vuetify/lib/components/VCheckbox/VCheckboxBtn.mjs","node_modules/vuetify/src/components/VCheckbox/VCheckboxBtn.tsx","node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.mjs","node_modules/vuetify/src/components/VSelectionControl/VSelectionControl.tsx","node_modules/vuetify/lib/components/VLabel/index.mjs","node_modules/vuetify/src/components/VLabel/index.ts","node_modules/vuetify/lib/components/VLabel/VLabel.mjs","node_modules/vuetify/src/components/VLabel/VLabel.tsx","node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs","node_modules/vuetify/src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","node_modules/vuetify/lib/components/VInput/VInput.mjs","node_modules/vuetify/src/components/VInput/VInput.tsx","node_modules/vuetify/lib/components/VInput/InputIcon.mjs","node_modules/vuetify/src/components/VInput/InputIcon.tsx","node_modules/vuetify/lib/components/VMessages/VMessages.mjs","node_modules/vuetify/src/components/VMessages/VMessages.tsx","node_modules/vuetify/lib/composables/validation.mjs","node_modules/vuetify/src/composables/validation.ts","node_modules/@swc/helpers/esm/_ts_values.js","node_modules/vuetify/lib/composables/focus.mjs","node_modules/vuetify/src/composables/focus.ts","node_modules/vuetify/lib/composables/form.mjs","node_modules/vuetify/src/composables/form.ts","node_modules/vuetify/lib/components/VChip/index.mjs","node_modules/vuetify/src/components/VChip/index.ts","node_modules/vuetify/lib/components/VChip/VChip.mjs","node_modules/vuetify/src/components/VChip/VChip.tsx","node_modules/vuetify/lib/components/VChipGroup/VChipGroup.mjs","node_modules/vuetify/src/components/VChipGroup/VChipGroup.tsx","node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.mjs","node_modules/vuetify/src/components/VSlideGroup/VSlideGroup.tsx","node_modules/vuetify/lib/components/VSlideGroup/helpers.mjs","node_modules/vuetify/src/components/VSlideGroup/helpers.ts","node_modules/vuetify/lib/components/VList/index.mjs","node_modules/vuetify/src/components/VList/index.ts","node_modules/vuetify/lib/components/VList/VList.mjs","node_modules/vuetify/src/components/VList/VList.tsx","node_modules/vuetify/lib/components/VList/VListChildren.mjs","node_modules/vuetify/src/components/VList/VListChildren.tsx","node_modules/vuetify/lib/components/VList/VListGroup.mjs","node_modules/vuetify/src/components/VList/VListGroup.tsx","node_modules/vuetify/lib/components/VList/list.mjs","node_modules/vuetify/src/components/VList/list.ts","node_modules/vuetify/lib/composables/nested/nested.mjs","node_modules/vuetify/src/composables/nested/nested.ts","node_modules/vuetify/lib/composables/nested/activeStrategies.mjs","node_modules/vuetify/src/composables/nested/activeStrategies.ts","node_modules/vuetify/lib/composables/nested/openStrategies.mjs","node_modules/vuetify/src/composables/nested/openStrategies.ts","node_modules/vuetify/lib/composables/nested/selectStrategies.mjs","node_modules/vuetify/src/composables/nested/selectStrategies.ts","node_modules/vuetify/lib/components/VList/VListItem.mjs","node_modules/vuetify/src/components/VList/VListItem.tsx","node_modules/vuetify/lib/components/VList/VListItemSubtitle.mjs","node_modules/vuetify/src/components/VList/VListItemSubtitle.tsx","node_modules/vuetify/lib/components/VList/VListItemTitle.mjs","node_modules/vuetify/src/components/VList/VListItemTitle.ts","node_modules/vuetify/lib/components/VList/VListSubheader.mjs","node_modules/vuetify/src/components/VList/VListSubheader.tsx","node_modules/vuetify/lib/components/VDivider/index.mjs","node_modules/vuetify/src/components/VDivider/index.ts","node_modules/vuetify/lib/components/VDivider/VDivider.mjs","node_modules/vuetify/src/components/VDivider/VDivider.tsx","node_modules/vuetify/lib/composables/list-items.mjs","node_modules/vuetify/src/composables/list-items.ts","node_modules/vuetify/lib/components/VList/VListImg.mjs","node_modules/vuetify/src/components/VList/VListImg.ts","node_modules/vuetify/lib/components/VList/VListItemAction.mjs","node_modules/vuetify/src/components/VList/VListItemAction.tsx","node_modules/vuetify/lib/components/VList/VListItemMedia.mjs","node_modules/vuetify/src/components/VList/VListItemMedia.tsx","node_modules/vuetify/lib/components/VMenu/index.mjs","node_modules/vuetify/src/components/VMenu/index.ts","node_modules/vuetify/lib/components/VMenu/VMenu.mjs","node_modules/vuetify/src/components/VMenu/VMenu.tsx","node_modules/vuetify/lib/components/VOverlay/index.mjs","node_modules/vuetify/src/components/VOverlay/index.ts","node_modules/vuetify/lib/components/VOverlay/VOverlay.mjs","node_modules/vuetify/src/components/VOverlay/VOverlay.tsx","node_modules/vuetify/lib/components/VOverlay/locationStrategies.mjs","node_modules/vuetify/src/components/VOverlay/locationStrategies.ts","node_modules/vuetify/lib/components/VOverlay/util/point.mjs","node_modules/vuetify/src/components/VOverlay/util/point.ts","node_modules/vuetify/lib/components/VOverlay/scrollStrategies.mjs","node_modules/vuetify/src/components/VOverlay/scrollStrategies.ts","node_modules/vuetify/lib/components/VOverlay/requestNewFrame.mjs","node_modules/vuetify/src/components/VOverlay/requestNewFrame.ts","node_modules/vuetify/lib/components/VOverlay/useActivator.mjs","node_modules/vuetify/src/components/VOverlay/useActivator.tsx","node_modules/vuetify/lib/components/VMenu/shared.mjs","node_modules/vuetify/src/components/VMenu/shared.ts","node_modules/vuetify/lib/composables/delay.mjs","node_modules/vuetify/src/composables/delay.ts","node_modules/vuetify/lib/composables/hydration.mjs","node_modules/vuetify/src/composables/hydration.ts","node_modules/vuetify/lib/composables/lazy.mjs","node_modules/vuetify/src/composables/lazy.ts","node_modules/vuetify/lib/composables/scopeId.mjs","node_modules/vuetify/src/composables/scopeId.ts","node_modules/vuetify/lib/composables/stack.mjs","node_modules/vuetify/src/composables/stack.ts","node_modules/vuetify/lib/composables/teleport.mjs","node_modules/vuetify/src/composables/teleport.ts","node_modules/vuetify/lib/directives/click-outside/index.mjs","node_modules/vuetify/src/directives/click-outside/index.ts","node_modules/vuetify/lib/composables/forwardRefs.mjs","node_modules/vuetify/src/composables/forwardRefs.ts","node_modules/vuetify/lib/components/VSelect/VSelect.mjs","node_modules/vuetify/src/components/VSelect/VSelect.tsx","node_modules/vuetify/lib/components/VTextField/VTextField.mjs","node_modules/vuetify/src/components/VTextField/VTextField.tsx","node_modules/vuetify/lib/components/VCounter/VCounter.mjs","node_modules/vuetify/src/components/VCounter/VCounter.tsx","node_modules/vuetify/lib/components/VField/VField.mjs","node_modules/vuetify/src/components/VField/VField.tsx","node_modules/vuetify/lib/components/VField/VFieldLabel.mjs","node_modules/vuetify/src/components/VField/VFieldLabel.tsx","node_modules/vuetify/lib/components/VVirtualScroll/index.mjs","node_modules/vuetify/src/components/VVirtualScroll/index.ts","node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScroll.mjs","node_modules/vuetify/src/components/VVirtualScroll/VVirtualScroll.tsx","node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScrollItem.mjs","node_modules/vuetify/src/components/VVirtualScroll/VVirtualScrollItem.tsx","node_modules/vuetify/lib/composables/virtual.mjs","node_modules/vuetify/src/composables/virtual.ts","node_modules/vuetify/lib/components/VSelect/useScrolling.mjs","node_modules/vuetify/src/components/VSelect/useScrolling.ts","node_modules/vuetify/lib/composables/filter.mjs","node_modules/vuetify/src/composables/filter.ts","node_modules/vuetify/lib/components/VBadge/index.mjs","node_modules/vuetify/src/components/VBadge/index.ts","node_modules/vuetify/lib/components/VBadge/VBadge.mjs","node_modules/vuetify/src/components/VBadge/VBadge.tsx","node_modules/vuetify/lib/components/VBanner/index.mjs","node_modules/vuetify/src/components/VBanner/index.ts","node_modules/vuetify/lib/components/VBanner/VBanner.mjs","node_modules/vuetify/src/components/VBanner/VBanner.tsx","node_modules/vuetify/lib/components/VBanner/VBannerActions.mjs","node_modules/vuetify/src/components/VBanner/VBannerActions.tsx","node_modules/vuetify/lib/components/VBanner/VBannerText.mjs","node_modules/vuetify/src/components/VBanner/VBannerText.ts","node_modules/vuetify/lib/components/VBottomNavigation/index.mjs","node_modules/vuetify/src/components/VBottomNavigation/index.ts","node_modules/vuetify/lib/components/VBottomNavigation/VBottomNavigation.mjs","node_modules/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx","node_modules/vuetify/lib/components/VBottomSheet/index.mjs","node_modules/vuetify/src/components/VBottomSheet/index.ts","node_modules/vuetify/lib/components/VBottomSheet/VBottomSheet.mjs","node_modules/vuetify/src/components/VBottomSheet/VBottomSheet.tsx","node_modules/vuetify/lib/components/VDialog/VDialog.mjs","node_modules/vuetify/src/components/VDialog/VDialog.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/index.mjs","node_modules/vuetify/src/components/VBreadcrumbs/index.ts","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbs.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbsItem.tsx","node_modules/vuetify/lib/components/VBtnGroup/index.mjs","node_modules/vuetify/src/components/VBtnGroup/index.ts","node_modules/vuetify/lib/components/VBtnToggle/index.mjs","node_modules/vuetify/src/components/VBtnToggle/index.ts","node_modules/vuetify/lib/components/VCard/index.mjs","node_modules/vuetify/src/components/VCard/index.ts","node_modules/vuetify/lib/components/VCard/VCard.mjs","node_modules/vuetify/src/components/VCard/VCard.tsx","node_modules/vuetify/lib/components/VCard/VCardActions.mjs","node_modules/vuetify/src/components/VCard/VCardActions.tsx","node_modules/vuetify/lib/components/VCard/VCardItem.mjs","node_modules/vuetify/src/components/VCard/VCardItem.tsx","node_modules/vuetify/lib/components/VCard/VCardSubtitle.mjs","node_modules/vuetify/src/components/VCard/VCardSubtitle.tsx","node_modules/vuetify/lib/components/VCard/VCardTitle.mjs","node_modules/vuetify/src/components/VCard/VCardTitle.ts","node_modules/vuetify/lib/components/VCard/VCardText.mjs","node_modules/vuetify/src/components/VCard/VCardText.tsx","node_modules/vuetify/lib/components/VCarousel/index.mjs","node_modules/vuetify/src/components/VCarousel/index.ts","node_modules/vuetify/lib/components/VCarousel/VCarousel.mjs","node_modules/vuetify/src/components/VCarousel/VCarousel.tsx","node_modules/vuetify/lib/components/VWindow/VWindow.mjs","node_modules/vuetify/src/components/VWindow/VWindow.tsx","node_modules/vuetify/lib/directives/touch/index.mjs","node_modules/vuetify/src/directives/touch/index.ts","node_modules/vuetify/lib/components/VCarousel/VCarouselItem.mjs","node_modules/vuetify/src/components/VCarousel/VCarouselItem.tsx","node_modules/vuetify/lib/components/VWindow/VWindowItem.mjs","node_modules/vuetify/src/components/VWindow/VWindowItem.tsx","node_modules/vuetify/lib/components/VChipGroup/index.mjs","node_modules/vuetify/src/components/VChipGroup/index.ts","node_modules/vuetify/lib/components/VCode/index.mjs","node_modules/vuetify/src/components/VCode/index.ts","node_modules/vuetify/lib/components/VColorPicker/index.mjs","node_modules/vuetify/src/components/VColorPicker/index.ts","node_modules/vuetify/lib/components/VColorPicker/VColorPicker.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPicker.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerCanvas.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerCanvas.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerEdit.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx","node_modules/vuetify/lib/components/VColorPicker/util/index.mjs","node_modules/vuetify/src/components/VColorPicker/util/index.ts","node_modules/vuetify/lib/components/VColorPicker/VColorPickerPreview.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx","node_modules/vuetify/lib/components/VSlider/index.mjs","node_modules/vuetify/src/components/VSlider/index.ts","node_modules/vuetify/lib/components/VSlider/VSlider.mjs","node_modules/vuetify/src/components/VSlider/VSlider.tsx","node_modules/vuetify/lib/components/VSlider/VSliderThumb.mjs","node_modules/vuetify/src/components/VSlider/VSliderThumb.tsx","node_modules/vuetify/lib/components/VSlider/slider.mjs","node_modules/vuetify/src/components/VSlider/slider.ts","node_modules/vuetify/lib/components/VSlider/VSliderTrack.mjs","node_modules/vuetify/src/components/VSlider/VSliderTrack.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerSwatches.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx","node_modules/vuetify/lib/util/colors.mjs","node_modules/vuetify/src/util/colors.ts","node_modules/vuetify/lib/components/VSheet/VSheet.mjs","node_modules/vuetify/src/components/VSheet/VSheet.tsx","node_modules/vuetify/lib/components/VCombobox/index.mjs","node_modules/vuetify/src/components/VCombobox/index.ts","node_modules/vuetify/lib/components/VCombobox/VCombobox.mjs","node_modules/vuetify/src/components/VCombobox/VCombobox.tsx","node_modules/vuetify/lib/components/VTextField/index.mjs","node_modules/vuetify/src/components/VTextField/index.ts","node_modules/vuetify/lib/components/VConfirmEdit/index.mjs","node_modules/vuetify/src/components/VConfirmEdit/index.ts","node_modules/vuetify/lib/components/VConfirmEdit/VConfirmEdit.mjs","node_modules/vuetify/src/components/VConfirmEdit/VConfirmEdit.tsx","node_modules/vuetify/lib/components/VCounter/index.mjs","node_modules/vuetify/src/components/VCounter/index.ts","node_modules/vuetify/lib/components/VDataIterator/index.mjs","node_modules/vuetify/src/components/VDataIterator/index.ts","node_modules/vuetify/lib/components/VDataIterator/VDataIterator.mjs","node_modules/vuetify/src/components/VDataIterator/VDataIterator.tsx","node_modules/vuetify/lib/components/VDataTable/composables/expand.mjs","node_modules/vuetify/src/components/VDataTable/composables/expand.ts","node_modules/vuetify/lib/components/VDataTable/composables/group.mjs","node_modules/vuetify/src/components/VDataTable/composables/group.ts","node_modules/vuetify/lib/components/VDataTable/composables/options.mjs","node_modules/vuetify/src/components/VDataTable/composables/options.ts","node_modules/vuetify/lib/components/VDataTable/composables/paginate.mjs","node_modules/vuetify/src/components/VDataTable/composables/paginate.ts","node_modules/vuetify/lib/components/VDataTable/composables/select.mjs","node_modules/vuetify/src/components/VDataTable/composables/select.ts","node_modules/vuetify/lib/components/VDataTable/composables/sort.mjs","node_modules/vuetify/src/components/VDataTable/composables/sort.ts","node_modules/vuetify/lib/components/VDataIterator/composables/items.mjs","node_modules/vuetify/src/components/VDataIterator/composables/items.ts","node_modules/vuetify/lib/components/VDataTable/index.mjs","node_modules/vuetify/src/components/VDataTable/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTable.mjs","node_modules/vuetify/src/components/VDataTable/VDataTable.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableFooter.tsx","node_modules/vuetify/lib/components/VPagination/index.mjs","node_modules/vuetify/src/components/VPagination/index.ts","node_modules/vuetify/lib/components/VPagination/VPagination.mjs","node_modules/vuetify/src/components/VPagination/VPagination.tsx","node_modules/vuetify/lib/composables/refs.mjs","node_modules/vuetify/src/composables/refs.ts","node_modules/vuetify/lib/components/VSelect/index.mjs","node_modules/vuetify/src/components/VSelect/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableHeaders.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableHeaders.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableColumn.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableColumn.tsx","node_modules/vuetify/lib/components/VDataTable/composables/headers.mjs","node_modules/vuetify/src/components/VDataTable/composables/headers.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableRows.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableRows.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableGroupHeaderRow.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableRow.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableRow.tsx","node_modules/vuetify/lib/components/VTable/VTable.mjs","node_modules/vuetify/src/components/VTable/VTable.tsx","node_modules/vuetify/lib/components/VDataTable/composables/items.mjs","node_modules/vuetify/src/components/VDataTable/composables/items.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableVirtual.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableVirtual.tsx","node_modules/vuetify/lib/components/VTable/index.mjs","node_modules/vuetify/src/components/VTable/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableServer.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableServer.tsx","node_modules/vuetify/lib/components/VDatePicker/index.mjs","node_modules/vuetify/src/components/VDatePicker/index.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePicker.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePicker.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerControls.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerControls.tsx","node_modules/vuetify/lib/components/VGrid/index.mjs","node_modules/vuetify/src/components/VGrid/index.ts","node_modules/vuetify/lib/components/VGrid/VContainer.mjs","node_modules/vuetify/src/components/VGrid/VContainer.tsx","node_modules/vuetify/lib/components/VGrid/VCol.mjs","node_modules/vuetify/src/components/VGrid/VCol.ts","node_modules/vuetify/lib/components/VGrid/VRow.mjs","node_modules/vuetify/src/components/VGrid/VRow.ts","node_modules/vuetify/lib/components/VGrid/VSpacer.mjs","node_modules/vuetify/src/components/VGrid/VSpacer.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePickerHeader.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerHeader.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonth.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx","node_modules/vuetify/lib/composables/calendar.mjs","node_modules/vuetify/src/composables/calendar.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonths.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerMonths.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerYears.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerYears.tsx","node_modules/vuetify/lib/labs/VPicker/VPicker.mjs","node_modules/vuetify/src/labs/VPicker/VPicker.tsx","node_modules/vuetify/lib/labs/VPicker/VPickerTitle.mjs","node_modules/vuetify/src/labs/VPicker/VPickerTitle.ts","node_modules/vuetify/lib/components/VDialog/index.mjs","node_modules/vuetify/src/components/VDialog/index.ts","node_modules/vuetify/lib/components/VEmptyState/index.mjs","node_modules/vuetify/src/components/VEmptyState/index.ts","node_modules/vuetify/lib/components/VEmptyState/VEmptyState.mjs","node_modules/vuetify/src/components/VEmptyState/VEmptyState.tsx","node_modules/vuetify/lib/components/VExpansionPanel/index.mjs","node_modules/vuetify/src/components/VExpansionPanel/index.ts","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanels.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanels.tsx","node_modules/vuetify/lib/components/VExpansionPanel/shared.mjs","node_modules/vuetify/src/components/VExpansionPanel/shared.ts","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanel.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelText.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx","node_modules/vuetify/lib/components/VFab/index.mjs","node_modules/vuetify/src/components/VFab/index.ts","node_modules/vuetify/lib/components/VFab/VFab.mjs","node_modules/vuetify/src/components/VFab/VFab.tsx","node_modules/vuetify/lib/components/VField/index.mjs","node_modules/vuetify/src/components/VField/index.ts","node_modules/vuetify/lib/components/VFileInput/index.mjs","node_modules/vuetify/src/components/VFileInput/index.ts","node_modules/vuetify/lib/components/VFileInput/VFileInput.mjs","node_modules/vuetify/src/components/VFileInput/VFileInput.tsx","node_modules/vuetify/lib/components/VFooter/index.mjs","node_modules/vuetify/src/components/VFooter/index.ts","node_modules/vuetify/lib/components/VFooter/VFooter.mjs","node_modules/vuetify/src/components/VFooter/VFooter.tsx","node_modules/vuetify/lib/components/VForm/index.mjs","node_modules/vuetify/src/components/VForm/index.ts","node_modules/vuetify/lib/components/VForm/VForm.mjs","node_modules/vuetify/src/components/VForm/VForm.tsx","node_modules/vuetify/lib/components/VHover/index.mjs","node_modules/vuetify/src/components/VHover/index.ts","node_modules/vuetify/lib/components/VHover/VHover.mjs","node_modules/vuetify/src/components/VHover/VHover.tsx","node_modules/vuetify/lib/components/VInfiniteScroll/index.mjs","node_modules/vuetify/src/components/VInfiniteScroll/index.ts","node_modules/vuetify/lib/components/VInfiniteScroll/VInfiniteScroll.mjs","node_modules/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx","node_modules/vuetify/lib/components/VInput/index.mjs","node_modules/vuetify/src/components/VInput/index.ts","node_modules/vuetify/lib/components/VItemGroup/index.mjs","node_modules/vuetify/src/components/VItemGroup/index.ts","node_modules/vuetify/lib/components/VItemGroup/VItemGroup.mjs","node_modules/vuetify/src/components/VItemGroup/VItemGroup.tsx","node_modules/vuetify/lib/components/VItemGroup/VItem.mjs","node_modules/vuetify/src/components/VItemGroup/VItem.tsx","node_modules/vuetify/lib/components/VKbd/index.mjs","node_modules/vuetify/src/components/VKbd/index.ts","node_modules/vuetify/lib/components/VLayout/index.mjs","node_modules/vuetify/src/components/VLayout/index.ts","node_modules/vuetify/lib/components/VLayout/VLayout.mjs","node_modules/vuetify/src/components/VLayout/VLayout.tsx","node_modules/vuetify/lib/components/VLayout/VLayoutItem.mjs","node_modules/vuetify/src/components/VLayout/VLayoutItem.tsx","node_modules/vuetify/lib/components/VLazy/index.mjs","node_modules/vuetify/src/components/VLazy/index.ts","node_modules/vuetify/lib/components/VLazy/VLazy.mjs","node_modules/vuetify/src/components/VLazy/VLazy.tsx","node_modules/vuetify/lib/components/VLocaleProvider/index.mjs","node_modules/vuetify/src/components/VLocaleProvider/index.ts","node_modules/vuetify/lib/components/VLocaleProvider/VLocaleProvider.mjs","node_modules/vuetify/src/components/VLocaleProvider/VLocaleProvider.tsx","node_modules/vuetify/lib/components/VMain/index.mjs","node_modules/vuetify/src/components/VMain/index.ts","node_modules/vuetify/lib/components/VMain/VMain.mjs","node_modules/vuetify/src/components/VMain/VMain.tsx","node_modules/vuetify/lib/components/VMessages/index.mjs","node_modules/vuetify/src/components/VMessages/index.ts","node_modules/vuetify/lib/components/VNavigationDrawer/index.mjs","node_modules/vuetify/src/components/VNavigationDrawer/index.ts","node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.mjs","node_modules/vuetify/src/components/VNavigationDrawer/VNavigationDrawer.tsx","node_modules/vuetify/lib/components/VNavigationDrawer/sticky.mjs","node_modules/vuetify/src/components/VNavigationDrawer/sticky.ts","node_modules/vuetify/lib/components/VNavigationDrawer/touch.mjs","node_modules/vuetify/src/components/VNavigationDrawer/touch.ts","node_modules/vuetify/lib/composables/touch.mjs","node_modules/vuetify/src/composables/touch.ts","node_modules/vuetify/lib/components/VNoSsr/index.mjs","node_modules/vuetify/src/components/VNoSsr/index.ts","node_modules/vuetify/lib/components/VNoSsr/VNoSsr.mjs","node_modules/vuetify/src/components/VNoSsr/VNoSsr.tsx","node_modules/vuetify/lib/components/VOtpInput/index.mjs","node_modules/vuetify/src/components/VOtpInput/index.ts","node_modules/vuetify/lib/components/VOtpInput/VOtpInput.mjs","node_modules/vuetify/src/components/VOtpInput/VOtpInput.tsx","node_modules/vuetify/lib/components/VParallax/index.mjs","node_modules/vuetify/src/components/VParallax/index.ts","node_modules/vuetify/lib/components/VParallax/VParallax.mjs","node_modules/vuetify/src/components/VParallax/VParallax.tsx","node_modules/vuetify/lib/components/VRadio/index.mjs","node_modules/vuetify/src/components/VRadio/index.ts","node_modules/vuetify/lib/components/VRadio/VRadio.mjs","node_modules/vuetify/src/components/VRadio/VRadio.tsx","node_modules/vuetify/lib/components/VRadioGroup/index.mjs","node_modules/vuetify/src/components/VRadioGroup/index.ts","node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.mjs","node_modules/vuetify/src/components/VRadioGroup/VRadioGroup.tsx","node_modules/vuetify/lib/components/VSelectionControl/index.mjs","node_modules/vuetify/src/components/VSelectionControl/index.ts","node_modules/vuetify/lib/components/VRangeSlider/index.mjs","node_modules/vuetify/src/components/VRangeSlider/index.ts","node_modules/vuetify/lib/components/VRangeSlider/VRangeSlider.mjs","node_modules/vuetify/src/components/VRangeSlider/VRangeSlider.tsx","node_modules/vuetify/lib/components/VRating/index.mjs","node_modules/vuetify/src/components/VRating/index.ts","node_modules/vuetify/lib/components/VRating/VRating.mjs","node_modules/vuetify/src/components/VRating/VRating.tsx","node_modules/vuetify/lib/components/VResponsive/index.mjs","node_modules/vuetify/src/components/VResponsive/index.ts","node_modules/vuetify/lib/components/VSelectionControlGroup/index.mjs","node_modules/vuetify/src/components/VSelectionControlGroup/index.ts","node_modules/vuetify/lib/components/VSheet/index.mjs","node_modules/vuetify/src/components/VSheet/index.ts","node_modules/vuetify/lib/components/VSkeletonLoader/index.mjs","node_modules/vuetify/src/components/VSkeletonLoader/index.ts","node_modules/vuetify/lib/components/VSkeletonLoader/VSkeletonLoader.mjs","node_modules/vuetify/src/components/VSkeletonLoader/VSkeletonLoader.tsx","node_modules/vuetify/lib/components/VSlideGroup/index.mjs","node_modules/vuetify/src/components/VSlideGroup/index.ts","node_modules/vuetify/lib/components/VSlideGroup/VSlideGroupItem.mjs","node_modules/vuetify/src/components/VSlideGroup/VSlideGroupItem.tsx","node_modules/vuetify/lib/components/VSnackbar/index.mjs","node_modules/vuetify/src/components/VSnackbar/index.ts","node_modules/vuetify/lib/components/VSnackbar/VSnackbar.mjs","node_modules/vuetify/src/components/VSnackbar/VSnackbar.tsx","node_modules/vuetify/lib/components/VSparkline/index.mjs","node_modules/vuetify/src/components/VSparkline/index.ts","node_modules/vuetify/lib/components/VSparkline/VSparkline.mjs","node_modules/vuetify/src/components/VSparkline/VSparkline.tsx","node_modules/vuetify/lib/components/VSparkline/VBarline.mjs","node_modules/vuetify/src/components/VSparkline/VBarline.tsx","node_modules/vuetify/lib/components/VSparkline/util/line.mjs","node_modules/vuetify/src/components/VSparkline/util/line.ts","node_modules/vuetify/lib/components/VSparkline/VTrendline.mjs","node_modules/vuetify/src/components/VSparkline/VTrendline.tsx","node_modules/vuetify/lib/components/VSparkline/util/path.mjs","node_modules/vuetify/src/components/VSparkline/util/path.ts","node_modules/vuetify/lib/components/VSpeedDial/index.mjs","node_modules/vuetify/src/components/VSpeedDial/index.ts","node_modules/vuetify/lib/components/VSpeedDial/VSpeedDial.mjs","node_modules/vuetify/src/components/VSpeedDial/VSpeedDial.tsx","node_modules/vuetify/lib/components/VStepper/index.mjs","node_modules/vuetify/src/components/VStepper/index.ts","node_modules/vuetify/lib/components/VStepper/VStepper.mjs","node_modules/vuetify/src/components/VStepper/VStepper.tsx","node_modules/vuetify/lib/components/VStepper/shared.mjs","node_modules/vuetify/src/components/VStepper/shared.ts","node_modules/vuetify/lib/components/VStepper/VStepperActions.mjs","node_modules/vuetify/src/components/VStepper/VStepperActions.tsx","node_modules/vuetify/lib/components/VStepper/VStepperHeader.mjs","node_modules/vuetify/src/components/VStepper/VStepperHeader.ts","node_modules/vuetify/lib/components/VStepper/VStepperItem.mjs","node_modules/vuetify/src/components/VStepper/VStepperItem.tsx","node_modules/vuetify/lib/components/VStepper/VStepperWindow.mjs","node_modules/vuetify/src/components/VStepper/VStepperWindow.tsx","node_modules/vuetify/lib/components/VStepper/VStepperWindowItem.mjs","node_modules/vuetify/src/components/VStepper/VStepperWindowItem.tsx","node_modules/vuetify/lib/components/VSwitch/index.mjs","node_modules/vuetify/src/components/VSwitch/index.ts","node_modules/vuetify/lib/components/VSwitch/VSwitch.mjs","node_modules/vuetify/src/components/VSwitch/VSwitch.tsx","node_modules/vuetify/lib/components/VSystemBar/index.mjs","node_modules/vuetify/src/components/VSystemBar/index.ts","node_modules/vuetify/lib/components/VSystemBar/VSystemBar.mjs","node_modules/vuetify/src/components/VSystemBar/VSystemBar.tsx","node_modules/vuetify/lib/components/VTabs/index.mjs","node_modules/vuetify/src/components/VTabs/index.ts","node_modules/vuetify/lib/components/VTabs/VTab.mjs","node_modules/vuetify/src/components/VTabs/VTab.tsx","node_modules/vuetify/lib/components/VTabs/shared.mjs","node_modules/vuetify/src/components/VTabs/shared.ts","node_modules/vuetify/lib/components/VTabs/VTabs.mjs","node_modules/vuetify/src/components/VTabs/VTabs.tsx","node_modules/vuetify/lib/components/VTabs/VTabsWindow.mjs","node_modules/vuetify/src/components/VTabs/VTabsWindow.tsx","node_modules/vuetify/lib/components/VTabs/VTabsWindowItem.mjs","node_modules/vuetify/src/components/VTabs/VTabsWindowItem.tsx","node_modules/vuetify/lib/components/VTextarea/index.mjs","node_modules/vuetify/src/components/VTextarea/index.ts","node_modules/vuetify/lib/components/VTextarea/VTextarea.mjs","node_modules/vuetify/src/components/VTextarea/VTextarea.tsx","node_modules/vuetify/lib/components/VThemeProvider/index.mjs","node_modules/vuetify/src/components/VThemeProvider/index.ts","node_modules/vuetify/lib/components/VThemeProvider/VThemeProvider.mjs","node_modules/vuetify/src/components/VThemeProvider/VThemeProvider.tsx","node_modules/vuetify/lib/components/VTimeline/index.mjs","node_modules/vuetify/src/components/VTimeline/index.ts","node_modules/vuetify/lib/components/VTimeline/VTimeline.mjs","node_modules/vuetify/src/components/VTimeline/VTimeline.tsx","node_modules/vuetify/lib/components/VTimeline/VTimelineItem.mjs","node_modules/vuetify/src/components/VTimeline/VTimelineItem.tsx","node_modules/vuetify/lib/components/VTimeline/VTimelineDivider.mjs","node_modules/vuetify/src/components/VTimeline/VTimelineDivider.tsx","node_modules/vuetify/lib/components/VToolbar/index.mjs","node_modules/vuetify/src/components/VToolbar/index.ts","node_modules/vuetify/lib/components/VToolbar/VToolbarItems.mjs","node_modules/vuetify/src/components/VToolbar/VToolbarItems.tsx","node_modules/vuetify/lib/components/VTooltip/index.mjs","node_modules/vuetify/src/components/VTooltip/index.ts","node_modules/vuetify/lib/components/VTooltip/VTooltip.mjs","node_modules/vuetify/src/components/VTooltip/VTooltip.tsx","node_modules/vuetify/lib/components/VValidation/index.mjs","node_modules/vuetify/src/components/VValidation/index.ts","node_modules/vuetify/lib/components/VValidation/VValidation.mjs","node_modules/vuetify/src/components/VValidation/VValidation.tsx","node_modules/vuetify/lib/components/VWindow/index.mjs","node_modules/vuetify/src/components/VWindow/index.ts","node_modules/vuetify/lib/directives/index.mjs","node_modules/vuetify/src/directives/index.ts","node_modules/vuetify/lib/directives/mutate/index.mjs","node_modules/vuetify/src/directives/mutate/index.ts","node_modules/vuetify/lib/directives/resize/index.mjs","node_modules/vuetify/src/directives/resize/index.ts","node_modules/vuetify/lib/directives/scroll/index.mjs","node_modules/vuetify/src/directives/scroll/index.ts","node_modules/vuetify/lib/directives/tooltip/index.mjs","node_modules/vuetify/src/directives/tooltip/index.ts","node_modules/vuetify/lib/composables/directiveComponent.mjs","node_modules/vuetify/src/composables/directiveComponent.ts"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (modules, entry, mainEntry, parcelRequireName, globalName) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n this\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n\n // ');\n else return '');\n }\n var absoluteURL = new URL(url, base).toString();\n return '\\n ');\n}\nfunction replace(code, baseURL) {\n try {\n var head = code.match(RegExp(\".*?<\\\\/head>\", \"is\"))[0];\n head = head.replace(RegExp(\".*?<\\\\/script>\", \"gims\"), function(pat) {\n var url = pat.match(RegExp(\"src=(?:'|\\\")([^\\\"']+)(?:'|\\\")\", \"is\"));\n if (url) {\n url = url[1];\n if (!(url.startsWith(\"https://\") || url.startsWith(\"http://\"))) return loadResource(\"script\", url, baseURL);\n }\n return pat;\n });\n head = head.replace(RegExp(\"\", \"gims\"), function(pat) {\n var url = pat.match(RegExp(\"href=(?:'|\\\")([^\\\"']+)(?:'|\\\")\", \"is\"));\n if (url) {\n url = url[1];\n if (!(url.startsWith(\"https://\") || url.startsWith(\"http://\"))) return loadResource(\"css\", url, baseURL);\n }\n return pat;\n });\n return code.replace(RegExp(\".*?<\\\\/head>\", \"is\"), head);\n } catch (e) {\n console.warn(\"problems parsing html:\", e);\n }\n}\nfunction copyToClipboard(str) {\n navigator.clipboard.writeText(str);\n}\nfunction parseClassroom(config) {\n var classroom;\n console.warn(\"parse Classroom\", config);\n try {\n classroom = parse(config);\n if (classroom) // guarantees that older modules without a custom show can be loaded\n for(var i = 0; i < classroom.modules; i++)classroom.modules[i].showInCustom = classroom.modules[i].showInCustom || classroom.modules[i].showIn || \"\";\n } catch (e) {\n console.warn(\"could not parse classroom\", e.message);\n }\n return classroom;\n}\nfunction parse(config) {\n var data = undefined;\n try {\n data = JSON.parse(config);\n } catch (e) {\n data = _jsYaml.load(config);\n }\n return data;\n}\nfunction stringify(config) {\n return _jsYaml.dump(config);\n}\nfunction scrapeModule(module) {\n return _scrapeModule.apply(this, arguments);\n}\nfunction _scrapeModule() {\n _scrapeModule = (0, _asyncToGenerator._)(function(module) {\n var response, content, _yaml_load, _yaml_load1, yaml, links, scripts, code, moduleEl, meta, error;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n _state.trys.push([\n 0,\n 3,\n ,\n 4\n ]);\n return [\n 4,\n fetch(module.url)\n ];\n case 1:\n response = _state.sent();\n return [\n 4,\n response.text()\n ];\n case 2:\n content = _state.sent();\n if (module.url.match(/\\.ya?ml$/i)) try {\n ;\n yaml = _jsYaml.load(content);\n links = ((_yaml_load = yaml.load) === null || _yaml_load === void 0 ? void 0 : _yaml_load.links) || [];\n scripts = ((_yaml_load1 = yaml.load) === null || _yaml_load1 === void 0 ? void 0 : _yaml_load1.scripts) || [];\n code = \"\\n \\n \\n \".concat(links.map(function(url) {\n return loadResource(\"css\", url, module.url);\n }).join(\"\\n\"), \"\\n \\n \").concat(scripts.map(function(url) {\n return loadResource(\"script\", url, module.url);\n }).join(\"\\n\"), '\\n\\n \\n \\n \\n \\n \").concat(yaml.body || \"\", \"\\n \\n \\n \");\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: yaml.name,\n description: yaml.description,\n icon: yaml.icon || \"mdi-package\",\n shownIn: yaml[\"show-in\"] || [\n \"*\"\n ],\n srcdoc: \"data:text/html,\" + escape(code),\n origin: \"*\"\n })\n ];\n } catch (error) {\n console.warn(\"loading yaml:\", error);\n throw new Error(\"Could not load the YAML-declaration: \" + error.message);\n }\n else {\n moduleEl = document.createElement(\"html\");\n moduleEl.innerHTML = content;\n meta = Object.fromEntries(Object.values(moduleEl.getElementsByTagName(\"meta\")).map(function(m) {\n return [\n m.name,\n m.content\n ];\n }));\n if (meta[\"fetch\"] && meta[\"fetch\"] !== \"false\") return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: moduleEl.getElementsByTagName(\"title\")[0].innerText || meta[\"name\"],\n description: meta[\"description\"],\n icon: meta[\"icon\"] || \"mdi-package\",\n shownIn: (meta[\"show-in\"] || \"*\").replace(/\\s+/g, \"\").split(\",\"),\n srcdoc: \"data:text/html,\" + escape(replace(content, module.url)),\n origin: \"*\"\n })\n ];\n try {\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: moduleEl.getElementsByTagName(\"title\")[0].innerText || meta[\"name\"],\n description: meta[\"description\"],\n icon: meta[\"icon\"] || \"mdi-package\",\n shownIn: (meta[\"show-in\"] || \"*\").replace(/\\s+/g, \"\").split(\",\")\n })\n ];\n } catch (error) {\n throw new Error(\"This does not seem to be a valid module declaration, check the URL manually.\");\n }\n }\n return [\n 3,\n 4\n ];\n case 3:\n error = _state.sent();\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: \"\",\n description: error,\n icon: \"mdi-alert\",\n shownIn: \"\"\n })\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n });\n return _scrapeModule.apply(this, arguments);\n}\nfunction download(filename, text) {\n /**\n * https://stackoverflow.com/questions/3665115/how-to-create-a-file-in-memory-for-user-to-download-but-not-through-server\n */ var element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text));\n element.setAttribute(\"download\", filename);\n element.style.display = \"none\";\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n}\nfunction debounce(func, wait, immediate) {\n /**\n * https://davidwalsh.name/javascript-debounce-function\n */ var timeout;\n return function() {\n var context = this, args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nfunction setToValue(obj, pathArr, value) {\n var i = 0;\n for(i = 0; i < pathArr.length - 1; i++){\n obj = obj[pathArr[i]];\n if (!obj[pathArr[i + 1]]) obj[pathArr[i + 1]] = {};\n }\n obj[pathArr[i]] = value;\n// if (value == undefined)\n// delete obj[pathArr[i]]\n}\nfunction validateUrl(string) {\n try {\n var url = new URL(string);\n // URL: allows to define protocols such as `abc:` or `bla:`\n var protocols = [\n \"http:\",\n \"https:\",\n \"file:\",\n \"ipfs:\",\n \"ipns:\",\n \"blob:\",\n \"dat:\",\n \"hyper:\"\n ];\n if (protocols.includes(url.protocol)) return true;\n } catch (err) {}\n return false;\n}\nfunction infoHash() {\n var length = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 40;\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n // Pick characters randomly\n var str = \"\";\n for(var i = 0; i < length; i++)str += chars.charAt(Math.floor(Math.random() * chars.length));\n return str;\n}\nvar SessionID = null;\nvar ls = new (0, _secureLsDefault.default)({\n encodingType: \"aes\"\n});\nfunction getPeerID() {\n var withSession = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n var peerID = ls.get(\"peerID_\");\n if (!peerID) {\n peerID = infoHash(12);\n ls.set(\"peerID_\", peerID);\n }\n if (!SessionID) SessionID = infoHash(6);\n return withSession ? peerID + \"_\" + SessionID : peerID;\n}\nfunction getShortPeerID(id) {\n var ids = id.split(\"_\");\n // peerID_sessionID\n if (ids.length == 2) return ids[0].slice(-6);\n return id;\n}\nfunction clone(object) {\n if (object !== undefined) return JSON.parse(JSON.stringify(object));\n}\nfunction removeKeysStartingWithSecret(obj) {\n for(var key in obj){\n if (typeof obj[key] === \"object\") {\n // Recursively call the function if the value is an object or an array\n removeKeysStartingWithSecret(obj[key]);\n if (JSON.stringify(obj[key]) === \"{}\") delete obj[key];\n }\n // If the key starts with \"secret\", delete the key-value pair\n if (key.toLocaleLowerCase().startsWith(\"secret\")) delete obj[key];\n }\n}\nfunction deepEqual(object1, object2) {\n var keys1 = Object.keys(object1);\n var keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = keys1[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var key = _step.value;\n var val1 = object1[key];\n var val2 = object2[key];\n var areObjects = isObject(val1) && isObject(val2);\n if (areObjects && !deepEqual(val1, val2) || !areObjects && val1 !== val2) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction isObject(object) {\n return object != null && typeof object === \"object\";\n}\nfunction hashJsonObject(jsonObject) {\n return _hashJsonObject.apply(this, arguments);\n}\nfunction _hashJsonObject() {\n _hashJsonObject = (0, _asyncToGenerator._)(function(jsonObject) {\n var msgUint8, hashBuffer, hashArray, hashHex;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n msgUint8 = new TextEncoder().encode(JSON.stringify(jsonObject));\n return [\n 4,\n crypto.subtle.digest(\"SHA-256\", msgUint8)\n ];\n case 1:\n hashBuffer = _state.sent();\n hashArray = Array.from(new Uint8Array(hashBuffer));\n hashHex = hashArray.map(function(b) {\n return b.toString(16).padStart(2, \"0\");\n }).join(\"\");\n return [\n 2,\n hashHex\n ];\n }\n });\n });\n return _hashJsonObject.apply(this, arguments);\n}\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_object_spread\":\"j01jQ\",\"@swc/helpers/_/_object_spread_props\":\"jpe5k\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"js-yaml\":\"kR43b\",\"secure-ls\":\"4ztg2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"jpe5k\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"_\", function() {\n return _object_spread_props;\n});\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return target;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"kR43b\":[function(require,module,exports) {\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"CORE_SCHEMA\", function() {\n return CORE_SCHEMA;\n});\nparcelHelpers.export(exports, \"DEFAULT_SCHEMA\", function() {\n return DEFAULT_SCHEMA;\n});\nparcelHelpers.export(exports, \"FAILSAFE_SCHEMA\", function() {\n return FAILSAFE_SCHEMA;\n});\nparcelHelpers.export(exports, \"JSON_SCHEMA\", function() {\n return JSON_SCHEMA;\n});\nparcelHelpers.export(exports, \"Schema\", function() {\n return Schema;\n});\nparcelHelpers.export(exports, \"Type\", function() {\n return Type;\n});\nparcelHelpers.export(exports, \"YAMLException\", function() {\n return YAMLException;\n});\nparcelHelpers.export(exports, \"dump\", function() {\n return dump;\n});\nparcelHelpers.export(exports, \"load\", function() {\n return load;\n});\nparcelHelpers.export(exports, \"loadAll\", function() {\n return loadAll;\n});\nparcelHelpers.export(exports, \"safeDump\", function() {\n return safeDump;\n});\nparcelHelpers.export(exports, \"safeLoad\", function() {\n return safeLoad;\n});\nparcelHelpers.export(exports, \"safeLoadAll\", function() {\n return safeLoadAll;\n});\nparcelHelpers.export(exports, \"types\", function() {\n return types;\n});\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n return [\n sequence\n ];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for(index = 0, length = sourceKeys.length; index < length; index += 1){\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for(cycle = 0; cycle < count; cycle += 1)result += string;\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\n// YAML error class. http://stackoverflow.com/questions/8458984\nfunction formatError(exception, compact) {\n var where = \"\", message = exception.reason || \"(unknown reason)\";\n if (!exception.mark) return message;\n if (exception.mark.name) where += 'in \"' + exception.mark.name + '\" ';\n where += \"(\" + (exception.mark.line + 1) + \":\" + (exception.mark.column + 1) + \")\";\n if (!compact && exception.mark.snippet) where += \"\\n\\n\" + exception.mark.snippet;\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n // Include stack trace in error object\n if (Error.captureStackTrace) // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n else // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = new Error().stack || \"\";\n}\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== \"number\") options.indent = 1;\n if (typeof options.linesBefore !== \"number\") options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\") options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [\n 0\n ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while(match = re.exec(mark.buffer)){\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) foundLineNo = lineStarts.length - 2;\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for(i = 1; i <= options.linesBefore; i++){\n if (foundLineNo - i < 0) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength);\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\" + \"\\n\";\n for(i = 1; i <= options.linesAfter; i++){\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map) {\n var result = {};\n if (map !== null) Object.keys(map).forEach(function(style) {\n map[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n });\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n}\nvar type = Type$1;\n/*eslint-disable max-len*/ function compileList(schema, name) {\n var result = [];\n schema[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) newIndex = previousIndex;\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi[\"fallback\"].push(type);\n } else result[type.kind][type.tag] = result[\"fallback\"][type.tag] = type;\n }\n for(index = 0, length = arguments.length; index < length; index += 1)arguments[index].forEach(collectType);\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) // Schema.extend(type)\n explicit.push(definition);\n else if (Array.isArray(definition)) // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n if (type$1.multi) throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function construct(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function construct(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function construct(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function canonical() {\n return \"~\";\n },\n lowercase: function lowercase() {\n return \"null\";\n },\n uppercase: function uppercase() {\n return \"NULL\";\n },\n camelcase: function camelcase() {\n return \"Null\";\n },\n empty: function empty() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function lowercase(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function uppercase(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function camelcase(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ || 0x41 /* A */ <= c && c <= 0x46 /* F */ || 0x61 /* a */ <= c && c <= 0x66 /* f */ ;\n}\nfunction isOctCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x37 /* 7 */ ;\n}\nfunction isDecCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ;\n}\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n // sign\n if (ch === \"-\" || ch === \"+\") ch = data[++index];\n if (ch === \"0\") {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n // base 2, base 8, base 16\n if (ch === \"b\") {\n // base 2\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n // base 16\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n // base 8\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n // base 10 (except 0)\n // value should not start with `_`;\n if (ch === \"_\") return false;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) value = value.replace(/_/g, \"\");\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && object % 1 === 0 && !common.isNegativeZero(object);\n}\nvar _int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function binary(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function octal(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function decimal(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */ hexadecimal: function hexadecimal(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [\n 2,\n \"bin\"\n ],\n octal: [\n 8,\n \"oct\"\n ],\n decimal: [\n 10,\n \"dec\"\n ],\n hexadecimal: [\n 16,\n \"hex\"\n ]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(// 2.5e4, 2.5 and integers\n\"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") return false;\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) value = value.slice(1);\n if (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n else if (value === \".nan\") return NaN;\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) switch(style){\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n else if (Number.POSITIVE_INFINITY === object) switch(style){\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n else if (Number.NEGATIVE_INFINITY === object) switch(style){\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n else if (common.isNegativeZero(object)) return \"-0.0\";\n res = object.toString(10);\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar _float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n _int,\n _float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"); // [3] day\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"); // [11] tz_minute\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n // match: [1] year [2] month [3] day\n year = +match[1];\n month = +match[2] - 1; // JS month starts with 0\n day = +match[3];\n if (!match[4]) return new Date(Date.UTC(year, month, day));\n // match: [4] hour [5] minute [6] second [7] fraction\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while(fraction.length < 3)fraction += \"0\";\n fraction = +fraction;\n }\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object /*, style*/ ) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\n/*eslint-disable no-bitwise*/ // [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n // Convert one by one.\n for(idx = 0; idx < max; idx++){\n code = map.indexOf(data.charAt(idx));\n // Skip CR/LF\n if (code > 64) continue;\n // Fail on illegal characters\n if (code < 0) return false;\n bitlen += 6;\n }\n // If there are any bits left, source was corrupted\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map = BASE64_MAP, bits = 0, result = [];\n // Collect by 6*4 bits (3 bytes)\n for(idx = 0; idx < max; idx++){\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n }\n bits = bits << 6 | map.indexOf(input.charAt(idx));\n }\n // Dump tail\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 0xFF);\n result.push(bits >> 2 & 0xFF);\n } else if (tailbits === 12) result.push(bits >> 4 & 0xFF);\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object /*, style*/ ) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map = BASE64_MAP;\n // Convert every three bytes to 4 ASCII characters.\n for(idx = 0; idx < max; idx++){\n if (idx % 3 === 0 && idx) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n }\n bits = (bits << 8) + object[idx];\n }\n // Dump tail\n tail = max % 3;\n if (tail === 0) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[bits >> 10 & 0x3F];\n result += map[bits >> 4 & 0x3F];\n result += map[bits << 2 & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[bits >> 2 & 0x3F];\n result += map[bits << 4 & 0x3F];\n result += map[64];\n result += map[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for(pairKey in pair)if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [\n keys[0],\n pair[keys[0]]\n ];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [\n keys[0],\n pair[keys[0]]\n ];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key, object = data;\n for(key in object)if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n/*eslint-disable max-len,no-use-before-define*/ var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 0x0A /* LF */ || c === 0x0D /* CR */ ;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 0x09 /* Tab */ || c === 0x20 /* Space */ ;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 0x09 /* Tab */ || c === 0x20 /* Space */ || c === 0x0A /* LF */ || c === 0x0D /* CR */ ;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C /* , */ || c === 0x5B /* [ */ || c === 0x5D /* ] */ || c === 0x7B /* { */ || c === 0x7D /* } */ ;\n}\nfunction fromHexCode(c) {\n var lc;\n if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ) return c - 0x30;\n /*eslint-disable no-bitwise*/ lc = c | 0x20;\n if (0x61 /* a */ <= lc && lc <= 0x66 /* f */ ) return lc - 0x61 + 10;\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 0x78 /* x */ ) return 2;\n if (c === 0x75 /* u */ ) return 4;\n if (c === 0x55 /* U */ ) return 8;\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ) return c - 0x30;\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */ return c === 0x30 /* 0 */ ? \"\\0\" : c === 0x61 /* a */ ? \"\\x07\" : c === 0x62 /* b */ ? \"\\b\" : c === 0x74 /* t */ ? \"\t\" : c === 0x09 /* Tab */ ? \"\t\" : c === 0x6E /* n */ ? \"\\n\" : c === 0x76 /* v */ ? \"\\v\" : c === 0x66 /* f */ ? \"\\f\" : c === 0x72 /* r */ ? \"\\r\" : c === 0x65 /* e */ ? \"\\x1b\" : c === 0x20 /* Space */ ? \" \" : c === 0x22 /* \" */ ? '\"' : c === 0x2F /* / */ ? \"/\" : c === 0x5C /* \\ */ ? \"\\\\\" : c === 0x4E /* N */ ? \"\\x85\" : c === 0x5F /* _ */ ? \"\\xa0\" : c === 0x4C /* L */ ? \"\\u2028\" : c === 0x50 /* P */ ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) return String.fromCharCode(c);\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode((c - 0x010000 >> 10) + 0xD800, (c - 0x010000 & 0x03FF) + 0xDC00);\n}\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor(var i = 0; i < 256; i++){\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n this.documents = [];\n/*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/ }\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\nfunction throwWarning(state, message) {\n if (state.onWarning) state.onWarning.call(null, generateError(state, message));\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) throwError(state, \"duplication of %YAML directive\");\n if (args.length !== 1) throwError(state, \"YAML directive accepts exactly one argument\");\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) throwError(state, \"ill-formed argument of the YAML directive\");\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) throwError(state, \"unacceptable YAML version of the document\");\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) throwWarning(state, \"unsupported YAML version of the document\");\n },\n TAG: function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) throwError(state, \"TAG directive accepts exactly two arguments\");\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n if (_hasOwnProperty$1.call(state.tagMap, handle)) throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n if (!PATTERN_TAG_URI.test(prefix)) throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) for(_position = 0, _length = _result.length; _position < _length; _position += 1){\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 || 0x20 <= _character && _character <= 0x10FFFF)) throwError(state, \"expected valid JSON character\");\n }\n else if (PATTERN_NON_PRINTABLE.test(_result)) throwError(state, \"the stream contains non-printable characters\");\n state.result += _result;\n }\n}\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n sourceKeys = Object.keys(source);\n for(index = 0, quantity = sourceKeys.length; index < quantity; index += 1){\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for(index = 0, quantity = keyNode.length; index < quantity; index += 1){\n if (Array.isArray(keyNode[index])) throwError(state, \"nested arrays are not supported inside keys\");\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") keyNode[index] = \"[object Object]\";\n }\n }\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") keyNode = \"[object Object]\";\n keyNode = String(keyNode);\n if (_result === null) _result = {};\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) for(index = 0, quantity = valueNode.length; index < quantity; index += 1)mergeMappings(state, _result, valueNode[index], overridableKeys);\n else mergeMappings(state, _result, valueNode, overridableKeys);\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === \"__proto__\") Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n else _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x0A /* LF */ ) state.position++;\n else if (ch === 0x0D /* CR */ ) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A /* LF */ ) state.position++;\n } else throwError(state, \"a line break is expected\");\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n while(is_WHITE_SPACE(ch)){\n if (ch === 0x09 /* Tab */ && state.firstTabInLine === -1) state.firstTabInLine = state.position;\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 0x23 /* # */ ) do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0x0A /* LF */ && ch !== 0x0D /* CR */ && ch !== 0);\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while(ch === 0x20 /* Space */ ){\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else break;\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) throwWarning(state, \"deficient indentation\");\n return lineBreaks;\n}\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D /* - */ || ch === 0x2E /* . */ ) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) return true;\n }\n return false;\n}\nfunction writeFoldedLines(state, count) {\n if (count === 1) state.result += \" \";\n else if (count > 1) state.result += common.repeat(\"\\n\", count - 1);\n}\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 0x23 /* # */ || ch === 0x26 /* & */ || ch === 0x2A /* * */ || ch === 0x21 /* ! */ || ch === 0x7C /* | */ || ch === 0x3E /* > */ || ch === 0x27 /* ' */ || ch === 0x22 /* \" */ || ch === 0x25 /* % */ || ch === 0x40 /* @ */ || ch === 0x60 /* ` */ ) return false;\n if (ch === 0x3F /* ? */ || ch === 0x2D /* - */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while(ch !== 0){\n if (ch === 0x3A /* : */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) break;\n } else if (ch === 0x23 /* # */ ) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) break;\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) break;\n else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) captureEnd = state.position + 1;\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) return true;\n state.kind = _kind;\n state.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x27 /* ' */ ) return false;\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n if (ch === 0x27 /* ' */ ) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x27 /* ' */ ) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else return true;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a single quoted scalar\");\n else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x22 /* \" */ ) return false;\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n if (ch === 0x22 /* \" */ ) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 0x5C /* \\ */ ) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) skipSeparationSpace(state, false, nodeIndent);\n else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for(; hexLength > 0; hexLength--){\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) hexResult = (hexResult << 4) + tmp;\n else throwError(state, \"expected hexadecimal character\");\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else throwError(state, \"unknown escape sequence\");\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a double quoted scalar\");\n else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x5B /* [ */ ) {\n terminator = 0x5D; /* ] */ \n isMapping = false;\n _result = [];\n } else if (ch === 0x7B /* { */ ) {\n terminator = 0x7D; /* } */ \n isMapping = true;\n _result = {};\n } else return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(++state.position);\n while(ch !== 0){\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) throwError(state, \"missed comma between flow collection entries\");\n else if (ch === 0x2C /* , */ ) // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 0x3F /* ? */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 0x3A /* : */ ) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n else if (isPair) _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n else _result.push(keyNode);\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x2C /* , */ ) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else readNext = false;\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x7C /* | */ ) folding = false;\n else if (ch === 0x3E /* > */ ) folding = true;\n else return false;\n state.kind = \"scalar\";\n state.result = \"\";\n while(ch !== 0){\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x2B /* + */ || ch === 0x2D /* - */ ) {\n if (CHOMPING_CLIP === chomping) chomping = ch === 0x2B /* + */ ? CHOMPING_KEEP : CHOMPING_STRIP;\n else throwError(state, \"repeat of a chomping mode identifier\");\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else throwError(state, \"repeat of an indentation width identifier\");\n } else break;\n }\n if (is_WHITE_SPACE(ch)) {\n do ch = state.input.charCodeAt(++state.position);\n while (is_WHITE_SPACE(ch));\n if (ch === 0x23 /* # */ ) do ch = state.input.charCodeAt(++state.position);\n while (!is_EOL(ch) && ch !== 0);\n }\n while(ch !== 0){\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while((!detectedIndent || state.lineIndent < textIndent) && ch === 0x20 /* Space */ ){\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) textIndent = state.lineIndent;\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) state.result += \"\\n\";\n }\n break;\n }\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) state.result += \" \";\n } else state.result += common.repeat(\"\\n\", emptyLines);\n // Literal style: just add exact number of line breaks between content lines.\n } else // Keep all line breaks except the header line break.\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while(!is_EOL(ch) && ch !== 0)ch = state.input.charCodeAt(++state.position);\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 0x2D /* - */ ) break;\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) break;\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a sequence entry\");\n else if (state.lineIndent < nodeIndent) break;\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F /* ? */ || ch === 0x3A /* : */ ) && is_WS_OR_EOL(following)) {\n if (ch === 0x3F /* ? */ ) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n } else throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n state.position += 1;\n ch = following;\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) break;\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while(is_WHITE_SPACE(ch))ch = state.input.charCodeAt(++state.position);\n if (ch === 0x3A /* : */ ) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n } else if (detected) throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) keyNode = state.result;\n else valueNode = state.result;\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a mapping entry\");\n else if (state.lineIndent < nodeIndent) break;\n }\n //\n // Epilogue.\n //\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x21 /* ! */ ) return false;\n if (state.tag !== null) throwError(state, \"duplication of a tag property\");\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x3C /* < */ ) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 0x21 /* ! */ ) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else tagHandle = \"!\";\n _position = state.position;\n if (isVerbatim) {\n do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0 && ch !== 0x3E /* > */ );\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else throwError(state, \"unexpected end of the stream within a verbatim tag\");\n } else {\n while(ch !== 0 && !is_WS_OR_EOL(ch)){\n if (ch === 0x21 /* ! */ ) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) throwError(state, \"named tag handle cannot contain such characters\");\n isNamed = true;\n _position = state.position + 1;\n } else throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) throwError(state, \"tag name cannot contain such characters: \" + tagName);\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) state.tag = tagName;\n else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) state.tag = state.tagMap[tagHandle] + tagName;\n else if (tagHandle === \"!\") state.tag = \"!\" + tagName;\n else if (tagHandle === \"!!\") state.tag = \"tag:yaml.org,2002:\" + tagName;\n else throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n return true;\n}\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x26 /* & */ ) return false;\n if (state.anchor !== null) throwError(state, \"duplication of an anchor property\");\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch))ch = state.input.charCodeAt(++state.position);\n if (state.position === _position) throwError(state, \"name of an anchor node must contain at least one character\");\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x2A /* * */ ) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch))ch = state.input.charCodeAt(++state.position);\n if (state.position === _position) throwError(state, \"name of an alias node must contain at least one character\");\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) throwError(state, 'unidentified alias \"' + alias + '\"');\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type, flowIndent, blockIndent;\n if (state.listener !== null) state.listener(\"open\", state);\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) indentStatus = 1;\n else if (state.lineIndent === parentIndent) indentStatus = 0;\n else if (state.lineIndent < parentIndent) indentStatus = -1;\n }\n }\n if (indentStatus === 1) {\n while(readTagProperty(state) || readAnchorProperty(state))if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) indentStatus = 1;\n else if (state.lineIndent === parentIndent) indentStatus = 0;\n else if (state.lineIndent < parentIndent) indentStatus = -1;\n } else allowBlockCollections = false;\n }\n if (allowBlockCollections) allowBlockCollections = atNewLine || allowCompact;\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) flowIndent = parentIndent;\n else flowIndent = parentIndent + 1;\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) hasContent = true;\n else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) hasContent = true;\n else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) throwError(state, \"alias node should not have any properties\");\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) state.tag = \"?\";\n }\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n }\n } else if (indentStatus === 0) // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n if (state.tag === null) {\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n } else if (state.tag === \"?\") {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== \"scalar\") throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n for(typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1){\n type = state.implicitTypes[typeIndex];\n if (type.resolve(state.result)) {\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) type = state.typeMap[state.kind || \"fallback\"][state.tag];\n else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for(typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1)if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n if (!type) throwError(state, \"unknown tag !<\" + state.tag + \">\");\n if (state.result !== null && type.kind !== state.kind) throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n if (!type.resolve(state.result, state.tag)) throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n }\n }\n if (state.listener !== null) state.listener(\"close\", state);\n return state.tag !== null || state.anchor !== null || hasContent;\n}\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 0x25 /* % */ ) break;\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch))ch = state.input.charCodeAt(++state.position);\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) throwError(state, \"directive name must not be less than one character in length\");\n while(ch !== 0){\n while(is_WHITE_SPACE(ch))ch = state.input.charCodeAt(++state.position);\n if (ch === 0x23 /* # */ ) {\n do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch))ch = state.input.charCodeAt(++state.position);\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) directiveHandlers[directiveName](state, directiveName, directiveArgs);\n else throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 0x2D /* - */ && state.input.charCodeAt(state.position + 1) === 0x2D /* - */ && state.input.charCodeAt(state.position + 2) === 0x2D /* - */ ) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) throwError(state, \"directives end mark is expected\");\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 0x2E /* . */ ) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) throwError(state, \"end of the stream or a document separator is expected\");\n else return;\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A /* LF */ && input.charCodeAt(input.length - 1) !== 0x0D /* CR */ ) input += \"\\n\";\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) input = input.slice(1);\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += \"\\0\";\n while(state.input.charCodeAt(state.position) === 0x20 /* Space */ ){\n state.lineIndent += 1;\n state.position += 1;\n }\n while(state.position < state.length - 1)readDocument(state);\n return state.documents;\n}\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") return documents;\n for(var index = 0, length = documents.length; index < length; index += 1)iterator(documents[index]);\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) /*eslint-disable no-undefined*/ return undefined;\n else if (documents.length === 1) return documents[0];\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\n/*eslint-disable no-use-before-define*/ var _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */ \nvar CHAR_LINE_FEED = 0x0A; /* LF */ \nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ \nvar CHAR_SPACE = 0x20; /* Space */ \nvar CHAR_EXCLAMATION = 0x21; /* ! */ \nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */ \nvar CHAR_SHARP = 0x23; /* # */ \nvar CHAR_PERCENT = 0x25; /* % */ \nvar CHAR_AMPERSAND = 0x26; /* & */ \nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */ \nvar CHAR_ASTERISK = 0x2A; /* * */ \nvar CHAR_COMMA = 0x2C; /* , */ \nvar CHAR_MINUS = 0x2D; /* - */ \nvar CHAR_COLON = 0x3A; /* : */ \nvar CHAR_EQUALS = 0x3D; /* = */ \nvar CHAR_GREATER_THAN = 0x3E; /* > */ \nvar CHAR_QUESTION = 0x3F; /* ? */ \nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */ \nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ \nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ \nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */ \nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ \nvar CHAR_VERTICAL_LINE = 0x7C; /* | */ \nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ \nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0x00] = \"\\\\0\";\nESCAPE_SEQUENCES[0x07] = \"\\\\a\";\nESCAPE_SEQUENCES[0x08] = \"\\\\b\";\nESCAPE_SEQUENCES[0x09] = \"\\\\t\";\nESCAPE_SEQUENCES[0x0A] = \"\\\\n\";\nESCAPE_SEQUENCES[0x0B] = \"\\\\v\";\nESCAPE_SEQUENCES[0x0C] = \"\\\\f\";\nESCAPE_SEQUENCES[0x0D] = \"\\\\r\";\nESCAPE_SEQUENCES[0x1B] = \"\\\\e\";\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[0x85] = \"\\\\N\";\nESCAPE_SEQUENCES[0xA0] = \"\\\\_\";\nESCAPE_SEQUENCES[0x2028] = \"\\\\L\";\nESCAPE_SEQUENCES[0x2029] = \"\\\\P\";\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n \"y\",\n \"Y\",\n \"yes\",\n \"Yes\",\n \"YES\",\n \"on\",\n \"On\",\n \"ON\",\n \"n\",\n \"N\",\n \"no\",\n \"No\",\n \"NO\",\n \"off\",\n \"Off\",\n \"OFF\"\n];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n if (map === null) return {};\n result = {};\n keys = Object.keys(map);\n for(index = 0, length = keys.length; index < length; index += 1){\n tag = keys[index];\n style = String(map[tag]);\n if (tag.slice(0, 2) === \"!!\") tag = \"tag:yaml.org,2002:\" + tag.slice(2);\n type = schema.compiledTypeMap[\"fallback\"][tag];\n if (type && _hasOwnProperty.call(type.styleAliases, style)) style = type.styleAliases[style];\n result[tag] = style;\n }\n return result;\n}\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 0xFF) {\n handle = \"x\";\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = \"u\";\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = \"U\";\n length = 8;\n } else throw new exception(\"code point within a string may not be greater than 0xFFFFFFFF\");\n return \"\\\\\" + handle + common.repeat(\"0\", length - string.length) + string;\n}\nvar QUOTING_TYPE_SINGLE = 1, QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options[\"schema\"] || _default;\n this.indent = Math.max(1, options[\"indent\"] || 2);\n this.noArrayIndent = options[\"noArrayIndent\"] || false;\n this.skipInvalid = options[\"skipInvalid\"] || false;\n this.flowLevel = common.isNothing(options[\"flowLevel\"]) ? -1 : options[\"flowLevel\"];\n this.styleMap = compileStyleMap(this.schema, options[\"styles\"] || null);\n this.sortKeys = options[\"sortKeys\"] || false;\n this.lineWidth = options[\"lineWidth\"] || 80;\n this.noRefs = options[\"noRefs\"] || false;\n this.noCompatMode = options[\"noCompatMode\"] || false;\n this.condenseFlow = options[\"condenseFlow\"] || false;\n this.quotingType = options[\"quotingType\"] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options[\"forceQuotes\"] || false;\n this.replacer = typeof options[\"replacer\"] === \"function\" ? options[\"replacer\"] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = \"\";\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(\" \", spaces), position = 0, next = -1, result = \"\", line, length = string.length;\n while(position < length){\n next = string.indexOf(\"\\n\", position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== \"\\n\") result += ind;\n result += line;\n }\n return result;\n}\nfunction generateNextLine(state, level) {\n return \"\\n\" + common.repeat(\" \", state.indent * level);\n}\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n for(index = 0, length = state.implicitTypes.length; index < length; index += 1){\n type = state.implicitTypes[index];\n if (type.resolve(str)) return true;\n }\n return false;\n}\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return 0x00020 <= c && c <= 0x00007E || 0x000A1 <= c && c <= 0x00D7FF && c !== 0x2028 && c !== 0x2029 || 0x0E000 <= c && c <= 0x00FFFD && c !== CHAR_BOM || 0x10000 <= c && c <= 0x10FFFF;\n}\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return(// ns-plain-safe\n (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar // false on ': '\n ) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP // change to true on '[^ ]#'\n || prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) // - s-white\n && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n return first;\n}\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\nvar STYLE_PLAIN = 1, STYLE_SINGLE = 2, STYLE_LITERAL = 3, STYLE_FOLDED = 4, STYLE_DOUBLE = 5;\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var _char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for(i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n if (!isPrintable(_char)) return STYLE_DOUBLE;\n plain = plain && isPlainSafe(_char, prevChar, inblock);\n prevChar = _char;\n }\n else {\n // Case: block styles permitted.\n for(i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n if (_char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.\n i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n previousLineBreak = i;\n }\n } else if (!isPrintable(_char)) return STYLE_DOUBLE;\n plain = plain && isPlainSafe(_char, prevChar, inblock);\n prevChar = _char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) return STYLE_PLAIN;\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) return STYLE_DOUBLE;\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = function() {\n if (string.length === 0) return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n switch(chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)){\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return \"|\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return \">\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception(\"impossible error: invalid scalar style\");\n }\n }();\n}\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : \"\";\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === \"\\n\";\n var keep = clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\");\n var chomp = keep ? \"+\" : clip ? \"\" : \"-\";\n return indentIndicator + chomp + \"\\n\";\n}\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n // first line (possibly an empty line)\n var result = function() {\n var nextLF = string.indexOf(\"\\n\");\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }();\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === \"\\n\" || string[0] === \" \";\n var moreIndented;\n // rest of the lines\n var match;\n while(match = lineRe.exec(string)){\n var prefix = match[1], line = match[2];\n moreIndented = line[0] === \" \";\n result += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === \"\" || line[0] === \" \") return line;\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = \"\";\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while(match = breakRe.exec(line)){\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = curr > start ? curr : next; // derive end <= length-2\n result += \"\\n\" + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += \"\\n\";\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) result += line.slice(start, curr) + \"\\n\" + line.slice(curr + 1);\n else result += line.slice(start);\n return result.slice(1); // drop extra \\n joiner\n}\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = \"\";\n var _char = 0;\n var escapeSeq;\n for(var i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[_char];\n if (!escapeSeq && isPrintable(_char)) {\n result += string[i];\n if (_char >= 0x10000) result += string[i + 1];\n } else result += escapeSeq || encodeHex(_char);\n }\n return result;\n}\nfunction writeFlowSequence(state, level, object) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for(index = 0, length = object.length; index < length; index += 1){\n value = object[index];\n if (state.replacer) value = state.replacer.call(object, String(index), value);\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) || typeof value === \"undefined\" && writeNode(state, level, null, false, false)) {\n if (_result !== \"\") _result += \",\" + (!state.condenseFlow ? \" \" : \"\");\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = \"[\" + _result + \"]\";\n}\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for(index = 0, length = object.length; index < length; index += 1){\n value = object[index];\n if (state.replacer) value = state.replacer.call(object, String(index), value);\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === \"undefined\" && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== \"\") _result += generateNextLine(state, level);\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) _result += \"-\";\n else _result += \"- \";\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || \"[]\"; // Empty sequence if no valid values.\n}\nfunction writeFlowMapping(state, level, object) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for(index = 0, length = objectKeyList.length; index < length; index += 1){\n pairBuffer = \"\";\n if (_result !== \"\") pairBuffer += \", \";\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) objectValue = state.replacer.call(object, objectKey, objectValue);\n if (!writeNode(state, level, objectKey, false, false)) continue; // Skip this pair because of invalid key;\n if (state.dump.length > 1024) pairBuffer += \"? \";\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : \"\") + \":\" + (state.condenseFlow ? \"\" : \" \");\n if (!writeNode(state, level, objectValue, false, false)) continue; // Skip this pair because of invalid value.\n pairBuffer += state.dump;\n // Both key and value are valid.\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = \"{\" + _result + \"}\";\n}\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) // Default sorting\n objectKeyList.sort();\n else if (typeof state.sortKeys === \"function\") // Custom sort function\n objectKeyList.sort(state.sortKeys);\n else if (state.sortKeys) // Something is wrong\n throw new exception(\"sortKeys must be a boolean or a function\");\n for(index = 0, length = objectKeyList.length; index < length; index += 1){\n pairBuffer = \"\";\n if (!compact || _result !== \"\") pairBuffer += generateNextLine(state, level);\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) objectValue = state.replacer.call(object, objectKey, objectValue);\n if (!writeNode(state, level + 1, objectKey, true, true, true)) continue; // Skip this pair because of invalid key.\n explicitPair = state.tag !== null && state.tag !== \"?\" || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) pairBuffer += \"?\";\n else pairBuffer += \"? \";\n }\n pairBuffer += state.dump;\n if (explicitPair) pairBuffer += generateNextLine(state, level);\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) continue; // Skip this pair because of invalid value.\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) pairBuffer += \":\";\n else pairBuffer += \": \";\n pairBuffer += state.dump;\n // Both key and value are valid.\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || \"{}\"; // Empty mapping if no valid pairs.\n}\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for(index = 0, length = typeList.length; index < length; index += 1){\n type = typeList[index];\n if ((type.instanceOf || type.predicate) && (!type.instanceOf || typeof object === \"object\" && object instanceof type.instanceOf) && (!type.predicate || type.predicate(object))) {\n if (explicit) {\n if (type.multi && type.representName) state.tag = type.representName(object);\n else state.tag = type.tag;\n } else state.tag = \"?\";\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n if (_toString.call(type.represent) === \"[object Function]\") _result = type.represent(object, style);\n else if (_hasOwnProperty.call(type.represent, style)) _result = type.represent[style](object, style);\n else throw new exception(\"!<\" + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) detectType(state, object, true);\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) block = state.flowLevel < 0 || state.flowLevel > level;\n var objectOrArray = type === \"[object Object]\" || type === \"[object Array]\", duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== \"?\" || duplicate || state.indent !== 2 && level > 0) compact = false;\n if (duplicate && state.usedDuplicates[duplicateIndex]) state.dump = \"*ref_\" + duplicateIndex;\n else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) state.usedDuplicates[duplicateIndex] = true;\n if (type === \"[object Object]\") {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + state.dump;\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n } else if (type === \"[object Array]\") {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) writeBlockSequence(state, level - 1, state.dump, compact);\n else writeBlockSequence(state, level, state.dump, compact);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + state.dump;\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n } else if (type === \"[object String]\") {\n if (state.tag !== \"?\") writeScalar(state, state.dump, level, iskey, inblock);\n } else if (type === \"[object Undefined]\") return false;\n else {\n if (state.skipInvalid) return false;\n throw new exception(\"unacceptable kind of an object to dump \" + type);\n }\n if (state.tag !== null && state.tag !== \"?\") {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(state.tag[0] === \"!\" ? state.tag.slice(1) : state.tag).replace(/!/g, \"%21\");\n if (state.tag[0] === \"!\") tagStr = \"!\" + tagStr;\n else if (tagStr.slice(0, 18) === \"tag:yaml.org,2002:\") tagStr = \"!!\" + tagStr.slice(18);\n else tagStr = \"!<\" + tagStr + \">\";\n state.dump = tagStr + \" \" + state.dump;\n }\n }\n return true;\n}\nfunction getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for(index = 0, length = duplicatesIndexes.length; index < length; index += 1)state.duplicates.push(objects[duplicatesIndexes[index]]);\n state.usedDuplicates = new Array(length);\n}\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && typeof object === \"object\") {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) duplicatesIndexes.push(index);\n } else {\n objects.push(object);\n if (Array.isArray(object)) for(index = 0, length = object.length; index < length; index += 1)inspectNode(object[index], objects, duplicatesIndexes);\n else {\n objectKeyList = Object.keys(object);\n for(index = 0, length = objectKeyList.length; index < length; index += 1)inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n}\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) value = state.replacer.call({\n \"\": value\n }, \"\", value);\n if (writeNode(state, 0, value, true, true)) return state.dump + \"\\n\";\n return \"\";\n}\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. \" + \"Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: _float,\n map: map,\n \"null\": _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: _int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\nvar jsYaml = {\n Type: Type,\n Schema: Schema,\n FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n JSON_SCHEMA: JSON_SCHEMA,\n CORE_SCHEMA: CORE_SCHEMA,\n DEFAULT_SCHEMA: DEFAULT_SCHEMA,\n load: load,\n loadAll: loadAll,\n dump: dump,\n YAMLException: YAMLException,\n types: types,\n safeLoad: safeLoad,\n safeLoadAll: safeLoadAll,\n safeDump: safeDump\n};\nexports.default = jsYaml;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"4ztg2\":[function(require,module,exports) {\nvar _classCallCheck = require(\"@swc/helpers/_/_class_call_check\");\nvar _createClass = require(\"@swc/helpers/_/_create_class\");\nvar _defineProperty = require(\"@swc/helpers/_/_define_property\");\n/*!\n * secure-ls - v1.2.6\n * URL - https://github.com/softvar/secure-ls\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2016-2024 Varun Malhotra\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n *\n * Dependencies used -\n * 1. crypto-js - ^4.2.0\n * 2. lz-string - ^1.5.0\n */ (function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory();\n})(undefined, function() {\n return /******/ function() {\n // webpackBootstrap\n /******/ var __webpack_modules__ = {\n /***/ \"./src/Base64.js\": /*!***********************!*\\\n !*** ./src/Base64.js ***!\n \\***********************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n var Base64 = {\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n encode: function encode(e) {\n var t = \"\";\n var n, r, i, s, o, u, a;\n var f = 0;\n e = Base64._utf8Encode(e);\n while(f < e.length){\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = (n & 3) << 4 | r >> 4;\n u = (r & 15) << 2 | i >> 6;\n a = i & 63;\n if (isNaN(r)) u = a = 64;\n else if (isNaN(i)) a = 64;\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function decode(e) {\n var t = \"\";\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\n while(f < e.length){\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) t = t + String.fromCharCode(r);\n if (a !== 64) t = t + String.fromCharCode(i);\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function _utf8Encode(e) {\n e = e.replace(/\\r\\n/g, \"\\n\");\n var t = \"\";\n for(var n = 0; n < e.length; n++){\n var r = e.charCodeAt(n);\n if (r < 128) t += String.fromCharCode(r);\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n } else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n },\n _utf8Decode: function _utf8Decode(e) {\n var t = \"\";\n var n = 0;\n var r, c2, c3;\n r = c2 = 0;\n while(n < e.length){\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n n += 3;\n }\n }\n return t;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = Base64;\n /***/ },\n /***/ \"./src/SecureLS.js\": /*!*************************!*\\\n !*** ./src/SecureLS.js ***!\n \\*************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ SecureLS: function() {\n return /* binding */ SecureLS;\n }\n });\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\n /* harmony import */ var _enc_utf8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enc-utf8 */ \"./src/enc-utf8.js\");\n /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! crypto-js/aes */ \"./node_modules/crypto-js/aes.js\");\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto-js/rabbit */ \"./node_modules/crypto-js/rabbit.js\");\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! crypto-js/rc4 */ \"./node_modules/crypto-js/rc4.js\");\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__);\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! crypto-js/tripledes */ \"./node_modules/crypto-js/tripledes.js\");\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__);\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lz-string/libs/lz-string */ \"./node_modules/lz-string/libs/lz-string.js\");\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/ __webpack_require__.n(lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__);\n /* harmony import */ var _Base64__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Base64 */ \"./src/Base64.js\");\n var _obj;\n var encryptors = (_obj = {}, (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.AES, crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.DES, crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RABBIT, crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RC4, crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default()), _obj);\n var SecureLS = /*#__PURE__*/ function() {\n function SecureLS() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_encryptionSecret = _ref.encryptionSecret, encryptionSecret = _ref_encryptionSecret === void 0 ? \"\" : _ref_encryptionSecret, _ref_encryptionNamespace = _ref.encryptionNamespace, encryptionNamespace = _ref_encryptionNamespace === void 0 ? \"\" : _ref_encryptionNamespace, _ref_isCompression = _ref.isCompression, isCompression = _ref_isCompression === void 0 ? true : _ref_isCompression, _ref_encodingType = _ref.encodingType, encodingType = _ref_encodingType === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64 : _ref_encodingType, _ref_storage = _ref.storage, storage = _ref_storage === void 0 ? localStorage : _ref_storage, _ref_metaKey = _ref.metaKey, metaKey = _ref_metaKey === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].metaKey : _ref_metaKey;\n (0, _classCallCheck._)(this, SecureLS);\n // Assign libraries and utilities\n Object.assign(this, {\n _name: \"secure-ls\",\n Base64: _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n LZString: {\n compressToUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.compressToUTF16,\n decompressFromUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.decompressFromUTF16\n },\n AES: crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n DES: crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n RABBIT: crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n RC4: crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n enc: _enc_utf8__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n });\n // Configuration and property assignment\n this.config = {\n encryptionSecret: encryptionSecret,\n encryptionNamespace: encryptionNamespace,\n isCompression: isCompression,\n encodingType: encodingType.toLowerCase(),\n storage: storage,\n metaKey: metaKey\n };\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n // Initialize the class\n this.init();\n }\n (0, _createClass._)(SecureLS, [\n {\n key: \"init\",\n value: function init() {\n var metaData = this.getMetaData();\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n },\n {\n key: \"_isBase64EncryptionType\",\n value: function _isBase64EncryptionType() {\n return _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"] && (typeof this.config.encodingType === \"undefined\" || this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64);\n }\n },\n {\n key: \"_isAESEncryptionType\",\n value: function _isAESEncryptionType() {\n return crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.AES;\n }\n },\n {\n key: \"_isDESEncryptionType\",\n value: function _isDESEncryptionType() {\n return crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.DES;\n }\n },\n {\n key: \"_isRabbitEncryptionType\",\n value: function _isRabbitEncryptionType() {\n return crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RABBIT;\n }\n },\n {\n key: \"_isRC4EncryptionType\",\n value: function _isRC4EncryptionType() {\n return crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RC4;\n }\n },\n {\n key: \"_isDataCompressionEnabled\",\n value: function _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n },\n {\n key: \"getEncryptionSecret\",\n value: function getEncryptionSecret(key) {\n var metaData = this.getMetaData();\n var obj = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getObjectFromKey(metaData.keys, key);\n if (!obj) return;\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === \"undefined\") {\n this.encryptionSecret = obj.s;\n if (!this.encryptionSecret) {\n this.encryptionSecret = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].generateSecretKey();\n this.setMetaData();\n }\n } else this.encryptionSecret = this.config.encryptionSecret || obj.s || \"\";\n }\n }\n },\n {\n key: \"getEncryptionType\",\n value: function getEncryptionType() {\n var encodingType = this.config.encodingType;\n return encodingType ? encodingType.toLowerCase() : _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64;\n }\n },\n {\n key: \"getDataFromLocalStorage\",\n value: function getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n },\n {\n key: \"setDataToLocalStorage\",\n value: function setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n },\n {\n key: \"setMetaData\",\n value: function setMetaData() {\n var dataToStore = this.processData({\n keys: this.allKeys\n }, true);\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n },\n {\n key: \"getMetaData\",\n value: function getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n },\n {\n key: \"getMetaKey\",\n value: function getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? \"__\" + this.config.encryptionNamespace : \"\");\n }\n },\n {\n key: \"resetAllKeys\",\n value: function resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n },\n {\n key: \"processData\",\n value: function processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === \"\") return \"\";\n var jsonData;\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error(\"Could not stringify data\", err);\n }\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n var encodedData = jsonData;\n if (this._isBase64 || isAllKeysData) encodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"].encode(jsonData);\n else {\n var encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n encodedData = encodedData && encodedData.toString();\n }\n // Compress data if set to true\n var compressedData = encodedData;\n if (this._isCompression || isAllKeysData) compressedData = this.LZString.compressToUTF16(encodedData);\n return compressedData;\n }\n },\n {\n // PUBLIC APIs\n key: \"getAllKeys\",\n value: function getAllKeys() {\n var data = this.getMetaData();\n return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extractKeyNames(data) || [];\n }\n },\n {\n key: \"get\",\n value: function get(key, isAllKeysData) {\n var decodedData = \"\";\n var jsonData = \"\";\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return jsonData;\n }\n var data = this.getDataFromLocalStorage(key);\n if (!data) return jsonData;\n var deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) // meta data always Base64\n decodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"].decode(deCompressedData);\n else {\n this.getEncryptionSecret(key);\n var encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n var bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n if (bytes) decodedData = bytes.toString(_enc_utf8__WEBPACK_IMPORTED_MODULE_1__[\"default\"]._Utf8);\n }\n }\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error(\"Could not parse JSON\", err);\n }\n return jsonData;\n }\n },\n {\n key: \"set\",\n value: function set(key, data) {\n var dataToStore = \"\";\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n this.getEncryptionSecret(key);\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret\n });\n this.setMetaData();\n }\n }\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n },\n {\n key: \"remove\",\n value: function remove(key) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n if (key === this.metaKey && this.getAllKeys().length) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.META_KEY_REMOVE);\n return;\n }\n if (_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isKeyPresent(this.allKeys, key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n },\n {\n key: \"removeAll\",\n value: function removeAll() {\n var keys = this.getAllKeys();\n for(var i = 0; i < keys.length; i++)this.storage.removeItem(keys[i]);\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n },\n {\n key: \"clear\",\n value: function clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n }\n ]);\n return SecureLS;\n }();\n /***/ },\n /***/ \"./src/WordArray.js\": /*!**************************!*\\\n !*** ./src/WordArray.js ***!\n \\**************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */ var CryptoJSWordArray = {\n random: function random(nBytes) {\n var words = [];\n var r = function r(mw) {\n var mz = 0x3ade68b1;\n var mask = 0xffffffff;\n return function() {\n mz = 0x9069 * (mz & 0xffff) + (mz >> 0x10) & mask;\n mw = 0x4650 * (mw & 0xffff) + (mw >> 0x10) & mask;\n var result = (mz << 0x10) + mw & mask;\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n for(var i = 0, rcache; i < nBytes; i += 4){\n var _r = r((rcache || Math.random()) * 0x100000000);\n rcache = _r() * 0x3ade67b7;\n words.push(_r() * 0x100000000 | 0);\n }\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n Set: function Set(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes !== undefined) this.sigBytes = sigBytes;\n else this.sigBytes = words.length * 8;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = CryptoJSWordArray;\n /***/ },\n /***/ \"./src/constants.js\": /*!**************************!*\\\n !*** ./src/constants.js ***!\n \\**************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n var WarningEnum = {\n KEY_NOT_PROVIDED: \"keyNotProvided\",\n META_KEY_REMOVE: \"metaKeyRemove\",\n DEFAULT_TEXT: \"defaultText\"\n };\n var WarningTypes = {};\n WarningTypes[WarningEnum.KEY_NOT_PROVIDED] = \"Secure LS: Key not provided. Aborting operation!\";\n WarningTypes[WarningEnum.META_KEY_REMOVE] = \"Secure LS: Meta key can not be removed\\nunless all keys created by Secure LS are removed!\";\n WarningTypes[WarningEnum.DEFAULT_TEXT] = \"Unexpected output\";\n var constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: \"base64\",\n AES: \"aes\",\n DES: \"des\",\n RABBIT: \"rabbit\",\n RC4: \"rc4\"\n },\n metaKey: \"_secure__ls__metadata\",\n secretPhrase: \"s3cr3t$#@135^&*246\"\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = constants;\n /***/ },\n /***/ \"./src/enc-utf8.js\": /*!*************************!*\\\n !*** ./src/enc-utf8.js ***!\n \\*************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */ var enc = {\n Latin1: {\n stringify: function(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var latin1Chars = [], i, bite;\n // Convert\n for(i = 0; i < sigBytes; i++){\n bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join(\"\");\n }\n },\n _Utf8: {\n stringify: function(wordArray) {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error(\"Malformed UTF-8 data\", err);\n }\n }\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = enc;\n /***/ },\n /***/ \"./src/utils.js\": /*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto-js/pbkdf2 */ \"./node_modules/crypto-js/pbkdf2.js\");\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\n /* harmony import */ var _WordArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./WordArray */ \"./src/WordArray.js\");\n var utils = {\n is: function(key) {\n return !!key;\n },\n warn: function() {\n var reason = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].WarningEnum.DEFAULT_TEXT;\n console.warn(_constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].WarningTypes[reason]);\n },\n generateSecretKey: function() {\n var salt = _WordArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"].random(16);\n var key128Bits = crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default()(_constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].secretPhrase, salt, {\n keySize: 4\n });\n return key128Bits.toString();\n },\n getObjectFromKey: function() {\n var data = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n return data.find(function(item) {\n return item.k === key;\n }) || {};\n },\n extractKeyNames: function() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_keys = _ref.keys, keys = _ref_keys === void 0 ? [] : _ref_keys;\n return keys.map(function(param) {\n var k = param.k;\n return k;\n });\n },\n isKeyPresent: function() {\n var allKeys = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n return allKeys.some(function(item) {\n return String(item.k) === String(key);\n });\n },\n removeFromKeysList: function() {\n var allKeys = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n var index = allKeys.findIndex(function(item) {\n return item.k === key;\n });\n if (index !== -1) allKeys.splice(index, 1);\n return index;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = utils;\n /***/ },\n /***/ \"./node_modules/crypto-js/aes.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/aes.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n // Lookup tables\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n // Compute lookup tables\n (function() {\n // Compute double table\n var d = [];\n for(var i = 0; i < 256; i++)if (i < 128) d[i] = i << 1;\n else d[i] = i << 1 ^ 0x11b;\n // Walk GF(2^8)\n var x = 0;\n var xi = 0;\n for(var i = 0; i < 256; i++){\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n // Compute multiplication\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n // Compute sub bytes, mix columns tables\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t;\n // Compute inv sub bytes, inv mix columns tables\n var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t;\n // Compute next counter\n if (!x) x = xi = 1;\n else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n // Precomputed Rcon lookup\n var RCON = [\n 0x00,\n 0x01,\n 0x02,\n 0x04,\n 0x08,\n 0x10,\n 0x20,\n 0x40,\n 0x80,\n 0x1b,\n 0x36\n ];\n /**\n * AES block cipher algorithm.\n */ var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function _doReset() {\n var t;\n // Skip reset of nRounds has been set before and key did not change\n if (this._nRounds && this._keyPriorReset === this._key) return;\n // Shortcuts\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n // Compute number of rounds\n var nRounds = this._nRounds = keySize + 6;\n // Compute number of key schedule rows\n var ksRows = (nRounds + 1) * 4;\n // Compute key schedule\n var keySchedule = this._keySchedule = [];\n for(var ksRow = 0; ksRow < ksRows; ksRow++)if (ksRow < keySize) keySchedule[ksRow] = keyWords[ksRow];\n else {\n t = keySchedule[ksRow - 1];\n if (!(ksRow % keySize)) {\n // Rot word\n t = t << 8 | t >>> 24;\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n // Mix Rcon\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n // Compute inv key schedule\n var invKeySchedule = this._invKeySchedule = [];\n for(var invKsRow = 0; invKsRow < ksRows; invKsRow++){\n var ksRow = ksRows - invKsRow;\n if (invKsRow % 4) var t = keySchedule[ksRow];\n else var t = keySchedule[ksRow - 4];\n if (invKsRow < 4 || ksRow <= 4) invKeySchedule[invKsRow] = t;\n else invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function decryptBlock(M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n // Inv swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function _doCryptBlock(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds;\n // Get input, add round key\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n // Key schedule row counter\n var ksRow = 4;\n // Rounds\n for(var round = 1; round < nRounds; round++){\n // Shift rows, sub bytes, mix columns, add round key\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n // Shift rows, sub bytes, add round key\n var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n // Set output\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 8\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */ C.AES = BlockCipher._createHelper(AES);\n })();\n return CryptoJS.AES;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/cipher-core.js\": /*!***********************************************!*\\\n !*** ./node_modules/crypto-js/cipher-core.js ***!\n \\***********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"));\n })(this, function(CryptoJS) {\n /**\n * Cipher core components.\n */ CryptoJS.lib.Cipher || function(undefined1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */ var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */ cfg: Base.extend(),\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */ createEncryptor: function createEncryptor(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */ createDecryptor: function createDecryptor(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */ init: function init(xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n // Store transform mode and key\n this._xformMode = xformMode;\n this._key = key;\n // Set initial values\n this.reset();\n },\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */ reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n // Perform concrete-cipher logic\n this._doReset();\n },\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */ process: function process(dataUpdate) {\n // Append\n this._append(dataUpdate);\n // Process available blocks\n return this._process();\n },\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */ finalize: function finalize(dataUpdate) {\n // Final data update\n if (dataUpdate) this._append(dataUpdate);\n // Perform concrete-cipher logic\n var finalProcessedData = this._doFinalize();\n return finalProcessedData;\n },\n keySize: 4,\n ivSize: 4,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */ _createHelper: function() {\n function selectCipherStrategy(key) {\n if (typeof key == \"string\") return PasswordBasedCipher;\n else return SerializableCipher;\n }\n return function(cipher) {\n return {\n encrypt: function encrypt(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function decrypt(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */ var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function _doFinalize() {\n // Process partial blocks\n var finalProcessedBlocks = this._process(true);\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n /**\n * Mode namespace.\n */ var C_mode = C.mode = {};\n /**\n * Abstract base block cipher mode template.\n */ var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */ createEncryptor: function createEncryptor(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */ createDecryptor: function createDecryptor(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */ init: function init(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n /**\n * Cipher Block Chaining mode.\n */ var CBC = C_mode.CBC = function() {\n /**\n * Abstract base CBC mode.\n */ var CBC = BlockCipherMode.extend();\n /**\n * CBC encryptor.\n */ CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */ processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n // XOR and encrypt\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n // Remember this block to use with next block\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n /**\n * CBC decryptor.\n */ CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */ processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n // Remember this block to use with next block\n var thisBlock = words.slice(offset, offset + blockSize);\n // Decrypt and XOR\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n // This block becomes the previous block\n this._prevBlock = thisBlock;\n }\n });\n function xorBlock(words, offset, blockSize) {\n var block;\n // Shortcut\n var iv = this._iv;\n // Choose mixing block\n if (iv) {\n block = iv;\n // Remove IV for subsequent blocks\n this._iv = undefined1;\n } else block = this._prevBlock;\n // XOR blocks\n for(var i = 0; i < blockSize; i++)words[offset + i] ^= block[i];\n }\n return CBC;\n }();\n /**\n * Padding namespace.\n */ var C_pad = C.pad = {};\n /**\n * PKCS #5/7 padding strategy.\n */ var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */ pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4;\n // Count padding bytes\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n // Create padding word\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;\n // Create padding\n var paddingWords = [];\n for(var i = 0; i < nPaddingBytes; i += 4)paddingWords.push(paddingWord);\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n // Add padding\n data.concat(padding);\n },\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */ unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff;\n // Remove padding\n data.sigBytes -= nPaddingBytes;\n }\n };\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */ var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */ cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function reset() {\n var modeCreator;\n // Reset cipher\n Cipher.reset.call(this);\n // Shortcuts\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n // Reset block mode\n if (this._xformMode == this._ENC_XFORM_MODE) modeCreator = mode.createEncryptor;\n else {\n modeCreator = mode.createDecryptor;\n // Keep at least one block in the buffer for unpadding\n this._minBufferSize = 1;\n }\n if (this._mode && this._mode.__creator == modeCreator) this._mode.init(this, iv && iv.words);\n else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function _doProcessBlock(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function _doFinalize() {\n var finalProcessedBlocks;\n // Shortcut\n var padding = this.cfg.padding;\n // Finalize\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize);\n // Process final blocks\n finalProcessedBlocks = this._process(true);\n } else {\n // Process final blocks\n finalProcessedBlocks = this._process(true);\n // Unpad data\n padding.unpad(finalProcessedBlocks);\n }\n return finalProcessedBlocks;\n },\n blockSize: 4\n });\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */ var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */ init: function init(cipherParams) {\n this.mixIn(cipherParams);\n },\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */ toString: function toString(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n /**\n * Format namespace.\n */ var C_format = C.format = {};\n /**\n * OpenSSL formatting strategy.\n */ var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */ stringify: function stringify(cipherParams) {\n var wordArray;\n // Shortcuts\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n // Format\n if (salt) wordArray = WordArray.create([\n 0x53616c74,\n 0x65645f5f\n ]).concat(salt).concat(ciphertext);\n else wordArray = ciphertext;\n return wordArray.toString(Base64);\n },\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */ parse: function parse(openSSLStr) {\n var salt;\n // Parse base64\n var ciphertext = Base64.parse(openSSLStr);\n // Shortcut\n var ciphertextWords = ciphertext.words;\n // Test for salt\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n // Remove salt from ciphertext\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */ var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */ cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */ encrypt: function encrypt(cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Encrypt\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n // Shortcut\n var cipherCfg = encryptor.cfg;\n // Create and return serializable cipher params\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */ decrypt: function decrypt(cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n // Decrypt\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */ _parse: function _parse(ciphertext, format) {\n if (typeof ciphertext == \"string\") return format.parse(ciphertext, this);\n else return ciphertext;\n }\n });\n /**\n * Key derivation function namespace.\n */ var C_kdf = C.kdf = {};\n /**\n * OpenSSL key derivation function.\n */ var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */ execute: function execute(password, keySize, ivSize, salt, hasher) {\n // Generate random salt\n if (!salt) salt = WordArray.random(8);\n // Derive key and IV\n if (!hasher) var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt);\n else var key = EvpKDF.create({\n keySize: keySize + ivSize,\n hasher: hasher\n }).compute(password, salt);\n // Separate key and IV\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n // Return params\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */ var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */ cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */ encrypt: function encrypt(cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n // Add IV to config\n cfg.iv = derivedParams.iv;\n // Encrypt\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n // Mix in derived params\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */ decrypt: function decrypt(cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n // Add IV to config\n cfg.iv = derivedParams.iv;\n // Decrypt\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/core.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/core.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory();\n })(this, function() {\n /*globals window, global, require*/ /**\n * CryptoJS core components.\n */ var CryptoJS = CryptoJS || function(Math1, undefined1) {\n var crypto;\n // Native crypto from window (Browser)\n if (typeof window !== \"undefined\" && window.crypto) crypto = window.crypto;\n // Native crypto in web worker (Browser)\n if (typeof self !== \"undefined\" && self.crypto) crypto = self.crypto;\n // Native crypto from worker\n if (typeof globalThis !== \"undefined\" && globalThis.crypto) crypto = globalThis.crypto;\n // Native (experimental IE 11) crypto from window (Browser)\n if (!crypto && typeof window !== \"undefined\" && window.msCrypto) crypto = window.msCrypto;\n // Native crypto from global (NodeJS)\n if (!crypto && typeof __webpack_require__.g !== \"undefined\" && __webpack_require__.g.crypto) crypto = __webpack_require__.g.crypto;\n // Native crypto import via require (NodeJS)\n if (!crypto && true) try {\n crypto = __webpack_require__(/*! crypto */ \"?9157\");\n } catch (err) {}\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */ var cryptoSecureRandomInt = function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === \"function\") try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === \"function\") try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n };\n /*\n\t * Local polyfill of Object.create\n\n\t */ var create = Object.create || function() {\n function F() {}\n return function(obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */ var C = {};\n /**\n * Library namespace.\n */ var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */ var Base = C_lib.Base = function() {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */ extend: function extend(overrides) {\n // Spawn\n var subtype = create(this);\n // Augment\n if (overrides) subtype.mixIn(overrides);\n // Create default initializer\n if (!subtype.hasOwnProperty(\"init\") || this.init === subtype.init) subtype.init = function() {\n subtype.$super.init.apply(this, arguments);\n };\n // Initializer's prototype is the subtype object\n subtype.init.prototype = subtype;\n // Reference supertype\n subtype.$super = this;\n return subtype;\n },\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */ create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */ init: function init() {},\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */ mixIn: function mixIn(properties) {\n for(var propertyName in properties)if (properties.hasOwnProperty(propertyName)) this[propertyName] = properties[propertyName];\n // IE won't copy toString using the loop above\n if (properties.hasOwnProperty(\"toString\")) this.toString = properties.toString;\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */ clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */ var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */ init: function init(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined1) this.sigBytes = sigBytes;\n else this.sigBytes = words.length * 4;\n },\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */ toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */ concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n // Clamp excess bits\n this.clamp();\n // Concat\n if (thisSigBytes % 4) // Copy one byte at a time\n for(var i = 0; i < thatSigBytes; i++){\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n else // Copy one word at a time\n for(var j = 0; j < thatSigBytes; j += 4)thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n this.sigBytes += thatSigBytes;\n // Chainable\n return this;\n },\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */ clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes;\n // Clamp\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math1.ceil(sigBytes / 4);\n },\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */ clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */ random: function random(nBytes) {\n var words = [];\n for(var i = 0; i < nBytes; i += 4)words.push(cryptoSecureRandomInt());\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */ var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */ var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n // Convert\n var hexChars = [];\n for(var i = 0; i < sigBytes; i++){\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join(\"\");\n },\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */ parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length;\n // Convert\n var words = [];\n for(var i = 0; i < hexStrLength; i += 2)words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */ var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n // Convert\n var latin1Chars = [];\n for(var i = 0; i < sigBytes; i++){\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join(\"\");\n },\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */ parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length;\n // Convert\n var words = [];\n for(var i = 0; i < latin1StrLength; i++)words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */ var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */ parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */ reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */ _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == \"string\") data = Utf8.parse(data);\n // Append\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */ _process: function _process(doFlush) {\n var processedWords;\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n // Count blocks ready\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) // Round up to include partial blocks\n nBlocksReady = Math1.ceil(nBlocksReady);\n else // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math1.max((nBlocksReady | 0) - this._minBufferSize, 0);\n // Count words ready\n var nWordsReady = nBlocksReady * blockSize;\n // Count bytes ready\n var nBytesReady = Math1.min(nWordsReady * 4, dataSigBytes);\n // Process blocks\n if (nWordsReady) {\n for(var offset = 0; offset < nWordsReady; offset += blockSize)// Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n // Remove processed words\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n // Return processed words\n return new WordArray.init(processedWords, nBytesReady);\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */ clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */ cfg: Base.extend(),\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */ init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n // Set initial values\n this.reset();\n },\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */ reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n // Perform concrete-hasher logic\n this._doReset();\n },\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */ update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate);\n // Update the hash\n this._process();\n // Chainable\n return this;\n },\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */ finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) this._append(messageUpdate);\n // Perform concrete-hasher logic\n var hash = this._doFinalize();\n return hash;\n },\n blockSize: 16,\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */ _createHelper: function _createHelper(hasher) {\n return function(message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */ _createHmacHelper: function _createHmacHelper(hasher) {\n return function(message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */ var C_algo = C.algo = {};\n return C;\n }(Math);\n return CryptoJS;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/enc-base64.js\": /*!**********************************************!*\\\n !*** ./node_modules/crypto-js/enc-base64.js ***!\n \\**********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */ var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n // Clamp excess bits\n wordArray.clamp();\n // Convert\n var base64Chars = [];\n for(var i = 0; i < sigBytes; i += 3){\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for(var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++)base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) while(base64Chars.length % 4)base64Chars.push(paddingChar);\n return base64Chars.join(\"\");\n },\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */ parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for(var j = 0; j < map.length; j++)reverseMap[map.charCodeAt(j)] = j;\n }\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) base64StrLength = paddingIndex;\n }\n // Convert\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n };\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for(var i = 0; i < base64StrLength; i++)if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n return WordArray.create(words, nBytes);\n }\n })();\n return CryptoJS.enc.Base64;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/evpkdf.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/evpkdf.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha1 */ \"./node_modules/crypto-js/sha1.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */ var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */ cfg: Base.extend({\n keySize: 4,\n hasher: MD5,\n iterations: 1\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */ init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */ compute: function compute(password, salt) {\n var block;\n // Shortcut\n var cfg = this.cfg;\n // Init hasher\n var hasher = cfg.hasher.create();\n // Initial values\n var derivedKey = WordArray.create();\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n // Generate key\n while(derivedKeyWords.length < keySize){\n if (block) hasher.update(block);\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n // Iterations\n for(var i = 1; i < iterations; i++){\n block = hasher.finalize(block);\n hasher.reset();\n }\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */ C.EvpKDF = function(password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS.EvpKDF;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/hmac.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/hmac.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */ var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */ init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init();\n // Convert string to WordArray, else assume WordArray already\n if (typeof key == \"string\") key = Utf8.parse(key);\n // Shortcuts\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n // Allow arbitrary length keys\n if (key.sigBytes > hasherBlockSizeBytes) key = hasher.finalize(key);\n // Clamp excess bits\n key.clamp();\n // Clone key for inner and outer pads\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone();\n // Shortcuts\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n // XOR keys with pad constants\n for(var i = 0; i < hasherBlockSize; i++){\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n // Set initial values\n this.reset();\n },\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */ reset: function reset() {\n // Shortcut\n var hasher = this._hasher;\n // Reset\n hasher.reset();\n hasher.update(this._iKey);\n },\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */ update: function update(messageUpdate) {\n this._hasher.update(messageUpdate);\n // Chainable\n return this;\n },\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */ finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher;\n // Compute HMAC\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/md5.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/md5.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function(Math1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Constants table\n var T = [];\n // Compute constants\n (function() {\n for(var i = 0; i < 64; i++)T[i] = Math1.abs(Math1.sin(i + 1)) * 0x100000000 | 0;\n })();\n /**\n * MD5 hash algorithm.\n */ var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476\n ]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for(var i = 0; i < 16; i++){\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n }\n // Shortcuts\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n // Computation\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math1.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4;\n // Hash final blocks\n this._process();\n // Shortcuts\n var hash = this._hash;\n var H = hash.words;\n // Swap endian\n for(var i = 0; i < 4; i++){\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n }\n // Return final computed hash\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */ C.MD5 = Hasher._createHelper(MD5);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */ C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n return CryptoJS.MD5;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/pbkdf2.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/pbkdf2.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha256 */ \"./node_modules/crypto-js/sha256.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var HMAC = C_algo.HMAC;\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */ var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA256\n * @property {number} iterations The number of iterations to perform. Default: 250000\n */ cfg: Base.extend({\n keySize: 4,\n hasher: SHA256,\n iterations: 250000\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */ init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */ compute: function compute(password, salt) {\n // Shortcut\n var cfg = this.cfg;\n // Init HMAC\n var hmac = HMAC.create(cfg.hasher, password);\n // Initial values\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([\n 0x00000001\n ]);\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n // Generate key\n while(derivedKeyWords.length < keySize){\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset();\n // Shortcuts\n var blockWords = block.words;\n var blockWordsLength = blockWords.length;\n // Iterations\n var intermediate = block;\n for(var i = 1; i < iterations; i++){\n intermediate = hmac.finalize(intermediate);\n hmac.reset();\n // Shortcut\n var intermediateWords = intermediate.words;\n // XOR intermediate with block\n for(var j = 0; j < blockWordsLength; j++)blockWords[j] ^= intermediateWords[j];\n }\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */ C.PBKDF2 = function(password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS.PBKDF2;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/rabbit.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/rabbit.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n // Reusable objects\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm\n */ var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv;\n // Swap endian\n for(var i = 0; i < 4; i++)K[i] = (K[i] << 8 | K[i] >>> 24) & 0x00ff00ff | (K[i] << 24 | K[i] >>> 8) & 0xff00ff00;\n // Generate initial state values\n var X = this._X = [\n K[0],\n K[3] << 16 | K[2] >>> 16,\n K[1],\n K[0] << 16 | K[3] >>> 16,\n K[2],\n K[1] << 16 | K[0] >>> 16,\n K[3],\n K[2] << 16 | K[1] >>> 16\n ];\n // Generate initial counter values\n var C = this._C = [\n K[2] << 16 | K[2] >>> 16,\n K[0] & 0xffff0000 | K[1] & 0x0000ffff,\n K[3] << 16 | K[3] >>> 16,\n K[1] & 0xffff0000 | K[2] & 0x0000ffff,\n K[0] << 16 | K[0] >>> 16,\n K[2] & 0xffff0000 | K[3] & 0x0000ffff,\n K[1] << 16 | K[1] >>> 16,\n K[3] & 0xffff0000 | K[0] & 0x0000ffff\n ];\n // Carry bit\n this._b = 0;\n // Iterate the system four times\n for(var i = 0; i < 4; i++)nextState.call(this);\n // Modify the counters\n for(var i = 0; i < 8; i++)C[i] ^= X[i + 4 & 7];\n // IV setup\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n // Generate four subvectors\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff;\n // Modify counter values\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3;\n // Iterate the system four times\n for(var i = 0; i < 4; i++)nextState.call(this);\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X;\n // Iterate the system\n nextState.call(this);\n // Generate four keystream words\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n for(var i = 0; i < 4; i++){\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00;\n // Encrypt\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 4,\n ivSize: 2\n });\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C;\n // Save old counter values\n for(var i = 0; i < 8; i++)C_[i] = C[i];\n // Calculate new counter values\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n // Calculate the g-values\n for(var i = 0; i < 8; i++){\n var gx = X[i] + C[i];\n // Construct high and low argument for squaring\n var ga = gx & 0xffff;\n var gb = gx >>> 16;\n // Calculate high and low result of squaring\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0);\n // High XOR low\n G[i] = gh ^ gl;\n }\n // Calculate new state values\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */ C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n return CryptoJS.Rabbit;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/rc4.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/rc4.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n /**\n * RC4 stream cipher algorithm.\n */ var RC4 = C_algo.RC4 = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes;\n // Init sbox\n var S = this._S = [];\n for(var i = 0; i < 256; i++)S[i] = i;\n // Key setup\n for(var i = 0, j = 0; i < 256; i++){\n var keyByteIndex = i % keySigBytes;\n var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 0xff;\n j = (j + S[i] + keyByte) % 256;\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n }\n // Counters\n this._i = this._j = 0;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n keySize: 8,\n ivSize: 0\n });\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j;\n // Generate keystream word\n var keystreamWord = 0;\n for(var n = 0; n < 4; n++){\n i = (i + 1) % 256;\n j = (j + S[i]) % 256;\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;\n }\n // Update counters\n this._i = i;\n this._j = j;\n return keystreamWord;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */ C.RC4 = StreamCipher._createHelper(RC4);\n /**\n * Modified RC4 stream cipher algorithm.\n */ var RC4Drop = C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */ cfg: RC4.cfg.extend({\n drop: 192\n }),\n _doReset: function _doReset() {\n RC4._doReset.call(this);\n // Drop\n for(var i = this.cfg.drop; i > 0; i--)generateKeystreamWord.call(this);\n }\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */ C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n return CryptoJS.RC4;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/sha1.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/sha1.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Reusable object\n var W = [];\n /**\n * SHA-1 hash algorithm.\n */ var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n 0xc3d2e1f0\n ]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words;\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n // Computation\n for(var i = 0; i < 80; i++){\n if (i < 16) W[i] = M[offset + i] | 0;\n else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n var t = (a << 5 | a >>> 27) + e + W[i];\n if (i < 20) t += (b & c | ~b & d) + 0x5a827999;\n else if (i < 40) t += (b ^ c ^ d) + 0x6ed9eba1;\n else if (i < 60) t += (b & c | b & d | c & d) - 0x70e44324;\n else t += (b ^ c ^ d) - 0x359d3e2a;\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n }\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n // Hash final blocks\n this._process();\n // Return final computed hash\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */ C.SHA1 = Hasher._createHelper(SHA1);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */ C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n return CryptoJS.SHA1;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/sha256.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/sha256.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function(Math1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Initialization and round constants tables\n var H = [];\n var K = [];\n // Compute constants\n (function() {\n function isPrime(n) {\n var sqrtN = Math1.sqrt(n);\n for(var factor = 2; factor <= sqrtN; factor++){\n if (!(n % factor)) return false;\n }\n return true;\n }\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n var n = 2;\n var nPrime = 0;\n while(nPrime < 64){\n if (isPrime(n)) {\n if (nPrime < 8) H[nPrime] = getFractionalBits(Math1.pow(n, 0.5));\n K[nPrime] = getFractionalBits(Math1.pow(n, 1 / 3));\n nPrime++;\n }\n n++;\n }\n })();\n // Reusable object\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */ var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words;\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n // Computation\n for(var i = 0; i < 64; i++){\n if (i < 16) W[i] = M[offset + i] | 0;\n else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math1.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n // Hash final blocks\n this._process();\n // Return final computed hash\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */ C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */ C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n return CryptoJS.SHA256;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/tripledes.js\": /*!*********************************************!*\\\n !*** ./node_modules/crypto-js/tripledes.js ***!\n \\*********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n // Permuted Choice 1 constants\n var PC1 = [\n 57,\n 49,\n 41,\n 33,\n 25,\n 17,\n 9,\n 1,\n 58,\n 50,\n 42,\n 34,\n 26,\n 18,\n 10,\n 2,\n 59,\n 51,\n 43,\n 35,\n 27,\n 19,\n 11,\n 3,\n 60,\n 52,\n 44,\n 36,\n 63,\n 55,\n 47,\n 39,\n 31,\n 23,\n 15,\n 7,\n 62,\n 54,\n 46,\n 38,\n 30,\n 22,\n 14,\n 6,\n 61,\n 53,\n 45,\n 37,\n 29,\n 21,\n 13,\n 5,\n 28,\n 20,\n 12,\n 4\n ];\n // Permuted Choice 2 constants\n var PC2 = [\n 14,\n 17,\n 11,\n 24,\n 1,\n 5,\n 3,\n 28,\n 15,\n 6,\n 21,\n 10,\n 23,\n 19,\n 12,\n 4,\n 26,\n 8,\n 16,\n 7,\n 27,\n 20,\n 13,\n 2,\n 41,\n 52,\n 31,\n 37,\n 47,\n 55,\n 30,\n 40,\n 51,\n 45,\n 33,\n 48,\n 44,\n 49,\n 39,\n 56,\n 34,\n 53,\n 46,\n 42,\n 50,\n 36,\n 29,\n 32\n ];\n // Cumulative bit shift constants\n var BIT_SHIFTS = [\n 1,\n 2,\n 4,\n 6,\n 8,\n 10,\n 12,\n 14,\n 15,\n 17,\n 19,\n 21,\n 23,\n 25,\n 27,\n 28\n ];\n // SBOXes and round permutation constants\n var SBOX_P = [\n {\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002\n },\n {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000\n },\n {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100\n },\n {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040\n },\n {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080\n },\n {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008\n },\n {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001\n },\n {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800\n }\n ];\n // Masks that select the SBOX input\n var SBOX_MASK = [\n 0xf8000001,\n 0x1f800000,\n 0x01f80000,\n 0x001f8000,\n 0x0001f800,\n 0x00001f80,\n 0x000001f8,\n 0x8000001f\n ];\n /**\n * DES block cipher algorithm.\n */ var DES = C_algo.DES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Select 56 bits according to PC1\n var keyBits = [];\n for(var i = 0; i < 56; i++){\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;\n }\n // Assemble 16 subkeys\n var subKeys = this._subKeys = [];\n for(var nSubKey = 0; nSubKey < 16; nSubKey++){\n // Create subkey\n var subKey = subKeys[nSubKey] = [];\n // Shortcut\n var bitShift = BIT_SHIFTS[nSubKey];\n // Select 48 bits according to PC2\n for(var i = 0; i < 24; i++){\n // Select from the left 28 key bits\n subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6;\n // Select from the right 28 key bits\n subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;\n }\n // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;\n for(var i = 1; i < 7; i++)subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;\n subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;\n }\n // Compute inverse subkeys\n var invSubKeys = this._invSubKeys = [];\n for(var i = 0; i < 16; i++)invSubKeys[i] = subKeys[15 - i];\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n _doCryptBlock: function _doCryptBlock(M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1];\n // Initial permutation\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555);\n // Rounds\n for(var round = 0; round < 16; round++){\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock;\n // Feistel function\n var f = 0;\n for(var i = 0; i < 8; i++)f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n }\n // Undo swap from last round\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t;\n // Final permutation\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n // Set output\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n keySize: 2,\n ivSize: 2,\n blockSize: 2\n });\n // Swap bits across the left and right words\n function exchangeLR(offset, mask) {\n var t = (this._lBlock >>> offset ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n function exchangeRL(offset, mask) {\n var t = (this._rBlock >>> offset ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */ C.DES = BlockCipher._createHelper(DES);\n /**\n * Triple-DES block cipher algorithm.\n */ var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Make sure the key length is valid (64, 128 or >= 192 bit)\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) throw new Error(\"Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.\");\n // Extend the key according to the keying options defined in 3DES standard\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n // Create DES instances\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._des1.encryptBlock(M, offset);\n this._des2.decryptBlock(M, offset);\n this._des3.encryptBlock(M, offset);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._des3.decryptBlock(M, offset);\n this._des2.encryptBlock(M, offset);\n this._des1.decryptBlock(M, offset);\n },\n keySize: 6,\n ivSize: 2,\n blockSize: 2\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */ C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n return CryptoJS.TripleDES;\n });\n /***/ },\n /***/ \"./node_modules/lz-string/libs/lz-string.js\": /*!**************************************************!*\\\n !*** ./node_modules/lz-string/libs/lz-string.js ***!\n \\**************************************************/ /***/ function(module1, exports, __webpack_require__) {\n var __WEBPACK_AMD_DEFINE_RESULT__; // Copyright (c) 2013 Pieroxy \n // This work is free. You can redistribute it and/or modify it\n // under the terms of the WTFPL, Version 2\n // For more information see LICENSE.txt or http://www.wtfpl.net/\n //\n // For more information, the home page:\n // http://pieroxy.net/blog/pages/lz-string/testing.html\n //\n // LZ-based compression algorithm, version 1.4.5\n var LZString = function() {\n // private property\n var f = String.fromCharCode;\n var keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\n var baseReverseDic = {};\n function getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for(var i = 0; i < alphabet.length; i++)baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n return baseReverseDic[alphabet][character];\n }\n var LZString = {\n compressToBase64: function compressToBase64(input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a) {\n return keyStrBase64.charAt(a);\n });\n switch(res.length % 4 // To produce valid Base64\n ){\n default:\n case 0:\n return res;\n case 1:\n return res + \"===\";\n case 2:\n return res + \"==\";\n case 3:\n return res + \"=\";\n }\n },\n decompressFromBase64: function decompressFromBase64(input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) {\n return getBaseValue(keyStrBase64, input.charAt(index));\n });\n },\n compressToUTF16: function compressToUTF16(input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a) {\n return f(a + 32);\n }) + \" \";\n },\n decompressFromUTF16: function decompressFromUTF16(compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) {\n return compressed.charCodeAt(index) - 32;\n });\n },\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function compressToUint8Array(uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n for(var i = 0, TotalLen = compressed.length; i < TotalLen; i++){\n var current_value = compressed.charCodeAt(i);\n buf[i * 2] = current_value >>> 8;\n buf[i * 2 + 1] = current_value % 256;\n }\n return buf;\n },\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array: function decompressFromUint8Array(compressed) {\n if (compressed === null || compressed === undefined) return LZString.decompress(compressed);\n else {\n var buf = new Array(compressed.length / 2); // 2 bytes per character\n for(var i = 0, TotalLen = buf.length; i < TotalLen; i++)buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n var result = [];\n buf.forEach(function(c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(\"\"));\n }\n },\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function compressToEncodedURIComponent(input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a) {\n return keyStrUriSafe.charAt(a);\n });\n },\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent: function decompressFromEncodedURIComponent(input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) {\n return getBaseValue(keyStrUriSafe, input.charAt(index));\n });\n },\n compress: function compress(uncompressed) {\n return LZString._compress(uncompressed, 16, function(a) {\n return f(a);\n });\n },\n _compress: function _compress(uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value, context_dictionary = {}, context_dictionaryToCreate = {}, context_c = \"\", context_wc = \"\", context_w = \"\", context_enlargeIn = 2, context_dictSize = 3, context_numBits = 2, context_data = [], context_data_val = 0, context_data_position = 0, ii;\n for(ii = 0; ii < uncompressed.length; ii += 1){\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) context_w = context_wc;\n else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 8; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n } else {\n value = 1;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 16; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 8; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n } else {\n value = 1;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 16; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n // Mark the end of the stream\n value = 2;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n // Flush the last char\n while(true){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n } else context_data_position++;\n }\n return context_data.join(\"\");\n },\n decompress: function decompress(compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) {\n return compressed.charCodeAt(index);\n });\n },\n _decompress: function _decompress(length, resetValue, getNextValue) {\n var dictionary = [], next, enlargeIn = 4, dictSize = 4, numBits = 3, entry = \"\", result = [], i, w, bits, resb, maxpower, power, c, data = {\n val: getNextValue(0),\n position: resetValue,\n index: 1\n };\n for(i = 0; i < 3; i += 1)dictionary[i] = i;\n bits = 0;\n maxpower = Math.pow(2, 2);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n switch(next = bits){\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while(true){\n if (data.index > length) return \"\";\n bits = 0;\n maxpower = Math.pow(2, numBits);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n switch(c = bits){\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 2:\n return result.join(\"\");\n }\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n if (dictionary[c]) entry = dictionary[c];\n else {\n if (c === dictSize) entry = w + w.charAt(0);\n else return null;\n }\n result.push(entry);\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n w = entry;\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n }\n }\n };\n return LZString;\n }();\n __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return LZString;\n }).call(exports, __webpack_require__, exports, module1), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module1.exports = __WEBPACK_AMD_DEFINE_RESULT__);\n /***/ },\n /***/ \"?9157\": /*!************************!*\\\n !*** crypto (ignored) ***!\n \\************************/ /***/ function() {\n /* (ignored) */ /***/ }\n };\n /************************************************************************/ /******/ // The module cache\n /******/ var __webpack_module_cache__ = {};\n /******/ /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ // Check if module is in cache\n /******/ var cachedModule = __webpack_module_cache__[moduleId];\n /******/ if (cachedModule !== undefined) /******/ return cachedModule.exports;\n /******/ // Create a new module (and put it into the cache)\n /******/ var module1 = __webpack_module_cache__[moduleId] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {}\n };\n /******/ /******/ // Execute the module function\n /******/ __webpack_modules__[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);\n /******/ /******/ // Return the exports of the module\n /******/ return module1.exports;\n /******/ }\n /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (function() {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = function(module1) {\n /******/ var getter = module1 && module1.__esModule ? /******/ function() {\n return module1[\"default\"];\n } : /******/ function() {\n return module1;\n };\n /******/ __webpack_require__.d(getter, {\n a: getter\n });\n /******/ return getter;\n /******/ };\n /******/ })();\n /******/ /******/ /* webpack/runtime/define property getters */ /******/ (function() {\n /******/ // define getter functions for harmony exports\n /******/ __webpack_require__.d = function(exports, definition) {\n /******/ for(var key in definition)/******/ if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) /******/ Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n /******/ };\n /******/ })();\n /******/ /******/ /* webpack/runtime/global */ /******/ (function() {\n /******/ __webpack_require__.g = function() {\n /******/ if (typeof globalThis === \"object\") return globalThis;\n /******/ try {\n /******/ return this || new Function(\"return this\")();\n /******/ } catch (e) {\n /******/ if (typeof window === \"object\") return window;\n /******/ }\n /******/ }();\n /******/ })();\n /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (function() {\n /******/ __webpack_require__.o = function(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n /******/ })();\n /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (function() {\n /******/ // define __esModule on exports\n /******/ __webpack_require__.r = function(exports) {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) /******/ Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/ /************************************************************************/ var __webpack_exports__ = {};\n // This entry need to be wrapped in an IIFE because it need to be in strict mode.\n (function() {\n \"use strict\";\n /*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/ __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /* harmony import */ var _SecureLS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SecureLS */ \"./src/SecureLS.js\");\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = _SecureLS__WEBPACK_IMPORTED_MODULE_0__.SecureLS;\n })();\n /******/ return __webpack_exports__;\n /******/ }();\n});\n\n},{\"@swc/helpers/_/_class_call_check\":\"6tPd8\",\"@swc/helpers/_/_create_class\":\"kdmA3\",\"@swc/helpers/_/_define_property\":\"3xmRB\"}],\"bkFGX\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"6f57ed160c1cabea\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"92436d3ecaf63a1c\").render;\n require(\"38a6c1c61852e461\")[\"default\"](script);\n script.__scopeId = \"data-v-244e94\";\n script.__file = \"Footer.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"6f57ed160c1cabea\":\"4ESat\",\"92436d3ecaf63a1c\":\"bj5o4\",\"38a6c1c61852e461\":\"7OPZH\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"4ESat\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.default = {\n name: \"Footer\",\n data: function() {\n return {};\n }\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"bj5o4\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_tooltip = (0, _vue.resolveComponent)(\"v-tooltip\");\n var _component_v_row = (0, _vue.resolveComponent)(\"v-row\");\n var _component_v_footer = (0, _vue.resolveComponent)(\"v-footer\");\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_footer, {\n color: \"surface-variant\",\n app: true,\n elevation: \"15\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_row, {\n justify: \"center\",\n \"no-gutters\": \"\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"edrys-Lite on GitHub\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-github\",\n href: \"https://github.com/edrys-labs/edrys-Lite/\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"View the Documentation\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-information\",\n href: \"https://github.com/edrys-labs/documentation\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"Explore Classrooms\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-share-circle\",\n href: \"https://github.com/topics/edrys-lab\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n });\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7OPZH\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"j8BNU\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nvar _hoisted_1 = {\n key: 0\n};\nvar _hoisted_2 = {\n key: 1\n};\nvar _hoisted_3 = {\n key: 2\n};\nvar _hoisted_4 = [\n \"innerHTML\"\n];\nvar _hoisted_5 = [\n \"href\"\n];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_list_item_title = (0, _vue.resolveComponent)(\"v-list-item-title\");\n var _component_v_list_item_subtitle = (0, _vue.resolveComponent)(\"v-list-item-subtitle\");\n var _component_v_list_item = (0, _vue.resolveComponent)(\"v-list-item\");\n var _component_v_list = (0, _vue.resolveComponent)(\"v-list\");\n var _component_v_menu = (0, _vue.resolveComponent)(\"v-menu\");\n var _component_v_app_bar = (0, _vue.resolveComponent)(\"v-app-bar\");\n var _component_v_switch = (0, _vue.resolveComponent)(\"v-switch\");\n var _component_v_chip = (0, _vue.resolveComponent)(\"v-chip\");\n var _component_v_img = (0, _vue.resolveComponent)(\"v-img\");\n var _component_v_card_title = (0, _vue.resolveComponent)(\"v-card-title\");\n var _component_v_card_subtitle = (0, _vue.resolveComponent)(\"v-card-subtitle\");\n var _component_v_card_text = (0, _vue.resolveComponent)(\"v-card-text\");\n var _component_v_icon = (0, _vue.resolveComponent)(\"v-icon\");\n var _component_v_spacer = (0, _vue.resolveComponent)(\"v-spacer\");\n var _component_v_card_actions = (0, _vue.resolveComponent)(\"v-card-actions\");\n var _component_v_card = (0, _vue.resolveComponent)(\"v-card\");\n var _component_v_col = (0, _vue.resolveComponent)(\"v-col\");\n var _component_v_row = (0, _vue.resolveComponent)(\"v-row\");\n var _component_v_container = (0, _vue.resolveComponent)(\"v-container\");\n var _component_v_main = (0, _vue.resolveComponent)(\"v-main\");\n var _component_Footer = (0, _vue.resolveComponent)(\"Footer\");\n var _component_v_app = (0, _vue.resolveComponent)(\"v-app\");\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_app, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_app_bar, {\n color: \"surface-variant\",\n title: \"edrys-lite\"\n }, {\n append: (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_menu, null, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)(props, {\n icon: \"mdi-dots-vertical\"\n }), null, 16)\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[2] || (_cache[2] = [\n (0, _vue.createTextVNode)(\" User ID: \")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_list_item_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createTextVNode)((0, _vue.toDisplayString)($data.peerID) + \" \", 1),\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"mdi-content-copy\",\n size: \"small\",\n variant: \"flat\",\n onClick: _cache[0] || (_cache[0] = function($event) {\n return $options.copyPeerID();\n })\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_main, {\n \"class\": \"d-flex\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_container, {\n fluid: \"\",\n \"class\": \"align-start\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_row, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n ((0, _vue.openBlock)(true), (0, _vue.createElementBlock)((0, _vue.Fragment), null, (0, _vue.renderList)($data.classrooms, function(classroom) {\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_col, {\n cols: \"12\",\n sm: \"6\",\n md: \"4\",\n lg: \"3\",\n key: classroom.id\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card, {\n \"class\": \"item\",\n color: \"surface-variant\",\n elevation: \"4\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_meta, _classroom_data;\n return [\n (0, _vue.createVNode)(_component_v_chip, {\n color: !!classroom.hash ? \"primary\" : \"secondary\",\n style: {\n position: \"absolute\",\n \"z-index\": \"100\",\n right: \"10px\",\n top: \"10px\",\n \"background-color\": \"white\"\n },\n disabled: (classroom === null || classroom === void 0 ? void 0 : classroom.data.createdBy) !== $data.peerID && !(classroom === null || classroom === void 0 ? void 0 : classroom.data.members.teacher.includes($data.peerID))\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n _cache[3] || (_cache[3] = (0, _vue.createTextVNode)(\" Write Protection \")),\n (0, _vue.createVNode)(_component_v_switch, {\n \"model-value\": !!classroom.hash,\n color: \"primary\",\n label: !!classroom.hash ? \"on\" : \"off\",\n style: {\n \"padding-top\": \"20px\",\n \"z-index\": \"200\"\n },\n onChange: function($event) {\n return $options.switchClassroomProtection(classroom.id, !classroom.hash);\n }\n }, null, 8, [\n \"model-value\",\n \"label\",\n \"onChange\"\n ])\n ];\n }),\n _: 2\n }, 1032, [\n \"color\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_img, {\n src: (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_meta = _classroom_data.meta) === null || _classroom_data_meta === void 0 ? void 0 : _classroom_data_meta.logo) || \"https://repository-images.githubusercontent.com/453979926/ab6bf9d7-a4bc-4a47-97b7-c8bc8bb4654d\",\n height: \"200px\",\n cover: \"\"\n }, null, 8, [\n \"src\"\n ]),\n (0, _vue.createVNode)(_component_v_card_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data;\n return [\n (0, _vue.createTextVNode)((0, _vue.toDisplayString)((_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : _classroom_data.name), 1)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_members, _classroom_data;\n return [\n (classroom === null || classroom === void 0 ? void 0 : classroom.data.createdBy) === $data.peerID ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_1, \"You own this class\")) : (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_members = _classroom_data.members) === null || _classroom_data_members === void 0 ? void 0 : _classroom_data_members.teacher.includes($data.peerID)) ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_2, \"You're a teacher here\")) : ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_3, \"You're a student here\"))\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_text, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_meta, _classroom_data;\n return [\n (0, _vue.createElementVNode)(\"span\", {\n innerHTML: (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_meta = _classroom_data.meta) === null || _classroom_data_meta === void 0 ? void 0 : _classroom_data_meta.description) || \"No description\"\n }, null, 8, _hoisted_4)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_actions, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\",\n title: \"fork\",\n onClick: function($event) {\n return $options.forkClass(classroom);\n }\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[4] || (_cache[4] = [\n (0, _vue.createTextVNode)(\"mdi-source-fork\")\n ]);\n }),\n _: 1\n })\n ];\n }),\n _: 2\n }, 1032, [\n \"onClick\"\n ]),\n (0, _vue.createVNode)(_component_v_menu, null, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n color: \"\",\n ref_for: true\n }, props, {\n icon: \"mdi-delete\"\n }), null, 16)\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[5] || (_cache[5] = [\n (0, _vue.createTextVNode)(\" Are you sure? \")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_btn, {\n color: \"red\",\n depressed: \"\",\n onClick: function($event) {\n return $options.deleteClass(classroom.id);\n },\n \"class\": \"float-right\",\n style: {\n \"margin-top\": \"10px\"\n }\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[6] || (_cache[6] = [\n (0, _vue.createTextVNode)(\" Yes, delete forever\")\n ]);\n }),\n _: 2\n }, 1032, [\n \"onClick\"\n ])\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_spacer),\n (0, _vue.createElementVNode)(\"a\", {\n \"data-link\": \"true\",\n href: \"./?/classroom/\".concat(classroom.id).concat(!!classroom.hash ? \"/\".concat(classroom.hash) : \"\"),\n style: {\n color: \"white\"\n }\n }, [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\",\n title: \"open\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[7] || (_cache[7] = [\n (0, _vue.createTextVNode)(\"mdi-arrow-right-bold\")\n ]);\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ], 8, _hoisted_5)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024);\n }), 128)),\n (0, _vue.createVNode)(_component_v_col, {\n cols: \"12\",\n sm: \"6\",\n md: \"4\",\n lg: \"3\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card, {\n \"class\": \"item\",\n color: \"surface-variant\",\n elevation: \"4\",\n onClick: _cache[1] || (_cache[1] = function($event) {\n return $options.createClass();\n }),\n variant: \"elevated\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[8] || (_cache[8] = [\n (0, _vue.createTextVNode)(\"Create a class\")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_card_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[9] || (_cache[9] = [\n (0, _vue.createTextVNode)(\"Start teaching now\")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_card_actions, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_spacer),\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, {\n icon: \"mdi-plus\"\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_Footer)\n ];\n }),\n _: 1\n });\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"iaiIL\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"kud6o\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"a1f03eaee1a48ec4\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"154c238e49f95afe\").render;\n require(\"51f71cc4d947d3b0\")[\"default\"](script);\n script.__scopeId = \"data-v-9d10e7\";\n script.__file = \"Classroom.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"a1f03eaee1a48ec4\":\"jD1lF\",\"154c238e49f95afe\":\"lXMQd\",\"51f71cc4d947d3b0\":\"dmFPP\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"jD1lF\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _asyncToGenerator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _tsGenerator = require(\"@swc/helpers/_/_ts_generator\");\nvar _settingsVue = require(\"../components/Settings.vue\");\nvar _settingsVueDefault = parcelHelpers.interopDefault(_settingsVue);\nvar _chat = require(\"../components/Chat\");\nvar _chatDefault = parcelHelpers.interopDefault(_chat);\nvar _checks = require(\"../components/Checks\");\nvar _checksDefault = parcelHelpers.interopDefault(_checks);\nvar _modulesVue = require(\"../components/Modules.vue\");\nvar _modulesVueDefault = parcelHelpers.interopDefault(_modulesVue);\nvar _database = require(\"../ts/Database\");\nvar _utils = require(\"../ts/Utils\");\nvar _vue = require(\"vue\");\nvar _peer = require(\"../ts/Peer\");\nvar _peerDefault = parcelHelpers.interopDefault(_peer);\nexports.default = {\n props: [\n \"id\",\n \"station\",\n \"hash\"\n ],\n data: function() {\n var _this = this;\n var _navigator_mediaDevices, _navigator;\n var database = new (0, _database.Database)();\n var configuration = null;\n var data = null;\n var communication = null;\n //setTimeout(this.init, 100);\n var webRTCSupport = false;\n // @ts-ignore\n if (navigator.mediaDevices && ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator_mediaDevices = _navigator.mediaDevices) === null || _navigator_mediaDevices === void 0 ? void 0 : _navigator_mediaDevices.getUserMedia)) // WebRTC is supported\n webRTCSupport = true;\n (0, _vue.onMounted)(function() {\n _this.init();\n });\n var stationName = \"\";\n var peerID = (0, _utils.getPeerID)(true);\n if (this.station) {\n stationName = sessionStorage.getItem(\"station_\".concat(this.id));\n if (!stationName) {\n stationName = (0, _utils.infoHash)(6);\n sessionStorage.setItem(\"station_\".concat(this.id), stationName);\n }\n peerID = \"Station \" + stationName;\n }\n return {\n state: true,\n states: {\n webRTCSupport: webRTCSupport,\n receivedConfiguration: null,\n connectedToNetwork: null\n },\n database: database,\n configuration: configuration,\n data: data,\n communication: communication,\n isOwner: false,\n showSideMenu: true,\n showSettings: false,\n scrapedModules: [],\n liveClassProxy: null,\n isStation: this.station,\n peerID: peerID,\n userName: (0, _utils.getShortPeerID)(peerID),\n stationName: stationName,\n componentKey: 0,\n chat: {\n open: false,\n messages: [],\n truncated: false,\n \"new\": false\n },\n stationNameInput: stationName,\n stationNameRules: [\n function(v) {\n return !!v || \"Name is required\";\n },\n function(v) {\n return !_this.isNameTaken(v) || \"Name is already taken\";\n }\n ]\n };\n },\n watch: {\n showSettings: function() {\n if (!this.showSettings) this.data = (0, _utils.clone)(this.configuration.data);\n }\n },\n methods: {\n copyPeerID: function() {\n (0, _utils.copyToClipboard)((0, _utils.getPeerID)(false));\n },\n getPeer_ID: function() {\n return (0, _utils.getPeerID)(false);\n },\n init: function() {\n return (0, _asyncToGenerator._)(function() {\n var _this_configuration, _, self;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n this.database.setProtection(this.id, !!this.hash)\n ];\n case 1:\n _state.sent();\n _ = this;\n return [\n 4,\n this.database.get(this.id)\n ];\n case 2:\n _.configuration = _state.sent();\n if (!!this.hash && ((_this_configuration = this.configuration) === null || _this_configuration === void 0 ? void 0 : _this_configuration.hash) !== this.hash) this.configuration = null;\n if (!this.communication) this.communication = new (0, _peerDefault.default)(this.configuration ? this.configuration : {\n id: this.id,\n data: null,\n timestamp: 0,\n hash: this.hash\n }, this.stationName);\n self = this;\n this.database.setObservable(this.id, function(config) {\n try {\n if (config && !(0, _utils.deepEqual)(self.configuration.data, config.data)) {\n var _self_communication;\n self.configuration = config;\n (_self_communication = self.communication) === null || _self_communication === void 0 ? void 0 : _self_communication.newSetup(config);\n }\n } catch (e) {\n if (config) {\n var _self_communication1;\n self.configuration = config;\n (_self_communication1 = self.communication) === null || _self_communication1 === void 0 ? void 0 : _self_communication1.newSetup(config);\n }\n }\n });\n if (this.configuration) {\n this.data = (0, _utils.clone)(this.configuration.data);\n this.isOwner = this.peerID.startsWith(this.configuration.data.createdBy) || this.getRole() === \"teacher\";\n this.scrapeModules();\n }\n this.communication.on(\"setup\", function(configuration) {\n try {\n if (configuration.timestamp && configuration && !(0, _utils.deepEqual)(self.configuration.data, configuration.data)) {\n self.database.put(configuration);\n self.init();\n }\n } catch (e) {\n if (configuration.timestamp && configuration) {\n self.database.put(configuration);\n self.init();\n }\n }\n });\n return [\n 2\n ];\n }\n });\n }).apply(this);\n },\n getRooms: function() {\n var _this = this;\n if (!this.liveClassProxy) return;\n var sortedKeys = Object.keys(this.liveClassProxy.rooms).sort();\n var rooms = {};\n sortedKeys.forEach(function(key) {\n rooms[key] = _this.liveClassProxy.rooms[key];\n });\n return rooms;\n },\n getRole: function() {\n var _this_configuration_data_members_teacher, _this_configuration_data_members, _this_configuration_data, _this_configuration;\n if (this.isStation) return \"station\";\n if (this.isOwner || ((_this_configuration = this.configuration) === null || _this_configuration === void 0 ? void 0 : (_this_configuration_data = _this_configuration.data) === null || _this_configuration_data === void 0 ? void 0 : (_this_configuration_data_members = _this_configuration_data.members) === null || _this_configuration_data_members === void 0 ? void 0 : (_this_configuration_data_members_teacher = _this_configuration_data_members.teacher) === null || _this_configuration_data_members_teacher === void 0 ? void 0 : _this_configuration_data_members_teacher.includes((0, _utils.getPeerID)(false)))) return \"teacher\";\n return \"student\";\n },\n scrapeModules: function() {\n return (0, _asyncToGenerator._)(function() {\n var i, module, self;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n this.states.receivedConfiguration = true;\n this.scrapedModules = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < this.data.modules.length)) return [\n 3,\n 4\n ];\n return [\n 4,\n (0, _utils.scrapeModule)(this.data.modules[i])\n ];\n case 2:\n module = _state.sent();\n this.scrapedModules.push(module);\n _state.label = 3;\n case 3:\n i++;\n return [\n 3,\n 1\n ];\n case 4:\n self = this;\n this.communication.on(\"room\", function(config) {\n self.liveClassProxy = config;\n });\n this.communication.on(\"chat\", function(chat) {\n self.chat.messages = chat.messages;\n self.chat.truncated = chat.truncated;\n if (!self.chat.open) self.chat[\"new\"] = true;\n });\n this.communication.join(this.getRole());\n this.communication.on(\"connected\", function(state) {\n self.states.connectedToNetwork = state;\n });\n this.componentKey++;\n return [\n 2\n ];\n }\n });\n /*\n setTimeout(() => {\n self.communication = new Comm2(\n this.id,\n this.room.data.meta.defaultNumberOfRooms,\n this.stationName\n );\n\n self.communication.on(\"update\", (config: any) => {\n self.liveClassProxy = config.data;\n });\n\n self.liveClassProxy = self.communication.getDoc();\n self.states.connectedToNetwork = true;\n\n self.componentKey++;\n }, Math.random() * 1000 + 1000);\n */ }).apply(this);\n },\n saveClass: function(configuration) {\n this.$refs.Settings.close = true;\n this.configuration.data = (0, _utils.clone)(configuration);\n this.data = (0, _utils.clone)(configuration);\n this.database.update((0, _utils.clone)(this.configuration));\n this.scrapeModules();\n },\n usersInRoom: function(name) {\n var users = [];\n for(var id in this.liveClassProxy.users)if (this.liveClassProxy.users[id].room === name) {\n var displayName = this.liveClassProxy.users[id].displayName;\n users.push([\n displayName,\n this.peerID === id ? \"black\" : \"grey\"\n ]);\n }\n return users;\n },\n gotoRoom: function(name) {\n var _this_communication;\n (_this_communication = this.communication) === null || _this_communication === void 0 ? void 0 : _this_communication.gotoRoom(name);\n },\n addRoom: function() {\n var _this_communication;\n (_this_communication = this.communication) === null || _this_communication === void 0 ? void 0 : _this_communication.addRoom();\n },\n deleteClass: function() {\n this.database.drop(this.configuration.id);\n window.location.search = \"\";\n },\n updateClass: function(config) {\n this.data = (0, _utils.clone)(config.data);\n },\n sendMessage: function(message) {\n this.communication.sendMessage(message);\n },\n setStationName: function() {\n var _this = this;\n var isValid = this.stationNameRules.every(function(rule) {\n return rule(_this.stationNameInput) === true;\n });\n if (!isValid) return; // If validation fails, do not submit\n sessionStorage.setItem(\"station_\".concat(this.id), this.stationNameInput);\n window.location.reload();\n },\n isNameTaken: function(name) {\n if (!this.liveClassProxy) return false;\n return Object.keys(this.liveClassProxy.rooms).includes(\"Station \" + name);\n }\n },\n components: {\n Chat: (0, _chatDefault.default),\n Checks: (0, _checksDefault.default),\n Settings: (0, _settingsVueDefault.default),\n Modules: (0, _modulesVueDefault.default)\n }\n};\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"../components/Settings.vue\":\"cQYe1\",\"../components/Chat\":\"gG9AF\",\"../components/Checks\":\"jDGIL\",\"../components/Modules.vue\":\"dF9bs\",\"../ts/Database\":\"7Aug2\",\"../ts/Utils\":\"2pUoQ\",\"vue\":\"gHobw\",\"../ts/Peer\":\"lORf0\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"cQYe1\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"432a7584d7139325\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"acf54a6d932e33b3\").render;\n require(\"d739e473dd581a3\")[\"default\"](script);\n script.__scopeId = \"data-v-ef7400\";\n script.__file = \"Settings.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"432a7584d7139325\":\"3sglf\",\"acf54a6d932e33b3\":\"glH5D\",\"d739e473dd581a3\":\"1Kxbh\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"3sglf\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _mainVue = require(\"./Settings/Main.vue\");\nvar _mainVueDefault = parcelHelpers.interopDefault(_mainVue);\nvar _membersVue = require(\"./Settings/Members.vue\");\nvar _membersVueDefault = parcelHelpers.interopDefault(_membersVue);\nvar _modulesVue = require(\"./Settings/Modules.vue\");\nvar _modulesVueDefault = parcelHelpers.interopDefault(_modulesVue);\nvar _stationsVue = require(\"./Settings/Stations.vue\");\nvar _stationsVueDefault = parcelHelpers.interopDefault(_stationsVue);\nvar _shareVue = require(\"./Settings/Share.vue\");\nvar _shareVueDefault = parcelHelpers.interopDefault(_shareVue);\nexports.default = {\n name: \"Settings\",\n props: {\n config: {\n type: Object,\n required: true\n },\n scrapedModules: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n emits: [\n \"close\",\n \"saveClass\",\n \"deleteClass\",\n \"updateClass\"\n ],\n data: function() {\n return {\n tab: 0,\n configClone: JSON.parse(JSON.stringify(this.config)),\n configChanged: false\n };\n },\n methods: {\n updateModules: function() {\n console.warn(\"updateModules\", this.scrapedModules);\n },\n saveClass: function() {\n this.$emit(\"saveClass\", this.config);\n this.configClone = JSON.parse(JSON.stringify(this.config));\n this.configChanged = false;\n },\n deleteClass: function() {\n this.$emit(\"deleteClass\");\n },\n updateClass: function() {\n this.$emit(\"updateClass\", this.config);\n },\n updateMembers: function(members) {\n this.config.members = members;\n }\n },\n watch: {\n config: {\n handler: function() {\n if (JSON.stringify(this.config) !== JSON.stringify(this.configClone)) this.configChanged = true;\n else this.configChanged = false;\n },\n deep: true\n }\n },\n components: {\n Main: (0, _mainVueDefault.default),\n Members: (0, _membersVueDefault.default),\n Modules: (0, _modulesVueDefault.default),\n Stations: (0, _stationsVueDefault.default),\n Share: (0, _shareVueDefault.default)\n }\n};\n\n},{\"./Settings/Main.vue\":\"7t7Iv\",\"./Settings/Members.vue\":\"i6sS6\",\"./Settings/Modules.vue\":\"bvPNn\",\"./Settings/Stations.vue\":\"kU4x6\",\"./Settings/Share.vue\":\"cnYD5\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7t7Iv\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"eddb777e63f5a3fd\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"65d6e76a0f119f60\").render;\n require(\"ce325ba857e3e6e9\")[\"default\"](script);\n script.__scopeId = \"data-v-2cb2d4\";\n script.__file = \"Main.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"eddb777e63f5a3fd\":\"9v7vy\",\"65d6e76a0f119f60\":\"7PY3l\",\"ce325ba857e3e6e9\":\"b3AKA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"9v7vy\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.default = {\n name: \"Settings-Main\",\n props: {\n config: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n return {};\n }\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7PY3l\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_text_field = (0, _vue.resolveComponent)(\"v-text-field\");\n var _component_v_textarea = (0, _vue.resolveComponent)(\"v-textarea\");\n var _component_v_checkbox = (0, _vue.resolveComponent)(\"v-checkbox\");\n return (0, _vue.openBlock)(), (0, _vue.createElementBlock)((0, _vue.Fragment), null, [\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.name,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function($event) {\n return $props.config.name = $event;\n }),\n counter: 20,\n label: \"Class Name\",\n outlined: \"\",\n required: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.meta.logo,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = function($event) {\n return $props.config.meta.logo = $event;\n }),\n label: \"Logo URL\",\n outlined: \"\",\n required: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_textarea, {\n modelValue: $props.config.meta.description,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = function($event) {\n return $props.config.meta.description = $event;\n }),\n filled: \"\",\n label: \"Description\",\n \"auto-grow\": \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.meta.defaultNumberOfRooms,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = function($event) {\n return $props.config.meta.defaultNumberOfRooms = $event;\n }),\n label: \"Default number of rooms (optional)\",\n type: \"number\",\n outlined: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_checkbox, {\n modelValue: $props.config.meta.selfAssign,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = function($event) {\n return $props.config.meta.selfAssign = $event;\n }),\n label: \"Enable self-assignment\",\n outlined: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ])\n ], 64);\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"b3AKA\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"i6sS6\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"8183a8c52866718d\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"4e4f28fd8f5235db\").render;\n require(\"28a9b2213a398f71\")[\"default\"](script);\n script.__scopeId = \"data-v-2477c6\";\n script.__file = \"Members.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"8183a8c52866718d\":\"dJAmk\",\"4e4f28fd8f5235db\":\"exQDe\",\"28a9b2213a398f71\":\"eFIHf\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"dJAmk\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../../ts/Utils\");\nexports.default = {\n name: \"Settings-Members\",\n emits: [\n \"updateMembers\"\n ],\n props: {\n members: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n var teacher = this.members.teacher.join(\", \");\n return {\n url: window.location.toString(),\n teacher: teacher\n };\n },\n methods: {\n copyUrl: function() {\n (0, _utils.copyToClipboard)(this.url);\n }\n },\n watch: {\n teacher: function() {\n this.$emit(\"updateMembers\", {\n teacher: this.teacher.split(\",\").map(function(s) {\n return s.trim();\n }).filter(function(s) {\n return s.length > 0;\n }),\n student: this.members.student\n });\n }\n }\n};\n\n},{\"../../ts/Utils\":\"2pUoQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"exQDe\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nvar _hoisted_1 = [\n \"href\"\n];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_container = (0, _vue.resolveComponent)(\"v-container\");\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_alert = (0, _vue.resolveComponent)(\"v-alert\");\n var _component_v_divider = (0, _vue.resolveComponent)(\"v-divider\");\n var _component_v_textarea = (0, _vue.resolveComponent)(\"v-textarea\");\n return (0, _vue.openBlock)(), (0, _vue.createElementBlock)((0, _vue.Fragment), null, [\n (0, _vue.createVNode)(_component_v_alert, {\n outlined: \"\",\n dense: \"\",\n type: \"info\",\n text: \"Invite your users in by sharing this link: \"\n }, {\n append: (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"mdi-content-copy\",\n onClick: $options.copyUrl,\n variant: \"text\"\n }, null, 8, [\n \"onClick\"\n ])\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_container, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createElementVNode)(\"a\", {\n href: $data.url\n }, (0, _vue.toDisplayString)($data.url), 9, _hoisted_1)\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_divider),\n (0, _vue.createVNode)(_component_v_textarea, {\n label: \"List of teacher ids\",\n \"auto-grow\": \"\",\n variant: \"outlined\",\n rows: \"3\",\n \"row-height\": \"25\",\n shaped: \"\",\n style: {\n \"margin-top\": \"2rem\"\n },\n modelValue: $data.teacher,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function($event) {\n return $data.teacher = $event;\n }),\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ])\n ], 64);\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"eFIHf\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"bvPNn\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"be0e44b9a4ffa7e0\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"a7c9e031a7a35109\").render;\n require(\"e5ec21d433d7ac4d\")[\"default\"](script);\n script.__scopeId = \"data-v-16d12c\";\n script.__file = \"Modules.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"be0e44b9a4ffa7e0\":\"5NqSB\",\"a7c9e031a7a35109\":\"6NEqS\",\"e5ec21d433d7ac4d\":\"ezDw8\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"5NqSB\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _asyncToGenerator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _tsGenerator = require(\"@swc/helpers/_/_ts_generator\");\nvar _utils = require(\"../../ts/Utils\");\nvar _vuedraggable = require(\"vuedraggable\");\nvar _vuedraggableDefault = parcelHelpers.interopDefault(_vuedraggable);\nvar _moduleVue = require(\"./Module.vue\");\nvar _moduleVueDefault = parcelHelpers.interopDefault(_moduleVue);\nexports.default = {\n name: \"Settings-Modules\",\n props: {\n config: {\n type: Object,\n required: true\n },\n scrapedModules: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n var errors = [];\n for(var i = 0; i < this.config.modules.length; i++)errors.push({\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\"\n });\n return {\n moduleImportUrl: \"\",\n errors: errors\n };\n },\n methods: {\n update: function() {\n return (0, _asyncToGenerator._)(function() {\n var i, module;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n this.scrapedModules = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < this.config.modules.length)) return [\n 3,\n 4\n ];\n return [\n 4,\n (0, _utils.scrapeModule)(this.config.modules[i])\n ];\n case 2:\n module = _state.sent();\n this.scrapedModules.push(module);\n _state.label = 3;\n case 3:\n i++;\n return [\n 3,\n 1\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n }).apply(this);\n },\n move: function(event) {\n var element = this.scrapedModules[event.oldIndex];\n this.scrapedModules[event.oldIndex] = this.scrapedModules[event.newIndex];\n this.scrapedModules[event.newIndex] = element;\n return true;\n },\n validate_config: function(i) {\n return this.errors[i].config === \"\" && this.errors[i].studentConfig === \"\" && this.errors[i].teacherConfig === \"\" && this.errors[i].stationConfig === \"\";\n },\n validate_url: function(url) {\n return (0, _utils.validateUrl)(url);\n },\n deleteModule: function(index) {\n this.config.modules.splice(index, 1);\n this.scrapedModules.splice(index, 1);\n this.errors.splice(index, 1);\n },\n loadURL: function() {\n return (0, _asyncToGenerator._)(function() {\n var module, scrapedModule;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n module = {\n url: this.moduleImportUrl,\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\",\n width: \"full\",\n height: \"tall\"\n };\n return [\n 4,\n (0, _utils.scrapeModule)(module)\n ];\n case 1:\n scrapedModule = _state.sent();\n this.config.modules.push(module);\n this.scrapedModules.push(scrapedModule);\n this.errors.push({\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\"\n });\n this.moduleImportUrl = \"\";\n return [\n 2\n ];\n }\n });\n }).apply(this);\n }\n },\n components: {\n Module: (0, _moduleVueDefault.default),\n draggable: (0, _vuedraggableDefault.default)\n }\n};\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"../../ts/Utils\":\"2pUoQ\",\"vuedraggable\":\"eLtOA\",\"./Module.vue\":\"fpnyR\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"eLtOA\":[function(require,module,exports) {\nvar _typeOf = require(\"@swc/helpers/_/_type_of\");\n(function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory(require(\"994aba414f6e11f\"), require(\"f2b29fe3c2c19cbd\"));\n})(typeof self !== \"undefined\" ? self : undefined, function(__WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_a352__) {\n return /******/ function(modules) {\n /******/ // The module cache\n /******/ var installedModules = {};\n /******/ /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ /******/ // Check if module is in cache\n /******/ if (installedModules[moduleId]) /******/ return installedModules[moduleId].exports;\n /******/ // Create a new module (and put it into the cache)\n /******/ var module1 = installedModules[moduleId] = {\n /******/ i: moduleId,\n /******/ l: false,\n /******/ exports: {}\n };\n /******/ /******/ // Execute the module function\n /******/ modules[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);\n /******/ /******/ // Flag the module as loaded\n /******/ module1.l = true;\n /******/ /******/ // Return the exports of the module\n /******/ return module1.exports;\n /******/ }\n /******/ /******/ /******/ // expose the modules object (__webpack_modules__)\n /******/ __webpack_require__.m = modules;\n /******/ /******/ // expose the module cache\n /******/ __webpack_require__.c = installedModules;\n /******/ /******/ // define getter function for harmony exports\n /******/ __webpack_require__.d = function(exports, name, getter) {\n /******/ if (!__webpack_require__.o(exports, name)) /******/ Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/ };\n /******/ /******/ // define __esModule on exports\n /******/ __webpack_require__.r = function(exports) {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) /******/ Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ /******/ // create a fake namespace object\n /******/ // mode & 1: value is a module id, require it\n /******/ // mode & 2: merge all properties of value into the ns\n /******/ // mode & 4: return value when already ns object\n /******/ // mode & 8|1: behave like require\n /******/ __webpack_require__.t = function(value, mode) {\n /******/ if (mode & 1) value = __webpack_require__(value);\n /******/ if (mode & 8) return value;\n /******/ if (mode & 4 && typeof value === \"object\" && value && value.__esModule) return value;\n /******/ var ns = Object.create(null);\n /******/ __webpack_require__.r(ns);\n /******/ Object.defineProperty(ns, \"default\", {\n enumerable: true,\n value: value\n });\n /******/ if (mode & 2 && typeof value != \"string\") for(var key in value)__webpack_require__.d(ns, key, (function(key) {\n return value[key];\n }).bind(null, key));\n /******/ return ns;\n /******/ };\n /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = function(module1) {\n /******/ var getter = module1 && module1.__esModule ? /******/ function getDefault() {\n return module1[\"default\"];\n } : /******/ function getModuleExports() {\n return module1;\n };\n /******/ __webpack_require__.d(getter, \"a\", getter);\n /******/ return getter;\n /******/ };\n /******/ /******/ // Object.prototype.hasOwnProperty.call\n /******/ __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/ /******/ // __webpack_public_path__\n /******/ __webpack_require__.p = \"\";\n /******/ /******/ /******/ // Load entry module and return exports\n /******/ return __webpack_require__(__webpack_require__.s = \"fb15\");\n /******/ }({\n /***/ \"00ee\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var TO_STRING_TAG = wellKnownSymbol(\"toStringTag\");\n var test = {};\n test[TO_STRING_TAG] = \"z\";\n module1.exports = String(test) === \"[object z]\";\n /***/ },\n /***/ \"0366\": /***/ function(module1, exports, __webpack_require__) {\n var aFunction = __webpack_require__(\"1c0b\");\n // optional / simple context binding\n module1.exports = function(fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch(length){\n case 0:\n return function() {\n return fn.call(that);\n };\n case 1:\n return function(a) {\n return fn.call(that, a);\n };\n case 2:\n return function(a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function(a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function() {\n return fn.apply(that, arguments);\n };\n };\n /***/ },\n /***/ \"057f\": /***/ function(module1, exports, __webpack_require__) {\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var nativeGetOwnPropertyNames = __webpack_require__(\"241c\").f;\n var toString = {}.toString;\n var windowNames = typeof window == \"object\" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n var getWindowNames = function getWindowNames(it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n };\n // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n module1.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == \"[object Window]\" ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it));\n };\n /***/ },\n /***/ \"06cf\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\n var createPropertyDescriptor = __webpack_require__(\"5c6c\");\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var toPrimitive = __webpack_require__(\"c04e\");\n var has = __webpack_require__(\"5135\");\n var IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) {}\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n };\n /***/ },\n /***/ \"0cfb\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var fails = __webpack_require__(\"d039\");\n var createElement = __webpack_require__(\"cc12\");\n // Thank's IE8 for his funny defineProperty\n module1.exports = !DESCRIPTORS && !fails(function() {\n return Object.defineProperty(createElement(\"div\"), \"a\", {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n /***/ },\n /***/ \"13d5\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var $reduce = __webpack_require__(\"d58f\").left;\n var arrayMethodIsStrict = __webpack_require__(\"a640\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var STRICT_METHOD = arrayMethodIsStrict(\"reduce\");\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"reduce\", {\n 1: 0\n });\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n $({\n target: \"Array\",\n proto: true,\n forced: !STRICT_METHOD || !USES_TO_LENGTH\n }, {\n reduce: function reduce(callbackfn /* , initialValue */ ) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /***/ },\n /***/ \"14c3\": /***/ function(module1, exports, __webpack_require__) {\n var classof = __webpack_require__(\"c6b6\");\n var regexpExec = __webpack_require__(\"9263\");\n // `RegExpExec` abstract operation\n // https://tc39.github.io/ecma262/#sec-regexpexec\n module1.exports = function(R, S) {\n var exec = R.exec;\n if (typeof exec === \"function\") {\n var result = exec.call(R, S);\n if (typeof result !== \"object\") throw TypeError(\"RegExp exec method returned something other than an Object or null\");\n return result;\n }\n if (classof(R) !== \"RegExp\") throw TypeError(\"RegExp#exec called on incompatible receiver\");\n return regexpExec.call(R, S);\n };\n /***/ },\n /***/ \"159b\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var DOMIterables = __webpack_require__(\"fdbc\");\n var forEach = __webpack_require__(\"17c2\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n for(var COLLECTION_NAME in DOMIterables){\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, \"forEach\", forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n }\n /***/ },\n /***/ \"17c2\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $forEach = __webpack_require__(\"b727\").forEach;\n var arrayMethodIsStrict = __webpack_require__(\"a640\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var STRICT_METHOD = arrayMethodIsStrict(\"forEach\");\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"forEach\");\n // `Array.prototype.forEach` method implementation\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n module1.exports = !STRICT_METHOD || !USES_TO_LENGTH ? function forEach(callbackfn /* , thisArg */ ) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n } : [].forEach;\n /***/ },\n /***/ \"1be4\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n module1.exports = getBuiltIn(\"document\", \"documentElement\");\n /***/ },\n /***/ \"1c0b\": /***/ function(module1, exports) {\n module1.exports = function(it) {\n if (typeof it != \"function\") throw TypeError(String(it) + \" is not a function\");\n return it;\n };\n /***/ },\n /***/ \"1c7e\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var ITERATOR = wellKnownSymbol(\"iterator\");\n var SAFE_CLOSING = false;\n try {\n var called = 0;\n var iteratorWithReturn = {\n next: function next() {\n return {\n done: !!called++\n };\n },\n \"return\": function() {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function() {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function() {\n throw 2;\n });\n } catch (error) {}\n module1.exports = function(exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function() {\n return {\n next: function next() {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n exec(object);\n } catch (error) {}\n return ITERATION_SUPPORT;\n };\n /***/ },\n /***/ \"1d80\": /***/ function(module1, exports) {\n // `RequireObjectCoercible` abstract operation\n // https://tc39.github.io/ecma262/#sec-requireobjectcoercible\n module1.exports = function(it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n };\n /***/ },\n /***/ \"1dde\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var V8_VERSION = __webpack_require__(\"2d00\");\n var SPECIES = wellKnownSymbol(\"species\");\n module1.exports = function(METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function() {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function() {\n return {\n foo: 1\n };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n };\n /***/ },\n /***/ \"23cb\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var max = Math.max;\n var min = Math.min;\n // Helper for a popular repeating case of the spec:\n // Let integer be ? ToInteger(index).\n // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n module1.exports = function(index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n };\n /***/ },\n /***/ \"23e7\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var redefine = __webpack_require__(\"6eeb\");\n var setGlobal = __webpack_require__(\"ce4e\");\n var copyConstructorProperties = __webpack_require__(\"e893\");\n var isForced = __webpack_require__(\"94ca\");\n /*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/ module1.exports = function(options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) target = global;\n else if (STATIC) target = global[TARGET] || setGlobal(TARGET, {});\n else target = (global[TARGET] || {}).prototype;\n if (target) for(key in source){\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? \".\" : \"#\") + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if ((typeof sourceProperty === \"undefined\" ? \"undefined\" : (0, _typeOf._)(sourceProperty)) === (typeof targetProperty === \"undefined\" ? \"undefined\" : (0, _typeOf._)(targetProperty))) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || targetProperty && targetProperty.sham) createNonEnumerableProperty(sourceProperty, \"sham\", true);\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n };\n /***/ },\n /***/ \"241c\": /***/ function(module1, exports, __webpack_require__) {\n var internalObjectKeys = __webpack_require__(\"ca84\");\n var enumBugKeys = __webpack_require__(\"7839\");\n var hiddenKeys = enumBugKeys.concat(\"length\", \"prototype\");\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n };\n /***/ },\n /***/ \"25f0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var redefine = __webpack_require__(\"6eeb\");\n var anObject = __webpack_require__(\"825a\");\n var fails = __webpack_require__(\"d039\");\n var flags = __webpack_require__(\"ad6d\");\n var TO_STRING = \"toString\";\n var RegExpPrototype = RegExp.prototype;\n var nativeToString = RegExpPrototype[TO_STRING];\n var NOT_GENERIC = fails(function() {\n return nativeToString.call({\n source: \"a\",\n flags: \"b\"\n }) != \"/a/b\";\n });\n // FF44- RegExp#toString has a wrong name\n var INCORRECT_NAME = nativeToString.name != TO_STRING;\n // `RegExp.prototype.toString` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\n if (NOT_GENERIC || INCORRECT_NAME) redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !(\"flags\" in RegExpPrototype) ? flags.call(R) : rf);\n return \"/\" + p + \"/\" + f;\n }, {\n unsafe: true\n });\n /***/ },\n /***/ \"2ca0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\n var toLength = __webpack_require__(\"50c4\");\n var notARegExp = __webpack_require__(\"5a34\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n var correctIsRegExpLogic = __webpack_require__(\"ab13\");\n var IS_PURE = __webpack_require__(\"c430\");\n var nativeStartsWith = \"\".startsWith;\n var min = Math.min;\n var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic(\"startsWith\");\n // https://github.com/zloirock/core-js/pull/702\n var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function() {\n var descriptor = getOwnPropertyDescriptor(String.prototype, \"startsWith\");\n return descriptor && !descriptor.writable;\n }();\n // `String.prototype.startsWith` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n $({\n target: \"String\",\n proto: true,\n forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC\n }, {\n startsWith: function startsWith(searchString /* , position = 0 */ ) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search;\n }\n });\n /***/ },\n /***/ \"2d00\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var userAgent = __webpack_require__(\"342f\");\n var process = global.process;\n var versions = process && process.versions;\n var v8 = versions && versions.v8;\n var match, version;\n if (v8) {\n match = v8.split(\".\");\n version = match[0] + match[1];\n } else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n }\n module1.exports = version && +version;\n /***/ },\n /***/ \"342f\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n module1.exports = getBuiltIn(\"navigator\", \"userAgent\") || \"\";\n /***/ },\n /***/ \"35a1\": /***/ function(module1, exports, __webpack_require__) {\n var classof = __webpack_require__(\"f5df\");\n var Iterators = __webpack_require__(\"3f8c\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var ITERATOR = wellKnownSymbol(\"iterator\");\n module1.exports = function(it) {\n if (it != undefined) return it[ITERATOR] || it[\"@@iterator\"] || Iterators[classof(it)];\n };\n /***/ },\n /***/ \"37e8\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var anObject = __webpack_require__(\"825a\");\n var objectKeys = __webpack_require__(\"df75\");\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n module1.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while(length > index)definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n };\n /***/ },\n /***/ \"3bbe\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n module1.exports = function(it) {\n if (!isObject(it) && it !== null) throw TypeError(\"Can't set \" + String(it) + \" as a prototype\");\n return it;\n };\n /***/ },\n /***/ \"3ca3\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var charAt = __webpack_require__(\"6547\").charAt;\n var InternalStateModule = __webpack_require__(\"69f3\");\n var defineIterator = __webpack_require__(\"7dd0\");\n var STRING_ITERATOR = \"String Iterator\";\n var setInternalState = InternalStateModule.set;\n var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n // `String.prototype[@@iterator]` method\n // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\n defineIterator(String, \"String\", function(iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n // `%StringIteratorPrototype%.next` method\n // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n }, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n });\n /***/ },\n /***/ \"3f8c\": /***/ function(module1, exports) {\n module1.exports = {};\n /***/ },\n /***/ \"4160\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var forEach = __webpack_require__(\"17c2\");\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n $({\n target: \"Array\",\n proto: true,\n forced: [].forEach != forEach\n }, {\n forEach: forEach\n });\n /***/ },\n /***/ \"428f\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n module1.exports = global;\n /***/ },\n /***/ \"44ad\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n var classof = __webpack_require__(\"c6b6\");\n var split = \"\".split;\n // fallback for non-array-like ES3 and non-enumerable old V8 strings\n module1.exports = fails(function() {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object(\"z\").propertyIsEnumerable(0);\n }) ? function(it) {\n return classof(it) == \"String\" ? split.call(it, \"\") : Object(it);\n } : Object;\n /***/ },\n /***/ \"44d2\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var create = __webpack_require__(\"7c73\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var UNSCOPABLES = wellKnownSymbol(\"unscopables\");\n var ArrayPrototype = Array.prototype;\n // Array.prototype[@@unscopables]\n // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n if (ArrayPrototype[UNSCOPABLES] == undefined) definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n // add a key to Array.prototype[@@unscopables]\n module1.exports = function(key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n };\n /***/ },\n /***/ \"44e7\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n var classof = __webpack_require__(\"c6b6\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var MATCH = wellKnownSymbol(\"match\");\n // `IsRegExp` abstract operation\n // https://tc39.github.io/ecma262/#sec-isregexp\n module1.exports = function(it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == \"RegExp\");\n };\n /***/ },\n /***/ \"4930\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n module1.exports = !!Object.getOwnPropertySymbols && !fails(function() {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n });\n /***/ },\n /***/ \"4d64\": /***/ function(module1, exports, __webpack_require__) {\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var toLength = __webpack_require__(\"50c4\");\n var toAbsoluteIndex = __webpack_require__(\"23cb\");\n // `Array.prototype.{ indexOf, includes }` methods implementation\n var createMethod = function createMethod(IS_INCLUDES) {\n return function($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while(length > index){\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n }\n else for(; length > index; index++){\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n };\n module1.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n };\n /***/ },\n /***/ \"4de4\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var $filter = __webpack_require__(\"b727\").filter;\n var arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport(\"filter\");\n // Edge 14- issue\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"filter\");\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n // with adding support of @@species\n $({\n target: \"Array\",\n proto: true,\n forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH\n }, {\n filter: function filter(callbackfn /* , thisArg */ ) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /***/ },\n /***/ \"4df4\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var bind = __webpack_require__(\"0366\");\n var toObject = __webpack_require__(\"7b0b\");\n var callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\n var isArrayIteratorMethod = __webpack_require__(\"e95a\");\n var toLength = __webpack_require__(\"50c4\");\n var createProperty = __webpack_require__(\"8418\");\n var getIteratorMethod = __webpack_require__(\"35a1\");\n // `Array.from` method implementation\n // https://tc39.github.io/ecma262/#sec-array.from\n module1.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */ ) {\n var O = toObject(arrayLike);\n var C = typeof this == \"function\" ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for(; !(step = next.call(iterator)).done; index++){\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [\n step.value,\n index\n ], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for(; length > index; index++){\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n };\n /***/ },\n /***/ \"4fad\": /***/ function(module1, exports, __webpack_require__) {\n var $ = __webpack_require__(\"23e7\");\n var $entries = __webpack_require__(\"6f53\").entries;\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n $({\n target: \"Object\",\n stat: true\n }, {\n entries: function entries(O) {\n return $entries(O);\n }\n });\n /***/ },\n /***/ \"50c4\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var min = Math.min;\n // `ToLength` abstract operation\n // https://tc39.github.io/ecma262/#sec-tolength\n module1.exports = function(argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n };\n /***/ },\n /***/ \"5135\": /***/ function(module1, exports) {\n var hasOwnProperty = {}.hasOwnProperty;\n module1.exports = function(it, key) {\n return hasOwnProperty.call(it, key);\n };\n /***/ },\n /***/ \"5319\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\n var anObject = __webpack_require__(\"825a\");\n var toObject = __webpack_require__(\"7b0b\");\n var toLength = __webpack_require__(\"50c4\");\n var toInteger = __webpack_require__(\"a691\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n var advanceStringIndex = __webpack_require__(\"8aa5\");\n var regExpExec = __webpack_require__(\"14c3\");\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n var SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\n var SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n var maybeToString = function maybeToString(it) {\n return it === undefined ? it : String(it);\n };\n // @@replace logic\n fixRegExpWellKnownSymbolLogic(\"replace\", 2, function(REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? \"$\" : \"$0\";\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function(regexp, replaceValue) {\n if (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0 || typeof replaceValue === \"string\" && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === \"function\";\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while(true){\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === \"\") rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = \"\";\n var nextSourcePosition = 0;\n for(var i = 0; i < results.length; i++){\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for(var j = 1; j < result.length; j++)captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [\n matched\n ].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function(match, ch) {\n var capture;\n switch(ch.charAt(0)){\n case \"$\":\n return \"$\";\n case \"&\":\n return matched;\n case \"`\":\n return str.slice(0, position);\n case \"'\":\n return str.slice(tailPos);\n case \"<\":\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default:\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? \"\" : capture;\n });\n }\n });\n /***/ },\n /***/ \"5692\": /***/ function(module1, exports, __webpack_require__) {\n var IS_PURE = __webpack_require__(\"c430\");\n var store = __webpack_require__(\"c6cd\");\n (module1.exports = function(key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n })(\"versions\", []).push({\n version: \"3.6.5\",\n mode: IS_PURE ? \"pure\" : \"global\",\n copyright: \"\\xa9 2020 Denis Pushkarev (zloirock.ru)\"\n });\n /***/ },\n /***/ \"56ef\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n var getOwnPropertyNamesModule = __webpack_require__(\"241c\");\n var getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\n var anObject = __webpack_require__(\"825a\");\n // all object keys, includes non-enumerable and symbols\n module1.exports = getBuiltIn(\"Reflect\", \"ownKeys\") || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n };\n /***/ },\n /***/ \"5a34\": /***/ function(module1, exports, __webpack_require__) {\n var isRegExp = __webpack_require__(\"44e7\");\n module1.exports = function(it) {\n if (isRegExp(it)) throw TypeError(\"The method doesn't accept regular expressions\");\n return it;\n };\n /***/ },\n /***/ \"5c6c\": /***/ function(module1, exports) {\n module1.exports = function(bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n /***/ },\n /***/ \"5db7\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var flattenIntoArray = __webpack_require__(\"a2bf\");\n var toObject = __webpack_require__(\"7b0b\");\n var toLength = __webpack_require__(\"50c4\");\n var aFunction = __webpack_require__(\"1c0b\");\n var arraySpeciesCreate = __webpack_require__(\"65f0\");\n // `Array.prototype.flatMap` method\n // https://github.com/tc39/proposal-flatMap\n $({\n target: \"Array\",\n proto: true\n }, {\n flatMap: function flatMap(callbackfn /* , thisArg */ ) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n });\n /***/ },\n /***/ \"6547\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n // `String.prototype.{ codePointAt, at }` methods implementation\n var createMethod = function createMethod(CONVERT_TO_STRING) {\n return function($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? \"\" : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n };\n module1.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n };\n /***/ },\n /***/ \"65f0\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n var isArray = __webpack_require__(\"e8b5\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var SPECIES = wellKnownSymbol(\"species\");\n // `ArraySpeciesCreate` abstract operation\n // https://tc39.github.io/ecma262/#sec-arrayspeciescreate\n module1.exports = function(originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == \"function\" && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n };\n /***/ },\n /***/ \"69f3\": /***/ function(module1, exports, __webpack_require__) {\n var NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\n var global = __webpack_require__(\"da84\");\n var isObject = __webpack_require__(\"861d\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var objectHas = __webpack_require__(\"5135\");\n var sharedKey = __webpack_require__(\"f772\");\n var hiddenKeys = __webpack_require__(\"d012\");\n var WeakMap = global.WeakMap;\n var set, get, has;\n var enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n };\n var getterFor = function getterFor(TYPE) {\n return function(it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) throw TypeError(\"Incompatible receiver, \" + TYPE + \" required\");\n return state;\n };\n };\n if (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function set(it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function get(it) {\n return wmget.call(store, it) || {};\n };\n has = function has(it) {\n return wmhas.call(store, it);\n };\n } else {\n var STATE = sharedKey(\"state\");\n hiddenKeys[STATE] = true;\n set = function set(it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function get(it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function has(it) {\n return objectHas(it, STATE);\n };\n }\n module1.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n };\n /***/ },\n /***/ \"6eeb\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var has = __webpack_require__(\"5135\");\n var setGlobal = __webpack_require__(\"ce4e\");\n var inspectSource = __webpack_require__(\"8925\");\n var InternalStateModule = __webpack_require__(\"69f3\");\n var getInternalState = InternalStateModule.get;\n var enforceInternalState = InternalStateModule.enforce;\n var TEMPLATE = String(String).split(\"String\");\n (module1.exports = function(O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == \"function\") {\n if (typeof key == \"string\" && !has(value, \"name\")) createNonEnumerableProperty(value, \"name\", key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == \"string\" ? key : \"\");\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) delete O[key];\n else if (!noTargetGet && O[key]) simple = true;\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n })(Function.prototype, \"toString\", function toString() {\n return typeof this == \"function\" && getInternalState(this).source || inspectSource(this);\n });\n /***/ },\n /***/ \"6f53\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var objectKeys = __webpack_require__(\"df75\");\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n // `Object.{ entries, values }` methods implementation\n var createMethod = function createMethod(TO_ENTRIES) {\n return function(it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while(length > i){\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) result.push(TO_ENTRIES ? [\n key,\n O[key]\n ] : O[key]);\n }\n return result;\n };\n };\n module1.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n };\n /***/ },\n /***/ \"73d9\": /***/ function(module1, exports, __webpack_require__) {\n // this method was added to unscopables after implementation\n // in popular engines, so it's moved to a separate module\n var addToUnscopables = __webpack_require__(\"44d2\");\n addToUnscopables(\"flatMap\");\n /***/ },\n /***/ \"7418\": /***/ function(module1, exports) {\n exports.f = Object.getOwnPropertySymbols;\n /***/ },\n /***/ \"746f\": /***/ function(module1, exports, __webpack_require__) {\n var path = __webpack_require__(\"428f\");\n var has = __webpack_require__(\"5135\");\n var wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\n var defineProperty = __webpack_require__(\"9bf2\").f;\n module1.exports = function(NAME) {\n var Symbol1 = path.Symbol || (path.Symbol = {});\n if (!has(Symbol1, NAME)) defineProperty(Symbol1, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n };\n /***/ },\n /***/ \"7839\": /***/ function(module1, exports) {\n // IE8- don't enum bug keys\n module1.exports = [\n \"constructor\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"toLocaleString\",\n \"toString\",\n \"valueOf\"\n ];\n /***/ },\n /***/ \"7b0b\": /***/ function(module1, exports, __webpack_require__) {\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n // `ToObject` abstract operation\n // https://tc39.github.io/ecma262/#sec-toobject\n module1.exports = function(argument) {\n return Object(requireObjectCoercible(argument));\n };\n /***/ },\n /***/ \"7c73\": /***/ function(module1, exports, __webpack_require__) {\n var anObject = __webpack_require__(\"825a\");\n var defineProperties = __webpack_require__(\"37e8\");\n var enumBugKeys = __webpack_require__(\"7839\");\n var hiddenKeys = __webpack_require__(\"d012\");\n var html = __webpack_require__(\"1be4\");\n var documentCreateElement = __webpack_require__(\"cc12\");\n var sharedKey = __webpack_require__(\"f772\");\n var GT = \">\";\n var LT = \"<\";\n var PROTOTYPE = \"prototype\";\n var SCRIPT = \"script\";\n var IE_PROTO = sharedKey(\"IE_PROTO\");\n var EmptyConstructor = function EmptyConstructor() {};\n var scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + \"/\" + SCRIPT + GT;\n };\n // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(\"\"));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n };\n // Create object with fake `null` prototype: use iframe Object with cleared prototype\n var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement(\"iframe\");\n var JS = \"java\" + SCRIPT + \":\";\n var iframeDocument;\n iframe.style.display = \"none\";\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag(\"document.F=Object\"));\n iframeDocument.close();\n return iframeDocument.F;\n };\n // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n // avoid IE GC bug\n var activeXDocument;\n var NullProtoObject = function NullProtoObject1() {\n try {\n /* global ActiveXObject */ activeXDocument = document.domain && new ActiveXObject(\"htmlfile\");\n } catch (error) {}\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while(length--)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n };\n hiddenKeys[IE_PROTO] = true;\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n module1.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n };\n /***/ },\n /***/ \"7dd0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var createIteratorConstructor = __webpack_require__(\"9ed3\");\n var getPrototypeOf = __webpack_require__(\"e163\");\n var setPrototypeOf = __webpack_require__(\"d2bb\");\n var setToStringTag = __webpack_require__(\"d44e\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var redefine = __webpack_require__(\"6eeb\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var IS_PURE = __webpack_require__(\"c430\");\n var Iterators = __webpack_require__(\"3f8c\");\n var IteratorsCore = __webpack_require__(\"ae93\");\n var IteratorPrototype = IteratorsCore.IteratorPrototype;\n var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\n var ITERATOR = wellKnownSymbol(\"iterator\");\n var KEYS = \"keys\";\n var VALUES = \"values\";\n var ENTRIES = \"entries\";\n var returnThis = function returnThis() {\n return this;\n };\n module1.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function getIterationMethod(KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch(KIND){\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n return function() {\n return new IteratorConstructor(this);\n };\n };\n var TO_STRING_TAG = NAME + \" Iterator\";\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype[\"@@iterator\"] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == \"Array\" ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n else if (typeof CurrentIteratorPrototype[ITERATOR] != \"function\") createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() {\n return nativeIterator.call(this);\n };\n }\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n Iterators[NAME] = defaultIterator;\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) {\n for(KEY in methods)if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) redefine(IterablePrototype, KEY, methods[KEY]);\n } else $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n return methods;\n };\n /***/ },\n /***/ \"7f9a\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var inspectSource = __webpack_require__(\"8925\");\n var WeakMap = global.WeakMap;\n module1.exports = typeof WeakMap === \"function\" && /native code/.test(inspectSource(WeakMap));\n /***/ },\n /***/ \"825a\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n module1.exports = function(it) {\n if (!isObject(it)) throw TypeError(String(it) + \" is not an object\");\n return it;\n };\n /***/ },\n /***/ \"83ab\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n // Thank's IE8 for his funny defineProperty\n module1.exports = !fails(function() {\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n });\n /***/ },\n /***/ \"8418\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var toPrimitive = __webpack_require__(\"c04e\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var createPropertyDescriptor = __webpack_require__(\"5c6c\");\n module1.exports = function(object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n };\n /***/ },\n /***/ \"861d\": /***/ function(module1, exports) {\n module1.exports = function(it) {\n return typeof it === \"object\" ? it !== null : typeof it === \"function\";\n };\n /***/ },\n /***/ \"8875\": /***/ function(module1, exports, __webpack_require__) {\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // addapted from the document.currentScript polyfill by Adam Miller\n // MIT license\n // source: https://github.com/amiller-gh/currentScript-polyfill\n // added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n (function(root, factory) {\n __WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module1.exports = __WEBPACK_AMD_DEFINE_RESULT__);\n })(typeof self !== \"undefined\" ? self : this, function() {\n function getCurrentScript() {\n var descriptor = Object.getOwnPropertyDescriptor(document, \"currentScript\");\n // for chrome\n if (!descriptor && \"currentScript\" in document && document.currentScript) return document.currentScript;\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) return document.currentScript;\n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n } catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig, ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig, stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack), scriptLocation = stackDetails && stackDetails[1] || false, line = stackDetails && stackDetails[2] || false, currentLocation = document.location.href.replace(document.location.hash, \"\"), pageSource, inlineScriptSourceRegExp, inlineScriptSource, scripts = document.getElementsByTagName(\"script\"); // Live NodeList collection\n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp(\"(?:[^\\\\n]+?\\\\n){0,\" + (line - 2) + \"}[^<]*\n\n\n","import { Dexie, liveQuery } from 'dexie'\n\nimport { hashJsonObject } from './Utils'\n\nexport type DatabaseItem = {\n id: string\n timestamp: number\n data: any\n hash: string | null\n}\n\nfunction open(name: string, version?: number) {\n console.warn('indexedDB is disabled')\n}\n\nfunction deleteDatabase(name: string) {\n console.warn('indexedDB is disabled')\n}\n\nexport class Database {\n private db: Dexie\n private observables: any = {}\n\n constructor() {\n this.db = new Dexie('EdrysLite')\n\n this.db.version(2).stores({\n data: `\n &id,\n timestamp,\n data,\n hash`,\n })\n\n this.db\n .open()\n .then(function (db) {\n // Database opened successfully\n console.log('Database opened successfully')\n\n // Disable indexedDB for others\n // @ts-ignore\n window.indexedDB.open = open\n // @ts-ignore\n window.indexedDB.deleteDatabase = deleteDatabase\n })\n .catch(function (err) {\n console.warn('Database error: ' + err.message)\n })\n }\n\n getAll(): Promise {\n return this.db['data'].orderBy('timestamp').desc().toArray()\n }\n\n async exists(id: string): Promise {\n const item = await this.get(id)\n return item ? true : false\n }\n\n async get(id: string): Promise {\n return await this.db['data'].get(id)\n }\n\n put(config: DatabaseItem) {\n return this.db['data'].put(config)\n }\n\n update(config: DatabaseItem, withTimestamp: boolean = true) {\n if (withTimestamp) {\n config.timestamp = Date.now()\n }\n return this.put(config)\n }\n\n drop(id: string) {\n this.db['data'].delete(id)\n }\n\n async setProtection(id: string, on: boolean = true) {\n const classroom = await this.get(id)\n\n if (classroom) {\n classroom.hash = on ? await hashJsonObject(classroom.data) : null\n\n this.update(classroom, false)\n }\n }\n\n setObservable(id: string, callback: (result: any) => void) {\n if (this.observables[id]) {\n this.observables[id].unsubscribe()\n delete this.observables[id]\n }\n\n const db = this.db['data']\n const observable =\n id === '*'\n ? liveQuery(() => db.orderBy('timestamp').desc().toArray())\n : liveQuery(() => db.where('id').equals(id).first())\n\n this.observables[id] = observable.subscribe({\n next: (result) => callback(result),\n error: (err) => console.warn(err),\n })\n }\n\n deleteObservable(id: string) {\n if (this.observables[id]) {\n this.observables[id].unsubscribe()\n delete this.observables[id]\n }\n }\n}\n","/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 3.2.7, Wed Mar 20 2024\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n \n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nvar _global = typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n\nvar keys = Object.keys;\nvar isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n}\nfunction extend(obj, extension) {\n if (typeof extension !== 'object')\n return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n}\nvar getProto = Object.getPrototypeOf;\nvar _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction props(proto, extension) {\n if (typeof extension === 'function')\n extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n}\nvar defineProperty = Object.defineProperty;\nfunction setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n { value: functionOrGetSet, configurable: true, writable: true }, options));\n}\nfunction derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nfunction getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n}\nvar _slice = [].slice;\nfunction slice(args, start, end) {\n return _slice.call(args, start, end);\n}\nfunction override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\nfunction assert(b) {\n if (!b)\n throw new Error(\"Assertion Failed\");\n}\nfunction asap$1(fn) {\n if (_global.setImmediate)\n setImmediate(fn);\n else\n setTimeout(fn, 0);\n}\nfunction arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue)\n result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\nfunction tryCatch(fn, onerror, args) {\n try {\n fn.apply(null, args);\n }\n catch (ex) {\n onerror && onerror(ex);\n }\n}\nfunction getByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath))\n return obj[keyPath];\n if (!keyPath)\n return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\nfunction setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n obj.splice(currentKeyPath, 1);\n else\n delete obj[currentKeyPath];\n }\n else\n obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath)))\n obj.splice(keyPath, 1);\n else\n delete obj[keyPath];\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nfunction delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\nfunction shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m))\n rv[m] = obj[m];\n }\n return rv;\n}\nvar concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\nvar intrinsicTypeNames = \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\nvar intrinsicTypes = intrinsicTypeNames.map(function (t) { return _global[t]; });\narrayToObject(intrinsicTypeNames, function (x) { return [x, true]; });\nvar circularRefs = null;\nfunction deepClone(any) {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n var rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\nfunction innerDeepClone(any) {\n if (!any || typeof any !== 'object')\n return any;\n var rv = circularRefs && circularRefs.get(any);\n if (rv)\n return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n }\n else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n }\n else {\n var proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\nvar toString = {}.toString;\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nvar iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nvar getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nvar NO_CHAR_ARRAY = {};\nfunction getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike))\n return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done)\n a.push(x.value);\n return a;\n }\n if (arrayLike == null)\n return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--)\n a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--)\n a[i] = arguments[i];\n return a;\n}\nvar isAsyncFunction = typeof Symbol !== 'undefined'\n ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n : function () { return false; };\n\nvar debug = typeof location !== 'undefined' &&\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\nfunction setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\nvar libraryFilter = function () { return true; };\nvar NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\nfunction getErrorWithStack() {\n if (NEEDS_THROW_FOR_STACK)\n try {\n getErrorWithStack.arguments;\n throw new Error();\n }\n catch (e) {\n return e;\n }\n return new Error();\n}\nfunction prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack)\n return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(function (frame) { return \"\\n\" + frame; })\n .join('');\n}\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\nfunction DexieError(name, msg) {\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\nderive(DexieError).from(Error).extend({\n stack: {\n get: function () {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function () { return this.name + \": \" + this.message; }\n});\nfunction getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(function (key) { return failures[key].toString(); })\n .filter(function (v, i, s) { return s.indexOf(v) === i; })\n .join('\\n');\n}\nfunction ModifyError(msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\nfunction BulkError(msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(function (pos) { return failures[pos]; });\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\nvar errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\nvar BaseException = DexieError;\nvar exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n }\n else if (typeof msgOrInner === 'string') {\n this.message = \"\" + msgOrInner + (!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n }\n else if (typeof msgOrInner === 'object') {\n this.message = msgOrInner.name + \" \" + msgOrInner.message;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n}, {});\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\nvar exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfunction mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", { get: function () {\n return this.inner.stack;\n } });\n }\n return rv;\n}\nvar fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n\nfunction nop() { }\nfunction mirror(val) { return val; }\nfunction pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror)\n return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\nfunction callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\nfunction hookCreatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined)\n arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\nfunction hookDeletingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\nfunction hookUpdatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\nfunction reverseStoppableEventChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n if (f2.apply(this, arguments) === false)\n return false;\n return f1.apply(this, arguments);\n };\n}\nfunction promisableChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this, i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n\nvar INTERNAL = {};\nvar LONG_STACKS_CLIP_LIMIT = 100,\nMAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ?\n [] :\n (function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\nvar NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nvar patchGlobalPromise = !!resolvedGlobalPromise;\nvar stack_being_generated = false;\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n function () { resolvedGlobalPromise.then(physicalTick); }\n :\n _global.setImmediate ?\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n function () {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(function () {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n function () { setTimeout(physicalTick, 0); };\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\nvar isOutsideMicroTick = true,\nneedsNewPhysicalTick = true,\nunhandledErrors = [],\nrejectingErrors = [],\ncurrentFulfiller = null, rejectionMapper = mirror;\nvar globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(function (uh) {\n try {\n globalError(uh[0], uh[1]);\n }\n catch (e) { }\n });\n }\n};\nvar PSD = globalPSD;\nvar microtickQueue = [];\nvar numScheduledCalls = 0;\nvar tickFinalizers = [];\nfunction DexiePromise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this.onuncatched = nop;\n this._lib = false;\n var psd = (this._PSD = PSD);\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0;\n }\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL)\n throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n}\nvar thenProp = {\n get: function () {\n var psd = PSD, microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ?\n thenProp :\n {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n};\nprops(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1)\n return this.then(null, onRejected);\n var type = arguments[0], handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n })\n : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n onFinally();\n return value;\n }, function (err) {\n onFinally();\n return PromiseReject(err);\n });\n },\n stack: {\n get: function () {\n if (this._stack)\n return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack(this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null)\n this._stack = stack;\n return stack;\n }\n finally {\n stack_being_generated = false;\n }\n }\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ?\n new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\nglobalPSD.env = snapShot();\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\nprops(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments)\n .map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0)\n resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (!--remaining)\n resolve(values);\n }, reject); });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise)\n return value;\n if (value && typeof value.then === 'function')\n return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n });\n },\n PSD: {\n get: function () { return PSD; },\n set: function (value) { return PSD = value; }\n },\n totalEchoes: { get: function () { return totalEchoes; } },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () { return asap; },\n set: function (value) { asap = value; }\n },\n rejectionMapper: {\n get: function () { return rejectionMapper; },\n set: function (value) { rejectionMapper = value; }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\nif (NativePromise) {\n if (NativePromise.allSettled)\n setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0)\n resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n .then(function () { return --remaining || resolve(results); }); });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined')\n setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0)\n reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n failures[i] = failure;\n if (!--remaining)\n reject(new AggregateError(failures));\n }); });\n });\n });\n}\nfunction executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null)\n return;\n if (value === promise)\n throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n }\n else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick)\n endMicroTickScope();\n }, handleRejection.bind(null, promise));\n }\n catch (ex) {\n handleRejection(promise, ex);\n }\n}\nfunction handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null)\n return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(function () {\n var origProp = getPropertyDescriptor(reason, \"stack\");\n reason._promise = promise;\n setProp(reason, \"stack\", {\n get: function () {\n return stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack;\n }\n });\n });\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick)\n endMicroTickScope();\n}\nfunction propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n }\n}\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap(callListener, [cb, promise, listener]);\n}\nfunction callListener(cb, promise, listener) {\n try {\n currentFulfiller = promise;\n var ret, value = promise._value;\n if (promise._state) {\n ret = cb(value);\n }\n else {\n if (rejectingErrors.length)\n rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n }\n catch (e) {\n listener.reject(e);\n }\n finally {\n currentFulfiller = null;\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\nfunction getStack(promise, stacks, limit) {\n if (stacks.length === limit)\n return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value, errorName, message;\n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n }\n else {\n errorName = failure;\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1)\n stacks.push(stack);\n if (promise._prev)\n getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\nfunction linkToPreviousPromise(promise, prev) {\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) {\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\nfunction beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\nfunction endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i)\n finalizers[--i]();\n}\nfunction run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n}\nfunction addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n unhandledErrors.push(promise);\n}\nfunction markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i)\n if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n}\nfunction PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\nfunction wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n }\n catch (e) {\n errorCatcher && errorCatcher(e);\n }\n finally {\n switchToZone(outerScope, false);\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n}\nvar task = { awaits: 0, echoes: 0, id: 0 };\nvar taskCounter = 0;\nvar zoneStack = [];\nvar zoneEchoes = 0;\nvar totalEchoes = 0;\nvar zone_id_counter = 0;\nfunction newScope(fn, props, a1, a2) {\n var parent = PSD, psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen(globalEnv.nthen, psd),\n gthen: getPatchedPromiseThen(globalEnv.gthen, psd)\n } : {};\n if (props)\n extend(psd, props);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0)\n psd.finalize();\n return rv;\n}\nfunction incrementExpectedAwaits() {\n if (!task.id)\n task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\nfunction decrementExpectedAwaits() {\n if (!task.awaits)\n return false;\n if (--task.awaits === 0)\n task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n}\nif (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\nfunction onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD)\n return;\n PSD = targetZone;\n if (currentZone === globalPSD)\n globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise_1 = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise_1.prototype.then = targetEnv.gthen;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise_1.all = targetEnv.all;\n GlobalPromise_1.race = targetEnv.race;\n GlobalPromise_1.resolve = targetEnv.resolve;\n GlobalPromise_1.reject = targetEnv.reject;\n if (targetEnv.allSettled)\n GlobalPromise_1.allSettled = targetEnv.allSettled;\n if (targetEnv.any)\n GlobalPromise_1.any = targetEnv.any;\n }\n }\n}\nfunction snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n }\n finally {\n switchToZone(outerScope, false);\n }\n}\nfunction enqueueNativeMicroTask(job) {\n nativePromiseThen.call(resolvedNativePromise, job);\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait)\n incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n }\n finally {\n switchToZone(outerZone, false);\n if (cleanup)\n enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\nfunction getPatchedPromiseThen(origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\nvar UNHANDLEDREJECTION = \"unhandledrejection\";\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n }\n catch (e) { }\n if (rv !== false)\n try {\n var event, eventData = { promise: promise, reason: err };\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n }\n else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData });\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n try {\n _global.onunhandledrejection(event);\n }\n catch (_) { }\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(\"Unhandled rejection: \" + (err.stack || err));\n }\n }\n catch (e) { }\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n return trans._completion.then(function () { return result; });\n });\n }\n}\n\nvar DEXIE_VERSION = '3.2.7';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nvar hasIEDeleteObjectStoreBug = isIEOrEdge;\nvar hangsOnDeleteLargeKeyRange = isIEOrEdge;\nvar dexieStackFrameFilter = function (frame) { return !/(dexie\\.js|dexie\\.min\\.js)/.test(frame); };\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n\nvar AnyRange = {\n type: 3 ,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n return typeof keyPath === \"string\" && !/\\./.test(keyPath)\n ? function (obj) {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : function (obj) { return obj; };\n}\n\nvar Table = (function () {\n function Table() {\n }\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n }\n finally {\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit).first(cb);\n return this._trans('readonly', function (trans) {\n return _this.core.get({ trans: trans, key: keyOrCrit })\n .then(function (res) { return _this.hook.reading.fire(res); });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, \"[\" + indexOrCrit.join('+') + \"]\");\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n if (ix.compound &&\n keyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; })) {\n for (var i = 0; i < keyPaths.length; ++i) {\n if (keyPaths.indexOf(ix.keyPath[i]) === -1)\n return false;\n }\n return true;\n }\n return false;\n }).sort(function (a, b) { return a.keyPath.length - b.keyPath.length; })[0];\n if (compoundIndex && this.db._maxKey !== maxString) {\n var keyPathsInValidOrder = compoundIndex.keyPath.slice(0, keyPaths.length);\n return this\n .where(keyPathsInValidOrder)\n .equals(keyPathsInValidOrder.map(function (kp) { return indexOrCrit[kp]; }));\n }\n if (!compoundIndex && debug)\n console.warn(\"The query \" + JSON.stringify(indexOrCrit) + \" on \" + this.name + \" would benefit of a \" +\n (\"compound index [\" + keyPaths.join('+') + \"]\"));\n var idxByName = this.schema.idxByName;\n var idb = this.db._deps.indexedDB;\n function equals(a, b) {\n try {\n return idb.cmp(a, b) === 0;\n }\n catch (e) {\n return false;\n }\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0], prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [\n prevIndex || index,\n prevIndex || !index ?\n combine(prevFilterFn, index && index.multi ?\n function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) { return equals(value, item); });\n } : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n : prevFilterFn\n ];\n }, [null, null]), idx = _a[0], filterFunction = _a[1];\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) :\n this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n \"[\" + index.join('+') + \"]\" :\n index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n this.schema.mappedClass = constructor;\n var readHook = function (obj) {\n if (!obj)\n return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj)\n if (hasOwn(obj, m))\n try {\n res[m] = obj[m];\n }\n catch (_) { }\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n }).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined)\n return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(function (keyPath) {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n }\n else {\n modifications(keyOrObject, { value: keyOrObject, primKey: key });\n }\n }\n catch (_a) {\n }\n return this.where(\":id\").equals(key).modify(modifications);\n }\n else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.bulkGet = function (keys) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys,\n trans: trans\n }).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'add', keys: keys, values: objectsToAdd, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkAdd(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'put', keys: keys, values: objectsToPut, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkPut(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkDelete = function (keys) {\n var _this = this;\n var numKeys = keys.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'delete', keys: keys });\n }).then(function (_a) {\n var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n if (numFailures === 0)\n return lastResult;\n throw new BulkError(_this.name + \".bulkDelete(): \" + numFailures + \" of \" + numKeys + \" operations failed\", failures);\n });\n };\n return Table;\n}());\n\nfunction Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length, args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n }\n else if (typeof (eventName) === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object')\n return addConfiguredEvents(eventName);\n if (!chainFunction)\n chainFunction = reverseStoppableEventChain;\n if (!defaultFunction)\n defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n }\n else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap$1(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n }\n else\n throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n derive(constructor).from({ prototype: prototype });\n return constructor;\n}\n\nfunction createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey)\n return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index)\n throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n }\n else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]')\n key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () { return cursor.continue(); };\n if (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n wrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n c();\n });\n }\n });\n}\n\nfunction cmp(a, b) {\n try {\n var ta = type(a);\n var tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array')\n return 1;\n if (tb === 'Array')\n return -1;\n if (ta === 'binary')\n return 1;\n if (tb === 'binary')\n return -1;\n if (ta === 'string')\n return 1;\n if (tb === 'string')\n return -1;\n if (ta === 'Date')\n return 1;\n if (tb !== 'Date')\n return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n }\n catch (_a) { }\n return NaN;\n}\nfunction compareArrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n var res = cmp(a[i], b[i]);\n if (res !== 0)\n return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction compareUint8Arrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n if (a[i] !== b[i])\n return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction type(x) {\n var t = typeof x;\n if (t !== 'object')\n return t;\n if (ArrayBuffer.isView(x))\n return 'binary';\n var tsTag = toStringTag(x);\n return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n}\nfunction getUint8Array(a) {\n if (a instanceof Uint8Array)\n return a;\n if (ArrayBuffer.isView(a))\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a);\n}\n\nvar Collection = (function () {\n function Collection() {\n }\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props) {\n var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n if (props)\n extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) { return Math.min(count, ctx.limit); });\n }\n else {\n var count = 0;\n return iter(ctx, function () { ++count; return false; }, trans, coreTable)\n .then(function () { return count; });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i)\n return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n }\n else {\n var a_1 = [];\n return iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0)\n return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0)\n return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n }\n else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () { return (--offsetLeft < 0); };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0)\n advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n }\n else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange)\n this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi)\n return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n }\n else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n var limit = _this.db._options.modifyChunkSize || 200;\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures, numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys) {\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans: trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\"\n }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys[offset + i]);\n }\n else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys[offset + i]);\n addValues.push(ctx_1.value);\n }\n else {\n putValues.push(ctx_1.value);\n if (outbound)\n putKeys.push(keys[offset + i]);\n }\n }\n }\n var criteria = isPlainKeyRange(ctx) &&\n ctx.limit === Infinity &&\n (typeof changes !== 'function' || changes === deleteCallback) && {\n index: ctx.index,\n range: ctx.range\n };\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'add', values: addValues })\n .then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function () { return (putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria: criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans: trans,\n type: 'delete',\n keys: deleteKeys,\n criteria: criteria\n }).then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx, range = ctx.range;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 ))\n {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n return ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n .then(function (_a) {\n var failures = _a.failures; _a.lastResult; _a.results; var numFailures = _a.numFailures;\n if (numFailures)\n throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(deleteCallback);\n };\n return Collection;\n}());\nvar deleteCallback = function (value, ctx) { return ctx.value = null; };\n\nfunction createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange, error = null;\n if (keyRangeGenerator)\n try {\n keyRange = keyRangeGenerator();\n }\n catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n}\n\nfunction simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection(collectionOrWhereClause) :\n collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\nfunction emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toUpperCase(); } :\n function (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toLowerCase(); } :\n function (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0)\n return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0)\n return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0)\n return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0)\n llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\")\n return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\")\n return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n if (!needles.every(function (s) { return typeof s === 'string'; })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle) {\n return { lower: lower(needle), upper: upper(needle) };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string')\n return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n }\n else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n }\n else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2 ,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n}\nfunction rangeEqual(value) {\n return {\n type: 1 ,\n lower: value,\n upper: value\n };\n}\n\nvar WhereClause = (function () {\n function WhereClause() {\n }\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: false,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this);\n return new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return rangeEqual(value); });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, true); });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, false); });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value); });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string')\n return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\")\n return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0)\n return emptyCollection(this);\n var c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n c._ondirectionchange = function (direction) {\n compare = (direction === \"next\" ?\n _this._ascending :\n _this._descending);\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n }\n else {\n advance(function () { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return new this.Collection(this);\n try {\n set.sort(this._ascending);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) { return res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]]; }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n if (ranges.length === 0)\n return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0, l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n }\n catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ?\n function (key) { return ascending(key, set[rangePos][1]) > 0; } :\n function (key) { return ascending(key, set[rangePos][1]) >= 0; };\n var keyIsBeforeCurrentEntry = includeLowers ?\n function (key) { return descending(key, set[rangePos][0]) > 0; } :\n function (key) { return descending(key, set[rangePos][0]) >= 0; };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n }\n else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n }\n else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n }\n else {\n advance(function () {\n if (sortDirection === ascending)\n cursor.continue(set[rangePos][0]);\n else\n cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) { return typeof s === 'string'; })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0)\n return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n };\n return WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n var indexedDB = db._deps.indexedDB;\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = function (a, b) { return indexedDB.cmp(b, a); };\n this._max = function (a, b) { return indexedDB.cmp(a, b) > 0 ? a : b; };\n this._min = function (a, b) { return indexedDB.cmp(a, b) < 0 ? a : b; };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n });\n}\n\nfunction eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n}\nfunction preventDefault(event) {\n if (event.stopPropagation)\n event.stopPropagation();\n if (event.preventDefault)\n event.preventDefault();\n}\n\nvar DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\nvar STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\nvar globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n\nvar Transaction = (function () {\n function Transaction() {\n }\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global)\n PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global)\n PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n }\n catch (e) { }\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode)\n return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active)\n throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core\n ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }));\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n }\n else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p.finally(function () { return _this._unlock(); });\n p._lib = true;\n return p;\n });\n }\n else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () { return promise; });\n }\n else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length)\n (root._waitingQueue.shift())();\n if (root._waitingFor)\n store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) { return root._waitingQueue.push(wrap(resolve.bind(null, res))); }, function (err) { return root._waitingQueue.push(wrap(reject.bind(null, err))); }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n if (this.active) {\n this.active = false;\n if (this.idbtrans)\n this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ?\n _this.parent._reject(e) :\n wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n };\n}\n\nfunction safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\nvar getMaxKey = function (IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = function () { return [[]]; };\n return [[]];\n }\n catch (e) {\n getMaxKey = function () { return maxString; };\n return maxString;\n }\n};\n\nfunction getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () { return undefined; };\n }\n else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) { return obj[keyPath]; };\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\n\nfunction arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n}\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n \"[\" + keyPath.join('+') + \"]\";\n}\nfunction createDBCore(db, IdbKeyRange, tmpTrans) {\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n var keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n .map(function (index) {\n var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3 )\n return null;\n if (range.type === 4 )\n throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n var idbRange = lower === undefined ?\n upper === undefined ?\n null :\n IdbKeyRange.upperBound(upper, !!upperOpen) :\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) :\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error(\"Invalid operation type: \" + type);\n var length = (keys || values || { length: 1 }).length;\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n var req;\n var reqs = [];\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n };\n if (type === 'deleteRange') {\n if (range.type === 4 )\n return resolve({ numFailures: numFailures, failures: failures, results: [], lastResult: undefined });\n if (range.type === 3 )\n reqs.push(req = store.clear());\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n }\n else {\n var _a = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null], args1 = _a[0], args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i])));\n req.onerror = errorHandler;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = store[type](args1[i]));\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n reqs.forEach(function (req, i) { return req.error != null && (failures[i] = req.error); });\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: type === \"delete\" ? keys : reqs.map(function (req) { return req.result; }),\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n var direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n var req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey)\n _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n var doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n }\n catch (err) {\n cursor.fail(err);\n }\n }\n else {\n cursor.done = true;\n cursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0)\n return resolve({ result: [] });\n if (hasGetAll) {\n var req = values ?\n source.getAll(idbKeyRange, nonInfinitLimit) :\n source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n req.onerror = eventRejectHandler(reject);\n }\n else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor)\n return resolve({ result: result_1 });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit)\n return resolve({ result: result_1 });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans, keys = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null)\n ;\n if (++callbackCount === keyCount)\n resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0)\n resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans, key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) { return resolve(event.target.result); };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query, trans = _a.trans;\n var index = query.index, range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n var tableMap = {};\n tables.forEach(function (table) { return tableMap[table.name] = table; });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result)\n throw new Error(\"Table '\" + name + \"' not found\");\n return tableMap[name];\n },\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return (__assign(__assign({}, down), create(down)));\n }, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange; _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n}\nfunction generateMiddlewareStacks(_a, tmpTrans) {\n var db = _a._novip;\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n\nfunction setApiOnPlace(_a, objs, tableNames, dbschema) {\n var db = _a._novip;\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () { return this.table(tableName); },\n set: function (value) {\n defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n }\n });\n }\n else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\nfunction removeTablesApi(_a, objs) {\n var db = _a._novip;\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table)\n delete obj[key];\n }\n });\n}\nfunction lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n }\n else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\nfunction updateTablesAndIndexes(_a, oldVersion, trans, idbUpgradeTrans) {\n var db = _a._novip;\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var anyContentUpgraderHasRun = false;\n var versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n }\n else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) { return addIndex(store_1, idx); });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n anyContentUpgraderHasRun = true;\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue_1 && typeof returnValue_1.then === 'function' ?\n DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n }\n });\n queue.push(function (idbtrans) {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n }\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table])\n diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table], newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n }\n else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ((\n '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge))\n {\n change.recreate = true;\n diff.change.push(change);\n }\n else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName])\n change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n if (!oldIdx)\n change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src)\n change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto });\n indexes.forEach(function (idx) { return addIndex(store, idx); });\n return store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n });\n}\nfunction addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\nfunction readGlobalSchema(_a, idbdb, tmpTrans) {\n var db = _a._novip;\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(_a, schema, idbtrans) {\n var db = _a._novip;\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n}\n\nvar Version = (function () {\n function Version() {\n }\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi)\n throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto)\n throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath)\n throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n };\n return Version;\n}());\n\nfunction createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n}\n\nfunction getDbNamesTable(indexedDB, IDBKeyRange) {\n var dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n addons: [],\n indexedDB: indexedDB,\n IDBKeyRange: IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\");\n}\nfunction hasDatabasesNative(indexedDB) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\nfunction getDatabaseNames(_a) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then(function (infos) {\n return infos\n .map(function (info) { return info.name; })\n .filter(function (name) { return name !== DBNAMES_DB; });\n })\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\nfunction _onDatabaseCreated(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({ name: name }).catch(nop);\n}\nfunction _onDatabaseDeleted(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n\nfunction vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n}\n\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nfunction dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(function () { return state.dbOpenError ?\n rejection(state.dbOpenError) :\n db; });\n debug && (state.openCanceller._stackHolder = getErrorWithStack());\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var openCanceller = state.openCanceller;\n function throwIfCancelled() {\n if (state.openCanceller !== openCanceller)\n throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null, wasCreated = false;\n var tryOpenDB = function () { return new DexiePromise(function (resolve, reject) {\n throwIfCancelled();\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n var dbName = db.name;\n var req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req)\n throw new exceptions.MissingAPI();\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \" + dbName + \" doesnt exist\"));\n });\n }\n else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db._novip.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0)\n try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema)\n readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\");\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n }\n catch (e) {\n }\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n idbdb.onclose = wrap(function (ev) {\n db.on(\"close\").fire(ev);\n });\n if (wasCreated)\n _onDatabaseCreated(db._deps, dbName);\n resolve();\n }, reject);\n }).catch(function (err) {\n if (err && err.name === 'UnknownError' && state.PR1398_maxLoop > 0) {\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n }\n else {\n return DexiePromise.reject(err);\n }\n }); };\n return DexiePromise.race([\n openCanceller,\n (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(tryOpenDB)\n ]).then(function () {\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return db.on.ready.fire(db.vip); })).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return remainders_1(db.vip); })).then(fireRemainders);\n }\n });\n }).finally(function () {\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(function () {\n return db;\n }).catch(function (err) {\n state.dbOpenError = err;\n try {\n upgradeTransaction && upgradeTransaction.abort();\n }\n catch (_a) { }\n if (openCanceller === state.openCanceller) {\n db._close();\n }\n return rejection(err);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n });\n}\n\nfunction awaitIterator(iterator) {\n var callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val), value = next.value;\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n return step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2)\n throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n }\n else {\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return enterTransactionScope(db, mode, storeNames, null, scopeFunc); });\n }\n return rejection(ex);\n }\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n DexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n x\n : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n : promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n if (parentTransaction)\n trans._resolve();\n return trans._completion.then(function () { return x; });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n}\n\nfunction pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i)\n result.push(value);\n return result;\n}\nfunction createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), { table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), { isVirtual: isVirtual, keyTail: keyTail, keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ?\n keyPath[0] :\n keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ?\n 2 :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), { query: {\n index: index,\n range: translateRange(req.query.range, index.keyTail)\n } }) : req;\n }\n var result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n return table.count(translateRequest(req));\n }, query: function (req) {\n return table.query(translateRequest(req));\n }, openCursor: function (req) {\n var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n if (!isVirtual)\n return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)) :\n cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: { value: _continue },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get: function () {\n return cursor.primaryKey;\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ?\n key[0] :\n key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req))\n .then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n } });\n return result;\n } });\n}\nvar virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\nfunction getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop)) {\n rv[prfx + prop] = undefined;\n }\n else {\n var ap = a[prop], bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop];\n }\n else if (apTypeName === 'Object') {\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n }\n else if (ap !== bp) {\n rv[prfx + prop] = b[prop];\n }\n }\n else if (ap !== bp)\n rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n}\n\nvar hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'delete':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'deleteRange':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys)\n throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys }) : __assign({}, req);\n if (req.type !== 'delete')\n req.values = __spreadArray([], req.values, true);\n if (req.keys)\n req.keys = __spreadArray([], req.keys, true);\n return getExistingValues(downTable, req, keys).then(function (existingValues) {\n var contexts = keys.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n }\n else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n }\n else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n }\n else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n for (var i = 0; i < keys.length; ++i) {\n var primKey = results ? results[i] : keys[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n }\n else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n req.values[i] :\n primKey\n );\n }\n }\n return { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n }).catch(function (error) {\n contexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n .then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n if (res.numFailures > 0)\n return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return { failures: [], numFailures: 0, lastResult: undefined };\n }\n else {\n return deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n }\n });\n });\n }\n } });\n return tableMiddleware;\n } })); }\n};\nfunction getExistingValues(table, req, effectiveKeys) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n\nfunction getFromTransactionCache(keys, cache, clone) {\n try {\n if (!cache)\n return null;\n if (cache.keys.length < keys.length)\n return null;\n var result = [];\n for (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0)\n continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n return result.length === keys.length ? result : null;\n }\n catch (_a) {\n return null;\n }\n}\nvar cacheExistingValuesMiddleware = {\n stack: \"dbcore\",\n level: -1,\n create: function (core) {\n return {\n table: function (tableName) {\n var table = core.table(tableName);\n return __assign(__assign({}, table), { getMany: function (req) {\n if (!req.cache) {\n return table.getMany(req);\n }\n var cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n if (cachedResult) {\n return DexiePromise.resolve(cachedResult);\n }\n return table.getMany(req).then(function (res) {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n }, mutate: function (req) {\n if (req.type !== \"add\")\n req.trans[\"_cache\"] = null;\n return table.mutate(req);\n } });\n },\n };\n },\n};\n\nvar _a;\nfunction isEmptyRange(node) {\n return !(\"from\" in node);\n}\nvar RangeSet = function (fromOrTree, to) {\n if (this) {\n extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });\n }\n else {\n var rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n};\nprops(RangeSet.prototype, (_a = {\n add: function (rangeSet) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey: function (key) {\n addRange(this, key, key);\n return this;\n },\n addKeys: function (keys) {\n var _this = this;\n keys.forEach(function (key) { return addRange(_this, key, key); });\n return this;\n }\n },\n _a[iteratorSymbol] = function () {\n return getRangeSetIterator(this);\n },\n _a));\nfunction addRange(target, from, to) {\n var diff = cmp(from, to);\n if (isNaN(diff))\n return;\n if (diff > 0)\n throw RangeError();\n if (isEmptyRange(target))\n return extend(target, { from: from, to: to, d: 1 });\n var left = target.l;\n var right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null;\n target.d = right ? right.d + 1 : 1;\n }\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null;\n target.d = target.l ? target.l.d + 1 : 1;\n }\n var rightWasCutOff = !target.r;\n if (left && !target.l) {\n mergeRanges(target, left);\n }\n if (right && rightWasCutOff) {\n mergeRanges(target, right);\n }\n}\nfunction mergeRanges(target, newSet) {\n function _addRangeSet(target, _a) {\n var from = _a.from, to = _a.to, l = _a.l, r = _a.r;\n addRange(target, from, to);\n if (l)\n _addRangeSet(target, l);\n if (r)\n _addRangeSet(target, r);\n }\n if (!isEmptyRange(newSet))\n _addRangeSet(target, newSet);\n}\nfunction rangesOverlap(rangeSet1, rangeSet2) {\n var i1 = getRangeSetIterator(rangeSet2);\n var nextResult1 = i1.next();\n if (nextResult1.done)\n return false;\n var a = nextResult1.value;\n var i2 = getRangeSetIterator(rangeSet1);\n var nextResult2 = i2.next(a.from);\n var b = nextResult2.value;\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)\n return true;\n cmp(a.from, b.from) < 0\n ? (a = (nextResult1 = i1.next(b.from)).value)\n : (b = (nextResult2 = i2.next(a.from)).value);\n }\n return false;\n}\nfunction getRangeSetIterator(node) {\n var state = isEmptyRange(node) ? null : { s: 0, n: node };\n return {\n next: function (key) {\n var keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n }\n else {\n while (state.n.l)\n state = { up: state, n: state.n.l, s: 1 };\n }\n case 1:\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n if (state.n.r) {\n state.s = 3;\n state = { up: state, n: state.n.r, s: 0 };\n continue;\n }\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n };\n}\nfunction rebalance(target) {\n var _a, _b;\n var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);\n var r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n var l = r === \"r\" ? \"l\" : \"r\";\n var rootClone = __assign({}, target);\n var oldRootRight = target[r];\n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\nfunction computeDepth(_a) {\n var r = _a.r, l = _a.l;\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n\nvar observabilityMiddleware = {\n stack: \"dbcore\",\n level: 0,\n create: function (core) {\n var dbName = core.schema.name;\n var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n return __assign(__assign({}, core), { table: function (tableName) {\n var table = core.table(tableName);\n var schema = table.schema;\n var primaryKey = schema.primaryKey;\n var extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;\n var tableClone = __assign(__assign({}, table), { mutate: function (req) {\n var trans = req.trans;\n var mutatedParts = trans.mutatedParts || (trans.mutatedParts = {});\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet()));\n };\n var pkRangeSet = getRangeSet(\"\");\n var delsRangeSet = getRangeSet(\":dels\");\n var type = req.type;\n var _a = req.type === \"deleteRange\"\n ? [req.range]\n : req.type === \"delete\"\n ? [req.keys]\n : req.values.length < 50\n ? [[], req.values]\n : [], keys = _a[0], newObjs = _a[1];\n var oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then(function (res) {\n if (isArray(keys)) {\n if (type !== \"delete\")\n keys = res.results;\n pkRangeSet.addKeys(keys);\n var oldObjs = getFromTransactionCache(keys, oldCache);\n if (!oldObjs && type !== \"add\") {\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n }\n else if (keys) {\n var range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n pkRangeSet.add(range);\n }\n else {\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(function (idx) { return getRangeSet(idx.name).add(FULL_RANGE); });\n }\n return res;\n });\n } });\n var getRange = function (_a) {\n var _b, _c;\n var _d = _a.query, index = _d.index, range = _d.range;\n return [\n index,\n new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY),\n ];\n };\n var readSubscribers = {\n get: function (req) { return [primaryKey, new RangeSet(req.key)]; },\n getMany: function (req) { return [primaryKey, new RangeSet().addKeys(req.keys)]; },\n count: getRange,\n query: getRange,\n openCursor: getRange,\n };\n keys(readSubscribers).forEach(function (method) {\n tableClone[method] = function (req) {\n var subscr = PSD.subscr;\n if (subscr) {\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (subscr[part] ||\n (subscr[part] = new RangeSet()));\n };\n var pkRangeSet_1 = getRangeSet(\"\");\n var delsRangeSet_1 = getRangeSet(\":dels\");\n var _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n if (method === \"count\") {\n delsRangeSet_1.add(FULL_RANGE);\n }\n else {\n var keysPromise_1 = method === \"query\" &&\n outbound &&\n req.values &&\n table.query(__assign(__assign({}, req), { values: false }));\n return table[method].apply(this, arguments).then(function (res) {\n if (method === \"query\") {\n if (outbound && req.values) {\n return keysPromise_1.then(function (_a) {\n var resultingKeys = _a.result;\n pkRangeSet_1.addKeys(resultingKeys);\n return res;\n });\n }\n var pKeys = req.values\n ? res.result.map(extractKey)\n : res.result;\n if (req.values) {\n pkRangeSet_1.addKeys(pKeys);\n }\n else {\n delsRangeSet_1.addKeys(pKeys);\n }\n }\n else if (method === \"openCursor\") {\n var cursor_1 = res;\n var wantValues_1 = req.values;\n return (cursor_1 &&\n Object.create(cursor_1, {\n key: {\n get: function () {\n delsRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.key;\n },\n },\n primaryKey: {\n get: function () {\n var pkey = cursor_1.primaryKey;\n delsRangeSet_1.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get: function () {\n wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.value;\n },\n },\n }));\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n } });\n },\n};\nfunction trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n function addAffectedIndex(ix) {\n var rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n var addKeyOrKeys = function (key) { return ix.multiEntry && isArray(key)\n ? key.forEach(function (key) { return rangeSet.addKey(key); })\n : rangeSet.addKey(key); };\n (oldObjs || newObjs).forEach(function (_, i) {\n var oldKey = oldObjs && extractKey(oldObjs[i]);\n var newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n if (oldKey != null)\n addKeyOrKeys(oldKey);\n if (newKey != null)\n addKeyOrKeys(newKey);\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n\nvar Dexie$1 = (function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons, autoOpen: true,\n indexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError)\n DexiePromise.resolve().then(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky)\n subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0)\n console.warn(\"Another connection wants to upgrade database '\" + _this.name + \"'. Closing db now to resume the upgrade.\");\n else\n console.warn(\"Another connection wants to delete database '\" + _this.name + \"'. Closing db now to resume the delete request.\");\n _this.close();\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(\"Dexie.delete('\" + _this.name + \"') was blocked\");\n else\n console.warn(\"Upgrade '\" + _this.name + \"' blocked by other connection holding version \" + ev.oldVersion / 10);\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction); };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections\n .filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n .map(function (c) { return c.on(\"versionchange\").fire(ev); });\n };\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n this.vip = Object.create(this, { _vip: { value: true } });\n addons.forEach(function (addon) { return addon(_this); });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1)\n throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n if (versionInstance)\n return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise(function (resolve, reject) {\n if (_this._state.openComplete) {\n return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n }\n if (!_this._state.isBeingOpened) {\n if (!_this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n if (name)\n this.unuse({ stack: stack, name: name });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n middlewares.sort(function (a, b) { return a.level - b.level; });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack, name = _a.name, create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create :\n name ? mw.name !== name :\n false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n return dexieOpen(this);\n };\n Dexie.prototype._close = function () {\n var state = this._state;\n var idx = connections.indexOf(this);\n if (idx >= 0)\n connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n }\n catch (e) { }\n this._novip.idbdb = null;\n }\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n };\n Dexie.prototype.close = function () {\n this._close();\n var state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n };\n Dexie.prototype.delete = function () {\n var _this = this;\n var hasArguments = arguments.length > 0;\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close();\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n _onDatabaseDeleted(_this._deps, _this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasArguments)\n throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n }\n else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n },\n enumerable: false,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string')\n throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n }\n catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, function (_, reject) { reject(e); }) :\n rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n usePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n this._whenReady(enterTransaction));\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \" + tableName + \" does not exist\");\n }\n return this._allTables[tableName];\n };\n return Dexie;\n}());\n\nvar symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\";\nvar Observable = (function () {\n function Observable(subscribe) {\n this._subscribe = subscribe;\n }\n Observable.prototype.subscribe = function (x, error, complete) {\n return this._subscribe(!x || typeof x === \"function\" ? { next: x, error: error, complete: complete } : x);\n };\n Observable.prototype[symbolObservable] = function () {\n return this;\n };\n return Observable;\n}());\n\nfunction extendObservabilitySet(target, newSet) {\n keys(newSet).forEach(function (part) {\n var rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n\nfunction liveQuery(querier) {\n var hasValue = false;\n var currentValue = undefined;\n var observable = new Observable(function (observer) {\n var scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var exec = function () { return newScope(querier, { subscr: subscr, trans: null }); };\n var rv = PSD.trans\n ?\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n rv.then(decrementExpectedAwaits, decrementExpectedAwaits);\n }\n return rv;\n }\n var closed = false;\n var accumMuts = {};\n var currentObs = {};\n var subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: function () {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n observer.start && observer.start(subscription);\n var querying = false, startedListening = false;\n function shouldNotify() {\n return keys(currentObs).some(function (key) {\n return accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key]);\n });\n }\n var mutationListener = function (parts) {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n var doQuery = function () {\n if (querying || closed)\n return;\n accumMuts = {};\n var subscr = {};\n var ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(function (result) {\n hasValue = true;\n currentValue = result;\n querying = false;\n if (closed)\n return;\n if (shouldNotify()) {\n doQuery();\n }\n else {\n accumMuts = {};\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n }, function (err) {\n querying = false;\n hasValue = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n });\n };\n doQuery();\n return subscription;\n });\n observable.hasValue = function () { return hasValue; };\n observable.getValue = function () { return currentValue; };\n return observable;\n}\n\nvar domDeps;\ntry {\n domDeps = {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n}\ncatch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n\nvar Dexie = Dexie$1;\nprops(Dexie, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie(databaseName, { addons: [] });\n return db.delete();\n },\n exists: function (name) {\n return new Dexie(name, { addons: [] }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () { return false; });\n },\n getDatabaseNames: function (cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n }\n catch (_a) {\n return rejection(new exceptions.MissingAPI());\n }\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n }, ignoreTransaction: function (scopeFunc) {\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) :\n scopeFunc();\n }, vip: vip, async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n };\n }, spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () { return PSD.trans || null; }\n }, waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000);\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () { return debug; },\n set: function (value) {\n setDebug(value, value === 'dexie' ? function () { return true; } : dexieStackFrameFilter);\n }\n },\n derive: derive, extend: extend, props: props, override: override,\n Events: Events, on: globalEvents, liveQuery: liveQuery, extendObservabilitySet: extendObservabilitySet,\n getByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, cmp: cmp, asap: asap$1,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: domDeps,\n semVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n .map(function (n) { return parseInt(n); })\n .reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }) }));\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n if (!propagatingLocally) {\n var event_1;\n if (isIEOrEdge) {\n event_1 = document.createEvent('CustomEvent');\n event_1.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n }\n else {\n event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event_1);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n var detail = _a.detail;\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\nfunction propagateLocally(updateParts) {\n var wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n }\n finally {\n propagatingLocally = wasMe;\n }\n}\nvar propagatingLocally = false;\n\nif (typeof BroadcastChannel !== 'undefined') {\n var bc_1 = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n if (typeof bc_1.unref === 'function') {\n bc_1.unref();\n }\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n if (!propagatingLocally) {\n bc_1.postMessage(changedParts);\n }\n });\n bc_1.onmessage = function (ev) {\n if (ev.data)\n propagateLocally(ev.data);\n };\n}\nelse if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({\n trig: Math.random(),\n changedParts: changedParts,\n }));\n }\n if (typeof self['clients'] === 'object') {\n __spreadArray([], self['clients'].matchAll({ includeUncontrolled: true }), true).forEach(function (client) {\n return client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts: changedParts,\n });\n });\n }\n }\n }\n catch (_a) { }\n });\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', function (ev) {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n var data = JSON.parse(ev.newValue);\n if (data)\n propagateLocally(data.changedParts);\n }\n });\n }\n var swContainer = self.document && navigator.serviceWorker;\n if (swContainer) {\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\nfunction propagateMessageLocally(_a) {\n var data = _a.data;\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug, dexieStackFrameFilter);\n\nexport { Dexie$1 as Dexie, RangeSet, Dexie$1 as default, liveQuery, mergeRanges, rangesOverlap };\n//# sourceMappingURL=dexie.mjs.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","declare var global;\nexport const _global: any =\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n","import { _global } from \"../globals/global\";\nexport const keys = Object.keys;\nexport const isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise){\n // In jsdom, this it can be the case that Promise is not put on the global object.\n // If so, we need to patch the global object for the rest of the code to work as expected.\n // Other dexie code expects Promise to be on the global object (like normal browser environments)\n _global.Promise = Promise;\n}\nexport { _global }\n\nexport function extend(obj: T, extension: X): T & X {\n if (typeof extension !== 'object') return obj as T & X;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj as T & X;\n}\n\nexport const getProto = Object.getPrototypeOf;\nexport const _hasOwn = {}.hasOwnProperty;\nexport function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\n\nexport function props (proto, extension) {\n if (typeof extension === 'function') extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(key => {\n setProp(proto, key, extension[key]);\n });\n}\n\nexport const defineProperty = Object.defineProperty;\n\nexport function setProp(obj, prop, functionOrGetSet, options?) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n {get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true} :\n {value: functionOrGetSet, configurable: true, writable: true}, options));\n}\n\nexport function derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\n\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexport function getPropertyDescriptor(obj, prop) {\n const pd = getOwnPropertyDescriptor(obj, prop);\n let proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor (proto, prop);\n}\n\nconst _slice = [].slice;\nexport function slice(args, start?, end?) {\n return _slice.call(args, start, end);\n}\n\nexport function override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\n\nexport function assert (b) {\n if (!b) throw new Error(\"Assertion Failed\");\n}\n\nexport function asap(fn) {\n // @ts-ignore\n if (_global.setImmediate) setImmediate(fn); else setTimeout(fn, 0);\n}\n\nexport function getUniqueArray(a) {\n return a.filter((value, index, self) => self.indexOf(value) === index);\n}\n\n/** Generate an object (hash map) based on given array.\n * @param extractor Function taking an array item and its index and returning an array of 2 items ([key, value]) to\n * instert on the resulting object for each item in the array. If this function returns a falsy value, the\n * current item wont affect the resulting object.\n */\nexport function arrayToObject (array: T[], extractor: (x:T, idx: number)=>[string, R]): {[name: string]: R} {\n return array.reduce((result, item, i) => {\n var nameAndValue = extractor(item, i);\n if (nameAndValue) result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\n\nexport function trycatcher(fn, reject) {\n return function () {\n try {\n fn.apply(this, arguments);\n } catch (e) {\n reject(e);\n }\n };\n}\n\nexport function tryCatch(fn: (...args: any[])=>void, onerror, args?) : void {\n try {\n fn.apply(null, args);\n } catch (ex) {\n onerror && onerror(ex);\n }\n}\n\nexport function getByKeyPath(obj, keyPath) {\n // http://www.w3.org/TR/IndexedDB/#steps-for-extracting-a-key-from-a-value-using-a-key-path\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath)) return obj[keyPath]; // This line is moved from last to first for optimization purpose.\n if (!keyPath) return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\n\nexport function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined) return;\n if ('isFrozen' in Object && Object.isFrozen(obj)) return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n } else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) obj.splice(currentKeyPath, 1);\n else delete obj[currentKeyPath];\n } else obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath)) innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n } else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath))) obj.splice(keyPath, 1);\n else delete obj[keyPath];\n } else obj[keyPath] = value;\n }\n }\n}\n\nexport function delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function(kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\n\nexport function shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m)) rv[m] = obj[m];\n }\n return rv;\n}\n\nconst concat = [].concat;\nexport function flatten (a: (T | T[])[]) : T[] {\n return concat.apply([], a);\n}\n\n//https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm\nconst intrinsicTypeNames =\n \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(\n flatten([8,16,32,64].map(num=>[\"Int\",\"Uint\",\"Float\"].map(t=>t+num+\"Array\")))\n ).filter(t=>_global[t]);\nconst intrinsicTypes = intrinsicTypeNames.map(t=>_global[t]);\nexport const intrinsicTypeNameSet = arrayToObject(intrinsicTypeNames, x=>[x,true]);\n\nlet circularRefs: null | WeakMap = null;\nexport function deepClone(any: T): T {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n const rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\n\nfunction innerDeepClone(any: T): T {\n if (!any || typeof any !== 'object') return any;\n let rv = circularRefs && circularRefs.get(any); // Resolve circular references\n if (rv) return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n } else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n } else {\n const proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\n\nconst {toString} = {};\nexport function toStringTag(o: Object) {\n return toString.call(o).slice(8, -1);\n}\n\n// If first argument is iterable or array-like, return it as an array\nexport const iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nexport const getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function(x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nexport const asyncIteratorSymbol = typeof Symbol !== 'undefined'\n ? Symbol.asyncIterator || Symbol.for(\"Symbol.asyncIterator\")\n : '@asyncIterator';\n\nexport const NO_CHAR_ARRAY = {};\n// Takes one or several arguments and returns an array based on the following criteras:\n// * If several arguments provided, return arguments converted to an array in a way that\n// still allows javascript engine to optimize the code.\n// * If single argument is an array, return a clone of it.\n// * If this-pointer equals NO_CHAR_ARRAY, don't accept strings as valid iterables as a special\n// case to the two bullets below.\n// * If single argument is an iterable, convert it to an array and return the resulting array.\n// * If single argument is array-like (has length of type number), convert it to an array.\nexport function getArrayOf (arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike)) return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done) a.push(x.value);\n return a;\n }\n if (arrayLike == null) return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--) a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--) a[i] = arguments[i];\n return a;\n}\nexport const isAsyncFunction = typeof Symbol !== 'undefined'\n ? (fn: Function) => fn[Symbol.toStringTag] === 'AsyncFunction'\n : ()=>false;\n","// By default, debug will be true only if platform is a web platform and its page is served from localhost.\n// When debug = true, error's stacks will contain asyncronic long stacks.\nexport var debug = typeof location !== 'undefined' &&\n // By default, use debug mode if served from localhost.\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\n\nexport function setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\n\nexport var libraryFilter = () => true;\n\nexport const NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\n\nexport function getErrorWithStack() {\n \"use strict\";\n if (NEEDS_THROW_FOR_STACK) try {\n // Doing something naughty in strict mode here to trigger a specific error\n // that can be explicitely ignored in debugger's exception settings.\n // If we'd just throw new Error() here, IE's debugger's exception settings\n // will just consider it as \"exception thrown by javascript code\" which is\n // something you wouldn't want it to ignore.\n getErrorWithStack.arguments;\n throw new Error(); // Fallback if above line don't throw.\n } catch(e) {\n return e;\n }\n return new Error();\n}\n\nexport function prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack) return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(frame => \"\\n\" + frame)\n .join('');\n}\n\n// TODO: Replace this in favor of a decorator instead.\nexport function deprecated (what: string, fn: (...args)=>T) {\n return function () {\n console.warn(`${what} is deprecated. See https://dexie.org/docs/Deprecations. ${prettyStack(getErrorWithStack(), 1)}`);\n return fn.apply(this, arguments);\n } as (...args)=>T\n}\n","import { derive, setProp } from '../functions/utils';\nimport { getErrorWithStack, prettyStack } from '../helpers/debug';\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\n\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\n\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\n\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\n\n//\n// DexieError - base class of all out exceptions.\n//\nexport function DexieError (name, msg) {\n // Reason we don't use ES6 classes is because:\n // 1. It bloats transpiled code and increases size of minified code.\n // 2. It doesn't give us much in this case.\n // 3. It would require sub classes to call super(), which\n // is not needed when deriving from Error.\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\n\nderive(DexieError).from(Error).extend({\n stack: {\n get: function() {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function(){ return this.name + \": \" + this.message; }\n});\n\nfunction getMultiErrorMessage (msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(key=>failures[key].toString())\n .filter((v,i,s)=>s.indexOf(v) === i) // Only unique error strings\n .join('\\n');\n}\n\n//\n// ModifyError - thrown in Collection.modify()\n// Specific constructor because it contains members failures and failedKeys.\n//\nexport function ModifyError (msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\n\nexport function BulkError (msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(pos => failures[pos]);\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\n\n//\n//\n// Dynamically generate error names and exception classes based\n// on the names in errorList.\n//\n//\n\n// Map of {ErrorName -> ErrorName + \"Error\"}\nexport var errnames = errorList.reduce((obj,name)=>(obj[name]=name+\"Error\",obj),{});\n\n// Need an alias for DexieError because we're gonna create subclasses with the same name.\nconst BaseException = DexieError;\n// Map of {ErrorName -> exception constructor}\nexport var exceptions = errorList.reduce((obj,name)=>{\n // Let the name be \"DexieError\" because this name may\n // be shown in call stack and when debugging. DexieError is\n // the most true name because it derives from DexieError,\n // and we cannot change Function.name programatically without\n // dynamically create a Function object, which would be considered\n // 'eval-evil'.\n var fullName = name + \"Error\";\n function DexieError (msgOrInner, inner){\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n } else if (typeof msgOrInner === 'string') {\n this.message = `${msgOrInner}${!inner ? '' : '\\n ' + inner}`;\n this.inner = inner || null;\n } else if (typeof msgOrInner === 'object') {\n this.message = `${msgOrInner.name} ${msgOrInner.message}`;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name]=DexieError;\n return obj;\n},{});\n\n// Use ECMASCRIPT standard exceptions where applicable:\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\n\nexport var exceptionMap = idbDomErrorNames.reduce((obj, name)=>{\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nexport function mapError (domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n // Derive stack from inner exception if it has a stack\n setProp(rv, \"stack\", {get: function(){\n return this.inner.stack;\n }});\n }\n return rv;\n}\n\nexport var fullNameExceptions = errorList.reduce((obj, name)=>{\n if ([\"Syntax\",\"Type\",\"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n","import {extend} from './utils';\n\nexport function nop() { }\nexport function mirror(val) { return val; }\nexport function pureFunctionChain(f1, f2) {\n // Enables chained events that takes ONE argument and returns it to the next function in chain.\n // This pattern is used in the hook(\"reading\") event.\n if (f1 == null || f1 === mirror) return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\n\nexport function callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\n\nexport function hookCreatingChain(f1, f2) {\n // Enables chained events that takes several arguments and may modify first argument by making a modification and then returning the same instance.\n // This pattern is used in the hook(\"creating\") event.\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined) arguments[0] = res;\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\n\nexport function hookDeletingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\n\nexport function hookUpdatingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res); // If f1 returns new modifications, extend caller's modifications with the result before calling next in chain.\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\n\nexport function reverseStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n if (f2.apply(this, arguments) === false) return false;\n return f1.apply(this, arguments);\n };\n}\n\nexport function nonStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n f2.apply(this, arguments);\n };\n}\n\nexport function promisableChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this,\n i = arguments.length,\n args = new Array(i);\n while (i--) args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2014-2017 David Fahlander\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/LICENSE-2.0\n */\nimport { _global } from '../globals/global';\nimport {tryCatch, props, setProp, _global,\n getPropertyDescriptor, getArrayOf, extend, getProto} from '../functions/utils';\nimport {nop, callBoth, mirror} from '../functions/chaining-functions';\nimport {debug, prettyStack, getErrorWithStack} from './debug';\nimport {exceptions} from '../errors';\n\n//\n// Promise and Zone (PSD) for Dexie library\n//\n// I started out writing this Promise class by copying promise-light (https://github.com/taylorhakes/promise-light) by\n// https://github.com/taylorhakes - an A+ and ECMASCRIPT 6 compliant Promise implementation.\n//\n// In previous versions this was fixed by not calling setTimeout when knowing that the resolve() or reject() came from another\n// tick. In Dexie v1.4.0, I've rewritten the Promise class entirely. Just some fragments of promise-light is left. I use\n// another strategy now that simplifies everything a lot: to always execute callbacks in a new micro-task, but have an own micro-task\n// engine that is indexedDB compliant across all browsers.\n// Promise class has also been optimized a lot with inspiration from bluebird - to avoid closures as much as possible.\n// Also with inspiration from bluebird, asyncronic stacks in debug mode.\n//\n// Specific non-standard features of this Promise class:\n// * Custom zone support (a.k.a. PSD) with ability to keep zones also when using native promises as well as\n// native async / await.\n// * Promise.follow() method built upon the custom zone engine, that allows user to track all promises created from current stack frame\n// and below + all promises that those promises creates or awaits.\n// * Detect any unhandled promise in a PSD-scope (PSD.onunhandled). \n//\n// David Fahlander, https://github.com/dfahlander\n//\n\n// Just a pointer that only this module knows about.\n// Used in Promise constructor to emulate a private constructor.\nvar INTERNAL = {};\n\n// Async stacks (long stacks) must not grow infinitely.\nconst\n LONG_STACKS_CLIP_LIMIT = 100,\n // When calling error.stack or promise.stack, limit the number of asyncronic stacks to print out. \n MAX_LONG_STACKS = 20,\n ZONE_ECHO_LIMIT = 100,\n [resolvedNativePromise, nativePromiseProto, resolvedGlobalPromise] = typeof Promise === 'undefined' ?\n [] :\n (()=>{\n let globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n // Generate a native promise (as window.Promise may have been patched)\n const nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(),\n nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\n\nexport const NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nconst patchGlobalPromise = !!resolvedGlobalPromise;\n\nvar stack_being_generated = false;\n\n/* The default function used only for the very first promise in a promise chain.\n As soon as then promise is resolved or rejected, all next tasks will be executed in micro ticks\n emulated in this module. For indexedDB compatibility, this means that every method needs to \n execute at least one promise before doing an indexedDB operation. Dexie will always call \n db.ready().then() for every operation to make sure the indexedDB event is started in an\n indexedDB-compatible emulated micro task loop.\n*/\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n () => {resolvedGlobalPromise.then(physicalTick);}\n :\n _global.setImmediate ? \n // setImmediate supported. Those modern platforms also supports Function.bind().\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n // MutationObserver supported\n () => {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(() => {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n // No support for setImmediate or MutationObserver. No worry, setTimeout is only called\n // once time. Every tick that follows will be our emulated micro tick.\n // Could have uses setTimeout.bind(null, 0, physicalTick) if it wasnt for that FF13 and below has a bug \n ()=>{setTimeout(physicalTick,0);};\n\n// Configurable through Promise.scheduler.\n// Don't export because it would be unsafe to let unknown\n// code call it unless they do try..catch within their callback.\n// This function can be retrieved through getter of Promise.scheduler though,\n// but users must not do Promise.scheduler = myFuncThatThrowsException\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\n\nvar isOutsideMicroTick = true, // True when NOT in a virtual microTick.\n needsNewPhysicalTick = true, // True when a push to microtickQueue must also schedulePhysicalTick()\n unhandledErrors = [], // Rejected promises that has occured. Used for triggering 'unhandledrejection'.\n rejectingErrors = [], // Tracks if errors are being re-rejected during onRejected callback.\n currentFulfiller = null,\n rejectionMapper = mirror; // Remove in next major when removing error mapping of DOMErrors and DOMExceptions\n \nexport var globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(uh => {\n try {\n globalError(uh[0], uh[1]);\n } catch (e) {}\n });\n }\n};\n\nexport var PSD = globalPSD;\n\nexport var microtickQueue = []; // Callbacks to call in this or next physical tick.\nexport var numScheduledCalls = 0; // Number of listener-calls left to do in this physical tick.\nexport var tickFinalizers = []; // Finalizers to call when there are no more async calls scheduled within current physical tick.\n\nexport default function DexiePromise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new'); \n this._listeners = [];\n this.onuncatched = nop; // Deprecate in next major. Not needed. Better to use global error handler.\n \n // A library may set `promise._lib = true;` after promise is created to make resolve() or reject()\n // execute the microtask engine implicitely within the call to resolve() or reject().\n // To remain A+ compliant, a library must only set `_lib=true` if it can guarantee that the stack\n // only contains library code when calling resolve() or reject().\n // RULE OF THUMB: ONLY set _lib = true for promises explicitely resolving/rejecting directly from\n // global scope (event handler, timer etc)!\n this._lib = false;\n // Current async scope\n var psd = (this._PSD = PSD);\n\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0; // Number of previous promises (for long stacks)\n }\n \n if (typeof fn !== 'function') {\n if (fn !== INTERNAL) throw new TypeError('Not a function');\n // Private constructor (INTERNAL, state, value).\n // Used internally by Promise.resolve() and Promise.reject().\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value); // Map error, set stack and addPossiblyUnhandledError().\n return;\n }\n \n this._state = null; // null (=pending), false (=rejected) or true (=resolved)\n this._value = null; // error or result\n ++psd.ref; // Refcounting current scope\n executePromiseTask(this, fn);\n}\n\n// Prepare a property descriptor to put onto Promise.prototype.then\nconst thenProp = {\n get: function() {\n var psd = PSD, microTaskId = totalEchoes;\n\n function then (onFulfilled, onRejected) {\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n const cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise((resolve, reject) => {\n propagateToListener(this, new Listener(\n nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup),\n nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup),\n resolve,\n reject,\n psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n\n then.prototype = INTERNAL; // For idempotense, see setter below.\n\n return then;\n },\n // Be idempotent and allow another framework (such as zone.js or another instance of a Dexie.Promise module) to replace Promise.prototype.then\n // and when that framework wants to restore the original property, we must identify that and restore the original property descriptor.\n set: function (value) {\n setProp (this, 'then', value && value.prototype === INTERNAL ?\n thenProp : // Restore to original property descriptor.\n {\n get: function(){\n return value; // Getter returning provided value (behaves like value is just changed)\n },\n set: thenProp.set // Keep a setter that is prepared to restore original.\n }\n );\n }\n};\n\nprops(DexiePromise.prototype, {\n then: thenProp, // Defined above.\n _then: function (onFulfilled, onRejected) {\n // A little tinier version of then() that don't have to create a resulting promise.\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD)); \n },\n\n catch: function (onRejected) {\n if (arguments.length === 1) return this.then(null, onRejected);\n // First argument is the Error type to catch\n var type = arguments[0],\n handler = arguments[1];\n return typeof type === 'function' ? this.then(null, err =>\n // Catching errors by its constructor type (similar to java / c++ / c#)\n // Sample: promise.catch(TypeError, function (e) { ... });\n err instanceof type ? handler(err) : PromiseReject(err))\n : this.then(null, err =>\n // Catching errors by the error.name property. Makes sense for indexedDB where error type\n // is always DOMError but where e.name tells the actual error type.\n // Sample: promise.catch('ConstraintError', function (e) { ... });\n err && err.name === type ? handler(err) : PromiseReject(err));\n },\n\n finally: function (onFinally) {\n return this.then(value => {\n onFinally();\n return value;\n }, err => {\n onFinally();\n return PromiseReject(err);\n });\n },\n \n stack: {\n get: function() {\n if (this._stack) return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack (this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null) this._stack = stack; // Stack may be updated on reject.\n return stack;\n } finally {\n stack_being_generated = false;\n }\n }\n },\n\n timeout: function (ms, msg) {\n return ms < Infinity ?\n new DexiePromise((resolve, reject) => {\n var handle = setTimeout(() => reject(new exceptions.Timeout(msg)), ms);\n this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\n\n// Now that Promise.prototype is defined, we have all it takes to set globalPSD.env.\n// Environment globals snapshotted on leaving global zone\nglobalPSD.env = snapShot();\n\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\n\n// Promise Static Properties\nprops (DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments) // Supports iterables, implicit arguments and array-like.\n .map(onPossibleParallellAsync); // Handle parallell async/awaits \n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0) resolve([]);\n var remaining = values.length;\n values.forEach((a,i) => DexiePromise.resolve(a).then(x => {\n values[i] = x;\n if (!--remaining) resolve(values);\n }, reject));\n });\n },\n \n resolve: value => {\n if (value instanceof DexiePromise) return value;\n if (value && typeof value.then === 'function') return new DexiePromise((resolve, reject)=>{\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n \n reject: PromiseReject,\n \n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n values.map(value => DexiePromise.resolve(value).then(resolve, reject));\n });\n },\n\n PSD: {\n get: ()=>PSD,\n set: value => PSD = value\n },\n\n totalEchoes: {get: ()=>totalEchoes},\n\n //task: {get: ()=>task},\n \n newPSD: newScope,\n \n usePSD: usePSD,\n \n scheduler: {\n get: () => asap,\n set: value => {asap = value}\n },\n \n rejectionMapper: {\n get: () => rejectionMapper,\n set: value => {rejectionMapper = value;} // Map reject failures\n },\n \n follow: (fn, zoneProps) => {\n return new DexiePromise((resolve, reject) => {\n return newScope((resolve, reject) => {\n var psd = PSD;\n psd.unhandleds = []; // For unhandled standard- or 3rd party Promises. Checked at psd.finalize()\n psd.onunhandled = reject; // Triggered directly on unhandled promises of this library.\n psd.finalize = callBoth(function () {\n // Unhandled standard or 3rd part promises are put in PSD.unhandleds and\n // examined upon scope completion while unhandled rejections in this Promise\n // will trigger directly through psd.onunhandled\n run_at_end_of_this_or_next_physical_tick(()=>{\n this.unhandleds.length === 0 ? resolve() : reject(this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\n\nif (NativePromise) {\n if (NativePromise.allSettled) setProp (DexiePromise, \"allSettled\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(resolve => {\n if (possiblePromises.length === 0) resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => results[i] = {status: \"fulfilled\", value},\n reason => results[i] = {status: \"rejected\", reason})\n .then(()=>--remaining || resolve(results)));\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined') setProp(DexiePromise, \"any\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n if (possiblePromises.length === 0) reject(new AggregateError([]));\n let remaining = possiblePromises.length;\n const failures = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => resolve(value),\n failure => {\n failures[i] = failure;\n if (!--remaining) reject(new AggregateError(failures));\n }));\n });\n });\n}\n\n/**\n* Take a potentially misbehaving resolver function and make sure\n* onFulfilled and onRejected are only called once.\n*\n* Makes no guarantees about asynchrony.\n*/\nfunction executePromiseTask (promise, fn) {\n // Promise Resolution Procedure:\n // https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n try {\n fn(value => {\n if (promise._state !== null) return; // Already settled\n if (value === promise) throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, (resolve, reject) => {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n } else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick) endMicroTickScope();\n }, handleRejection.bind(null, promise)); // If Function.bind is not supported. Exception is handled in catch below\n } catch (ex) {\n handleRejection(promise, ex);\n }\n}\n\nfunction handleRejection (promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null) return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(()=>{\n var origProp = getPropertyDescriptor(reason, \"stack\"); \n reason._promise = promise; \n setProp(reason, \"stack\", {\n get: () =>\n stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack\n });\n });\n // Add the failure to a list of possibly uncaught errors\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick) endMicroTickScope();\n}\n\nfunction propagateAllListeners (promise) {\n //debug && linkToPreviousPromise(promise);\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize(); // if psd.ref reaches zero, call psd.finalize();\n if (numScheduledCalls === 0) {\n // If numScheduledCalls is 0, it means that our stack is not in a callback of a scheduled call,\n // and that no deferreds where listening to this rejection or success.\n // Since there is a risk that our stack can contain application code that may\n // do stuff after this code is finished that may generate new calls, we cannot\n // call finalizers here.\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick(); // Will detect unhandled errors\n }, []);\n }\n}\n\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n // This Listener doesnt have a listener for the event being triggered (onFulfilled or onReject) so lets forward the event to any eventual listeners on the Promise instance returned by then() or catch()\n return (promise._state ? listener.resolve : listener.reject) (promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap (callListener, [cb, promise, listener]);\n}\n\nfunction callListener (cb, promise, listener) {\n try {\n // Set static variable currentFulfiller to the promise that is being fullfilled,\n // so that we connect the chain of promises (for long stacks support)\n currentFulfiller = promise;\n \n // Call callback and resolve our listener with it's return value.\n var ret, value = promise._value;\n \n if (promise._state) {\n // cb is onResolved\n ret = cb (value);\n } else {\n // cb is onRejected\n if (rejectingErrors.length) rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise); // Callback didnt do Promise.reject(err) nor reject(err) onto another promise.\n }\n listener.resolve(ret);\n } catch (e) {\n // Exception thrown in callback. Reject our listener.\n listener.reject(e);\n } finally {\n // Restore env and currentFulfiller.\n currentFulfiller = null;\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\n\nfunction getStack (promise, stacks, limit) {\n if (stacks.length === limit) return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value,\n errorName,\n message;\n \n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n } else {\n errorName = failure; // If error is undefined or null, show that.\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1) stacks.push(stack);\n if (promise._prev) getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\n\nfunction linkToPreviousPromise(promise, prev) {\n // Support long stacks by linking to previous completed promise.\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) { // Prohibit infinite Promise loops to get an infinite long memory consuming \"tail\".\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\n\n/* The callback to schedule with setImmediate() or setTimeout().\n It runs a virtual microtick and executes any callback registered in microtickQueue.\n */\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\n\nexport function beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\n\n/* Executes micro-ticks without doing try..catch.\n This can be possible because we only use this internally and\n the registered functions are exception-safe (they do try..catch\n internally before calling any external method). If registering\n functions in the microtickQueue that are not exception-safe, this\n would destroy the framework and make it instable. So we don't export\n our asap method.\n*/\nexport function endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\n\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(p => {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0); // Clone first because finalizer may remove itself from list.\n var i = finalizers.length;\n while (i) finalizers[--i](); \n}\n\nfunction run_at_end_of_this_or_next_physical_tick (fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n }, []);\n}\n\nfunction addPossiblyUnhandledError(promise) {\n // Only add to unhandledErrors if not already there. The first one to add to this list\n // will be upon the first rejection so that the root cause (first promise in the\n // rejection chain) is the one listed.\n if (!unhandledErrors.some(p => p._value === promise._value))\n unhandledErrors.push(promise);\n}\n\nfunction markErrorAsHandled(promise) {\n // Called when a reject handled is actually being called.\n // Search in unhandledErrors for any promise whos _value is this promise_value (list\n // contains only rejected promises, and only one item per error)\n var i = unhandledErrors.length;\n while (i) if (unhandledErrors[--i]._value === promise._value) {\n // Found a promise that failed with this same error object pointer,\n // Remove that since there is a listener that actually takes care of it.\n unhandledErrors.splice(i, 1);\n return;\n }\n}\n\nfunction PromiseReject (reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\n\nexport function wrap (fn, errorCatcher) {\n var psd = PSD;\n return function() {\n var wasRootExec = beginMicroTickScope(),\n outerScope = PSD;\n\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n } catch (e) {\n errorCatcher && errorCatcher(e);\n } finally {\n switchToZone(outerScope, false);\n if (wasRootExec) endMicroTickScope();\n }\n };\n}\n\n\n//\n// variables used for native await support\n//\nconst task = { awaits: 0, echoes: 0, id: 0}; // The ongoing macro-task when using zone-echoing.\nvar taskCounter = 0; // ID counter for macro tasks.\nvar zoneStack = []; // Stack of left zones to restore asynchronically.\nvar zoneEchoes = 0; // zoneEchoes is a must in order to persist zones between native await expressions.\nvar totalEchoes = 0; // ID counter for micro-tasks. Used to detect possible native await in our Promise.prototype.then.\n\n\nvar zone_id_counter = 0;\nexport function newScope (fn, props, a1, a2) {\n var parent = PSD,\n psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n // Prepare for promise patching (done in usePSD):\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise, // Changing window.Promise could be omitted for Chrome and Edge, where IDB+Promise plays well!\n PromiseProp: {value: DexiePromise, configurable: true, writable: true},\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen (globalEnv.nthen, psd), // native then\n gthen: getPatchedPromiseThen (globalEnv.gthen, psd) // global then\n } : {};\n if (props) extend(psd, props);\n \n // unhandleds and onunhandled should not be specifically set here.\n // Leave them on parent prototype.\n // unhandleds.push(err) will push to parent's prototype\n // onunhandled() will call parents onunhandled (with this scope's this-pointer though!)\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n }\n var rv = usePSD (psd, fn, a1, a2);\n if (psd.ref === 0) psd.finalize();\n return rv;\n}\n\n// Function to call if scopeFunc returns NativePromise\n// Also for each NativePromise in the arguments to Promise.all()\nexport function incrementExpectedAwaits() {\n if (!task.id) task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\n\n// Function to call when 'then' calls back on a native promise where onAwaitExpected() had been called.\n// Also call this when a native await calls then method on a promise. In that case, don't supply\n// sourceTaskId because we already know it refers to current task.\nexport function decrementExpectedAwaits() {\n if (!task.awaits) return false;\n if (--task.awaits === 0) task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT; // Will reset echoes to 0 if awaits is 0.\n return true;\n}\n\nif ((''+nativePromiseThen).indexOf('[native code]') === -1) {\n // If the native promise' prototype is patched, we cannot rely on zone echoing.\n // Disable that here:\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\n\n// Call from Promise.all() and Promise.race()\nexport function onPossibleParallellAsync (possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits(); \n return possiblePromise.then(x => {\n decrementExpectedAwaits();\n return x;\n }, e => {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\n\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n //console.log(\"Total echoes \", totalEchoes);\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0; // Cancel zone echoing.\n }\n\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\n\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length-1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\n\nfunction switchToZone (targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n // Enter or leave zone asynchronically as well, so that tasks initiated during current tick\n // will be surrounded by the zone when they are invoked.\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD) return;\n\n PSD = targetZone; // The actual zone switch occurs at this line.\n\n // Snapshot on every leave from global zone.\n if (currentZone === globalPSD) globalPSD.env = snapShot();\n\n if (patchGlobalPromise) {\n // Let's patch the global and native Promises (may be same or may be different)\n var GlobalPromise = globalPSD.env.Promise;\n // Swich environments (may be PSD-zone or the global zone. Both apply.)\n var targetEnv = targetZone.env;\n\n // Change Promise.prototype.then for native and global Promise (they MAY differ on polyfilled environments, but both can be accessed)\n // Must be done on each zone change because the patched method contains targetZone in its closure.\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise.prototype.then = targetEnv.gthen;\n\n if (currentZone.global || targetZone.global) {\n // Leaving or entering global zone. It's time to patch / restore global Promise.\n\n // Set this Promise to window.Promise so that transiled async functions will work on Firefox, Safari and IE, as well as with Zonejs and angular.\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n\n // Support Promise.all() etc to work indexedDB-safe also when people are including es6-promise as a module (they might\n // not be accessing global.Promise but a local reference to it)\n GlobalPromise.all = targetEnv.all;\n GlobalPromise.race = targetEnv.race;\n GlobalPromise.resolve = targetEnv.resolve;\n GlobalPromise.reject = targetEnv.reject;\n if (targetEnv.allSettled) GlobalPromise.allSettled = targetEnv.allSettled;\n if (targetEnv.any) GlobalPromise.any = targetEnv.any;\n }\n }\n}\n\nfunction snapShot () {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\n\nexport function usePSD (psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n } finally {\n switchToZone(outerScope, false);\n }\n}\n\nfunction enqueueNativeMicroTask (job) {\n //\n // Precondition: nativePromiseThen !== undefined\n //\n nativePromiseThen.call(resolvedNativePromise, job);\n}\n\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait) incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n } finally {\n switchToZone(outerZone, false);\n if (cleanup) enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\n\nfunction getPatchedPromiseThen (origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this,\n nativeAwaitCompatibleWrap(onResolved, zone),\n nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\n\nconst UNHANDLEDREJECTION = \"unhandledrejection\";\n\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n } catch (e) {}\n if (rv !== false) try {\n var event, eventData = {promise: promise, reason: err};\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n } else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, {detail: eventData});\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n // No native support for PromiseRejectionEvent but user has set window.onunhandledrejection. Manually call it.\n try {_global.onunhandledrejection(event);} catch (_) {}\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(`Unhandled rejection: ${err.stack || err}`);\n }\n } catch (e) {}\n}\n\nexport var rejection = DexiePromise.reject;\n\nexport {DexiePromise};\n","import { PSD, rejection, newScope } from \"../helpers/promise\";\nimport { DexieOptions } from \"../public/types/dexie-constructor\";\nimport { errnames, exceptions } from \"../errors\";\nimport { nop } from \"./chaining-functions\";\nimport { Transaction } from \"../classes/transaction\";\nimport { Dexie } from '../classes/dexie';\n\n/* Generate a temporary transaction when db operations are done outside a transaction scope.\n*/\nexport function tempTransaction (\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n fn: (resolve, reject, trans: Transaction) => any)\n // Last argument is \"writeLocked\". But this doesnt apply to oneshot direct db operations, so we ignore it.\n{\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n // db.idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n return db._state.dbReadyPromise.then(() => tempTransaction(db, mode, storeNames, fn));\n } else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(()=>tempTransaction(db, mode, storeNames, fn));\n }\n return rejection(ex);\n }\n return trans._promise(mode, (resolve, reject) => {\n return newScope(() => { // OPTIMIZATION POSSIBLE? newScope() not needed because it's already done in _promise.\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(result => {\n // Instead of resolving value directly, wait with resolving it until transaction has completed.\n // Otherwise the data would not be in the DB if requesting it in the then() operation.\n // Specifically, to ensure that the following expression will work:\n //\n // db.friends.put({name: \"Arne\"}).then(function () {\n // db.friends.where(\"name\").equals(\"Arne\").count(function(count) {\n // assert (count === 1);\n // });\n // });\n //\n return trans._completion.then(() => result);\n });/*.catch(err => { // Don't do this as of now. If would affect bulk- and modify methods in a way that could be more intuitive. But wait! Maybe change in next major.\n trans._reject(err);\n return rejection(err);\n });*/\n }\n}\n","import { Dexie } from \"../classes/dexie\";\n\nexport const DEXIE_VERSION = '{version}'; // Replaced by build-script.\nexport const maxString = String.fromCharCode(65535);\nexport const minKey = -Infinity; // minKey can be constant. maxKey must be a prop of Dexie (_maxKey)\nexport const INVALID_KEY_ARGUMENT =\n \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nexport const STRING_EXPECTED = \"String expected.\";\nexport const connections: Dexie[] = [];\nexport const isIEOrEdge =\n typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nexport const hasIEDeleteObjectStoreBug = isIEOrEdge;\nexport const hangsOnDeleteLargeKeyRange = isIEOrEdge;\nexport const dexieStackFrameFilter = frame => !/(dexie\\.js|dexie\\.min\\.js)/.test(frame);\nexport const DBNAMES_DB = '__dbnames';\nexport const READONLY = 'readonly';\nexport const READWRITE = 'readwrite';\n","export function combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n","import { DBCoreKeyRange, DBCoreRangeType } from '../public/types/dbcore';\n\nexport const AnyRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Any,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n}\n\nexport const NeverRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Never,\n lower: -Infinity,\n lowerOpen: true,\n upper: -Infinity,\n upperOpen: true\n}\n","import { deepClone, delByKeyPath, getByKeyPath } from './utils';\n\n// This workaround is needed since obj could be a custom-class instance with an\n// uninitialized keyPath. See the following comment for more context:\n// https://github.com/dfahlander/Dexie.js/issues/1280#issuecomment-823557881\nexport function workaroundForUndefinedPrimKey(keyPath: string | ArrayLike) {\n // Workaround only needed for plain non-dotted keyPaths\n return typeof keyPath === \"string\" && !/\\./.test(keyPath) \n ? (obj: object) => {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n // property exists but is undefined. This will not be liked by Indexeddb.\n // Need to remove the property before adding it but we need to clone it before\n // doing that to not be intrusive.\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : (obj: object) => obj;\n}","import { BulkError, exceptions } from '../../errors';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { DexiePromise as Promise, PSD, newScope, wrap, rejection, beginMicroTickScope, endMicroTickScope } from '../../helpers/promise';\nimport { Transaction } from '../transaction';\nimport { Dexie } from '../dexie';\nimport { tempTransaction } from '../../functions/temp-transaction';\nimport { Collection } from '../collection';\nimport { isArray, keys, getByKeyPath, hasOwn, setByKeyPath, deepClone, tryCatch, arrayToObject, extend } from '../../functions/utils';\nimport { maxString } from '../../globals/constants';\nimport { combine } from '../../functions/combine';\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { IndexableType } from '../../public/types/indexable-type';\nimport { debug } from '../../helpers/debug';\nimport { DBCoreTable } from '../../public/types/dbcore';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { workaroundForUndefinedPrimKey } from '../../functions/workaround-undefined-primkey';\n\n/** class Table\n * \n * https://dexie.org/docs/Table/Table\n */\nexport class Table implements ITable {\n db: Dexie;\n _tx?: Transaction;\n name: string;\n schema: TableSchema;\n hook: TableHooks;\n core: DBCoreTable;\n\n _trans(\n mode: IDBTransactionMode,\n fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike | void,\n writeLocked?: boolean | string) : PromiseExtended\n {\n const trans: Transaction = this._tx || PSD.trans;\n const tableName = this.name;\n \n function checkTableInTransaction(resolve, reject, trans: Transaction) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n // Surround all in a microtick scope.\n // Reason: Browsers (modern Safari + older others)\n // still as of 2018-10-10 has problems keeping a transaction\n // alive between micro ticks. Safari because if transaction\n // is created but not used in same microtick, it will go\n // away. That specific issue could be solved in DBCore\n // by opening the transaction just before using it instead.\n // But older Firefoxes and IE11 (with Promise polyfills)\n // will still have probs.\n // The beginMicrotickScope()/endMicrotickScope() works\n // in cooperation with Dexie.Promise to orchestrate\n // the micro-ticks in endMicrotickScope() rather than\n // in native engine.\n const wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(() => trans._promise(mode, checkTableInTransaction, writeLocked), { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n } finally {\n if (wasRootExec) endMicroTickScope();\n }\n }\n\n /** Table.get()\n * \n * https://dexie.org/docs/Table/Table.get()\n * \n **/\n get(keyOrCrit, cb?) {\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit as { [key: string]: IndexableType }).first(cb);\n\n return this._trans('readonly', (trans) => {\n return this.core.get({trans, key: keyOrCrit})\n .then(res => this.hook.reading.fire(res));\n }).then(cb);\n }\n\n /** Table.where()\n * \n * https://dexie.org/docs/Table/Table.where()\n * \n **/\n where(indexOrCrit: string | string[] | { [key: string]: IndexableType }) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, `[${indexOrCrit.join('+')}]`);\n // indexOrCrit is an object map of {[keyPath]:value} \n const keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n // Only one critera. This was the easy case:\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n\n // Multiple criterias.\n // Let's try finding a compound index that matches all keyPaths in\n // arbritary order:\n const compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(ix => {\n if (\n ix.compound &&\n keyPaths.every(keyPath => ix.keyPath.indexOf(keyPath) >= 0)) {\n for (let i=0; i a.keyPath.length - b.keyPath.length)[0];\n \n if (compoundIndex && this.db._maxKey !== maxString) {\n // Cool! We found such compound index\n // and this browser supports compound indexes (maxKey !== maxString)!\n const keyPathsInValidOrder = (compoundIndex.keyPath as string[]).slice(0, keyPaths.length);\n return this\n .where(keyPathsInValidOrder)\n .equals(keyPathsInValidOrder.map(kp => indexOrCrit[kp]));\n }\n\n if (!compoundIndex && debug) console.warn(\n `The query ${JSON.stringify(indexOrCrit)} on ${this.name} would benefit of a ` +\n `compound index [${keyPaths.join('+')}]`);\n\n // Ok, now let's fallback to finding at least one matching index\n // and filter the rest.\n const { idxByName } = this.schema;\n const idb = this.db._deps.indexedDB;\n\n function equals (a, b) {\n try {\n return idb.cmp(a,b) === 0; // Works with all indexable types including binary keys.\n } catch (e) {\n return false;\n }\n }\n\n const [idx, filterFunction] = keyPaths.reduce(([prevIndex, prevFilterFn], keyPath) => {\n const index = idxByName[keyPath];\n const value = indexOrCrit[keyPath];\n return [\n prevIndex || index, // idx::=Pick index of first matching keypath\n prevIndex || !index ? // filter::=null if not needed, otherwise combine function filter\n combine(\n prevFilterFn,\n index && index.multi ?\n x => {\n const prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(item => equals(value, item));\n } : x => equals(value, getByKeyPath(x, keyPath)))\n : prevFilterFn\n ];\n }, [null, null]);\n\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) : // Has compound but browser bad. Allow filter.\n this.where(keyPaths).equals(''); // No index at all. Fail lazily with \"[a+b+c] is not indexed\"\n }\n\n /** Table.filter()\n * \n * https://dexie.org/docs/Table/Table.filter()\n * \n **/\n filter(filterFunction: (obj: any) => boolean) {\n return this.toCollection().and(filterFunction);\n }\n\n /** Table.count()\n * \n * https://dexie.org/docs/Table/Table.count()\n * \n **/\n count(thenShortcut?: any) {\n return this.toCollection().count(thenShortcut);\n }\n\n /** Table.offset()\n * \n * https://dexie.org/docs/Table/Table.offset()\n * \n **/\n offset(offset: number) {\n return this.toCollection().offset(offset);\n }\n\n /** Table.limit()\n * \n * https://dexie.org/docs/Table/Table.limit()\n * \n **/\n limit(numRows: number) {\n return this.toCollection().limit(numRows);\n }\n\n /** Table.each()\n * \n * https://dexie.org/docs/Table/Table.each()\n * \n **/\n each(callback: (obj: any, cursor: { key: IndexableType, primaryKey: IndexableType }) => any) {\n return this.toCollection().each(callback);\n }\n\n /** Table.toArray()\n * \n * https://dexie.org/docs/Table/Table.toArray()\n * \n **/\n toArray(thenShortcut?: any) {\n return this.toCollection().toArray(thenShortcut);\n }\n\n /** Table.toCollection()\n * \n * https://dexie.org/docs/Table/Table.toCollection()\n * \n **/\n toCollection() {\n return new this.db.Collection(new this.db.WhereClause(this));\n }\n\n /** Table.orderBy()\n * \n * https://dexie.org/docs/Table/Table.orderBy()\n * \n **/\n orderBy(index: string | string[]) {\n return new this.db.Collection(\n new this.db.WhereClause(this, isArray(index) ?\n `[${index.join('+')}]` :\n index));\n }\n\n /** Table.reverse()\n * \n * https://dexie.org/docs/Table/Table.reverse()\n * \n **/\n reverse(): Collection {\n return this.toCollection().reverse();\n }\n\n /** Table.mapToClass()\n * \n * https://dexie.org/docs/Table/Table.mapToClass()\n * \n **/\n mapToClass(constructor: Function) {\n this.schema.mappedClass = constructor;\n // Now, subscribe to the when(\"reading\") event to make all objects that come out from this table inherit from given class\n // no matter which method to use for reading (Table.get() or Table.where(...)... )\n const readHook = obj => {\n if (!obj) return obj; // No valid object. (Value is null). Return as is.\n // Create a new object that derives from constructor:\n const res = Object.create(constructor.prototype);\n // Clone members:\n for (var m in obj) if (hasOwn(obj, m)) try { res[m] = obj[m]; } catch (_) { }\n return res;\n };\n\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n }\n\n /** @deprecated */\n defineClass() {\n function Class (content){\n extend(this, content);\n };\n return this.mapToClass(Class);\n }\n\n /** Table.add()\n * \n * https://dexie.org/docs/Table/Table.add()\n * \n **/\n add(obj, key?: IndexableType): PromiseExtended {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd]});\n }).then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.update()\n * \n * https://dexie.org/docs/Table/Table.update()\n * \n **/\n update(keyOrObject, modifications: { [keyPath: string]: any; } | ((obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean)): PromiseExtended {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n const key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined) return rejection(new exceptions.InvalidArgument(\n \"Given object does not contain its primary key\"));\n // object to modify. Also modify given object with the modifications:\n // This part should be here for backward compatibility.\n // If ever feeling too bad about mutating given object, please wait to a new major before removing it,\n // and document the change thoroughly.\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(keyPath => {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n } else {\n // Now since we support function argument, we should have a similar behavior here as well\n // (as long as we do this mutability stuff on the given object)\n modifications(keyOrObject, {value: keyOrObject, primKey: key});\n }\n } catch {\n // Maybe given object was frozen.\n // This part is not essential. Just move on as nothing happened...\n }\n return this.where(\":id\").equals(key).modify(modifications);\n } else {\n // key to modify\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n }\n\n /** Table.put()\n * \n * https://dexie.org/docs/Table/Table.put()\n * \n **/\n put(obj, key?: IndexableType): PromiseExtended {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans(\n 'readwrite',\n trans => this.core.mutate({trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.delete()\n * \n * https://dexie.org/docs/Table/Table.delete()\n * \n **/\n delete(key: IndexableType): PromiseExtended {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'delete', keys: [key]}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined);\n }\n\n /** Table.clear()\n * \n * https://dexie.org/docs/Table/Table.clear()\n * \n **/\n clear() {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'deleteRange', range: AnyRange}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined);\n }\n\n /** Table.bulkGet()\n * \n * https://dexie.org/docs/Table/Table.bulkGet()\n * \n * @param keys \n */\n bulkGet(keys: IndexableType[]) {\n return this._trans('readonly', trans => {\n return this.core.getMany({\n keys,\n trans\n }).then(result => result.map(res => this.hook.reading.fire(res)));\n });\n }\n\n /** Table.bulkAdd()\n * \n * https://dexie.org/docs/Table/Table.bulkAdd()\n * \n **/\n bulkAdd(\n objects: any[],\n keysOrOptions?: ReadonlyArray | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return this.core.mutate(\n {trans, type: 'add', keys: keys as IndexableType[], values: objectsToAdd, wantResults}\n )\n .then(({numFailures, results,lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkAdd(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkPut()\n * \n * https://dexie.org/docs/Table/Table.bulkPut()\n * \n **/\n bulkPut(\n objects: any[],\n keysOrOptions?: ReadonlyArray | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n\n return this.core.mutate(\n {trans, type: 'put', keys: keys as IndexableType[], values: objectsToPut, wantResults}\n )\n .then(({numFailures, results, lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkPut(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkDelete()\n * \n * https://dexie.org/docs/Table/Table.bulkDelete()\n * \n **/\n bulkDelete(keys: ReadonlyArray): PromiseExtended {\n const numKeys = keys.length;\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'delete', keys: keys as IndexableType[]});\n }).then(({numFailures, lastResult, failures}) => {\n if (numFailures === 0) return lastResult;\n throw new BulkError(\n `${this.name}.bulkDelete(): ${numFailures} of ${numKeys} operations failed`, failures);\n });\n }\n}\n","import {keys, isArray, asap} from '../functions/utils';\nimport {nop, mirror, reverseStoppableEventChain} from '../functions/chaining-functions';\nimport {exceptions} from '../errors';\n\nexport default function Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n // Subscribe. If additional arguments than just the subscriber was provided, forward them as well.\n var i = arguments.length, args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n } else if (typeof (eventName) === 'string') {\n // Return interface allowing to fire or unsubscribe from event\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n \n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n \n return rv;\n\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object') return addConfiguredEvents(eventName);\n if (!chainFunction) chainFunction = reverseStoppableEventChain;\n if (!defaultFunction) defaultFunction = nop;\n\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n\n function addConfiguredEvents(cfg) {\n // events(this, {reading: [functionChain, nop]});\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n } else if (args === 'asap') {\n // Rather than approaching event subscription using a functional approach, we here do it in a for-loop where subscriber is executed in its own stack\n // enabling that any exception that occur wont disturb the initiator and also not nescessary be catched and forgotten.\n var context = add(eventName, mirror, function fire() {\n // Optimazation-safe cloning of arguments into args.\n var i = arguments.length, args = new Array(i);\n while (i--) args[i] = arguments[i];\n // All each subscriber:\n context.subscribers.forEach(function (fn) {\n asap(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n } else throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n","import { arrayToObject, derive } from './utils';\n\n\nexport function makeClassConstructor (prototype: Object, constructor: Function) {\n /*const propertyDescriptorMap = arrayToObject(\n Object.getOwnPropertyNames(prototype),\n propKey => [propKey, Object.getOwnPropertyDescriptor(prototype, propKey)]);\n\n // Both derive and clone the prototype.\n // derive: So that x instanceof T returns true when T is the class template.\n // clone: Optimizes method access a bit (but actually not nescessary)\n const derivedPrototypeClone = Object.create(prototype, propertyDescriptorMap);\n derivedPrototypeClone.constructor = constructor;\n constructor.prototype = derivedPrototypeClone;\n return constructor as any as TConstructor;*/\n\n // Keep the above code in case we want to clone AND derive the parent prototype.\n // Reason would be optimization of property access.\n // The code below will only create a prototypal inheritance from given constructor function\n // to given prototype.\n derive(constructor).from({prototype});\n return constructor as any as TConstructor; \n}\n","import { Dexie } from '../dexie';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { Transaction } from '../transaction/transaction';\nimport { hookCreatingChain, pureFunctionChain, nop, mirror, hookUpdatingChain, hookDeletingChain } from '../../functions/chaining-functions';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { Table } from './table';\nimport Events from '../../helpers/Events';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\n\nexport interface TableConstructor {\n new (name: string, tableSchema: TableSchema, optionalTrans?: Transaction) : Table;\n prototype: Table;\n}\n\n/** Generates a Table constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTableConstructor (db: Dexie) {\n return makeClassConstructor(\n Table.prototype,\n\n function Table (this: Table, name: string, tableSchema: TableSchema, trans?: Transaction) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n }) as TableHooks;\n }\n\n );\n}\n","import { combine } from \"../../functions/combine\";\nimport { exceptions } from \"../../errors\";\nimport { hasOwn } from \"../../functions/utils\";\nimport { wrap } from \"../../helpers/promise\";\nimport { Collection } from './';\nimport { DBCoreCursor, DBCoreTable, DBCoreTransaction, DBCoreTableSchema, DBCoreRangeType } from '../../public/types/dbcore';\nimport { nop } from '../../functions/chaining-functions';\n\ntype CollectionContext = Collection[\"_ctx\"];\n\nexport function isPlainKeyRange (ctx: CollectionContext, ignoreLimitFilter?: boolean) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n} \n\nexport function addFilter(ctx: CollectionContext, fn: Function) {\n ctx.filter = combine(ctx.filter, fn);\n}\n\nexport function addReplayFilter (ctx: CollectionContext, factory, isLimitFilter?) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? ()=>combine(curr(), factory()) : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\n\nexport function addMatchFilter(ctx: CollectionContext, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\n\nexport function getIndexOrStore(ctx: CollectionContext, coreSchema: DBCoreTableSchema) {\n // TODO: Rewrite this. No need to know ctx.isPrimKey. ctx.index should hold the keypath.\n // Still, throw if not found!\n if (ctx.isPrimKey) return coreSchema.primaryKey;\n const index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index) throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\n\nexport function openCursor(ctx: CollectionContext, coreTable: DBCoreTable, trans: DBCoreTransaction) {\n const index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index, \n range: ctx.range\n }\n });\n}\n\nexport function iter (\n ctx: CollectionContext, \n fn: (item, cursor: DBCoreCursor, advance: Function)=>void,\n coreTrans: DBCoreTransaction,\n coreTable: DBCoreTable): Promise\n{\n const filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(\n openCursor(ctx, coreTable, coreTrans),\n combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n } else {\n const set = {};\n\n const union = (item: any, cursor: DBCoreCursor, advance) => {\n if (!filter || filter(cursor, advance, result=>cursor.stop(result), err => cursor.fail(err))) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]') key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set, key)) {\n set[key] = true;\n fn(item, cursor, advance);\n }\n }\n }\n\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\n\nfunction iterate(cursorPromise: Promise, filter, fn, valueMapper): Promise {\n \n // Apply valueMapper (hook('reading') or mappped class)\n var mappedFn = valueMapper ? (x,c,a) => fn(valueMapper(x),c,a) : fn;\n // Wrap fn with PSD and microtick stuff from Promise.\n var wrappedFn = wrap(mappedFn);\n \n return cursorPromise.then(cursor => {\n if (cursor) {\n return cursor.start(()=>{\n var c = ()=>cursor.continue();\n if (!filter || filter(cursor, advancer => c = advancer, val=>{cursor.stop(val);c=nop}, e => {cursor.fail(e);c = nop;}))\n wrappedFn(cursor.value, cursor, advancer => c = advancer);\n c();\n });\n }\n });\n}\n","// Implementation of https://www.w3.org/TR/IndexedDB-3/#compare-two-keys\n\nimport { toStringTag } from './utils';\n\n// ... with the adjustment to return NaN instead of throwing.\nexport function cmp(a: any, b: any): number {\n try {\n const ta = type(a);\n const tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array') return 1;\n if (tb === 'Array') return -1;\n if (ta === 'binary') return 1;\n if (tb === 'binary') return -1;\n if (ta === 'string') return 1;\n if (tb === 'string') return -1;\n if (ta === 'Date') return 1;\n if (tb !== 'Date') return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n } catch {}\n return NaN; // Return value if any given args are valid keys.\n}\n\nexport function compareArrays(a: any[], b: any[]): number {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n const res = cmp(a[i], b[i]);\n if (res !== 0) return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\nexport function compareUint8Arrays(\n a: Uint8Array,\n b: Uint8Array\n) {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\n// Implementation of https://www.w3.org/TR/IndexedDB-3/#key-type\nfunction type(x: any) {\n const t = typeof x;\n if (t !== 'object') return t;\n if (ArrayBuffer.isView(x)) return 'binary';\n const tsTag = toStringTag(x); // Cannot use instanceof in Safari\n return tsTag === 'ArrayBuffer' ? 'binary' : (tsTag as 'Array' | 'Date');\n}\n\ntype BinaryType =\n | ArrayBuffer\n | DataView\n | Uint8ClampedArray\n | ArrayBufferView\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array;\n\nfunction getUint8Array(a: BinaryType): Uint8Array {\n if (a instanceof Uint8Array) return a;\n if (ArrayBuffer.isView(a))\n // TypedArray or DataView\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a); // ArrayBuffer\n}\n","import { Collection as ICollection } from \"../../public/types/collection\";\nimport { Dexie } from \"../dexie\";\nimport { Table } from \"../table\";\nimport { IndexableType, IndexableTypeArrayReadonly } from \"../../public/types/indexable-type\";\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { iter, isPlainKeyRange, getIndexOrStore, addReplayFilter, addFilter, addMatchFilter } from \"./collection-helpers\";\nimport { rejection } from \"../../helpers/promise\";\nimport { combine } from \"../../functions/combine\";\nimport { extend, hasOwn, deepClone, keys, setByKeyPath, getByKeyPath } from \"../../functions/utils\";\nimport { ModifyError } from \"../../errors\";\nimport { hangsOnDeleteLargeKeyRange } from \"../../globals/constants\";\nimport { ThenShortcut } from \"../../public/types/then-shortcut\";\nimport { Transaction } from '../transaction';\nimport { DBCoreCursor, DBCoreTransaction, DBCoreRangeType, DBCoreMutateResponse, DBCoreKeyRange } from '../../public/types/dbcore';\nimport { cmp } from \"../../functions/cmp\";\n\n/** class Collection\n * \n * https://dexie.org/docs/Collection/Collection\n */\nexport class Collection implements ICollection {\n db: Dexie;\n _ctx: {\n table: Table;\n index?: string | null;\n isPrimKey?: boolean;\n range: DBCoreKeyRange;\n keysOnly: boolean;\n dir: \"next\" | \"prev\";\n unique: \"\" | \"unique\";\n algorithm?: Function | null;\n filter?: Function | null;\n replayFilter: Function | null;\n justLimit: boolean; // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: Function | null;\n offset: number,\n limit: number,\n error: any, // If set, any promise must be rejected with this error\n or: Collection,\n valueMapper: (any) => any\n }\n \n _ondirectionchange?: Function;\n\n _read(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike, cb?): PromiseExtended {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n }\n\n _write(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike): PromiseExtended {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\"); // When doing write operations on collections, always lock the operation so that upcoming operations gets queued.\n }\n\n _addAlgorithm(fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n }\n\n _iterate(\n fn: (item, cursor: DBCoreCursor, advance: Function) => void,\n coreTrans: DBCoreTransaction) : Promise\n {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n }\n\n /** Collection.clone()\n * \n * https://dexie.org/docs/Collection/Collection.clone()\n * \n **/\n clone(props?) {\n var rv = Object.create(this.constructor.prototype),\n ctx = Object.create(this._ctx);\n if (props) extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n }\n\n /** Collection.raw()\n * \n * https://dexie.org/docs/Collection/Collection.raw()\n * \n **/\n raw() {\n this._ctx.valueMapper = null;\n return this;\n }\n\n /** Collection.each()\n * \n * https://dexie.org/docs/Collection/Collection.each()\n * \n **/\n each(fn: (obj, cursor: DBCoreCursor) => any): PromiseExtended {\n var ctx = this._ctx;\n\n return this._read(trans => iter(ctx, fn, trans, ctx.table.core));\n }\n\n /** Collection.count()\n * \n * https://dexie.org/docs/Collection/Collection.count()\n * \n **/\n count(cb?) {\n return this._read(trans => {\n const ctx = this._ctx;\n const coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n // This is a plain key range. We can use the count() method if the index.\n return coreTable.count({\n trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(count => Math.min(count, ctx.limit));\n } else {\n // Algorithms, filters or expressions are applied. Need to count manually.\n var count = 0;\n return iter(ctx, () => { ++count; return false; }, trans, coreTable)\n .then(()=>count);\n }\n }).then(cb);\n }\n\n /** Collection.sortBy()\n * \n * https://dexie.org/docs/Collection/Collection.sortBy()\n * \n **/\n sortBy(keyPath: string): PromiseExtended;\n sortBy(keyPath: string, thenShortcut: ThenShortcut) : PromiseExtended;\n sortBy(keyPath: string, cb?: ThenShortcut) {\n const parts = keyPath.split('.').reverse(),\n lastPart = parts[0],\n lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i) return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n\n function sorter(a, b) {\n var aVal = getval(a, lastIndex),\n bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n }\n\n /** Collection.toArray()\n * \n * https://dexie.org/docs/Collection/Collection.toArray()\n * \n **/\n toArray(cb?): PromiseExtended {\n return this._read(trans => {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAll() or\n // IDBKeyRange.getAll():\n const {valueMapper} = ctx;\n const index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n limit: ctx.limit,\n values: true,\n query: {\n index,\n range: ctx.range\n }\n }).then(({result}) => valueMapper ? result.map(valueMapper) : result);\n } else {\n // Getting array through a cursor.\n const a = [];\n return iter(ctx, item => a.push(item), trans, ctx.table.core).then(()=>a);\n }\n }, cb);\n }\n\n /** Collection.offset()\n * \n * https://dexie.org/docs/Collection/Collection.offset()\n * \n **/\n offset(offset: number) : Collection{\n var ctx = this._ctx;\n if (offset <= 0) return this;\n ctx.offset += offset; // For count()\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return (cursor, advance) => {\n if (offsetLeft === 0) return true;\n if (offsetLeft === 1) { --offsetLeft; return false; }\n advance(() => {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n } else {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return () => (--offsetLeft < 0);\n });\n }\n return this;\n }\n\n /** Collection.limit()\n * \n * https://dexie.org/docs/Collection/Collection.limit()\n * \n **/\n limit(numRows: number) : Collection {\n this._ctx.limit = Math.min(this._ctx.limit, numRows); // For count()\n addReplayFilter(this._ctx, () => {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0) advance(resolve); // Stop after this item has been included\n return rowsLeft >= 0; // If numRows is already below 0, return false because then 0 was passed to numRows initially. Otherwise we wouldnt come here.\n };\n }, true);\n return this;\n }\n\n /** Collection.until()\n * \n * https://dexie.org/docs/Collection/Collection.until()\n * \n **/\n until(filterFunction: (x) => boolean, bIncludeStopEntry?) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n } else {\n return true;\n }\n });\n return this;\n }\n\n /** Collection.first()\n * \n * https://dexie.org/docs/Collection/Collection.first()\n * \n **/\n first(cb?) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.last()\n * \n * https://dexie.org/docs/Collection/Collection.last()\n * \n **/\n last(cb?) {\n return this.reverse().first(cb);\n }\n\n /** Collection.filter()\n * \n * https://dexie.org/docs/Collection/Collection.filter()\n * \n **/\n filter(filterFunction: (x) => boolean): Collection {\n /// function(val){return true/false}\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n // match filters not used in Dexie.js but can be used by 3rd part libraries to test a\n // collection for a match without querying DB. Used by Dexie.Observable.\n addMatchFilter(this._ctx, filterFunction);\n return this;\n }\n\n /** Collection.and()\n * \n * https://dexie.org/docs/Collection/Collection.and()\n * \n **/\n and(filter: (x) => boolean) {\n return this.filter(filter);\n }\n\n /** Collection.or()\n * \n * https://dexie.org/docs/Collection/Collection.or()\n * \n **/\n or(indexName: string) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n }\n\n /** Collection.reverse()\n * \n * https://dexie.org/docs/Collection/Collection.reverse()\n * \n **/\n reverse() {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange) this._ondirectionchange(this._ctx.dir);\n return this;\n }\n\n /** Collection.desc()\n * \n * https://dexie.org/docs/Collection/Collection.desc()\n * \n **/\n desc() {\n return this.reverse();\n }\n\n /** Collection.eachKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachKey()\n * \n **/\n eachKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n }\n\n /** Collection.eachUniqueKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachUniqueKey()\n * \n **/\n eachUniqueKey(cb?) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n }\n\n /** Collection.eachPrimaryKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachPrimaryKey()\n * \n **/\n eachPrimaryKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n }\n\n /** Collection.keys()\n * \n * https://dexie.org/docs/Collection/Collection.keys()\n * \n **/\n keys(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.primaryKeys()\n * \n * https://dexie.org/docs/Collection/Collection.primaryKeys()\n * \n **/\n primaryKeys(cb?) : PromiseExtended {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAllKeys() or\n // IDBKeyRange.getAllKeys():\n return this._read(trans => {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n values: false,\n limit: ctx.limit,\n query: {\n index,\n range: ctx.range\n }});\n }).then(({result})=>result).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.uniqueKeys()\n * \n * https://dexie.org/docs/Collection/Collection.uniqueKeys()\n * \n **/\n uniqueKeys(cb?) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n }\n\n /** Collection.firstKey()\n * \n * https://dexie.org/docs/Collection/Collection.firstKey()\n * \n **/\n firstKey(cb?) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.lastKey()\n * \n * https://dexie.org/docs/Collection/Collection.lastKey()\n * \n **/\n lastKey(cb?) {\n return this.reverse().firstKey(cb);\n }\n\n /** Collection.distinct()\n * \n * https://dexie.org/docs/Collection/Collection.distinct()\n * \n **/\n distinct() {\n var ctx = this._ctx,\n idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi) return this; // distinct() only makes differencies on multiEntry indexes.\n var set = {};\n addFilter(this._ctx, function (cursor: DBCoreCursor) {\n var strKey = cursor.primaryKey.toString(); // Converts any Date to String, String to String, Number to String and Array to comma-separated string\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n }\n\n //\n // Methods that mutate storage\n //\n\n /** Collection.modify()\n * \n * https://dexie.org/docs/Collection/Collection.modify()\n * \n **/\n modify(changes: { [keyPath: string]: any }) : PromiseExtended\n modify(changes: (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean): PromiseExtended {\n var ctx = this._ctx;\n return this._write(trans => {\n var modifyer: (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean\n if (typeof changes === 'function') {\n // Changes is a function that may update, add or delete propterties or even require a deletion the object itself (delete this.item)\n modifyer = changes;\n } else {\n // changes is a set of {keyPath: value} and no one is listening to the updating hook.\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val); // Adding {keyPath: undefined} means that the keyPath should be deleted. Handled by setByKeyPath\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n\n const coreTable = ctx.table.core;\n const {outbound, extractKey} = coreTable.schema.primaryKey;\n const limit = this.db._options.modifyChunkSize || 200;\n const totalFailures = [];\n let successCount = 0;\n const failedKeys: IndexableType[] = [];\n const applyMutateResult = (expectedCount: number, res: DBCoreMutateResponse) => {\n const {failures, numFailures} = res;\n successCount += expectedCount - numFailures;\n for (let pos of keys(failures)) {\n totalFailures.push(failures[pos]);\n }\n }\n return this.clone().primaryKeys().then(keys => {\n\n const nextChunk = (offset: number) => {\n const count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\" // Optimize for 2 things:\n // 1) observability-middleware can track changes better.\n // 2) hooks middleware don't have to query the existing values again when tracking changes.\n // We can use \"immutable\" because we promise to not touch the values we retrieve here!\n }).then(values => {\n const addValues = [];\n const putValues = [];\n const putKeys = outbound ? [] : null;\n const deleteKeys = [];\n for (let i=0; i 0 &&\n coreTable.mutate({trans, type: 'add', values: addValues})\n .then(res => {\n for (let pos in res.failures) {\n // Remove from deleteKeys the key of the object that failed to change its primary key\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })\n ).then(()=>(putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(res=>applyMutateResult(putValues.length, res))\n ).then(()=>(deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans,\n type: 'delete',\n keys: deleteKeys,\n criteria\n }).then(res=>applyMutateResult(deleteKeys.length, res))\n ).then(()=>{\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n }\n\n return nextChunk(0).then(()=>{\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys as IndexableTypeArrayReadonly);\n\n return keys.length;\n });\n });\n\n });\n }\n\n /** Collection.delete()\n * \n * https://dexie.org/docs/Collection/Collection.delete()\n * \n **/\n delete() : PromiseExtended {\n var ctx = this._ctx,\n range = ctx.range;\n //deletingHook = ctx.table.hook.deleting.fire,\n //hasDeleteHook = deletingHook !== nop;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === DBCoreRangeType.Any)) // if no range, we'll use clear().\n {\n // May use IDBObjectStore.delete(IDBKeyRange) in this case (Issue #208)\n // For chromium, this is the way most optimized version.\n // For IE/Edge, this could hang the indexedDB engine and make operating system instable\n // (https://gist.github.com/dfahlander/5a39328f029de18222cf2125d56c38f7)\n return this._write(trans => {\n // Our API contract is to return a count of deleted items, so we have to count() before delete().\n const {primaryKey} = ctx.table.core.schema;\n const coreRange = range;\n return ctx.table.core.count({trans, query: {index: primaryKey, range: coreRange}}).then(count => {\n return ctx.table.core.mutate({trans, type: 'deleteRange', range: coreRange})\n .then(({failures, lastResult, results, numFailures}) => {\n if (numFailures) throw new ModifyError(\"Could not delete some values\",\n Object.keys(failures).map(pos => failures[pos]),\n count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n\n return this.modify(deleteCallback);\n }\n}\n\nconst deleteCallback = (value, ctx) => ctx.value = null;\n","import { Dexie } from '../../classes/dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Collection } from './collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\nimport { mirror } from '../../functions/chaining-functions';\n\n/** Constructs a Collection instance. */\nexport interface CollectionConstructor {\n new(whereClause?: WhereClause | null, keyRangeGenerator?: () => DBCoreKeyRange): Collection;\n prototype: Collection;\n}\n\n/** Generates a Collection constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createCollectionConstructor(db: Dexie) {\n return makeClassConstructor(\n Collection.prototype,\n\n function Collection(\n this: Collection,\n whereClause?: WhereClause | null,\n keyRangeGenerator?: () => DBCoreKeyRange)\n {\n this.db = db;\n let keyRange = AnyRange, error = null;\n if (keyRangeGenerator) try {\n keyRange = keyRangeGenerator();\n } catch (ex) {\n error = ex;\n }\n\n const whereCtx = whereClause._ctx;\n const table = whereCtx.table;\n const readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true, // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error, // If set, any promise must be rejected with this error\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n }\n );\n}\n","import { IndexableType } from '../public/types/indexable-type';\n\nexport function simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\n\nexport function simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n","import { WhereClause } from './where-clause';\nimport { Collection } from '../collection';\nimport { STRING_EXPECTED } from '../../globals/constants';\nimport { simpleCompare, simpleCompareReverse } from '../../functions/compare-functions';\nimport { IndexableType } from '../../public';\nimport { DBCoreKeyRange, DBCoreRangeType } from '../../public/types/dbcore';\n\nexport function fail(collectionOrWhereClause: Collection | WhereClause, err, T?) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection (collectionOrWhereClause) :\n collectionOrWhereClause;\n \n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\n\nexport function emptyCollection(whereClause: WhereClause) {\n return new whereClause.Collection (whereClause, () => rangeEqual(\"\")).limit(0);\n}\n\nexport function upperFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toUpperCase() :\n (s: string) => s.toLowerCase();\n}\n\nexport function lowerFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toLowerCase() :\n (s: string) => s.toUpperCase();\n}\n\nexport function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0) return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0) return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0) return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0) llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\") return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\") return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\n\nexport function addIgnoreCaseAlgorithm(whereClause: WhereClause, match, needles, suffix) {\n /// \n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix,\n needlesLen = needles.length;\n if (!needles.every(s => typeof s === 'string')) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle){\n return {lower: lower(needle), upper: upper(needle)};\n }).sort(function(a,b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb){ return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb){ return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n\n var c = new whereClause.Collection (\n whereClause,\n ()=>createRange(upperNeedles[0], lowerNeedles[needlesLen-1] + suffix)\n );\n\n c._ondirectionchange = function (direction) {\n // This event onlys occur before filter is called the first time.\n initDirection(direction);\n };\n\n var firstPossibleNeedle = 0;\n\n c._addAlgorithm(function (cursor, advance, resolve) {\n /// \n /// \n /// \n var key = cursor.key;\n if (typeof key !== 'string') return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n } else {\n var lowestPossibleCasing = null;\n for (var i=firstPossibleNeedle; i 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n } else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\n\nexport function createRange (lower: IndexableType, upper: IndexableType, lowerOpen?: boolean, upperOpen?: boolean): DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Range,\n lower,\n upper,\n lowerOpen,\n upperOpen\n };\n}\n\nexport function rangeEqual (value: IndexableType) : DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Equal,\n lower: value,\n upper: value\n };\n}\n","import { WhereClause as IWhereClause } from \"../../public/types/where-clause\";\nimport { Collection } from \"../collection\";\nimport { Table } from \"../table\";\nimport { IndexableType } from \"../../public/types/indexable-type\";\nimport { emptyCollection, fail, addIgnoreCaseAlgorithm, createRange, rangeEqual } from './where-clause-helpers';\nimport { INVALID_KEY_ARGUMENT, STRING_EXPECTED, maxString, minKey } from '../../globals/constants';\nimport { getArrayOf, NO_CHAR_ARRAY } from '../../functions/utils';\nimport { exceptions } from '../../errors';\nimport { Dexie } from '../dexie';\nimport { Collection as ICollection} from \"../../public/types/collection\";\n\n/** class WhereClause\n * \n * https://dexie.org/docs/WhereClause/WhereClause\n */\nexport class WhereClause implements IWhereClause {\n db: Dexie;\n _IDBKeyRange: typeof IDBKeyRange;\n _ctx: {\n table: Table;\n index: string;\n or: Collection;\n }\n _cmp: (a: IndexableType, b: IndexableType) => number;\n _ascending: (a: IndexableType, b: IndexableType) => number;\n _descending: (a: IndexableType, b: IndexableType) => number;\n _min: (a: IndexableType, b: IndexableType) => IndexableType;\n _max: (a: IndexableType, b: IndexableType) => IndexableType;\n\n get Collection() {\n return this._ctx.table.db.Collection;\n }\n\n /** WhereClause.between()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.between()\n * \n **/\n between(lower: IndexableType, upper: IndexableType, includeLower?: boolean, includeUpper?: boolean) {\n includeLower = includeLower !== false; // Default to true\n includeUpper = includeUpper === true; // Default to false\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this); // Workaround for idiotic W3C Specification that DataError must be thrown if lower > upper. The natural result would be to return an empty collection.\n return new this.Collection(this, ()=>createRange(lower, upper, !includeLower, !includeUpper));\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n }\n\n /** WhereClause.equals()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equals()\n * \n **/\n equals(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => rangeEqual(value)) as ICollection;\n }\n\n /** WhereClause.above()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.above()\n * \n **/\n above(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, true));\n }\n\n /** WhereClause.aboveOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.aboveOrEqual()\n * \n **/\n aboveOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, false));\n }\n\n /** WhereClause.below()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.below()\n * \n **/\n below(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value, false, true));\n }\n\n /** WhereClause.belowOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.belowOrEqual()\n * \n **/\n belowOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value));\n }\n\n /** WhereClause.startsWith()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWith()\n * \n **/\n startsWith(str: string) {\n if (typeof str !== 'string') return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n }\n\n /** WhereClause.startsWithIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithIgnoreCase()\n * \n **/\n startsWithIgnoreCase(str: string) {\n if (str === \"\") return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, (x, a) => x.indexOf(a[0]) === 0, [str], maxString);\n }\n\n /** WhereClause.equalsIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equalsIgnoreCase()\n * \n **/\n equalsIgnoreCase(str: string) {\n return addIgnoreCaseAlgorithm(this, (x, a) => x === a[0], [str], \"\");\n }\n\n /** WhereClause.anyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOfIgnoreCase()\n * \n **/\n anyOfIgnoreCase(...values: string[]): Collection;\n anyOfIgnoreCase(values: string[]): Collection;\n anyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.indexOf(x) !== -1, set, \"\");\n }\n\n /** WhereClause.startsWithAnyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOfIgnoreCase()\n * \n **/\n startsWithAnyOfIgnoreCase(...values: string[]): Collection;\n startsWithAnyOfIgnoreCase(values: string[]): Collection;\n startsWithAnyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.some(n => x.indexOf(n) === 0), set, maxString);\n }\n\n /** WhereClause.anyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOf()\n * \n **/\n anyOf(...values: string[]): Collection;\n anyOf(values: string[]): Collection;\n anyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n let compare = this._cmp;\n try { set.sort(compare); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n if (set.length === 0) return emptyCollection(this);\n const c = new this.Collection(this, () => createRange(set[0], set[set.length - 1]));\n\n c._ondirectionchange = direction => {\n compare = (direction === \"next\" ?\n this._ascending :\n this._descending);\n set.sort(compare);\n };\n\n let i = 0;\n c._addAlgorithm((cursor, advance, resolve) => {\n const key = cursor.key;\n while (compare(key, set[i]) > 0) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n if (i === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.notEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.notEqual()\n * \n **/\n notEqual(value: IndexableType) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.noneOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.noneOf()\n * \n **/\n noneOf(...values: string[]): Collection;\n noneOf(values: string[]): Collection;\n noneOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return new this.Collection(this); // Return entire collection.\n try { set.sort(this._ascending); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n // Transform [\"a\",\"b\",\"c\"] to a set of ranges for between/above/below: [[minKey,\"a\"], [\"a\",\"b\"], [\"b\",\"c\"], [\"c\",maxKey]]\n const ranges = set.reduce(\n (res, val) => res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]],\n null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.inAnyRange()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.inAnyRange()\n * \n **/\n inAnyRange(\n ranges: ReadonlyArray<{ 0: IndexableType, 1: IndexableType }>,\n options?: { includeLowers?: boolean, includeUppers?: boolean })\n {\n const cmp = this._cmp,\n ascending = this._ascending,\n descending = this._descending,\n min = this._min,\n max = this._max;\n\n if (ranges.length === 0) return emptyCollection(this);\n if (!ranges.every(range =>\n range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0)) {\n return fail(\n this,\n \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",\n exceptions.InvalidArgument);\n }\n const includeLowers = !options || options.includeLowers !== false; // Default to true\n const includeUppers = options && options.includeUppers === true; // Default to false\n\n function addRange(ranges, newRange) {\n let i = 0, l = ranges.length;\n for (; i < l; ++i) {\n const range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n\n let sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n\n // Join overlapping ranges\n let set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n } catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n\n let rangePos = 0;\n const keyIsBeyondCurrentEntry = includeUppers ?\n key => ascending(key, set[rangePos][1]) > 0 :\n key => ascending(key, set[rangePos][1]) >= 0;\n\n const keyIsBeforeCurrentEntry = includeLowers ?\n key => descending(key, set[rangePos][0]) > 0 :\n key => descending(key, set[rangePos][0]) >= 0;\n\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n\n let checkKey = keyIsBeyondCurrentEntry;\n\n const c = new this.Collection(\n this,\n () => createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers));\n\n c._ondirectionchange = direction => {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n } else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n\n c._addAlgorithm((cursor, advance, resolve) => {\n var key = cursor.key;\n while (checkKey(key)) {\n // The cursor has passed beyond this key. Check next.\n ++rangePos;\n if (rangePos === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else if (this._cmp(key, set[rangePos][1]) === 0 || this._cmp(key, set[rangePos][0]) === 0) {\n // includeUpper or includeLower is false so keyWithinCurrentRange() returns false even though we are at range border.\n // Continue to next key but don't include this one.\n return false;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => {\n if (sortDirection === ascending) cursor.continue(set[rangePos][0]);\n else cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.startsWithAnyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOf()\n * \n **/\n startsWithAnyOf(...prefixes: string[]): Collection;\n startsWithAnyOf(prefixes: string[]): Collection;\n startsWithAnyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\n if (!set.every(s => typeof s === 'string')) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0) return emptyCollection(this);\n\n return this.inAnyRange(set.map((str: string) => [str, str + maxString]));\n }\n\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { WhereClause } from './where-clause';\nimport { Table } from '../table';\nimport { Collection } from '../collection';\nimport { exceptions } from '../../errors';\n\nexport interface WhereClauseConstructor {\n new(table: Table, index?: string, orCollection?: Collection): WhereClause;\n prototype: WhereClause;\n}\n\n/** Generates a WhereClause constructor.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createWhereClauseConstructor(db: Dexie) {\n return makeClassConstructor(\n WhereClause.prototype,\n\n function WhereClause(this: WhereClause, table: Table, index?: string, orCollection?: Collection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n const indexedDB = db._deps.indexedDB;\n if (!indexedDB) throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = (a, b) => indexedDB.cmp(b, a);\n this._max = (a, b) => indexedDB.cmp(a,b) > 0 ? a : b;\n this._min = (a, b) => indexedDB.cmp(a,b) < 0 ? a : b;\n this._IDBKeyRange = db._deps.IDBKeyRange;\n }\n );\n}\n","import { wrap } from \"../helpers/promise\";\n\nexport function eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject (event.target.error);\n return false;\n });\n}\n\nexport function eventSuccessHandler (resolve) {\n return wrap(function (event){\n resolve(event.target.result);\n });\n}\n\nexport function hookedEventRejectHandler (reject) {\n return wrap(function (event) {\n // See comment on hookedEventSuccessHandler() why wrap() is needed only when supporting hooks.\n \n var req = event.target,\n err = req.error,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n hookErrorHandler = ctx && ctx.onerror;\n hookErrorHandler && hookErrorHandler(err);\n preventDefault(event);\n reject (err);\n return false;\n });\n}\n\nexport function hookedEventSuccessHandler(resolve) {\n // wrap() is needed when calling hooks because the rare scenario of:\n // * hook does a db operation that fails immediately (IDB throws exception)\n // For calling db operations on correct transaction, wrap makes sure to set PSD correctly.\n // wrap() will also execute in a virtual tick.\n // * If not wrapped in a virtual tick, direct exception will launch a new physical tick.\n // * If this was the last event in the bulk, the promise will resolve after a physical tick\n // and the transaction will have committed already.\n // If no hook, the virtual tick will be executed in the reject()/resolve of the final promise,\n // because it is always marked with _lib = true when created using Transaction._promise().\n return wrap(function(event) {\n var req = event.target,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n result = ctx.value || req.result, // Pass the object value on updates. The result from IDB is the primary key.\n hookSuccessHandler = ctx && ctx.onsuccess;\n hookSuccessHandler && hookSuccessHandler(result);\n resolve && resolve(result);\n }, resolve);\n}\n\n\nexport function preventDefault(event) {\n if (event.stopPropagation) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.stopPropagation();\n if (event.preventDefault) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.preventDefault();\n}\n\nexport function BulkErrorHandlerCatchAll(errorList, done?, supportHooks?) {\n return (supportHooks ? hookedEventRejectHandler : eventRejectHandler)(e => {\n errorList.push(e);\n done && done();\n });\n}\n\n","import Events from '../helpers/Events';\nimport { GlobalDexieEvents } from '../public/types/db-events';\n\nexport const DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated' as 'storagemutated';\n\n// Name of the global event fired using DOM dispatchEvent (if not in node).\n// Reason for propagating this as a DOM event is for getting reactivity across\n// multiple versions of Dexie within the same app (as long as they are\n// compatible with regards to the event data).\n// If the ObservabilitySet protocol change in a way that would not be backward\n// compatible, make sure also update the event name to a new number at the end\n// so that two Dexie instances of different versions continue to work together\n// - maybe not able to communicate but won't fail due to unexpected data in\n// the detail property of the CustomEvent. If so, also make sure to udpate\n// docs and explain at which Dexie version the new name and format of the event\n// is being used.\nexport const STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\n\nexport const globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME) as GlobalDexieEvents;\n","import { Transaction as ITransaction } from '../../public/types/transaction';\nimport { DexiePromise, wrap, rejection } from \"../../helpers/promise\";\nimport { DbSchema } from '../../public/types/db-schema';\nimport { assert, hasOwn } from '../../functions/utils';\nimport { PSD, usePSD } from '../../helpers/promise';\nimport { Dexie } from '../dexie';\nimport { exceptions } from '../../errors';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { preventDefault } from '../../functions/event-wrappers';\nimport { newScope } from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { Table } from '../table';\nimport { globalEvents } from '../../globals/global-events';\n\n/** Transaction\n * \n * https://dexie.org/docs/Transaction/Transaction\n * \n **/\nexport class Transaction implements ITransaction {\n db: Dexie;\n active: boolean;\n mode: IDBTransactionMode;\n chromeTransactionDurability: ChromeTransactionDurability;\n idbtrans: IDBTransaction;\n storeNames: string[];\n on: any;\n parent?: Transaction;\n schema: DbSchema;\n _memoizedTables: {[tableName: string]: Table};\n\n _reculock: number;\n _blockedFuncs: { 0: () => any, 1: any }[];\n _resolve: () => void;\n _reject: (Error) => void;\n _waitingFor: DexiePromise; // for waitFor()\n _waitingQueue: Function[]; // for waitFor()\n _spinCount: number; // Just for debugging waitFor()\n _completion: DexiePromise;\n\n //\n // Transaction internal methods (not required by API users, but needed internally and eventually by dexie extensions)\n //\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _lock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n // Temporary set all requests into a pending queue if they are called before database is ready.\n ++this._reculock; // Recursive read/write lock pattern using PSD (Promise Specific Data) instead of TLS (Thread Local Storage)\n if (this._reculock === 1 && !PSD.global) PSD.lockOwnerFor = this;\n return this;\n }\n\n /** Transaction._unlock()\n * \n * Internal method.\n */\n _unlock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n if (--this._reculock === 0) {\n if (!PSD.global) PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try { usePSD(fnAndPSD[1], fnAndPSD[0]); } catch (e) { }\n }\n }\n return this;\n }\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _locked() {\n // Checks if any write-lock is applied on this transaction.\n // To simplify the Dexie API for extension implementations, we support recursive locks.\n // This is accomplished by using \"Promise Specific Data\" (PSD).\n // PSD data is bound to a Promise and any child Promise emitted through then() or resolve( new Promise() ).\n // PSD is local to code executing on top of the call stacks of any of any code executed by Promise():\n // * callback given to the Promise() constructor (function (resolve, reject){...})\n // * callbacks given to then()/catch()/finally() methods (function (value){...})\n // If creating a new independant Promise instance from within a Promise call stack, the new Promise will derive the PSD from the call stack of the parent Promise.\n // Derivation is done so that the inner PSD __proto__ points to the outer PSD.\n // PSD.lockOwnerFor will point to current transaction object if the currently executing PSD scope owns the lock.\n return this._reculock && PSD.lockOwnerFor !== this;\n }\n\n /** Transaction.create()\n * \n * Internal method.\n * \n */\n create(idbtrans?: IDBTransaction) {\n if (!this.mode) return this;\n const idbdb = this.db.idbdb;\n const dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n // Make it clear that the user operation was not what caused the error - the error had occurred earlier on db.open()!\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active) throw new exceptions.TransactionInactive();\n assert(this._completion._state === null); // Completion Promise must still be pending.\n\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core \n ? this.db.core.transaction(this.storeNames, this.mode as 'readwrite' | 'readonly', { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n ) as IDBTransaction;\n\n idbtrans.onerror = wrap(ev => {\n preventDefault(ev);// Prohibit default bubbling to window.error\n this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(ev => {\n preventDefault(ev);\n this.active && this._reject(new exceptions.Abort(idbtrans.error));\n this.active = false;\n this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(() => {\n this.active = false;\n this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n }\n\n /** Transaction._promise()\n * \n * Internal method.\n */\n _promise(\n mode: IDBTransactionMode,\n fn: (resolve, reject, trans: Transaction) => PromiseLike | void,\n bWriteLock?: string | boolean): DexiePromise\n {\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n\n if (this._locked()) {\n return new DexiePromise((resolve, reject) => {\n this._blockedFuncs.push([() => {\n this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n\n } else if (bWriteLock) {\n return newScope(() => {\n var p = new DexiePromise((resolve, reject) => {\n this._lock();\n const rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p.finally(() => this._unlock());\n p._lib = true;\n return p;\n });\n\n } else {\n var p = new DexiePromise((resolve, reject) => {\n var rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n }\n\n /** Transaction._root()\n * \n * Internal method. Retrieves the root transaction in the tree of sub transactions.\n */\n _root() {\n return this.parent ? this.parent._root() : this;\n }\n\n /** Transaction.waitFor()\n * \n * Internal method. Can be accessed from the public API through\n * Dexie.waitFor(): https://dexie.org/docs/Dexie/Dexie.waitFor()\n * \n **/\n waitFor(promiseLike: PromiseLike) {\n // Always operate on the root transaction (in case this is a sub stransaction)\n var root = this._root();\n // For stability reasons, convert parameter to promise no matter what type is passed to waitFor().\n // (We must be able to call .then() on it.)\n const promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n // Already called waitFor(). Wait for both to complete.\n root._waitingFor = root._waitingFor.then(() => promise);\n } else {\n // We're not in waiting state. Start waiting state.\n root._waitingFor = promise;\n root._waitingQueue = [];\n // Start interacting with indexedDB until promise completes:\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount; // For debugging only\n while (root._waitingQueue.length) (root._waitingQueue.shift())();\n if (root._waitingFor) store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise((resolve, reject) => {\n promise.then(\n res => root._waitingQueue.push(wrap(resolve.bind(null, res))),\n err => root._waitingQueue.push(wrap(reject.bind(null, err)))\n ).finally(() => {\n if (root._waitingFor === currentWaitPromise) {\n // No one added a wait after us. Safe to stop the spinning.\n root._waitingFor = null;\n }\n });\n });\n } \n\n /** Transaction.abort()\n * \n * https://dexie.org/docs/Transaction/Transaction.abort()\n */\n abort() {\n if (this.active) {\n this.active = false;\n if (this.idbtrans) this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n }\n\n /** Transaction.table()\n * \n * https://dexie.org/docs/Transaction/Transaction.table()\n */\n table(tableName: string) {\n const memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n const tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\"); \n }\n\n const transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Transaction } from './transaction';\nimport { DbSchema } from '../../public/types/db-schema';\nimport Events from '../../helpers/Events';\nimport Promise, { rejection } from '../../helpers/promise';\n\nexport interface TransactionConstructor {\n new (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: ChromeTransactionDurability,\n parent?: Transaction) : T;\n prototype: T;\n}\n\n/** Generates a Transaction constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTransactionConstructor(db: Dexie) {\n return makeClassConstructor>(\n Transaction.prototype,\n function Transaction (\n this: Transaction,\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: ChromeTransactionDurability,\n parent?: Transaction)\n {\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0; // Just for debugging waitFor()\n this._completion = new Promise ((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n \n this._completion.then(\n ()=> {\n this.active = false;\n this.on.complete.fire();\n },\n e => {\n var wasActive = this.active;\n this.active = false;\n this.on.error.fire(e);\n this.parent ?\n this.parent._reject(e) :\n wasActive && this.idbtrans && this.idbtrans.abort();\n return rejection(e); // Indicate we actually DO NOT catch this error.\n });\n \n });\n}\n","import { IndexSpec } from '../public/types/index-spec';\n\nexport function createIndexSpec(\n name: string,\n keyPath: string | string[],\n unique: boolean,\n multi: boolean,\n auto: boolean,\n compound: boolean,\n isPrimKey: boolean\n): IndexSpec {\n return {\n name,\n keyPath,\n unique,\n multi,\n auto,\n compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n }\n}\n\nexport function nameFromKeyPath (keyPath?: string | string[]): string {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n","import { IndexSpec } from '../public/types/index-spec';\nimport { TableSchema } from '../public/types/table-schema';\nimport { createIndexSpec } from './index-spec';\nimport { arrayToObject } from '../functions/utils';\n\nexport function createTableSchema (\n name: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n): TableSchema {\n return {\n name,\n primKey,\n indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, index => [index.name, index])\n };\n}\n","import { maxString } from '../globals/constants';\n\nexport function safariMultiStoreFix(storeNames: string[]) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\n\nexport function getNativeGetDatabaseNamesFn(indexedDB) {\n var fn = indexedDB && (indexedDB.getDatabaseNames || indexedDB.webkitGetDatabaseNames);\n return fn && fn.bind(indexedDB);\n}\n\nexport let getMaxKey = (IdbKeyRange: typeof IDBKeyRange) => {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = () => [[]];\n return [[]];\n } catch (e) {\n getMaxKey = () => maxString;\n return maxString;\n }\n}\n","import { getByKeyPath } from '../functions/utils';\n\nexport function getKeyExtractor (keyPath: null | string | string[]) : (a: any) => any {\n if (keyPath == null) {\n return () => undefined;\n } else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n\nexport function getSinglePathKeyExtractor(keyPath: string) {\n const split = keyPath.split('.');\n if (split.length === 1) {\n return obj => obj[keyPath];\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n","import {\n DBCore,\n DBCoreCursor,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryResponse,\n DBCoreRangeType,\n DBCoreSchema,\n DBCoreTableSchema,\n DBCoreTable,\n DBCoreMutateResponse,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { eventRejectHandler, preventDefault } from '../functions/event-wrappers';\nimport { wrap } from '../helpers/promise';\nimport { getMaxKey } from '../functions/quirks';\nimport { getKeyExtractor } from './get-key-extractor';\n\nexport function arrayify(arrayLike: {length: number, [index: number]: T}): T[] {\n return [].slice.call(arrayLike);\n}\nexport function pick(obj: T, props: Prop[]): Pick {\n const result = {} as Pick;\n props.forEach(prop => result[prop] = obj[prop]);\n return result;\n}\n\nlet _id_counter = 0;\n\nexport function getKeyPathAlias(keyPath: null | string | string[]) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n `[${keyPath.join('+')}]`;\n}\n\nexport function createDBCore (\n db: IDBDatabase,\n IdbKeyRange: typeof IDBKeyRange,\n tmpTrans: IDBTransaction) : DBCore\n{\n function extractSchema(db: IDBDatabase, trans: IDBTransaction) : {schema: DBCoreSchema, hasGetAll: boolean} {\n const tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(table => trans.objectStore(table)).map(store => {\n const {keyPath, autoIncrement} = store;\n const compound = isArray(keyPath);\n const outbound = keyPath == null;\n const indexByKeyPath: {[keyPathAlias: string]: DBCoreIndex} = {};\n const result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound,\n compound,\n keyPath,\n autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n } as DBCoreIndex,\n indexes: arrayify(store.indexNames).map(indexName => store.index(indexName))\n .map(index => {\n const {name, unique, multiEntry, keyPath} = index;\n const compound = isArray(keyPath);\n const result: DBCoreIndex = {\n name,\n compound,\n keyPath,\n unique,\n multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: (keyPath: null | string | string[]) => indexByKeyPath[getKeyPathAlias(keyPath)]\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) // Bug with getAll() on Safari ver<604. See discussion following PR #579\n };\n }\n\n function makeIDBKeyRange (range: DBCoreKeyRange) : IDBKeyRange | null {\n if (range.type === DBCoreRangeType.Any) return null;\n if (range.type === DBCoreRangeType.Never) throw new Error(\"Cannot convert never type to IDBKeyRange\");\n const {lower, upper, lowerOpen, upperOpen} = range;\n const idbRange = lower === undefined ?\n upper === undefined ?\n null : //IDBKeyRange.lowerBound(-Infinity, false) : // Any range (TODO: Should we return null instead?)\n IdbKeyRange.upperBound(upper, !!upperOpen) : // below\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) : // above\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n\n function createDbCoreTable(tableSchema: DBCoreTableSchema): DBCoreTable {\n const tableName = tableSchema.name;\n\n function mutate ({trans, type, keys, values, range}) {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const outbound = store.keyPath == null;\n const isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error (\"Invalid operation type: \" + type);\n\n const {length} = keys || values || {length: 1}; // keys.length if keys. values.length if values. 1 if range.\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n // No items to write. Don't even bother!\n return resolve({numFailures: 0, failures: {}, results: [], lastResult: undefined});\n\n let req: IDBRequest;\n const reqs: IDBRequest[] = [];\n \n const failures: {[operationNumber: number]: Error} = [];\n let numFailures = 0;\n const errorHandler = \n event => {\n ++numFailures;\n preventDefault(event);\n };\n \n if (type === 'deleteRange') {\n // Here the argument is the range\n if (range.type === DBCoreRangeType.Never)\n return resolve({numFailures, failures, results: [], lastResult: undefined}); // Deleting the Never range shoulnt do anything.\n if (range.type === DBCoreRangeType.Any)\n reqs.push(req = store.clear()); // Deleting the Any range is equivalent to store.clear()\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n } else {\n // No matter add, put or delete - find out arrays of first and second arguments to it.\n const [args1, args2] = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null];\n\n if (isAddOrPut) {\n for (let i=0; i {\n const lastResult = event.target.result;\n reqs.forEach((req, i) => req.error != null && (failures[i] = req.error));\n resolve({\n numFailures,\n failures,\n results: type === \"delete\" ? keys : reqs.map(req => req.result),\n lastResult\n });\n };\n \n req.onerror = event => { // wrap() not needed. All paths calling outside will wrap!\n errorHandler(event);\n done(event);\n };\n \n req.onsuccess = done;\n });\n }\n \n function openCursor ({trans, values, query, reverse, unique}: DBCoreOpenCursorRequest): Promise\n {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n // source\n const source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n // direction\n const direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n // request\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n \n // iteration\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(ev => {\n\n const cursor = req.result as unknown as DBCoreCursor;\n if (!cursor) {\n resolve(null);\n return;\n }\n (cursor as any).___id = ++_id_counter;\n (cursor as any).done = false;\n const _cursorContinue = cursor.continue.bind(cursor);\n let _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey) _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n const _cursorAdvance = cursor.advance.bind(cursor);\n const doThrowCursorIsNotStarted = ()=>{throw new Error(\"Cursor not started\");}\n const doThrowCursorIsStopped = ()=>{throw new Error(\"Cursor not stopped\");}\n (cursor as any).trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function (this: DBCoreCursor) {\n // next() must work with \"this\" pointer in order to function correctly for ProxyCursors (derived objects)\n // without having to re-define next() on each child.\n let gotOne = 1;\n return this.start(() => gotOne-- ? this.continue() : this.stop()).then(() => this);\n };\n cursor.start = (callback) => {\n //console.log(\"Starting cursor\", (cursor as any).___id);\n const iterationPromise = new Promise((resolveIteration, rejectIteration) =>{\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = value => {\n //console.log(\"Cursor stop\", cursor);\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n // Now change req.onsuccess to a callback that doesn't call initCursor but just observer.next()\n const guardedCallback = () => {\n if (req.result) {\n //console.log(\"Next result\", cursor);\n try {\n callback();\n } catch (err) {\n cursor.fail(err);\n }\n } else {\n (cursor as any).done = true;\n cursor.start = ()=>{throw new Error(\"Cursor behind last entry\");}\n cursor.stop();\n }\n }\n req.onsuccess = wrap(ev => {\n //cursor.continue = _cursorContinue;\n //cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n //cursor.advance = _cursorAdvance;\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject); \n });\n }\n \n function query (hasGetAll: boolean) {\n return (request: DBCoreQueryRequest) => {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const {trans, values, limit, query} = request;\n const nonInfinitLimit = limit === Infinity ? undefined : limit;\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0) return resolve({result: []});\n if (hasGetAll) {\n const req = values ?\n (source as any).getAll(idbKeyRange, nonInfinitLimit) :\n (source as any).getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = event => resolve({result: event.target.result});\n req.onerror = eventRejectHandler(reject);\n } else {\n let count = 0;\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange)\n const result = [];\n req.onsuccess = event => {\n const cursor = req.result as IDBCursorWithValue;\n if (!cursor) return resolve({result});\n result.push(values ? cursor.value : cursor.primaryKey);\n if (++count === limit) return resolve({result});\n cursor.continue();\n };\n req.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n \n return {\n name: tableName,\n schema: tableSchema,\n \n mutate,\n\n getMany ({trans, keys}) {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const length = keys.length;\n const result = new Array(length);\n let keyCount = 0;\n let callbackCount = 0;\n let valueCount = 0;\n let req: IDBRequest & {_pos?: number};\n \n const successHandler = event => {\n const req = event.target;\n if ((result[req._pos] = req.result) != null) ++valueCount;\n if (++callbackCount === keyCount) resolve(result);\n };\n const errorHandler = eventRejectHandler(reject);\n \n for (let i=0; i((resolve, reject) => {\n resolve = wrap (resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const req = store.get(key);\n req.onsuccess = event => resolve((event.target as any).result);\n req.onerror = eventRejectHandler(reject);\n });\n },\n\n query: query(hasGetAll),\n \n openCursor,\n\n count ({query, trans}) {\n const {index, range} = query;\n return new Promise((resolve, reject) => {\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n const req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(ev => resolve((ev.target as IDBRequest).result));\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n\n const {schema, hasGetAll} = extractSchema(db, tmpTrans);\n const tables = schema.tables.map(tableSchema => createDbCoreTable(tableSchema));\n const tableMap: {[name: string]: DBCoreTable} = {};\n tables.forEach(table => tableMap[table.name] = table);\n return {\n stack: \"dbcore\",\n \n transaction: db.transaction.bind(db),\n\n table(name: string) {\n const result = tableMap[name];\n if (!result) throw new Error(`Table '${name}' not found`);\n return tableMap[name];\n },\n\n MIN_KEY: -Infinity,\n\n MAX_KEY: getMaxKey(IdbKeyRange),\n\n schema\n\n };\n}\n","import { Dexie } from './';\nimport { createDBCore } from '../../dbcore/dbcore-indexeddb';\nimport { DBCore } from '../../public/types/dbcore';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { DexieStacks, Middleware } from '../../public/types/middleware';\nimport { exceptions } from '../../errors';\n\nfunction createMiddlewareStack(\n stackImpl: {stack: string},\n middlewares: Middleware<{stack: string}>[]): TStack {\n return middlewares.reduce((down, {create}) => ({...down, ...create(down)}), stackImpl) as TStack;\n} \n\nfunction createMiddlewareStacks(\n middlewares: {[StackName in keyof DexieStacks]?: Middleware[]},\n idbdb: IDBDatabase,\n {IDBKeyRange, indexedDB}: DexieDOMDependencies,\n tmpTrans: IDBTransaction): {[StackName in keyof DexieStacks]?: DexieStacks[StackName]}\n{\n const dbcore = createMiddlewareStack(\n createDBCore(idbdb, IDBKeyRange, tmpTrans),\n middlewares.dbcore);\n \n // TODO: Create other stacks the same way as above. They might be dependant on the result\n // of creating dbcore stack.\n\n return {\n dbcore\n };\n}\n\nexport function generateMiddlewareStacks({_novip: db}: Dexie, tmpTrans: IDBTransaction) {\n const idbdb = tmpTrans.db;\n const stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore!;\n db.tables.forEach(table => {\n const tableName = table.name;\n if (db.core.schema.tables.some(tbl => tbl.name === tableName)) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n","import { Dexie } from '../dexie';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { _global } from \"../../globals/global\";\nimport { setProp, keys, slice, isArray, shallowClone, isAsyncFunction, defineProperty, getPropertyDescriptor } from '../../functions/utils';\nimport { Transaction } from '../transaction';\nimport { Version } from './version';\nimport Promise, { PSD, newScope, NativePromise, decrementExpectedAwaits, incrementExpectedAwaits } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { IndexSpec } from '../../public/types/index-spec';\nimport { hasIEDeleteObjectStoreBug, isIEOrEdge } from '../../globals/constants';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { createIndexSpec, nameFromKeyPath } from '../../helpers/index-spec';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { generateMiddlewareStacks } from '../dexie/generate-middleware-stacks';\n\nexport function setApiOnPlace({_novip: db}: Dexie, objs: Object[], tableNames: string[], dbschema: DbSchema) {\n tableNames.forEach(tableName => {\n const schema = dbschema[tableName];\n objs.forEach(obj => {\n const propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n // Either the prop is not declared, or it is initialized to undefined.\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n // obj is a Transaction prototype (or prototype of a subclass to Transaction)\n // Make the API a getter that returns this.table(tableName)\n setProp(obj, tableName, {\n get(this: Transaction) { return this.table(tableName); },\n set(value: any) {\n // Issue #1039\n // Let \"this.schema = dbschema;\" and other props in transaction constructor work even if there's a name collision with the table name.\n defineProperty(this, tableName, {value, writable: true, configurable: true, enumerable: true});\n }\n });\n } else {\n // Table will not be bound to a transaction (will use Dexie.currentTransaction)\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\n\nexport function removeTablesApi({_novip: db}: Dexie, objs: Object[]) {\n objs.forEach(obj => {\n for (let key in obj) {\n if (obj[key] instanceof db.Table) delete obj[key];\n }\n });\n}\n\nexport function lowerVersionFirst(a: Version, b: Version) {\n return a._cfg.version - b._cfg.version;\n}\n\nexport function runUpgraders(db: Dexie, oldVersion: number, idbUpgradeTrans: IDBTransaction, reject) {\n const globalSchema = db._dbSchema;\n const trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n const rejectTransaction = trans._reject.bind(trans);\n const transless = PSD.transless || PSD;\n newScope(() => {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n // Create tables:\n keys(globalSchema).forEach(tableName => {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n Promise.follow(() => db.on.populate.fire(trans)).catch(rejectTransaction);\n } else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\n\nexport type UpgradeQueueItem = (idbtrans: IDBTransaction) => PromiseLike | void;\n\nexport function updateTablesAndIndexes(\n {_novip: db}: Dexie,\n oldVersion: number,\n trans: Transaction,\n idbUpgradeTrans: IDBTransaction)\n{\n // Upgrade version to version, step-by-step from oldest to newest version.\n // Each transaction object will contain the table set that was current in that version (but also not-yet-deleted tables from its previous version)\n const queue: UpgradeQueueItem[] = [];\n const versions = db._versions;\n let globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n let anyContentUpgraderHasRun = false;\n\n const versToRun = versions.filter(v => v._cfg.version >= oldVersion);\n versToRun.forEach(version => {\n queue.push(() => {\n const oldSchema = globalSchema;\n const newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n\n globalSchema = db._dbSchema = newSchema;\n\n const diff = getSchemaDiff(oldSchema, newSchema);\n // Add tables \n diff.add.forEach(tuple => {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n // Change tables\n diff.change.forEach(change => {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n } else {\n const store = idbUpgradeTrans.objectStore(change.name);\n // Add indexes\n change.add.forEach(idx => addIndex(store, idx));\n // Update indexes\n change.change.forEach(idx => {\n store.deleteIndex(idx.name);\n addIndex(store, idx);\n });\n // Delete indexes\n change.del.forEach(idxName => store.deleteIndex(idxName));\n }\n });\n\n const contentUpgrade = version._cfg.contentUpgrade;\n\n if (contentUpgrade && version._cfg.version > oldVersion) {\n // Update db.core with new tables and indexes:\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {}; // Invalidate memoization as transaction shape may change between versions.\n\n anyContentUpgraderHasRun = true;\n\n // Add to-be-deleted tables to contentUpgrade transaction\n let upgradeSchema = shallowClone(newSchema);\n diff.del.forEach(table => {\n upgradeSchema[table] = oldSchema[table];\n });\n\n // Safe to affect Transaction.prototype globally in this moment,\n // because when this code runs, there may not be any other code\n // that can access any transaction instance, else than this particular\n // upgrader function.\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema), upgradeSchema);\n trans.schema = upgradeSchema;\n\n // Support for native async await.\n const contentUpgradeIsAsync = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync) {\n incrementExpectedAwaits();\n }\n \n let returnValue: any;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = contentUpgrade(trans);\n if (returnValue) {\n if (contentUpgradeIsAsync) {\n // contentUpgrade is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue && typeof returnValue.then === 'function' ?\n Promise.resolve(returnValue) : promiseFollowed.then(()=>returnValue));\n }\n });\n queue.push(idbtrans => {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) { // Dont delete old tables if ieBug is present and a content upgrader has run. Let tables be left in DB so far. This needs to be taken care of.\n const newSchema = version._cfg.dbschema;\n // Delete old tables\n deleteRemovedTables(newSchema, idbtrans);\n }\n // Restore the final API\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n\n // Now, create a queue execution engine\n function runQueue() {\n return queue.length ? Promise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n Promise.resolve();\n }\n\n return runQueue().then(() => {\n createMissingTables(globalSchema, idbUpgradeTrans); // At last, make sure to create any missing tables. (Needed by addons that add stores to DB without specifying version)\n });\n}\n\nexport interface SchemaDiff {\n del: string[],\n add: [string, TableSchema][];\n change: TableSchemaDiff[];\n}\n\nexport interface TableSchemaDiff {\n name: string,\n recreate: boolean,\n del: string[],\n add: IndexSpec[],\n change: IndexSpec[]\n}\n\nexport function getSchemaDiff(oldSchema: DbSchema, newSchema: DbSchema): SchemaDiff {\n const diff: SchemaDiff = {\n del: [], // Array of table names\n add: [], // Array of [tableName, newDefinition]\n change: [] // Array of {name: tableName, recreate: newDefinition, del: delIndexNames, add: newIndexDefs, change: changedIndexDefs}\n };\n let table: string;\n for (table in oldSchema) {\n if (!newSchema[table]) diff.del.push(table);\n }\n for (table in newSchema) {\n const oldDef = oldSchema[table],\n newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n } else {\n const change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if (\n (\n // compare keyPaths no matter if string or string[]\n // compare falsy keypaths same no matter if they are null or empty string.\n ''+(oldDef.primKey.keyPath||'')\n ) !== (\n ''+(newDef.primKey.keyPath||'')\n ) ||\n // Compare the autoIncrement flag also\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge)) // IE has bug reading autoIncrement prop.\n {\n // Primary key has changed. Remove and re-add table.\n change.recreate = true;\n diff.change.push(change);\n } else {\n // Same primary key. Just find out what differs:\n const oldIndexes = oldDef.idxByName;\n const newIndexes = newDef.idxByName;\n let idxName: string;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName]) change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n const oldIdx = oldIndexes[idxName],\n newIdx = newIndexes[idxName];\n if (!oldIdx) change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src) change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\n\nexport function createTable(\n idbtrans: IDBTransaction,\n tableName: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n) {\n const store = idbtrans.db.createObjectStore(\n tableName,\n primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto }\n );\n indexes.forEach(idx => addIndex(store, idx));\n return store;\n}\n\nexport function createMissingTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n keys(newSchema).forEach(tableName => {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\n\nexport function deleteRemovedTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(storeName =>\n newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName));\n}\n\nexport function addIndex(store: IDBObjectStore, idx: IndexSpec) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\n\nfunction buildGlobalSchema(\n db: Dexie,\n idbdb: IDBDatabase,\n tmpTrans: IDBTransaction\n) {\n const globalSchema = {};\n const dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(storeName => {\n const store = tmpTrans.objectStore(storeName);\n let keyPath = store.keyPath;\n const primKey = createIndexSpec(\n nameFromKeyPath(keyPath),\n keyPath || \"\",\n false,\n false,\n !!store.autoIncrement,\n keyPath && typeof keyPath !== \"string\",\n true\n );\n const indexes: IndexSpec[] = [];\n for (let j = 0; j < store.indexNames.length; ++j) {\n const idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(\n idbindex.name,\n keyPath,\n !!idbindex.unique,\n !!idbindex.multiEntry,\n false,\n keyPath && typeof keyPath !== \"string\",\n false\n );\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\n\nexport function readGlobalSchema({_novip: db}: Dexie, idbdb: IDBDatabase, tmpTrans: IDBTransaction) {\n db.verno = idbdb.version / 10;\n const globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\n\nexport function verifyInstalledSchema(db: Dexie, tmpTrans: IDBTransaction): boolean {\n const installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n const diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(ch => ch.add.length || ch.change.length));\n}\n\nexport function adjustToExistingIndexNames({_novip: db}: Dexie, schema: DbSchema, idbtrans: IDBTransaction) {\n // Issue #30 Problem with existing db - adjust to existing index names when migrating from non-dexie db\n const storeNames = idbtrans.db.objectStoreNames;\n\n for (let i = 0; i < storeNames.length; ++i) {\n const storeName = storeNames[i];\n const store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n\n for (let j = 0; j < store.indexNames.length; ++j) {\n const indexName = store.indexNames[j];\n const keyPath = store.index(indexName).keyPath;\n const dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n const indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n\n // Bug with getAll() on Safari ver<604 on Workers only, see discussion following PR #579\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n {\n db._hasGetAll = false;\n }\n}\n\nexport function parseIndexSyntax(primKeyAndIndexes: string): IndexSpec[] {\n return primKeyAndIndexes.split(',').map((index, indexNum) => {\n index = index.trim();\n const name = index.replace(/([&*]|\\+\\+)/g, \"\"); // Remove \"&\", \"++\" and \"*\"\n // Let keyPath of \"[a+b]\" be [\"a\",\"b\"]:\n const keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n\n return createIndexSpec(\n name,\n keyPath || null,\n /\\&/.test(index),\n /\\*/.test(index),\n /\\+\\+/.test(index),\n isArray(keyPath),\n indexNum === 0\n );\n });\n}\n","import { Version as IVersion } from '../../public/types/version';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { extend, keys } from '../../functions/utils';\nimport { Dexie } from '../dexie';\nimport { Transaction } from '../transaction';\nimport { removeTablesApi, setApiOnPlace, parseIndexSyntax } from './schema-helpers';\nimport { exceptions } from '../../errors';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\n\n/** class Version\n *\n * https://dexie.org/docs/Version/Version\n */\nexport class Version implements IVersion {\n db: Dexie;\n _cfg: {\n version: number,\n storesSource: { [tableName: string]: string | null },\n dbschema: DbSchema,\n tables: {},\n contentUpgrade: Function | null\n }\n\n _parseStoresSpec(stores: { [tableName: string]: string | null }, outSchema: DbSchema): any {\n keys(stores).forEach(tableName => {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi) throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(idx => {\n if (idx.auto) throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath) throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n }\n\n stores(stores: { [key: string]: string | null; }): IVersion {\n const db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n const versions = db._versions;\n\n // Derive stores from earlier versions if they are not explicitely specified as null or a new syntax.\n const storesSpec: { [key: string]: string; } = {};\n let dbschema = {};\n versions.forEach(version => { // 'versions' is always sorted by lowest version first.\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n // Update the latest schema to this version\n db._dbSchema = dbschema;\n // Update APIs\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n }\n\n upgrade(upgradeFunction: (trans: Transaction) => PromiseLike | void): Version {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Version } from './version';\n\nexport interface VersionConstructor {\n new(versionNumber: number): Version;\n prototype: Version;\n}\n\n/** Generates a Version constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createVersionConstructor(db: Dexie) {\n return makeClassConstructor(\n Version.prototype,\n\n function Version(this: Version, versionNumber: number) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n\n}\n","import { Dexie } from \"../classes/dexie/dexie\";\nimport { Table } from \"../public/types/table\";\nimport { DBNAMES_DB } from \"../globals/constants\";\nimport { DexieDOMDependencies } from \"../public/types/dexie-dom-dependencies\";\nimport { nop } from \"../functions/chaining-functions\";\n\ntype IDBKeyNamesVar = typeof IDBKeyRange;\n\nfunction getDbNamesTable(indexedDB: IDBFactory, IDBKeyRange: IDBKeyNamesVar) {\n let dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie(DBNAMES_DB, {\n addons: [],\n indexedDB,\n IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\") as Table<{ name: string }, string>;\n}\n\nfunction hasDatabasesNative(indexedDB: IDBFactory) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\n\nexport function getDatabaseNames({\n indexedDB,\n IDBKeyRange,\n}: DexieDOMDependencies) {\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then((infos) =>\n infos\n // Select name prop of infos:\n .map((info) => info.name)\n // Filter out DBNAMES_DB as previous Dexie or browser version would not have included it in the result.\n .filter((name) => name !== DBNAMES_DB)\n )\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\n\nexport function _onDatabaseCreated(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({name}).catch(nop);\n}\n\nexport function _onDatabaseDeleted(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n","import { newScope } from '../../helpers/promise';\nimport { PSD } from '../../helpers/promise';\n\nexport function vip (fn) {\n // To be used by subscribers to the on('ready') event.\n // This will let caller through to access DB even when it is blocked while the db.ready() subscribers are firing.\n // This would have worked automatically if we were certain that the Provider was using Dexie.Promise for all asyncronic operations. The promise PSD\n // from the provider.connect() call would then be derived all the way to when provider would call localDatabase.applyChanges(). But since\n // the provider more likely is using non-promise async APIs or other thenable implementations, we cannot assume that.\n // Note that this method is only useful for on('ready') subscribers that is returning a Promise from the event. If not using vip()\n // the database could deadlock since it wont open until the returned Promise is resolved, and any non-VIPed operation started by\n // the caller will not resolve until database is opened.\n return newScope(function () {\n PSD.letThrough = true; // Make sure we are let through if still blocking db due to onready is firing.\n return fn();\n });\n}\n\n","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import { Dexie } from './dexie';\nimport * as Debug from '../../helpers/debug';\nimport { rejection } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { eventRejectHandler, preventDefault } from '../../functions/event-wrappers';\nimport Promise, { wrap } from '../../helpers/promise';\nimport { connections } from '../../globals/constants';\nimport { runUpgraders, readGlobalSchema, adjustToExistingIndexNames, verifyInstalledSchema } from '../version/schema-helpers';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { _onDatabaseCreated } from '../../helpers/database-enumerator';\nimport { vip } from './vip';\nimport { promisableChain, nop } from '../../functions/chaining-functions';\nimport { generateMiddlewareStacks } from './generate-middleware-stacks';\nimport { slice } from '../../functions/utils';\nimport safari14Workaround from 'safari-14-idb-fix';\n\nexport function dexieOpen (db: Dexie) {\n const state = db._state;\n const {indexedDB} = db._deps;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(() => state.dbOpenError ?\n rejection (state.dbOpenError) :\n db);\n Debug.debug && (state.openCanceller._stackHolder = Debug.getErrorWithStack()); // Let stacks point to when open() was called rather than where new Dexie() was called.\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n const openCanceller = state.openCanceller;\n\n function throwIfCancelled() {\n // If state.openCanceller object reference is replaced, it means db.close() has been called,\n // meaning this open flow should be cancelled.\n if (state.openCanceller !== openCanceller) throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n \n // Function pointers to call when the core opening process completes.\n let resolveDbReady = state.dbReadyResolve,\n // upgradeTransaction to abort on failure.\n upgradeTransaction: (IDBTransaction | null) = null,\n wasCreated = false;\n\n const tryOpenDB = () => new Promise((resolve, reject) => {\n // Multiply db.verno with 10 will be needed to workaround upgrading bug in IE:\n // IE fails when deleting objectStore after reading from it.\n // A future version of Dexie.js will stopover an intermediate version to workaround this.\n // At that point, we want to be backward compatible. Could have been multiplied with 2, but by using 10, it is easier to map the number to the real version number.\n \n throwIfCancelled();\n // If no API, throw!\n if (!indexedDB) throw new exceptions.MissingAPI();\n const dbName = db.name;\n \n const req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req) throw new exceptions.MissingAPI(); // May happen in Safari private mode, see https://github.com/dfahlander/Dexie.js/issues/134\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap (e => {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) { // Unless an addon has specified db._allowEmptyDB, lets make the call fail.\n // Caller did not specify a version or schema. Doing that is only acceptable for opening alread existing databases.\n // If onupgradeneeded is called it means database did not exist. Reject the open() promise and make sure that we\n // do not create a new database by accident here.\n req.onerror = preventDefault; // Prohibit onabort error from firing before we're done!\n upgradeTransaction.abort(); // Abort transaction (would hope that this would make DB disappear but it doesnt.)\n // Close database and delete it.\n req.result.close();\n const delreq = indexedDB.deleteDatabase(dbName); // The upgrade transaction is atomic, and javascript is single threaded - meaning that there is no risk that we delete someone elses database here!\n delreq.onsuccess = delreq.onerror = wrap(() => {\n reject (new exceptions.NoSuchDatabase(`Database ${dbName} doesnt exist`));\n });\n } else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion; // Safari 8 fix.\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;// db._novip is because db can be an Object.create(origDb).\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n \n req.onsuccess = wrap (() => {\n // Core opening procedure complete. Now let's just record some stuff.\n upgradeTransaction = null;\n const idbdb = db._novip.idbdb = req.result; // db._novip is because db can be an Object.create(origDb).\n\n const objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0) try {\n const tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema) readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`);\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n } catch (e) {\n // Safari 8 may bail out if > 1 store names. However, this shouldnt be a showstopper. Issue #120.\n // BUGBUG: It will bail out anyway as of Dexie 3.\n // Should we support Safari 8 anymore? Believe all\n // Dexie users use the shim for that platform anyway?!\n // If removing Safari 8 support, go ahead and remove the safariMultiStoreFix() function\n // as well as absurd upgrade version quirk for Safari.\n }\n \n connections.push(db); // Used for emulating versionchange event on IE/Edge/Safari.\n \n idbdb.onversionchange = wrap(ev => {\n state.vcFired = true; // detect implementations that not support versionchange (IE/Edge/Safari)\n db.on(\"versionchange\").fire(ev);\n });\n \n idbdb.onclose = wrap(ev => {\n db.on(\"close\").fire(ev);\n });\n\n if (wasCreated) _onDatabaseCreated(db._deps, dbName);\n\n resolve();\n\n }, reject);\n }).catch(err => {\n if (err && err.name === 'UnknownError' && state.PR1398_maxLoop > 0) {\n // Bug in Chrome after clearing site data\n // https://github.com/dexie/Dexie.js/issues/543#issuecomment-1795736695\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n } else {\n return Promise.reject(err);\n }\n });\n \n // safari14Workaround = Workaround by jakearchibald for new nasty bug in safari 14.\n return Promise.race([\n openCanceller,\n (typeof navigator === 'undefined' ? Promise.resolve() : safari14Workaround()).then(tryOpenDB)\n ]).then(() => {\n // Before finally resolving the dbReadyPromise and this promise,\n // call and await all on('ready') subscribers:\n // Dexie.vip() makes subscribers able to use the database while being opened.\n // This is a must since these subscribers take part of the opening procedure.\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>db.on.ready.fire(db.vip))).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n // In case additional subscribers to db.on('ready') were added during the time db.on.ready.fire was executed.\n let remainders = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>remainders(db.vip))).then(fireRemainders)\n }\n });\n }).finally(()=>{\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(()=>{\n // Resolve the db.open() with the db instance.\n return db;\n }).catch(err => {\n state.dbOpenError = err; // Record the error. It will be used to reject further promises of db operations.\n try {\n // Did we fail within onupgradeneeded? Make sure to abort the upgrade transaction so it doesnt commit.\n upgradeTransaction && upgradeTransaction.abort();\n } catch { }\n if (openCanceller === state.openCanceller) {\n // Still in the same open flow - The error reason was not due to external call to db.close().\n // Make sure to call db.close() to finalize resources.\n db._close(); // Closes and resets idbdb, removes connections, resets dbReadyPromise and openCanceller so that a later db.open() is fresh.\n }\n return rejection (err);\n }).finally(()=>{\n state.openComplete = true;\n resolveDbReady(); // dbReadyPromise is resolved no matter if open() rejects or resolved. It's just to wake up waiters.\n });\n}\n","import { isArray } from '../functions/utils';\n\nexport function awaitIterator (iterator: Iterator) {\n var callNext = result => iterator.next(result),\n doThrow = error => iterator.throw(error),\n onSuccess = step(callNext),\n onError = step(doThrow);\n\n function step(getNext: (any)=>any) {\n return (val?) => {\n var next = getNext(val),\n value = next.value;\n\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n\n return step(callNext)();\n}\n","import { TransactionMode } from '../../public/types/transaction-mode';\nimport { errnames, exceptions } from '../../errors';\nimport { flatten, isAsyncFunction } from '../../functions/utils';\nimport { Dexie } from './dexie';\nimport { Transaction } from '../transaction';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise, {\n PSD,\n NativePromise,\n decrementExpectedAwaits,\n rejection,\n incrementExpectedAwaits\n} from '../../helpers/promise';\n\nexport function extractTransactionArgs(mode: TransactionMode, _tableArgs_, scopeFunc) {\n // Let table arguments be all arguments between mode and last argument.\n var i = arguments.length;\n if (i < 2) throw new exceptions.InvalidArgument(\"Too few arguments\");\n // Prevent optimzation killer (https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments)\n // and clone arguments except the first one into local var 'args'.\n var args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n // Let scopeFunc be the last argument and pop it so that args now only contain the table arguments.\n scopeFunc = args.pop();\n var tables = flatten(args); // Support using array as middle argument, or a mix of arrays and non-arrays.\n return [mode, tables, scopeFunc];\n}\n\nexport function enterTransactionScope(\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n parentTransaction: Transaction | undefined,\n scopeFunc: ()=>PromiseLike | any\n) {\n return Promise.resolve().then(() => {\n // Keep a pointer to last non-transactional PSD to use if someone calls Dexie.ignoreTransaction().\n const transless = PSD.transless || PSD;\n // Our transaction.\n //return new Promise((resolve, reject) => {\n const trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n // Let the transaction instance be part of a Promise-specific data (PSD) value.\n const zoneProps = {\n trans: trans,\n transless: transless\n };\n\n if (parentTransaction) {\n // Emulate transaction commit awareness for inner transaction (must 'commit' when the inner transaction has no more operations ongoing)\n trans.idbtrans = parentTransaction.idbtrans;\n } else {\n try {\n trans.create(); // Create the native transaction so that complete() or error() will trigger even if no operation is made upon it.\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(() => enterTransactionScope(\n db,\n mode,\n storeNames,\n null,\n scopeFunc\n ));\n }\n return rejection(ex);\n }\n }\n\n // Support for native async await.\n const scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n\n let returnValue;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n // scopeFunc is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n } else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n // scopeFunc returned an iterator with throw-support. Handle yield as await.\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n // Promise returned. User uses promise-style transactions.\n Promise.resolve(returnValue).then(x => trans.active ?\n x // Transaction still active. Continue.\n : rejection(new exceptions.PrematureCommit(\n \"Transaction committed too early. See http://bit.ly/2kdckMn\")))\n // No promise returned. Wait for all outstanding promises before continuing. \n : promiseFollowed.then(() => returnValue)\n ).then(x => {\n // sub transactions don't react to idbtrans.oncomplete. We must trigger a completion:\n if (parentTransaction) trans._resolve();\n // wait for trans._completion\n // (if root transaction, this means 'complete' event. If sub-transaction, we've just fired it ourselves)\n return trans._completion.then(() => x);\n }).catch(e => {\n trans._reject(e); // Yes, above then-handler were maybe not called because of an unhandled rejection in scopeFunc!\n return rejection(e);\n });\n });\n}\n","import {\n DBCore,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryRequest,\n DBCoreRangeType,\n DBCoreOpenCursorRequest,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreTable,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { getKeyExtractor } from './get-key-extractor';\nimport { getKeyPathAlias } from './dbcore-indexeddb';\nimport { Middleware } from '../public/types/middleware';\n\ninterface VirtualIndex extends DBCoreIndex {\n /** True if this index is virtual, i.e. represents a compound index internally,\n * but makes it act as as having a subset of its keyPaths.\n */\n isVirtual: boolean;\n\n /** Number of keypaths that this index comprises. Can be 0..N.\n * Note: This is the length of the *virtual index*, not the real index.\n */\n keyLength: number;\n\n /** Number of popped keypaths from the real index.\n */\n keyTail: number;\n}\n\n// Move into some util:\nexport function pad (a: any | any[], value: any, count: number) {\n const result = isArray(a) ? a.slice() : [a];\n for (let i=0; i 0;\n const virtualIndex = {\n ...lowLevelIndex,\n isVirtual,\n keyTail,\n keyLength,\n extractKey: getKeyExtractor(keyPath),\n unique: !isVirtual && lowLevelIndex.unique\n };\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n const virtualKeyPath = keyLength === 2 ?\n keyPath[0] : // This is a compound [a, b]. Add a virtual normal index a.\n keyPath.slice(0, keyLength - 1); // This is compound [a,b,c]. Add virtual compound [a,b].\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort((a,b) => a.keyTail - b.keyTail); // Shortest keyTail is the best one (represents real index)\n return virtualIndex;\n }\n \n const primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (const index of schema.indexes) {\n addVirtualIndexes(index.keyPath, 0, index);\n }\n \n function findBestIndex(keyPath: null | string | string[]): VirtualIndex {\n const result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n \n function translateRange (range: DBCoreKeyRange, keyTail: number): DBCoreKeyRange {\n return {\n type: range.type === DBCoreRangeType.Equal ?\n DBCoreRangeType.Range :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true, // doesn't matter true or false\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true // doesn't matter true or false\n };\n }\n \n function translateRequest (req: DBCoreQueryRequest): DBCoreQueryRequest;\n function translateRequest (req: DBCoreOpenCursorRequest): DBCoreOpenCursorRequest;\n function translateRequest (req: DBCoreCountRequest): DBCoreCountRequest {\n const index = req.query.index as VirtualIndex;\n return index.isVirtual ? {\n ...req,\n query: {\n index,\n range: translateRange(req.query.range, index.keyTail)\n }\n } : req;\n }\n \n const result: DBCoreTable = {\n ...table,\n schema: {\n ...schema,\n primaryKey,\n indexes: allVirtualIndexes,\n getIndexByKeyPath: findBestIndex\n },\n\n count(req) {\n return table.count(translateRequest(req));\n }, \n \n query(req) {\n return table.query(translateRequest(req));\n },\n \n openCursor(req) {\n const {keyTail, isVirtual, keyLength} = (req.query.index as VirtualIndex);\n if (!isVirtual) return table.openCursor(req);\n \n function createVirtualCursor(cursor: DBCoreCursor) : DBCoreCursor {\n function _continue (key?: any) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(\n cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)\n ) :\n cursor.continue()\n }\n const virtualCursor = Object.create(cursor, {\n continue: {value: _continue},\n continuePrimaryKey: {\n value(key: any, primaryKey: any) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get() {\n return cursor.primaryKey;\n }\n },\n key: {\n get() {\n const key = cursor.key as any[]; // A virtual cursor always operates on compound key\n return keyLength === 1 ?\n key[0] : // Cursor.key should not be an array.\n key.slice(0, keyLength); // Cursor.key should be first part of array.\n }\n },\n value: {\n get() {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n \n return table.openCursor(translateRequest(req))\n .then(cursor => cursor && createVirtualCursor(cursor));\n }\n };\n return result;\n }\n }\n}\n\nexport const virtualIndexMiddleware : Middleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\n","import { keys, hasOwn, toStringTag } from './utils';\n\nexport function getObjectDiff(a: any, b: any, rv?: any, prfx?: string) {\n // Compares objects a and b and produces a diff object.\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach((prop) => {\n if (!hasOwn(b, prop)) {\n // Property removed\n rv[prfx + prop] = undefined;\n } else {\n var ap = a[prop],\n bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n const apTypeName = toStringTag(ap);\n const bpTypeName = toStringTag(bp);\n\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop]; // Property changed to other type\n } else if (apTypeName === 'Object') {\n // Pojo objects (not Date, ArrayBuffer, Array etc). Go deep.\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n } else if (ap !== bp) {\n // Values differ.\n // Could have checked if Date, arrays or binary types have same\n // content here but I think that would be a suboptimation.\n // Prefer simplicity.\n rv[prfx + prop] = b[prop];\n }\n } else if (ap !== bp) rv[prfx + prop] = b[prop]; // Primitive value changed\n }\n });\n keys(b).forEach((prop) => {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop]; // Property added\n }\n });\n return rv;\n}\n","import {\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreIndex,\n DBCoreTable,\n} from \"../public/types/dbcore\";\n\nexport function getEffectiveKeys (\n primaryKey: DBCoreIndex,\n req: (Pick & {keys?: any[]}) | Pick)\n{\n //const {outbound} = primaryKey;\n if (req.type === 'delete') return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey)\n}\n","import {\n DBCore,\n DBCoreTable,\n DBCoreMutateResponse,\n DBCoreDeleteRangeRequest,\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreTransaction,\n DBCoreKeyRange\n} from \"../public/types/dbcore\";\nimport { nop } from '../functions/chaining-functions';\nimport { hasOwn, setByKeyPath } from '../functions/utils';\nimport { getObjectDiff } from \"../functions/get-object-diff\";\nimport { PSD } from '../helpers/promise';\n//import { LockableTableMiddleware } from '../dbcore/lockable-table-middleware';\nimport { getEffectiveKeys } from '../dbcore/get-effective-keys';\nimport { Middleware } from '../public/types/middleware';\nimport { Transaction } from '../classes/transaction';\n\nexport const hooksMiddleware: Middleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: (downCore: DBCore) => ({\n ...downCore,\n table(tableName: string) {\n const downTable = downCore.table(tableName);\n const {primaryKey} = downTable.schema;\n \n const tableMiddleware: DBCoreTable = {\n ...downTable,\n mutate(req):Promise {\n const dxTrans = PSD.trans as Transaction;\n // Hooks can be transaction-bound. Need to grab them from transaction.table and not\n // db.table!\n const {deleting, creating, updating} = dxTrans.table(tableName).hook;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'delete':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'deleteRange':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>deleteRange(req), true);\n }\n // Any of the breaks above happened (no hooks) - do the default:\n return downTable.mutate(req);\n\n\n function addPutOrDelete(req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest): Promise {\n const dxTrans = PSD.trans;\n const keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys) throw new Error(\"Keys missing\");\n // Clone Request and set keys arg\n req = req.type === 'add' || req.type === 'put' ?\n {...req, keys} :\n {...req};\n if (req.type !== 'delete') req.values = [...req.values];\n if (req.keys) req.keys = [...req.keys];\n \n return getExistingValues(downTable, req, keys).then (existingValues => {\n const contexts = keys.map((key, i) => {\n const existingValue = existingValues[i];\n const ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n // delete operation\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n } else if (req.type === 'add' || existingValue === undefined) {\n // The add() or put() resulted in a create\n const generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n } else {\n // The put() operation resulted in an update\n const objectDiff = getObjectDiff(existingValue, req.values[i]);\n const additionalChanges = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges) {\n const requestedValue = req.values[i];\n Object.keys(additionalChanges).forEach(keyPath => {\n if (hasOwn(requestedValue, keyPath)) {\n // keyPath is already present as a literal property of the object\n requestedValue[keyPath] = additionalChanges[keyPath];\n } else {\n // keyPath represents a new or existing path into the object\n setByKeyPath(requestedValue, keyPath, additionalChanges[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(({failures, results, numFailures, lastResult}) => {\n for (let i=0; i {\n contexts.forEach(ctx => ctx.onerror && ctx.onerror(error));\n return Promise.reject(error);\n });\n });\n }\n \n function deleteRange(req: DBCoreDeleteRangeRequest): Promise {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n \n function deleteNextChunk(trans: DBCoreTransaction, range: DBCoreKeyRange, limit: number) {\n // Query what keys in the DB within the given range\n return downTable.query({trans, values: false, query: {index: primaryKey, range}, limit})\n .then(({result}) => {\n // Given a set of keys, bulk delete those using the same procedure as in addPutOrDelete().\n // This will make sure that deleting hook is called.\n return addPutOrDelete({type: 'delete', keys: result, trans}).then(res => {\n if (res.numFailures > 0) return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return {failures: [], numFailures: 0, lastResult: undefined} as DBCoreMutateResponse;\n } else {\n return deleteNextChunk(trans, {...range, lower: result[result.length - 1], lowerOpen: true}, limit);\n }\n });\n })\n }\n }\n };\n //const {lock, lockableMiddleware} = LockableTableMiddleware(tableMiddleware);\n\n return tableMiddleware;\n },\n }) as DBCore\n};\n\nfunction getExistingValues(\n table: DBCoreTable,\n req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest,\n effectiveKeys: any[]\n) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n","import { deepClone } from \"../functions/utils\";\nimport { DBCore } from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\nimport Promise from \"../helpers/promise\";\nimport { cmp } from '../functions/cmp';\n\nexport function getFromTransactionCache(\n keys: any[],\n cache: { keys: any[]; values: any[] } | undefined | null,\n clone?: boolean\n) {\n try {\n if (!cache) return null;\n if (cache.keys.length < keys.length) return null;\n const result: any[] = [];\n // Compare if the exact same order of keys was retrieved in same transaction:\n // Allow some cached keys to be omitted from provided set of keys\n // Use case: 1. getMany(keys) 2. update a subset of those 3. call put with the updated ones ==> middlewares should be able to find old values\n for (let i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0) continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n // If got all keys caller was looking for, return result.\n return result.length === keys.length ? result : null;\n } catch {\n return null;\n }\n}\n\nexport const cacheExistingValuesMiddleware: Middleware = {\n stack: \"dbcore\",\n level: -1,\n create: (core) => {\n return {\n table: (tableName) => {\n const table = core.table(tableName);\n return {\n ...table,\n getMany: (req) => {\n if (!req.cache) {\n return table.getMany(req);\n }\n const cachedResult = getFromTransactionCache(\n req.keys,\n req.trans[\"_cache\"],\n req.cache === \"clone\"\n );\n if (cachedResult) {\n return Promise.resolve(cachedResult);\n }\n return table.getMany(req).then((res) => {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n },\n mutate: (req) => {\n // Invalidate cache on any mutate except \"add\" which can't change existing values:\n if (req.type !== \"add\") req.trans[\"_cache\"] = null;\n return table.mutate(req);\n },\n };\n },\n };\n },\n};\n","import { cmp } from \"../functions/cmp\";\nimport { extend, iteratorSymbol, props } from '../functions/utils';\nimport { IndexableType } from '../public';\nimport {\n EmptyRange,\n IntervalTree,\n IntervalTreeNode,\n RangeSetConstructor,\n RangeSetPrototype,\n} from \"../public/types/rangeset\";\n\n/* An interval tree implementation to efficiently detect overlapping ranges of queried indexes.\n *\n * https://en.wikipedia.org/wiki/Interval_tree\n * \n */\n\nfunction isEmptyRange(node: IntervalTree | {from: IndexableType, to: IndexableType}): node is EmptyRange {\n return !(\"from\" in node);\n}\n\nexport type RangeSet = RangeSetPrototype & IntervalTree;\n\nexport const RangeSet = function(fromOrTree: any, to?: any) {\n if (this) {\n // Called with new()\n extend(this, arguments.length ? {d:1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree} : {d:0});\n } else {\n // Called without new()\n const rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n} as RangeSetConstructor;\n\nprops(RangeSet.prototype, {\n add(rangeSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey(key: IndexableType) {\n addRange(this, key, key);\n return this;\n },\n addKeys(keys: IndexableType[]) {\n keys.forEach(key => addRange(this, key, key));\n return this;\n },\n\n [iteratorSymbol](): Iterator {\n return getRangeSetIterator(this);\n }\n});\n\nfunction addRange(target: IntervalTree, from: IndexableType, to: IndexableType) {\n const diff = cmp(from, to);\n // cmp() returns NaN if one of the args are IDB-invalid keys.\n // Avoid storing invalid keys in rangeset:\n if (isNaN(diff)) return;\n\n // Caller is trying to add a range where from is greater than to:\n if (diff > 0) throw RangeError();\n \n if (isEmptyRange(target)) return extend(target, { from, to, d: 1 });\n const left = target.l;\n const right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n // Now we have some kind of overlap. We will be able to merge the new range into the node or let it be swallowed.\n\n // Grow left?\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null; // Cut off for now. Re-add later.\n target.d = right ? right.d + 1 : 1;\n }\n // Grow right?\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null; // Cut off for now. Re-add later.\n target.d = target.l ? target.l.d + 1 : 1;\n }\n const rightWasCutOff = !target.r;\n // Re-add left?\n if (left && !target.l) {\n //Ranges to the left may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, left);\n }\n // Re-add right?\n if (right && rightWasCutOff) {\n //Ranges to the right may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, right);\n }\n}\n\nexport function mergeRanges(target: IntervalTree, newSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n function _addRangeSet(\n target: IntervalTree,\n { from, to, l, r }: IntervalTreeNode | {from: IndexableType, to: IndexableType, l?: undefined, r?: undefined}\n ) {\n addRange(target, from, to);\n if (l) _addRangeSet(target, l);\n if (r) _addRangeSet(target, r);\n }\n\n if(!isEmptyRange(newSet)) _addRangeSet(target, newSet);\n}\n\nexport function rangesOverlap(\n rangeSet1: IntervalTree,\n rangeSet2: IntervalTree\n): boolean {\n // Start iterating other from scratch.\n const i1 = getRangeSetIterator(rangeSet2);\n let nextResult1 = i1.next();\n if (nextResult1.done) return false;\n let a = nextResult1.value;\n\n // Start iterating this from start of other\n const i2 = getRangeSetIterator(rangeSet1);\n let nextResult2 = i2.next(a.from); // Start from beginning of other range\n let b = nextResult2.value;\n\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b!.from, a.to) <= 0 && cmp(b!.to, a.from) >= 0) return true;\n cmp(a.from, b!.from) < 0\n ? (a = (nextResult1 = i1.next(b!.from)).value!) // a is behind. forward it to beginning of next b-range\n : (b = (nextResult2 = i2.next(a.from)).value); // b is behind. forward it to beginning of next a-range\n }\n return false;\n}\n\ntype RangeSetIteratorState =\n | {\n up?: RangeSetIteratorState;\n n: IntervalTreeNode;\n s: 0 | 1 | 2 | 3;\n }\n | undefined\n | null;\nexport function getRangeSetIterator(\n node: EmptyRange | IntervalTreeNode\n): Generator {\n let state: RangeSetIteratorState = isEmptyRange(node) ? null : { s: 0, n: node };\n\n return {\n next(key?) {\n const keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n // Initial state for node.\n // Fast forward to leftmost node.\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n } else {\n while (state.n.l) state = { up: state, n: state.n.l, s: 1 };\n }\n // intentionally fall into case 1:\n case 1:\n // We're on a node where it's left part is already handled or does not exist.\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n // We've emitted our node and should continue with the right part or let parent take over from it's state 1\n if (state.n.r) {\n state.s = 3; // So when child is done, we know we're done.\n state = { up: state, n: state.n.r, s: 0 };\n continue; // Will fall in to case 0 with fast forward to left leaf of this subtree.\n }\n // intentionally fall into case 3:\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n } as Generator;\n}\n\nfunction rebalance(target: IntervalTreeNode) {\n const diff = (target.r?.d || 0) - (target.l?.d || 0);\n const r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n\n // Rotate (https://en.wikipedia.org/wiki/Tree_rotation)\n //\n // \n // [OLDROOT]\n // [OLDROOT.L] [NEWROOT]\n // [NEWROOT.L] [NEWROOT.R]\n //\n // Is going to become:\n //\n // \n // [NEWROOT]\n // [OLDROOT] [NEWROOT.R]\n // [OLDROOT.L] [NEWROOT.L] \n\n // * clone now has the props of OLDROOT\n // Plan:\n // * target must be given the props of NEWROOT\n // * target[l] must point to a new OLDROOT\n // * target[r] must point to NEWROOT.R\n // * OLDROOT[r] must point to NEWROOT.L\n const l = r === \"r\" ? \"l\" : \"r\"; // Support both left/right rotation\n const rootClone = { ...target };\n // We're gonna copy props from target's right node into target so that target will\n // have same range as old target[r] (instead of changing pointers, we copy values.\n // that way we do not need to adjust pointers in parents).\n const oldRootRight = target[r]; \n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\n\nfunction computeDepth({ r, l }: Pick) {\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n","import { getFromTransactionCache } from \"../dbcore/cache-existing-values-middleware\";\nimport { cmp } from \"../functions/cmp\";\nimport { isArray, keys } from \"../functions/utils\";\nimport { PSD } from \"../helpers/promise\";\nimport { RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport {\n DBCore,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreGetManyRequest,\n DBCoreGetRequest,\n DBCoreIndex,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreQueryResponse,\n DBCoreTable,\n DBCoreTableSchema,\n DBCoreTransaction,\n} from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\n\nexport const observabilityMiddleware: Middleware = {\n stack: \"dbcore\",\n level: 0,\n create: (core) => {\n const dbName = core.schema.name;\n const FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n\n return {\n ...core,\n table: (tableName) => {\n const table = core.table(tableName);\n const { schema } = table;\n const { primaryKey } = schema;\n const { extractKey, outbound } = primaryKey;\n const tableClone: DBCoreTable = {\n ...table,\n mutate: (req) => {\n const trans = req.trans as DBCoreTransaction & {\n mutatedParts?: ObservabilitySet;\n };\n const mutatedParts =\n trans.mutatedParts || (trans.mutatedParts = {});\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n\n const { type } = req;\n let [keys, newObjs] =\n req.type === \"deleteRange\"\n ? [req.range] // keys will be an DBCoreKeyRange object - transformed later on to a [from,to]-style range.\n : req.type === \"delete\"\n ? [req.keys] // keys known already here. newObjs will be undefined.\n : req.values.length < 50\n ? [[], req.values] // keys = empty array - will be resolved in mutate().then(...).\n : []; // keys and newObjs will both be undefined - changeSpec will become true (changed for entire table)\n const oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then((res) => {\n // Add the mutated table and optionally keys to the mutatedTables set on the transaction.\n // Used by subscribers to txcommit event and for Collection.prototype.subscribe().\n if (isArray(keys)) {\n // keys is an array - delete, add or put of less than 50 rows.\n if (type !== \"delete\") keys = res.results;\n // individual keys (add put or delete)\n pkRangeSet.addKeys(keys);\n // Only get oldObjs if they have been cached recently\n // (This applies to Collection.modify() only, but also if updating/deleting hooks have subscribers)\n const oldObjs = getFromTransactionCache(keys, oldCache);\n\n // Supply detailed values per index for both old and new objects:\n if (!oldObjs && type !== \"add\") {\n // delete or put and we don't know old values.\n // Indicate this in the \":dels\" part, for the sake of count() queries only!\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n // No matter if knowning oldObjs or not, track the indices if it's a put, add or delete.\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n } else if (keys) {\n // As we can't know deleted index ranges, mark index-based subscriptions must trigger.\n const range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n // deleteRange. keys is a DBCoreKeyRange objects. Transform it to [from,to]-style range.\n pkRangeSet.add(range);\n } else {\n // Too many requests to record the details without slowing down write performance.\n // Let's just record a generic large range on primary key, the virtual :dels index and\n // all secondary indices:\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(idx => getRangeSet(idx.name).add(FULL_RANGE));\n }\n return res;\n });\n },\n };\n\n const getRange: (req: any) => [DBCoreIndex, RangeSet] = ({\n query: { index, range },\n }:\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest) => [\n index,\n new RangeSet(range.lower ?? core.MIN_KEY, range.upper ?? core.MAX_KEY),\n ];\n\n const readSubscribers: {[method in\n Exclude]: \n (req: any) => [DBCoreIndex, RangeSet]\n } = {\n get: (req) => [primaryKey, new RangeSet(req.key)],\n getMany: (req) => [primaryKey, new RangeSet().addKeys(req.keys)],\n count: getRange,\n query: getRange,\n openCursor: getRange,\n }\n\n keys(readSubscribers).forEach(method => {\n tableClone[method] = function (\n req:\n | DBCoreGetRequest\n | DBCoreGetManyRequest\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest\n ) {\n const { subscr } = PSD;\n if (subscr) {\n // Current zone want's to track all queries so they can be subscribed to.\n // (The query is executed within a \"liveQuery\" zone)\n // Check whether the query applies to a certain set of ranges:\n // Track what we should be observing:\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (subscr[part] ||\n (subscr[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n const [queriedIndex, queriedRanges] = readSubscribers[method](req);\n // A generic rule here: queried ranges should always be subscribed to.\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n // Only count(), query() and openCursor() operates on secondary indices.\n // Since put(), delete() and deleteRange() mutations may happen without knowing oldObjs,\n // the mutate() method will be missing what secondary indices that are being deleted from\n // the subscribed range. We are working around this issue by recording all the resulting\n // primary keys from the queries. This only works for those kinds of queries where we can\n // derive the primary key from the result.\n // In this block we are accomplishing this using various strategies depending on the properties\n // of the query result.\n\n if (method === \"count\") {\n // We've got a problem! Delete and put mutations happen without known the oldObjs.\n // Those mutation could change the count.\n // Solution: Dedicated \":dels\" url represends a subscription to all mutations without oldObjs\n // (specially triggered in the mutators put(), delete() and deleteRange() when they don't know oldObject)\n delsRangeSet.add(FULL_RANGE);\n } else {\n // openCursor() or query()\n\n // Prepare a keysPromise in case the we're doing an IDBIndex.getAll() on a store with outbound keys.\n const keysPromise =\n method === \"query\" &&\n outbound &&\n (req as DBCoreQueryRequest).values &&\n table.query({\n ...(req as DBCoreQueryRequest),\n values: false,\n });\n\n return table[method].apply(this, arguments).then((res) => {\n if (method === \"query\") {\n if (outbound && (req as DBCoreQueryRequest).values) {\n // If keys are outbound, we can't use extractKey to map what keys to observe.\n // We've queried an index (like 'dateTime') on an outbound table\n // and retrieve a list of objects\n // from who we cannot know their primary keys.\n // \"Luckily\" though, we've prepared the keysPromise to assist us in exact this condition.\n return keysPromise.then(\n ({ result: resultingKeys }: DBCoreQueryResponse) => {\n pkRangeSet.addKeys(resultingKeys);\n return res;\n }\n );\n }\n // query() inbound values, keys or outbound keys. Secondary indexes only since\n // for primary keys we would only add results within the already registered range.\n const pKeys = (req as DBCoreQueryRequest).values\n ? (res as DBCoreQueryResponse).result.map(extractKey)\n : (res as DBCoreQueryResponse).result;\n if ((req as DBCoreQueryRequest).values) {\n // Subscribe to any mutation made on the returned keys,\n // so that we detect both deletions and updated properties.\n pkRangeSet.addKeys(pKeys);\n } else {\n // Subscribe only to mutations on the returned keys\n // in case the mutator was unable to know oldObjs.\n // If it has oldObj, the mutator won't put anything in \":dels\" because\n // it can more fine-grained put the exact removed and added index value in the correct\n // index range that we subscribe to in the queried range sets.\n // We don't load values so a change on a property outside our index will not\n // require us to re-execute the query.\n delsRangeSet.addKeys(pKeys);\n }\n } else if (method === \"openCursor\") {\n // Caller requests a cursor.\n // For the same reason as when method===\"query\", we only need to observe\n // those keys whose values are possibly used or rendered - which could\n // only happen on keys where they get the cursor's key, primaryKey or value.\n const cursor: DBCoreCursor | null = res;\n const wantValues = (req as DBCoreOpenCursorRequest).values;\n return (\n cursor &&\n Object.create(cursor, {\n key: {\n get() {\n delsRangeSet.addKey(cursor.primaryKey);\n return cursor.key;\n },\n },\n primaryKey: {\n get() {\n const pkey = cursor.primaryKey;\n delsRangeSet.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get() {\n wantValues && pkRangeSet.addKey(cursor.primaryKey);\n return cursor.value;\n },\n },\n })\n );\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n },\n };\n },\n};\n\nfunction trackAffectedIndexes(\n getRangeSet: (index: string) => RangeSet,\n schema: DBCoreTableSchema,\n oldObjs: any[] | undefined,\n newObjs: any[] | undefined\n) {\n function addAffectedIndex(ix: DBCoreIndex) {\n const rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj: any) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n const addKeyOrKeys = (key: any) => ix.multiEntry && isArray(key)\n // multiEntry and the old property was an array - add each array entry to the rangeSet:\n ? key.forEach(key => rangeSet.addKey(key))\n // Not multiEntry or the old property was not an array - add each array entry to the rangeSet:\n : rangeSet.addKey(key);\n\n (oldObjs || newObjs).forEach((_, i) => {\n const oldKey = oldObjs && extractKey(oldObjs[i]);\n const newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n // The index has changed. Add both old and new value of the index.\n if (oldKey != null) addKeyOrKeys(oldKey); // If oldKey is invalid key, addKey() will be a noop.\n if (newKey != null) addKeyOrKeys(newKey); // If newKey is invalid key, addKey() will be a noop.\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n","// Import types from the public API\nimport { Dexie as IDexie } from \"../../public/types/dexie\";\nimport { DexieOptions, DexieConstructor } from \"../../public/types/dexie-constructor\";\nimport { DbEvents } from \"../../public/types/db-events\";\n//import { PromiseExtended, PromiseExtendedConstructor } from '../../public/types/promise-extended';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from \"../../public/types/table-schema\";\nimport { DbSchema } from '../../public/types/db-schema';\n\n// Internal imports\nimport { Table, TableConstructor, createTableConstructor } from \"../table\";\nimport { Collection, CollectionConstructor, createCollectionConstructor } from '../collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { WhereClauseConstructor, createWhereClauseConstructor } from '../where-clause/where-clause-constructor';\nimport { Transaction } from '../transaction';\nimport { TransactionConstructor, createTransactionConstructor } from '../transaction/transaction-constructor';\nimport { Version } from \"../version/version\";\nimport { VersionConstructor, createVersionConstructor } from '../version/version-constructor';\n\n// Other imports...\nimport { DexieEventSet } from '../../public/types/dexie-event-set';\nimport { DexieExceptionClasses } from '../../public/types/errors';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\nimport Promise, { PSD } from '../../helpers/promise';\nimport { extend, override, keys, hasOwn } from '../../functions/utils';\nimport Events from '../../helpers/Events';\nimport { maxString, connections, READONLY, READWRITE } from '../../globals/constants';\nimport { getMaxKey } from '../../functions/quirks';\nimport { exceptions } from '../../errors';\nimport { lowerVersionFirst } from '../version/schema-helpers';\nimport { dexieOpen } from './dexie-open';\nimport { wrap } from '../../helpers/promise';\nimport { _onDatabaseDeleted } from '../../helpers/database-enumerator';\nimport { eventRejectHandler } from '../../functions/event-wrappers';\nimport { extractTransactionArgs, enterTransactionScope } from './transaction-helpers';\nimport { TransactionMode } from '../../public/types/transaction-mode';\nimport { rejection } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { DBCore } from '../../public/types/dbcore';\nimport { Middleware, DexieStacks } from '../../public/types/middleware';\nimport { virtualIndexMiddleware } from '../../dbcore/virtual-index-middleware';\nimport { hooksMiddleware } from '../../hooks/hooks-middleware';\nimport { IndexableType } from '../../public';\nimport { observabilityMiddleware } from '../../live-query/observability-middleware';\nimport { cacheExistingValuesMiddleware } from '../../dbcore/cache-existing-values-middleware';\n\nexport interface DbReadyState {\n dbOpenError: any;\n isBeingOpened: boolean;\n onReadyBeingFired: undefined | Function[];\n openComplete: boolean;\n dbReadyResolve: () => void;\n dbReadyPromise: Promise;\n cancelOpen: (reason?: Error) => void;\n openCanceller: Promise & { _stackHolder?: Error };\n autoSchema: boolean;\n vcFired?: boolean;\n PR1398_maxLoop?: number;\n}\n\nexport class Dexie implements IDexie {\n _options: DexieOptions;\n _state: DbReadyState;\n _versions: Version[];\n _storeNames: string[];\n _deps: DexieDOMDependencies;\n _allTables: { [name: string]: Table; };\n _createTransaction: (this: Dexie, mode: IDBTransactionMode, storeNames: ArrayLike, dbschema: { [tableName: string]: TableSchema; }, parentTransaction?: Transaction) => Transaction;\n _dbSchema: { [tableName: string]: TableSchema; };\n _hasGetAll?: boolean;\n _maxKey: IndexableType;\n _fireOnBlocked: (ev: Event) => void;\n _middlewares: {[StackName in keyof DexieStacks]?: Middleware[]} = {};\n _vip?: boolean;\n _novip?: Dexie;// db._novip is to escape to orig db from db.vip.\n core: DBCore;\n\n name: string;\n verno: number = 0;\n idbdb: IDBDatabase | null;\n vip: Dexie;\n on: DbEvents;\n\n Table: TableConstructor;\n WhereClause: WhereClauseConstructor;\n Collection: CollectionConstructor;\n Version: VersionConstructor;\n Transaction: TransactionConstructor;\n\n constructor(name: string, options?: DexieOptions) {\n const deps = (Dexie as any as DexieConstructor).dependencies;\n this._options = options = {\n // Default Options\n addons: (Dexie as any as DexieConstructor).addons, // Pick statically registered addons by default\n autoOpen: true, // Don't require db.open() explicitely.\n // Default DOM dependency implementations from static prop.\n indexedDB: deps.indexedDB, // Backend IndexedDB api. Default to browser env.\n IDBKeyRange: deps.IDBKeyRange, // Backend IDBKeyRange api. Default to browser env.\n ...options\n };\n this._deps = {\n indexedDB: options.indexedDB as IDBFactory,\n IDBKeyRange: options.IDBKeyRange as typeof IDBKeyRange\n };\n const {\n addons,\n } = options;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n const state: DbReadyState = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null as Promise,\n cancelOpen: nop,\n openCanceller: null as Promise,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] }) as DbEvents;\n this.on.ready.subscribe = override(this.on.ready.subscribe, subscribe => {\n return (subscriber, bSticky) => {\n (Dexie as any as DexieConstructor).vip(() => {\n const state = this._state;\n if (state.openComplete) {\n // Database already open. Call subscriber asap.\n if (!state.dbOpenError) Promise.resolve().then(subscriber);\n // bSticky: Also subscribe to future open sucesses (after close / reopen) \n if (bSticky) subscribe(subscriber);\n } else if (state.onReadyBeingFired) {\n // db.on('ready') subscribers are currently being executed and have not yet resolved or rejected\n state.onReadyBeingFired.push(subscriber);\n if (bSticky) subscribe(subscriber);\n } else {\n // Database not yet open. Subscribe to it.\n subscribe(subscriber);\n // If bSticky is falsy, make sure to unsubscribe subscriber when fired once.\n const db = this;\n if (!bSticky) subscribe(function unsubscribe() {\n db.on.ready.unsubscribe(subscriber);\n db.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n }\n });\n\n // Create derived classes bound to this instance of Dexie:\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n\n // Default subscribers to \"versionchange\" and \"blocked\".\n // Can be overridden by custom handlers. If custom handlers return false, these default\n // behaviours will be prevented.\n this.on(\"versionchange\", ev => {\n // Default behavior for versionchange event is to close database connection.\n // Caller can override this behavior by doing db.on(\"versionchange\", function(){ return false; });\n // Let's not block the other window from making it's delete() or open() call.\n // NOTE! This event is never fired in IE,Edge or Safari.\n if (ev.newVersion > 0)\n console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`);\n else\n console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`);\n this.close();\n // In many web applications, it would be recommended to force window.reload()\n // when this event occurs. To do that, subscribe to the versionchange event\n // and call window.location.reload(true) if ev.newVersion > 0 (not a deletion)\n // The reason for this is that your current web app obviously has old schema code that needs\n // to be updated. Another window got a newer version of the app and needs to upgrade DB but\n // your window is blocking it unless we close it here.\n });\n this.on(\"blocked\", ev => {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(`Dexie.delete('${this.name}') was blocked`);\n else\n console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${ev.oldVersion / 10}`);\n });\n\n this._maxKey = getMaxKey(options.IDBKeyRange as typeof IDBKeyRange);\n\n this._createTransaction = (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n parentTransaction?: Transaction) => new this.Transaction(mode, storeNames, dbschema, this._options.chromeTransactionDurability, parentTransaction);\n\n this._fireOnBlocked = ev => {\n this.on(\"blocked\").fire(ev);\n // Workaround (not fully*) for missing \"versionchange\" event in IE,Edge and Safari:\n connections\n .filter(c => c.name === this.name && c !== this && !c._state.vcFired)\n .map(c => c.on(\"versionchange\").fire(ev));\n }\n\n // Default middlewares:\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n\n this.vip = Object.create(this, {_vip: {value: true}}) as Dexie;\n\n // Call each addon:\n addons.forEach(addon => addon(this));\n }\n\n version(versionNumber: number): Version {\n if (isNaN(versionNumber) || versionNumber < 0.1) throw new exceptions.Type(`Given version is not a positive number`);\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n const versions = this._versions;\n var versionInstance = versions.filter(\n v => v._cfg.version === versionNumber)[0];\n if (versionInstance) return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({}); // Derive earlier schemas by default.\n // Disable autoschema mode, as at least one version is specified.\n this._state.autoSchema = false;\n return versionInstance;\n }\n\n _whenReady(fn: () => Promise): Promise {\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new Promise((resolve, reject) => {\n if (this._state.openComplete) {\n // idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return reject(new exceptions.DatabaseClosed(this._state.dbOpenError));\n }\n if (!this._state.isBeingOpened) {\n if (!this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n this.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n }\n\n use({stack, create, level, name}: Middleware): this {\n if (name) this.unuse({stack, name}); // Be able to replace existing middleware.\n const middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({stack, create, level: level == null ? 10 : level, name});\n middlewares.sort((a, b) => a.level - b.level);\n // Todo update db.core and db.tables...core ? Or should be expect this to have effect\n // only after next open()?\n return this;\n }\n\n unuse({stack, create}: Middleware<{stack: keyof DexieStacks}>): this;\n unuse({stack, name}: {stack: keyof DexieStacks, name: string}): this;\n unuse({stack, name, create}: {stack: keyof DexieStacks, name?: string, create?: Function}) {\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(mw =>\n create ? mw.create !== create : // Given middleware has a create method. Match that exactly.\n name ? mw.name !== name : // Given middleware spec \n false);\n }\n return this;\n }\n\n open() {\n return dexieOpen(this);\n }\n\n _close(): void {\n const state = this._state;\n const idx = connections.indexOf(this);\n if (idx >= 0) connections.splice(idx, 1);\n if (this.idbdb) {\n try { this.idbdb.close(); } catch (e) { }\n this._novip.idbdb = null; // db._novip is because db can be an Object.create(origDb).\n } \n // Reset dbReadyPromise promise:\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n }\n\n close(): void {\n this._close();\n const state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n }\n\n delete(): Promise {\n const hasArguments = arguments.length > 0;\n const state = this._state;\n return new Promise((resolve, reject) => {\n const doDelete = () => {\n this.close();\n var req = this._deps.indexedDB.deleteDatabase(this.name);\n req.onsuccess = wrap(() => {\n _onDatabaseDeleted(this._deps, this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = this._fireOnBlocked;\n }\n\n if (hasArguments) throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n } else {\n doDelete();\n }\n });\n }\n\n backendDB() {\n return this.idbdb;\n }\n\n isOpen() {\n return this.idbdb !== null;\n }\n\n hasBeenClosed() {\n const dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n }\n\n hasFailed() {\n return this._state.dbOpenError !== null;\n }\n\n dynamicallyOpened() {\n return this._state.autoSchema;\n }\n\n get tables () {\n return keys(this._allTables).map(name => this._allTables[name]);\n }\n\n transaction(): Promise {\n const args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n }\n\n _transaction(mode: TransactionMode, tables: Array, scopeFunc: Function) {\n let parentTransaction = PSD.trans as Transaction | undefined;\n // Check if parent transactions is bound to this db instance, and if caller wants to reuse it\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) parentTransaction = null;\n const onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '') as TransactionMode; // Ok. Will change arguments[0] as well but we wont touch arguments henceforth.\n let idbMode: IDBTransactionMode,\n storeNames;\n\n try {\n //\n // Get storeNames from arguments. Either through given table instances, or through given table names.\n //\n storeNames = tables.map(table => {\n var storeName = table instanceof this.Table ? table.name : table;\n if (typeof storeName !== 'string') throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n\n //\n // Resolve mode. Allow shortcuts \"r\" and \"rw\".\n //\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n\n if (parentTransaction) {\n // Basic checks\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(storeName => {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n // '?' mode should not keep using an inactive transaction.\n parentTransaction = null;\n }\n }\n } catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, (_, reject) => {reject(e);}) :\n rejection (e);\n }\n // If this is a sub-transaction, lock the parent and then launch the sub-transaction.\n const enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n // no parent transaction despite PSD.trans exists. Make sure also\n // that the zone we create is not a sub-zone of current, because\n // Promise.follow() should not wait for it if so.\n usePSD(PSD.transless, ()=>this._whenReady(enterTransaction)) :\n this._whenReady (enterTransaction));\n }\n\n table(tableName: string): Table;\n table(tableName: string): ITable;\n table(tableName: string): Table {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(`Table ${tableName} does not exist`); }\n return this._allTables[tableName];\n }\n}\n","import {\n Observable as IObservable,\n Observer,\n Subscription,\n} from \"../../public/types/observable\";\n\nconst symbolObservable: typeof Symbol.observable =\n typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\" as any;\n\nexport class Observable implements IObservable {\n private _subscribe: (observer: Observer) => Subscription;\n hasValue?: ()=>boolean;\n getValue?: ()=>T;\n\n constructor(subscribe: (observer: Observer) => Subscription) {\n this._subscribe = subscribe;\n }\n\n subscribe(\n onNext?: ((value: T) => void) | null,\n onError?: ((error: any) => void) | null,\n onComplete?: (() => void) | null\n ): Subscription;\n subscribe(observer?: Observer | null): Subscription;\n subscribe(x?: any, error?: any, complete?: any): Subscription {\n return this._subscribe(\n !x || typeof x === \"function\" ? { next: x, error, complete } : x\n );\n }\n\n [symbolObservable]() {\n return this;\n }\n}\n","import { deepClone, keys } from \"../functions/utils\";\nimport { mergeRanges, RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\n\nexport function extendObservabilitySet(\n target: ObservabilitySet,\n newSet: ObservabilitySet\n): ObservabilitySet {\n keys(newSet).forEach(part => {\n const rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n","import { isAsyncFunction, keys } from \"../functions/utils\";\nimport { globalEvents, DEXIE_STORAGE_MUTATED_EVENT_NAME } from \"../globals/global-events\";\nimport {\n decrementExpectedAwaits,\n incrementExpectedAwaits,\n newScope,\n PSD,\n usePSD,\n} from \"../helpers/promise\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport {\n Observable as IObservable,\n Subscription,\n} from \"../public/types/observable\";\nimport { Observable } from \"../classes/observable/observable\";\nimport { extendObservabilitySet } from \"./extend-observability-set\";\nimport { rangesOverlap } from \"../helpers/rangeset\";\n\nexport function liveQuery(querier: () => T | Promise): IObservable {\n let hasValue = false;\n let currentValue: T = undefined as any;\n const observable = new Observable((observer) => {\n const scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr: ObservabilitySet) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n const exec = () => newScope(querier, { subscr, trans: null });\n const rv = PSD.trans\n ? // Ignore current transaction if active when calling subscribe().\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n (rv as Promise).then(\n decrementExpectedAwaits,\n decrementExpectedAwaits\n );\n }\n return rv;\n }\n\n let closed = false;\n\n let accumMuts: ObservabilitySet = {};\n let currentObs: ObservabilitySet = {};\n\n const subscription: Subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: () => {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n\n observer.start && observer.start(subscription); // https://github.com/tc39/proposal-observable\n\n let querying = false,\n startedListening = false;\n\n function shouldNotify() {\n return keys(currentObs).some(\n (key) =>\n accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key])\n );\n }\n\n const mutationListener = (parts: ObservabilitySet) => {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n\n const doQuery = () => {\n if (querying || closed) return;\n accumMuts = {};\n const subscr: ObservabilitySet = {};\n const ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(\n (result) => {\n hasValue = true;\n currentValue = result;\n querying = false;\n if (closed) return;\n if (shouldNotify()) {\n // Mutations has happened while we were querying. Redo query.\n doQuery();\n } else {\n accumMuts = {};\n // Update what we are subscribing for based on this last run:\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n },\n (err) => {\n querying = false;\n hasValue = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n }\n );\n };\n\n doQuery();\n return subscription;\n });\n observable.hasValue = () => hasValue;\n observable.getValue = () => currentValue;\n return observable;\n}\n","import { _global } from '../../globals/global';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\n\nexport let domDeps: DexieDOMDependencies\n\ntry {\n domDeps = {\n // Required:\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n} catch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n","import { Dexie as _Dexie } from './dexie';\nimport { _global } from '../../globals/global';\nimport { props, derive, extend, override, getByKeyPath, setByKeyPath, delByKeyPath, shallowClone, deepClone, asap } from '../../functions/utils';\nimport { getObjectDiff } from \"../../functions/get-object-diff\";\nimport { fullNameExceptions } from '../../errors';\nimport { DexieConstructor } from '../../public/types/dexie-constructor';\nimport { getDatabaseNames } from '../../helpers/database-enumerator';\nimport { PSD } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { newScope } from '../../helpers/promise';\nimport { rejection } from '../../helpers/promise';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { dexieStackFrameFilter, minKey, connections, DEXIE_VERSION } from '../../globals/constants';\nimport Events from '../../helpers/Events';\nimport { exceptions } from '../../errors';\nimport { errnames } from '../../errors';\nimport { getMaxKey } from '../../functions/quirks';\nimport { vip } from './vip';\nimport { globalEvents } from '../../globals/global-events';\nimport { liveQuery } from '../../live-query/live-query';\nimport { extendObservabilitySet } from '../../live-query/extend-observability-set';\nimport { domDeps } from './dexie-dom-dependencies';\nimport { cmp } from '../../functions/cmp';\n\n/* (Dexie) is an instance of DexieConstructor, as defined in public/types/dexie-constructor.d.ts\n* (new Dexie()) is an instance of Dexie, as defined in public/types/dexie.d.ts\n* \n* Why we're doing this?\n\n* Because we've choosen to define the public Dexie API using a DexieConstructor interface\n* rather than declaring a class. On that interface, all static props are defined.\n* In practice, class Dexie's constructor implements DexieConstructor and all member props\n* are defined in interface Dexie. We could say, it's a typescript limitation of not being\n* able to define a static interface that forces us to do the cast below.\n*/\nconst Dexie = _Dexie as any as DexieConstructor;\n\n//\n// Set all static methods and properties onto Dexie:\n// \nprops(Dexie, {\n\n // Dexie.BulkError = class BulkError {...};\n // Dexie.XXXError = class XXXError {...};\n ...fullNameExceptions,\n\n //\n // Static delete() method.\n //\n delete(databaseName: string) {\n const db = new Dexie(databaseName, {addons: []});\n return db.delete();\n },\n\n //\n // Static exists() method.\n //\n exists(name: string) {\n return new Dexie(name, { addons: [] }).open().then(db => {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', () => false);\n },\n\n //\n // Static method for retrieving a list of all existing databases at current host.\n //\n getDatabaseNames(cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n } catch {\n return rejection(new exceptions.MissingAPI());\n }\n },\n\n /** @deprecated */\n defineClass() {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n },\n\n ignoreTransaction(scopeFunc) {\n // In case caller is within a transaction but needs to create a separate transaction.\n // Example of usage:\n //\n // Let's say we have a logger function in our app. Other application-logic should be unaware of the\n // logger function and not need to include the 'logentries' table in all transaction it performs.\n // The logging should always be done in a separate transaction and not be dependant on the current\n // running transaction context. Then you could use Dexie.ignoreTransaction() to run code that starts a new transaction.\n //\n // Dexie.ignoreTransaction(function() {\n // db.logentries.add(newLogEntry);\n // });\n //\n // Unless using Dexie.ignoreTransaction(), the above example would try to reuse the current transaction\n // in current Promise-scope.\n //\n // An alternative to Dexie.ignoreTransaction() would be setImmediate() or setTimeout(). The reason we still provide an\n // API for this because\n // 1) The intention of writing the statement could be unclear if using setImmediate() or setTimeout().\n // 2) setTimeout() would wait unnescessary until firing. This is however not the case with setImmediate().\n // 3) setImmediate() is not supported in the ES standard.\n // 4) You might want to keep other PSD state that was set in a parent PSD, such as PSD.letThrough.\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) : // Use the closest parent that was non-transactional.\n scopeFunc(); // No need to change scope because there is no ongoing transaction.\n },\n\n vip,\n\n async: function (generatorFn: Function) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n };\n },\n\n spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n },\n\n // Dexie.currentTransaction property\n currentTransaction: {\n get: () => PSD.trans || null\n },\n\n waitFor: function (promiseOrFunction, optionalTimeout) {\n // If a function is provided, invoke it and pass the returning value to Transaction.waitFor()\n const promise = Promise.resolve(\n typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000); // Default the timeout to one minute. Caller may specify Infinity if required. \n\n // Run given promise on current transaction. If no current transaction, just return a Dexie promise based\n // on given value.\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n\n // Export our Promise implementation since it can be handy as a standalone Promise implementation\n Promise: Promise,\n\n // Dexie.debug proptery:\n // Dexie.debug = false\n // Dexie.debug = true\n // Dexie.debug = \"dexie\" - don't hide dexie's stack frames.\n debug: {\n get: () => Debug.debug,\n set: value => {\n Debug.setDebug(value, value === 'dexie' ? () => true : dexieStackFrameFilter);\n }\n },\n\n // Export our derive/extend/override methodology\n derive: derive, // Deprecate?\n extend: extend, // Deprecate?\n props: props,\n override: override, // Deprecate?\n // Export our Events() function - can be handy as a toolkit\n Events: Events,\n on: globalEvents,\n liveQuery,\n extendObservabilitySet,\n // Utilities\n getByKeyPath: getByKeyPath,\n setByKeyPath: setByKeyPath,\n delByKeyPath: delByKeyPath,\n shallowClone: shallowClone,\n deepClone: deepClone,\n getObjectDiff: getObjectDiff,\n cmp,\n asap: asap,\n //maxKey: new Dexie('',{addons:[]})._maxKey,\n minKey: minKey,\n // Addon registry\n addons: [],\n // Global DB connection list\n connections: connections,\n\n //MultiModifyError: exceptions.Modify, // Obsolete!\n errnames: errnames,\n\n // Export other static classes\n //IndexSpec: IndexSpec, Obsolete!\n //TableSchema: TableSchema, Obsolete!\n\n //\n // Dependencies\n //\n // These will automatically work in browsers with indexedDB support, or where an indexedDB polyfill has been included.\n //\n // In node.js, however, these properties must be set \"manually\" before instansiating a new Dexie().\n // For node.js, you need to require indexeddb-js or similar and then set these deps.\n //\n dependencies: domDeps,\n\n // API Version Number: Type Number, make sure to always set a version number that can be comparable correctly. Example: 0.9, 0.91, 0.92, 1.0, 1.01, 1.1, 1.2, 1.21, etc.\n semVer: DEXIE_VERSION,\n version: DEXIE_VERSION.split('.')\n .map(n => parseInt(n))\n .reduce((p, c, i) => p + (c / Math.pow(10, i * 2))),\n\n // https://github.com/dfahlander/Dexie.js/issues/186\n // typescript compiler tsc in mode ts-->es5 & commonJS, will expect require() to return\n // x.default. Workaround: Set Dexie.default = Dexie.\n // default: Dexie, // Commented because solved in index-umd.ts instead.\n // Make it possible to import {Dexie} (non-default import)\n // Reason 1: May switch to that in future.\n // Reason 2: We declare it both default and named exported in d.ts to make it possible\n // to let addons extend the Dexie interface with Typescript 2.1 (works only when explicitely\n // exporting the symbol, not just default exporting)\n // Dexie: Dexie // Commented because solved in index-umd.ts instead.\n});\n\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n","import { isIEOrEdge } from '../globals/constants';\nimport { globalEvents, DEXIE_STORAGE_MUTATED_EVENT_NAME, STORAGE_MUTATED_DOM_EVENT_NAME } from '../globals/global-events';\nimport { ObservabilitySet } from \"../public/types/db-events\";\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, updatedParts => {\n if (!propagatingLocally) {\n let event: CustomEvent;\n if (isIEOrEdge) {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n } else {\n event = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, ({detail}: CustomEvent) => {\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\n\nexport function propagateLocally(updateParts: ObservabilitySet) {\n let wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n } finally {\n propagatingLocally = wasMe;\n }\n}\n\nexport let propagatingLocally = false;\n","import {\n globalEvents,\n STORAGE_MUTATED_DOM_EVENT_NAME,\n DEXIE_STORAGE_MUTATED_EVENT_NAME,\n} from '../globals/global-events';\nimport { propagateLocally, propagatingLocally } from './propagate-locally';\n\nif (typeof BroadcastChannel !== 'undefined') {\n const bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n\n /**\n * The Node.js BroadcastChannel will prevent the node process from exiting\n * if the BroadcastChannel is not closed.\n * Therefore we have to call unref() which allows the process to finish\n * properly even when the BroadcastChannel is never closed.\n * @link https://nodejs.org/api/worker_threads.html#broadcastchannelunref\n * @link https://github.com/dexie/Dexie.js/pull/1576\n */\n if (typeof (bc as any).unref === 'function') {\n (bc as any).unref();\n } \n \n //\n // Propagate local changes to remote tabs, windows and workers via BroadcastChannel\n //\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => {\n if (!propagatingLocally) {\n bc.postMessage(changedParts);\n }\n });\n\n //\n // Propagate remote changes locally via storage event:\n //\n bc.onmessage = (ev) => {\n if (ev.data) propagateLocally(ev.data);\n };\n} else if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n // DOM verified - when typeof self !== \"undefined\", we are a window or worker. Not a Node process.\n\n //\n // Propagate local changes to remote tabs/windows via storage event and service worker\n // via messages. We have this code here because of https://bugs.webkit.org/show_bug.cgi?id=161472.\n //\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n // We're a browsing window or tab. Propagate to other windows/tabs via storage event:\n localStorage.setItem(\n STORAGE_MUTATED_DOM_EVENT_NAME,\n JSON.stringify({\n trig: Math.random(),\n changedParts,\n })\n );\n }\n if (typeof self['clients'] === 'object') {\n // We're a service worker. Propagate to our browser clients.\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach(\n (client) =>\n client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts,\n })\n );\n }\n }\n } catch {}\n });\n\n //\n // Propagate remote changes locally via storage event:\n //\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', (ev: StorageEvent) => {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n const data = JSON.parse(ev.newValue);\n if (data) propagateLocally(data.changedParts);\n }\n });\n }\n\n //\n // Propagate messages from service worker\n //\n const swContainer = self.document && navigator.serviceWorker; // self.document is to verify we're not the SW ourself\n if (swContainer) {\n // We're a browser window and want to propagate message from the SW:\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\n\nfunction propagateMessageLocally({ data }: MessageEvent) {\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n","import { Dexie } from './classes/dexie';\nimport { DexieConstructor } from './public/types/dexie-constructor';\nimport { DexiePromise } from './helpers/promise';\nimport { mapError } from './errors';\nimport * as Debug from './helpers/debug';\nimport { dexieStackFrameFilter } from './globals/constants';\n\n// Generate all static properties such as Dexie.maxKey etc\n// (implement interface DexieConstructor):\nimport './classes/dexie/dexie-static-props';\nimport './live-query/enable-broadcast';\nimport { liveQuery } from './live-query/live-query';\n\n// Set rejectionMapper of DexiePromise so that it generally tries to map\n// DOMErrors and DOMExceptions to a DexieError instance with same name but with\n// async stack support and with a prototypal inheritance from DexieError and Error.\n// of Map DOMErrors and DOMExceptions to corresponding Dexie errors.\nDexiePromise.rejectionMapper = mapError;\n\n// Let the async stack filter focus on app code and filter away frames from dexie.min.js:\nDebug.setDebug(Debug.debug, dexieStackFrameFilter);\n\nexport { RangeSet, mergeRanges, rangesOverlap } from \"./helpers/rangeset\";\nexport { Dexie, liveQuery }; // Comply with public/index.d.ts.\nexport default Dexie;\n","import * as YAML from 'js-yaml'\n\nimport SecureLS from 'secure-ls'\n\nfunction loadResource(type, url, base) {\n if (url.match(/(https?)?:\\/\\//i)) {\n if (type === 'script') {\n return ``\n } else {\n return ``\n }\n }\n\n const absoluteURL = new URL(url, base).toString()\n\n return `\n `\n}\n\nfunction replace(code, baseURL) {\n try {\n let head = code.match(/.*?<\\/head>/is)[0]\n\n head = head.replace(\n /.*?<\\/script>/gims,\n (pat) => {\n let url = pat.match(/src=(?:'|\")([^\"']+)(?:'|\")/is)\n\n if (url) {\n url = url[1]\n\n if (!(url.startsWith('https://') || url.startsWith('http://'))) {\n return loadResource('script', url, baseURL)\n }\n }\n\n return pat\n }\n )\n\n head = head.replace(\n //gims,\n (pat) => {\n let url = pat.match(/href=(?:'|\")([^\"']+)(?:'|\")/is)\n\n if (url) {\n url = url[1]\n\n if (!(url.startsWith('https://') || url.startsWith('http://'))) {\n return loadResource('css', url, baseURL)\n }\n }\n\n return pat\n }\n )\n\n return code.replace(/.*?<\\/head>/is, head)\n } catch (e) {\n console.warn('problems parsing html:', e)\n }\n}\n\nexport function copyToClipboard(str: string) {\n navigator.clipboard.writeText(str)\n}\n\nexport function parseClassroom(config: string) {\n let classroom\n\n console.warn('parse Classroom', config)\n\n try {\n classroom = parse(config)\n\n if (classroom) {\n // guarantees that older modules without a custom show can be loaded\n for (let i = 0; i < classroom.modules; i++) {\n classroom.modules[i].showInCustom =\n classroom.modules[i].showInCustom || classroom.modules[i].showIn || ''\n }\n }\n } catch (e) {\n console.warn('could not parse classroom', e.message)\n }\n\n return classroom\n}\n\nexport function parse(config: string): any {\n let data: any = undefined\n\n try {\n data = JSON.parse(config)\n } catch (e) {\n data = YAML.load(config)\n }\n\n return data\n}\n\nexport function stringify(config: any): string {\n return YAML.dump(config)\n}\n\nexport async function scrapeModule(module) {\n try {\n const response = await fetch(module.url)\n const content = await response.text()\n\n if (module.url.match(/\\.ya?ml$/i)) {\n try {\n const yaml = YAML.load(content)\n\n const links = yaml.load?.links || []\n const scripts = yaml.load?.scripts || []\n\n const code = `\n \n \n ${links\n .map((url) => {\n return loadResource('css', url, module.url)\n })\n .join('\\n')}\n \n ${scripts\n .map((url) => {\n return loadResource('script', url, module.url)\n })\n .join('\\n')}\n\n \n \n \n \n ${yaml.body || ''}\n \n \n `\n\n return {\n ...module,\n name: yaml.name,\n description: yaml.description,\n icon: yaml.icon || 'mdi-package',\n shownIn: yaml['show-in'] || ['*'],\n srcdoc: 'data:text/html,' + escape(code),\n origin: '*',\n }\n } catch (error) {\n console.warn('loading yaml:', error)\n\n throw new Error('Could not load the YAML-declaration: ' + error.message)\n }\n } else {\n const moduleEl = document.createElement('html')\n moduleEl.innerHTML = content\n const meta = Object.fromEntries(\n Object.values(moduleEl.getElementsByTagName('meta')).map((m) => [\n m.name,\n m.content,\n ])\n )\n\n if (meta['fetch'] && meta['fetch'] !== 'false') {\n return {\n ...module,\n name:\n moduleEl.getElementsByTagName('title')[0].innerText || meta['name'],\n description: meta['description'],\n icon: meta['icon'] || 'mdi-package',\n shownIn: (meta['show-in'] || '*').replace(/\\s+/g, '').split(','), // or 'station'\n srcdoc: 'data:text/html,' + escape(replace(content, module.url)),\n origin: '*',\n }\n }\n\n try {\n return {\n ...module,\n name:\n moduleEl.getElementsByTagName('title')[0].innerText || meta['name'],\n description: meta['description'],\n icon: meta['icon'] || 'mdi-package',\n shownIn: (meta['show-in'] || '*').replace(/\\s+/g, '').split(','), // or 'station'\n }\n } catch (error) {\n throw new Error(\n 'This does not seem to be a valid module declaration, check the URL manually.'\n )\n }\n }\n } catch (error) {\n return {\n ...module,\n name: '',\n description: error,\n icon: 'mdi-alert',\n shownIn: '',\n }\n }\n}\n\nexport function download(filename, text) {\n /**\n * https://stackoverflow.com/questions/3665115/how-to-create-a-file-in-memory-for-user-to-download-but-not-through-server\n */\n const element = document.createElement('a')\n element.setAttribute(\n 'href',\n 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)\n )\n element.setAttribute('download', filename)\n\n element.style.display = 'none'\n document.body.appendChild(element)\n\n element.click()\n\n document.body.removeChild(element)\n}\n\nexport function debounce(func, wait, immediate) {\n /**\n * https://davidwalsh.name/javascript-debounce-function\n */\n let timeout\n return function () {\n const context = this,\n args = arguments\n const later = function () {\n timeout = null\n if (!immediate) func.apply(context, args)\n }\n const callNow = immediate && !timeout\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) func.apply(context, args)\n }\n}\n\nexport function setToValue(obj, pathArr, value) {\n let i = 0\n\n for (i = 0; i < pathArr.length - 1; i++) {\n obj = obj[pathArr[i]]\n if (!obj[pathArr[i + 1]]) obj[pathArr[i + 1]] = {}\n }\n obj[pathArr[i]] = value\n // if (value == undefined)\n // delete obj[pathArr[i]]\n}\n\nexport function validateUrl(string: string) {\n try {\n const url = new URL(string)\n\n // URL: allows to define protocols such as `abc:` or `bla:`\n const protocols = [\n 'http:',\n 'https:',\n 'file:',\n 'ipfs:',\n 'ipns:',\n 'blob:',\n 'dat:',\n 'hyper:',\n ]\n if (protocols.includes(url.protocol)) {\n return true\n }\n } catch (err) {}\n\n return false\n}\n\nexport function infoHash(length = 40) {\n let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n\n // Pick characters randomly\n let str = ''\n for (let i = 0; i < length; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n\n return str\n}\n\nvar SessionID: string | null = null\nconst ls = new SecureLS({ encodingType: 'aes' })\n\nexport function getPeerID(withSession = true) {\n let peerID = ls.get('peerID_')\n\n if (!peerID) {\n peerID = infoHash(12)\n ls.set('peerID_', peerID)\n }\n\n if (!SessionID) {\n SessionID = infoHash(6)\n }\n\n return withSession ? peerID + '_' + SessionID : peerID\n}\n\nexport function getShortPeerID(id: string) {\n const ids = id.split('_')\n\n // peerID_sessionID\n if (ids.length == 2) {\n return ids[0].slice(-6)\n }\n\n return id\n}\n\nexport function clone(object: any) {\n if (object !== undefined) return JSON.parse(JSON.stringify(object))\n}\n\nexport function removeKeysStartingWithSecret(obj: any) {\n for (let key in obj) {\n if (typeof obj[key] === 'object') {\n // Recursively call the function if the value is an object or an array\n removeKeysStartingWithSecret(obj[key])\n\n if (JSON.stringify(obj[key]) === '{}') {\n delete obj[key]\n }\n }\n // If the key starts with \"secret\", delete the key-value pair\n if (key.toLocaleLowerCase().startsWith('secret')) {\n delete obj[key]\n }\n }\n}\n\nexport function deepEqual(object1, object2) {\n const keys1 = Object.keys(object1)\n const keys2 = Object.keys(object2)\n if (keys1.length !== keys2.length) {\n return false\n }\n for (const key of keys1) {\n const val1 = object1[key]\n const val2 = object2[key]\n const areObjects = isObject(val1) && isObject(val2)\n if (\n (areObjects && !deepEqual(val1, val2)) ||\n (!areObjects && val1 !== val2)\n ) {\n return false\n }\n }\n return true\n}\nfunction isObject(object) {\n return object != null && typeof object === 'object'\n}\n\nexport async function hashJsonObject(jsonObject: any) {\n const msgUint8 = new TextEncoder().encode(JSON.stringify(jsonObject))\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n return hashHex\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\nexport { _object_spread_props as _ };\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","/*!\n * secure-ls - v1.2.6\n * URL - https://github.com/softvar/secure-ls\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2016-2024 Varun Malhotra\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n *\n * Dependencies used -\n * 1. crypto-js - ^4.2.0\n * 2. lz-string - ^1.5.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n // CommonJS2\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();\n // AMD\n else if (typeof define === 'function' && define.amd) define([], factory);\n // CommonJS\n else if (typeof exports === 'object') exports['SecureLS'] = factory();\n // Root\n else root['SecureLS'] = factory();\n})(this, () => {\n return /******/ (() => {\n // webpackBootstrap\n /******/ var __webpack_modules__ = {\n /***/ './src/Base64.js':\n /*!***********************!*\\\n !*** ./src/Base64.js ***!\n \\***********************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n const Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n encode: function (e) {\n let t = '';\n let n, r, i, s, o, u, a;\n let f = 0;\n e = Base64._utf8Encode(e);\n while (f < e.length) {\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = ((n & 3) << 4) | (r >> 4);\n u = ((r & 15) << 2) | (i >> 6);\n a = i & 63;\n if (isNaN(r)) {\n u = a = 64;\n } else if (isNaN(i)) {\n a = 64;\n }\n t =\n t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function (e) {\n let t = '';\n let n, r, i;\n let s, o, u, a;\n let f = 0;\n e = e.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = (s << 2) | (o >> 4);\n r = ((o & 15) << 4) | (u >> 2);\n i = ((u & 3) << 6) | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) {\n t = t + String.fromCharCode(r);\n }\n if (a !== 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function (e) {\n e = e.replace(/\\r\\n/g, '\\n');\n let t = '';\n for (let n = 0; n < e.length; n++) {\n let r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n } else if (r > 127 && r < 2048) {\n t += String.fromCharCode((r >> 6) | 192);\n t += String.fromCharCode((r & 63) | 128);\n } else {\n t += String.fromCharCode((r >> 12) | 224);\n t += String.fromCharCode(((r >> 6) & 63) | 128);\n t += String.fromCharCode((r & 63) | 128);\n }\n }\n return t;\n },\n _utf8Decode: function (e) {\n let t = '';\n let n = 0;\n let r, c2, c3;\n r = c2 = 0;\n while (n < e.length) {\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode(((r & 31) << 6) | (c2 & 63));\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode(((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n n += 3;\n }\n }\n return t;\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Base64;\n\n /***/\n },\n\n /***/ './src/SecureLS.js':\n /*!*************************!*\\\n !*** ./src/SecureLS.js ***!\n \\*************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ SecureLS: () => /* binding */ SecureLS,\n /* harmony export */\n });\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./constants */ './src/constants.js',\n );\n /* harmony import */ var _enc_utf8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./enc-utf8 */ './src/enc-utf8.js',\n );\n /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./utils */ './src/utils.js',\n );\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! crypto-js/aes */ './node_modules/crypto-js/aes.js',\n );\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\n /*! crypto-js/rabbit */ './node_modules/crypto-js/rabbit.js',\n );\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\n /*! crypto-js/rc4 */ './node_modules/crypto-js/rc4.js',\n );\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__);\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\n /*! crypto-js/tripledes */ './node_modules/crypto-js/tripledes.js',\n );\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__);\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\n /*! lz-string/libs/lz-string */ './node_modules/lz-string/libs/lz-string.js',\n );\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7___default =\n /*#__PURE__*/ __webpack_require__.n(lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__);\n /* harmony import */ var _Base64__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\n /*! ./Base64 */ './src/Base64.js',\n );\n\n const encryptors = {\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.AES]:\n crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.DES]:\n crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RABBIT]:\n crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RC4]:\n crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n };\n class SecureLS {\n constructor({\n encryptionSecret = '',\n encryptionNamespace = '',\n isCompression = true,\n encodingType = _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64,\n storage = localStorage,\n metaKey = _constants__WEBPACK_IMPORTED_MODULE_0__['default'].metaKey,\n } = {}) {\n // Assign libraries and utilities\n Object.assign(this, {\n _name: 'secure-ls',\n Base64: _Base64__WEBPACK_IMPORTED_MODULE_8__['default'],\n LZString: {\n compressToUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.compressToUTF16,\n decompressFromUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.decompressFromUTF16,\n },\n AES: crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n DES: crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n RABBIT: crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n RC4: crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n enc: _enc_utf8__WEBPACK_IMPORTED_MODULE_1__['default'],\n });\n\n // Configuration and property assignment\n this.config = {\n encryptionSecret,\n encryptionNamespace,\n isCompression,\n encodingType: encodingType.toLowerCase(),\n storage,\n metaKey,\n };\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n\n // Initialize the class\n this.init();\n }\n init() {\n let metaData = this.getMetaData();\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n _isBase64EncryptionType() {\n return (\n _Base64__WEBPACK_IMPORTED_MODULE_8__['default'] &&\n (typeof this.config.encodingType === 'undefined' ||\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64)\n );\n }\n _isAESEncryptionType() {\n return (\n crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.AES\n );\n }\n _isDESEncryptionType() {\n return (\n crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.DES\n );\n }\n _isRabbitEncryptionType() {\n return (\n crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RABBIT\n );\n }\n _isRC4EncryptionType() {\n return (\n crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RC4\n );\n }\n _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n getEncryptionSecret(key) {\n let metaData = this.getMetaData();\n let obj = _utils__WEBPACK_IMPORTED_MODULE_2__['default'].getObjectFromKey(metaData.keys, key);\n if (!obj) {\n return;\n }\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === 'undefined') {\n this.encryptionSecret = obj.s;\n if (!this.encryptionSecret) {\n this.encryptionSecret = _utils__WEBPACK_IMPORTED_MODULE_2__['default'].generateSecretKey();\n this.setMetaData();\n }\n } else {\n this.encryptionSecret = this.config.encryptionSecret || obj.s || '';\n }\n }\n }\n getEncryptionType() {\n const encodingType = this.config.encodingType;\n return encodingType\n ? encodingType.toLowerCase()\n : _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64;\n }\n getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n setMetaData() {\n let dataToStore = this.processData(\n {\n keys: this.allKeys,\n },\n true,\n );\n\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? '__' + this.config.encryptionNamespace : '');\n }\n resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === '') {\n return '';\n }\n let jsonData;\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error('Could not stringify data', err);\n }\n\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n let encodedData = jsonData;\n if (this._isBase64 || isAllKeysData) {\n encodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__['default'].encode(jsonData);\n } else {\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n }\n encodedData = encodedData && encodedData.toString();\n }\n\n // Compress data if set to true\n let compressedData = encodedData;\n if (this._isCompression || isAllKeysData) {\n compressedData = this.LZString.compressToUTF16(encodedData);\n }\n return compressedData;\n }\n\n // PUBLIC APIs\n getAllKeys() {\n let data = this.getMetaData();\n return _utils__WEBPACK_IMPORTED_MODULE_2__['default'].extractKeyNames(data) || [];\n }\n get(key, isAllKeysData) {\n let decodedData = '';\n let jsonData = '';\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return jsonData;\n }\n let data = this.getDataFromLocalStorage(key);\n if (!data) {\n return jsonData;\n }\n let deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) {\n // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n }\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) {\n // meta data always Base64\n decodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__['default'].decode(deCompressedData);\n } else {\n this.getEncryptionSecret(key);\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n const bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n if (bytes) {\n decodedData = bytes.toString(_enc_utf8__WEBPACK_IMPORTED_MODULE_1__['default']._Utf8);\n }\n }\n }\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error('Could not parse JSON', err);\n }\n return jsonData;\n }\n set(key, data) {\n let dataToStore = '';\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return;\n }\n this.getEncryptionSecret(key);\n\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret,\n });\n this.setMetaData();\n }\n }\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n remove(key) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return;\n }\n if (key === this.metaKey && this.getAllKeys().length) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.META_KEY_REMOVE,\n );\n return;\n }\n if (_utils__WEBPACK_IMPORTED_MODULE_2__['default'].isKeyPresent(this.allKeys, key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n removeAll() {\n let keys = this.getAllKeys();\n for (let i = 0; i < keys.length; i++) {\n this.storage.removeItem(keys[i]);\n }\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n }\n\n /***/\n },\n\n /***/ './src/WordArray.js':\n /*!**************************!*\\\n !*** ./src/WordArray.js ***!\n \\**************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n\n let CryptoJSWordArray = {\n random: function (nBytes) {\n let words = [];\n let r = function (mw) {\n let mz = 0x3ade68b1;\n let mask = 0xffffffff;\n return function () {\n mz = (0x9069 * (mz & 0xffff) + (mz >> 0x10)) & mask;\n mw = (0x4650 * (mw & 0xffff) + (mw >> 0x10)) & mask;\n let result = ((mz << 0x10) + mw) & mask;\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n for (let i = 0, rcache; i < nBytes; i += 4) {\n let _r = r((rcache || Math.random()) * 0x100000000);\n rcache = _r() * 0x3ade67b7;\n words.push((_r() * 0x100000000) | 0);\n }\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n Set: function (words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = CryptoJSWordArray;\n\n /***/\n },\n\n /***/ './src/constants.js':\n /*!**************************!*\\\n !*** ./src/constants.js ***!\n \\**************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n const WarningEnum = {\n KEY_NOT_PROVIDED: 'keyNotProvided',\n META_KEY_REMOVE: 'metaKeyRemove',\n DEFAULT_TEXT: 'defaultText',\n };\n const WarningTypes = {};\n WarningTypes[WarningEnum.KEY_NOT_PROVIDED] = 'Secure LS: Key not provided. Aborting operation!';\n WarningTypes[WarningEnum.META_KEY_REMOVE] = `Secure LS: Meta key can not be removed\nunless all keys created by Secure LS are removed!`;\n WarningTypes[WarningEnum.DEFAULT_TEXT] = `Unexpected output`;\n const constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: 'base64',\n AES: 'aes',\n DES: 'des',\n RABBIT: 'rabbit',\n RC4: 'rc4',\n },\n metaKey: '_secure__ls__metadata',\n secretPhrase: 's3cr3t$#@135^&*246',\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = constants;\n\n /***/\n },\n\n /***/ './src/enc-utf8.js':\n /*!*************************!*\\\n !*** ./src/enc-utf8.js ***!\n \\*************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n const enc = {\n Latin1: {\n stringify: (wordArray) => {\n // Shortcuts\n let words = wordArray.words;\n let sigBytes = wordArray.sigBytes;\n let latin1Chars = [],\n i,\n bite;\n\n // Convert\n for (i = 0; i < sigBytes; i++) {\n bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join('');\n },\n },\n _Utf8: {\n stringify: (wordArray) => {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error('Malformed UTF-8 data', err);\n }\n },\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = enc;\n\n /***/\n },\n\n /***/ './src/utils.js':\n /*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! crypto-js/pbkdf2 */ './node_modules/crypto-js/pbkdf2.js',\n );\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./constants */ './src/constants.js',\n );\n /* harmony import */ var _WordArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./WordArray */ './src/WordArray.js',\n );\n\n const utils = {\n is: (key) => !!key,\n warn: (reason = _constants__WEBPACK_IMPORTED_MODULE_1__['default'].WarningEnum.DEFAULT_TEXT) => {\n console.warn(_constants__WEBPACK_IMPORTED_MODULE_1__['default'].WarningTypes[reason]);\n },\n generateSecretKey: () => {\n const salt = _WordArray__WEBPACK_IMPORTED_MODULE_2__['default'].random(128 / 8);\n const key128Bits = crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default()(\n _constants__WEBPACK_IMPORTED_MODULE_1__['default'].secretPhrase,\n salt,\n {\n keySize: 128 / 32,\n },\n );\n return key128Bits.toString();\n },\n getObjectFromKey: (data = [], key) => {\n return data.find((item) => item.k === key) || {};\n },\n extractKeyNames: ({ keys = [] } = {}) => {\n return keys.map(({ k }) => k);\n },\n isKeyPresent: (allKeys = [], key) => {\n return allKeys.some((item) => String(item.k) === String(key));\n },\n removeFromKeysList: (allKeys = [], key) => {\n const index = allKeys.findIndex((item) => item.k === key);\n if (index !== -1) {\n allKeys.splice(index, 1);\n }\n return index;\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = utils;\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/aes.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/aes.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n\n // Lookup tables\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n\n // Compute lookup tables\n (function () {\n // Compute double table\n var d = [];\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = (i << 1) ^ 0x11b;\n }\n }\n\n // Walk GF(2^8)\n var x = 0;\n var xi = 0;\n for (var i = 0; i < 256; i++) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n\n // Compute multiplication\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n SUB_MIX_3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n INV_SUB_MIX_3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n\n // Precomputed Rcon lookup\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n /**\n * AES block cipher algorithm.\n */\n var AES = (C_algo.AES = BlockCipher.extend({\n _doReset: function () {\n var t;\n\n // Skip reset of nRounds has been set before and key did not change\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n }\n\n // Shortcuts\n var key = (this._keyPriorReset = this._key);\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n\n // Compute number of rounds\n var nRounds = (this._nRounds = keySize + 6);\n\n // Compute number of key schedule rows\n var ksRows = (nRounds + 1) * 4;\n\n // Compute key schedule\n var keySchedule = (this._keySchedule = []);\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n\n if (!(ksRow % keySize)) {\n // Rot word\n t = (t << 8) | (t >>> 24);\n\n // Sub word\n t =\n (SBOX[t >>> 24] << 24) |\n (SBOX[(t >>> 16) & 0xff] << 16) |\n (SBOX[(t >>> 8) & 0xff] << 8) |\n SBOX[t & 0xff];\n\n // Mix Rcon\n t ^= RCON[(ksRow / keySize) | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n // Sub word\n t =\n (SBOX[t >>> 24] << 24) |\n (SBOX[(t >>> 16) & 0xff] << 16) |\n (SBOX[(t >>> 8) & 0xff] << 8) |\n SBOX[t & 0xff];\n }\n\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n }\n\n // Compute inv key schedule\n var invKeySchedule = (this._invKeySchedule = []);\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] =\n INV_SUB_MIX_0[SBOX[t >>> 24]] ^\n INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^\n INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n }\n },\n\n encryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n\n decryptBlock: function (M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n\n this._doCryptBlock(\n M,\n offset,\n this._invKeySchedule,\n INV_SUB_MIX_0,\n INV_SUB_MIX_1,\n INV_SUB_MIX_2,\n INV_SUB_MIX_3,\n INV_SBOX,\n );\n\n // Inv swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n\n _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds;\n\n // Get input, add round key\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n\n // Key schedule row counter\n var ksRow = 4;\n\n // Rounds\n for (var round = 1; round < nRounds; round++) {\n // Shift rows, sub bytes, mix columns, add round key\n var t0 =\n SUB_MIX_0[s0 >>> 24] ^\n SUB_MIX_1[(s1 >>> 16) & 0xff] ^\n SUB_MIX_2[(s2 >>> 8) & 0xff] ^\n SUB_MIX_3[s3 & 0xff] ^\n keySchedule[ksRow++];\n var t1 =\n SUB_MIX_0[s1 >>> 24] ^\n SUB_MIX_1[(s2 >>> 16) & 0xff] ^\n SUB_MIX_2[(s3 >>> 8) & 0xff] ^\n SUB_MIX_3[s0 & 0xff] ^\n keySchedule[ksRow++];\n var t2 =\n SUB_MIX_0[s2 >>> 24] ^\n SUB_MIX_1[(s3 >>> 16) & 0xff] ^\n SUB_MIX_2[(s0 >>> 8) & 0xff] ^\n SUB_MIX_3[s1 & 0xff] ^\n keySchedule[ksRow++];\n var t3 =\n SUB_MIX_0[s3 >>> 24] ^\n SUB_MIX_1[(s0 >>> 16) & 0xff] ^\n SUB_MIX_2[(s1 >>> 8) & 0xff] ^\n SUB_MIX_3[s2 & 0xff] ^\n keySchedule[ksRow++];\n\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n\n // Shift rows, sub bytes, add round key\n var t0 =\n ((SBOX[s0 >>> 24] << 24) |\n (SBOX[(s1 >>> 16) & 0xff] << 16) |\n (SBOX[(s2 >>> 8) & 0xff] << 8) |\n SBOX[s3 & 0xff]) ^\n keySchedule[ksRow++];\n var t1 =\n ((SBOX[s1 >>> 24] << 24) |\n (SBOX[(s2 >>> 16) & 0xff] << 16) |\n (SBOX[(s3 >>> 8) & 0xff] << 8) |\n SBOX[s0 & 0xff]) ^\n keySchedule[ksRow++];\n var t2 =\n ((SBOX[s2 >>> 24] << 24) |\n (SBOX[(s3 >>> 16) & 0xff] << 16) |\n (SBOX[(s0 >>> 8) & 0xff] << 8) |\n SBOX[s1 & 0xff]) ^\n keySchedule[ksRow++];\n var t3 =\n ((SBOX[s3 >>> 24] << 24) |\n (SBOX[(s0 >>> 16) & 0xff] << 16) |\n (SBOX[(s1 >>> 8) & 0xff] << 8) |\n SBOX[s2 & 0xff]) ^\n keySchedule[ksRow++];\n\n // Set output\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n\n keySize: 256 / 32,\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */\n C.AES = BlockCipher._createHelper(AES);\n })();\n\n return CryptoJS.AES;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/cipher-core.js':\n /*!***********************************************!*\\\n !*** ./node_modules/crypto-js/cipher-core.js ***!\n \\***********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher ||\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n var Cipher = (C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function (key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function (key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function (xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Store transform mode and key\n this._xformMode = xformMode;\n this._key = key;\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-cipher logic\n this._doReset();\n },\n\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function (dataUpdate) {\n // Append\n this._append(dataUpdate);\n\n // Process available blocks\n return this._process();\n },\n\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function (dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n }\n\n // Perform concrete-cipher logic\n var finalProcessedData = this._doFinalize();\n\n return finalProcessedData;\n },\n\n keySize: 128 / 32,\n\n ivSize: 128 / 32,\n\n _ENC_XFORM_MODE: 1,\n\n _DEC_XFORM_MODE: 2,\n\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: (function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n\n return function (cipher) {\n return {\n encrypt: function (message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n\n decrypt: function (ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n },\n };\n };\n })(),\n }));\n\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n var StreamCipher = (C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function () {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n\n return finalProcessedBlocks;\n },\n\n blockSize: 1,\n }));\n\n /**\n * Mode namespace.\n */\n var C_mode = (C.mode = {});\n\n /**\n * Abstract base block cipher mode template.\n */\n var BlockCipherMode = (C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function (cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function (cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function (cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n },\n }));\n\n /**\n * Cipher Block Chaining mode.\n */\n var CBC = (C_mode.CBC = (function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n\n /**\n * CBC encryptor.\n */\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // XOR and encrypt\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n\n // Remember this block to use with next block\n this._prevBlock = words.slice(offset, offset + blockSize);\n },\n });\n\n /**\n * CBC decryptor.\n */\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // Remember this block to use with next block\n var thisBlock = words.slice(offset, offset + blockSize);\n\n // Decrypt and XOR\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n\n // This block becomes the previous block\n this._prevBlock = thisBlock;\n },\n });\n\n function xorBlock(words, offset, blockSize) {\n var block;\n\n // Shortcut\n var iv = this._iv;\n\n // Choose mixing block\n if (iv) {\n block = iv;\n\n // Remove IV for subsequent blocks\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n }\n\n // XOR blocks\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n\n return CBC;\n })());\n\n /**\n * Padding namespace.\n */\n var C_pad = (C.pad = {});\n\n /**\n * PKCS #5/7 padding strategy.\n */\n var Pkcs7 = (C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function (data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4;\n\n // Count padding bytes\n var nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);\n\n // Create padding word\n var paddingWord =\n (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n // Create padding\n var paddingWords = [];\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n // Add padding\n data.concat(padding);\n },\n\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function (data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n // Remove padding\n data.sigBytes -= nPaddingBytes;\n },\n });\n\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n var BlockCipher = (C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7,\n }),\n\n reset: function () {\n var modeCreator;\n\n // Reset cipher\n Cipher.reset.call(this);\n\n // Shortcuts\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n\n // Reset block mode\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {\n modeCreator = mode.createDecryptor;\n // Keep at least one block in the buffer for unpadding\n this._minBufferSize = 1;\n }\n\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n\n _doProcessBlock: function (words, offset) {\n this._mode.processBlock(words, offset);\n },\n\n _doFinalize: function () {\n var finalProcessedBlocks;\n\n // Shortcut\n var padding = this.cfg.padding;\n\n // Finalize\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize);\n\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n\n // Unpad data\n padding.unpad(finalProcessedBlocks);\n }\n\n return finalProcessedBlocks;\n },\n\n blockSize: 128 / 32,\n }));\n\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n var CipherParams = (C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function (cipherParams) {\n this.mixIn(cipherParams);\n },\n\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function (formatter) {\n return (formatter || this.formatter).stringify(this);\n },\n }));\n\n /**\n * Format namespace.\n */\n var C_format = (C.format = {});\n\n /**\n * OpenSSL formatting strategy.\n */\n var OpenSSLFormatter = (C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function (cipherParams) {\n var wordArray;\n\n // Shortcuts\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n\n // Format\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n\n return wordArray.toString(Base64);\n },\n\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function (openSSLStr) {\n var salt;\n\n // Parse base64\n var ciphertext = Base64.parse(openSSLStr);\n\n // Shortcut\n var ciphertextWords = ciphertext.words;\n\n // Test for salt\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n // Remove salt from ciphertext\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n\n return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n },\n });\n\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n var SerializableCipher = (C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter,\n }),\n\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Encrypt\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n\n // Shortcut\n var cipherCfg = encryptor.cfg;\n\n // Create and return serializable cipher params\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format,\n });\n },\n\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Decrypt\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n return plaintext;\n },\n\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function (ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n },\n }));\n\n /**\n * Key derivation function namespace.\n */\n var C_kdf = (C.kdf = {});\n\n /**\n * OpenSSL key derivation function.\n */\n var OpenSSLKdf = (C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function (password, keySize, ivSize, salt, hasher) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n }\n\n // Derive key and IV\n if (!hasher) {\n var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n } else {\n var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n }\n\n // Separate key and IV\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n\n // Return params\n return CipherParams.create({ key: key, iv: iv, salt: salt });\n },\n });\n\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n var PasswordBasedCipher = (C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf,\n }),\n\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Encrypt\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n // Mix in derived params\n ciphertext.mixIn(derivedParams);\n\n return ciphertext;\n },\n\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(\n password,\n cipher.keySize,\n cipher.ivSize,\n ciphertext.salt,\n cfg.hasher,\n );\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Decrypt\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n return plaintext;\n },\n }));\n })();\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/core.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/core.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory();\n } else {\n }\n })(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS =\n CryptoJS ||\n (function (Math, undefined) {\n var crypto;\n\n // Native crypto from window (Browser)\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n }\n\n // Native crypto in web worker (Browser)\n if (typeof self !== 'undefined' && self.crypto) {\n crypto = self.crypto;\n }\n\n // Native crypto from worker\n if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n crypto = globalThis.crypto;\n }\n\n // Native (experimental IE 11) crypto from window (Browser)\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n }\n\n // Native crypto from global (NodeJS)\n if (!crypto && typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.crypto) {\n crypto = __webpack_require__.g.crypto;\n }\n\n // Native crypto import via require (NodeJS)\n if (!crypto && 'function' === 'function') {\n try {\n crypto = __webpack_require__(/*! crypto */ '?9157');\n } catch (err) {}\n }\n\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n var cryptoSecureRandomInt = function () {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n\n /*\n\t * Local polyfill of Object.create\n\n\t */\n var create =\n Object.create ||\n (function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n\n F.prototype = obj;\n\n subtype = new F();\n\n F.prototype = null;\n\n return subtype;\n };\n })();\n\n /**\n * CryptoJS namespace.\n */\n var C = {};\n\n /**\n * Library namespace.\n */\n var C_lib = (C.lib = {});\n\n /**\n * Base object for prototypal inheritance.\n */\n var Base = (C_lib.Base = (function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function (overrides) {\n // Spawn\n var subtype = create(this);\n\n // Augment\n if (overrides) {\n subtype.mixIn(overrides);\n }\n\n // Create default initializer\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n }\n\n // Initializer's prototype is the subtype object\n subtype.init.prototype = subtype;\n\n // Reference supertype\n subtype.$super = this;\n\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function () {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function () {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function (properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n }\n\n // IE won't copy toString using the loop above\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function () {\n return this.init.prototype.extend(this);\n },\n };\n })());\n\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n var WordArray = (C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function (words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function (encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function (wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n\n // Clamp excess bits\n this.clamp();\n\n // Concat\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n }\n } else {\n // Copy one word at a time\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n }\n }\n this.sigBytes += thatSigBytes;\n\n // Chainable\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function () {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes;\n\n // Clamp\n words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function (nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n },\n }));\n\n /**\n * Encoder namespace.\n */\n var C_enc = (C.enc = {});\n\n /**\n * Hex encoding strategy.\n */\n var Hex = (C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function (hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n },\n });\n\n /**\n * Latin1 encoding strategy.\n */\n var Latin1 = (C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var latin1Chars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function (latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n }\n\n return new WordArray.init(words, latin1StrLength);\n },\n });\n\n /**\n * UTF-8 encoding strategy.\n */\n var Utf8 = (C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function (wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function (utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n },\n });\n\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n var BufferedBlockAlgorithm = (C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function () {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function (data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n }\n\n // Append\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function (doFlush) {\n var processedWords;\n\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n\n // Count blocks ready\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n }\n\n // Count words ready\n var nWordsReady = nBlocksReady * blockSize;\n\n // Count bytes ready\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n // Process blocks\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n }\n\n // Remove processed words\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n\n // Return processed words\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n\n return clone;\n },\n\n _minBufferSize: 0,\n }));\n\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n var Hasher = (C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function (cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-hasher logic\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function (messageUpdate) {\n // Append\n this._append(messageUpdate);\n\n // Update the hash\n this._process();\n\n // Chainable\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n }\n\n // Perform concrete-hasher logic\n var hash = this._doFinalize();\n\n return hash;\n },\n\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function (hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function (hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n },\n }));\n\n /**\n * Algorithm namespace.\n */\n var C_algo = (C.algo = {});\n\n return C;\n })(Math);\n\n return CryptoJS;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/enc-base64.js':\n /*!**********************************************!*\\\n !*** ./node_modules/crypto-js/enc-base64.js ***!\n \\**********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\n * Base64 encoding strategy.\n */\n var Base64 = (C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n\n // Clamp excess bits\n wordArray.clamp();\n\n // Convert\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n }\n }\n\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function (base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n }\n\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n }\n\n // Convert\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n });\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/evpkdf.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/evpkdf.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./sha1 */ './node_modules/crypto-js/sha1.js'),\n __webpack_require__(/*! ./hmac */ './node_modules/crypto-js/hmac.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n var EvpKDF = (C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1,\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function (cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function (password, salt) {\n var block;\n\n // Shortcut\n var cfg = this.cfg;\n\n // Init hasher\n var hasher = cfg.hasher.create();\n\n // Initial values\n var derivedKey = WordArray.create();\n\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n\n // Generate key\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n\n // Iterations\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n\n return derivedKey;\n },\n }));\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.EvpKDF;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/hmac.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/hmac.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n\n /**\n * HMAC algorithm.\n */\n var HMAC = (C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function (hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init();\n\n // Convert string to WordArray, else assume WordArray already\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n }\n\n // Shortcuts\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n // Allow arbitrary length keys\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n }\n\n // Clamp excess bits\n key.clamp();\n\n // Clone key for inner and outer pads\n var oKey = (this._oKey = key.clone());\n var iKey = (this._iKey = key.clone());\n\n // Shortcuts\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n\n // XOR keys with pad constants\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function () {\n // Shortcut\n var hasher = this._hasher;\n\n // Reset\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function (messageUpdate) {\n this._hasher.update(messageUpdate);\n\n // Chainable\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Shortcut\n var hasher = this._hasher;\n\n // Compute HMAC\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n return hmac;\n },\n }));\n })();\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/md5.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/md5.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Constants table\n var T = [];\n\n // Compute constants\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n }\n })();\n\n /**\n * MD5 hash algorithm.\n */\n var MD5 = (C_algo.MD5 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n\n _doProcessBlock: function (M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n\n M[offset_i] =\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00);\n }\n\n // Shortcuts\n var H = this._hash.words;\n\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n\n // Computation\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] =\n (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] =\n (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00);\n\n data.sigBytes = (dataWords.length + 1) * 4;\n\n // Hash final blocks\n this._process();\n\n // Shortcuts\n var hash = this._hash;\n var H = hash.words;\n\n // Swap endian\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n }\n\n // Return final computed hash\n return hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n function FF(a, b, c, d, x, s, t) {\n var n = a + ((b & c) | (~b & d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function GG(a, b, c, d, x, s, t) {\n var n = a + ((b & d) | (c & ~d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n C.MD5 = Hasher._createHelper(MD5);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n\n return CryptoJS.MD5;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/pbkdf2.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/pbkdf2.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./sha256 */ './node_modules/crypto-js/sha256.js'),\n __webpack_require__(/*! ./hmac */ './node_modules/crypto-js/hmac.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var HMAC = C_algo.HMAC;\n\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */\n var PBKDF2 = (C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA256\n * @property {number} iterations The number of iterations to perform. Default: 250000\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: SHA256,\n iterations: 250000,\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */\n init: function (cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function (password, salt) {\n // Shortcut\n var cfg = this.cfg;\n\n // Init HMAC\n var hmac = HMAC.create(cfg.hasher, password);\n\n // Initial values\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([0x00000001]);\n\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n\n // Generate key\n while (derivedKeyWords.length < keySize) {\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset();\n\n // Shortcuts\n var blockWords = block.words;\n var blockWordsLength = blockWords.length;\n\n // Iterations\n var intermediate = block;\n for (var i = 1; i < iterations; i++) {\n intermediate = hmac.finalize(intermediate);\n hmac.reset();\n\n // Shortcut\n var intermediateWords = intermediate.words;\n\n // XOR intermediate with block\n for (var j = 0; j < blockWordsLength; j++) {\n blockWords[j] ^= intermediateWords[j];\n }\n }\n\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n derivedKey.sigBytes = keySize * 4;\n\n return derivedKey;\n },\n }));\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */\n C.PBKDF2 = function (password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.PBKDF2;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/rabbit.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/rabbit.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n\n // Reusable objects\n var S = [];\n var C_ = [];\n var G = [];\n\n /**\n * Rabbit stream cipher algorithm\n */\n var Rabbit = (C_algo.Rabbit = StreamCipher.extend({\n _doReset: function () {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv;\n\n // Swap endian\n for (var i = 0; i < 4; i++) {\n K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n }\n\n // Generate initial state values\n var X = (this._X = [\n K[0],\n (K[3] << 16) | (K[2] >>> 16),\n K[1],\n (K[0] << 16) | (K[3] >>> 16),\n K[2],\n (K[1] << 16) | (K[0] >>> 16),\n K[3],\n (K[2] << 16) | (K[1] >>> 16),\n ]);\n\n // Generate initial counter values\n var C = (this._C = [\n (K[2] << 16) | (K[2] >>> 16),\n (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n (K[3] << 16) | (K[3] >>> 16),\n (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n (K[0] << 16) | (K[0] >>> 16),\n (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n (K[1] << 16) | (K[1] >>> 16),\n (K[3] & 0xffff0000) | (K[0] & 0x0000ffff),\n ]);\n\n // Carry bit\n this._b = 0;\n\n // Iterate the system four times\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n\n // Modify the counters\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[(i + 4) & 7];\n }\n\n // IV setup\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n\n // Generate four subvectors\n var i0 =\n (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n var i2 =\n (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n // Modify counter values\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3;\n\n // Iterate the system four times\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var X = this._X;\n\n // Iterate the system\n nextState.call(this);\n\n // Generate four keystream words\n S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n // Encrypt\n M[offset + i] ^= S[i];\n }\n },\n\n blockSize: 128 / 32,\n\n ivSize: 64 / 32,\n }));\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C;\n\n // Save old counter values\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n }\n\n // Calculate new counter values\n C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n C[1] = (C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0)) | 0;\n C[2] = (C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0)) | 0;\n C[3] = (C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0)) | 0;\n C[4] = (C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0)) | 0;\n C[5] = (C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0)) | 0;\n C[6] = (C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0)) | 0;\n C[7] = (C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0)) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n\n // Calculate the g-values\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i];\n\n // Construct high and low argument for squaring\n var ga = gx & 0xffff;\n var gb = gx >>> 16;\n\n // Calculate high and low result of squaring\n var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n // High XOR low\n G[i] = gh ^ gl;\n }\n\n // Calculate new state values\n X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */\n C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n\n return CryptoJS.Rabbit;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/rc4.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/rc4.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n\n /**\n * RC4 stream cipher algorithm.\n */\n var RC4 = (C_algo.RC4 = StreamCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes;\n\n // Init sbox\n var S = (this._S = []);\n for (var i = 0; i < 256; i++) {\n S[i] = i;\n }\n\n // Key setup\n for (var i = 0, j = 0; i < 256; i++) {\n var keyByteIndex = i % keySigBytes;\n var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n j = (j + S[i] + keyByte) % 256;\n\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n }\n\n // Counters\n this._i = this._j = 0;\n },\n\n _doProcessBlock: function (M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n\n keySize: 256 / 32,\n\n ivSize: 0,\n }));\n\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j;\n\n // Generate keystream word\n var keystreamWord = 0;\n for (var n = 0; n < 4; n++) {\n i = (i + 1) % 256;\n j = (j + S[i]) % 256;\n\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n\n keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n }\n\n // Update counters\n this._i = i;\n this._j = j;\n\n return keystreamWord;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */\n C.RC4 = StreamCipher._createHelper(RC4);\n\n /**\n * Modified RC4 stream cipher algorithm.\n */\n var RC4Drop = (C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */\n cfg: RC4.cfg.extend({\n drop: 192,\n }),\n\n _doReset: function () {\n RC4._doReset.call(this);\n\n // Drop\n for (var i = this.cfg.drop; i > 0; i--) {\n generateKeystreamWord.call(this);\n }\n },\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n\n return CryptoJS.RC4;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/sha1.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/sha1.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-1 hash algorithm.\n */\n var SHA1 = (C_algo.SHA1 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n // Computation\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = (n << 1) | (n >>> 31);\n }\n\n var t = ((a << 5) | (a >>> 27)) + e + W[i];\n if (i < 20) {\n t += ((b & c) | (~b & d)) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n } /* if (i < 80) */ else {\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n\n e = d;\n d = c;\n c = (b << 30) | (b >>> 2);\n b = a;\n a = t;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n C.SHA1 = Hasher._createHelper(SHA1);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n\n return CryptoJS.SHA1;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/sha256.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/sha256.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Initialization and round constants tables\n var H = [];\n var K = [];\n\n // Compute constants\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return ((n - (n | 0)) * 0x100000000) | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n nPrime++;\n }\n\n n++;\n }\n })();\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-256 hash algorithm.\n */\n var SHA256 = (C_algo.SHA256 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init(H.slice(0));\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n\n // Computation\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 =\n ((gamma0x << 25) | (gamma0x >>> 7)) ^ ((gamma0x << 14) | (gamma0x >>> 18)) ^ (gamma0x >>> 3);\n\n var gamma1x = W[i - 2];\n var gamma1 =\n ((gamma1x << 15) | (gamma1x >>> 17)) ^ ((gamma1x << 13) | (gamma1x >>> 19)) ^ (gamma1x >>> 10);\n\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = (e & f) ^ (~e & g);\n var maj = (a & b) ^ (a & c) ^ (b & c);\n\n var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n H[5] = (H[5] + f) | 0;\n H[6] = (H[6] + g) | 0;\n H[7] = (H[7] + h) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n C.SHA256 = Hasher._createHelper(SHA256);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/tripledes.js':\n /*!*********************************************!*\\\n !*** ./node_modules/crypto-js/tripledes.js ***!\n \\*********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n\n // Permuted Choice 1 constants\n var PC1 = [\n 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44,\n 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20,\n 12, 4,\n ];\n\n // Permuted Choice 2 constants\n var PC2 = [\n 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37,\n 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32,\n ];\n\n // Cumulative bit shift constants\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n // SBOXes and round permutation constants\n var SBOX_P = [\n {\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002,\n },\n {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000,\n },\n {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100,\n },\n {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040,\n },\n {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080,\n },\n {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008,\n },\n {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001,\n },\n {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800,\n },\n ];\n\n // Masks that select the SBOX input\n var SBOX_MASK = [\n 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f,\n ];\n\n /**\n * DES block cipher algorithm.\n */\n var DES = (C_algo.DES = BlockCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n\n // Select 56 bits according to PC1\n var keyBits = [];\n for (var i = 0; i < 56; i++) {\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - (keyBitPos % 32))) & 1;\n }\n\n // Assemble 16 subkeys\n var subKeys = (this._subKeys = []);\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n // Create subkey\n var subKey = (subKeys[nSubKey] = []);\n\n // Shortcut\n var bitShift = BIT_SHIFTS[nSubKey];\n\n // Select 48 bits according to PC2\n for (var i = 0; i < 24; i++) {\n // Select from the left 28 key bits\n subKey[(i / 6) | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << (31 - (i % 6));\n\n // Select from the right 28 key bits\n subKey[4 + ((i / 6) | 0)] |= keyBits[28 + ((PC2[i + 24] - 1 + bitShift) % 28)] << (31 - (i % 6));\n }\n\n // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n for (var i = 1; i < 7; i++) {\n subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n }\n subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n }\n\n // Compute inverse subkeys\n var invSubKeys = (this._invSubKeys = []);\n for (var i = 0; i < 16; i++) {\n invSubKeys[i] = subKeys[15 - i];\n }\n },\n\n encryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n\n decryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n\n _doCryptBlock: function (M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1];\n\n // Initial permutation\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555);\n\n // Rounds\n for (var round = 0; round < 16; round++) {\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock;\n\n // Feistel function\n var f = 0;\n for (var i = 0; i < 8; i++) {\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n }\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n }\n\n // Undo swap from last round\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t;\n\n // Final permutation\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n // Set output\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n\n keySize: 64 / 32,\n\n ivSize: 64 / 32,\n\n blockSize: 64 / 32,\n }));\n\n // Swap bits across the left and right words\n function exchangeLR(offset, mask) {\n var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n\n function exchangeRL(offset, mask) {\n var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */\n C.DES = BlockCipher._createHelper(DES);\n\n /**\n * Triple-DES block cipher algorithm.\n */\n var TripleDES = (C_algo.TripleDES = BlockCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Make sure the key length is valid (64, 128 or >= 192 bit)\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n }\n\n // Extend the key according to the keying options defined in 3DES standard\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n // Create DES instances\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n\n encryptBlock: function (M, offset) {\n this._des1.encryptBlock(M, offset);\n this._des2.decryptBlock(M, offset);\n this._des3.encryptBlock(M, offset);\n },\n\n decryptBlock: function (M, offset) {\n this._des3.decryptBlock(M, offset);\n this._des2.encryptBlock(M, offset);\n this._des1.decryptBlock(M, offset);\n },\n\n keySize: 192 / 32,\n\n ivSize: 64 / 32,\n\n blockSize: 64 / 32,\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */\n C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n\n return CryptoJS.TripleDES;\n });\n\n /***/\n },\n\n /***/ './node_modules/lz-string/libs/lz-string.js':\n /*!**************************************************!*\\\n !*** ./node_modules/lz-string/libs/lz-string.js ***!\n \\**************************************************/\n /***/ (module, exports, __webpack_require__) => {\n var __WEBPACK_AMD_DEFINE_RESULT__; // Copyright (c) 2013 Pieroxy \n // This work is free. You can redistribute it and/or modify it\n // under the terms of the WTFPL, Version 2\n // For more information see LICENSE.txt or http://www.wtfpl.net/\n //\n // For more information, the home page:\n // http://pieroxy.net/blog/pages/lz-string/testing.html\n //\n // LZ-based compression algorithm, version 1.4.5\n var LZString = (function () {\n // private property\n var f = String.fromCharCode;\n var keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var keyStrUriSafe = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$';\n var baseReverseDic = {};\n\n function getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n }\n\n var LZString = {\n compressToBase64: function (input) {\n if (input == null) return '';\n var res = LZString._compress(input, 6, function (a) {\n return keyStrBase64.charAt(a);\n });\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res;\n case 1:\n return res + '===';\n case 2:\n return res + '==';\n case 3:\n return res + '=';\n }\n },\n\n decompressFromBase64: function (input) {\n if (input == null) return '';\n if (input == '') return null;\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrBase64, input.charAt(index));\n });\n },\n\n compressToUTF16: function (input) {\n if (input == null) return '';\n return (\n LZString._compress(input, 15, function (a) {\n return f(a + 32);\n }) + ' '\n );\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 16384, function (index) {\n return compressed.charCodeAt(index) - 32;\n });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n\n for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i * 2] = current_value >>> 8;\n buf[i * 2 + 1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array: function (compressed) {\n if (compressed === null || compressed === undefined) {\n return LZString.decompress(compressed);\n } else {\n var buf = new Array(compressed.length / 2); // 2 bytes per character\n for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) {\n buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n }\n },\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return '';\n return LZString._compress(input, 6, function (a) {\n return keyStrUriSafe.charAt(a);\n });\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent: function (input) {\n if (input == null) return '';\n if (input == '') return null;\n input = input.replace(/ /g, '+');\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrUriSafe, input.charAt(index));\n });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function (a) {\n return f(a);\n });\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return '';\n var i,\n value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data = [],\n context_data_val = 0,\n context_data_position = 0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n } else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 32768, function (index) {\n return compressed.charCodeAt(index);\n });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = '',\n result = [],\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c,\n data = { val: getNextValue(0), position: resetValue, index: 1 };\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2, 2);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch ((next = bits)) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return '';\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return '';\n }\n\n bits = 0;\n maxpower = Math.pow(2, numBits);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n }\n },\n };\n return LZString;\n })();\n\n if (true) {\n !((__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return LZString;\n }.call(exports, __webpack_require__, exports, module)),\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {\n }\n\n /***/\n },\n\n /***/ '?9157':\n /*!************************!*\\\n !*** crypto (ignored) ***!\n \\************************/\n /***/ () => {\n /* (ignored) */\n /***/\n },\n\n /******/\n };\n /************************************************************************/\n /******/ // The module cache\n /******/ var __webpack_module_cache__ = {};\n /******/\n /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ // Check if module is in cache\n /******/ var cachedModule = __webpack_module_cache__[moduleId];\n /******/ if (cachedModule !== undefined) {\n /******/ return cachedModule.exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/ var module = (__webpack_module_cache__[moduleId] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {},\n /******/\n });\n /******/\n /******/ // Execute the module function\n /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Return the exports of the module\n /******/ return module.exports;\n /******/\n }\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = (module) => {\n /******/ var getter = module && module.__esModule ? /******/ () => module['default'] : /******/ () => module;\n /******/ __webpack_require__.d(getter, { a: getter });\n /******/ return getter;\n /******/\n };\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ __webpack_require__.d = (exports, definition) => {\n /******/ for (var key in definition) {\n /******/ if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n /******/\n }\n /******/\n }\n /******/\n };\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/global */\n /******/ (() => {\n /******/ __webpack_require__.g = (function () {\n /******/ if (typeof globalThis === 'object') return globalThis;\n /******/ try {\n /******/ return this || new Function('return this')();\n /******/\n } catch (e) {\n /******/ if (typeof window === 'object') return window;\n /******/\n }\n /******/\n })();\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ __webpack_require__.r = (exports) => {\n /******/ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n /******/\n }\n /******/ Object.defineProperty(exports, '__esModule', { value: true });\n /******/\n };\n /******/\n })();\n /******/\n /************************************************************************/\n var __webpack_exports__ = {};\n // This entry need to be wrapped in an IIFE because it need to be in strict mode.\n (() => {\n 'use strict';\n /*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /* harmony import */ var _SecureLS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./SecureLS */ './src/SecureLS.js',\n );\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = _SecureLS__WEBPACK_IMPORTED_MODULE_0__.SecureLS;\n })();\n\n /******/ return __webpack_exports__;\n /******/\n })();\n});\n//# sourceMappingURL=secure-ls.js.map\n","(function webpackUniversalModuleDefinition(root, factory) {\n\t// CommonJS2\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\t// AMD\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\t// CommonJS\n\telse if(typeof exports === 'object')\n\t\texports[\"SecureLS\"] = factory();\n\t// Root\n\telse\n\t\troot[\"SecureLS\"] = factory();\n})(this, () => {\nreturn ","const Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n encode: function (e) {\n let t = '';\n let n, r, i, s, o, u, a;\n let f = 0;\n\n e = Base64._utf8Encode(e);\n while (f < e.length) {\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = ((n & 3) << 4) | (r >> 4);\n u = ((r & 15) << 2) | (i >> 6);\n a = i & 63;\n if (isNaN(r)) {\n u = a = 64;\n } else if (isNaN(i)) {\n a = 64;\n }\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function (e) {\n let t = '';\n let n, r, i;\n let s, o, u, a;\n let f = 0;\n\n e = e.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = (s << 2) | (o >> 4);\n r = ((o & 15) << 4) | (u >> 2);\n i = ((u & 3) << 6) | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) {\n t = t + String.fromCharCode(r);\n }\n if (a !== 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function (e) {\n e = e.replace(/\\r\\n/g, '\\n');\n let t = '';\n\n for (let n = 0; n < e.length; n++) {\n let r = e.charCodeAt(n);\n\n if (r < 128) {\n t += String.fromCharCode(r);\n } else if (r > 127 && r < 2048) {\n t += String.fromCharCode((r >> 6) | 192);\n t += String.fromCharCode((r & 63) | 128);\n } else {\n t += String.fromCharCode((r >> 12) | 224);\n t += String.fromCharCode(((r >> 6) & 63) | 128);\n t += String.fromCharCode((r & 63) | 128);\n }\n }\n return t;\n },\n _utf8Decode: function (e) {\n let t = '';\n let n = 0;\n let r, c2, c3;\n\n r = c2 = 0;\n while (n < e.length) {\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode(((r & 31) << 6) | (c2 & 63));\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode(((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n n += 3;\n }\n }\n return t;\n },\n};\n\nexport default Base64;\n","import constants from './constants';\nimport enc from './enc-utf8';\nimport utils from './utils';\n\nimport AES from 'crypto-js/aes';\nimport RABBIT from 'crypto-js/rabbit';\nimport RC4 from 'crypto-js/rc4';\nimport DES from 'crypto-js/tripledes';\nimport { compressToUTF16, decompressFromUTF16 } from 'lz-string/libs/lz-string';\nimport Base64 from './Base64';\n\nconst encryptors = {\n [constants.EncrytionTypes.AES]: AES,\n [constants.EncrytionTypes.DES]: DES,\n [constants.EncrytionTypes.RABBIT]: RABBIT,\n [constants.EncrytionTypes.RC4]: RC4,\n};\n\nexport class SecureLS {\n constructor({\n encryptionSecret = '',\n encryptionNamespace = '',\n isCompression = true,\n encodingType = constants.EncrytionTypes.BASE64,\n storage = localStorage,\n metaKey = constants.metaKey\n } = {}) {\n // Assign libraries and utilities\n Object.assign(this, {\n _name: 'secure-ls',\n Base64,\n LZString: { compressToUTF16, decompressFromUTF16 },\n AES,\n DES,\n RABBIT,\n RC4,\n enc,\n });\n\n // Configuration and property assignment\n this.config = { encryptionSecret, encryptionNamespace, isCompression, encodingType: encodingType.toLowerCase(), storage, metaKey};\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n\n // Initialize the class\n this.init();\n }\n\n init() {\n let metaData = this.getMetaData();\n\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n\n _isBase64EncryptionType() {\n return (\n Base64 &&\n (typeof this.config.encodingType === 'undefined' || this.config.encodingType === constants.EncrytionTypes.BASE64)\n );\n }\n\n _isAESEncryptionType() {\n return AES && this.config.encodingType === constants.EncrytionTypes.AES;\n }\n\n _isDESEncryptionType() {\n return DES && this.config.encodingType === constants.EncrytionTypes.DES;\n }\n\n _isRabbitEncryptionType() {\n return RABBIT && this.config.encodingType === constants.EncrytionTypes.RABBIT;\n }\n\n _isRC4EncryptionType() {\n return RC4 && this.config.encodingType === constants.EncrytionTypes.RC4;\n }\n\n _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n\n getEncryptionSecret(key) {\n let metaData = this.getMetaData();\n let obj = utils.getObjectFromKey(metaData.keys, key);\n\n if (!obj) {\n return;\n }\n\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === 'undefined') {\n this.encryptionSecret = obj.s;\n\n if (!this.encryptionSecret) {\n this.encryptionSecret = utils.generateSecretKey();\n this.setMetaData();\n }\n } else {\n this.encryptionSecret = this.config.encryptionSecret || obj.s || '';\n }\n }\n }\n\n getEncryptionType() {\n const encodingType = this.config.encodingType;\n return encodingType ? encodingType.toLowerCase() : constants.EncrytionTypes.BASE64;\n }\n\n getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n\n setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n\n setMetaData() {\n let dataToStore = this.processData(\n {\n keys: this.allKeys,\n },\n true,\n );\n\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n\n getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n\n getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? '__' + this.config.encryptionNamespace : '');\n }\n\n resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n\n processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === '') {\n return '';\n }\n\n let jsonData;\n\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error('Could not stringify data', err);\n }\n\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n let encodedData = jsonData;\n\n if (this._isBase64 || isAllKeysData) {\n encodedData = Base64.encode(jsonData);\n } else {\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n }\n\n encodedData = encodedData && encodedData.toString();\n }\n\n // Compress data if set to true\n let compressedData = encodedData;\n if (this._isCompression || isAllKeysData) {\n compressedData = this.LZString.compressToUTF16(encodedData);\n }\n\n return compressedData;\n }\n\n\n // PUBLIC APIs\n getAllKeys() {\n let data = this.getMetaData();\n\n return utils.extractKeyNames(data) || [];\n }\n\n get(key, isAllKeysData) {\n let decodedData = '';\n let jsonData = '';\n\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return jsonData;\n }\n\n let data = this.getDataFromLocalStorage(key);\n\n if (!data) {\n return jsonData;\n }\n\n let deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) {\n // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n }\n\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) {\n // meta data always Base64\n decodedData = Base64.decode(deCompressedData);\n } else {\n this.getEncryptionSecret(key);\n const encryptor = encryptors[this.getEncryptionType()];\n\n if (encryptor) {\n const bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n\n if (bytes) {\n decodedData = bytes.toString(enc._Utf8);\n }\n }\n }\n\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error('Could not parse JSON', err);\n }\n\n return jsonData;\n }\n\n set(key, data) {\n let dataToStore = '';\n\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n\n this.getEncryptionSecret(key);\n\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!utils.isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret,\n });\n this.setMetaData();\n }\n }\n\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n\n remove(key) {\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n\n if (key === this.metaKey && this.getAllKeys().length) {\n utils.warn(constants.WarningEnum.META_KEY_REMOVE);\n return;\n }\n\n if (utils.isKeyPresent(this.allKeys, key)) {\n utils.removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n\n removeAll() {\n let keys = this.getAllKeys();\n\n for (let i = 0; i < keys.length; i++) {\n this.storage.removeItem(keys[i]);\n }\n\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n\n clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n}\n","/*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n\nlet CryptoJSWordArray = {\n random: function (nBytes) {\n let words = [];\n let r = function (mw) {\n let mz = 0x3ade68b1;\n let mask = 0xffffffff;\n\n return function () {\n mz = (0x9069 * (mz & 0xffff) + (mz >> 0x10)) & mask;\n mw = (0x4650 * (mw & 0xffff) + (mw >> 0x10)) & mask;\n let result = ((mz << 0x10) + mw) & mask;\n\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n\n for (let i = 0, rcache; i < nBytes; i += 4) {\n let _r = r((rcache || Math.random()) * 0x100000000);\n\n rcache = _r() * 0x3ade67b7;\n words.push((_r() * 0x100000000) | 0);\n }\n\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n\n Set: function (words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n};\n\nexport default CryptoJSWordArray;\n","const WarningEnum = {\n KEY_NOT_PROVIDED: 'keyNotProvided',\n META_KEY_REMOVE: 'metaKeyRemove',\n DEFAULT_TEXT: 'defaultText',\n};\n\nconst WarningTypes = {};\n\nWarningTypes[WarningEnum.KEY_NOT_PROVIDED] = 'Secure LS: Key not provided. Aborting operation!';\nWarningTypes[WarningEnum.META_KEY_REMOVE] = `Secure LS: Meta key can not be removed\nunless all keys created by Secure LS are removed!`;\nWarningTypes[WarningEnum.DEFAULT_TEXT] = `Unexpected output`;\n\nconst constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: 'base64',\n AES: 'aes',\n DES: 'des',\n RABBIT: 'rabbit',\n RC4: 'rc4',\n },\n metaKey: '_secure__ls__metadata',\n secretPhrase: 's3cr3t$#@135^&*246'\n};\n\nexport default constants;\n","/*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\nconst enc = {\n Latin1: {\n stringify: (wordArray) => {\n // Shortcuts\n let words = wordArray.words;\n let sigBytes = wordArray.sigBytes;\n let latin1Chars = [],\n i,\n bite;\n\n // Convert\n for (i = 0; i < sigBytes; i++) {\n bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n },\n\n _Utf8: {\n stringify: (wordArray) => {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error('Malformed UTF-8 data', err);\n }\n },\n },\n};\n\nexport default enc;\n","import PBKDF2 from 'crypto-js/pbkdf2';\nimport constants from './constants';\nimport CryptoJSWordArray from './WordArray';\n\nconst utils = {\n is: (key) => !!key,\n\n warn: (reason = constants.WarningEnum.DEFAULT_TEXT) => {\n console.warn(constants.WarningTypes[reason]);\n },\n\n generateSecretKey: () => {\n const salt = CryptoJSWordArray.random(128 / 8);\n const key128Bits = PBKDF2(constants.secretPhrase, salt, { keySize: 128 / 32 });\n return key128Bits.toString();\n },\n\n getObjectFromKey: (data = [], key) => {\n return data.find(item => item.k === key) || {};\n },\n\n extractKeyNames: ({ keys = [] } = {}) => {\n return keys.map(({ k }) => k);\n },\n\n isKeyPresent: (allKeys = [], key) => {\n return allKeys.some(item => String(item.k) === String(key));\n },\n\n removeFromKeysList: (allKeys = [], key) => {\n const index = allKeys.findIndex(item => item.k === key);\n if (index !== -1) {\n allKeys.splice(index, 1);\n }\n return index;\n },\n};\n\n\nexport default utils;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","/* (ignored) */","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { SecureLS } from './SecureLS';\n\nexport default SecureLS;\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([, \"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Vue\"], root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"00ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"057f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar nativeGetOwnPropertyNames = __webpack_require__(\"241c\").f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ \"159b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar DOMIterables = __webpack_require__(\"fdbc\");\nvar forEach = __webpack_require__(\"17c2\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"25f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(\"6eeb\");\nvar anObject = __webpack_require__(\"825a\");\nvar fails = __webpack_require__(\"d039\");\nvar flags = __webpack_require__(\"ad6d\");\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"2ca0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar toLength = __webpack_require__(\"50c4\");\nvar notARegExp = __webpack_require__(\"5a34\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar correctIsRegExpLogic = __webpack_require__(\"ab13\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"35a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"f5df\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"3bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"3ca3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(\"6547\").charAt;\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar defineIterator = __webpack_require__(\"7dd0\");\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"3f8c\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"428f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"44d2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar create = __webpack_require__(\"7c73\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"44e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar classof = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"4930\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4df4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(\"0366\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\nvar isArrayIteratorMethod = __webpack_require__(\"e95a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar createProperty = __webpack_require__(\"8418\");\nvar getIteratorMethod = __webpack_require__(\"35a1\");\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"4fad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar $entries = __webpack_require__(\"6f53\").entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"5a34\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(\"44e7\");\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5db7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar flattenIntoArray = __webpack_require__(\"a2bf\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar aFunction = __webpack_require__(\"1c0b\");\nvar arraySpeciesCreate = __webpack_require__(\"65f0\");\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"6f53\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar objectKeys = __webpack_require__(\"df75\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"73d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = __webpack_require__(\"44d2\");\n\naddToUnscopables('flatMap');\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"7dd0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar createIteratorConstructor = __webpack_require__(\"9ed3\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar IteratorsCore = __webpack_require__(\"ae93\");\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"8875\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\n","\n\n\n","import { defineComponent, h } from 'vue';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar KEYCODE_ENTER = 13;\nvar KEYCODE_TAB = 9;\nvar KEYCODE_BACKSPACE = 8;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar KEYCODE_ESCAPE = 27;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' && navigator && /*#__PURE__*/ /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' && navigator && /*#__PURE__*/ /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar PrismEditor = /*#__PURE__*/defineComponent({\n props: {\n lineNumbers: {\n type: Boolean,\n \"default\": false\n },\n autoStyleLineNumbers: {\n type: Boolean,\n \"default\": true\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n modelValue: {\n type: String,\n \"default\": ''\n },\n highlight: {\n type: Function,\n required: true\n },\n tabSize: {\n type: Number,\n \"default\": 2\n },\n insertSpaces: {\n type: Boolean,\n \"default\": true\n },\n ignoreTabKey: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": ''\n }\n },\n data: function data() {\n return {\n capture: true,\n history: {\n stack: [],\n offset: -1\n },\n lineNumbersHeight: '20px',\n codeData: ''\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler: function handler(newVal) {\n if (!newVal) {\n this.codeData = '';\n } else {\n this.codeData = newVal;\n }\n }\n },\n content: {\n immediate: true,\n handler: function handler() {\n var _this = this;\n\n if (this.lineNumbers) {\n this.$nextTick(function () {\n _this.setLineNumbersHeight();\n });\n }\n }\n },\n lineNumbers: function lineNumbers() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.styleLineNumbers();\n\n _this2.setLineNumbersHeight();\n });\n }\n },\n computed: {\n isEmpty: function isEmpty() {\n return this.codeData.length === 0;\n },\n content: function content() {\n var result = this.highlight(this.codeData) + '
'; // todo: VNode support?\n\n return result;\n },\n lineNumbersCount: function lineNumbersCount() {\n var totalLines = this.codeData.split(/\\r\\n|\\n/).length;\n return totalLines;\n }\n },\n mounted: function mounted() {\n this._recordCurrentState();\n\n this.styleLineNumbers();\n },\n methods: {\n setLineNumbersHeight: function setLineNumbersHeight() {\n this.lineNumbersHeight = getComputedStyle(this.$refs.pre).height;\n },\n styleLineNumbers: function styleLineNumbers() {\n if (!this.lineNumbers || !this.autoStyleLineNumbers) return;\n var $editor = this.$refs.pre;\n var $lineNumbers = this.$el.querySelector('.prism-editor__line-numbers');\n var editorStyles = window.getComputedStyle($editor);\n this.$nextTick(function () {\n var btlr = 'border-top-left-radius';\n var bblr = 'border-bottom-left-radius';\n if (!$lineNumbers) return;\n $lineNumbers.style[btlr] = editorStyles[btlr];\n $lineNumbers.style[bblr] = editorStyles[bblr];\n $editor.style[btlr] = '0';\n $editor.style[bblr] = '0';\n var stylesList = ['background-color', 'margin-top', 'padding-top', 'font-family', 'font-size', 'line-height'];\n stylesList.forEach(function (style) {\n $lineNumbers.style[style] = editorStyles[style];\n });\n $lineNumbers.style['margin-bottom'] = '-' + editorStyles['padding-top'];\n });\n },\n _recordCurrentState: function _recordCurrentState() {\n var input = this.$refs.textarea;\n if (!input) return; // Save current state of the input\n\n var value = input.value,\n selectionStart = input.selectionStart,\n selectionEnd = input.selectionEnd;\n\n this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n },\n _getLines: function _getLines(text, position) {\n return text.substring(0, position).split('\\n');\n },\n _applyEdits: function _applyEdits(record) {\n // Save last selection state\n var input = this.$refs.textarea;\n var last = this.history.stack[this.history.offset];\n\n if (last && input) {\n this.history.stack[this.history.offset] = _extends({}, last, {\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd\n });\n } // Save the changes\n\n\n this._recordChange(record);\n\n this._updateInput(record);\n },\n _recordChange: function _recordChange(record, overwrite) {\n if (overwrite === void 0) {\n overwrite = false;\n }\n\n var _this$history = this.history,\n stack = _this$history.stack,\n offset = _this$history.offset;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n this.history.stack = stack.slice(0, offset + 1); // Limit the number of operations to 100\n\n var count = this.history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n this.history.stack = stack.slice(extras, count);\n this.history.offset = Math.max(this.history.offset - extras, 0);\n }\n }\n\n var timestamp = Date.now();\n\n if (overwrite) {\n var last = this.history.stack[this.history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n var _this$_getLines$pop, _this$_getLines$pop2;\n\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i; // Get the previous line\n\n var previous = (_this$_getLines$pop = this._getLines(last.value, last.selectionStart).pop()) === null || _this$_getLines$pop === void 0 ? void 0 : _this$_getLines$pop.match(re); // Get the current line\n\n var current = (_this$_getLines$pop2 = this._getLines(record.value, record.selectionStart).pop()) === null || _this$_getLines$pop2 === void 0 ? void 0 : _this$_getLines$pop2.match(re);\n\n if (previous && current && current[1].startsWith(previous[1])) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n this.history.stack[this.history.offset] = _extends({}, record, {\n timestamp: timestamp\n });\n return;\n }\n }\n } // Add the new operation to the stack\n\n\n this.history.stack.push(_extends({}, record, {\n timestamp: timestamp\n }));\n this.history.offset++;\n },\n _updateInput: function _updateInput(record) {\n var input = this.$refs.textarea;\n if (!input) return; // Update values and selection state\n\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n this.$emit('update:modelValue', record.value); // this.props.onValueChange(record.value);\n },\n handleChange: function handleChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n selectionStart = _e$target.selectionStart,\n selectionEnd = _e$target.selectionEnd;\n\n this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n }, true);\n\n this.$emit('update:modelValue', value); // this.props.onValueChange(value);\n },\n _undoEdit: function _undoEdit() {\n var _this$history2 = this.history,\n stack = _this$history2.stack,\n offset = _this$history2.offset; // Get the previous edit\n\n var record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n\n this.history.offset = Math.max(offset - 1, 0);\n }\n },\n _redoEdit: function _redoEdit() {\n var _this$history3 = this.history,\n stack = _this$history3.stack,\n offset = _this$history3.offset; // Get the next edit\n\n var record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n\n this.history.offset = Math.min(offset + 1, stack.length - 1);\n }\n },\n handleKeyDown: function handleKeyDown(e) {\n // console.log(navigator.platform);\n var tabSize = this.tabSize,\n insertSpaces = this.insertSpaces,\n ignoreTabKey = this.ignoreTabKey; // onKeyDown(e);\n\n this.$emit('keydown', e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.target.blur();\n this.$emit('blur', e);\n }\n\n var _e$target2 = e.target,\n value = _e$target2.value,\n selectionStart = _e$target2.selectionStart,\n selectionEnd = _e$target2.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && this.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = this._getLines(value, selectionStart);\n\n var startLine = linesBeforeCaret.length - 1;\n var endLine = this._getLines(value, selectionEnd).length - 1;\n var nextValue = value.split('\\n').map(function (line, i) {\n if (i >= startLine && i <= endLine && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n }).join('\\n');\n\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: startLineText.startsWith(tabCharacter) ? selectionStart - tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length)\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var _linesBeforeCaret = this._getLines(value, selectionStart);\n\n var _startLine = _linesBeforeCaret.length - 1;\n\n var _endLine = this._getLines(value, selectionEnd).length - 1;\n\n var _startLineText = _linesBeforeCaret[_startLine];\n\n this._applyEdits({\n value: value.split('\\n').map(function (line, i) {\n if (i >= _startLine && i <= _endLine) {\n return tabCharacter + line;\n }\n\n return line;\n }).join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: /\\S/.test(_startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (_endLine - _startLine + 1)\n });\n } else {\n var updatedSelection = selectionStart + tabCharacter.length;\n\n this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n\n var _updatedSelection = selectionStart - tabCharacter.length;\n\n this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: _updatedSelection,\n selectionEnd: _updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = this._getLines(value, selectionStart).pop();\n\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n\n if (matches && matches[0]) {\n e.preventDefault(); // Preserve indentation on inserting a new line\n\n var indent = '\\n' + matches[0];\n\n var _updatedSelection2 = selectionStart + indent.length;\n\n this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: _updatedSelection2,\n selectionEnd: _updatedSelection2\n });\n }\n }\n } else if (e.keyCode === KEYCODE_PARENS || e.keyCode === KEYCODE_BRACKETS || e.keyCode === KEYCODE_QUOTE || e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n } // console.log(isMacLike, \"navigator\" in global && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n // If text is selected, wrap them in the characters\n\n\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n this._applyEdits({\n value: value.substring(0, selectionStart) + chars[0] + value.substring(selectionStart, selectionEnd) + chars[1] + value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2\n });\n }\n } else if ((isMacLike ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) && !e.shiftKey && !e.altKey) {\n e.preventDefault();\n\n this._undoEdit();\n } else if ((isMacLike ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey : isWindows ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) && !e.altKey) {\n e.preventDefault();\n\n this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault(); // Toggle capturing tab key so users can focus away\n\n this.capture = !this.capture;\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var lineNumberWidthCalculator = h('div', {\n \"class\": 'prism-editor__line-width-calc',\n style: 'height: 0px; visibility: hidden; pointer-events: none;'\n }, '999');\n var lineNumbers = h('div', {\n \"class\": 'prism-editor__line-numbers',\n style: {\n 'min-height': this.lineNumbersHeight\n },\n 'aria-hidden': 'true'\n }, [lineNumberWidthCalculator, Array.from(Array(this.lineNumbersCount).keys()).map(function (_, index) {\n return h('div', {\n \"class\": 'prism-editor__line-number token comment'\n }, \"\" + ++index);\n })]);\n var textarea = h('textarea', {\n ref: 'textarea',\n onInput: this.handleChange,\n onKeydown: this.handleKeyDown,\n onClick: function onClick($event) {\n _this3.$emit('click', $event);\n },\n onKeyup: function onKeyup($event) {\n _this3.$emit('keyup', $event);\n },\n onFocus: function onFocus($event) {\n _this3.$emit('focus', $event);\n },\n onBlur: function onBlur($event) {\n _this3.$emit('blur', $event);\n },\n \"class\": {\n 'prism-editor__textarea': true,\n 'prism-editor__textarea--empty': this.isEmpty\n },\n spellCheck: 'false',\n autocapitalize: 'off',\n autocomplete: 'off',\n autocorrect: 'off',\n 'data-gramm': 'false',\n placeholder: this.placeholder,\n 'data-testid': 'textarea',\n readonly: this.readonly,\n value: this.codeData\n });\n var preview = h('pre', {\n ref: 'pre',\n \"class\": 'prism-editor__editor',\n 'data-testid': 'preview',\n innerHTML: this.content\n });\n var editorContainer = h('div', {\n \"class\": 'prism-editor__container'\n }, [textarea, preview]);\n return h('div', {\n \"class\": 'prism-editor-wrapper'\n }, [this.lineNumbers && lineNumbers, editorContainer]);\n }\n});\n\nexport { PrismEditor };\n//# sourceMappingURL=prismeditor.esm.js.map\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { defineComponent, h } from 'vue';\n\nimport './styles.css';\nconst KEYCODE_ENTER = 13;\nconst KEYCODE_TAB = 9;\nconst KEYCODE_BACKSPACE = 8;\nconst KEYCODE_Y = 89;\nconst KEYCODE_Z = 90;\nconst KEYCODE_M = 77;\nconst KEYCODE_PARENS = 57;\nconst KEYCODE_BRACKETS = 219;\nconst KEYCODE_QUOTE = 222;\nconst KEYCODE_BACK_QUOTE = 192;\nconst KEYCODE_ESCAPE = 27;\n\nconst HISTORY_LIMIT = 100;\nconst HISTORY_TIME_GAP = 3000;\n\nconst isWindows = typeof window !== 'undefined' && navigator && /Win/i.test(navigator.platform);\nconst isMacLike = typeof window !== 'undefined' && navigator && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n\nexport interface EditorProps {\n lineNumbers: boolean;\n autoStyleLineNumbers: boolean;\n readonly: boolean;\n value: string;\n highlight: () => string;\n tabSize: number;\n insertSpaces: boolean;\n ignoreTabKey: boolean;\n placeholder: string;\n}\nexport interface Record {\n value: string;\n selectionStart: number;\n selectionEnd: number;\n}\n\nexport interface History {\n stack: Array;\n offset: number;\n}\n\nexport const PrismEditor = defineComponent({\n props: {\n lineNumbers: {\n type: Boolean,\n default: false,\n },\n autoStyleLineNumbers: {\n type: Boolean,\n default: true,\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: String,\n default: '',\n },\n highlight: {\n type: Function,\n required: true,\n },\n tabSize: {\n type: Number,\n default: 2,\n },\n insertSpaces: {\n type: Boolean,\n default: true,\n },\n ignoreTabKey: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n capture: true,\n history: {\n stack: [],\n offset: -1,\n } as History,\n lineNumbersHeight: '20px',\n codeData: '',\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal: string): void {\n if (!newVal) {\n this.codeData = '';\n } else {\n this.codeData = newVal;\n }\n },\n },\n content: {\n immediate: true,\n handler(): void {\n if (this.lineNumbers) {\n this.$nextTick(() => {\n this.setLineNumbersHeight();\n });\n }\n },\n },\n lineNumbers(): void {\n this.$nextTick(() => {\n this.styleLineNumbers();\n this.setLineNumbersHeight();\n });\n },\n },\n computed: {\n isEmpty(): boolean {\n return this.codeData.length === 0;\n },\n content(): string {\n const result = this.highlight(this.codeData) + '
';\n // todo: VNode support?\n return result;\n },\n lineNumbersCount(): number {\n const totalLines = this.codeData.split(/\\r\\n|\\n/).length;\n return totalLines;\n },\n },\n mounted() {\n this._recordCurrentState();\n this.styleLineNumbers();\n },\n\n methods: {\n setLineNumbersHeight(): void {\n this.lineNumbersHeight = getComputedStyle(this.$refs.pre as HTMLTextAreaElement).height;\n },\n styleLineNumbers(): void {\n if (!this.lineNumbers || !this.autoStyleLineNumbers) return;\n\n const $editor = this.$refs.pre as HTMLTextAreaElement;\n const $lineNumbers: HTMLDivElement | null = this.$el.querySelector('.prism-editor__line-numbers');\n const editorStyles = window.getComputedStyle($editor);\n\n this.$nextTick(() => {\n const btlr: any = 'border-top-left-radius';\n const bblr: any = 'border-bottom-left-radius';\n if (!$lineNumbers) return;\n $lineNumbers.style[btlr] = editorStyles[btlr];\n $lineNumbers.style[bblr] = editorStyles[bblr];\n $editor.style[btlr] = '0';\n $editor.style[bblr] = '0';\n\n const stylesList = ['background-color', 'margin-top', 'padding-top', 'font-family', 'font-size', 'line-height'];\n stylesList.forEach((style: any) => {\n $lineNumbers.style[style] = editorStyles[style];\n });\n $lineNumbers.style['margin-bottom' as any] = '-' + editorStyles['padding-top' as any];\n });\n },\n _recordCurrentState(): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n // Save current state of the input\n const { value, selectionStart, selectionEnd } = input;\n\n this._recordChange({\n value,\n selectionStart,\n selectionEnd,\n });\n },\n _getLines(text: string, position: number): Array {\n return text.substring(0, position).split('\\n');\n },\n _applyEdits(record: Record): void {\n // Save last selection state\n const input = this.$refs.textarea as HTMLTextAreaElement;\n const last = this.history.stack[this.history.offset];\n\n if (last && input) {\n this.history.stack[this.history.offset] = {\n ...last,\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd,\n };\n }\n\n // Save the changes\n this._recordChange(record);\n this._updateInput(record);\n },\n _recordChange(record: Record, overwrite = false): void {\n const { stack, offset } = this.history;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n this.history.stack = stack.slice(0, offset + 1);\n\n // Limit the number of operations to 100\n const count = this.history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n const extras = count - HISTORY_LIMIT;\n\n this.history.stack = stack.slice(extras, count);\n this.history.offset = Math.max(this.history.offset - extras, 0);\n }\n }\n\n const timestamp = Date.now();\n\n if (overwrite) {\n const last = this.history.stack[this.history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n\n // Match the last word in the line\n const re = /[^a-z0-9]([a-z0-9]+)$/i;\n\n // Get the previous line\n const previous = this._getLines(last.value, last.selectionStart).pop()?.match(re);\n\n // Get the current line\n const current = this._getLines(record.value, record.selectionStart).pop()?.match(re);\n\n if (previous && current && current[1].startsWith(previous[1])) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n this.history.stack[this.history.offset] = {\n ...record,\n timestamp,\n };\n\n return;\n }\n }\n }\n\n // Add the new operation to the stack\n this.history.stack.push({ ...record, timestamp });\n this.history.offset++;\n },\n\n _updateInput(record: Record): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n\n this.$emit('update:modelValue', record.value);\n // this.props.onValueChange(record.value);\n },\n handleChange(e: KeyboardEvent): void {\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n this._recordChange(\n {\n value,\n selectionStart,\n selectionEnd,\n },\n true\n );\n this.$emit('update:modelValue', value);\n // this.props.onValueChange(value);\n },\n _undoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the previous edit\n const record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.max(offset - 1, 0);\n }\n },\n _redoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the next edit\n const record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.min(offset + 1, stack.length - 1);\n }\n },\n handleKeyDown(e: KeyboardEvent): void {\n // console.log(navigator.platform);\n const { tabSize, insertSpaces, ignoreTabKey } = this;\n\n // onKeyDown(e);\n this.$emit('keydown', e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n (e.target).blur();\n this.$emit('blur', e);\n }\n\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n const tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && this.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const nextValue = value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n })\n .join('\\n');\n\n if (value !== nextValue) {\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: startLineText.startsWith(tabCharacter)\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine) {\n return tabCharacter + line;\n }\n\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine - startLine + 1),\n });\n } else {\n const updatedSelection = selectionStart + tabCharacter.length;\n\n this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n const hasSelection = selectionStart !== selectionEnd;\n const textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n\n const updatedSelection = selectionStart - tabCharacter.length;\n\n this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n const line = this._getLines(value, selectionStart).pop();\n const matches = line?.match(/^\\s+/);\n\n if (matches && matches[0]) {\n e.preventDefault();\n\n // Preserve indentation on inserting a new line\n const indent = '\\n' + matches[0];\n const updatedSelection = selectionStart + indent.length;\n\n this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n } else if (\n e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE\n ) {\n let chars;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n\n // console.log(isMacLike, \"navigator\" in global && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n this._applyEdits({\n value:\n value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n } else if (\n (isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._undoEdit();\n } else if (\n (isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n\n // Toggle capturing tab key so users can focus away\n this.capture = !this.capture;\n }\n },\n },\n render() {\n const lineNumberWidthCalculator = h(\n 'div',\n {\n class: 'prism-editor__line-width-calc',\n style: 'height: 0px; visibility: hidden; pointer-events: none;',\n },\n '999'\n );\n const lineNumbers = h(\n 'div',\n {\n class: 'prism-editor__line-numbers',\n style: {\n 'min-height': this.lineNumbersHeight,\n },\n 'aria-hidden': 'true',\n },\n [\n lineNumberWidthCalculator,\n Array.from(Array(this.lineNumbersCount).keys()).map((_, index) => {\n return h('div', { class: 'prism-editor__line-number token comment' }, `${++index}`);\n }),\n ]\n );\n\n const textarea = h('textarea', {\n ref: 'textarea',\n onInput: this.handleChange,\n onKeydown: this.handleKeyDown,\n onClick: ($event: MouseEvent) => {\n this.$emit('click', $event);\n },\n onKeyup: ($event: KeyboardEvent) => {\n this.$emit('keyup', $event);\n },\n onFocus: ($event: FocusEvent) => {\n this.$emit('focus', $event);\n },\n onBlur: ($event: FocusEvent) => {\n this.$emit('blur', $event);\n },\n class: {\n 'prism-editor__textarea': true,\n 'prism-editor__textarea--empty': this.isEmpty,\n },\n spellCheck: 'false',\n autocapitalize: 'off',\n autocomplete: 'off',\n autocorrect: 'off',\n 'data-gramm': 'false',\n placeholder: this.placeholder,\n 'data-testid': 'textarea',\n readonly: this.readonly,\n value: this.codeData,\n });\n const preview = h('pre', {\n ref: 'pre',\n class: 'prism-editor__editor',\n 'data-testid': 'preview',\n innerHTML: this.content,\n });\n const editorContainer = h('div', { class: 'prism-editor__container' }, [textarea, preview]);\n return h('div', { class: 'prism-editor-wrapper' }, [this.lineNumbers && lineNumbers, editorContainer]);\n },\n});\n","/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n","\n\n\n","\n\n\n\n\n","export { default } from './lib/index.mjs'\n","// Main parser class\n\nimport * as utils from './common/utils.mjs'\nimport * as helpers from './helpers/index.mjs'\nimport Renderer from './renderer.mjs'\nimport ParserCore from './parser_core.mjs'\nimport ParserBlock from './parser_block.mjs'\nimport ParserInline from './parser_inline.mjs'\nimport LinkifyIt from 'linkify-it'\nimport * as mdurl from 'mdurl'\nimport punycode from 'punycode.js'\n\nimport cfg_default from './presets/default.mjs'\nimport cfg_zero from './presets/zero.mjs'\nimport cfg_commonmark from './presets/commonmark.mjs'\n\nconst config = {\n default: cfg_default,\n zero: cfg_zero,\n commonmark: cfg_commonmark\n}\n\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nconst BAD_PROTO_RE = /^(vbscript|javascript|file|data):/\nconst GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/\n\nfunction validateLink (url) {\n // url should be normalized at this point, and existing entities are decoded\n const str = url.trim().toLowerCase()\n\n return BAD_PROTO_RE.test(str) ? GOOD_DATA_RE.test(str) : true\n}\n\nconst RECODE_HOSTNAME_FOR = ['http:', 'https:', 'mailto:']\n\nfunction normalizeLink (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed))\n}\n\nfunction normalizeLinkText (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl.decode(mdurl.format(parsed), mdurl.decode.defaultChars + '%')\n}\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.mjs) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.mjs) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.mjs) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with ` or ``):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
' +\n *                hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n *                '
';\n * } catch (__) {}\n * }\n *\n * return '
' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt (presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options)\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {}\n presetName = 'default'\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline()\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock()\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore()\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).\n **/\n this.renderer = new Renderer()\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)\n * rule.\n **/\n this.linkify = new LinkifyIt()\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).\n **/\n this.utils = utils\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers)\n\n this.options = {}\n this.configure(presetName)\n\n if (options) { this.set(options) }\n}\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options)\n return this\n}\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n const self = this\n\n if (utils.isString(presets)) {\n const presetName = presets\n presets = config[presetName]\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name') }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty') }\n\n if (presets.options) { self.set(presets.options) }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules)\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2)\n }\n })\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.enable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed)\n }\n\n return this\n}\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.disable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed)\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n const args = [this].concat(Array.prototype.slice.call(arguments, 1))\n plugin.apply(plugin, args)\n return this\n}\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String')\n }\n\n const state = new this.core.State(src, this, env)\n\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parse(src, env), this.options, env)\n}\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n const state = new this.core.State(src, this, env)\n\n state.inlineMode = true\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parseInline(src, env), this.options, env)\n}\n\nexport default MarkdownIt\n","// Utilities\n//\n\nimport * as mdurl from 'mdurl'\nimport * as ucmicro from 'uc.micro'\nimport { decodeHTML } from 'entities'\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\n\nfunction isString (obj) { return _class(obj) === '[object String]' }\n\nconst _hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction has (object, key) {\n return _hasOwnProperty.call(object, key)\n}\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object')\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt (src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1))\n}\n\nfunction isValidEntityCode (c) {\n /* eslint no-bitwise:0 */\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false }\n if (c === 0x0B) { return false }\n if (c >= 0x0E && c <= 0x1F) { return false }\n if (c >= 0x7F && c <= 0x9F) { return false }\n // out of range\n if (c > 0x10FFFF) { return false }\n return true\n}\n\nfunction fromCodePoint (c) {\n /* eslint no-bitwise:0 */\n if (c > 0xffff) {\n c -= 0x10000\n const surrogate1 = 0xd800 + (c >> 10)\n const surrogate2 = 0xdc00 + (c & 0x3ff)\n\n return String.fromCharCode(surrogate1, surrogate2)\n }\n return String.fromCharCode(c)\n}\n\nconst UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g\nconst ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi\nconst UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi')\n\nconst DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i\n\nfunction replaceEntityPattern (match, name) {\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n const code = name[1].toLowerCase() === 'x'\n ? parseInt(name.slice(2), 16)\n : parseInt(name.slice(1), 10)\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code)\n }\n\n return match\n }\n\n const decoded = decodeHTML(match)\n if (decoded !== match) {\n return decoded\n }\n\n return match\n}\n\n/* function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n} */\n\nfunction unescapeMd (str) {\n if (str.indexOf('\\\\') < 0) { return str }\n return str.replace(UNESCAPE_MD_RE, '$1')\n}\n\nfunction unescapeAll (str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped }\n return replaceEntityPattern(match, entity)\n })\n}\n\nconst HTML_ESCAPE_TEST_RE = /[&<>\"]/\nconst HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g\nconst HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n}\n\nfunction replaceUnsafeChar (ch) {\n return HTML_REPLACEMENTS[ch]\n}\n\nfunction escapeHtml (str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar)\n }\n return str\n}\n\nconst REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g\n\nfunction escapeRE (str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&')\n}\n\nfunction isSpace (code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true\n }\n return false\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace (code) {\n if (code >= 0x2000 && code <= 0x200A) { return true }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true\n }\n return false\n}\n\n/* eslint-disable max-len */\n\n// Currently without astral characters support.\nfunction isPunctChar (ch) {\n return ucmicro.P.test(ch) || ucmicro.S.test(ch)\n}\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct (ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference (str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ')\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß')\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase()\n}\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nconst lib = { mdurl, ucmicro }\n\nexport {\n lib,\n assign,\n isString,\n has,\n unescapeMd,\n unescapeAll,\n isValidEntityCode,\n fromCodePoint,\n escapeHtml,\n arrayReplaceAt,\n isSpace,\n isWhiteSpace,\n isMdAsciiPunct,\n isPunctChar,\n escapeRE,\n normalizeReference\n}\n","import decode from './lib/decode.mjs'\nimport encode from './lib/encode.mjs'\nimport format from './lib/format.mjs'\nimport parse from './lib/parse.mjs'\n\nexport {\n decode,\n encode,\n format,\n parse\n}\n","/* eslint-disable no-bitwise */\n\nconst decodeCache = {}\n\nfunction getDecodeCache (exclude) {\n let cache = decodeCache[exclude]\n if (cache) { return cache }\n\n cache = decodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n cache.push(ch)\n }\n\n for (let i = 0; i < exclude.length; i++) {\n const ch = exclude.charCodeAt(i)\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2)\n }\n\n return cache\n}\n\n// Decode percent-encoded string.\n//\nfunction decode (string, exclude) {\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars\n }\n\n const cache = getDecodeCache(exclude)\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {\n let result = ''\n\n for (let i = 0, l = seq.length; i < l; i += 3) {\n const b1 = parseInt(seq.slice(i + 1, i + 3), 16)\n\n if (b1 < 0x80) {\n result += cache[b1]\n continue\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n\n if ((b2 & 0xC0) === 0x80) {\n const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F)\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 3\n continue\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F)\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 6\n continue\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n const b4 = parseInt(seq.slice(i + 10, i + 12), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F)\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd'\n } else {\n chr -= 0x10000\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF))\n }\n\n i += 9\n continue\n }\n }\n\n result += '\\ufffd'\n }\n\n return result\n })\n}\n\ndecode.defaultChars = ';/?:@&=+$,#'\ndecode.componentChars = ''\n\nexport default decode\n","const encodeCache = {}\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache (exclude) {\n let cache = encodeCache[exclude]\n if (cache) { return cache }\n\n cache = encodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch)\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2))\n }\n }\n\n for (let i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i]\n }\n\n return cache\n}\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode (string, exclude, keepEscaped) {\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude\n exclude = encode.defaultChars\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true\n }\n\n const cache = getEncodeCache(exclude)\n let result = ''\n\n for (let i = 0, l = string.length; i < l; i++) {\n const code = string.charCodeAt(i)\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3)\n i += 2\n continue\n }\n }\n\n if (code < 128) {\n result += cache[code]\n continue\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n const nextCode = string.charCodeAt(i + 1)\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1])\n i++\n continue\n }\n }\n result += '%EF%BF%BD'\n continue\n }\n\n result += encodeURIComponent(string[i])\n }\n\n return result\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\"\nencode.componentChars = \"-_.!~*'()\"\n\nexport default encode\n","export default function format (url) {\n let result = ''\n\n result += url.protocol || ''\n result += url.slashes ? '//' : ''\n result += url.auth ? url.auth + '@' : ''\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']'\n } else {\n result += url.hostname || ''\n }\n\n result += url.port ? ':' + url.port : ''\n result += url.pathname || ''\n result += url.search || ''\n result += url.hash || ''\n\n return result\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\nfunction Url () {\n this.protocol = null\n this.slashes = null\n this.auth = null\n this.port = null\n this.hostname = null\n this.hash = null\n this.search = null\n this.pathname = null\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nconst protocolPattern = /^([a-z0-9.+-]+:)/i\nconst portPattern = /:[0-9]*$/\n\n// Special case for a simple path URL\n/* eslint-disable-next-line no-useless-escape */\nconst simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/\n\n// RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\nconst delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t']\n\n// RFC 2396: characters not allowed for various reasons.\nconst unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims)\n\n// Allowed by RFCs, but cause of XSS attacks. Always escape these.\nconst autoEscape = ['\\''].concat(unwise)\n// Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nconst nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape)\nconst hostEndingChars = ['/', '?', '#']\nconst hostnameMaxLen = 255\nconst hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/\nconst hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/\n// protocols that can allow \"unsafe\" and \"unwise\" chars.\n// protocols that never have a hostname.\nconst hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n}\n// protocols that always contain a // bit.\nconst slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n}\n\nfunction urlParse (url, slashesDenoteHost) {\n if (url && url instanceof Url) return url\n\n const u = new Url()\n u.parse(url, slashesDenoteHost)\n return u\n}\n\nUrl.prototype.parse = function (url, slashesDenoteHost) {\n let lowerProto, hec, slashes\n let rest = url\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim()\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n const simplePath = simplePathPattern.exec(rest)\n if (simplePath) {\n this.pathname = simplePath[1]\n if (simplePath[2]) {\n this.search = simplePath[2]\n }\n return this\n }\n }\n\n let proto = protocolPattern.exec(rest)\n if (proto) {\n proto = proto[0]\n lowerProto = proto.toLowerCase()\n this.protocol = proto\n rest = rest.substr(proto.length)\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n /* eslint-disable-next-line no-useless-escape */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//'\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2)\n this.slashes = true\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n let hostEnd = -1\n for (let i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n let auth, atSign\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@')\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd)\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign)\n rest = rest.slice(atSign + 1)\n this.auth = auth\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1\n for (let i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd-- }\n const host = rest.slice(0, hostEnd)\n rest = rest.slice(hostEnd)\n\n // pull out port.\n this.parseHost(host)\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || ''\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n const ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']'\n\n // validate a little.\n if (!ipv6Hostname) {\n const hostparts = this.hostname.split(/\\./)\n for (let i = 0, l = hostparts.length; i < l; i++) {\n const part = hostparts[i]\n if (!part) { continue }\n if (!part.match(hostnamePartPattern)) {\n let newpart = ''\n for (let j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x'\n } else {\n newpart += part[j]\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n const validParts = hostparts.slice(0, i)\n const notHost = hostparts.slice(i + 1)\n const bit = part.match(hostnamePartStart)\n if (bit) {\n validParts.push(bit[1])\n notHost.unshift(bit[2])\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest\n }\n this.hostname = validParts.join('.')\n break\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = ''\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2)\n }\n }\n\n // chop off from the tail first.\n const hash = rest.indexOf('#')\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash)\n rest = rest.slice(0, hash)\n }\n const qm = rest.indexOf('?')\n if (qm !== -1) {\n this.search = rest.substr(qm)\n rest = rest.slice(0, qm)\n }\n if (rest) { this.pathname = rest }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = ''\n }\n\n return this\n}\n\nUrl.prototype.parseHost = function (host) {\n let port = portPattern.exec(host)\n if (port) {\n port = port[0]\n if (port !== ':') {\n this.port = port.substr(1)\n }\n host = host.substr(0, host.length - port.length)\n }\n if (host) { this.hostname = host }\n}\n\nexport default urlParse\n","import Any from './properties/Any/regex.mjs';\nimport Cc from './categories/Cc/regex.mjs';\nimport Cf from './categories/Cf/regex.mjs';\nimport P from './categories/P/regex.mjs';\nimport S from './categories/S/regex.mjs';\nimport Z from './categories/Z/regex.mjs';\n\nexport { Any, Cc, Cf, P, S, Z };\n","export default /[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","export default /[\\0-\\x1F\\x7F-\\x9F]/","export default /[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","export default /[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDEAD\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDEB9\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDD44-\\uDD46\\uDDE2\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2\\uDF00-\\uDF09]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8\\uDF43-\\uDF4F\\uDFFF]|\\uD809[\\uDC70-\\uDC74]|\\uD80B[\\uDFF1\\uDFF2]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A\\uDFE2]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","export default /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u0888\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20C0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFF\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u31EF\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC2\\uFD40-\\uFD4F\\uFDCF\\uFDFC-\\uFDFF\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD833[\\uDF50-\\uDFC3]|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDEA\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEDC-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF76\\uDF7B-\\uDFD9\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC5\\uDECE-\\uDEDB\\uDEE0-\\uDEE8\\uDEF0-\\uDEF8\\uDF00-\\uDF92\\uDF94-\\uDFCA]/","export default /[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nexport function decode(data, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(data, mode);\n }\n return decodeXML(data);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(data, options = EntityLevel.XML) {\n var _a;\n const opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);\n return decode(data, opts);\n}\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nexport function encode(data, options = EntityLevel.XML) {\n const opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return escapeUTF8(data);\n if (opts.mode === EncodingMode.Attribute)\n return escapeAttribute(data);\n if (opts.mode === EncodingMode.Text)\n return escapeText(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return encodeNonAsciiHTML(data);\n }\n return encodeHTML(data);\n }\n // ASCII and Extensive are equivalent\n return encodeXML(data);\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map",null,"import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map",null,"// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map",null,"// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map",null,"// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map",null,"import htmlTrie from \"./generated/encode-html.js\";\nimport { xmlReplacer, getCodePoint } from \"./escape.js\";\nconst htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nexport function encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nexport function encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(xmlReplacer, data);\n}\nfunction encodeHTMLTrieRe(regExp, str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = regExp.exec(str)) !== null) {\n const i = match.index;\n ret += str.substring(lastIdx, i);\n const char = str.charCodeAt(i);\n let next = htmlTrie.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n const nextChar = str.charCodeAt(i + 1);\n const value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n const cp = getCodePoint(str, i);\n ret += `&#x${cp.toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map",null,"// Generated using scripts/write-encode-map.ts\nfunction restoreDiff(arr) {\n for (let i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexport default new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map",null,"export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map",null,"// Just a shortcut for bulk export\n\nimport parseLinkLabel from './parse_link_label.mjs'\nimport parseLinkDestination from './parse_link_destination.mjs'\nimport parseLinkTitle from './parse_link_title.mjs'\n\nexport {\n parseLinkLabel,\n parseLinkDestination,\n parseLinkTitle\n}\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n\nexport default function parseLinkLabel (state, start, disableNested) {\n let level, found, marker, prevPos\n\n const max = state.posMax\n const oldPos = state.pos\n\n state.pos = start + 1\n level = 1\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos)\n if (marker === 0x5D /* ] */) {\n level--\n if (level === 0) {\n found = true\n break\n }\n }\n\n prevPos = state.pos\n state.md.inline.skipToken(state)\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++\n } else if (disableNested) {\n state.pos = oldPos\n return -1\n }\n }\n }\n\n let labelEnd = -1\n\n if (found) {\n labelEnd = state.pos\n }\n\n // restore old state\n state.pos = oldPos\n\n return labelEnd\n}\n","// Parse link destination\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\nexport default function parseLinkDestination (str, start, max) {\n let code\n let pos = start\n\n const result = {\n ok: false,\n pos: 0,\n str: ''\n }\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === 0x0A /* \\n */) { return result }\n if (code === 0x3C /* < */) { return result }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1\n result.str = unescapeAll(str.slice(start + 1, pos))\n result.ok = true\n return result\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2\n continue\n }\n\n pos++\n }\n\n // no closing '>'\n return result\n }\n\n // this should be ... } else { ... branch\n\n let level = 0\n while (pos < max) {\n code = str.charCodeAt(pos)\n\n if (code === 0x20) { break }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) { break }\n pos += 2\n continue\n }\n\n if (code === 0x28 /* ( */) {\n level++\n if (level > 32) { return result }\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break }\n level--\n }\n\n pos++\n }\n\n if (start === pos) { return result }\n if (level !== 0) { return result }\n\n result.str = unescapeAll(str.slice(start, pos))\n result.pos = pos\n result.ok = true\n return result\n}\n","// Parse link title\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\n// Parse link title within `str` in [start, max] range,\n// or continue previous parsing if `prev_state` is defined (equal to result of last execution).\n//\nexport default function parseLinkTitle (str, start, max, prev_state) {\n let code\n let pos = start\n\n const state = {\n // if `true`, this is a valid link title\n ok: false,\n // if `true`, this link can be continued on the next line\n can_continue: false,\n // if `ok`, it's the position of the first character after the closing marker\n pos: 0,\n // if `ok`, it's the unescaped title\n str: '',\n // expected closing marker character code\n marker: 0\n }\n\n if (prev_state) {\n // this is a continuation of a previous parseLinkTitle call on the next line,\n // used in reference links only\n state.str = prev_state.str\n state.marker = prev_state.marker\n } else {\n if (pos >= max) { return state }\n\n let marker = str.charCodeAt(pos)\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return state }\n\n start++\n pos++\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29 }\n\n state.marker = marker\n }\n\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === state.marker) {\n state.pos = pos + 1\n state.str += unescapeAll(str.slice(start, pos))\n state.ok = true\n return state\n } else if (code === 0x28 /* ( */ && state.marker === 0x29 /* ) */) {\n return state\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++\n }\n\n pos++\n }\n\n // no closing marker found, but this link title may continue on the next line (for references)\n state.can_continue = true\n state.str += unescapeAll(str.slice(start, pos))\n return state\n}\n","/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\nimport { assign, unescapeAll, escapeHtml } from './common/utils.mjs'\n\nconst default_rules = {}\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '' +\n escapeHtml(token.content) +\n ''\n}\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n'\n}\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n const info = token.info ? unescapeAll(token.info).trim() : ''\n let langName = ''\n let langAttrs = ''\n\n if (info) {\n const arr = info.split(/(\\s+)/g)\n langName = arr[0]\n langAttrs = arr.slice(2).join('')\n }\n\n let highlighted\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content)\n } else {\n highlighted = escapeHtml(token.content)\n }\n\n if (highlighted.indexOf('${highlighted}\\n`\n }\n\n return `

${highlighted}
\\n`\n}\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env)\n\n return slf.renderToken(tokens, idx, options)\n}\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
\\n' : '
\\n'\n}\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
\\n' : '
\\n') : '\\n'\n}\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content)\n}\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer () {\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules)\n}\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs (token) {\n let i, l, result\n\n if (!token.attrs) { return '' }\n\n result = ''\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"'\n }\n\n return result\n}\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken (tokens, idx, options) {\n const token = tokens[idx]\n let result = ''\n\n // Tight list paragraphs\n if (token.hidden) {\n return ''\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n'\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>'\n\n return result\n}\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options)\n }\n }\n\n return result\n}\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n let result = ''\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n switch (tokens[i].type) {\n case 'text':\n result += tokens[i].content\n break\n case 'image':\n result += this.renderInlineAsText(tokens[i].children, options, env)\n break\n case 'html_inline':\n case 'html_block':\n result += tokens[i].content\n break\n case 'softbreak':\n case 'hardbreak':\n result += '\\n'\n break\n default:\n // all other tokens are skipped\n }\n }\n\n return result\n}\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env)\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options, env)\n }\n }\n\n return result\n}\n\nexport default Renderer\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateCore from './rules_core/state_core.mjs'\n\nimport r_normalize from './rules_core/normalize.mjs'\nimport r_block from './rules_core/block.mjs'\nimport r_inline from './rules_core/inline.mjs'\nimport r_linkify from './rules_core/linkify.mjs'\nimport r_replacements from './rules_core/replacements.mjs'\nimport r_smartquotes from './rules_core/smartquotes.mjs'\nimport r_text_join from './rules_core/text_join.mjs'\n\nconst _rules = [\n ['normalize', r_normalize],\n ['block', r_block],\n ['inline', r_inline],\n ['linkify', r_linkify],\n ['replacements', r_replacements],\n ['smartquotes', r_smartquotes],\n // `text_join` finds `text_special` tokens (for escape sequences)\n // and joins them with the rest of the text\n ['text_join', r_text_join]\n]\n\n/**\n * new Core()\n **/\nfunction Core () {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n}\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n const rules = this.ruler.getRules('')\n\n for (let i = 0, l = rules.length; i < l; i++) {\n rules[i](state)\n }\n}\n\nCore.prototype.State = StateCore\n\nexport default Core\n","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n/**\n * new Ruler()\n **/\nfunction Ruler () {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = []\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null\n}\n\n// Helper methods, should not be used directly\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (let i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i\n }\n }\n return -1\n}\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n const self = this\n const chains = ['']\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName)\n }\n })\n })\n\n self.__cache__ = {}\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = []\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return }\n\n self.__cache__[chain].push(rule.fn)\n })\n })\n}\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n const index = this.__find__(name)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name) }\n\n this.__rules__[index].fn = fn\n this.__rules__[index].alt = opt.alt || []\n this.__cache__ = null\n}\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n const index = this.__find__(beforeName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName) }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n const index = this.__find__(afterName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName) }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n const opt = options || {}\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and enable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = true\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false })\n\n this.enable(list, ignoreInvalid)\n}\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and disable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = false\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__()\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || []\n}\n\nexport default Ruler\n","// Core state object\n//\n\nimport Token from '../token.mjs'\n\nfunction StateCore (src, md, env) {\n this.src = src\n this.env = env\n this.tokens = []\n this.inlineMode = false\n this.md = md // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token\n\nexport default StateCore\n","// Token class\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token (type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = ''\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = ''\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = ''\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false\n}\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex (name) {\n if (!this.attrs) { return -1 }\n\n const attrs = this.attrs\n\n for (let i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i }\n }\n return -1\n}\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush (attrData) {\n if (this.attrs) {\n this.attrs.push(attrData)\n } else {\n this.attrs = [attrData]\n }\n}\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet (name, value) {\n const idx = this.attrIndex(name)\n const attrData = [name, value]\n\n if (idx < 0) {\n this.attrPush(attrData)\n } else {\n this.attrs[idx] = attrData\n }\n}\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet (name) {\n const idx = this.attrIndex(name)\n let value = null\n if (idx >= 0) {\n value = this.attrs[idx][1]\n }\n return value\n}\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin (name, value) {\n const idx = this.attrIndex(name)\n\n if (idx < 0) {\n this.attrPush([name, value])\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value\n }\n}\n\nexport default Token\n","// Normalize input string\n\n// https://spec.commonmark.org/0.29/#line-ending\nconst NEWLINES_RE = /\\r\\n?|\\n/g\nconst NULL_RE = /\\0/g\n\nexport default function normalize (state) {\n let str\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n')\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD')\n\n state.src = str\n}\n","export default function block (state) {\n let token\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0)\n token.content = state.src\n token.map = [0, 1]\n token.children = []\n state.tokens.push(token)\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens)\n }\n}\n","export default function inline (state) {\n const tokens = state.tokens\n\n // Parse inlines\n for (let i = 0, l = tokens.length; i < l; i++) {\n const tok = tokens[i]\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children)\n }\n }\n}\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n\nimport { arrayReplaceAt } from '../common/utils.mjs'\n\nfunction isLinkOpen (str) {\n return /^\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nexport default function linkify (state) {\n const blockTokens = state.tokens\n\n if (!state.md.options.linkify) { return }\n\n for (let j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue\n }\n\n let tokens = blockTokens[j].children\n\n let htmlLinkLevel = 0\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (let i = tokens.length - 1; i >= 0; i--) {\n const currentToken = tokens[i]\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--\n }\n continue\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++\n }\n }\n if (htmlLinkLevel > 0) { continue }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n const text = currentToken.content\n let links = state.md.linkify.match(text)\n\n // Now split string to nodes\n const nodes = []\n let level = currentToken.level\n let lastPos = 0\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http://example.com/\n if (links.length > 0 &&\n links[0].index === 0 &&\n i > 0 &&\n tokens[i - 1].type === 'text_special') {\n links = links.slice(1)\n }\n\n for (let ln = 0; ln < links.length; ln++) {\n const url = links[ln].url\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { continue }\n\n let urlText = links[ln].text\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '')\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '')\n } else {\n urlText = state.md.normalizeLinkText(urlText)\n }\n\n const pos = links[ln].index\n\n if (pos > lastPos) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos, pos)\n token.level = level\n nodes.push(token)\n }\n\n const token_o = new state.Token('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.level = level++\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n nodes.push(token_o)\n\n const token_t = new state.Token('text', '', 0)\n token_t.content = urlText\n token_t.level = level\n nodes.push(token_t)\n\n const token_c = new state.Token('link_close', 'a', -1)\n token_c.level = --level\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n nodes.push(token_c)\n\n lastPos = links[ln].lastIndex\n }\n if (lastPos < text.length) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos)\n token.level = level\n nodes.push(token)\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes)\n }\n }\n }\n}\n","// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nconst RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nconst SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i\n\nconst SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig\nconst SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n}\n\nfunction replaceFn (match, name) {\n return SCOPED_ABBR[name.toLowerCase()]\n}\n\nfunction replace_scoped (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn)\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nfunction replace_rare (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013')\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nexport default function replace (state) {\n let blkIdx\n\n if (!state.md.options.typographer) { return }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') { continue }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children)\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children)\n }\n }\n}\n","// Convert straight quotation marks to typographic ones\n//\n\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nconst QUOTE_TEST_RE = /['\"]/\nconst QUOTE_RE = /['\"]/g\nconst APOSTROPHE = '\\u2019' /* ’ */\n\nfunction replaceAt (str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1)\n}\n\nfunction process_inlines (tokens, state) {\n let j\n\n const stack = []\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]\n\n const thisLevel = tokens[i].level\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break }\n }\n stack.length = j + 1\n\n if (token.type !== 'text') { continue }\n\n let text = token.content\n let pos = 0\n let max = text.length\n\n /* eslint no-labels:0,block-scoped-var:0 */\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos\n const t = QUOTE_RE.exec(text)\n if (!t) { break }\n\n let canOpen = true\n let canClose = true\n pos = t.index + 1\n const isSingle = (t[0] === \"'\")\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n let lastChar = 0x20\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1)\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // lastChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1)\n break\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n let nextChar = 0x20\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos)\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // nextChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0)\n break\n }\n }\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n if (isNextWhiteSpace) {\n canOpen = false\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar\n canClose = isNextPunctChar\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n continue\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n let item = stack[j]\n if (stack[j].level < thisLevel) { break }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j]\n\n let openQuote\n let closeQuote\n if (isSingle) {\n openQuote = state.md.options.quotes[2]\n closeQuote = state.md.options.quotes[3]\n } else {\n openQuote = state.md.options.quotes[0]\n closeQuote = state.md.options.quotes[1]\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote)\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote)\n\n pos += closeQuote.length - 1\n if (item.token === i) { pos += openQuote.length - 1 }\n\n text = token.content\n max = text.length\n\n stack.length = j\n continue OUTER\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n })\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n }\n }\n}\n\nexport default function smartquotes (state) {\n /* eslint max-depth:0 */\n if (!state.md.options.typographer) { return }\n\n for (let blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue\n }\n\n process_inlines(state.tokens[blkIdx].children, state)\n }\n}\n","// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n\nexport default function text_join (state) {\n let curr, last\n const blockTokens = state.tokens\n const l = blockTokens.length\n\n for (let j = 0; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue\n\n const tokens = blockTokens[j].children\n const max = tokens.length\n\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text'\n }\n }\n\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n }\n}\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateBlock from './rules_block/state_block.mjs'\n\nimport r_table from './rules_block/table.mjs'\nimport r_code from './rules_block/code.mjs'\nimport r_fence from './rules_block/fence.mjs'\nimport r_blockquote from './rules_block/blockquote.mjs'\nimport r_hr from './rules_block/hr.mjs'\nimport r_list from './rules_block/list.mjs'\nimport r_reference from './rules_block/reference.mjs'\nimport r_html_block from './rules_block/html_block.mjs'\nimport r_heading from './rules_block/heading.mjs'\nimport r_lheading from './rules_block/lheading.mjs'\nimport r_paragraph from './rules_block/paragraph.mjs'\n\nconst _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n ['table', r_table, ['paragraph', 'reference']],\n ['code', r_code],\n ['fence', r_fence, ['paragraph', 'reference', 'blockquote', 'list']],\n ['blockquote', r_blockquote, ['paragraph', 'reference', 'blockquote', 'list']],\n ['hr', r_hr, ['paragraph', 'reference', 'blockquote', 'list']],\n ['list', r_list, ['paragraph', 'reference', 'blockquote']],\n ['reference', r_reference],\n ['html_block', r_html_block, ['paragraph', 'reference', 'blockquote']],\n ['heading', r_heading, ['paragraph', 'reference', 'blockquote']],\n ['lheading', r_lheading],\n ['paragraph', r_paragraph]\n]\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock () {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() })\n }\n}\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n let line = startLine\n let hasEmptyLines = false\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line)\n if (line >= endLine) { break }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine\n break\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n const prevLine = state.line\n let ok = false\n\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false)\n if (ok) {\n if (prevLine >= state.line) {\n throw new Error(\"block rule didn't increment state.line\")\n }\n break\n }\n }\n\n // this can only happen if user disables paragraph rule\n if (!ok) throw new Error('none of the block rules matched')\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true\n }\n\n line = state.line\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true\n line++\n state.line = line\n }\n }\n}\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n if (!src) { return }\n\n const state = new this.State(src, md, env, outTokens)\n\n this.tokenize(state, state.line, state.lineMax)\n}\n\nParserBlock.prototype.State = StateBlock\n\nexport default ParserBlock\n","// Parser state class\n\nimport Token from '../token.mjs'\nimport { isSpace } from '../common/utils.mjs'\n\nfunction StateBlock (src, md, env, tokens) {\n this.src = src\n\n // link to parser instance\n this.md = md\n\n this.env = env\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens\n\n this.bMarks = [] // line begin offsets for fast jumps\n this.eMarks = [] // line end offsets for fast jumps\n this.tShift = [] // offsets of the first non-space characters (tabs not expanded)\n this.sCount = [] // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = []\n\n // block parser variables\n\n // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.blkIndent = 0\n this.line = 0 // line index in src\n this.lineMax = 0 // lines count\n this.tight = false // loose/tight mode for lists\n this.ddIndent = -1 // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1 // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root'\n\n this.level = 0\n\n // Create caches\n // Generate markers.\n const s = this.src\n\n for (let start = 0, pos = 0, indent = 0, offset = 0, len = s.length, indent_found = false; pos < len; pos++) {\n const ch = s.charCodeAt(pos)\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++\n\n if (ch === 0x09) {\n offset += 4 - offset % 4\n } else {\n offset++\n }\n continue\n } else {\n indent_found = true\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++ }\n this.bMarks.push(start)\n this.eMarks.push(pos)\n this.tShift.push(indent)\n this.sCount.push(offset)\n this.bsCount.push(0)\n\n indent_found = false\n indent = 0\n offset = 0\n start = pos + 1\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length)\n this.eMarks.push(s.length)\n this.tShift.push(0)\n this.sCount.push(0)\n this.bsCount.push(0)\n\n this.lineMax = this.bMarks.length - 1 // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n const token = new Token(type, tag, nesting)\n token.block = true\n\n if (nesting < 0) this.level-- // closing tag\n token.level = this.level\n if (nesting > 0) this.level++ // opening tag\n\n this.tokens.push(token)\n return token\n}\n\nStateBlock.prototype.isEmpty = function isEmpty (line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line]\n}\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines (from) {\n for (let max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break\n }\n }\n return from\n}\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces (pos) {\n for (let max = this.src.length; pos < max; pos++) {\n const ch = this.src.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n }\n return pos\n}\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack (pos, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1 }\n }\n return pos\n}\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars (pos, code) {\n for (let max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break }\n }\n return pos\n}\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack (pos, code, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1 }\n }\n return pos\n}\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines (begin, end, indent, keepLastLF) {\n if (begin >= end) {\n return ''\n }\n\n const queue = new Array(end - begin)\n\n for (let i = 0, line = begin; line < end; line++, i++) {\n let lineIndent = 0\n const lineStart = this.bMarks[line]\n let first = lineStart\n let last\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1\n } else {\n last = this.eMarks[line]\n }\n\n while (first < last && lineIndent < indent) {\n const ch = this.src.charCodeAt(first)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4\n } else {\n lineIndent++\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++\n } else {\n break\n }\n\n first++\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last)\n } else {\n queue[i] = this.src.slice(first, last)\n }\n }\n\n return queue.join('')\n}\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token\n\nexport default StateBlock\n","// GFM table, https://github.github.com/gfm/#tables-extension-\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Limit the amount of empty autocompleted cells in a table,\n// see https://github.com/markdown-it/markdown-it/issues/1000,\n//\n// Both pulldown-cmark and commonmark-hs limit the number of cells this way to ~200k.\n// We set it to 65k, which can expand user input by a factor of x370\n// (256x256 square is 1.8kB expanded into 650kB).\nconst MAX_AUTOCOMPLETED_CELLS = 0x10000\n\nfunction getLine (state, line) {\n const pos = state.bMarks[line] + state.tShift[line]\n const max = state.eMarks[line]\n\n return state.src.slice(pos, max)\n}\n\nfunction escapedSplit (str) {\n const result = []\n const max = str.length\n\n let pos = 0\n let ch = str.charCodeAt(pos)\n let isEscaped = false\n let lastPos = 0\n let current = ''\n\n while (pos < max) {\n if (ch === 0x7c/* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos))\n current = ''\n lastPos = pos + 1\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1)\n lastPos = pos\n }\n }\n\n isEscaped = (ch === 0x5c/* \\ */)\n pos++\n\n ch = str.charCodeAt(pos)\n }\n\n result.push(current + str.substring(lastPos))\n\n return result\n}\n\nexport default function table (state, startLine, endLine, silent) {\n // should have at least two lines\n if (startLine + 2 > endLine) { return false }\n\n let nextLine = startLine + 1\n\n if (state.sCount[nextLine] < state.blkIndent) { return false }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const firstCh = state.src.charCodeAt(pos++)\n if (firstCh !== 0x7C/* | */ && firstCh !== 0x2D/* - */ && firstCh !== 0x3A/* : */) { return false }\n\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const secondCh = state.src.charCodeAt(pos++)\n if (secondCh !== 0x7C/* | */ && secondCh !== 0x2D/* - */ && secondCh !== 0x3A/* : */ && !isSpace(secondCh)) {\n return false\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D/* - */ && isSpace(secondCh)) { return false }\n\n while (pos < state.eMarks[nextLine]) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false }\n\n pos++\n }\n\n let lineText = getLine(state, startLine + 1)\n let columns = lineText.split('|')\n const aligns = []\n for (let i = 0; i < columns.length; i++) {\n const t = columns[i].trim()\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue\n } else {\n return false\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right')\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left')\n } else {\n aligns.push('')\n }\n }\n\n lineText = getLine(state, startLine).trim()\n if (lineText.indexOf('|') === -1) { return false }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n const columnCount = columns.length\n if (columnCount === 0 || columnCount !== aligns.length) { return false }\n\n if (silent) { return true }\n\n const oldParentType = state.parentType\n state.parentType = 'table'\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const token_to = state.push('table_open', 'table', 1)\n const tableLines = [startLine, 0]\n token_to.map = tableLines\n\n const token_tho = state.push('thead_open', 'thead', 1)\n token_tho.map = [startLine, startLine + 1]\n\n const token_htro = state.push('tr_open', 'tr', 1)\n token_htro.map = [startLine, startLine + 1]\n\n for (let i = 0; i < columns.length; i++) {\n const token_ho = state.push('th_open', 'th', 1)\n if (aligns[i]) {\n token_ho.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i].trim()\n token_il.children = []\n\n state.push('th_close', 'th', -1)\n }\n\n state.push('tr_close', 'tr', -1)\n state.push('thead_close', 'thead', -1)\n\n let tbodyLines\n let autocompletedCells = 0\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) { break }\n lineText = getLine(state, nextLine).trim()\n if (!lineText) { break }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // note: autocomplete count can be negative if user specifies more columns than header,\n // but that does not affect intended use (which is limiting expansion)\n autocompletedCells += columnCount - columns.length\n if (autocompletedCells > MAX_AUTOCOMPLETED_CELLS) { break }\n\n if (nextLine === startLine + 2) {\n const token_tbo = state.push('tbody_open', 'tbody', 1)\n token_tbo.map = tbodyLines = [startLine + 2, 0]\n }\n\n const token_tro = state.push('tr_open', 'tr', 1)\n token_tro.map = [nextLine, nextLine + 1]\n\n for (let i = 0; i < columnCount; i++) {\n const token_tdo = state.push('td_open', 'td', 1)\n if (aligns[i]) {\n token_tdo.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i] ? columns[i].trim() : ''\n token_il.children = []\n\n state.push('td_close', 'td', -1)\n }\n state.push('tr_close', 'tr', -1)\n }\n\n if (tbodyLines) {\n state.push('tbody_close', 'tbody', -1)\n tbodyLines[1] = nextLine\n }\n\n state.push('table_close', 'table', -1)\n tableLines[1] = nextLine\n\n state.parentType = oldParentType\n state.line = nextLine\n return true\n}\n","// Code block (4 spaces padded)\n\nexport default function code (state, startLine, endLine/*, silent */) {\n if (state.sCount[startLine] - state.blkIndent < 4) { return false }\n\n let nextLine = startLine + 1\n let last = nextLine\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++\n continue\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++\n last = nextLine\n continue\n }\n break\n }\n\n state.line = last\n\n const token = state.push('code_block', 'code', 0)\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n'\n token.map = [startLine, state.line]\n\n return true\n}\n","// fences (``` lang, ~~~ lang)\n\nexport default function fence (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (pos + 3 > max) { return false }\n\n const marker = state.src.charCodeAt(pos)\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false\n }\n\n // scan marker length\n let mem = pos\n pos = state.skipChars(pos, marker)\n\n let len = pos - mem\n\n if (len < 3) { return false }\n\n const markup = state.src.slice(mem, pos)\n const params = state.src.slice(pos, max)\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true }\n\n // search end of block\n let nextLine = startLine\n let haveEndMarker = false\n\n for (;;) {\n nextLine++\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue\n }\n\n pos = state.skipChars(pos, marker)\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos)\n\n if (pos < max) { continue }\n\n haveEndMarker = true\n // found!\n break\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine]\n\n state.line = nextLine + (haveEndMarker ? 1 : 0)\n\n const token = state.push('fence', 'code', 0)\n token.info = params\n token.content = state.getLines(startLine + 1, nextLine, len, true)\n token.markup = markup\n token.map = [startLine, state.line]\n\n return true\n}\n","// Block quotes\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function blockquote (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n const oldLineMax = state.lineMax\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos) !== 0x3E/* > */) { return false }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true }\n\n const oldBMarks = []\n const oldBSCount = []\n const oldSCount = []\n const oldTShift = []\n\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const oldParentType = state.parentType\n state.parentType = 'blockquote'\n let lastLineEmpty = false\n let nextLine\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n const isOutdented = state.sCount[nextLine] < state.blkIndent\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n let initial = state.sCount[nextLine] + 1\n let spaceAfterMarker\n let adjustTab\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++\n initial++\n adjustTab = false\n spaceAfterMarker = true\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true\n\n if ((state.bsCount[nextLine] + initial) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++\n initial++\n adjustTab = false\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true\n }\n } else {\n spaceAfterMarker = false\n }\n\n let offset = initial\n oldBMarks.push(state.bMarks[nextLine])\n state.bMarks[nextLine] = pos\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4\n } else {\n offset++\n }\n } else {\n break\n }\n\n pos++\n }\n\n lastLineEmpty = pos >= max\n\n oldBSCount.push(state.bsCount[nextLine])\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0)\n\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] = offset - initial\n\n oldTShift.push(state.tShift[nextLine])\n state.tShift[nextLine] = pos - state.bMarks[nextLine]\n continue\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break }\n\n // Case 3: another tag found.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] -= state.blkIndent\n }\n\n break\n }\n\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1\n }\n\n const oldIndent = state.blkIndent\n state.blkIndent = 0\n\n const token_o = state.push('blockquote_open', 'blockquote', 1)\n token_o.markup = '>'\n const lines = [startLine, 0]\n token_o.map = lines\n\n state.md.block.tokenize(state, startLine, nextLine)\n\n const token_c = state.push('blockquote_close', 'blockquote', -1)\n token_c.markup = '>'\n\n state.lineMax = oldLineMax\n state.parentType = oldParentType\n lines[1] = state.line\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (let i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i]\n state.tShift[i + startLine] = oldTShift[i]\n state.sCount[i + startLine] = oldSCount[i]\n state.bsCount[i + startLine] = oldBSCount[i]\n }\n state.blkIndent = oldIndent\n\n return true\n}\n","// Horizontal rule\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function hr (state, startLine, endLine, silent) {\n const max = state.eMarks[startLine]\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n const marker = state.src.charCodeAt(pos++)\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n let cnt = 1\n while (pos < max) {\n const ch = state.src.charCodeAt(pos++)\n if (ch !== marker && !isSpace(ch)) { return false }\n if (ch === marker) { cnt++ }\n }\n\n if (cnt < 3) { return false }\n\n if (silent) { return true }\n\n state.line = startLine + 1\n\n const token = state.push('hr', 'hr', 0)\n token.map = [startLine, state.line]\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker))\n\n return true\n}\n","// Lists\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker (state, startLine) {\n const max = state.eMarks[startLine]\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n\n const marker = state.src.charCodeAt(pos++)\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1\n }\n\n if (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1\n }\n }\n\n return pos\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker (state, startLine) {\n const start = state.bMarks[startLine] + state.tShift[startLine]\n const max = state.eMarks[startLine]\n let pos = start\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1 }\n\n let ch = state.src.charCodeAt(pos++)\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1 }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1 }\n\n ch = state.src.charCodeAt(pos++)\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1 }\n\n continue\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break\n }\n\n return -1\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1\n }\n }\n return pos\n}\n\nfunction markTightParagraphs (state, idx) {\n const level = state.level + 2\n\n for (let i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true\n state.tokens[i].hidden = true\n i += 2\n }\n }\n}\n\nexport default function list (state, startLine, endLine, silent) {\n let max, pos, start, token\n let nextLine = startLine\n let tight = true\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[nextLine] - state.listIndent >= 4 &&\n state.sCount[nextLine] < state.blkIndent) {\n return false\n }\n\n let isTerminatingParagraph = false\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n isTerminatingParagraph = true\n }\n }\n\n // Detect list type and position after marker\n let isOrdered\n let markerValue\n let posAfterMarker\n if ((posAfterMarker = skipOrderedListMarker(state, nextLine)) >= 0) {\n isOrdered = true\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n markerValue = Number(state.src.slice(start, posAfterMarker - 1))\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false\n } else if ((posAfterMarker = skipBulletListMarker(state, nextLine)) >= 0) {\n isOrdered = false\n } else {\n return false\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[nextLine]) return false\n }\n\n // For validation mode we can terminate immediately\n if (silent) { return true }\n\n // We should terminate list on style change. Remember first one to compare.\n const markerCharCode = state.src.charCodeAt(posAfterMarker - 1)\n\n // Start list\n const listTokIdx = state.tokens.length\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1)\n if (markerValue !== 1) {\n token.attrs = [['start', markerValue]]\n }\n } else {\n token = state.push('bullet_list_open', 'ul', 1)\n }\n\n const listLines = [nextLine, 0]\n token.map = listLines\n token.markup = String.fromCharCode(markerCharCode)\n\n //\n // Iterate list items\n //\n\n let prevEmptyEnd = false\n const terminatorRules = state.md.block.ruler.getRules('list')\n\n const oldParentType = state.parentType\n state.parentType = 'list'\n\n while (nextLine < endLine) {\n pos = posAfterMarker\n max = state.eMarks[nextLine]\n\n const initial = state.sCount[nextLine] + posAfterMarker - (state.bMarks[nextLine] + state.tShift[nextLine])\n let offset = initial\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4\n } else if (ch === 0x20) {\n offset++\n } else {\n break\n }\n\n pos++\n }\n\n const contentStart = pos\n let indentAfterMarker\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1\n } else {\n indentAfterMarker = offset - initial\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1 }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n const indent = initial + indentAfterMarker\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1)\n token.markup = String.fromCharCode(markerCharCode)\n const itemLines = [nextLine, 0]\n token.map = itemLines\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1)\n }\n\n // change current state, then restore it after parser subcall\n const oldTight = state.tight\n const oldTShift = state.tShift[nextLine]\n const oldSCount = state.sCount[nextLine]\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n const oldListIndent = state.listIndent\n state.listIndent = state.blkIndent\n state.blkIndent = indent\n\n state.tight = true\n state.tShift[nextLine] = contentStart - state.bMarks[nextLine]\n state.sCount[nextLine] = offset\n\n if (contentStart >= max && state.isEmpty(nextLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine)\n } else {\n state.md.block.tokenize(state, nextLine, endLine, true)\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - nextLine) > 1 && state.isEmpty(state.line - 1)\n\n state.blkIndent = state.listIndent\n state.listIndent = oldListIndent\n state.tShift[nextLine] = oldTShift\n state.sCount[nextLine] = oldSCount\n state.tight = oldTight\n\n token = state.push('list_item_close', 'li', -1)\n token.markup = String.fromCharCode(markerCharCode)\n\n nextLine = state.line\n itemLines[1] = nextLine\n\n if (nextLine >= endLine) { break }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n\n // fail if terminating block found\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1)\n } else {\n token = state.push('bullet_list_close', 'ul', -1)\n }\n token.markup = String.fromCharCode(markerCharCode)\n\n listLines[1] = nextLine\n state.line = nextLine\n\n state.parentType = oldParentType\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx)\n }\n\n return true\n}\n","import { isSpace, normalizeReference } from '../common/utils.mjs'\n\nexport default function reference (state, startLine, _endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n let nextLine = startLine + 1\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false }\n\n function getNextLine (nextLine) {\n const endLine = state.lineMax\n\n if (nextLine >= endLine || state.isEmpty(nextLine)) {\n // empty line or end of input\n return null\n }\n\n let isContinuation = false\n\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { isContinuation = true }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { isContinuation = true }\n\n if (!isContinuation) {\n const terminatorRules = state.md.block.ruler.getRules('reference')\n const oldParentType = state.parentType\n state.parentType = 'reference'\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n state.parentType = oldParentType\n if (terminate) {\n // terminated by another block\n return null\n }\n }\n\n const pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n // max + 1 explicitly includes the newline\n return state.src.slice(pos, max + 1)\n }\n\n let str = state.src.slice(pos, max + 1)\n\n max = str.length\n let labelEnd = -1\n\n for (pos = 1; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x5B /* [ */) {\n return false\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos\n break\n } else if (ch === 0x0A /* \\n */) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (ch === 0x5C /* \\ */) {\n pos++\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n const destRes = state.md.helpers.parseLinkDestination(str, pos, max)\n if (!destRes.ok) { return false }\n\n const href = state.md.normalizeLink(destRes.str)\n if (!state.md.validateLink(href)) { return false }\n\n pos = destRes.pos\n\n // save cursor state, we could require to rollback later\n const destEndPos = pos\n const destEndLineNo = nextLine\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n const start = pos\n for (; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n let titleRes = state.md.helpers.parseLinkTitle(str, pos, max)\n while (titleRes.can_continue) {\n const lineContent = getNextLine(nextLine)\n if (lineContent === null) break\n str += lineContent\n pos = max\n max = str.length\n nextLine++\n titleRes = state.md.helpers.parseLinkTitle(str, pos, max, titleRes)\n }\n let title\n\n if (pos < max && start !== pos && titleRes.ok) {\n title = titleRes.str\n pos = titleRes.pos\n } else {\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false\n }\n\n const label = normalizeReference(str.slice(1, labelEnd))\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /* istanbul ignore if */\n if (silent) { return true }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {}\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title, href }\n }\n\n state.line = nextLine\n return true\n}\n","// HTML block\n\nimport block_names from '../common/html_blocks.mjs'\nimport { HTML_OPEN_CLOSE_TAG_RE } from '../common/html_re.mjs'\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nconst HTML_SEQUENCES = [\n [/^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true],\n [/^/, true],\n [/^<\\?/, /\\?>/, true],\n [/^/, true],\n [/^/, true],\n [new RegExp('^|$))', 'i'), /^$/, true],\n [new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false]\n]\n\nexport default function html_block (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (!state.md.options.html) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n let lineText = state.src.slice(pos, max)\n\n let i = 0\n for (; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break }\n }\n if (i === HTML_SEQUENCES.length) { return false }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2]\n }\n\n let nextLine = startLine + 1\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n lineText = state.src.slice(pos, max)\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++ }\n break\n }\n }\n }\n\n state.line = nextLine\n\n const token = state.push('html_block', '', 0)\n token.map = [startLine, nextLine]\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true)\n\n return true\n}\n","// List of valid html blocks names, according to commonmark spec\n// https://spec.commonmark.org/0.30/#html-blocks\n\nexport default [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n","// Regexps to match html elements\n\nconst attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*'\n\nconst unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+'\nconst single_quoted = \"'[^']*'\"\nconst double_quoted = '\"[^\"]*\"'\n\nconst attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')'\n\nconst attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)'\n\nconst open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>'\n\nconst close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>'\nconst comment = ''\nconst processing = '<[?][\\\\s\\\\S]*?[?]>'\nconst declaration = ']*>'\nconst cdata = ''\n\nconst HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')')\nconst HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')')\n\nexport { HTML_TAG_RE, HTML_OPEN_CLOSE_TAG_RE }\n","// heading (#, ##, ...)\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function heading (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x23/* # */ || pos >= max) { return false }\n\n // count heading level\n let level = 1\n ch = state.src.charCodeAt(++pos)\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++\n ch = state.src.charCodeAt(++pos)\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false }\n\n if (silent) { return true }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos)\n const tmp = state.skipCharsBack(max, 0x23, pos) // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp\n }\n\n state.line = startLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = '########'.slice(0, level)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = state.src.slice(pos, max).trim()\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = '########'.slice(0, level)\n\n return true\n}\n","// lheading (---, ===)\n\nexport default function lheading (state, startLine, endLine/*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n const oldParentType = state.parentType\n state.parentType = 'paragraph' // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0\n let marker\n let nextLine = startLine + 1\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos)\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker)\n pos = state.skipSpaces(pos)\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2)\n break\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = String.fromCharCode(marker)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line - 1]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = String.fromCharCode(marker)\n\n state.parentType = oldParentType\n\n return true\n}\n","// Paragraph\n\nexport default function paragraph (state, startLine, endLine) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n const oldParentType = state.parentType\n let nextLine = startLine + 1\n state.parentType = 'paragraph'\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine\n\n const token_o = state.push('paragraph_open', 'p', 1)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n state.push('paragraph_close', 'p', -1)\n\n state.parentType = oldParentType\n\n return true\n}\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateInline from './rules_inline/state_inline.mjs'\n\nimport r_text from './rules_inline/text.mjs'\nimport r_linkify from './rules_inline/linkify.mjs'\nimport r_newline from './rules_inline/newline.mjs'\nimport r_escape from './rules_inline/escape.mjs'\nimport r_backticks from './rules_inline/backticks.mjs'\nimport r_strikethrough from './rules_inline/strikethrough.mjs'\nimport r_emphasis from './rules_inline/emphasis.mjs'\nimport r_link from './rules_inline/link.mjs'\nimport r_image from './rules_inline/image.mjs'\nimport r_autolink from './rules_inline/autolink.mjs'\nimport r_html_inline from './rules_inline/html_inline.mjs'\nimport r_entity from './rules_inline/entity.mjs'\n\nimport r_balance_pairs from './rules_inline/balance_pairs.mjs'\nimport r_fragments_join from './rules_inline/fragments_join.mjs'\n\n// Parser rules\n\nconst _rules = [\n ['text', r_text],\n ['linkify', r_linkify],\n ['newline', r_newline],\n ['escape', r_escape],\n ['backticks', r_backticks],\n ['strikethrough', r_strikethrough.tokenize],\n ['emphasis', r_emphasis.tokenize],\n ['link', r_link],\n ['image', r_image],\n ['autolink', r_autolink],\n ['html_inline', r_html_inline],\n ['entity', r_entity]\n]\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nconst _rules2 = [\n ['balance_pairs', r_balance_pairs],\n ['strikethrough', r_strikethrough.postProcess],\n ['emphasis', r_emphasis.postProcess],\n // rules for pairs separate '**' into its own text tokens, which may be left unused,\n // rule below merges unused segments back with the rest of the text\n ['fragments_join', r_fragments_join]\n]\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline () {\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler()\n\n for (let i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1])\n }\n}\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n const pos = state.pos\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n const cache = state.cache\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos]\n return\n }\n\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++\n ok = rules[i](state, true)\n state.level--\n\n if (ok) {\n if (pos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax\n }\n\n if (!ok) { state.pos++ }\n cache[pos] = state.pos\n}\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const end = state.posMax\n const maxNesting = state.md.options.maxNesting\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n const prevPos = state.pos\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, false)\n if (ok) {\n if (prevPos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break }\n continue\n }\n\n state.pending += state.src[state.pos++]\n }\n\n if (state.pending) {\n state.pushPending()\n }\n}\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n const state = new this.State(str, md, env, outTokens)\n\n this.tokenize(state)\n\n const rules = this.ruler2.getRules('')\n const len = rules.length\n\n for (let i = 0; i < len; i++) {\n rules[i](state)\n }\n}\n\nParserInline.prototype.State = StateInline\n\nexport default ParserInline\n","// Inline parser state\n\nimport Token from '../token.mjs'\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nfunction StateInline (src, md, env, outTokens) {\n this.src = src\n this.env = env\n this.md = md\n this.tokens = outTokens\n this.tokens_meta = Array(outTokens.length)\n\n this.pos = 0\n this.posMax = this.src.length\n this.level = 0\n this.pending = ''\n this.pendingLevel = 0\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {}\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = []\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = []\n\n // backtick length => last seen position\n this.backticks = {}\n this.backticksScanned = false\n\n // Counter used to disable inline linkify-it execution\n // inside and markdown links\n this.linkLevel = 0\n}\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n const token = new Token('text', '', 0)\n token.content = this.pending\n token.level = this.pendingLevel\n this.tokens.push(token)\n this.pending = ''\n return token\n}\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending()\n }\n\n const token = new Token(type, tag, nesting)\n let token_meta = null\n\n if (nesting < 0) {\n // closing tag\n this.level--\n this.delimiters = this._prev_delimiters.pop()\n }\n\n token.level = this.level\n\n if (nesting > 0) {\n // opening tag\n this.level++\n this._prev_delimiters.push(this.delimiters)\n this.delimiters = []\n token_meta = { delimiters: this.delimiters }\n }\n\n this.pendingLevel = this.level\n this.tokens.push(token)\n this.tokens_meta.push(token_meta)\n return token\n}\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n const max = this.posMax\n const marker = this.src.charCodeAt(start)\n\n // treat beginning of the line as a whitespace\n const lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20\n\n let pos = start\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++ }\n\n const count = pos - start\n\n // treat end of the line as a whitespace\n const nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n const left_flanking =\n !isNextWhiteSpace && (!isNextPunctChar || isLastWhiteSpace || isLastPunctChar)\n const right_flanking =\n !isLastWhiteSpace && (!isLastPunctChar || isNextWhiteSpace || isNextPunctChar)\n\n const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar)\n const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar)\n\n return { can_open, can_close, length: count }\n}\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token\n\nexport default StateInline\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar (ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\nexport default function text (state, silent) {\n let pos = state.pos\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++\n }\n\n if (pos === state.pos) { return false }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos) }\n\n state.pos = pos\n\n return true\n}\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParserInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n}; */\n","// Process links like https://example.org/\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nconst SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i\n\nexport default function linkify (state, silent) {\n if (!state.md.options.linkify) return false\n if (state.linkLevel > 0) return false\n\n const pos = state.pos\n const max = state.posMax\n\n if (pos + 3 > max) return false\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false\n\n const match = state.pending.match(SCHEME_RE)\n if (!match) return false\n\n const proto = match[1]\n\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length))\n if (!link) return false\n\n let url = link.url\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '')\n\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) return false\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length)\n\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n }\n\n state.pos += url.length - proto.length\n return true\n}\n","// Proceess '\\n'\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function newline (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false }\n\n const pmax = state.pending.length - 1\n const max = state.posMax\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n let ws = pmax - 1\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--\n\n state.pending = state.pending.slice(0, ws)\n state.push('hardbreak', 'br', 0)\n } else {\n state.pending = state.pending.slice(0, -1)\n state.push('softbreak', 'br', 0)\n }\n } else {\n state.push('softbreak', 'br', 0)\n }\n }\n\n pos++\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++ }\n\n state.pos = pos\n return true\n}\n","// Process escaped chars and hardbreaks\n\nimport { isSpace } from '../common/utils.mjs'\n\nconst ESCAPED = []\n\nfor (let i = 0; i < 256; i++) { ESCAPED.push(0) }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1 })\n\nexport default function escape (state, silent) {\n let pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) return false\n pos++\n\n // '\\' at the end of the inline block\n if (pos >= max) return false\n\n let ch1 = state.src.charCodeAt(pos)\n\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0)\n }\n\n pos++\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos)\n if (!isSpace(ch1)) break\n pos++\n }\n\n state.pos = pos\n return true\n }\n\n let escapedStr = state.src[pos]\n\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n const ch2 = state.src.charCodeAt(pos + 1)\n\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1]\n pos++\n }\n }\n\n const origStr = '\\\\' + escapedStr\n\n if (!silent) {\n const token = state.push('text_special', '', 0)\n\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr\n } else {\n token.content = origStr\n }\n\n token.markup = origStr\n token.info = 'escape'\n }\n\n state.pos = pos + 1\n return true\n}\n","// Parse backticks\n\nexport default function backtick (state, silent) {\n let pos = state.pos\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x60/* ` */) { return false }\n\n const start = pos\n pos++\n const max = state.posMax\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++ }\n\n const marker = state.src.slice(start, pos)\n const openerLength = marker.length\n\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n }\n\n let matchEnd = pos\n let matchStart\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++ }\n\n const closerLength = matchEnd - matchStart\n\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n const token = state.push('code_inline', 'code', 0)\n token.markup = marker\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1')\n }\n state.pos = matchEnd\n return true\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true\n\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n}\n","// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x7E/* ~ */) { return false }\n\n const scanned = state.scanDelims(state.pos, true)\n let len = scanned.length\n const ch = String.fromCharCode(marker)\n\n if (len < 2) { return false }\n\n let token\n\n if (len % 2) {\n token = state.push('text', '', 0)\n token.content = ch\n len--\n }\n\n for (let i = 0; i < len; i += 2) {\n token = state.push('text', '', 0)\n token.content = ch + ch\n\n state.delimiters.push({\n marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n let token\n const loneMarkers = []\n const max = delimiters.length\n\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue\n }\n\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n token = state.tokens[startDelim.token]\n token.type = 's_open'\n token.tag = 's'\n token.nesting = 1\n token.markup = '~~'\n token.content = ''\n\n token = state.tokens[endDelim.token]\n token.type = 's_close'\n token.tag = 's'\n token.nesting = -1\n token.markup = '~~'\n token.content = ''\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1)\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n const i = loneMarkers.pop()\n let j = i + 1\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++\n }\n\n j--\n\n if (i !== j) {\n token = state.tokens[j]\n state.tokens[j] = state.tokens[i]\n state.tokens[i] = token\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: strikethrough_tokenize,\n postProcess: strikethrough_postProcess\n}\n","// Process *this* and _that_\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction emphasis_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false }\n\n const scanned = state.scanDelims(state.pos, marker === 0x2A)\n\n for (let i = 0; i < scanned.length; i++) {\n const token = state.push('text', '', 0)\n token.content = String.fromCharCode(marker)\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n const max = delimiters.length\n\n for (let i = max - 1; i >= 0; i--) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n const isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1\n\n const ch = String.fromCharCode(startDelim.marker)\n\n const token_o = state.tokens[startDelim.token]\n token_o.type = isStrong ? 'strong_open' : 'em_open'\n token_o.tag = isStrong ? 'strong' : 'em'\n token_o.nesting = 1\n token_o.markup = isStrong ? ch + ch : ch\n token_o.content = ''\n\n const token_c = state.tokens[endDelim.token]\n token_c.type = isStrong ? 'strong_close' : 'em_close'\n token_c.tag = isStrong ? 'strong' : 'em'\n token_c.nesting = -1\n token_c.markup = isStrong ? ch + ch : ch\n token_c.content = ''\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = ''\n state.tokens[delimiters[startDelim.end + 1].token].content = ''\n i--\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction emphasis_post_process (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: emphasis_tokenize,\n postProcess: emphasis_post_process\n}\n","// Process [link]( \"stuff\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function link (state, silent) {\n let code, label, res, ref\n let href = ''\n let title = ''\n let start = state.pos\n let parseReference = true\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false }\n\n const oldPos = state.pos\n const max = state.posMax\n const labelStart = state.pos + 1\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n let pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true\n }\n pos++\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart\n state.posMax = labelEnd\n\n const token_o = state.push('link_open', 'a', 1)\n const attrs = [['href', href]]\n token_o.attrs = attrs\n if (title) {\n attrs.push(['title', title])\n }\n\n state.linkLevel++\n state.md.inline.tokenize(state)\n state.linkLevel--\n\n state.push('link_close', 'a', -1)\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process ![image]( \"title\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function image (state, silent) {\n let code, content, label, pos, ref, res, title, start\n let href = ''\n const oldPos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false }\n\n const labelStart = state.pos + 2\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n } else {\n title = ''\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos\n return false\n }\n pos++\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd)\n\n const tokens = []\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens\n )\n\n const token = state.push('image', 'img', 0)\n const attrs = [['src', href], ['alt', '']]\n token.attrs = attrs\n token.children = tokens\n token.content = content\n\n if (title) {\n attrs.push(['title', title])\n }\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process autolinks ''\n\n/* eslint max-len:0 */\nconst EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/\n/* eslint-disable-next-line no-control-regex */\nconst AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\\x00-\\x20]*)$/\n\nexport default function autolink (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n const start = state.pos\n const max = state.posMax\n\n for (;;) {\n if (++pos >= max) return false\n\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x3C /* < */) return false\n if (ch === 0x3E /* > */) break\n }\n\n const url = state.src.slice(start + 1, pos)\n\n if (AUTOLINK_RE.test(url)) {\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n if (EMAIL_RE.test(url)) {\n const fullUrl = state.md.normalizeLink('mailto:' + url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n return false\n}\n","// Process html tags\n\nimport { HTML_TAG_RE } from '../common/html_re.mjs'\n\nfunction isLinkOpen (str) {\n return /^\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nfunction isLetter (ch) {\n /* eslint no-bitwise:0 */\n const lc = ch | 0x20 // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */)\n}\n\nexport default function html_inline (state, silent) {\n if (!state.md.options.html) { return false }\n\n // Check start\n const max = state.posMax\n const pos = state.pos\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false\n }\n\n // Quick fail on second char\n const ch = state.src.charCodeAt(pos + 1)\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false\n }\n\n const match = state.src.slice(pos).match(HTML_TAG_RE)\n if (!match) { return false }\n\n if (!silent) {\n const token = state.push('html_inline', '', 0)\n token.content = match[0]\n\n if (isLinkOpen(token.content)) state.linkLevel++\n if (isLinkClose(token.content)) state.linkLevel--\n }\n state.pos += match[0].length\n return true\n}\n","// Process html entity - {, ¯, ", ...\n\nimport { decodeHTML } from 'entities'\nimport { isValidEntityCode, fromCodePoint } from '../common/utils.mjs'\n\nconst DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i\nconst NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i\n\nexport default function entity (state, silent) {\n const pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) return false\n\n if (pos + 1 >= max) return false\n\n const ch = state.src.charCodeAt(pos + 1)\n\n if (ch === 0x23 /* # */) {\n const match = state.src.slice(pos).match(DIGITAL_RE)\n if (match) {\n if (!silent) {\n const code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10)\n\n const token = state.push('text_special', '', 0)\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD)\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n } else {\n const match = state.src.slice(pos).match(NAMED_RE)\n if (match) {\n const decoded = decodeHTML(match[0])\n if (decoded !== match[0]) {\n if (!silent) {\n const token = state.push('text_special', '', 0)\n token.content = decoded\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n }\n }\n\n return false\n}\n","// For each opening emphasis-like marker find a matching closing one\n//\n\nfunction processDelimiters (delimiters) {\n const openersBottom = {}\n const max = delimiters.length\n\n if (!max) return\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n let headerIdx = 0\n let lastTokenIdx = -2 // needs any value lower than -1\n const jumps = []\n\n for (let closerIdx = 0; closerIdx < max; closerIdx++) {\n const closer = delimiters[closerIdx]\n\n jumps.push(0)\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx\n }\n\n lastTokenIdx = closer.token\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0\n\n if (!closer.close) continue\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n /* eslint-disable-next-line no-prototype-builtins */\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [-1, -1, -1, -1, -1, -1]\n }\n\n const minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length % 3)]\n\n let openerIdx = headerIdx - jumps[headerIdx] - 1\n\n let newMinOpenerIdx = openerIdx\n\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n const opener = delimiters[openerIdx]\n\n if (opener.marker !== closer.marker) continue\n\n if (opener.open && opener.end < 0) {\n let isOddMatch = false\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n const lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open\n ? jumps[openerIdx - 1] + 1\n : 0\n\n jumps[closerIdx] = closerIdx - openerIdx + lastJump\n jumps[openerIdx] = lastJump\n\n closer.open = false\n opener.end = closerIdx\n opener.close = false\n newMinOpenerIdx = -1\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2\n break\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + ((closer.length || 0) % 3)] = newMinOpenerIdx\n }\n }\n}\n\nexport default function link_pairs (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n processDelimiters(state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(tokens_meta[curr].delimiters)\n }\n }\n}\n","// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\nexport default function fragments_join (state) {\n let curr, last\n let level = 0\n const tokens = state.tokens\n const max = state.tokens.length\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level-- // closing tag\n tokens[curr].level = level\n if (tokens[curr].nesting > 0) level++ // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n}\n","import reFactory from './lib/re.mjs'\n\n//\n// Helpers\n//\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\nfunction isString (obj) { return _class(obj) === '[object String]' }\nfunction isObject (obj) { return _class(obj) === '[object Object]' }\nfunction isRegExp (obj) { return _class(obj) === '[object RegExp]' }\nfunction isFunction (obj) { return _class(obj) === '[object Function]' }\n\nfunction escapeRE (str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&') }\n\n//\n\nconst defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n}\n\nfunction isOptionsObj (obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n /* eslint-disable-next-line no-prototype-builtins */\n return acc || defaultOptions.hasOwnProperty(k)\n }, false)\n}\n\nconst defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n )\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length\n }\n return 0\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n )\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0 }\n if (pos >= 3 && text[pos - 3] === '/') { return 0 }\n return tail.match(self.re.no_http)[0].length\n }\n return 0\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n )\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length\n }\n return 0\n }\n }\n}\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\n/* eslint-disable-next-line max-len */\nconst tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]'\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nconst tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|')\n\nfunction resetScanCache (self) {\n self.__index__ = -1\n self.__text_cache__ = ''\n}\n\nfunction createValidator (re) {\n return function (text, pos) {\n const tail = text.slice(pos)\n\n if (re.test(tail)) {\n return tail.match(re)[0].length\n }\n return 0\n }\n}\n\nfunction createNormalizer () {\n return function (match, self) {\n self.normalize(match)\n }\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile (self) {\n // Load & clone RE patterns.\n const re = self.re = reFactory(self.__opts__)\n\n // Define dynamic patterns\n const tlds = self.__tlds__.slice()\n\n self.onCompile()\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re)\n }\n tlds.push(re.src_xn)\n\n re.src_tlds = tlds.join('|')\n\n function untpl (tpl) { return tpl.replace('%TLDS%', re.src_tlds) }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i')\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i')\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i')\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i')\n\n //\n // Compile each schema\n //\n\n const aliases = []\n\n self.__compiled__ = {} // Reset compiled data\n\n function schemaError (name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val)\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n const val = self.__schemas__[name]\n\n // skip disabled methods\n if (val === null) { return }\n\n const compiled = { validate: null, link: null }\n\n self.__compiled__[name] = compiled\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate)\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate\n } else {\n schemaError(name, val)\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer()\n } else {\n schemaError(name, val)\n }\n\n return\n }\n\n if (isString(val)) {\n aliases.push(name)\n return\n }\n\n schemaError(name, val)\n })\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize\n })\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() }\n\n //\n // Build schema condition\n //\n const slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name]\n })\n .map(escapeRE)\n .join('|')\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i')\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig')\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i')\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n )\n\n //\n // Cleanup\n //\n\n resetScanCache(self)\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match (self, shift) {\n const start = self.__index__\n const end = self.__last_index__\n const text = self.__text_cache__.slice(start, end)\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase()\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text\n}\n\nfunction createMatch (self, shift) {\n const match = new Match(self, shift)\n\n self.__compiled__[match.schema].normalize(match, self)\n\n return match\n}\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt (schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options)\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas\n schemas = {}\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options)\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1\n this.__last_index__ = -1 // Next scan position\n this.__schema__ = ''\n this.__text_cache__ = ''\n\n this.__schemas__ = assign({}, defaultSchemas, schemas)\n this.__compiled__ = {}\n\n this.__tlds__ = tlds_default\n this.__tlds_replaced__ = false\n\n this.re = {}\n\n compile(this)\n}\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add (schema, definition) {\n this.__schemas__[schema] = definition\n compile(this)\n return this\n}\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set (options) {\n this.__opts__ = assign(this.__opts__, options)\n return this\n}\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) { return false }\n\n let m, ml, me, len, shift, next, re, tld_pos, at_pos\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search\n re.lastIndex = 0\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex)\n if (len) {\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n break\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test)\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n shift = ml.index + ml[1].length\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = ''\n this.__index__ = shift\n this.__last_index__ = ml.index + ml[0].length\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@')\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n shift = me.index + me[1].length\n next = me.index + me[0].length\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:'\n this.__index__ = shift\n this.__last_index__ = next\n }\n }\n }\n }\n\n return this.__index__ >= 0\n}\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest (text) {\n return this.re.pretest.test(text)\n}\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt (text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this)\n}\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match (text) {\n const result = []\n let shift = 0\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift))\n shift = this.__last_index__\n }\n\n // Cut head if cache was used\n let tail = shift ? text.slice(shift) : text\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift))\n\n tail = tail.slice(this.__last_index__)\n shift += this.__last_index__\n }\n\n if (result.length) {\n return result\n }\n\n return null\n}\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) return null\n\n const m = this.re.schema_at_start.exec(text)\n if (!m) return null\n\n const len = this.testSchemaAt(text, m[2], m[0].length)\n if (!len) return null\n\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n\n return createMatch(this, 0)\n}\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds (list, keepOld) {\n list = Array.isArray(list) ? list : [list]\n\n if (!keepOld) {\n this.__tlds__ = list.slice()\n this.__tlds_replaced__ = true\n compile(this)\n return this\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1]\n })\n .reverse()\n\n compile(this)\n return this\n}\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize (match) {\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url\n }\n}\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile () {\n}\n\nexport default LinkifyIt\n","import { Any, Cc, Z, P } from 'uc.micro'\n\nexport default function (opts) {\n const re = {}\n opts = opts || {}\n\n re.src_Any = Any.source\n re.src_Cc = Cc.source\n re.src_Z = Z.source\n re.src_P = P.source\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [re.src_Z, re.src_P, re.src_Cc].join('|')\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [re.src_Z, re.src_Cc].join('|')\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n const text_separators = '[><\\uff5c]'\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')'\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?'\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?'\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))'\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n\n // allow `I'm_king` if no pair found\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' +\n\n // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.{2,}[a-zA-Z0-9%/&]|' +\n\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---']\n ? '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n : '\\\\-+|'\n ) +\n // allow `,,,` in paths\n ',(?!' + re.src_ZCc + '|$)|' +\n\n // allow `;` if not followed by space-like char\n ';(?!' + re.src_ZCc + '|$)|' +\n\n // allow `!!!` in paths, but not at the end\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' +\n\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?'\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*'\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}'\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')'\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')'\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/* _root */ + ')' +\n ')'\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')'\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))'\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator\n\n //\n // Main rules\n //\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))'\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')'\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')'\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')'\n\n return re\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","// markdown-it default options\n\nexport default {\n options: {\n // Enable HTML tags in source\n html: false,\n\n // Use '/' to close single tags (
)\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into
\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into
\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: true,\n\n // Convert '\\n' in paragraphs into
\n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.10.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n // общий паттерн для определения идентификаторов\n const UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n const v7_keywords =\n 'далее ';\n\n // v8 ключевые слова ==> keyword\n const v8_keywords =\n 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли '\n + 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n // keyword : ключевые слова\n const KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n const v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n const v8_meta_keywords =\n 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер '\n + 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед '\n + 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 системные константы ==> built_in\n const v7_system_constants =\n 'разделительстраниц разделительстрок символтабуляции ';\n\n // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n const v7_global_context_methods =\n 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов '\n + 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя '\n + 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца '\n + 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид '\n + 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца '\n + 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов '\n + 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута '\n + 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта '\n + 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына '\n + 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента '\n + 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n // v8 методы глобального контекста ==> built_in\n const v8_global_context_methods =\n 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока '\n + 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение '\n + 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации '\n + 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода '\n + 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы '\n + 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации '\n + 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию '\n + 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла '\n + 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке '\n + 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку '\n + 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты '\n + 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы '\n + 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти '\n + 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы '\n + 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя '\n + 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты '\n + 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов '\n + 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя '\n + 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога '\n + 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией '\n + 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы '\n + 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения '\n + 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении '\n + 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения '\n + 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально '\n + 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа '\n + 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту '\n + 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения '\n + 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки '\n + 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение '\n + 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя '\n + 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса '\n + 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора '\n + 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса '\n + 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации '\n + 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла '\n + 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации '\n + 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления '\n + 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу '\n + 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы '\n + 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет '\n + 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима '\n + 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения '\n + 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути '\n + 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы '\n + 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю '\n + 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных '\n + 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию '\n + 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище '\n + 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода '\n + 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение '\n + 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока '\n + 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных '\n + 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени '\n + 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить '\n + 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс '\n + 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '\n + 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах '\n + 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации '\n + 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы '\n + 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим '\n + 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту '\n + 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных '\n + 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации '\n + 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения '\n + 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования '\n + 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима '\n + 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим '\n + 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией '\n + 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы '\n + 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса '\n + 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n // v8 свойства глобального контекста ==> built_in\n const v8_global_context_property =\n 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы '\n + 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль '\n + 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты '\n + 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений '\n + 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик '\n + 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок '\n + 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений '\n + 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа '\n + 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек '\n + 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков '\n + 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n const BUILTIN =\n v7_system_constants\n + v7_global_context_methods + v8_global_context_methods\n + v8_global_context_property;\n\n // v8 системные наборы значений ==> class\n const v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n // v8 системные перечисления - интерфейсные ==> class\n const v8_system_enums_interface =\n 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий '\n + 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы '\n + 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы '\n + 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя '\n + 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение '\n + 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы '\n + 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания '\n + 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки '\n + 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы '\n + 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева '\n + 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы '\n + 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме '\n + 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы '\n + 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы '\n + 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы '\n + 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска '\n + 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования '\n + 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта '\n + 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы '\n + 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы '\n + 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы '\n + 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы '\n + 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы '\n + 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском '\n + 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы '\n + 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта '\n + 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты '\n + 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения '\n + 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра '\n + 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения '\n + 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы '\n + 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки '\n + 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание '\n + 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы '\n + 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление '\n + 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы '\n + 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы '\n + 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления '\n + 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы '\n + 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы '\n + 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений '\n + 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы '\n + 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы '\n + 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы '\n + 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени '\n + 'форматкартинки ширинаподчиненныхэлементовформы ';\n\n // v8 системные перечисления - свойства прикладных объектов ==> class\n const v8_system_enums_objects_properties =\n 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса '\n + 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения '\n + 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n // v8 системные перечисления - планы обмена ==> class\n const v8_system_enums_exchange_plans =\n 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n // v8 системные перечисления - табличный документ ==> class\n const v8_system_enums_tabular_document =\n 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы '\n + 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента '\n + 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента '\n + 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента '\n + 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы '\n + 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента '\n + 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n // v8 системные перечисления - планировщик ==> class\n const v8_system_enums_sheduler =\n 'отображениевремениэлементовпланировщика ';\n\n // v8 системные перечисления - форматированный документ ==> class\n const v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 системные перечисления - запрос ==> class\n const v8_system_enums_query =\n 'обходрезультатазапроса типзаписизапроса ';\n\n // v8 системные перечисления - построитель отчета ==> class\n const v8_system_enums_report_builder =\n 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n // v8 системные перечисления - работа с файлами ==> class\n const v8_system_enums_files =\n 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n // v8 системные перечисления - построитель запроса ==> class\n const v8_system_enums_query_builder =\n 'типизмеренияпостроителязапроса ';\n\n // v8 системные перечисления - анализ данных ==> class\n const v8_system_enums_data_analysis =\n 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных '\n + 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений '\n + 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций '\n + 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных '\n + 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных '\n + 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n const v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto '\n + 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs '\n + 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs '\n + 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs '\n + 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson '\n + 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs '\n + 'форматдатыjson экранированиесимволовjson ';\n\n // v8 системные перечисления - система компоновки данных ==> class\n const v8_system_enums_data_composition_system =\n 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных '\n + 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных '\n + 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных '\n + 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных '\n + 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных '\n + 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных '\n + 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных '\n + 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных '\n + 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных '\n + 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '\n + 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных '\n + 'использованиеусловногооформлениякомпоновкиданных ';\n\n // v8 системные перечисления - почта ==> class\n const v8_system_enums_email =\n 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения '\n + 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты '\n + 'статусразборапочтовогосообщения ';\n\n // v8 системные перечисления - журнал регистрации ==> class\n const v8_system_enums_logbook =\n 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n // v8 системные перечисления - криптография ==> class\n const v8_system_enums_cryptography =\n 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии '\n + 'типхранилищасертификатовкриптографии ';\n\n // v8 системные перечисления - ZIP ==> class\n const v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip '\n + 'режимсохраненияпутейzip уровеньсжатияzip ';\n\n // v8 системные перечисления -\n // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n const v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных '\n + 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n // v8 системные перечисления - схема запроса ==> class\n const v8_system_enums_request_schema =\n 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса '\n + 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n // v8 системные перечисления - свойства объектов метаданных ==> class\n const v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления '\n + 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование '\n + 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения '\n + 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита '\n + 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных '\n + 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи '\n + 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении '\n + 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений '\n + 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение '\n + 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '\n + 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности '\n + 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов '\n + 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса '\n + 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов '\n + 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования '\n + 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса '\n + 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 системные перечисления - разные ==> class\n const v8_system_enums_differents =\n 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения '\n + 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки '\n + 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак '\n + 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога '\n + 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных '\n + 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения '\n + 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных '\n + 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter '\n + 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n const CLASS =\n v8_system_sets_of_values\n + v8_system_enums_interface\n + v8_system_enums_objects_properties\n + v8_system_enums_exchange_plans\n + v8_system_enums_tabular_document\n + v8_system_enums_sheduler\n + v8_system_enums_formatted_document\n + v8_system_enums_query\n + v8_system_enums_report_builder\n + v8_system_enums_files\n + v8_system_enums_query_builder\n + v8_system_enums_data_analysis\n + v8_system_enums_xml_json_xs_dom_xdto_ws\n + v8_system_enums_data_composition_system\n + v8_system_enums_email\n + v8_system_enums_logbook\n + v8_system_enums_cryptography\n + v8_system_enums_zip\n + v8_system_enums_other\n + v8_system_enums_request_schema\n + v8_system_enums_properties_of_metadata_objects\n + v8_system_enums_differents;\n\n // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n const v8_shared_object =\n 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs '\n + 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема '\n + 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма '\n + 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания '\n + 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление '\n + 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom '\n + 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта '\n + 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs '\n + 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных '\n + 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла '\n + 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных '\n + 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных '\n + 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson '\n + 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs '\n + 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации '\n + 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных '\n + 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs '\n + 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom '\n + 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных '\n + 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных '\n + 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных '\n + 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml '\n + 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент '\n + 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml '\n + 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto '\n + 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows '\n + 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш '\n + 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент '\n + 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток '\n + 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs '\n + 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs '\n + 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs '\n + 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент '\n + 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла '\n + 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n // v8 универсальные коллекции значений ==> type\n const v8_universal_collection =\n 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура '\n + 'фиксированноесоответствие фиксированныймассив ';\n\n // type : встроенные типы\n const TYPE =\n v8_shared_object\n + v8_universal_collection;\n\n // literal : примитивные типы\n const LITERAL = 'null истина ложь неопределено';\n\n // number : числа\n const NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : строки\n const STRINGS = {\n className: 'string',\n begin: '\"|\\\\|',\n end: '\"|$',\n contains: [ { begin: '\"\"' } ]\n };\n\n // number : даты\n const DATE = {\n begin: \"'\",\n end: \"'\",\n excludeBegin: true,\n excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n const PUNCTUATION = {\n match: /[;()+\\-:=,]/,\n className: \"punctuation\",\n relevance: 0\n };\n\n // comment : комментарии\n const COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инструкции препроцессора, директивы компиляции\n const META = {\n className: 'meta',\n\n begin: '#|&',\n end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD + METAKEYWORD\n },\n contains: [ COMMENTS ]\n };\n\n // symbol : метка goto\n const SYMBOL = {\n className: 'symbol',\n begin: '~',\n end: ';|:',\n excludeEnd: true\n };\n\n // function : объявление процедур и функций\n const FUNCTION = {\n className: 'function',\n variants: [\n {\n begin: 'процедура|функция',\n end: '\\\\)',\n keywords: 'процедура функция'\n },\n {\n begin: 'конецпроцедуры|конецфункции',\n keywords: 'конецпроцедуры конецфункции'\n }\n ],\n contains: [\n {\n begin: '\\\\(',\n end: '\\\\)',\n endsParent: true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE,\n end: ',',\n excludeEnd: true,\n endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE })\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE,\n PUNCTUATION\n ]\n };\n}\n\nmodule.exports = _1c;\n","/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nCategory: syntax\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regex = hljs.regex;\n const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;\n\n const KEYWORDS = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const COMMENT = hljs.COMMENT(/;/, /$/);\n\n const TERMINAL_BINARY = {\n scope: \"symbol\",\n match: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+)?/\n };\n\n const TERMINAL_DECIMAL = {\n scope: \"symbol\",\n match: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+)?/\n };\n\n const TERMINAL_HEXADECIMAL = {\n scope: \"symbol\",\n match: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+)?/\n };\n\n const CASE_SENSITIVITY = {\n scope: \"symbol\",\n match: /%[si](?=\".*\")/\n };\n\n const RULE_DECLARATION = {\n scope: \"attribute\",\n match: regex.concat(IDENT, /(?=\\s*=)/)\n };\n\n const ASSIGNMENT = {\n scope: \"operator\",\n match: /=\\/?/\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: /[!@#$^&',?+~`|:]/,\n keywords: KEYWORDS,\n contains: [\n ASSIGNMENT,\n RULE_DECLARATION,\n COMMENT,\n TERMINAL_BINARY,\n TERMINAL_DECIMAL,\n TERMINAL_HEXADECIMAL,\n CASE_SENSITIVITY,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Category: web, logs\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(hljs) {\n const regex = hljs.regex;\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: regex.concat(/\"/, regex.either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const PKG_NAME_RE = regex.concat(\n IDENT_RE,\n regex.concat(\"(\\\\.\", IDENT_RE, \")*\")\n );\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"default\",\n \"delete\",\n \"do\",\n \"dynamic\",\n \"each\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"function\",\n \"get\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"include\",\n \"instanceof\",\n \"interface\",\n \"internal\",\n \"is\",\n \"namespace\",\n \"native\",\n \"new\",\n \"override\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"with\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\"\n ];\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n match: [\n /\\bpackage/,\n /\\s+/,\n PKG_NAME_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n match: [\n /\\b(?:class|interface|extends|implements)/,\n /\\s+/,\n IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { keyword: 'import include' }\n },\n {\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: regex.concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n const KEYWORDS = [\n \"abort\",\n \"else\",\n \"new\",\n \"return\",\n \"abs\",\n \"elsif\",\n \"not\",\n \"reverse\",\n \"abstract\",\n \"end\",\n \"accept\",\n \"entry\",\n \"select\",\n \"access\",\n \"exception\",\n \"of\",\n \"separate\",\n \"aliased\",\n \"exit\",\n \"or\",\n \"some\",\n \"all\",\n \"others\",\n \"subtype\",\n \"and\",\n \"for\",\n \"out\",\n \"synchronized\",\n \"array\",\n \"function\",\n \"overriding\",\n \"at\",\n \"tagged\",\n \"generic\",\n \"package\",\n \"task\",\n \"begin\",\n \"goto\",\n \"pragma\",\n \"terminate\",\n \"body\",\n \"private\",\n \"then\",\n \"if\",\n \"procedure\",\n \"type\",\n \"case\",\n \"in\",\n \"protected\",\n \"constant\",\n \"interface\",\n \"is\",\n \"raise\",\n \"use\",\n \"declare\",\n \"range\",\n \"delay\",\n \"limited\",\n \"record\",\n \"when\",\n \"delta\",\n \"loop\",\n \"rem\",\n \"while\",\n \"digits\",\n \"renames\",\n \"with\",\n \"do\",\n \"mod\",\n \"requeue\",\n \"xor\"\n ];\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: [\n \"True\",\n \"False\"\n ]\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n {\n begin: /\"\"/,\n relevance: 0\n }\n ]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n const builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)'\n };\n\n const objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n const genericMode = {\n className: 'keyword',\n begin: '<',\n end: '>',\n contains: [\n builtInTypeMode,\n objectHandleMode\n ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n const KEYWORDS = [\n \"for\",\n \"in|0\",\n \"break\",\n \"continue\",\n \"while\",\n \"do|0\",\n \"return\",\n \"if\",\n \"else\",\n \"case\",\n \"switch\",\n \"namespace\",\n \"is\",\n \"cast\",\n \"or\",\n \"and\",\n \"xor\",\n \"not\",\n \"get|0\",\n \"in\",\n \"inout|10\",\n \"out\",\n \"override\",\n \"set|0\",\n \"private\",\n \"public\",\n \"const\",\n \"default|0\",\n \"final\",\n \"shared\",\n \"external\",\n \"mixin|10\",\n \"enum\",\n \"typedef\",\n \"funcdef\",\n \"this\",\n \"super\",\n \"import\",\n \"from\",\n \"interface\",\n \"abstract|0\",\n \"try\",\n \"catch\",\n \"protected\",\n \"explicit\",\n \"property\"\n ];\n\n return {\n name: 'AngelScript',\n aliases: [ 'asc' ],\n\n keywords: KEYWORDS,\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[',\n end: '\\\\]'\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: config, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\b\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: { _: [\n \"order\",\n \"deny\",\n \"allow\",\n \"setenv\",\n \"rewriterule\",\n \"rewriteengine\",\n \"rewritecond\",\n \"documentroot\",\n \"sethandler\",\n \"errordocument\",\n \"loadmodule\",\n \"options\",\n \"header\",\n \"listen\",\n \"serverroot\",\n \"servername\"\n ] },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const regex = hljs.regex;\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, { illegal: null });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n { contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ] }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning '\n + 'behind below beneath beside between but by considering '\n + 'contain contains continue copy div does eighth else end equal '\n + 'equals error every exit fifth first for fourth from front '\n + 'get given global if ignoring in into is it its last local me '\n + 'middle mod my ninth not of on onto or over prop property put ref '\n + 'reference repeat returning script second set seventh since '\n + 'sixth some tell tenth that the|0 then third through thru '\n + 'timeout times to transaction try until where while whose with '\n + 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list '\n + 'number real record string text '\n + 'activate beep count delay launch log offset read round '\n + 'run say summarize write '\n + 'character characters contents day frontmost id item length '\n + 'month name|0 paragraph paragraphs rest reverse running time version '\n + 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: regex.concat(\n /\\b/,\n regex.either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: regex.concat(\n /\\b/,\n regex.either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"do\",\n \"else\",\n \"export\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"new\",\n \"return\",\n \"switch\",\n \"try\",\n \"var\",\n \"void\",\n \"while\"\n ],\n literal: [\n \"BackSlash\",\n \"DoubleQuote\",\n \"ForwardSlash\",\n \"Infinity\",\n \"NaN\",\n \"NewLine\",\n \"PI\",\n \"SingleQuote\",\n \"Tab\",\n \"TextFormatting\",\n \"false\",\n \"null\",\n \"true\",\n \"undefined\"\n ],\n built_in: [\n \"Abs\",\n \"Acos\",\n \"All\",\n \"Angle\",\n \"Any\",\n \"Area\",\n \"AreaGeodetic\",\n \"Array\",\n \"Asin\",\n \"Atan\",\n \"Atan2\",\n \"Attachments\",\n \"Average\",\n \"Back\",\n \"Bearing\",\n \"Boolean\",\n \"Buffer\",\n \"BufferGeodetic\",\n \"Ceil\",\n \"Centroid\",\n \"ChangeTimeZone\",\n \"Clip\",\n \"Concatenate\",\n \"Console\",\n \"Constrain\",\n \"Contains\",\n \"ConvertDirection\",\n \"ConvexHull\",\n \"Cos\",\n \"Count\",\n \"Crosses\",\n \"Cut\",\n \"Date|0\",\n \"DateAdd\",\n \"DateDiff\",\n \"DateOnly\",\n \"Day\",\n \"Decode\",\n \"DefaultValue\",\n \"Densify\",\n \"DensifyGeodetic\",\n \"Dictionary\",\n \"Difference\",\n \"Disjoint\",\n \"Distance\",\n \"DistanceGeodetic\",\n \"Distinct\",\n \"Domain\",\n \"DomainCode\",\n \"DomainName\",\n \"EnvelopeIntersects\",\n \"Equals\",\n \"Erase\",\n \"Exp\",\n \"Expects\",\n \"Extent\",\n \"Feature\",\n \"FeatureSet\",\n \"FeatureSetByAssociation\",\n \"FeatureSetById\",\n \"FeatureSetByName\",\n \"FeatureSetByPortalItem\",\n \"FeatureSetByRelationshipClass\",\n \"FeatureSetByRelationshipName\",\n \"Filter\",\n \"Find\",\n \"First|0\",\n \"Floor\",\n \"FromCharCode\",\n \"FromCodePoint\",\n \"FromJSON\",\n \"Front\",\n \"GdbVersion\",\n \"Generalize\",\n \"Geometry\",\n \"GetEnvironment\",\n \"GetFeatureSet\",\n \"GetFeatureSetInfo\",\n \"GetUser\",\n \"GroupBy\",\n \"Guid\",\n \"HasKey\",\n \"HasValue\",\n \"Hash\",\n \"Hour\",\n \"IIf\",\n \"ISOMonth\",\n \"ISOWeek\",\n \"ISOWeekday\",\n \"ISOYear\",\n \"Includes\",\n \"IndexOf\",\n \"Insert\",\n \"Intersection\",\n \"Intersects\",\n \"IsEmpty\",\n \"IsNan\",\n \"IsSelfIntersecting\",\n \"IsSimple\",\n \"Left|0\",\n \"Length\",\n \"Length3D\",\n \"LengthGeodetic\",\n \"Log\",\n \"Lower\",\n \"Map\",\n \"Max\",\n \"Mean\",\n \"Mid\",\n \"Millisecond\",\n \"Min\",\n \"Minute\",\n \"Month\",\n \"MultiPartToSinglePart\",\n \"Multipoint\",\n \"NearestCoordinate\",\n \"NearestVertex\",\n \"NextSequenceValue\",\n \"None\",\n \"Now\",\n \"Number\",\n \"Offset\",\n \"OrderBy\",\n \"Overlaps\",\n \"Point\",\n \"Polygon\",\n \"Polyline\",\n \"Pop\",\n \"Portal\",\n \"Pow\",\n \"Proper\",\n \"Push\",\n \"Random\",\n \"Reduce\",\n \"Relate\",\n \"Replace\",\n \"Resize\",\n \"Reverse\",\n \"Right|0\",\n \"RingIsClockwise\",\n \"Rotate\",\n \"Round\",\n \"Schema\",\n \"Second\",\n \"SetGeometry\",\n \"Simplify\",\n \"Sin\",\n \"Slice\",\n \"Sort\",\n \"Splice\",\n \"Split\",\n \"Sqrt\",\n \"StandardizeGuid\",\n \"Stdev\",\n \"SubtypeCode\",\n \"SubtypeName\",\n \"Subtypes\",\n \"Sum\",\n \"SymmetricDifference\",\n \"Tan\",\n \"Text\",\n \"Time\",\n \"TimeZone\",\n \"TimeZoneOffset\",\n \"Timestamp\",\n \"ToCharCode\",\n \"ToCodePoint\",\n \"ToHex\",\n \"ToLocal\",\n \"ToUTC\",\n \"Today\",\n \"Top|0\",\n \"Touches\",\n \"TrackAccelerationAt\",\n \"TrackAccelerationWindow\",\n \"TrackCurrentAcceleration\",\n \"TrackCurrentDistance\",\n \"TrackCurrentSpeed\",\n \"TrackCurrentTime\",\n \"TrackDistanceAt\",\n \"TrackDistanceWindow\",\n \"TrackDuration\",\n \"TrackFieldWindow\",\n \"TrackGeometryWindow\",\n \"TrackIndex\",\n \"TrackSpeedAt\",\n \"TrackSpeedWindow\",\n \"TrackStartTime\",\n \"TrackWindow\",\n \"Trim\",\n \"TypeOf\",\n \"Union\",\n \"Upper\",\n \"UrlEncode\",\n \"Variance\",\n \"Week\",\n \"Weekday\",\n \"When|0\",\n \"Within\",\n \"Year|0\",\n ]\n };\n const PROFILE_VARS = [\n \"aggregatedFeatures\",\n \"analytic\",\n \"config\",\n \"datapoint\",\n \"datastore\",\n \"editcontext\",\n \"feature\",\n \"featureSet\",\n \"feedfeature\",\n \"fencefeature\",\n \"fencenotificationtype\",\n \"join\",\n \"layer\",\n \"locationupdate\",\n \"map\",\n \"measure\",\n \"measure\",\n \"originalFeature\",\n \"record\",\n \"reference\",\n \"rowindex\",\n \"sourcedatastore\",\n \"sourcefeature\",\n \"sourcelayer\",\n \"target\",\n \"targetdatastore\",\n \"targetfeature\",\n \"targetlayer\",\n \"value\",\n \"view\"\n ];\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$' + regex.either(...PROFILE_VARS)\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0[bB][01]+)' },\n { begin: '\\\\b(0[oO][0-7]+)' },\n { begin: hljs.C_NUMBER_RE }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [\n {\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }\n ]\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n { begin: IDENT_RE },\n { begin: /\\(\\s*\\)/ },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.function\",\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n { begin: /\\$[(.]/ }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\nCategory: system\n*/\n\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [\n ...kws.type,\n ...ARDUINO_KW.type\n ];\n kws.literal = [\n ...kws.literal,\n ...ARDUINO_KW.literal\n ];\n kws.built_in = [\n ...kws.built_in,\n ...ARDUINO_KW.built_in\n ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = [ 'ino' ];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = { variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', { relevance: 0 }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ] };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: [ 'arm' ],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '\n // ARM directives\n + 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' // standard registers\n + 'w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 ' // 32 bit ARMv8 registers\n + 'w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 '\n + 'x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 ' // 64 bit ARMv8 registers\n + 'x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 '\n + 'pc lr sp ip sl sb fp ' // typical regs plus backward compatibility\n + 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' // more regs and fp\n + 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' // coprocessor regs\n + 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' // more coproc\n + 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' // advanced SIMD NEON regs\n\n // program status registers\n + 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '\n + 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '\n\n // NEON and VFP registers\n + 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '\n + 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '\n + 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '\n + 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 '\n\n + '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' // mnemonics\n + 'adc|'\n + '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'\n + 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'\n + 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'\n + 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'\n + 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'\n + 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'\n + 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'\n + 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'\n + 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'\n + 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'\n + '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'\n + 'wfe|wfi|yield'\n + ')'\n + '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' // condition codes\n + '[sptrx]?' // legal postfixes\n + '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+' },\n { // bin\n begin: '[#$=]?0b[01]+' },\n { // literal\n begin: '[#$=]\\\\d+' },\n { // bare number\n begin: '\\\\b\\\\d+' }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:' },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+' },\n { // label reference\n begin: '[=#]\\\\w+' }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the \n","\n\n\n\n\n","import { ObservableV2 } from 'lib0/observable';\nimport * as array from 'lib0/array';\nimport * as math from 'lib0/math';\nimport * as map from 'lib0/map';\nimport * as encoding from 'lib0/encoding';\nimport * as decoding from 'lib0/decoding';\nimport * as random from 'lib0/random';\nimport * as promise from 'lib0/promise';\nimport * as buffer from 'lib0/buffer';\nimport * as error from 'lib0/error';\nimport * as binary from 'lib0/binary';\nimport * as f from 'lib0/function';\nimport { callAll } from 'lib0/function';\nimport * as set from 'lib0/set';\nimport * as logging from 'lib0/logging';\nimport * as time from 'lib0/time';\nimport * as string from 'lib0/string';\nimport * as iterator from 'lib0/iterator';\nimport * as object from 'lib0/object';\nimport * as env from 'lib0/environment';\n\n/**\n * This is an abstract interface that all Connectors should implement to keep them interchangeable.\n *\n * @note This interface is experimental and it is not advised to actually inherit this class.\n * It just serves as typing information.\n *\n * @extends {ObservableV2}\n */\nclass AbstractConnector extends ObservableV2 {\n /**\n * @param {Doc} ydoc\n * @param {any} awareness\n */\n constructor (ydoc, awareness) {\n super();\n this.doc = ydoc;\n this.awareness = awareness;\n }\n}\n\nclass DeleteItem {\n /**\n * @param {number} clock\n * @param {number} len\n */\n constructor (clock, len) {\n /**\n * @type {number}\n */\n this.clock = clock;\n /**\n * @type {number}\n */\n this.len = len;\n }\n}\n\n/**\n * We no longer maintain a DeleteStore. DeleteSet is a temporary object that is created when needed.\n * - When created in a transaction, it must only be accessed after sorting, and merging\n * - This DeleteSet is send to other clients\n * - We do not create a DeleteSet when we send a sync message. The DeleteSet message is created directly from StructStore\n * - We read a DeleteSet as part of a sync/update message. In this case the DeleteSet is already sorted and merged.\n */\nclass DeleteSet {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map();\n }\n}\n\n/**\n * Iterate over all structs that the DeleteSet gc's.\n *\n * @param {Transaction} transaction\n * @param {DeleteSet} ds\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nconst iterateDeletedStructs = (transaction, ds, f) =>\n ds.clients.forEach((deletes, clientid) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(clientid));\n for (let i = 0; i < deletes.length; i++) {\n const del = deletes[i];\n iterateStructs(transaction, structs, del.clock, del.len, f);\n }\n });\n\n/**\n * @param {Array} dis\n * @param {number} clock\n * @return {number|null}\n *\n * @private\n * @function\n */\nconst findIndexDS = (dis, clock) => {\n let left = 0;\n let right = dis.length - 1;\n while (left <= right) {\n const midindex = math.floor((left + right) / 2);\n const mid = dis[midindex];\n const midclock = mid.clock;\n if (midclock <= clock) {\n if (clock < midclock + mid.len) {\n return midindex\n }\n left = midindex + 1;\n } else {\n right = midindex - 1;\n }\n }\n return null\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {ID} id\n * @return {boolean}\n *\n * @private\n * @function\n */\nconst isDeleted = (ds, id) => {\n const dis = ds.clients.get(id.client);\n return dis !== undefined && findIndexDS(dis, id.clock) !== null\n};\n\n/**\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nconst sortAndMergeDeleteSet = ds => {\n ds.clients.forEach(dels => {\n dels.sort((a, b) => a.clock - b.clock);\n // merge items without filtering or splicing the array\n // i is the current pointer\n // j refers to the current insert position for the pointed item\n // try to merge dels[i] into dels[j-1] or set dels[j]=dels[i]\n let i, j;\n for (i = 1, j = 1; i < dels.length; i++) {\n const left = dels[j - 1];\n const right = dels[i];\n if (left.clock + left.len >= right.clock) {\n left.len = math.max(left.len, right.clock + right.len - left.clock);\n } else {\n if (j < i) {\n dels[j] = right;\n }\n j++;\n }\n }\n dels.length = j;\n });\n};\n\n/**\n * @param {Array} dss\n * @return {DeleteSet} A fresh DeleteSet\n */\nconst mergeDeleteSets = dss => {\n const merged = new DeleteSet();\n for (let dssI = 0; dssI < dss.length; dssI++) {\n dss[dssI].clients.forEach((delsLeft, client) => {\n if (!merged.clients.has(client)) {\n // Write all missing keys from current ds and all following.\n // If merged already contains `client` current ds has already been added.\n /**\n * @type {Array}\n */\n const dels = delsLeft.slice();\n for (let i = dssI + 1; i < dss.length; i++) {\n array.appendTo(dels, dss[i].clients.get(client) || []);\n }\n merged.clients.set(client, dels);\n }\n });\n }\n sortAndMergeDeleteSet(merged);\n return merged\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {number} client\n * @param {number} clock\n * @param {number} length\n *\n * @private\n * @function\n */\nconst addToDeleteSet = (ds, client, clock, length) => {\n map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([])).push(new DeleteItem(clock, length));\n};\n\nconst createDeleteSet = () => new DeleteSet();\n\n/**\n * @param {StructStore} ss\n * @return {DeleteSet} Merged and sorted DeleteSet\n *\n * @private\n * @function\n */\nconst createDeleteSetFromStructStore = ss => {\n const ds = createDeleteSet();\n ss.clients.forEach((structs, client) => {\n /**\n * @type {Array}\n */\n const dsitems = [];\n for (let i = 0; i < structs.length; i++) {\n const struct = structs[i];\n if (struct.deleted) {\n const clock = struct.id.clock;\n let len = struct.length;\n if (i + 1 < structs.length) {\n for (let next = structs[i + 1]; i + 1 < structs.length && next.deleted; next = structs[++i + 1]) {\n len += next.length;\n }\n }\n dsitems.push(new DeleteItem(clock, len));\n }\n }\n if (dsitems.length > 0) {\n ds.clients.set(client, dsitems);\n }\n });\n return ds\n};\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nconst writeDeleteSet = (encoder, ds) => {\n encoding.writeVarUint(encoder.restEncoder, ds.clients.size);\n\n // Ensure that the delete set is written in a deterministic order\n array.from(ds.clients.entries())\n .sort((a, b) => b[0] - a[0])\n .forEach(([client, dsitems]) => {\n encoder.resetDsCurVal();\n encoding.writeVarUint(encoder.restEncoder, client);\n const len = dsitems.length;\n encoding.writeVarUint(encoder.restEncoder, len);\n for (let i = 0; i < len; i++) {\n const item = dsitems[i];\n encoder.writeDsClock(item.clock);\n encoder.writeDsLen(item.len);\n }\n });\n};\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {DeleteSet}\n *\n * @private\n * @function\n */\nconst readDeleteSet = decoder => {\n const ds = new DeleteSet();\n const numClients = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal();\n const client = decoding.readVarUint(decoder.restDecoder);\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder);\n if (numberOfDeletes > 0) {\n const dsField = map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([]));\n for (let i = 0; i < numberOfDeletes; i++) {\n dsField.push(new DeleteItem(decoder.readDsClock(), decoder.readDsLen()));\n }\n }\n }\n return ds\n};\n\n/**\n * @todo YDecoder also contains references to String and other Decoders. Would make sense to exchange YDecoder.toUint8Array for YDecoder.DsToUint8Array()..\n */\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {Uint8Array|null} Returns a v2 update containing all deletes that couldn't be applied yet; or null if all deletes were applied successfully.\n *\n * @private\n * @function\n */\nconst readAndApplyDeleteSet = (decoder, transaction, store) => {\n const unappliedDS = new DeleteSet();\n const numClients = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal();\n const client = decoding.readVarUint(decoder.restDecoder);\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder);\n const structs = store.clients.get(client) || [];\n const state = getState(store, client);\n for (let i = 0; i < numberOfDeletes; i++) {\n const clock = decoder.readDsClock();\n const clockEnd = clock + decoder.readDsLen();\n if (clock < state) {\n if (state < clockEnd) {\n addToDeleteSet(unappliedDS, client, state, clockEnd - state);\n }\n let index = findIndexSS(structs, clock);\n /**\n * We can ignore the case of GC and Delete structs, because we are going to skip them\n * @type {Item}\n */\n // @ts-ignore\n let struct = structs[index];\n // split the first item if necessary\n if (!struct.deleted && struct.id.clock < clock) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock));\n index++; // increase we now want to use the next struct\n }\n while (index < structs.length) {\n // @ts-ignore\n struct = structs[index++];\n if (struct.id.clock < clockEnd) {\n if (!struct.deleted) {\n if (clockEnd < struct.id.clock + struct.length) {\n structs.splice(index, 0, splitItem(transaction, struct, clockEnd - struct.id.clock));\n }\n struct.delete(transaction);\n }\n } else {\n break\n }\n }\n } else {\n addToDeleteSet(unappliedDS, client, clock, clockEnd - clock);\n }\n }\n }\n if (unappliedDS.clients.size > 0) {\n const ds = new UpdateEncoderV2();\n encoding.writeVarUint(ds.restEncoder, 0); // encode 0 structs\n writeDeleteSet(ds, unappliedDS);\n return ds.toUint8Array()\n }\n return null\n};\n\n/**\n * @param {DeleteSet} ds1\n * @param {DeleteSet} ds2\n */\nconst equalDeleteSets = (ds1, ds2) => {\n if (ds1.clients.size !== ds2.clients.size) return false\n for (const [client, deleteItems1] of ds1.clients.entries()) {\n const deleteItems2 = /** @type {Array} */ (ds2.clients.get(client));\n if (deleteItems2 === undefined || deleteItems1.length !== deleteItems2.length) return false\n for (let i = 0; i < deleteItems1.length; i++) {\n const di1 = deleteItems1[i];\n const di2 = deleteItems2[i];\n if (di1.clock !== di2.clock || di1.len !== di2.len) {\n return false\n }\n }\n }\n return true\n};\n\n/**\n * @module Y\n */\n\n\nconst generateNewClientId = random.uint32;\n\n/**\n * @typedef {Object} DocOpts\n * @property {boolean} [DocOpts.gc=true] Disable garbage collection (default: gc=true)\n * @property {function(Item):boolean} [DocOpts.gcFilter] Will be called before an Item is garbage collected. Return false to keep the Item.\n * @property {string} [DocOpts.guid] Define a globally unique identifier for this document\n * @property {string | null} [DocOpts.collectionid] Associate this document with a collection. This only plays a role if your provider has a concept of collection.\n * @property {any} [DocOpts.meta] Any kind of meta information you want to associate with this document. If this is a subdocument, remote peers will store the meta information as well.\n * @property {boolean} [DocOpts.autoLoad] If a subdocument, automatically load document. If this is a subdocument, remote peers will load the document as well automatically.\n * @property {boolean} [DocOpts.shouldLoad] Whether the document should be synced by the provider now. This is toggled to true when you call ydoc.load()\n */\n\n/**\n * @typedef {Object} DocEvents\n * @property {function(Doc):void} DocEvents.destroy\n * @property {function(Doc):void} DocEvents.load\n * @property {function(boolean, Doc):void} DocEvents.sync\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.update\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.updateV2\n * @property {function(Doc):void} DocEvents.beforeAllTransactions\n * @property {function(Transaction, Doc):void} DocEvents.beforeTransaction\n * @property {function(Transaction, Doc):void} DocEvents.beforeObserverCalls\n * @property {function(Transaction, Doc):void} DocEvents.afterTransaction\n * @property {function(Transaction, Doc):void} DocEvents.afterTransactionCleanup\n * @property {function(Doc, Array):void} DocEvents.afterAllTransactions\n * @property {function({ loaded: Set, added: Set, removed: Set }, Doc, Transaction):void} DocEvents.subdocs\n */\n\n/**\n * A Yjs instance handles the state of shared data.\n * @extends ObservableV2\n */\nclass Doc extends ObservableV2 {\n /**\n * @param {DocOpts} opts configuration\n */\n constructor ({ guid = random.uuidv4(), collectionid = null, gc = true, gcFilter = () => true, meta = null, autoLoad = false, shouldLoad = true } = {}) {\n super();\n this.gc = gc;\n this.gcFilter = gcFilter;\n this.clientID = generateNewClientId();\n this.guid = guid;\n this.collectionid = collectionid;\n /**\n * @type {Map>>}\n */\n this.share = new Map();\n this.store = new StructStore();\n /**\n * @type {Transaction | null}\n */\n this._transaction = null;\n /**\n * @type {Array}\n */\n this._transactionCleanups = [];\n /**\n * @type {Set}\n */\n this.subdocs = new Set();\n /**\n * If this document is a subdocument - a document integrated into another document - then _item is defined.\n * @type {Item?}\n */\n this._item = null;\n this.shouldLoad = shouldLoad;\n this.autoLoad = autoLoad;\n this.meta = meta;\n /**\n * This is set to true when the persistence provider loaded the document from the database or when the `sync` event fires.\n * Note that not all providers implement this feature. Provider authors are encouraged to fire the `load` event when the doc content is loaded from the database.\n *\n * @type {boolean}\n */\n this.isLoaded = false;\n /**\n * This is set to true when the connection provider has successfully synced with a backend.\n * Note that when using peer-to-peer providers this event may not provide very useful.\n * Also note that not all providers implement this feature. Provider authors are encouraged to fire\n * the `sync` event when the doc has been synced (with `true` as a parameter) or if connection is\n * lost (with false as a parameter).\n */\n this.isSynced = false;\n this.isDestroyed = false;\n /**\n * Promise that resolves once the document has been loaded from a presistence provider.\n */\n this.whenLoaded = promise.create(resolve => {\n this.on('load', () => {\n this.isLoaded = true;\n resolve(this);\n });\n });\n const provideSyncedPromise = () => promise.create(resolve => {\n /**\n * @param {boolean} isSynced\n */\n const eventHandler = (isSynced) => {\n if (isSynced === undefined || isSynced === true) {\n this.off('sync', eventHandler);\n resolve();\n }\n };\n this.on('sync', eventHandler);\n });\n this.on('sync', isSynced => {\n if (isSynced === false && this.isSynced) {\n this.whenSynced = provideSyncedPromise();\n }\n this.isSynced = isSynced === undefined || isSynced === true;\n if (this.isSynced && !this.isLoaded) {\n this.emit('load', [this]);\n }\n });\n /**\n * Promise that resolves once the document has been synced with a backend.\n * This promise is recreated when the connection is lost.\n * Note the documentation about the `isSynced` property.\n */\n this.whenSynced = provideSyncedPromise();\n }\n\n /**\n * Notify the parent document that you request to load data into this subdocument (if it is a subdocument).\n *\n * `load()` might be used in the future to request any provider to load the most current data.\n *\n * It is safe to call `load()` multiple times.\n */\n load () {\n const item = this._item;\n if (item !== null && !this.shouldLoad) {\n transact(/** @type {any} */ (item.parent).doc, transaction => {\n transaction.subdocsLoaded.add(this);\n }, null, true);\n }\n this.shouldLoad = true;\n }\n\n getSubdocs () {\n return this.subdocs\n }\n\n getSubdocGuids () {\n return new Set(array.from(this.subdocs).map(doc => doc.guid))\n }\n\n /**\n * Changes that happen inside of a transaction are bundled. This means that\n * the observer fires _after_ the transaction is finished and that all changes\n * that happened inside of the transaction are sent as one message to the\n * other peers.\n *\n * @template T\n * @param {function(Transaction):T} f The function that should be executed as a transaction\n * @param {any} [origin] Origin of who started the transaction. Will be stored on transaction.origin\n * @return T\n *\n * @public\n */\n transact (f, origin = null) {\n return transact(this, f, origin)\n }\n\n /**\n * Define a shared data type.\n *\n * Multiple calls of `ydoc.get(name, TypeConstructor)` yield the same result\n * and do not overwrite each other. I.e.\n * `ydoc.get(name, Y.Array) === ydoc.get(name, Y.Array)`\n *\n * After this method is called, the type is also available on `ydoc.share.get(name)`.\n *\n * *Best Practices:*\n * Define all types right after the Y.Doc instance is created and store them in a separate object.\n * Also use the typed methods `getText(name)`, `getArray(name)`, ..\n *\n * @template {typeof AbstractType} Type\n * @example\n * const ydoc = new Y.Doc(..)\n * const appState = {\n * document: ydoc.getText('document')\n * comments: ydoc.getArray('comments')\n * }\n *\n * @param {string} name\n * @param {Type} TypeConstructor The constructor of the type definition. E.g. Y.Text, Y.Array, Y.Map, ...\n * @return {InstanceType} The created type. Constructed with TypeConstructor\n *\n * @public\n */\n get (name, TypeConstructor = /** @type {any} */ (AbstractType)) {\n const type = map.setIfUndefined(this.share, name, () => {\n // @ts-ignore\n const t = new TypeConstructor();\n t._integrate(this, null);\n return t\n });\n const Constr = type.constructor;\n if (TypeConstructor !== AbstractType && Constr !== TypeConstructor) {\n if (Constr === AbstractType) {\n // @ts-ignore\n const t = new TypeConstructor();\n t._map = type._map;\n type._map.forEach(/** @param {Item?} n */ n => {\n for (; n !== null; n = n.left) {\n // @ts-ignore\n n.parent = t;\n }\n });\n t._start = type._start;\n for (let n = t._start; n !== null; n = n.right) {\n n.parent = t;\n }\n t._length = type._length;\n this.share.set(name, t);\n t._integrate(this, null);\n return /** @type {InstanceType} */ (t)\n } else {\n throw new Error(`Type with the name ${name} has already been defined with a different constructor`)\n }\n }\n return /** @type {InstanceType} */ (type)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YArray}\n *\n * @public\n */\n getArray (name = '') {\n return /** @type {YArray} */ (this.get(name, YArray))\n }\n\n /**\n * @param {string} [name]\n * @return {YText}\n *\n * @public\n */\n getText (name = '') {\n return this.get(name, YText)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YMap}\n *\n * @public\n */\n getMap (name = '') {\n return /** @type {YMap} */ (this.get(name, YMap))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlElement}\n *\n * @public\n */\n getXmlElement (name = '') {\n return /** @type {YXmlElement<{[key:string]:string}>} */ (this.get(name, YXmlElement))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlFragment}\n *\n * @public\n */\n getXmlFragment (name = '') {\n return this.get(name, YXmlFragment)\n }\n\n /**\n * Converts the entire document into a js object, recursively traversing each yjs type\n * Doesn't log types that have not been defined (using ydoc.getType(..)).\n *\n * @deprecated Do not use this method and rather call toJSON directly on the shared types.\n *\n * @return {Object}\n */\n toJSON () {\n /**\n * @type {Object}\n */\n const doc = {};\n\n this.share.forEach((value, key) => {\n doc[key] = value.toJSON();\n });\n\n return doc\n }\n\n /**\n * Emit `destroy` event and unregister all event handlers.\n */\n destroy () {\n this.isDestroyed = true;\n array.from(this.subdocs).forEach(subdoc => subdoc.destroy());\n const item = this._item;\n if (item !== null) {\n this._item = null;\n const content = /** @type {ContentDoc} */ (item.content);\n content.doc = new Doc({ guid: this.guid, ...content.opts, shouldLoad: false });\n content.doc._item = item;\n transact(/** @type {any} */ (item).parent.doc, transaction => {\n const doc = content.doc;\n if (!item.deleted) {\n transaction.subdocsAdded.add(doc);\n }\n transaction.subdocsRemoved.add(this);\n }, null, true);\n }\n // @ts-ignore\n this.emit('destroyed', [true]); // DEPRECATED!\n this.emit('destroy', [this]);\n super.destroy();\n }\n}\n\nclass DSDecoderV1 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n this.restDecoder = decoder;\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n}\n\nclass UpdateDecoderV1 extends DSDecoderV1 {\n /**\n * @return {ID}\n */\n readLeftID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return decoding.readUint8(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readString () {\n return decoding.readVarString(this.restDecoder)\n }\n\n /**\n * @return {boolean} isKey\n */\n readParentInfo () {\n return decoding.readVarUint(this.restDecoder) === 1\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readTypeRef () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number} len\n */\n readLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return buffer.copyUint8Array(decoding.readVarUint8Array(this.restDecoder))\n }\n\n /**\n * Legacy implementation uses JSON parse. We use any-decoding in v2.\n *\n * @return {any}\n */\n readJSON () {\n return JSON.parse(decoding.readVarString(this.restDecoder))\n }\n\n /**\n * @return {string}\n */\n readKey () {\n return decoding.readVarString(this.restDecoder)\n }\n}\n\nclass DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n /**\n * @private\n */\n this.dsCurrVal = 0;\n this.restDecoder = decoder;\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0;\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n this.dsCurrVal += decoding.readVarUint(this.restDecoder);\n return this.dsCurrVal\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n const diff = decoding.readVarUint(this.restDecoder) + 1;\n this.dsCurrVal += diff;\n return diff\n }\n}\n\nclass UpdateDecoderV2 extends DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n super(decoder);\n /**\n * List of cached keys. If the keys[id] does not exist, we read a new key\n * from stringEncoder and push it to keys.\n *\n * @type {Array}\n */\n this.keys = [];\n decoding.readVarUint(decoder); // read feature flag - currently unused\n this.keyClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.clientDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.leftClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.rightClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.infoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8);\n this.stringDecoder = new decoding.StringDecoder(decoding.readVarUint8Array(decoder));\n this.parentInfoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8);\n this.typeRefDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.lenDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n }\n\n /**\n * @return {ID}\n */\n readLeftID () {\n return new ID(this.clientDecoder.read(), this.leftClockDecoder.read())\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return new ID(this.clientDecoder.read(), this.rightClockDecoder.read())\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return this.clientDecoder.read()\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return /** @type {number} */ (this.infoDecoder.read())\n }\n\n /**\n * @return {string}\n */\n readString () {\n return this.stringDecoder.read()\n }\n\n /**\n * @return {boolean}\n */\n readParentInfo () {\n return this.parentInfoDecoder.read() === 1\n }\n\n /**\n * @return {number} An unsigned 8-bit integer\n */\n readTypeRef () {\n return this.typeRefDecoder.read()\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number}\n */\n readLen () {\n return this.lenDecoder.read()\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return decoding.readVarUint8Array(this.restDecoder)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @return {any}\n */\n readJSON () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readKey () {\n const keyClock = this.keyClockDecoder.read();\n if (keyClock < this.keys.length) {\n return this.keys[keyClock]\n } else {\n const key = this.stringDecoder.read();\n this.keys.push(key);\n return key\n }\n }\n}\n\nclass DSEncoderV1 {\n constructor () {\n this.restEncoder = encoding.createEncoder();\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n encoding.writeVarUint(this.restEncoder, clock);\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n encoding.writeVarUint(this.restEncoder, len);\n }\n}\n\nclass UpdateEncoderV1 extends DSEncoderV1 {\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n encoding.writeVarUint(this.restEncoder, id.client);\n encoding.writeVarUint(this.restEncoder, id.clock);\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n encoding.writeVarUint(this.restEncoder, id.client);\n encoding.writeVarUint(this.restEncoder, id.clock);\n }\n\n /**\n * Use writeClient and writeClock instead of writeID if possible.\n * @param {number} client\n */\n writeClient (client) {\n encoding.writeVarUint(this.restEncoder, client);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n encoding.writeUint8(this.restEncoder, info);\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n encoding.writeVarString(this.restEncoder, s);\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n encoding.writeVarUint(this.restEncoder, isYKey ? 1 : 0);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n encoding.writeVarUint(this.restEncoder, info);\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n encoding.writeVarUint(this.restEncoder, len);\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any);\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf);\n }\n\n /**\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeVarString(this.restEncoder, JSON.stringify(embed));\n }\n\n /**\n * @param {string} key\n */\n writeKey (key) {\n encoding.writeVarString(this.restEncoder, key);\n }\n}\n\nclass DSEncoderV2 {\n constructor () {\n this.restEncoder = encoding.createEncoder(); // encodes all the rest / non-optimized\n this.dsCurrVal = 0;\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0;\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n const diff = clock - this.dsCurrVal;\n this.dsCurrVal = clock;\n encoding.writeVarUint(this.restEncoder, diff);\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n if (len === 0) {\n error.unexpectedCase();\n }\n encoding.writeVarUint(this.restEncoder, len - 1);\n this.dsCurrVal += len;\n }\n}\n\nclass UpdateEncoderV2 extends DSEncoderV2 {\n constructor () {\n super();\n /**\n * @type {Map}\n */\n this.keyMap = new Map();\n /**\n * Refers to the next uniqe key-identifier to me used.\n * See writeKey method for more information.\n *\n * @type {number}\n */\n this.keyClock = 0;\n this.keyClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.clientEncoder = new encoding.UintOptRleEncoder();\n this.leftClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.rightClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.infoEncoder = new encoding.RleEncoder(encoding.writeUint8);\n this.stringEncoder = new encoding.StringEncoder();\n this.parentInfoEncoder = new encoding.RleEncoder(encoding.writeUint8);\n this.typeRefEncoder = new encoding.UintOptRleEncoder();\n this.lenEncoder = new encoding.UintOptRleEncoder();\n }\n\n toUint8Array () {\n const encoder = encoding.createEncoder();\n encoding.writeVarUint(encoder, 0); // this is a feature flag that we might use in the future\n encoding.writeVarUint8Array(encoder, this.keyClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.clientEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.leftClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.rightClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.infoEncoder));\n encoding.writeVarUint8Array(encoder, this.stringEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.parentInfoEncoder));\n encoding.writeVarUint8Array(encoder, this.typeRefEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.lenEncoder.toUint8Array());\n // @note The rest encoder is appended! (note the missing var)\n encoding.writeUint8Array(encoder, encoding.toUint8Array(this.restEncoder));\n return encoding.toUint8Array(encoder)\n }\n\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n this.clientEncoder.write(id.client);\n this.leftClockEncoder.write(id.clock);\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n this.clientEncoder.write(id.client);\n this.rightClockEncoder.write(id.clock);\n }\n\n /**\n * @param {number} client\n */\n writeClient (client) {\n this.clientEncoder.write(client);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n this.infoEncoder.write(info);\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n this.stringEncoder.write(s);\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n this.parentInfoEncoder.write(isYKey ? 1 : 0);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n this.typeRefEncoder.write(info);\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n this.lenEncoder.write(len);\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any);\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf);\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeAny(this.restEncoder, embed);\n }\n\n /**\n * Property keys are often reused. For example, in y-prosemirror the key `bold` might\n * occur very often. For a 3d application, the key `position` might occur very often.\n *\n * We cache these keys in a Map and refer to them via a unique number.\n *\n * @param {string} key\n */\n writeKey (key) {\n const clock = this.keyMap.get(key);\n if (clock === undefined) {\n /**\n * @todo uncomment to introduce this feature finally\n *\n * Background. The ContentFormat object was always encoded using writeKey, but the decoder used to use readString.\n * Furthermore, I forgot to set the keyclock. So everything was working fine.\n *\n * However, this feature here is basically useless as it is not being used (it actually only consumes extra memory).\n *\n * I don't know yet how to reintroduce this feature..\n *\n * Older clients won't be able to read updates when we reintroduce this feature. So this should probably be done using a flag.\n *\n */\n // this.keyMap.set(key, this.keyClock)\n this.keyClockEncoder.write(this.keyClock++);\n this.stringEncoder.write(key);\n } else {\n this.keyClockEncoder.write(clock);\n }\n }\n}\n\n/**\n * @module encoding\n */\n/*\n * We use the first five bits in the info flag for determining the type of the struct.\n *\n * 0: GC\n * 1: Item with Deleted content\n * 2: Item with JSON content\n * 3: Item with Binary content\n * 4: Item with String content\n * 5: Item with Embed content (for richtext content)\n * 6: Item with Format content (a formatting marker for richtext content)\n * 7: Item with Type\n */\n\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Array} structs All structs by `client`\n * @param {number} client\n * @param {number} clock write structs starting with `ID(client,clock)`\n *\n * @function\n */\nconst writeStructs = (encoder, structs, client, clock) => {\n // write first id\n clock = math.max(clock, structs[0].id.clock); // make sure the first id exists\n const startNewStructs = findIndexSS(structs, clock);\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, structs.length - startNewStructs);\n encoder.writeClient(client);\n encoding.writeVarUint(encoder.restEncoder, clock);\n const firstStruct = structs[startNewStructs];\n // write first struct with an offset\n firstStruct.write(encoder, clock - firstStruct.id.clock);\n for (let i = startNewStructs + 1; i < structs.length; i++) {\n structs[i].write(encoder, 0);\n }\n};\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {StructStore} store\n * @param {Map} _sm\n *\n * @private\n * @function\n */\nconst writeClientsStructs = (encoder, store, _sm) => {\n // we filter all valid _sm entries into sm\n const sm = new Map();\n _sm.forEach((clock, client) => {\n // only write if new structs are available\n if (getState(store, client) > clock) {\n sm.set(client, clock);\n }\n });\n getStateVector(store).forEach((_clock, client) => {\n if (!_sm.has(client)) {\n sm.set(client, 0);\n }\n });\n // write # states that were updated\n encoding.writeVarUint(encoder.restEncoder, sm.size);\n // Write items with higher client ids first\n // This heavily improves the conflict algorithm.\n array.from(sm.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n writeStructs(encoder, /** @type {Array} */ (store.clients.get(client)), client, clock);\n });\n};\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder The decoder object to read data from.\n * @param {Doc} doc\n * @return {Map }>}\n *\n * @private\n * @function\n */\nconst readClientsStructRefs = (decoder, doc) => {\n /**\n * @type {Map }>}\n */\n const clientRefs = map.create();\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder);\n /**\n * @type {Array}\n */\n const refs = new Array(numberOfStructs);\n const client = decoder.readClient();\n let clock = decoding.readVarUint(decoder.restDecoder);\n // const start = performance.now()\n clientRefs.set(client, { i: 0, refs });\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo();\n switch (binary.BITS5 & info) {\n case 0: { // GC\n const len = decoder.readLen();\n refs[i] = new GC(createID(client, clock), len);\n clock += len;\n break\n }\n case 10: { // Skip Struct (nothing to apply)\n // @todo we could reduce the amount of checks by adding Skip struct to clientRefs so we know that something is missing.\n const len = decoding.readVarUint(decoder.restDecoder);\n refs[i] = new Skip(createID(client, clock), len);\n clock += len;\n break\n }\n default: { // Item with content\n /**\n * The optimized implementation doesn't use any variables because inlining variables is faster.\n * Below a non-optimized version is shown that implements the basic algorithm with\n * a few comments\n */\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0;\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n cantCopyParentInfo ? (decoder.readParentInfo() ? doc.get(decoder.readString()) : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n );\n /* A non-optimized implementation of the above algorithm:\n\n // The item that was originally to the left of this item.\n const origin = (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null\n // The item that was originally to the right of this item.\n const rightOrigin = (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n const hasParentYKey = cantCopyParentInfo ? decoder.readParentInfo() : false\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const parentYKey = cantCopyParentInfo && hasParentYKey ? decoder.readString() : null\n\n const struct = new Item(\n createID(client, clock),\n null, // left\n origin, // origin\n null, // right\n rightOrigin, // right origin\n cantCopyParentInfo && !hasParentYKey ? decoder.readLeftID() : (parentYKey !== null ? doc.get(parentYKey) : null), // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n */\n refs[i] = struct;\n clock += struct.length;\n }\n }\n }\n // console.log('time to read: ', performance.now() - start) // @todo remove\n }\n return clientRefs\n};\n\n/**\n * Resume computing structs generated by struct readers.\n *\n * While there is something to do, we integrate structs in this order\n * 1. top element on stack, if stack is not empty\n * 2. next element from current struct reader (if empty, use next struct reader)\n *\n * If struct causally depends on another struct (ref.missing), we put next reader of\n * `ref.id.client` on top of stack.\n *\n * At some point we find a struct that has no causal dependencies,\n * then we start emptying the stack.\n *\n * It is not possible to have circles: i.e. struct1 (from client1) depends on struct2 (from client2)\n * depends on struct3 (from client1). Therefore the max stack size is eqaul to `structReaders.length`.\n *\n * This method is implemented in a way so that we can resume computation if this update\n * causally depends on another update.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {Map} clientsStructRefs\n * @return { null | { update: Uint8Array, missing: Map } }\n *\n * @private\n * @function\n */\nconst integrateStructs = (transaction, store, clientsStructRefs) => {\n /**\n * @type {Array}\n */\n const stack = [];\n // sort them so that we take the higher id first, in case of conflicts the lower id will probably not conflict with the id from the higher user.\n let clientsStructRefsIds = array.from(clientsStructRefs.keys()).sort((a, b) => a - b);\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n const getNextStructTarget = () => {\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n let nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]));\n while (nextStructsTarget.refs.length === nextStructsTarget.i) {\n clientsStructRefsIds.pop();\n if (clientsStructRefsIds.length > 0) {\n nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]));\n } else {\n return null\n }\n }\n return nextStructsTarget\n };\n let curStructsTarget = getNextStructTarget();\n if (curStructsTarget === null) {\n return null\n }\n\n /**\n * @type {StructStore}\n */\n const restStructs = new StructStore();\n const missingSV = new Map();\n /**\n * @param {number} client\n * @param {number} clock\n */\n const updateMissingSv = (client, clock) => {\n const mclock = missingSV.get(client);\n if (mclock == null || mclock > clock) {\n missingSV.set(client, clock);\n }\n };\n /**\n * @type {GC|Item}\n */\n let stackHead = /** @type {any} */ (curStructsTarget).refs[/** @type {any} */ (curStructsTarget).i++];\n // caching the state because it is used very often\n const state = new Map();\n\n const addStackToRestSS = () => {\n for (const item of stack) {\n const client = item.id.client;\n const unapplicableItems = clientsStructRefs.get(client);\n if (unapplicableItems) {\n // decrement because we weren't able to apply previous operation\n unapplicableItems.i--;\n restStructs.clients.set(client, unapplicableItems.refs.slice(unapplicableItems.i));\n clientsStructRefs.delete(client);\n unapplicableItems.i = 0;\n unapplicableItems.refs = [];\n } else {\n // item was the last item on clientsStructRefs and the field was already cleared. Add item to restStructs and continue\n restStructs.clients.set(client, [item]);\n }\n // remove client from clientsStructRefsIds to prevent users from applying the same update again\n clientsStructRefsIds = clientsStructRefsIds.filter(c => c !== client);\n }\n stack.length = 0;\n };\n\n // iterate over all struct readers until we are done\n while (true) {\n if (stackHead.constructor !== Skip) {\n const localClock = map.setIfUndefined(state, stackHead.id.client, () => getState(store, stackHead.id.client));\n const offset = localClock - stackHead.id.clock;\n if (offset < 0) {\n // update from the same client is missing\n stack.push(stackHead);\n updateMissingSv(stackHead.id.client, stackHead.id.clock - 1);\n // hid a dead wall, add all items from stack to restSS\n addStackToRestSS();\n } else {\n const missing = stackHead.getMissing(transaction, store);\n if (missing !== null) {\n stack.push(stackHead);\n // get the struct reader that has the missing struct\n /**\n * @type {{ refs: Array, i: number }}\n */\n const structRefs = clientsStructRefs.get(/** @type {number} */ (missing)) || { refs: [], i: 0 };\n if (structRefs.refs.length === structRefs.i) {\n // This update message causally depends on another update message that doesn't exist yet\n updateMissingSv(/** @type {number} */ (missing), getState(store, missing));\n addStackToRestSS();\n } else {\n stackHead = structRefs.refs[structRefs.i++];\n continue\n }\n } else if (offset === 0 || offset < stackHead.length) {\n // all fine, apply the stackhead\n stackHead.integrate(transaction, offset);\n state.set(stackHead.id.client, stackHead.id.clock + stackHead.length);\n }\n }\n }\n // iterate to next stackHead\n if (stack.length > 0) {\n stackHead = /** @type {GC|Item} */ (stack.pop());\n } else if (curStructsTarget !== null && curStructsTarget.i < curStructsTarget.refs.length) {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++]);\n } else {\n curStructsTarget = getNextStructTarget();\n if (curStructsTarget === null) {\n // we are done!\n break\n } else {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++]);\n }\n }\n }\n if (restStructs.clients.size > 0) {\n const encoder = new UpdateEncoderV2();\n writeClientsStructs(encoder, restStructs, new Map());\n // write empty deleteset\n // writeDeleteSet(encoder, new DeleteSet())\n encoding.writeVarUint(encoder.restEncoder, 0); // => no need for an extra function call, just write 0 deletes\n return { missing: missingSV, update: encoder.toUint8Array() }\n }\n return null\n};\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nconst writeStructsFromTransaction = (encoder, transaction) => writeClientsStructs(encoder, transaction.doc.store, transaction.beforeState);\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {UpdateDecoderV1 | UpdateDecoderV2} [structDecoder]\n *\n * @function\n */\nconst readUpdateV2 = (decoder, ydoc, transactionOrigin, structDecoder = new UpdateDecoderV2(decoder)) =>\n transact(ydoc, transaction => {\n // force that transaction.local is set to non-local\n transaction.local = false;\n let retry = false;\n const doc = transaction.doc;\n const store = doc.store;\n // let start = performance.now()\n const ss = readClientsStructRefs(structDecoder, doc);\n // console.log('time to read structs: ', performance.now() - start) // @todo remove\n // start = performance.now()\n // console.log('time to merge: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const restStructs = integrateStructs(transaction, store, ss);\n const pending = store.pendingStructs;\n if (pending) {\n // check if we can apply something\n for (const [client, clock] of pending.missing) {\n if (clock < getState(store, client)) {\n retry = true;\n break\n }\n }\n if (restStructs) {\n // merge restStructs into store.pending\n for (const [client, clock] of restStructs.missing) {\n const mclock = pending.missing.get(client);\n if (mclock == null || mclock > clock) {\n pending.missing.set(client, clock);\n }\n }\n pending.update = mergeUpdatesV2([pending.update, restStructs.update]);\n }\n } else {\n store.pendingStructs = restStructs;\n }\n // console.log('time to integrate: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const dsRest = readAndApplyDeleteSet(structDecoder, transaction, store);\n if (store.pendingDs) {\n // @todo we could make a lower-bound state-vector check as we do above\n const pendingDSUpdate = new UpdateDecoderV2(decoding.createDecoder(store.pendingDs));\n decoding.readVarUint(pendingDSUpdate.restDecoder); // read 0 structs, because we only encode deletes in pendingdsupdate\n const dsRest2 = readAndApplyDeleteSet(pendingDSUpdate, transaction, store);\n if (dsRest && dsRest2) {\n // case 1: ds1 != null && ds2 != null\n store.pendingDs = mergeUpdatesV2([dsRest, dsRest2]);\n } else {\n // case 2: ds1 != null\n // case 3: ds2 != null\n // case 4: ds1 == null && ds2 == null\n store.pendingDs = dsRest || dsRest2;\n }\n } else {\n // Either dsRest == null && pendingDs == null OR dsRest != null\n store.pendingDs = dsRest;\n }\n // console.log('time to cleanup: ', performance.now() - start) // @todo remove\n // start = performance.now()\n\n // console.log('time to resume delete readers: ', performance.now() - start) // @todo remove\n // start = performance.now()\n if (retry) {\n const update = /** @type {{update: Uint8Array}} */ (store.pendingStructs).update;\n store.pendingStructs = null;\n applyUpdateV2(transaction.doc, update);\n }\n }, transactionOrigin, false);\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nconst readUpdate = (decoder, ydoc, transactionOrigin) => readUpdateV2(decoder, ydoc, transactionOrigin, new UpdateDecoderV1(decoder));\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n *\n * @function\n */\nconst applyUpdateV2 = (ydoc, update, transactionOrigin, YDecoder = UpdateDecoderV2) => {\n const decoder = decoding.createDecoder(update);\n readUpdateV2(decoder, ydoc, transactionOrigin, new YDecoder(decoder));\n};\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nconst applyUpdate = (ydoc, update, transactionOrigin) => applyUpdateV2(ydoc, update, transactionOrigin, UpdateDecoderV1);\n\n/**\n * Write all the document as a single update message. If you specify the state of the remote client (`targetStateVector`) it will\n * only write the operations that are missing.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Doc} doc\n * @param {Map} [targetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n *\n * @function\n */\nconst writeStateAsUpdate = (encoder, doc, targetStateVector = new Map()) => {\n writeClientsStructs(encoder, doc.store, targetStateVector);\n writeDeleteSet(encoder, createDeleteSetFromStructStore(doc.store));\n};\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @param {UpdateEncoderV1 | UpdateEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateAsUpdateV2 = (doc, encodedTargetStateVector = new Uint8Array([0]), encoder = new UpdateEncoderV2()) => {\n const targetStateVector = decodeStateVector(encodedTargetStateVector);\n writeStateAsUpdate(encoder, doc, targetStateVector);\n const updates = [encoder.toUint8Array()];\n // also add the pending updates (if there are any)\n if (doc.store.pendingDs) {\n updates.push(doc.store.pendingDs);\n }\n if (doc.store.pendingStructs) {\n updates.push(diffUpdateV2(doc.store.pendingStructs.update, encodedTargetStateVector));\n }\n if (updates.length > 1) {\n if (encoder.constructor === UpdateEncoderV1) {\n return mergeUpdates(updates.map((update, i) => i === 0 ? update : convertUpdateFormatV2ToV1(update)))\n } else if (encoder.constructor === UpdateEncoderV2) {\n return mergeUpdatesV2(updates)\n }\n }\n return updates[0]\n};\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateAsUpdate = (doc, encodedTargetStateVector) => encodeStateAsUpdateV2(doc, encodedTargetStateVector, new UpdateEncoderV1());\n\n/**\n * Read state vector from Decoder and return as Map\n *\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nconst readStateVector = decoder => {\n const ss = new Map();\n const ssLength = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < ssLength; i++) {\n const client = decoding.readVarUint(decoder.restDecoder);\n const clock = decoding.readVarUint(decoder.restDecoder);\n ss.set(client, clock);\n }\n return ss\n};\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\n// export const decodeStateVectorV2 = decodedState => readStateVector(new DSDecoderV2(decoding.createDecoder(decodedState)))\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nconst decodeStateVector = decodedState => readStateVector(new DSDecoderV1(decoding.createDecoder(decodedState)));\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Map} sv\n * @function\n */\nconst writeStateVector = (encoder, sv) => {\n encoding.writeVarUint(encoder.restEncoder, sv.size);\n array.from(sv.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n encoding.writeVarUint(encoder.restEncoder, client); // @todo use a special client decoder that is based on mapping\n encoding.writeVarUint(encoder.restEncoder, clock);\n });\n return encoder\n};\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Doc} doc\n *\n * @function\n */\nconst writeDocumentStateVector = (encoder, doc) => writeStateVector(encoder, getStateVector(doc.store));\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateVectorV2 = (doc, encoder = new DSEncoderV2()) => {\n if (doc instanceof Map) {\n writeStateVector(encoder, doc);\n } else {\n writeDocumentStateVector(encoder, doc);\n }\n return encoder.toUint8Array()\n};\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateVector = doc => encodeStateVectorV2(doc, new DSEncoderV1());\n\n/**\n * General event handler implementation.\n *\n * @template ARG0, ARG1\n *\n * @private\n */\nclass EventHandler {\n constructor () {\n /**\n * @type {Array}\n */\n this.l = [];\n }\n}\n\n/**\n * @template ARG0,ARG1\n * @returns {EventHandler}\n *\n * @private\n * @function\n */\nconst createEventHandler = () => new EventHandler();\n\n/**\n * Adds an event listener that is called when\n * {@link EventHandler#callEventListeners} is called.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler.\n *\n * @private\n * @function\n */\nconst addEventHandlerListener = (eventHandler, f) =>\n eventHandler.l.push(f);\n\n/**\n * Removes an event listener.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler that was added with\n * {@link EventHandler#addEventListener}\n *\n * @private\n * @function\n */\nconst removeEventHandlerListener = (eventHandler, f) => {\n const l = eventHandler.l;\n const len = l.length;\n eventHandler.l = l.filter(g => f !== g);\n if (len === eventHandler.l.length) {\n console.error('[yjs] Tried to remove event handler that doesn\\'t exist.');\n }\n};\n\n/**\n * Call all event listeners that were added via\n * {@link EventHandler#addEventListener}.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {ARG0} arg0\n * @param {ARG1} arg1\n *\n * @private\n * @function\n */\nconst callEventHandlerListeners = (eventHandler, arg0, arg1) =>\n f.callAll(eventHandler.l, [arg0, arg1]);\n\nclass ID {\n /**\n * @param {number} client client id\n * @param {number} clock unique per client id, continuous number\n */\n constructor (client, clock) {\n /**\n * Client id\n * @type {number}\n */\n this.client = client;\n /**\n * unique per client id, continuous number\n * @type {number}\n */\n this.clock = clock;\n }\n}\n\n/**\n * @param {ID | null} a\n * @param {ID | null} b\n * @return {boolean}\n *\n * @function\n */\nconst compareIDs = (a, b) => a === b || (a !== null && b !== null && a.client === b.client && a.clock === b.clock);\n\n/**\n * @param {number} client\n * @param {number} clock\n *\n * @private\n * @function\n */\nconst createID = (client, clock) => new ID(client, clock);\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {ID} id\n *\n * @private\n * @function\n */\nconst writeID = (encoder, id) => {\n encoding.writeVarUint(encoder, id.client);\n encoding.writeVarUint(encoder, id.clock);\n};\n\n/**\n * Read ID.\n * * If first varUint read is 0xFFFFFF a RootID is returned.\n * * Otherwise an ID is returned\n *\n * @param {decoding.Decoder} decoder\n * @return {ID}\n *\n * @private\n * @function\n */\nconst readID = decoder =>\n createID(decoding.readVarUint(decoder), decoding.readVarUint(decoder));\n\n/**\n * The top types are mapped from y.share.get(keyname) => type.\n * `type` does not store any information about the `keyname`.\n * This function finds the correct `keyname` for `type` and throws otherwise.\n *\n * @param {AbstractType} type\n * @return {string}\n *\n * @private\n * @function\n */\nconst findRootTypeKey = type => {\n // @ts-ignore _y must be defined, otherwise unexpected case\n for (const [key, value] of type.doc.share.entries()) {\n if (value === type) {\n return key\n }\n }\n throw error.unexpectedCase()\n};\n\n/**\n * Check if `parent` is a parent of `child`.\n *\n * @param {AbstractType} parent\n * @param {Item|null} child\n * @return {Boolean} Whether `parent` is a parent of `child`.\n *\n * @private\n * @function\n */\nconst isParentOf = (parent, child) => {\n while (child !== null) {\n if (child.parent === parent) {\n return true\n }\n child = /** @type {AbstractType} */ (child.parent)._item;\n }\n return false\n};\n\n/**\n * Convenient helper to log type information.\n *\n * Do not use in productive systems as the output can be immense!\n *\n * @param {AbstractType} type\n */\nconst logType = type => {\n const res = [];\n let n = type._start;\n while (n) {\n res.push(n);\n n = n.right;\n }\n console.log('Children: ', res);\n console.log('Children content: ', res.filter(m => !m.deleted).map(m => m.content));\n};\n\nclass PermanentUserData {\n /**\n * @param {Doc} doc\n * @param {YMap} [storeType]\n */\n constructor (doc, storeType = doc.getMap('users')) {\n /**\n * @type {Map}\n */\n const dss = new Map();\n this.yusers = storeType;\n this.doc = doc;\n /**\n * Maps from clientid to userDescription\n *\n * @type {Map}\n */\n this.clients = new Map();\n this.dss = dss;\n /**\n * @param {YMap} user\n * @param {string} userDescription\n */\n const initUser = (user, userDescription) => {\n /**\n * @type {YArray}\n */\n const ds = user.get('ds');\n const ids = user.get('ids');\n const addClientId = /** @param {number} clientid */ clientid => this.clients.set(clientid, userDescription);\n ds.observe(/** @param {YArrayEvent} event */ event => {\n event.changes.added.forEach(item => {\n item.content.getContent().forEach(encodedDs => {\n if (encodedDs instanceof Uint8Array) {\n this.dss.set(userDescription, mergeDeleteSets([this.dss.get(userDescription) || createDeleteSet(), readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs)))]));\n }\n });\n });\n });\n this.dss.set(userDescription, mergeDeleteSets(ds.map(encodedDs => readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs))))));\n ids.observe(/** @param {YArrayEvent} event */ event =>\n event.changes.added.forEach(item => item.content.getContent().forEach(addClientId))\n );\n ids.forEach(addClientId);\n };\n // observe users\n storeType.observe(event => {\n event.keysChanged.forEach(userDescription =>\n initUser(storeType.get(userDescription), userDescription)\n );\n });\n // add intial data\n storeType.forEach(initUser);\n }\n\n /**\n * @param {Doc} doc\n * @param {number} clientid\n * @param {string} userDescription\n * @param {Object} conf\n * @param {function(Transaction, DeleteSet):boolean} [conf.filter]\n */\n setUserMapping (doc, clientid, userDescription, { filter = () => true } = {}) {\n const users = this.yusers;\n let user = users.get(userDescription);\n if (!user) {\n user = new YMap();\n user.set('ids', new YArray());\n user.set('ds', new YArray());\n users.set(userDescription, user);\n }\n user.get('ids').push([clientid]);\n users.observe(_event => {\n setTimeout(() => {\n const userOverwrite = users.get(userDescription);\n if (userOverwrite !== user) {\n // user was overwritten, port all data over to the next user object\n // @todo Experiment with Y.Sets here\n user = userOverwrite;\n // @todo iterate over old type\n this.clients.forEach((_userDescription, clientid) => {\n if (userDescription === _userDescription) {\n user.get('ids').push([clientid]);\n }\n });\n const encoder = new DSEncoderV1();\n const ds = this.dss.get(userDescription);\n if (ds) {\n writeDeleteSet(encoder, ds);\n user.get('ds').push([encoder.toUint8Array()]);\n }\n }\n }, 0);\n });\n doc.on('afterTransaction', /** @param {Transaction} transaction */ transaction => {\n setTimeout(() => {\n const yds = user.get('ds');\n const ds = transaction.deleteSet;\n if (transaction.local && ds.clients.size > 0 && filter(transaction, ds)) {\n const encoder = new DSEncoderV1();\n writeDeleteSet(encoder, ds);\n yds.push([encoder.toUint8Array()]);\n }\n });\n });\n }\n\n /**\n * @param {number} clientid\n * @return {any}\n */\n getUserByClientId (clientid) {\n return this.clients.get(clientid) || null\n }\n\n /**\n * @param {ID} id\n * @return {string | null}\n */\n getUserByDeletedId (id) {\n for (const [userDescription, ds] of this.dss.entries()) {\n if (isDeleted(ds, id)) {\n return userDescription\n }\n }\n return null\n }\n}\n\n/**\n * A relative position is based on the Yjs model and is not affected by document changes.\n * E.g. If you place a relative position before a certain character, it will always point to this character.\n * If you place a relative position at the end of a type, it will always point to the end of the type.\n *\n * A numeric position is often unsuited for user selections, because it does not change when content is inserted\n * before or after.\n *\n * ```Insert(0, 'x')('a|bc') = 'xa|bc'``` Where | is the relative position.\n *\n * One of the properties must be defined.\n *\n * @example\n * // Current cursor position is at position 10\n * const relativePosition = createRelativePositionFromIndex(yText, 10)\n * // modify yText\n * yText.insert(0, 'abc')\n * yText.delete(3, 10)\n * // Compute the cursor position\n * const absolutePosition = createAbsolutePositionFromRelativePosition(y, relativePosition)\n * absolutePosition.type === yText // => true\n * console.log('cursor location is ' + absolutePosition.index) // => cursor location is 3\n *\n */\nclass RelativePosition {\n /**\n * @param {ID|null} type\n * @param {string|null} tname\n * @param {ID|null} item\n * @param {number} assoc\n */\n constructor (type, tname, item, assoc = 0) {\n /**\n * @type {ID|null}\n */\n this.type = type;\n /**\n * @type {string|null}\n */\n this.tname = tname;\n /**\n * @type {ID | null}\n */\n this.item = item;\n /**\n * A relative position is associated to a specific character. By default\n * assoc >= 0, the relative position is associated to the character\n * after the meant position.\n * I.e. position 1 in 'ab' is associated to character 'b'.\n *\n * If assoc < 0, then the relative position is associated to the caharacter\n * before the meant position.\n *\n * @type {number}\n */\n this.assoc = assoc;\n }\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {any}\n */\nconst relativePositionToJSON = rpos => {\n const json = {};\n if (rpos.type) {\n json.type = rpos.type;\n }\n if (rpos.tname) {\n json.tname = rpos.tname;\n }\n if (rpos.item) {\n json.item = rpos.item;\n }\n if (rpos.assoc != null) {\n json.assoc = rpos.assoc;\n }\n return json\n};\n\n/**\n * @param {any} json\n * @return {RelativePosition}\n *\n * @function\n */\nconst createRelativePositionFromJSON = json => new RelativePosition(json.type == null ? null : createID(json.type.client, json.type.clock), json.tname ?? null, json.item == null ? null : createID(json.item.client, json.item.clock), json.assoc == null ? 0 : json.assoc);\n\nclass AbsolutePosition {\n /**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n */\n constructor (type, index, assoc = 0) {\n /**\n * @type {AbstractType}\n */\n this.type = type;\n /**\n * @type {number}\n */\n this.index = index;\n this.assoc = assoc;\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n *\n * @function\n */\nconst createAbsolutePosition = (type, index, assoc = 0) => new AbsolutePosition(type, index, assoc);\n\n/**\n * @param {AbstractType} type\n * @param {ID|null} item\n * @param {number} [assoc]\n *\n * @function\n */\nconst createRelativePosition = (type, item, assoc) => {\n let typeid = null;\n let tname = null;\n if (type._item === null) {\n tname = findRootTypeKey(type);\n } else {\n typeid = createID(type._item.id.client, type._item.id.clock);\n }\n return new RelativePosition(typeid, tname, item, assoc)\n};\n\n/**\n * Create a relativePosition based on a absolute position.\n *\n * @param {AbstractType} type The base type (e.g. YText or YArray).\n * @param {number} index The absolute position.\n * @param {number} [assoc]\n * @return {RelativePosition}\n *\n * @function\n */\nconst createRelativePositionFromTypeIndex = (type, index, assoc = 0) => {\n let t = type._start;\n if (assoc < 0) {\n // associated to the left character or the beginning of a type, increment index if possible.\n if (index === 0) {\n return createRelativePosition(type, null, assoc)\n }\n index--;\n }\n while (t !== null) {\n if (!t.deleted && t.countable) {\n if (t.length > index) {\n // case 1: found position somewhere in the linked list\n return createRelativePosition(type, createID(t.id.client, t.id.clock + index), assoc)\n }\n index -= t.length;\n }\n if (t.right === null && assoc < 0) {\n // left-associated position, return last available id\n return createRelativePosition(type, t.lastId, assoc)\n }\n t = t.right;\n }\n return createRelativePosition(type, null, assoc)\n};\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {RelativePosition} rpos\n *\n * @function\n */\nconst writeRelativePosition = (encoder, rpos) => {\n const { type, tname, item, assoc } = rpos;\n if (item !== null) {\n encoding.writeVarUint(encoder, 0);\n writeID(encoder, item);\n } else if (tname !== null) {\n // case 2: found position at the end of the list and type is stored in y.share\n encoding.writeUint8(encoder, 1);\n encoding.writeVarString(encoder, tname);\n } else if (type !== null) {\n // case 3: found position at the end of the list and type is attached to an item\n encoding.writeUint8(encoder, 2);\n writeID(encoder, type);\n } else {\n throw error.unexpectedCase()\n }\n encoding.writeVarInt(encoder, assoc);\n return encoder\n};\n\n/**\n * @param {RelativePosition} rpos\n * @return {Uint8Array}\n */\nconst encodeRelativePosition = rpos => {\n const encoder = encoding.createEncoder();\n writeRelativePosition(encoder, rpos);\n return encoding.toUint8Array(encoder)\n};\n\n/**\n * @param {decoding.Decoder} decoder\n * @return {RelativePosition}\n *\n * @function\n */\nconst readRelativePosition = decoder => {\n let type = null;\n let tname = null;\n let itemID = null;\n switch (decoding.readVarUint(decoder)) {\n case 0:\n // case 1: found position somewhere in the linked list\n itemID = readID(decoder);\n break\n case 1:\n // case 2: found position at the end of the list and type is stored in y.share\n tname = decoding.readVarString(decoder);\n break\n case 2: {\n // case 3: found position at the end of the list and type is attached to an item\n type = readID(decoder);\n }\n }\n const assoc = decoding.hasContent(decoder) ? decoding.readVarInt(decoder) : 0;\n return new RelativePosition(type, tname, itemID, assoc)\n};\n\n/**\n * @param {Uint8Array} uint8Array\n * @return {RelativePosition}\n */\nconst decodeRelativePosition = uint8Array => readRelativePosition(decoding.createDecoder(uint8Array));\n\n/**\n * Transform a relative position to an absolute position.\n *\n * If you want to share the relative position with other users, you should set\n * `followUndoneDeletions` to false to get consistent results across all clients.\n *\n * When calculating the absolute position, we try to follow the \"undone deletions\". This yields\n * better results for the user who performed undo. However, only the user who performed the undo\n * will get the better results, the other users don't know which operations recreated a deleted\n * range of content. There is more information in this ticket: https://github.com/yjs/yjs/issues/638\n *\n * @param {RelativePosition} rpos\n * @param {Doc} doc\n * @param {boolean} followUndoneDeletions - whether to follow undone deletions - see https://github.com/yjs/yjs/issues/638\n * @return {AbsolutePosition|null}\n *\n * @function\n */\nconst createAbsolutePositionFromRelativePosition = (rpos, doc, followUndoneDeletions = true) => {\n const store = doc.store;\n const rightID = rpos.item;\n const typeID = rpos.type;\n const tname = rpos.tname;\n const assoc = rpos.assoc;\n let type = null;\n let index = 0;\n if (rightID !== null) {\n if (getState(store, rightID.client) <= rightID.clock) {\n return null\n }\n const res = followUndoneDeletions ? followRedone(store, rightID) : { item: getItem(store, rightID), diff: 0 };\n const right = res.item;\n if (!(right instanceof Item)) {\n return null\n }\n type = /** @type {AbstractType} */ (right.parent);\n if (type._item === null || !type._item.deleted) {\n index = (right.deleted || !right.countable) ? 0 : (res.diff + (assoc >= 0 ? 0 : 1)); // adjust position based on left association if necessary\n let n = right.left;\n while (n !== null) {\n if (!n.deleted && n.countable) {\n index += n.length;\n }\n n = n.left;\n }\n }\n } else {\n if (tname !== null) {\n type = doc.get(tname);\n } else if (typeID !== null) {\n if (getState(store, typeID.client) <= typeID.clock) {\n // type does not exist yet\n return null\n }\n const { item } = followUndoneDeletions ? followRedone(store, typeID) : { item: getItem(store, typeID) };\n if (item instanceof Item && item.content instanceof ContentType) {\n type = item.content.type;\n } else {\n // struct is garbage collected\n return null\n }\n } else {\n throw error.unexpectedCase()\n }\n if (assoc >= 0) {\n index = type._length;\n } else {\n index = 0;\n }\n }\n return createAbsolutePosition(type, index, rpos.assoc)\n};\n\n/**\n * @param {RelativePosition|null} a\n * @param {RelativePosition|null} b\n * @return {boolean}\n *\n * @function\n */\nconst compareRelativePositions = (a, b) => a === b || (\n a !== null && b !== null && a.tname === b.tname && compareIDs(a.item, b.item) && compareIDs(a.type, b.type) && a.assoc === b.assoc\n);\n\nclass Snapshot {\n /**\n * @param {DeleteSet} ds\n * @param {Map} sv state map\n */\n constructor (ds, sv) {\n /**\n * @type {DeleteSet}\n */\n this.ds = ds;\n /**\n * State Map\n * @type {Map}\n */\n this.sv = sv;\n }\n}\n\n/**\n * @param {Snapshot} snap1\n * @param {Snapshot} snap2\n * @return {boolean}\n */\nconst equalSnapshots = (snap1, snap2) => {\n const ds1 = snap1.ds.clients;\n const ds2 = snap2.ds.clients;\n const sv1 = snap1.sv;\n const sv2 = snap2.sv;\n if (sv1.size !== sv2.size || ds1.size !== ds2.size) {\n return false\n }\n for (const [key, value] of sv1.entries()) {\n if (sv2.get(key) !== value) {\n return false\n }\n }\n for (const [client, dsitems1] of ds1.entries()) {\n const dsitems2 = ds2.get(client) || [];\n if (dsitems1.length !== dsitems2.length) {\n return false\n }\n for (let i = 0; i < dsitems1.length; i++) {\n const dsitem1 = dsitems1[i];\n const dsitem2 = dsitems2[i];\n if (dsitem1.clock !== dsitem2.clock || dsitem1.len !== dsitem2.len) {\n return false\n }\n }\n }\n return true\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n */\nconst encodeSnapshotV2 = (snapshot, encoder = new DSEncoderV2()) => {\n writeDeleteSet(encoder, snapshot.ds);\n writeStateVector(encoder, snapshot.sv);\n return encoder.toUint8Array()\n};\n\n/**\n * @param {Snapshot} snapshot\n * @return {Uint8Array}\n */\nconst encodeSnapshot = snapshot => encodeSnapshotV2(snapshot, new DSEncoderV1());\n\n/**\n * @param {Uint8Array} buf\n * @param {DSDecoderV1 | DSDecoderV2} [decoder]\n * @return {Snapshot}\n */\nconst decodeSnapshotV2 = (buf, decoder = new DSDecoderV2(decoding.createDecoder(buf))) => {\n return new Snapshot(readDeleteSet(decoder), readStateVector(decoder))\n};\n\n/**\n * @param {Uint8Array} buf\n * @return {Snapshot}\n */\nconst decodeSnapshot = buf => decodeSnapshotV2(buf, new DSDecoderV1(decoding.createDecoder(buf)));\n\n/**\n * @param {DeleteSet} ds\n * @param {Map} sm\n * @return {Snapshot}\n */\nconst createSnapshot = (ds, sm) => new Snapshot(ds, sm);\n\nconst emptySnapshot = createSnapshot(createDeleteSet(), new Map());\n\n/**\n * @param {Doc} doc\n * @return {Snapshot}\n */\nconst snapshot = doc => createSnapshot(createDeleteSetFromStructStore(doc.store), getStateVector(doc.store));\n\n/**\n * @param {Item} item\n * @param {Snapshot|undefined} snapshot\n *\n * @protected\n * @function\n */\nconst isVisible = (item, snapshot) => snapshot === undefined\n ? !item.deleted\n : snapshot.sv.has(item.id.client) && (snapshot.sv.get(item.id.client) || 0) > item.id.clock && !isDeleted(snapshot.ds, item.id);\n\n/**\n * @param {Transaction} transaction\n * @param {Snapshot} snapshot\n */\nconst splitSnapshotAffectedStructs = (transaction, snapshot) => {\n const meta = map.setIfUndefined(transaction.meta, splitSnapshotAffectedStructs, set.create);\n const store = transaction.doc.store;\n // check if we already split for this snapshot\n if (!meta.has(snapshot)) {\n snapshot.sv.forEach((clock, client) => {\n if (clock < getState(store, client)) {\n getItemCleanStart(transaction, createID(client, clock));\n }\n });\n iterateDeletedStructs(transaction, snapshot.ds, _item => {});\n meta.add(snapshot);\n }\n};\n\n/**\n * @example\n * const ydoc = new Y.Doc({ gc: false })\n * ydoc.getText().insert(0, 'world!')\n * const snapshot = Y.snapshot(ydoc)\n * ydoc.getText().insert(0, 'hello ')\n * const restored = Y.createDocFromSnapshot(ydoc, snapshot)\n * assert(restored.getText().toString() === 'world!')\n *\n * @param {Doc} originDoc\n * @param {Snapshot} snapshot\n * @param {Doc} [newDoc] Optionally, you may define the Yjs document that receives the data from originDoc\n * @return {Doc}\n */\nconst createDocFromSnapshot = (originDoc, snapshot, newDoc = new Doc()) => {\n if (originDoc.gc) {\n // we should not try to restore a GC-ed document, because some of the restored items might have their content deleted\n throw new Error('Garbage-collection must be disabled in `originDoc`!')\n }\n const { sv, ds } = snapshot;\n\n const encoder = new UpdateEncoderV2();\n originDoc.transact(transaction => {\n let size = 0;\n sv.forEach(clock => {\n if (clock > 0) {\n size++;\n }\n });\n encoding.writeVarUint(encoder.restEncoder, size);\n // splitting the structs before writing them to the encoder\n for (const [client, clock] of sv) {\n if (clock === 0) {\n continue\n }\n if (clock < getState(originDoc.store, client)) {\n getItemCleanStart(transaction, createID(client, clock));\n }\n const structs = originDoc.store.clients.get(client) || [];\n const lastStructIndex = findIndexSS(structs, clock - 1);\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, lastStructIndex + 1);\n encoder.writeClient(client);\n // first clock written is 0\n encoding.writeVarUint(encoder.restEncoder, 0);\n for (let i = 0; i <= lastStructIndex; i++) {\n structs[i].write(encoder, 0);\n }\n }\n writeDeleteSet(encoder, ds);\n });\n\n applyUpdateV2(newDoc, encoder.toUint8Array(), 'snapshot');\n return newDoc\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n */\nconst snapshotContainsUpdateV2 = (snapshot, update, YDecoder = UpdateDecoderV2) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n if ((snapshot.sv.get(curr.id.client) || 0) < curr.id.clock + curr.length) {\n return false\n }\n }\n const mergedDS = mergeDeleteSets([snapshot.ds, readDeleteSet(updateDecoder)]);\n return equalDeleteSets(snapshot.ds, mergedDS)\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n */\nconst snapshotContainsUpdate = (snapshot, update) => snapshotContainsUpdateV2(snapshot, update, UpdateDecoderV1);\n\nclass StructStore {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map();\n /**\n * @type {null | { missing: Map, update: Uint8Array }}\n */\n this.pendingStructs = null;\n /**\n * @type {null | Uint8Array}\n */\n this.pendingDs = null;\n }\n}\n\n/**\n * Return the states as a Map.\n * Note that clock refers to the next expected clock id.\n *\n * @param {StructStore} store\n * @return {Map}\n *\n * @public\n * @function\n */\nconst getStateVector = store => {\n const sm = new Map();\n store.clients.forEach((structs, client) => {\n const struct = structs[structs.length - 1];\n sm.set(client, struct.id.clock + struct.length);\n });\n return sm\n};\n\n/**\n * @param {StructStore} store\n * @param {number} client\n * @return {number}\n *\n * @public\n * @function\n */\nconst getState = (store, client) => {\n const structs = store.clients.get(client);\n if (structs === undefined) {\n return 0\n }\n const lastStruct = structs[structs.length - 1];\n return lastStruct.id.clock + lastStruct.length\n};\n\n/**\n * @param {StructStore} store\n * @param {GC|Item} struct\n *\n * @private\n * @function\n */\nconst addStruct = (store, struct) => {\n let structs = store.clients.get(struct.id.client);\n if (structs === undefined) {\n structs = [];\n store.clients.set(struct.id.client, structs);\n } else {\n const lastStruct = structs[structs.length - 1];\n if (lastStruct.id.clock + lastStruct.length !== struct.id.clock) {\n throw error.unexpectedCase()\n }\n }\n structs.push(struct);\n};\n\n/**\n * Perform a binary search on a sorted array\n * @param {Array} structs\n * @param {number} clock\n * @return {number}\n *\n * @private\n * @function\n */\nconst findIndexSS = (structs, clock) => {\n let left = 0;\n let right = structs.length - 1;\n let mid = structs[right];\n let midclock = mid.id.clock;\n if (midclock === clock) {\n return right\n }\n // @todo does it even make sense to pivot the search?\n // If a good split misses, it might actually increase the time to find the correct item.\n // Currently, the only advantage is that search with pivoting might find the item on the first try.\n let midindex = math.floor((clock / (midclock + mid.length - 1)) * right); // pivoting the search\n while (left <= right) {\n mid = structs[midindex];\n midclock = mid.id.clock;\n if (midclock <= clock) {\n if (clock < midclock + mid.length) {\n return midindex\n }\n left = midindex + 1;\n } else {\n right = midindex - 1;\n }\n midindex = math.floor((left + right) / 2);\n }\n // Always check state before looking for a struct in StructStore\n // Therefore the case of not finding a struct is unexpected\n throw error.unexpectedCase()\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {GC|Item}\n *\n * @private\n * @function\n */\nconst find = (store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client);\n return structs[findIndexSS(structs, id.clock)]\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n * @private\n * @function\n */\nconst getItem = /** @type {function(StructStore,ID):Item} */ (find);\n\n/**\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clock\n */\nconst findIndexCleanStart = (transaction, structs, clock) => {\n const index = findIndexSS(structs, clock);\n const struct = structs[index];\n if (struct.id.clock < clock && struct instanceof Item) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock));\n return index + 1\n }\n return index\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nconst getItemCleanStart = (transaction, id) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(id.client));\n return structs[findIndexCleanStart(transaction, structs, id.clock)]\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nconst getItemCleanEnd = (transaction, store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client);\n const index = findIndexSS(structs, id.clock);\n const struct = structs[index];\n if (id.clock !== struct.id.clock + struct.length - 1 && struct.constructor !== GC) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, id.clock - struct.id.clock + 1));\n }\n return struct\n};\n\n/**\n * Replace `item` with `newitem` in store\n * @param {StructStore} store\n * @param {GC|Item} struct\n * @param {GC|Item} newStruct\n *\n * @private\n * @function\n */\nconst replaceStruct = (store, struct, newStruct) => {\n const structs = /** @type {Array} */ (store.clients.get(struct.id.client));\n structs[findIndexSS(structs, struct.id.clock)] = newStruct;\n};\n\n/**\n * Iterate over a range of structs\n *\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clockStart Inclusive start\n * @param {number} len\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nconst iterateStructs = (transaction, structs, clockStart, len, f) => {\n if (len === 0) {\n return\n }\n const clockEnd = clockStart + len;\n let index = findIndexCleanStart(transaction, structs, clockStart);\n let struct;\n do {\n struct = structs[index++];\n if (clockEnd < struct.id.clock + struct.length) {\n findIndexCleanStart(transaction, structs, clockEnd);\n }\n f(struct);\n } while (index < structs.length && structs[index].id.clock < clockEnd)\n};\n\n/**\n * A transaction is created for every change on the Yjs model. It is possible\n * to bundle changes on the Yjs model in a single transaction to\n * minimize the number on messages sent and the number of observer calls.\n * If possible the user of this library should bundle as many changes as\n * possible. Here is an example to illustrate the advantages of bundling:\n *\n * @example\n * const ydoc = new Y.Doc()\n * const map = ydoc.getMap('map')\n * // Log content when change is triggered\n * map.observe(() => {\n * console.log('change triggered')\n * })\n * // Each change on the map type triggers a log message:\n * map.set('a', 0) // => \"change triggered\"\n * map.set('b', 0) // => \"change triggered\"\n * // When put in a transaction, it will trigger the log after the transaction:\n * ydoc.transact(() => {\n * map.set('a', 1)\n * map.set('b', 1)\n * }) // => \"change triggered\"\n *\n * @public\n */\nclass Transaction {\n /**\n * @param {Doc} doc\n * @param {any} origin\n * @param {boolean} local\n */\n constructor (doc, origin, local) {\n /**\n * The Yjs instance.\n * @type {Doc}\n */\n this.doc = doc;\n /**\n * Describes the set of deleted items by ids\n * @type {DeleteSet}\n */\n this.deleteSet = new DeleteSet();\n /**\n * Holds the state before the transaction started.\n * @type {Map}\n */\n this.beforeState = getStateVector(doc.store);\n /**\n * Holds the state after the transaction.\n * @type {Map}\n */\n this.afterState = new Map();\n /**\n * All types that were directly modified (property added or child\n * inserted/deleted). New types are not included in this Set.\n * Maps from type to parentSubs (`item.parentSub = null` for YArray)\n * @type {Map>,Set>}\n */\n this.changed = new Map();\n /**\n * Stores the events for the types that observe also child elements.\n * It is mainly used by `observeDeep`.\n * @type {Map>,Array>>}\n */\n this.changedParentTypes = new Map();\n /**\n * @type {Array}\n */\n this._mergeStructs = [];\n /**\n * @type {any}\n */\n this.origin = origin;\n /**\n * Stores meta information on the transaction\n * @type {Map}\n */\n this.meta = new Map();\n /**\n * Whether this change originates from this doc.\n * @type {boolean}\n */\n this.local = local;\n /**\n * @type {Set}\n */\n this.subdocsAdded = new Set();\n /**\n * @type {Set}\n */\n this.subdocsRemoved = new Set();\n /**\n * @type {Set}\n */\n this.subdocsLoaded = new Set();\n /**\n * @type {boolean}\n */\n this._needFormattingCleanup = false;\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n * @return {boolean} Whether data was written.\n */\nconst writeUpdateMessageFromTransaction = (encoder, transaction) => {\n if (transaction.deleteSet.clients.size === 0 && !map.any(transaction.afterState, (clock, client) => transaction.beforeState.get(client) !== clock)) {\n return false\n }\n sortAndMergeDeleteSet(transaction.deleteSet);\n writeStructsFromTransaction(encoder, transaction);\n writeDeleteSet(encoder, transaction.deleteSet);\n return true\n};\n\n/**\n * If `type.parent` was added in current transaction, `type` technically\n * did not change, it was just added and we should not fire events for `type`.\n *\n * @param {Transaction} transaction\n * @param {AbstractType>} type\n * @param {string|null} parentSub\n */\nconst addChangedTypeToTransaction = (transaction, type, parentSub) => {\n const item = type._item;\n if (item === null || (item.id.clock < (transaction.beforeState.get(item.id.client) || 0) && !item.deleted)) {\n map.setIfUndefined(transaction.changed, type, set.create).add(parentSub);\n }\n};\n\n/**\n * @param {Array} structs\n * @param {number} pos\n * @return {number} # of merged structs\n */\nconst tryToMergeWithLefts = (structs, pos) => {\n let right = structs[pos];\n let left = structs[pos - 1];\n let i = pos;\n for (; i > 0; right = left, left = structs[--i - 1]) {\n if (left.deleted === right.deleted && left.constructor === right.constructor) {\n if (left.mergeWith(right)) {\n if (right instanceof Item && right.parentSub !== null && /** @type {AbstractType} */ (right.parent)._map.get(right.parentSub) === right) {\n /** @type {AbstractType} */ (right.parent)._map.set(right.parentSub, /** @type {Item} */ (left));\n }\n continue\n }\n }\n break\n }\n const merged = pos - i;\n if (merged) {\n // remove all merged structs from the array\n structs.splice(pos + 1 - merged, merged);\n }\n return merged\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGcDeleteSet = (ds, store, gcFilter) => {\n for (const [client, deleteItems] of ds.clients.entries()) {\n const structs = /** @type {Array} */ (store.clients.get(client));\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di];\n const endDeleteItemClock = deleteItem.clock + deleteItem.len;\n for (\n let si = findIndexSS(structs, deleteItem.clock), struct = structs[si];\n si < structs.length && struct.id.clock < endDeleteItemClock;\n struct = structs[++si]\n ) {\n const struct = structs[si];\n if (deleteItem.clock + deleteItem.len <= struct.id.clock) {\n break\n }\n if (struct instanceof Item && struct.deleted && !struct.keep && gcFilter(struct)) {\n struct.gc(store, false);\n }\n }\n }\n }\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n */\nconst tryMergeDeleteSet = (ds, store) => {\n // try to merge deleted / gc'd items\n // merge from right to left for better efficiency and so we don't miss any merge targets\n ds.clients.forEach((deleteItems, client) => {\n const structs = /** @type {Array} */ (store.clients.get(client));\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di];\n // start with merging the item next to the last deleted item\n const mostRightIndexToCheck = math.min(structs.length - 1, 1 + findIndexSS(structs, deleteItem.clock + deleteItem.len - 1));\n for (\n let si = mostRightIndexToCheck, struct = structs[si];\n si > 0 && struct.id.clock >= deleteItem.clock;\n struct = structs[si]\n ) {\n si -= 1 + tryToMergeWithLefts(structs, si);\n }\n }\n });\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGc = (ds, store, gcFilter) => {\n tryGcDeleteSet(ds, store, gcFilter);\n tryMergeDeleteSet(ds, store);\n};\n\n/**\n * @param {Array} transactionCleanups\n * @param {number} i\n */\nconst cleanupTransactions = (transactionCleanups, i) => {\n if (i < transactionCleanups.length) {\n const transaction = transactionCleanups[i];\n const doc = transaction.doc;\n const store = doc.store;\n const ds = transaction.deleteSet;\n const mergeStructs = transaction._mergeStructs;\n try {\n sortAndMergeDeleteSet(ds);\n transaction.afterState = getStateVector(transaction.doc.store);\n doc.emit('beforeObserverCalls', [transaction, doc]);\n /**\n * An array of event callbacks.\n *\n * Each callback is called even if the other ones throw errors.\n *\n * @type {Array}\n */\n const fs = [];\n // observe events on changed types\n transaction.changed.forEach((subs, itemtype) =>\n fs.push(() => {\n if (itemtype._item === null || !itemtype._item.deleted) {\n itemtype._callObserver(transaction, subs);\n }\n })\n );\n fs.push(() => {\n // deep observe events\n transaction.changedParentTypes.forEach((events, type) => {\n // We need to think about the possibility that the user transforms the\n // Y.Doc in the event.\n if (type._dEH.l.length > 0 && (type._item === null || !type._item.deleted)) {\n events = events\n .filter(event =>\n event.target._item === null || !event.target._item.deleted\n );\n events\n .forEach(event => {\n event.currentTarget = type;\n // path is relative to the current target\n event._path = null;\n });\n // sort events by path length so that top-level events are fired first.\n events\n .sort((event1, event2) => event1.path.length - event2.path.length);\n // We don't need to check for events.length\n // because we know it has at least one element\n callEventHandlerListeners(type._dEH, events, transaction);\n }\n });\n });\n fs.push(() => doc.emit('afterTransaction', [transaction, doc]));\n callAll(fs, []);\n if (transaction._needFormattingCleanup) {\n cleanupYTextAfterTransaction(transaction);\n }\n } finally {\n // Replace deleted items with ItemDeleted / GC.\n // This is where content is actually remove from the Yjs Doc.\n if (doc.gc) {\n tryGcDeleteSet(ds, store, doc.gcFilter);\n }\n tryMergeDeleteSet(ds, store);\n\n // on all affected store.clients props, try to merge\n transaction.afterState.forEach((clock, client) => {\n const beforeClock = transaction.beforeState.get(client) || 0;\n if (beforeClock !== clock) {\n const structs = /** @type {Array} */ (store.clients.get(client));\n // we iterate from right to left so we can safely remove entries\n const firstChangePos = math.max(findIndexSS(structs, beforeClock), 1);\n for (let i = structs.length - 1; i >= firstChangePos;) {\n i -= 1 + tryToMergeWithLefts(structs, i);\n }\n }\n });\n // try to merge mergeStructs\n // @todo: it makes more sense to transform mergeStructs to a DS, sort it, and merge from right to left\n // but at the moment DS does not handle duplicates\n for (let i = mergeStructs.length - 1; i >= 0; i--) {\n const { client, clock } = mergeStructs[i].id;\n const structs = /** @type {Array} */ (store.clients.get(client));\n const replacedStructPos = findIndexSS(structs, clock);\n if (replacedStructPos + 1 < structs.length) {\n if (tryToMergeWithLefts(structs, replacedStructPos + 1) > 1) {\n continue // no need to perform next check, both are already merged\n }\n }\n if (replacedStructPos > 0) {\n tryToMergeWithLefts(structs, replacedStructPos);\n }\n }\n if (!transaction.local && transaction.afterState.get(doc.clientID) !== transaction.beforeState.get(doc.clientID)) {\n logging.print(logging.ORANGE, logging.BOLD, '[yjs] ', logging.UNBOLD, logging.RED, 'Changed the client-id because another client seems to be using it.');\n doc.clientID = generateNewClientId();\n }\n // @todo Merge all the transactions into one and provide send the data as a single update message\n doc.emit('afterTransactionCleanup', [transaction, doc]);\n if (doc._observers.has('update')) {\n const encoder = new UpdateEncoderV1();\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction);\n if (hasContent) {\n doc.emit('update', [encoder.toUint8Array(), transaction.origin, doc, transaction]);\n }\n }\n if (doc._observers.has('updateV2')) {\n const encoder = new UpdateEncoderV2();\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction);\n if (hasContent) {\n doc.emit('updateV2', [encoder.toUint8Array(), transaction.origin, doc, transaction]);\n }\n }\n const { subdocsAdded, subdocsLoaded, subdocsRemoved } = transaction;\n if (subdocsAdded.size > 0 || subdocsRemoved.size > 0 || subdocsLoaded.size > 0) {\n subdocsAdded.forEach(subdoc => {\n subdoc.clientID = doc.clientID;\n if (subdoc.collectionid == null) {\n subdoc.collectionid = doc.collectionid;\n }\n doc.subdocs.add(subdoc);\n });\n subdocsRemoved.forEach(subdoc => doc.subdocs.delete(subdoc));\n doc.emit('subdocs', [{ loaded: subdocsLoaded, added: subdocsAdded, removed: subdocsRemoved }, doc, transaction]);\n subdocsRemoved.forEach(subdoc => subdoc.destroy());\n }\n\n if (transactionCleanups.length <= i + 1) {\n doc._transactionCleanups = [];\n doc.emit('afterAllTransactions', [doc, transactionCleanups]);\n } else {\n cleanupTransactions(transactionCleanups, i + 1);\n }\n }\n }\n};\n\n/**\n * Implements the functionality of `y.transact(()=>{..})`\n *\n * @template T\n * @param {Doc} doc\n * @param {function(Transaction):T} f\n * @param {any} [origin=true]\n * @return {T}\n *\n * @function\n */\nconst transact = (doc, f, origin = null, local = true) => {\n const transactionCleanups = doc._transactionCleanups;\n let initialCall = false;\n /**\n * @type {any}\n */\n let result = null;\n if (doc._transaction === null) {\n initialCall = true;\n doc._transaction = new Transaction(doc, origin, local);\n transactionCleanups.push(doc._transaction);\n if (transactionCleanups.length === 1) {\n doc.emit('beforeAllTransactions', [doc]);\n }\n doc.emit('beforeTransaction', [doc._transaction, doc]);\n }\n try {\n result = f(doc._transaction);\n } finally {\n if (initialCall) {\n const finishCleanup = doc._transaction === transactionCleanups[0];\n doc._transaction = null;\n if (finishCleanup) {\n // The first transaction ended, now process observer calls.\n // Observer call may create new transactions for which we need to call the observers and do cleanup.\n // We don't want to nest these calls, so we execute these calls one after\n // another.\n // Also we need to ensure that all cleanups are called, even if the\n // observes throw errors.\n // This file is full of hacky try {} finally {} blocks to ensure that an\n // event can throw errors and also that the cleanup is called.\n cleanupTransactions(transactionCleanups, 0);\n }\n }\n }\n return result\n};\n\nclass StackItem {\n /**\n * @param {DeleteSet} deletions\n * @param {DeleteSet} insertions\n */\n constructor (deletions, insertions) {\n this.insertions = insertions;\n this.deletions = deletions;\n /**\n * Use this to save and restore metadata like selection range\n */\n this.meta = new Map();\n }\n}\n/**\n * @param {Transaction} tr\n * @param {UndoManager} um\n * @param {StackItem} stackItem\n */\nconst clearUndoManagerStackItem = (tr, um, stackItem) => {\n iterateDeletedStructs(tr, stackItem.deletions, item => {\n if (item instanceof Item && um.scope.some(type => isParentOf(type, item))) {\n keepItem(item, false);\n }\n });\n};\n\n/**\n * @param {UndoManager} undoManager\n * @param {Array} stack\n * @param {'undo'|'redo'} eventType\n * @return {StackItem?}\n */\nconst popStackItem = (undoManager, stack, eventType) => {\n /**\n * Keep a reference to the transaction so we can fire the event with the changedParentTypes\n * @type {any}\n */\n let _tr = null;\n const doc = undoManager.doc;\n const scope = undoManager.scope;\n transact(doc, transaction => {\n while (stack.length > 0 && undoManager.currStackItem === null) {\n const store = doc.store;\n const stackItem = /** @type {StackItem} */ (stack.pop());\n /**\n * @type {Set}\n */\n const itemsToRedo = new Set();\n /**\n * @type {Array}\n */\n const itemsToDelete = [];\n let performedChange = false;\n iterateDeletedStructs(transaction, stackItem.insertions, struct => {\n if (struct instanceof Item) {\n if (struct.redone !== null) {\n let { item, diff } = followRedone(store, struct.id);\n if (diff > 0) {\n item = getItemCleanStart(transaction, createID(item.id.client, item.id.clock + diff));\n }\n struct = item;\n }\n if (!struct.deleted && scope.some(type => isParentOf(type, /** @type {Item} */ (struct)))) {\n itemsToDelete.push(struct);\n }\n }\n });\n iterateDeletedStructs(transaction, stackItem.deletions, struct => {\n if (\n struct instanceof Item &&\n scope.some(type => isParentOf(type, struct)) &&\n // Never redo structs in stackItem.insertions because they were created and deleted in the same capture interval.\n !isDeleted(stackItem.insertions, struct.id)\n ) {\n itemsToRedo.add(struct);\n }\n });\n itemsToRedo.forEach(struct => {\n performedChange = redoItem(transaction, struct, itemsToRedo, stackItem.insertions, undoManager.ignoreRemoteMapChanges, undoManager) !== null || performedChange;\n });\n // We want to delete in reverse order so that children are deleted before\n // parents, so we have more information available when items are filtered.\n for (let i = itemsToDelete.length - 1; i >= 0; i--) {\n const item = itemsToDelete[i];\n if (undoManager.deleteFilter(item)) {\n item.delete(transaction);\n performedChange = true;\n }\n }\n undoManager.currStackItem = performedChange ? stackItem : null;\n }\n transaction.changed.forEach((subProps, type) => {\n // destroy search marker if necessary\n if (subProps.has(null) && type._searchMarker) {\n type._searchMarker.length = 0;\n }\n });\n _tr = transaction;\n }, undoManager);\n const res = undoManager.currStackItem;\n if (res != null) {\n const changedParentTypes = _tr.changedParentTypes;\n undoManager.emit('stack-item-popped', [{ stackItem: res, type: eventType, changedParentTypes, origin: undoManager }, undoManager]);\n undoManager.currStackItem = null;\n }\n return res\n};\n\n/**\n * @typedef {Object} UndoManagerOptions\n * @property {number} [UndoManagerOptions.captureTimeout=500]\n * @property {function(Transaction):boolean} [UndoManagerOptions.captureTransaction] Do not capture changes of a Transaction if result false.\n * @property {function(Item):boolean} [UndoManagerOptions.deleteFilter=()=>true] Sometimes\n * it is necessary to filter what an Undo/Redo operation can delete. If this\n * filter returns false, the type/item won't be deleted even it is in the\n * undo/redo scope.\n * @property {Set} [UndoManagerOptions.trackedOrigins=new Set([null])]\n * @property {boolean} [ignoreRemoteMapChanges] Experimental. By default, the UndoManager will never overwrite remote changes. Enable this property to enable overwriting remote changes on key-value changes (Y.Map, properties on Y.Xml, etc..).\n * @property {Doc} [doc] The document that this UndoManager operates on. Only needed if typeScope is empty.\n */\n\n/**\n * @typedef {Object} StackItemEvent\n * @property {StackItem} StackItemEvent.stackItem\n * @property {any} StackItemEvent.origin\n * @property {'undo'|'redo'} StackItemEvent.type\n * @property {Map>,Array>>} StackItemEvent.changedParentTypes\n */\n\n/**\n * Fires 'stack-item-added' event when a stack item was added to either the undo- or\n * the redo-stack. You may store additional stack information via the\n * metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties).\n * Fires 'stack-item-popped' event when a stack item was popped from either the\n * undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.\n *\n * @extends {ObservableV2<{'stack-item-added':function(StackItemEvent, UndoManager):void, 'stack-item-popped': function(StackItemEvent, UndoManager):void, 'stack-cleared': function({ undoStackCleared: boolean, redoStackCleared: boolean }):void, 'stack-item-updated': function(StackItemEvent, UndoManager):void }>}\n */\nclass UndoManager extends ObservableV2 {\n /**\n * @param {AbstractType|Array>} typeScope Accepts either a single type, or an array of types\n * @param {UndoManagerOptions} options\n */\n constructor (typeScope, {\n captureTimeout = 500,\n captureTransaction = _tr => true,\n deleteFilter = () => true,\n trackedOrigins = new Set([null]),\n ignoreRemoteMapChanges = false,\n doc = /** @type {Doc} */ (array.isArray(typeScope) ? typeScope[0].doc : typeScope.doc)\n } = {}) {\n super();\n /**\n * @type {Array>}\n */\n this.scope = [];\n this.doc = doc;\n this.addToScope(typeScope);\n this.deleteFilter = deleteFilter;\n trackedOrigins.add(this);\n this.trackedOrigins = trackedOrigins;\n this.captureTransaction = captureTransaction;\n /**\n * @type {Array}\n */\n this.undoStack = [];\n /**\n * @type {Array}\n */\n this.redoStack = [];\n /**\n * Whether the client is currently undoing (calling UndoManager.undo)\n *\n * @type {boolean}\n */\n this.undoing = false;\n this.redoing = false;\n /**\n * The currently popped stack item if UndoManager.undoing or UndoManager.redoing\n *\n * @type {StackItem|null}\n */\n this.currStackItem = null;\n this.lastChange = 0;\n this.ignoreRemoteMapChanges = ignoreRemoteMapChanges;\n this.captureTimeout = captureTimeout;\n /**\n * @param {Transaction} transaction\n */\n this.afterTransactionHandler = transaction => {\n // Only track certain transactions\n if (\n !this.captureTransaction(transaction) ||\n !this.scope.some(type => transaction.changedParentTypes.has(type)) ||\n (!this.trackedOrigins.has(transaction.origin) && (!transaction.origin || !this.trackedOrigins.has(transaction.origin.constructor)))\n ) {\n return\n }\n const undoing = this.undoing;\n const redoing = this.redoing;\n const stack = undoing ? this.redoStack : this.undoStack;\n if (undoing) {\n this.stopCapturing(); // next undo should not be appended to last stack item\n } else if (!redoing) {\n // neither undoing nor redoing: delete redoStack\n this.clear(false, true);\n }\n const insertions = new DeleteSet();\n transaction.afterState.forEach((endClock, client) => {\n const startClock = transaction.beforeState.get(client) || 0;\n const len = endClock - startClock;\n if (len > 0) {\n addToDeleteSet(insertions, client, startClock, len);\n }\n });\n const now = time.getUnixTime();\n let didAdd = false;\n if (this.lastChange > 0 && now - this.lastChange < this.captureTimeout && stack.length > 0 && !undoing && !redoing) {\n // append change to last stack op\n const lastOp = stack[stack.length - 1];\n lastOp.deletions = mergeDeleteSets([lastOp.deletions, transaction.deleteSet]);\n lastOp.insertions = mergeDeleteSets([lastOp.insertions, insertions]);\n } else {\n // create a new stack op\n stack.push(new StackItem(transaction.deleteSet, insertions));\n didAdd = true;\n }\n if (!undoing && !redoing) {\n this.lastChange = now;\n }\n // make sure that deleted structs are not gc'd\n iterateDeletedStructs(transaction, transaction.deleteSet, /** @param {Item|GC} item */ item => {\n if (item instanceof Item && this.scope.some(type => isParentOf(type, item))) {\n keepItem(item, true);\n }\n });\n /**\n * @type {[StackItemEvent, UndoManager]}\n */\n const changeEvent = [{ stackItem: stack[stack.length - 1], origin: transaction.origin, type: undoing ? 'redo' : 'undo', changedParentTypes: transaction.changedParentTypes }, this];\n if (didAdd) {\n this.emit('stack-item-added', changeEvent);\n } else {\n this.emit('stack-item-updated', changeEvent);\n }\n };\n this.doc.on('afterTransaction', this.afterTransactionHandler);\n this.doc.on('destroy', () => {\n this.destroy();\n });\n }\n\n /**\n * @param {Array> | AbstractType} ytypes\n */\n addToScope (ytypes) {\n ytypes = array.isArray(ytypes) ? ytypes : [ytypes];\n ytypes.forEach(ytype => {\n if (this.scope.every(yt => yt !== ytype)) {\n if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc'); // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509\n this.scope.push(ytype);\n }\n });\n }\n\n /**\n * @param {any} origin\n */\n addTrackedOrigin (origin) {\n this.trackedOrigins.add(origin);\n }\n\n /**\n * @param {any} origin\n */\n removeTrackedOrigin (origin) {\n this.trackedOrigins.delete(origin);\n }\n\n clear (clearUndoStack = true, clearRedoStack = true) {\n if ((clearUndoStack && this.canUndo()) || (clearRedoStack && this.canRedo())) {\n this.doc.transact(tr => {\n if (clearUndoStack) {\n this.undoStack.forEach(item => clearUndoManagerStackItem(tr, this, item));\n this.undoStack = [];\n }\n if (clearRedoStack) {\n this.redoStack.forEach(item => clearUndoManagerStackItem(tr, this, item));\n this.redoStack = [];\n }\n this.emit('stack-cleared', [{ undoStackCleared: clearUndoStack, redoStackCleared: clearRedoStack }]);\n });\n }\n }\n\n /**\n * UndoManager merges Undo-StackItem if they are created within time-gap\n * smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next\n * StackItem won't be merged.\n *\n *\n * @example\n * // without stopCapturing\n * ytext.insert(0, 'a')\n * ytext.insert(1, 'b')\n * um.undo()\n * ytext.toString() // => '' (note that 'ab' was removed)\n * // with stopCapturing\n * ytext.insert(0, 'a')\n * um.stopCapturing()\n * ytext.insert(0, 'b')\n * um.undo()\n * ytext.toString() // => 'a' (note that only 'b' was removed)\n *\n */\n stopCapturing () {\n this.lastChange = 0;\n }\n\n /**\n * Undo last changes on type.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n undo () {\n this.undoing = true;\n let res;\n try {\n res = popStackItem(this, this.undoStack, 'undo');\n } finally {\n this.undoing = false;\n }\n return res\n }\n\n /**\n * Redo last undo operation.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n redo () {\n this.redoing = true;\n let res;\n try {\n res = popStackItem(this, this.redoStack, 'redo');\n } finally {\n this.redoing = false;\n }\n return res\n }\n\n /**\n * Are undo steps available?\n *\n * @return {boolean} `true` if undo is possible\n */\n canUndo () {\n return this.undoStack.length > 0\n }\n\n /**\n * Are redo steps available?\n *\n * @return {boolean} `true` if redo is possible\n */\n canRedo () {\n return this.redoStack.length > 0\n }\n\n destroy () {\n this.trackedOrigins.delete(this);\n this.doc.off('afterTransaction', this.afterTransactionHandler);\n super.destroy();\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n */\nfunction * lazyStructReaderGenerator (decoder) {\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder);\n const client = decoder.readClient();\n let clock = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo();\n // @todo use switch instead of ifs\n if (info === 10) {\n const len = decoding.readVarUint(decoder.restDecoder);\n yield new Skip(createID(client, clock), len);\n clock += len;\n } else if ((binary.BITS5 & info) !== 0) {\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0;\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n // @ts-ignore Force writing a string here.\n cantCopyParentInfo ? (decoder.readParentInfo() ? decoder.readString() : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n );\n yield struct;\n clock += struct.length;\n } else {\n const len = decoder.readLen();\n yield new GC(createID(client, clock), len);\n clock += len;\n }\n }\n }\n}\n\nclass LazyStructReader {\n /**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {boolean} filterSkips\n */\n constructor (decoder, filterSkips) {\n this.gen = lazyStructReaderGenerator(decoder);\n /**\n * @type {null | Item | Skip | GC}\n */\n this.curr = null;\n this.done = false;\n this.filterSkips = filterSkips;\n this.next();\n }\n\n /**\n * @return {Item | GC | Skip |null}\n */\n next () {\n // ignore \"Skip\" structs\n do {\n this.curr = this.gen.next().value || null;\n } while (this.filterSkips && this.curr !== null && this.curr.constructor === Skip)\n return this.curr\n }\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nconst logUpdate = update => logUpdateV2(update, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nconst logUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = [];\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr);\n }\n logging.print('Structs: ', structs);\n const ds = readDeleteSet(updateDecoder);\n logging.print('DeleteSet: ', ds);\n};\n\n/**\n * @param {Uint8Array} update\n *\n */\nconst decodeUpdate = (update) => decodeUpdateV2(update, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nconst decodeUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = [];\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr);\n }\n return {\n structs,\n ds: readDeleteSet(updateDecoder)\n }\n};\n\nclass LazyStructWriter {\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n constructor (encoder) {\n this.currClient = 0;\n this.startClock = 0;\n this.written = 0;\n this.encoder = encoder;\n /**\n * We want to write operations lazily, but also we need to know beforehand how many operations we want to write for each client.\n *\n * This kind of meta-information (#clients, #structs-per-client-written) is written to the restEncoder.\n *\n * We fragment the restEncoder and store a slice of it per-client until we know how many clients there are.\n * When we flush (toUint8Array) we write the restEncoder using the fragments and the meta-information.\n *\n * @type {Array<{ written: number, restEncoder: Uint8Array }>}\n */\n this.clientStructs = [];\n }\n}\n\n/**\n * @param {Array} updates\n * @return {Uint8Array}\n */\nconst mergeUpdates = updates => mergeUpdatesV2(updates, UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof DSEncoderV1 | typeof DSEncoderV2} YEncoder\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {Uint8Array}\n */\nconst encodeStateVectorFromUpdateV2 = (update, YEncoder = DSEncoderV2, YDecoder = UpdateDecoderV2) => {\n const encoder = new YEncoder();\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false);\n let curr = updateDecoder.curr;\n if (curr !== null) {\n let size = 0;\n let currClient = curr.id.client;\n let stopCounting = curr.id.clock !== 0; // must start at 0\n let currClock = stopCounting ? 0 : curr.id.clock + curr.length;\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n if (currClock !== 0) {\n size++;\n // We found a new client\n // write what we have to the encoder\n encoding.writeVarUint(encoder.restEncoder, currClient);\n encoding.writeVarUint(encoder.restEncoder, currClock);\n }\n currClient = curr.id.client;\n currClock = 0;\n stopCounting = curr.id.clock !== 0;\n }\n // we ignore skips\n if (curr.constructor === Skip) {\n stopCounting = true;\n }\n if (!stopCounting) {\n currClock = curr.id.clock + curr.length;\n }\n }\n // write what we have\n if (currClock !== 0) {\n size++;\n encoding.writeVarUint(encoder.restEncoder, currClient);\n encoding.writeVarUint(encoder.restEncoder, currClock);\n }\n // prepend the size of the state vector\n const enc = encoding.createEncoder();\n encoding.writeVarUint(enc, size);\n encoding.writeBinaryEncoder(enc, encoder.restEncoder);\n encoder.restEncoder = enc;\n return encoder.toUint8Array()\n } else {\n encoding.writeVarUint(encoder.restEncoder, 0);\n return encoder.toUint8Array()\n }\n};\n\n/**\n * @param {Uint8Array} update\n * @return {Uint8Array}\n */\nconst encodeStateVectorFromUpdate = update => encodeStateVectorFromUpdateV2(update, DSEncoderV1, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {{ from: Map, to: Map }}\n */\nconst parseUpdateMetaV2 = (update, YDecoder = UpdateDecoderV2) => {\n /**\n * @type {Map}\n */\n const from = new Map();\n /**\n * @type {Map}\n */\n const to = new Map();\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false);\n let curr = updateDecoder.curr;\n if (curr !== null) {\n let currClient = curr.id.client;\n let currClock = curr.id.clock;\n // write the beginning to `from`\n from.set(currClient, currClock);\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n // We found a new client\n // write the end to `to`\n to.set(currClient, currClock);\n // write the beginning to `from`\n from.set(curr.id.client, curr.id.clock);\n // update currClient\n currClient = curr.id.client;\n }\n currClock = curr.id.clock + curr.length;\n }\n // write the end to `to`\n to.set(currClient, currClock);\n }\n return { from, to }\n};\n\n/**\n * @param {Uint8Array} update\n * @return {{ from: Map, to: Map }}\n */\nconst parseUpdateMeta = update => parseUpdateMetaV2(update, UpdateDecoderV1);\n\n/**\n * This method is intended to slice any kind of struct and retrieve the right part.\n * It does not handle side-effects, so it should only be used by the lazy-encoder.\n *\n * @param {Item | GC | Skip} left\n * @param {number} diff\n * @return {Item | GC}\n */\nconst sliceStruct = (left, diff) => {\n if (left.constructor === GC) {\n const { client, clock } = left.id;\n return new GC(createID(client, clock + diff), left.length - diff)\n } else if (left.constructor === Skip) {\n const { client, clock } = left.id;\n return new Skip(createID(client, clock + diff), left.length - diff)\n } else {\n const leftItem = /** @type {Item} */ (left);\n const { client, clock } = leftItem.id;\n return new Item(\n createID(client, clock + diff),\n null,\n createID(client, clock + diff - 1),\n null,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n }\n};\n\n/**\n *\n * This function works similarly to `readUpdateV2`.\n *\n * @param {Array} updates\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n * @return {Uint8Array}\n */\nconst mergeUpdatesV2 = (updates, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n if (updates.length === 1) {\n return updates[0]\n }\n const updateDecoders = updates.map(update => new YDecoder(decoding.createDecoder(update)));\n let lazyStructDecoders = updateDecoders.map(decoder => new LazyStructReader(decoder, true));\n\n /**\n * @todo we don't need offset because we always slice before\n * @type {null | { struct: Item | GC | Skip, offset: number }}\n */\n let currWrite = null;\n\n const updateEncoder = new YEncoder();\n // write structs lazily\n const lazyStructEncoder = new LazyStructWriter(updateEncoder);\n\n // Note: We need to ensure that all lazyStructDecoders are fully consumed\n // Note: Should merge document updates whenever possible - even from different updates\n // Note: Should handle that some operations cannot be applied yet ()\n\n while (true) {\n // Write higher clients first ⇒ sort by clientID & clock and remove decoders without content\n lazyStructDecoders = lazyStructDecoders.filter(dec => dec.curr !== null);\n lazyStructDecoders.sort(\n /** @type {function(any,any):number} */ (dec1, dec2) => {\n if (dec1.curr.id.client === dec2.curr.id.client) {\n const clockDiff = dec1.curr.id.clock - dec2.curr.id.clock;\n if (clockDiff === 0) {\n // @todo remove references to skip since the structDecoders must filter Skips.\n return dec1.curr.constructor === dec2.curr.constructor\n ? 0\n : dec1.curr.constructor === Skip ? 1 : -1 // we are filtering skips anyway.\n } else {\n return clockDiff\n }\n } else {\n return dec2.curr.id.client - dec1.curr.id.client\n }\n }\n );\n if (lazyStructDecoders.length === 0) {\n break\n }\n const currDecoder = lazyStructDecoders[0];\n // write from currDecoder until the next operation is from another client or if filler-struct\n // then we need to reorder the decoders and find the next operation to write\n const firstClient = /** @type {Item | GC} */ (currDecoder.curr).id.client;\n\n if (currWrite !== null) {\n let curr = /** @type {Item | GC | null} */ (currDecoder.curr);\n let iterated = false;\n\n // iterate until we find something that we haven't written already\n // remember: first the high client-ids are written\n while (curr !== null && curr.id.clock + curr.length <= currWrite.struct.id.clock + currWrite.struct.length && curr.id.client >= currWrite.struct.id.client) {\n curr = currDecoder.next();\n iterated = true;\n }\n if (\n curr === null || // current decoder is empty\n curr.id.client !== firstClient || // check whether there is another decoder that has has updates from `firstClient`\n (iterated && curr.id.clock > currWrite.struct.id.clock + currWrite.struct.length) // the above while loop was used and we are potentially missing updates\n ) {\n continue\n }\n\n if (firstClient !== currWrite.struct.id.client) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: curr, offset: 0 };\n currDecoder.next();\n } else {\n if (currWrite.struct.id.clock + currWrite.struct.length < curr.id.clock) {\n // @todo write currStruct & set currStruct = Skip(clock = currStruct.id.clock + currStruct.length, length = curr.id.clock - self.clock)\n if (currWrite.struct.constructor === Skip) {\n // extend existing skip\n currWrite.struct.length = curr.id.clock + curr.length - currWrite.struct.id.clock;\n } else {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n const diff = curr.id.clock - currWrite.struct.id.clock - currWrite.struct.length;\n /**\n * @type {Skip}\n */\n const struct = new Skip(createID(firstClient, currWrite.struct.id.clock + currWrite.struct.length), diff);\n currWrite = { struct, offset: 0 };\n }\n } else { // if (currWrite.struct.id.clock + currWrite.struct.length >= curr.id.clock) {\n const diff = currWrite.struct.id.clock + currWrite.struct.length - curr.id.clock;\n if (diff > 0) {\n if (currWrite.struct.constructor === Skip) {\n // prefer to slice Skip because the other struct might contain more information\n currWrite.struct.length -= diff;\n } else {\n curr = sliceStruct(curr, diff);\n }\n }\n if (!currWrite.struct.mergeWith(/** @type {any} */ (curr))) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: curr, offset: 0 };\n currDecoder.next();\n }\n }\n }\n } else {\n currWrite = { struct: /** @type {Item | GC} */ (currDecoder.curr), offset: 0 };\n currDecoder.next();\n }\n for (\n let next = currDecoder.curr;\n next !== null && next.id.client === firstClient && next.id.clock === currWrite.struct.id.clock + currWrite.struct.length && next.constructor !== Skip;\n next = currDecoder.next()\n ) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: next, offset: 0 };\n }\n }\n if (currWrite !== null) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = null;\n }\n finishLazyStructWriting(lazyStructEncoder);\n\n const dss = updateDecoders.map(decoder => readDeleteSet(decoder));\n const ds = mergeDeleteSets(dss);\n writeDeleteSet(updateEncoder, ds);\n return updateEncoder.toUint8Array()\n};\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n */\nconst diffUpdateV2 = (update, sv, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n const state = decodeStateVector(sv);\n const encoder = new YEncoder();\n const lazyStructWriter = new LazyStructWriter(encoder);\n const decoder = new YDecoder(decoding.createDecoder(update));\n const reader = new LazyStructReader(decoder, false);\n while (reader.curr) {\n const curr = reader.curr;\n const currClient = curr.id.client;\n const svClock = state.get(currClient) || 0;\n if (reader.curr.constructor === Skip) {\n // the first written struct shouldn't be a skip\n reader.next();\n continue\n }\n if (curr.id.clock + curr.length > svClock) {\n writeStructToLazyStructWriter(lazyStructWriter, curr, math.max(svClock - curr.id.clock, 0));\n reader.next();\n while (reader.curr && reader.curr.id.client === currClient) {\n writeStructToLazyStructWriter(lazyStructWriter, reader.curr, 0);\n reader.next();\n }\n } else {\n // read until something new comes up\n while (reader.curr && reader.curr.id.client === currClient && reader.curr.id.clock + reader.curr.length <= svClock) {\n reader.next();\n }\n }\n }\n finishLazyStructWriting(lazyStructWriter);\n // write ds\n const ds = readDeleteSet(decoder);\n writeDeleteSet(encoder, ds);\n return encoder.toUint8Array()\n};\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n */\nconst diffUpdate = (update, sv) => diffUpdateV2(update, sv, UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {LazyStructWriter} lazyWriter\n */\nconst flushLazyStructWriter = lazyWriter => {\n if (lazyWriter.written > 0) {\n lazyWriter.clientStructs.push({ written: lazyWriter.written, restEncoder: encoding.toUint8Array(lazyWriter.encoder.restEncoder) });\n lazyWriter.encoder.restEncoder = encoding.createEncoder();\n lazyWriter.written = 0;\n }\n};\n\n/**\n * @param {LazyStructWriter} lazyWriter\n * @param {Item | GC} struct\n * @param {number} offset\n */\nconst writeStructToLazyStructWriter = (lazyWriter, struct, offset) => {\n // flush curr if we start another client\n if (lazyWriter.written > 0 && lazyWriter.currClient !== struct.id.client) {\n flushLazyStructWriter(lazyWriter);\n }\n if (lazyWriter.written === 0) {\n lazyWriter.currClient = struct.id.client;\n // write next client\n lazyWriter.encoder.writeClient(struct.id.client);\n // write startClock\n encoding.writeVarUint(lazyWriter.encoder.restEncoder, struct.id.clock + offset);\n }\n struct.write(lazyWriter.encoder, offset);\n lazyWriter.written++;\n};\n/**\n * Call this function when we collected all parts and want to\n * put all the parts together. After calling this method,\n * you can continue using the UpdateEncoder.\n *\n * @param {LazyStructWriter} lazyWriter\n */\nconst finishLazyStructWriting = (lazyWriter) => {\n flushLazyStructWriter(lazyWriter);\n\n // this is a fresh encoder because we called flushCurr\n const restEncoder = lazyWriter.encoder.restEncoder;\n\n /**\n * Now we put all the fragments together.\n * This works similarly to `writeClientsStructs`\n */\n\n // write # states that were updated - i.e. the clients\n encoding.writeVarUint(restEncoder, lazyWriter.clientStructs.length);\n\n for (let i = 0; i < lazyWriter.clientStructs.length; i++) {\n const partStructs = lazyWriter.clientStructs[i];\n /**\n * Works similarly to `writeStructs`\n */\n // write # encoded structs\n encoding.writeVarUint(restEncoder, partStructs.written);\n // write the rest of the fragment\n encoding.writeUint8Array(restEncoder, partStructs.restEncoder);\n }\n};\n\n/**\n * @param {Uint8Array} update\n * @param {function(Item|GC|Skip):Item|GC|Skip} blockTransformer\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} YDecoder\n * @param {typeof UpdateEncoderV2 | typeof UpdateEncoderV1 } YEncoder\n */\nconst convertUpdateFormat = (update, blockTransformer, YDecoder, YEncoder) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n const updateEncoder = new YEncoder();\n const lazyWriter = new LazyStructWriter(updateEncoder);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n writeStructToLazyStructWriter(lazyWriter, blockTransformer(curr), 0);\n }\n finishLazyStructWriting(lazyWriter);\n const ds = readDeleteSet(updateDecoder);\n writeDeleteSet(updateEncoder, ds);\n return updateEncoder.toUint8Array()\n};\n\n/**\n * @typedef {Object} ObfuscatorOptions\n * @property {boolean} [ObfuscatorOptions.formatting=true]\n * @property {boolean} [ObfuscatorOptions.subdocs=true]\n * @property {boolean} [ObfuscatorOptions.yxml=true] Whether to obfuscate nodeName / hookName\n */\n\n/**\n * @param {ObfuscatorOptions} obfuscator\n */\nconst createObfuscator = ({ formatting = true, subdocs = true, yxml = true } = {}) => {\n let i = 0;\n const mapKeyCache = map.create();\n const nodeNameCache = map.create();\n const formattingKeyCache = map.create();\n const formattingValueCache = map.create();\n formattingValueCache.set(null, null); // end of a formatting range should always be the end of a formatting range\n /**\n * @param {Item|GC|Skip} block\n * @return {Item|GC|Skip}\n */\n return block => {\n switch (block.constructor) {\n case GC:\n case Skip:\n return block\n case Item: {\n const item = /** @type {Item} */ (block);\n const content = item.content;\n switch (content.constructor) {\n case ContentDeleted:\n break\n case ContentType: {\n if (yxml) {\n const type = /** @type {ContentType} */ (content).type;\n if (type instanceof YXmlElement) {\n type.nodeName = map.setIfUndefined(nodeNameCache, type.nodeName, () => 'node-' + i);\n }\n if (type instanceof YXmlHook) {\n type.hookName = map.setIfUndefined(nodeNameCache, type.hookName, () => 'hook-' + i);\n }\n }\n break\n }\n case ContentAny: {\n const c = /** @type {ContentAny} */ (content);\n c.arr = c.arr.map(() => i);\n break\n }\n case ContentBinary: {\n const c = /** @type {ContentBinary} */ (content);\n c.content = new Uint8Array([i]);\n break\n }\n case ContentDoc: {\n const c = /** @type {ContentDoc} */ (content);\n if (subdocs) {\n c.opts = {};\n c.doc.guid = i + '';\n }\n break\n }\n case ContentEmbed: {\n const c = /** @type {ContentEmbed} */ (content);\n c.embed = {};\n break\n }\n case ContentFormat: {\n const c = /** @type {ContentFormat} */ (content);\n if (formatting) {\n c.key = map.setIfUndefined(formattingKeyCache, c.key, () => i + '');\n c.value = map.setIfUndefined(formattingValueCache, c.value, () => ({ i }));\n }\n break\n }\n case ContentJSON: {\n const c = /** @type {ContentJSON} */ (content);\n c.arr = c.arr.map(() => i);\n break\n }\n case ContentString: {\n const c = /** @type {ContentString} */ (content);\n c.str = string.repeat((i % 10) + '', c.str.length);\n break\n }\n default:\n // unknown content type\n error.unexpectedCase();\n }\n if (item.parentSub) {\n item.parentSub = map.setIfUndefined(mapKeyCache, item.parentSub, () => i + '');\n }\n i++;\n return block\n }\n default:\n // unknown block-type\n error.unexpectedCase();\n }\n }\n};\n\n/**\n * This function obfuscates the content of a Yjs update. This is useful to share\n * buggy Yjs documents while significantly limiting the possibility that a\n * developer can on the user. Note that it might still be possible to deduce\n * some information by analyzing the \"structure\" of the document or by analyzing\n * the typing behavior using the CRDT-related metadata that is still kept fully\n * intact.\n *\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nconst obfuscateUpdate = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nconst obfuscateUpdateV2 = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV2, UpdateEncoderV2);\n\n/**\n * @param {Uint8Array} update\n */\nconst convertUpdateFormatV1ToV2 = update => convertUpdateFormat(update, f.id, UpdateDecoderV1, UpdateEncoderV2);\n\n/**\n * @param {Uint8Array} update\n */\nconst convertUpdateFormatV2ToV1 = update => convertUpdateFormat(update, f.id, UpdateDecoderV2, UpdateEncoderV1);\n\nconst errorComputeChanges = 'You must not compute changes after the event-handler fired.';\n\n/**\n * @template {AbstractType} T\n * YEvent describes the changes on a YType.\n */\nclass YEvent {\n /**\n * @param {T} target The changed type.\n * @param {Transaction} transaction\n */\n constructor (target, transaction) {\n /**\n * The type on which this event was created on.\n * @type {T}\n */\n this.target = target;\n /**\n * The current target on which the observe callback is called.\n * @type {AbstractType}\n */\n this.currentTarget = target;\n /**\n * The transaction that triggered this event.\n * @type {Transaction}\n */\n this.transaction = transaction;\n /**\n * @type {Object|null}\n */\n this._changes = null;\n /**\n * @type {null | Map}\n */\n this._keys = null;\n /**\n * @type {null | Array<{ insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object }>}\n */\n this._delta = null;\n /**\n * @type {Array|null}\n */\n this._path = null;\n }\n\n /**\n * Computes the path from `y` to the changed type.\n *\n * @todo v14 should standardize on path: Array<{parent, index}> because that is easier to work with.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(dir => {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n */\n get path () {\n return this._path || (this._path = getPathTo(this.currentTarget, this.target))\n }\n\n /**\n * Check if a struct is deleted by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n deletes (struct) {\n return isDeleted(this.transaction.deleteSet, struct.id)\n }\n\n /**\n * @type {Map}\n */\n get keys () {\n if (this._keys === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const keys = new Map();\n const target = this.target;\n const changed = /** @type Set */ (this.transaction.changed.get(target));\n changed.forEach(key => {\n if (key !== null) {\n const item = /** @type {Item} */ (target._map.get(key));\n /**\n * @type {'delete' | 'add' | 'update'}\n */\n let action;\n let oldValue;\n if (this.adds(item)) {\n let prev = item.left;\n while (prev !== null && this.adds(prev)) {\n prev = prev.left;\n }\n if (this.deletes(item)) {\n if (prev !== null && this.deletes(prev)) {\n action = 'delete';\n oldValue = array.last(prev.content.getContent());\n } else {\n return\n }\n } else {\n if (prev !== null && this.deletes(prev)) {\n action = 'update';\n oldValue = array.last(prev.content.getContent());\n } else {\n action = 'add';\n oldValue = undefined;\n }\n }\n } else {\n if (this.deletes(item)) {\n action = 'delete';\n oldValue = array.last(/** @type {Item} */ item.content.getContent());\n } else {\n return // nop\n }\n }\n keys.set(key, { action, oldValue });\n }\n });\n this._keys = keys;\n }\n return this._keys\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {Array<{insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object}>}\n */\n get delta () {\n return this.changes.delta\n }\n\n /**\n * Check if a struct is added by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n adds (struct) {\n return struct.id.clock >= (this.transaction.beforeState.get(struct.id.client) || 0)\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n let changes = this._changes;\n if (changes === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const target = this.target;\n const added = set.create();\n const deleted = set.create();\n /**\n * @type {Array<{insert:Array}|{delete:number}|{retain:number}>}\n */\n const delta = [];\n changes = {\n added,\n deleted,\n delta,\n keys: this.keys\n };\n const changed = /** @type Set */ (this.transaction.changed.get(target));\n if (changed.has(null)) {\n /**\n * @type {any}\n */\n let lastOp = null;\n const packOp = () => {\n if (lastOp) {\n delta.push(lastOp);\n }\n };\n for (let item = target._start; item !== null; item = item.right) {\n if (item.deleted) {\n if (this.deletes(item) && !this.adds(item)) {\n if (lastOp === null || lastOp.delete === undefined) {\n packOp();\n lastOp = { delete: 0 };\n }\n lastOp.delete += item.length;\n deleted.add(item);\n } // else nop\n } else {\n if (this.adds(item)) {\n if (lastOp === null || lastOp.insert === undefined) {\n packOp();\n lastOp = { insert: [] };\n }\n lastOp.insert = lastOp.insert.concat(item.content.getContent());\n added.add(item);\n } else {\n if (lastOp === null || lastOp.retain === undefined) {\n packOp();\n lastOp = { retain: 0 };\n }\n lastOp.retain += item.length;\n }\n }\n }\n if (lastOp !== null && lastOp.retain === undefined) {\n packOp();\n }\n }\n this._changes = changes;\n }\n return /** @type {any} */ (changes)\n }\n}\n\n/**\n * Compute the path from this type to the specified target.\n *\n * @example\n * // `child` should be accessible via `type.get(path[0]).get(path[1])..`\n * const path = type.getPathTo(child)\n * // assuming `type instanceof YArray`\n * console.log(path) // might look like => [2, 'key1']\n * child === type.get(path[0]).get(path[1])\n *\n * @param {AbstractType} parent\n * @param {AbstractType} child target\n * @return {Array} Path to the target\n *\n * @private\n * @function\n */\nconst getPathTo = (parent, child) => {\n const path = [];\n while (child._item !== null && child !== parent) {\n if (child._item.parentSub !== null) {\n // parent is map-ish\n path.unshift(child._item.parentSub);\n } else {\n // parent is array-ish\n let i = 0;\n let c = /** @type {AbstractType} */ (child._item.parent)._start;\n while (c !== child._item && c !== null) {\n if (!c.deleted && c.countable) {\n i += c.length;\n }\n c = c.right;\n }\n path.unshift(i);\n }\n child = /** @type {AbstractType} */ (child._item.parent);\n }\n return path\n};\n\n/**\n * https://docs.yjs.dev/getting-started/working-with-shared-types#caveats\n */\nconst warnPrematureAccess = () => { logging.warn('Invalid access: Add Yjs type to a document before reading data.'); };\n\nconst maxSearchMarker = 80;\n\n/**\n * A unique timestamp that identifies each marker.\n *\n * Time is relative,.. this is more like an ever-increasing clock.\n *\n * @type {number}\n */\nlet globalSearchMarkerTimestamp = 0;\n\nclass ArraySearchMarker {\n /**\n * @param {Item} p\n * @param {number} index\n */\n constructor (p, index) {\n p.marker = true;\n this.p = p;\n this.index = index;\n this.timestamp = globalSearchMarkerTimestamp++;\n }\n}\n\n/**\n * @param {ArraySearchMarker} marker\n */\nconst refreshMarkerTimestamp = marker => { marker.timestamp = globalSearchMarkerTimestamp++; };\n\n/**\n * This is rather complex so this function is the only thing that should overwrite a marker\n *\n * @param {ArraySearchMarker} marker\n * @param {Item} p\n * @param {number} index\n */\nconst overwriteMarker = (marker, p, index) => {\n marker.p.marker = false;\n marker.p = p;\n p.marker = true;\n marker.index = index;\n marker.timestamp = globalSearchMarkerTimestamp++;\n};\n\n/**\n * @param {Array} searchMarker\n * @param {Item} p\n * @param {number} index\n */\nconst markPosition = (searchMarker, p, index) => {\n if (searchMarker.length >= maxSearchMarker) {\n // override oldest marker (we don't want to create more objects)\n const marker = searchMarker.reduce((a, b) => a.timestamp < b.timestamp ? a : b);\n overwriteMarker(marker, p, index);\n return marker\n } else {\n // create new marker\n const pm = new ArraySearchMarker(p, index);\n searchMarker.push(pm);\n return pm\n }\n};\n\n/**\n * Search marker help us to find positions in the associative array faster.\n *\n * They speed up the process of finding a position without much bookkeeping.\n *\n * A maximum of `maxSearchMarker` objects are created.\n *\n * This function always returns a refreshed marker (updated timestamp)\n *\n * @param {AbstractType} yarray\n * @param {number} index\n */\nconst findMarker = (yarray, index) => {\n if (yarray._start === null || index === 0 || yarray._searchMarker === null) {\n return null\n }\n const marker = yarray._searchMarker.length === 0 ? null : yarray._searchMarker.reduce((a, b) => math.abs(index - a.index) < math.abs(index - b.index) ? a : b);\n let p = yarray._start;\n let pindex = 0;\n if (marker !== null) {\n p = marker.p;\n pindex = marker.index;\n refreshMarkerTimestamp(marker); // we used it, we might need to use it again\n }\n // iterate to right if possible\n while (p.right !== null && pindex < index) {\n if (!p.deleted && p.countable) {\n if (index < pindex + p.length) {\n break\n }\n pindex += p.length;\n }\n p = p.right;\n }\n // iterate to left if necessary (might be that pindex > index)\n while (p.left !== null && pindex > index) {\n p = p.left;\n if (!p.deleted && p.countable) {\n pindex -= p.length;\n }\n }\n // we want to make sure that p can't be merged with left, because that would screw up everything\n // in that cas just return what we have (it is most likely the best marker anyway)\n // iterate to left until p can't be merged with left\n while (p.left !== null && p.left.id.client === p.id.client && p.left.id.clock + p.left.length === p.id.clock) {\n p = p.left;\n if (!p.deleted && p.countable) {\n pindex -= p.length;\n }\n }\n\n // @todo remove!\n // assure position\n // {\n // let start = yarray._start\n // let pos = 0\n // while (start !== p) {\n // if (!start.deleted && start.countable) {\n // pos += start.length\n // }\n // start = /** @type {Item} */ (start.right)\n // }\n // if (pos !== pindex) {\n // debugger\n // throw new Error('Gotcha position fail!')\n // }\n // }\n // if (marker) {\n // if (window.lengthes == null) {\n // window.lengthes = []\n // window.getLengthes = () => window.lengthes.sort((a, b) => a - b)\n // }\n // window.lengthes.push(marker.index - pindex)\n // console.log('distance', marker.index - pindex, 'len', p && p.parent.length)\n // }\n if (marker !== null && math.abs(marker.index - pindex) < /** @type {YText|YArray} */ (p.parent).length / maxSearchMarker) {\n // adjust existing marker\n overwriteMarker(marker, p, pindex);\n return marker\n } else {\n // create new marker\n return markPosition(yarray._searchMarker, p, pindex)\n }\n};\n\n/**\n * Update markers when a change happened.\n *\n * This should be called before doing a deletion!\n *\n * @param {Array} searchMarker\n * @param {number} index\n * @param {number} len If insertion, len is positive. If deletion, len is negative.\n */\nconst updateMarkerChanges = (searchMarker, index, len) => {\n for (let i = searchMarker.length - 1; i >= 0; i--) {\n const m = searchMarker[i];\n if (len > 0) {\n /**\n * @type {Item|null}\n */\n let p = m.p;\n p.marker = false;\n // Ideally we just want to do a simple position comparison, but this will only work if\n // search markers don't point to deleted items for formats.\n // Iterate marker to prev undeleted countable position so we know what to do when updating a position\n while (p && (p.deleted || !p.countable)) {\n p = p.left;\n if (p && !p.deleted && p.countable) {\n // adjust position. the loop should break now\n m.index -= p.length;\n }\n }\n if (p === null || p.marker === true) {\n // remove search marker if updated position is null or if position is already marked\n searchMarker.splice(i, 1);\n continue\n }\n m.p = p;\n p.marker = true;\n }\n if (index < m.index || (len > 0 && index === m.index)) { // a simple index <= m.index check would actually suffice\n m.index = math.max(index, m.index + len);\n }\n }\n};\n\n/**\n * Accumulate all (list) children of a type and return them as an Array.\n *\n * @param {AbstractType} t\n * @return {Array}\n */\nconst getTypeChildren = t => {\n t.doc ?? warnPrematureAccess();\n let s = t._start;\n const arr = [];\n while (s) {\n arr.push(s);\n s = s.right;\n }\n return arr\n};\n\n/**\n * Call event listeners with an event. This will also add an event to all\n * parents (for `.observeDeep` handlers).\n *\n * @template EventType\n * @param {AbstractType} type\n * @param {Transaction} transaction\n * @param {EventType} event\n */\nconst callTypeObservers = (type, transaction, event) => {\n const changedType = type;\n const changedParentTypes = transaction.changedParentTypes;\n while (true) {\n // @ts-ignore\n map.setIfUndefined(changedParentTypes, type, () => []).push(event);\n if (type._item === null) {\n break\n }\n type = /** @type {AbstractType} */ (type._item.parent);\n }\n callEventHandlerListeners(changedType._eH, event, transaction);\n};\n\n/**\n * @template EventType\n * Abstract Yjs Type class\n */\nclass AbstractType {\n constructor () {\n /**\n * @type {Item|null}\n */\n this._item = null;\n /**\n * @type {Map}\n */\n this._map = new Map();\n /**\n * @type {Item|null}\n */\n this._start = null;\n /**\n * @type {Doc|null}\n */\n this.doc = null;\n this._length = 0;\n /**\n * Event handlers\n * @type {EventHandler}\n */\n this._eH = createEventHandler();\n /**\n * Deep event handlers\n * @type {EventHandler>,Transaction>}\n */\n this._dEH = createEventHandler();\n /**\n * @type {null | Array}\n */\n this._searchMarker = null;\n }\n\n /**\n * @return {AbstractType|null}\n */\n get parent () {\n return this._item ? /** @type {AbstractType} */ (this._item.parent) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item|null} item\n */\n _integrate (y, item) {\n this.doc = y;\n this._item = item;\n }\n\n /**\n * @return {AbstractType}\n */\n _copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {AbstractType}\n */\n clone () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n */\n _write (_encoder) { }\n\n /**\n * The first non-deleted item\n */\n get _first () {\n let n = this._start;\n while (n !== null && n.deleted) {\n n = n.right;\n }\n return n\n }\n\n /**\n * Creates YEvent and calls all type observers.\n * Must be implemented by each type.\n *\n * @param {Transaction} transaction\n * @param {Set} _parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, _parentSubs) {\n if (!transaction.local && this._searchMarker) {\n this._searchMarker.length = 0;\n }\n }\n\n /**\n * Observe all events that are created on this type.\n *\n * @param {function(EventType, Transaction):void} f Observer function\n */\n observe (f) {\n addEventHandlerListener(this._eH, f);\n }\n\n /**\n * Observe all events that are created by this type and its children.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n observeDeep (f) {\n addEventHandlerListener(this._dEH, f);\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(EventType,Transaction):void} f Observer function\n */\n unobserve (f) {\n removeEventHandlerListener(this._eH, f);\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n unobserveDeep (f) {\n removeEventHandlerListener(this._dEH, f);\n }\n\n /**\n * @abstract\n * @return {any}\n */\n toJSON () {}\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} start\n * @param {number} end\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListSlice = (type, start, end) => {\n type.doc ?? warnPrematureAccess();\n if (start < 0) {\n start = type._length + start;\n }\n if (end < 0) {\n end = type._length + end;\n }\n let len = end - start;\n const cs = [];\n let n = type._start;\n while (n !== null && len > 0) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n if (c.length <= start) {\n start -= c.length;\n } else {\n for (let i = start; i < c.length && len > 0; i++) {\n cs.push(c[i]);\n len--;\n }\n start = 0;\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * @param {AbstractType} type\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListToArray = type => {\n type.doc ?? warnPrematureAccess();\n const cs = [];\n let n = type._start;\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i]);\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * @param {AbstractType} type\n * @param {Snapshot} snapshot\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListToArraySnapshot = (type, snapshot) => {\n const cs = [];\n let n = type._start;\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i]);\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * Executes a provided function on once on every element of this YArray.\n *\n * @param {AbstractType} type\n * @param {function(any,number,any):void} f A function to execute on every element of this YArray.\n *\n * @private\n * @function\n */\nconst typeListForEach = (type, f) => {\n let index = 0;\n let n = type._start;\n type.doc ?? warnPrematureAccess();\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type);\n }\n }\n n = n.right;\n }\n};\n\n/**\n * @template C,R\n * @param {AbstractType} type\n * @param {function(C,number,AbstractType):R} f\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListMap = (type, f) => {\n /**\n * @type {Array}\n */\n const result = [];\n typeListForEach(type, (c, i) => {\n result.push(f(c, i, type));\n });\n return result\n};\n\n/**\n * @param {AbstractType} type\n * @return {IterableIterator}\n *\n * @private\n * @function\n */\nconst typeListCreateIterator = type => {\n let n = type._start;\n /**\n * @type {Array|null}\n */\n let currentContent = null;\n let currentContentIndex = 0;\n return {\n [Symbol.iterator] () {\n return this\n },\n next: () => {\n // find some content\n if (currentContent === null) {\n while (n !== null && n.deleted) {\n n = n.right;\n }\n // check if we reached the end, no need to check currentContent, because it does not exist\n if (n === null) {\n return {\n done: true,\n value: undefined\n }\n }\n // we found n, so we can set currentContent\n currentContent = n.content.getContent();\n currentContentIndex = 0;\n n = n.right; // we used the content of n, now iterate to next\n }\n const value = currentContent[currentContentIndex++];\n // check if we need to empty currentContent\n if (currentContent.length <= currentContentIndex) {\n currentContent = null;\n }\n return {\n done: false,\n value\n }\n }\n }\n};\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @return {any}\n *\n * @private\n * @function\n */\nconst typeListGet = (type, index) => {\n type.doc ?? warnPrematureAccess();\n const marker = findMarker(type, index);\n let n = type._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n return n.content.getContent()[index]\n }\n index -= n.length;\n }\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Item?} referenceItem\n * @param {Array|Array|boolean|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListInsertGenericsAfter = (transaction, parent, referenceItem, content) => {\n let left = referenceItem;\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n const store = doc.store;\n const right = referenceItem === null ? parent._start : referenceItem.right;\n /**\n * @type {Array|number|null>}\n */\n let jsonContent = [];\n const packJsonContent = () => {\n if (jsonContent.length > 0) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentAny(jsonContent));\n left.integrate(transaction, 0);\n jsonContent = [];\n }\n };\n content.forEach(c => {\n if (c === null) {\n jsonContent.push(c);\n } else {\n switch (c.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n jsonContent.push(c);\n break\n default:\n packJsonContent();\n switch (c.constructor) {\n case Uint8Array:\n case ArrayBuffer:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentBinary(new Uint8Array(/** @type {Uint8Array} */ (c))));\n left.integrate(transaction, 0);\n break\n case Doc:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentDoc(/** @type {Doc} */ (c)));\n left.integrate(transaction, 0);\n break\n default:\n if (c instanceof AbstractType) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentType(c));\n left.integrate(transaction, 0);\n } else {\n throw new Error('Unexpected content type in insert operation')\n }\n }\n }\n }\n });\n packJsonContent();\n};\n\nconst lengthExceeded = () => error.create('Length exceeded!');\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListInsertGenerics = (transaction, parent, index, content) => {\n if (index > parent._length) {\n throw lengthExceeded()\n }\n if (index === 0) {\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, index, content.length);\n }\n return typeListInsertGenericsAfter(transaction, parent, null, content)\n }\n const startIndex = index;\n const marker = findMarker(parent, index);\n let n = parent._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n // we need to iterate one to the left so that the algorithm works\n if (index === 0) {\n // @todo refactor this as it actually doesn't consider formats\n n = n.prev; // important! get the left undeleted item so that we can actually decrease index\n index += (n && n.countable && !n.deleted) ? n.length : 0;\n }\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index <= n.length) {\n if (index < n.length) {\n // insert in-between\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index));\n }\n break\n }\n index -= n.length;\n }\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, content.length);\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n};\n\n/**\n * Pushing content is special as we generally want to push after the last item. So we don't have to update\n * the serach marker.\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListPushGenerics = (transaction, parent, content) => {\n // Use the marker with the highest index and iterate to the right.\n const marker = (parent._searchMarker || []).reduce((maxMarker, currMarker) => currMarker.index > maxMarker.index ? currMarker : maxMarker, { index: 0, p: parent._start });\n let n = marker.p;\n if (n) {\n while (n.right) {\n n = n.right;\n }\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {number} length\n *\n * @private\n * @function\n */\nconst typeListDelete = (transaction, parent, index, length) => {\n if (length === 0) { return }\n const startIndex = index;\n const startLength = length;\n const marker = findMarker(parent, index);\n let n = parent._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n }\n // compute the first item to be deleted\n for (; n !== null && index > 0; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index));\n }\n index -= n.length;\n }\n }\n // delete all items until done\n while (length > 0 && n !== null) {\n if (!n.deleted) {\n if (length < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + length));\n }\n n.delete(transaction);\n length -= n.length;\n }\n n = n.right;\n }\n if (length > 0) {\n throw lengthExceeded()\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, -startLength + length /* in case we remove the above exception */);\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n *\n * @private\n * @function\n */\nconst typeMapDelete = (transaction, parent, key) => {\n const c = parent._map.get(key);\n if (c !== undefined) {\n c.delete(transaction);\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Object|number|null|Array|string|Uint8Array|AbstractType} value\n *\n * @private\n * @function\n */\nconst typeMapSet = (transaction, parent, key, value) => {\n const left = parent._map.get(key) || null;\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n let content;\n if (value == null) {\n content = new ContentAny([value]);\n } else {\n switch (value.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n content = new ContentAny([value]);\n break\n case Uint8Array:\n content = new ContentBinary(/** @type {Uint8Array} */ (value));\n break\n case Doc:\n content = new ContentDoc(/** @type {Doc} */ (value));\n break\n default:\n if (value instanceof AbstractType) {\n content = new ContentType(value);\n } else {\n throw new Error('Unexpected content type')\n }\n }\n }\n new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, null, null, parent, key, content).integrate(transaction, 0);\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nconst typeMapGet = (parent, key) => {\n parent.doc ?? warnPrematureAccess();\n const val = parent._map.get(key);\n return val !== undefined && !val.deleted ? val.content.getContent()[val.length - 1] : undefined\n};\n\n/**\n * @param {AbstractType} parent\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nconst typeMapGetAll = (parent) => {\n /**\n * @type {Object}\n */\n const res = {};\n parent.doc ?? warnPrematureAccess();\n parent._map.forEach((value, key) => {\n if (!value.deleted) {\n res[key] = value.content.getContent()[value.length - 1];\n }\n });\n return res\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {boolean}\n *\n * @private\n * @function\n */\nconst typeMapHas = (parent, key) => {\n parent.doc ?? warnPrematureAccess();\n const val = parent._map.get(key);\n return val !== undefined && !val.deleted\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nconst typeMapGetSnapshot = (parent, key, snapshot) => {\n let v = parent._map.get(key) || null;\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left;\n }\n return v !== null && isVisible(v, snapshot) ? v.content.getContent()[v.length - 1] : undefined\n};\n\n/**\n * @param {AbstractType} parent\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nconst typeMapGetAllSnapshot = (parent, snapshot) => {\n /**\n * @type {Object}\n */\n const res = {};\n parent._map.forEach((value, key) => {\n /**\n * @type {Item|null}\n */\n let v = value;\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left;\n }\n if (v !== null && isVisible(v, snapshot)) {\n res[key] = v.content.getContent()[v.length - 1];\n }\n });\n return res\n};\n\n/**\n * @param {AbstractType & { _map: Map }} type\n * @return {IterableIterator>}\n *\n * @private\n * @function\n */\nconst createMapIterator = type => {\n type.doc ?? warnPrematureAccess();\n return iterator.iteratorFilter(type._map.entries(), /** @param {any} entry */ entry => !entry[1].deleted)\n};\n\n/**\n * @module YArray\n */\n\n\n/**\n * Event that describes the changes on a YArray\n * @template T\n * @extends YEvent>\n */\nclass YArrayEvent extends YEvent {}\n\n/**\n * A shared Array implementation.\n * @template T\n * @extends AbstractType>\n * @implements {Iterable}\n */\nclass YArray extends AbstractType {\n constructor () {\n super();\n /**\n * @type {Array?}\n * @private\n */\n this._prelimContent = [];\n /**\n * @type {Array}\n */\n this._searchMarker = [];\n }\n\n /**\n * Construct a new YArray containing the specified items.\n * @template {Object|Array|number|null|string|Uint8Array} T\n * @param {Array} items\n * @return {YArray}\n */\n static from (items) {\n /**\n * @type {YArray}\n */\n const a = new YArray();\n a.push(items);\n return a\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n this.insert(0, /** @type {Array} */ (this._prelimContent));\n this._prelimContent = null;\n }\n\n /**\n * @return {YArray}\n */\n _copy () {\n return new YArray()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YArray}\n */\n clone () {\n /**\n * @type {YArray}\n */\n const arr = new YArray();\n arr.insert(0, this.toArray().map(el =>\n el instanceof AbstractType ? /** @type {typeof el} */ (el.clone()) : el\n ));\n return arr\n }\n\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._length\n }\n\n /**\n * Creates YArrayEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs);\n callTypeObservers(this, transaction, new YArrayEvent(this, transaction));\n }\n\n /**\n * Inserts new content at an index.\n *\n * Important: This function expects an array of content. Not just a content\n * object. The reason for this \"weirdness\" is that inserting several elements\n * is very efficient when it is done as a single operation.\n *\n * @example\n * // Insert character 'a' at position 0\n * yarray.insert(0, ['a'])\n * // Insert numbers 1, 2 at position 1\n * yarray.insert(1, [1, 2])\n *\n * @param {number} index The index to insert content at.\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, /** @type {any} */ (content));\n });\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, 0, ...content);\n }\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n *\n * @todo Use the following implementation in all types.\n */\n push (content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListPushGenerics(transaction, this, /** @type {any} */ (content));\n });\n } else {\n /** @type {Array} */ (this._prelimContent).push(...content);\n }\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content);\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} length The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length);\n });\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, length);\n }\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {T}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Returns a portion of this YArray into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Array}\n */\n toJSON () {\n return this.map(c => c instanceof AbstractType ? c.toJSON() : c)\n }\n\n /**\n * Returns an Array with the result of calling a provided function on every\n * element of this YArray.\n *\n * @template M\n * @param {function(T,number,YArray):M} f Function that produces an element of the new Array\n * @return {Array} A new array with each element being the result of the\n * callback function\n */\n map (f) {\n return typeListMap(this, /** @type {any} */ (f))\n }\n\n /**\n * Executes a provided function once on every element of this YArray.\n *\n * @param {function(T,number,YArray):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f);\n }\n\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return typeListCreateIterator(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YArrayRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nconst readYArray = _decoder => new YArray();\n\n/**\n * @module YMap\n */\n\n\n/**\n * @template T\n * @extends YEvent>\n * Event that describes the changes on a YMap.\n */\nclass YMapEvent extends YEvent {\n /**\n * @param {YMap} ymap The YArray that changed.\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed.\n */\n constructor (ymap, transaction, subs) {\n super(ymap, transaction);\n this.keysChanged = subs;\n }\n}\n\n/**\n * @template MapType\n * A shared Map implementation.\n *\n * @extends AbstractType>\n * @implements {Iterable<[string, MapType]>}\n */\nclass YMap extends AbstractType {\n /**\n *\n * @param {Iterable=} entries - an optional iterable to initialize the YMap\n */\n constructor (entries) {\n super();\n /**\n * @type {Map?}\n * @private\n */\n this._prelimContent = null;\n\n if (entries === undefined) {\n this._prelimContent = new Map();\n } else {\n this._prelimContent = new Map(entries);\n }\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;/** @type {Map} */ (this._prelimContent).forEach((value, key) => {\n this.set(key, value);\n });\n this._prelimContent = null;\n }\n\n /**\n * @return {YMap}\n */\n _copy () {\n return new YMap()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YMap}\n */\n clone () {\n /**\n * @type {YMap}\n */\n const map = new YMap();\n this.forEach((value, key) => {\n map.set(key, value instanceof AbstractType ? /** @type {typeof value} */ (value.clone()) : value);\n });\n return map\n }\n\n /**\n * Creates YMapEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YMapEvent(this, transaction, parentSubs));\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Object}\n */\n toJSON () {\n this.doc ?? warnPrematureAccess();\n /**\n * @type {Object}\n */\n const map = {};\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n const v = item.content.getContent()[item.length - 1];\n map[key] = v instanceof AbstractType ? v.toJSON() : v;\n }\n });\n return map\n }\n\n /**\n * Returns the size of the YMap (count of key/value pairs)\n *\n * @return {number}\n */\n get size () {\n return [...createMapIterator(this)].length\n }\n\n /**\n * Returns the keys for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n keys () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[0])\n }\n\n /**\n * Returns the values for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n values () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[1].content.getContent()[v[1].length - 1])\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n entries () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => /** @type {any} */ ([v[0], v[1].content.getContent()[v[1].length - 1]]))\n }\n\n /**\n * Executes a provided function on once on every key-value pair.\n *\n * @param {function(MapType,string,YMap):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n this.doc ?? warnPrematureAccess();\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n f(item.content.getContent()[item.length - 1], key, this);\n }\n });\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n [Symbol.iterator] () {\n return this.entries()\n }\n\n /**\n * Remove a specified element from this YMap.\n *\n * @param {string} key The key of the element to remove.\n */\n delete (key) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, key);\n });\n } else {\n /** @type {Map} */ (this._prelimContent).delete(key);\n }\n }\n\n /**\n * Adds or updates an element with a specified key and value.\n * @template {MapType} VAL\n *\n * @param {string} key The key of the element to add to this YMap\n * @param {VAL} value The value of the element to add\n * @return {VAL}\n */\n set (key, value) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, key, /** @type {any} */ (value));\n });\n } else {\n /** @type {Map} */ (this._prelimContent).set(key, value);\n }\n return value\n }\n\n /**\n * Returns a specified element from this YMap.\n *\n * @param {string} key\n * @return {MapType|undefined}\n */\n get (key) {\n return /** @type {any} */ (typeMapGet(this, key))\n }\n\n /**\n * Returns a boolean indicating whether the specified key exists or not.\n *\n * @param {string} key The key to test.\n * @return {boolean}\n */\n has (key) {\n return typeMapHas(this, key)\n }\n\n /**\n * Removes all elements from this YMap.\n */\n clear () {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n this.forEach(function (_value, key, map) {\n typeMapDelete(transaction, map, key);\n });\n });\n } else {\n /** @type {Map} */ (this._prelimContent).clear();\n }\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YMapRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nconst readYMap = _decoder => new YMap();\n\n/**\n * @module YText\n */\n\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst equalAttrs = (a, b) => a === b || (typeof a === 'object' && typeof b === 'object' && a && b && object.equalFlat(a, b));\n\nclass ItemTextListPosition {\n /**\n * @param {Item|null} left\n * @param {Item|null} right\n * @param {number} index\n * @param {Map} currentAttributes\n */\n constructor (left, right, index, currentAttributes) {\n this.left = left;\n this.right = right;\n this.index = index;\n this.currentAttributes = currentAttributes;\n }\n\n /**\n * Only call this if you know that this.right is defined\n */\n forward () {\n if (this.right === null) {\n error.unexpectedCase();\n }\n switch (this.right.content.constructor) {\n case ContentFormat:\n if (!this.right.deleted) {\n updateCurrentAttributes(this.currentAttributes, /** @type {ContentFormat} */ (this.right.content));\n }\n break\n default:\n if (!this.right.deleted) {\n this.index += this.right.length;\n }\n break\n }\n this.left = this.right;\n this.right = this.right.right;\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} pos\n * @param {number} count steps to move forward\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findNextPosition = (transaction, pos, count) => {\n while (pos.right !== null && count > 0) {\n switch (pos.right.content.constructor) {\n case ContentFormat:\n if (!pos.right.deleted) {\n updateCurrentAttributes(pos.currentAttributes, /** @type {ContentFormat} */ (pos.right.content));\n }\n break\n default:\n if (!pos.right.deleted) {\n if (count < pos.right.length) {\n // split right\n getItemCleanStart(transaction, createID(pos.right.id.client, pos.right.id.clock + count));\n }\n pos.index += pos.right.length;\n count -= pos.right.length;\n }\n break\n }\n pos.left = pos.right;\n pos.right = pos.right.right;\n // pos.forward() - we don't forward because that would halve the performance because we already do the checks above\n }\n return pos\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {boolean} useSearchMarker\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findPosition = (transaction, parent, index, useSearchMarker) => {\n const currentAttributes = new Map();\n const marker = useSearchMarker ? findMarker(parent, index) : null;\n if (marker) {\n const pos = new ItemTextListPosition(marker.p.left, marker.p, marker.index, currentAttributes);\n return findNextPosition(transaction, pos, index - marker.index)\n } else {\n const pos = new ItemTextListPosition(null, parent._start, 0, currentAttributes);\n return findNextPosition(transaction, pos, index)\n }\n};\n\n/**\n * Negate applied formats\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Map} negatedAttributes\n *\n * @private\n * @function\n */\nconst insertNegatedAttributes = (transaction, parent, currPos, negatedAttributes) => {\n // check if we really need to remove attributes\n while (\n currPos.right !== null && (\n currPos.right.deleted === true || (\n currPos.right.content.constructor === ContentFormat &&\n equalAttrs(negatedAttributes.get(/** @type {ContentFormat} */ (currPos.right.content).key), /** @type {ContentFormat} */ (currPos.right.content).value)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n negatedAttributes.delete(/** @type {ContentFormat} */ (currPos.right.content).key);\n }\n currPos.forward();\n }\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n negatedAttributes.forEach((val, key) => {\n const left = currPos.left;\n const right = currPos.right;\n const nextFormat = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val));\n nextFormat.integrate(transaction, 0);\n currPos.right = nextFormat;\n currPos.forward();\n });\n};\n\n/**\n * @param {Map} currentAttributes\n * @param {ContentFormat} format\n *\n * @private\n * @function\n */\nconst updateCurrentAttributes = (currentAttributes, format) => {\n const { key, value } = format;\n if (value === null) {\n currentAttributes.delete(key);\n } else {\n currentAttributes.set(key, value);\n }\n};\n\n/**\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst minimizeAttributeChanges = (currPos, attributes) => {\n // go right while attributes[right.key] === right.value (or right is deleted)\n while (true) {\n if (currPos.right === null) {\n break\n } else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] ?? null, /** @type {ContentFormat} */ (currPos.right.content).value))) ; else {\n break\n }\n currPos.forward();\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n * @return {Map}\n *\n * @private\n * @function\n **/\nconst insertAttributes = (transaction, parent, currPos, attributes) => {\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n const negatedAttributes = new Map();\n // insert format-start items\n for (const key in attributes) {\n const val = attributes[key];\n const currentVal = currPos.currentAttributes.get(key) ?? null;\n if (!equalAttrs(currentVal, val)) {\n // save negated attribute (set null if currentVal undefined)\n negatedAttributes.set(key, currentVal);\n const { left, right } = currPos;\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val));\n currPos.right.integrate(transaction, 0);\n currPos.forward();\n }\n }\n return negatedAttributes\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {string|object|AbstractType} text\n * @param {Object} attributes\n *\n * @private\n * @function\n **/\nconst insertText = (transaction, parent, currPos, text, attributes) => {\n currPos.currentAttributes.forEach((_val, key) => {\n if (attributes[key] === undefined) {\n attributes[key] = null;\n }\n });\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n minimizeAttributeChanges(currPos, attributes);\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes);\n // insert content\n const content = text.constructor === String ? new ContentString(/** @type {string} */ (text)) : (text instanceof AbstractType ? new ContentType(text) : new ContentEmbed(text));\n let { left, right, index } = currPos;\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, content.getLength());\n }\n right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, content);\n right.integrate(transaction, 0);\n currPos.right = right;\n currPos.index = index;\n currPos.forward();\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes);\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst formatText = (transaction, parent, currPos, length, attributes) => {\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n minimizeAttributeChanges(currPos, attributes);\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes);\n // iterate until first non-format or null is found\n // delete all formats with attributes[format.key] != null\n // also check the attributes after the first non-format as we do not want to insert redundant negated attributes there\n // eslint-disable-next-line no-labels\n iterationLoop: while (\n currPos.right !== null &&\n (length > 0 ||\n (\n negatedAttributes.size > 0 &&\n (currPos.right.deleted || currPos.right.content.constructor === ContentFormat)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n switch (currPos.right.content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (currPos.right.content);\n const attr = attributes[key];\n if (attr !== undefined) {\n if (equalAttrs(attr, value)) {\n negatedAttributes.delete(key);\n } else {\n if (length === 0) {\n // no need to further extend negatedAttributes\n // eslint-disable-next-line no-labels\n break iterationLoop\n }\n negatedAttributes.set(key, value);\n }\n currPos.right.delete(transaction);\n } else {\n currPos.currentAttributes.set(key, value);\n }\n break\n }\n default:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length));\n }\n length -= currPos.right.length;\n break\n }\n }\n currPos.forward();\n }\n // Quill just assumes that the editor starts with a newline and that it always\n // ends with a newline. We only insert that newline when a new newline is\n // inserted - i.e when length is bigger than type.length\n if (length > 0) {\n let newlines = '';\n for (; length > 0; length--) {\n newlines += '\\n';\n }\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), currPos.left, currPos.left && currPos.left.lastId, currPos.right, currPos.right && currPos.right.id, parent, null, new ContentString(newlines));\n currPos.right.integrate(transaction, 0);\n currPos.forward();\n }\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes);\n};\n\n/**\n * Call this function after string content has been deleted in order to\n * clean up formatting Items.\n *\n * @param {Transaction} transaction\n * @param {Item} start\n * @param {Item|null} curr exclusive end, automatically iterates to the next Content Item\n * @param {Map} startAttributes\n * @param {Map} currAttributes\n * @return {number} The amount of formatting Items deleted.\n *\n * @function\n */\nconst cleanupFormattingGap = (transaction, start, curr, startAttributes, currAttributes) => {\n /**\n * @type {Item|null}\n */\n let end = start;\n /**\n * @type {Map}\n */\n const endFormats = map.create();\n while (end && (!end.countable || end.deleted)) {\n if (!end.deleted && end.content.constructor === ContentFormat) {\n const cf = /** @type {ContentFormat} */ (end.content);\n endFormats.set(cf.key, cf);\n }\n end = end.right;\n }\n let cleanups = 0;\n let reachedCurr = false;\n while (start !== end) {\n if (curr === start) {\n reachedCurr = true;\n }\n if (!start.deleted) {\n const content = start.content;\n switch (content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (content);\n const startAttrValue = startAttributes.get(key) ?? null;\n if (endFormats.get(key) !== content || startAttrValue === value) {\n // Either this format is overwritten or it is not necessary because the attribute already existed.\n start.delete(transaction);\n cleanups++;\n if (!reachedCurr && (currAttributes.get(key) ?? null) === value && startAttrValue !== value) {\n if (startAttrValue === null) {\n currAttributes.delete(key);\n } else {\n currAttributes.set(key, startAttrValue);\n }\n }\n }\n if (!reachedCurr && !start.deleted) {\n updateCurrentAttributes(currAttributes, /** @type {ContentFormat} */ (content));\n }\n break\n }\n }\n }\n start = /** @type {Item} */ (start.right);\n }\n return cleanups\n};\n\n/**\n * @param {Transaction} transaction\n * @param {Item | null} item\n */\nconst cleanupContextlessFormattingGap = (transaction, item) => {\n // iterate until item.right is null or content\n while (item && item.right && (item.right.deleted || !item.right.countable)) {\n item = item.right;\n }\n const attrs = new Set();\n // iterate back until a content item is found\n while (item && (item.deleted || !item.countable)) {\n if (!item.deleted && item.content.constructor === ContentFormat) {\n const key = /** @type {ContentFormat} */ (item.content).key;\n if (attrs.has(key)) {\n item.delete(transaction);\n } else {\n attrs.add(key);\n }\n }\n item = item.left;\n }\n};\n\n/**\n * This function is experimental and subject to change / be removed.\n *\n * Ideally, we don't need this function at all. Formatting attributes should be cleaned up\n * automatically after each change. This function iterates twice over the complete YText type\n * and removes unnecessary formatting attributes. This is also helpful for testing.\n *\n * This function won't be exported anymore as soon as there is confidence that the YText type works as intended.\n *\n * @param {YText} type\n * @return {number} How many formatting attributes have been cleaned up.\n */\nconst cleanupYTextFormatting = type => {\n let res = 0;\n transact(/** @type {Doc} */ (type.doc), transaction => {\n let start = /** @type {Item} */ (type._start);\n let end = type._start;\n let startAttributes = map.create();\n const currentAttributes = map.copy(startAttributes);\n while (end) {\n if (end.deleted === false) {\n switch (end.content.constructor) {\n case ContentFormat:\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (end.content));\n break\n default:\n res += cleanupFormattingGap(transaction, start, end, startAttributes, currentAttributes);\n startAttributes = map.copy(currentAttributes);\n start = end;\n break\n }\n }\n end = end.right;\n }\n });\n return res\n};\n\n/**\n * This will be called by the transction once the event handlers are called to potentially cleanup\n * formatting attributes.\n *\n * @param {Transaction} transaction\n */\nconst cleanupYTextAfterTransaction = transaction => {\n /**\n * @type {Set}\n */\n const needFullCleanup = new Set();\n // check if another formatting item was inserted\n const doc = transaction.doc;\n for (const [client, afterClock] of transaction.afterState.entries()) {\n const clock = transaction.beforeState.get(client) || 0;\n if (afterClock === clock) {\n continue\n }\n iterateStructs(transaction, /** @type {Array} */ (doc.store.clients.get(client)), clock, afterClock, item => {\n if (\n !item.deleted && /** @type {Item} */ (item).content.constructor === ContentFormat && item.constructor !== GC\n ) {\n needFullCleanup.add(/** @type {any} */ (item).parent);\n }\n });\n }\n // cleanup in a new transaction\n transact(doc, (t) => {\n iterateDeletedStructs(transaction, transaction.deleteSet, item => {\n if (item instanceof GC || !(/** @type {YText} */ (item.parent)._hasFormatting) || needFullCleanup.has(/** @type {YText} */ (item.parent))) {\n return\n }\n const parent = /** @type {YText} */ (item.parent);\n if (item.content.constructor === ContentFormat) {\n needFullCleanup.add(parent);\n } else {\n // If no formatting attribute was inserted or deleted, we can make due with contextless\n // formatting cleanups.\n // Contextless: it is not necessary to compute currentAttributes for the affected position.\n cleanupContextlessFormattingGap(t, item);\n }\n });\n // If a formatting item was inserted, we simply clean the whole type.\n // We need to compute currentAttributes for the current position anyway.\n for (const yText of needFullCleanup) {\n cleanupYTextFormatting(yText);\n }\n });\n};\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst deleteText = (transaction, currPos, length) => {\n const startLength = length;\n const startAttrs = map.copy(currPos.currentAttributes);\n const start = currPos.right;\n while (length > 0 && currPos.right !== null) {\n if (currPos.right.deleted === false) {\n switch (currPos.right.content.constructor) {\n case ContentType:\n case ContentEmbed:\n case ContentString:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length));\n }\n length -= currPos.right.length;\n currPos.right.delete(transaction);\n break\n }\n }\n currPos.forward();\n }\n if (start) {\n cleanupFormattingGap(transaction, start, currPos.right, startAttrs, currPos.currentAttributes);\n }\n const parent = /** @type {AbstractType} */ (/** @type {Item} */ (currPos.left || currPos.right).parent);\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, -startLength + length);\n }\n return currPos\n};\n\n/**\n * The Quill Delta format represents changes on a text document with\n * formatting information. For mor information visit {@link https://quilljs.com/docs/delta/|Quill Delta}\n *\n * @example\n * {\n * ops: [\n * { insert: 'Gandalf', attributes: { bold: true } },\n * { insert: ' the ' },\n * { insert: 'Grey', attributes: { color: '#cccccc' } }\n * ]\n * }\n *\n */\n\n/**\n * Attributes that can be assigned to a selection of text.\n *\n * @example\n * {\n * bold: true,\n * font-size: '40px'\n * }\n *\n * @typedef {Object} TextAttributes\n */\n\n/**\n * @extends YEvent\n * Event that describes the changes on a YText type.\n */\nclass YTextEvent extends YEvent {\n /**\n * @param {YText} ytext\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed\n */\n constructor (ytext, transaction, subs) {\n super(ytext, transaction);\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false;\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.keysChanged = new Set();\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true;\n } else {\n this.keysChanged.add(sub);\n }\n });\n }\n\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n if (this._changes === null) {\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string|AbstractType|object, delete?:number, retain?:number}>}}\n */\n const changes = {\n keys: this.keys,\n delta: this.delta,\n added: new Set(),\n deleted: new Set()\n };\n this._changes = changes;\n }\n return /** @type {any} */ (this._changes)\n }\n\n /**\n * Compute the changes in the delta format.\n * A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.\n *\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n *\n * @public\n */\n get delta () {\n if (this._delta === null) {\n const y = /** @type {Doc} */ (this.target.doc);\n /**\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n */\n const delta = [];\n transact(y, transaction => {\n const currentAttributes = new Map(); // saves all current attributes for insert\n const oldAttributes = new Map();\n let item = this.target._start;\n /**\n * @type {string?}\n */\n let action = null;\n /**\n * @type {Object}\n */\n const attributes = {}; // counts added or removed new attributes for retain\n /**\n * @type {string|object}\n */\n let insert = '';\n let retain = 0;\n let deleteLen = 0;\n const addOp = () => {\n if (action !== null) {\n /**\n * @type {any}\n */\n let op = null;\n switch (action) {\n case 'delete':\n if (deleteLen > 0) {\n op = { delete: deleteLen };\n }\n deleteLen = 0;\n break\n case 'insert':\n if (typeof insert === 'object' || insert.length > 0) {\n op = { insert };\n if (currentAttributes.size > 0) {\n op.attributes = {};\n currentAttributes.forEach((value, key) => {\n if (value !== null) {\n op.attributes[key] = value;\n }\n });\n }\n }\n insert = '';\n break\n case 'retain':\n if (retain > 0) {\n op = { retain };\n if (!object.isEmpty(attributes)) {\n op.attributes = object.assign({}, attributes);\n }\n }\n retain = 0;\n break\n }\n if (op) delta.push(op);\n action = null;\n }\n };\n while (item !== null) {\n switch (item.content.constructor) {\n case ContentType:\n case ContentEmbed:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n addOp();\n action = 'insert';\n insert = item.content.getContent()[0];\n addOp();\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp();\n action = 'delete';\n }\n deleteLen += 1;\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp();\n action = 'retain';\n }\n retain += 1;\n }\n break\n case ContentString:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n if (action !== 'insert') {\n addOp();\n action = 'insert';\n }\n insert += /** @type {ContentString} */ (item.content).str;\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp();\n action = 'delete';\n }\n deleteLen += item.length;\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp();\n action = 'retain';\n }\n retain += item.length;\n }\n break\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (item.content);\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n const curVal = currentAttributes.get(key) ?? null;\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp();\n }\n if (equalAttrs(value, (oldAttributes.get(key) ?? null))) {\n delete attributes[key];\n } else {\n attributes[key] = value;\n }\n } else if (value !== null) {\n item.delete(transaction);\n }\n }\n } else if (this.deletes(item)) {\n oldAttributes.set(key, value);\n const curVal = currentAttributes.get(key) ?? null;\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp();\n }\n attributes[key] = curVal;\n }\n } else if (!item.deleted) {\n oldAttributes.set(key, value);\n const attr = attributes[key];\n if (attr !== undefined) {\n if (!equalAttrs(attr, value)) {\n if (action === 'retain') {\n addOp();\n }\n if (value === null) {\n delete attributes[key];\n } else {\n attributes[key] = value;\n }\n } else if (attr !== null) { // this will be cleaned up automatically by the contextless cleanup function\n item.delete(transaction);\n }\n }\n }\n if (!item.deleted) {\n if (action === 'insert') {\n addOp();\n }\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (item.content));\n }\n break\n }\n }\n item = item.right;\n }\n addOp();\n while (delta.length > 0) {\n const lastOp = delta[delta.length - 1];\n if (lastOp.retain !== undefined && lastOp.attributes === undefined) {\n // retain delta's if they don't assign attributes\n delta.pop();\n } else {\n break\n }\n }\n });\n this._delta = delta;\n }\n return /** @type {any} */ (this._delta)\n }\n}\n\n/**\n * Type that represents text with formatting information.\n *\n * This type replaces y-richtext as this implementation is able to handle\n * block formats (format information on a paragraph), embeds (complex elements\n * like pictures and videos), and text formats (**bold**, *italic*).\n *\n * @extends AbstractType\n */\nclass YText extends AbstractType {\n /**\n * @param {String} [string] The initial value of the YText.\n */\n constructor (string) {\n super();\n /**\n * Array of pending operations on this type\n * @type {Array?}\n */\n this._pending = string !== undefined ? [() => this.insert(0, string)] : [];\n /**\n * @type {Array|null}\n */\n this._searchMarker = [];\n /**\n * Whether this YText contains formatting attributes.\n * This flag is updated when a formatting item is integrated (see ContentFormat.integrate)\n */\n this._hasFormatting = false;\n }\n\n /**\n * Number of characters of this text type.\n *\n * @type {number}\n */\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._length\n }\n\n /**\n * @param {Doc} y\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n try {\n /** @type {Array} */ (this._pending).forEach(f => f());\n } catch (e) {\n console.error(e);\n }\n this._pending = null;\n }\n\n _copy () {\n return new YText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YText}\n */\n clone () {\n const text = new YText();\n text.applyDelta(this.toDelta());\n return text\n }\n\n /**\n * Creates YTextEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs);\n const event = new YTextEvent(this, transaction, parentSubs);\n callTypeObservers(this, transaction, event);\n // If a remote change happened, we try to cleanup potential formatting duplicates.\n if (!transaction.local && this._hasFormatting) {\n transaction._needFormattingCleanup = true;\n }\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @public\n */\n toString () {\n this.doc ?? warnPrematureAccess();\n let str = '';\n /**\n * @type {Item|null}\n */\n let n = this._start;\n while (n !== null) {\n if (!n.deleted && n.countable && n.content.constructor === ContentString) {\n str += /** @type {ContentString} */ (n.content).str;\n }\n n = n.right;\n }\n return str\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @return {string}\n * @public\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Apply a {@link Delta} on this shared YText type.\n *\n * @param {any} delta The changes to apply on this element.\n * @param {object} opts\n * @param {boolean} [opts.sanitize] Sanitize input delta. Removes ending newlines if set to true.\n *\n *\n * @public\n */\n applyDelta (delta, { sanitize = true } = {}) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const currPos = new ItemTextListPosition(null, this._start, 0, new Map());\n for (let i = 0; i < delta.length; i++) {\n const op = delta[i];\n if (op.insert !== undefined) {\n // Quill assumes that the content starts with an empty paragraph.\n // Yjs/Y.Text assumes that it starts empty. We always hide that\n // there is a newline at the end of the content.\n // If we omit this step, clients will see a different number of\n // paragraphs, but nothing bad will happen.\n const ins = (!sanitize && typeof op.insert === 'string' && i === delta.length - 1 && currPos.right === null && op.insert.slice(-1) === '\\n') ? op.insert.slice(0, -1) : op.insert;\n if (typeof ins !== 'string' || ins.length > 0) {\n insertText(transaction, this, currPos, ins, op.attributes || {});\n }\n } else if (op.retain !== undefined) {\n formatText(transaction, this, currPos, op.retain, op.attributes || {});\n } else if (op.delete !== undefined) {\n deleteText(transaction, currPos, op.delete);\n }\n }\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.applyDelta(delta));\n }\n }\n\n /**\n * Returns the Delta representation of this YText type.\n *\n * @param {Snapshot} [snapshot]\n * @param {Snapshot} [prevSnapshot]\n * @param {function('removed' | 'added', ID):any} [computeYChange]\n * @return {any} The Delta representation of this type.\n *\n * @public\n */\n toDelta (snapshot, prevSnapshot, computeYChange) {\n this.doc ?? warnPrematureAccess();\n /**\n * @type{Array}\n */\n const ops = [];\n const currentAttributes = new Map();\n const doc = /** @type {Doc} */ (this.doc);\n let str = '';\n let n = this._start;\n function packStr () {\n if (str.length > 0) {\n // pack str with attributes to ops\n /**\n * @type {Object}\n */\n const attributes = {};\n let addAttributes = false;\n currentAttributes.forEach((value, key) => {\n addAttributes = true;\n attributes[key] = value;\n });\n /**\n * @type {Object}\n */\n const op = { insert: str };\n if (addAttributes) {\n op.attributes = attributes;\n }\n ops.push(op);\n str = '';\n }\n }\n const computeDelta = () => {\n while (n !== null) {\n if (isVisible(n, snapshot) || (prevSnapshot !== undefined && isVisible(n, prevSnapshot))) {\n switch (n.content.constructor) {\n case ContentString: {\n const cur = currentAttributes.get('ychange');\n if (snapshot !== undefined && !isVisible(n, snapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'removed') {\n packStr();\n currentAttributes.set('ychange', computeYChange ? computeYChange('removed', n.id) : { type: 'removed' });\n }\n } else if (prevSnapshot !== undefined && !isVisible(n, prevSnapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'added') {\n packStr();\n currentAttributes.set('ychange', computeYChange ? computeYChange('added', n.id) : { type: 'added' });\n }\n } else if (cur !== undefined) {\n packStr();\n currentAttributes.delete('ychange');\n }\n str += /** @type {ContentString} */ (n.content).str;\n break\n }\n case ContentType:\n case ContentEmbed: {\n packStr();\n /**\n * @type {Object}\n */\n const op = {\n insert: n.content.getContent()[0]\n };\n if (currentAttributes.size > 0) {\n const attrs = /** @type {Object} */ ({});\n op.attributes = attrs;\n currentAttributes.forEach((value, key) => {\n attrs[key] = value;\n });\n }\n ops.push(op);\n break\n }\n case ContentFormat:\n if (isVisible(n, snapshot)) {\n packStr();\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (n.content));\n }\n break\n }\n }\n n = n.right;\n }\n packStr();\n };\n if (snapshot || prevSnapshot) {\n // snapshots are merged again after the transaction, so we need to keep the\n // transaction alive until we are done\n transact(doc, transaction => {\n if (snapshot) {\n splitSnapshotAffectedStructs(transaction, snapshot);\n }\n if (prevSnapshot) {\n splitSnapshotAffectedStructs(transaction, prevSnapshot);\n }\n computeDelta();\n }, 'cleanup');\n } else {\n computeDelta();\n }\n return ops\n }\n\n /**\n * Insert text at a given index.\n *\n * @param {number} index The index at which to start inserting.\n * @param {String} text The text to insert at the specified position.\n * @param {TextAttributes} [attributes] Optionally define some formatting\n * information to apply on the inserted\n * Text.\n * @public\n */\n insert (index, text, attributes) {\n if (text.length <= 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes);\n if (!attributes) {\n attributes = {};\n // @ts-ignore\n pos.currentAttributes.forEach((v, k) => { attributes[k] = v; });\n }\n insertText(transaction, this, pos, text, attributes);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insert(index, text, attributes));\n }\n }\n\n /**\n * Inserts an embed at a index.\n *\n * @param {number} index The index to insert the embed at.\n * @param {Object | AbstractType} embed The Object that represents the embed.\n * @param {TextAttributes} [attributes] Attribute information to apply on the\n * embed\n *\n * @public\n */\n insertEmbed (index, embed, attributes) {\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes);\n insertText(transaction, this, pos, embed, attributes || {});\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insertEmbed(index, embed, attributes || {}));\n }\n }\n\n /**\n * Deletes text starting from an index.\n *\n * @param {number} index Index at which to start deleting.\n * @param {number} length The number of characters to remove. Defaults to 1.\n *\n * @public\n */\n delete (index, length) {\n if (length === 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n deleteText(transaction, findPosition(transaction, this, index, true), length);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.delete(index, length));\n }\n }\n\n /**\n * Assigns properties to a range of text.\n *\n * @param {number} index The position where to start formatting.\n * @param {number} length The amount of characters to assign properties to.\n * @param {TextAttributes} attributes Attribute information to apply on the\n * text.\n *\n * @public\n */\n format (index, length, attributes) {\n if (length === 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, false);\n if (pos.right === null) {\n return\n }\n formatText(transaction, this, pos, length, attributes);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.format(index, length, attributes));\n }\n }\n\n /**\n * Removes an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.removeAttribute(attributeName));\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be set.\n * @param {any} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.setAttribute(attributeName, attributeValue));\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that identifies the\n * queried value.\n * @return {any} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @return {Object} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes () {\n return typeMapGetAll(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YTextRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YText}\n *\n * @private\n * @function\n */\nconst readYText = _decoder => new YText();\n\n/**\n * @module YXml\n */\n\n\n/**\n * Define the elements to which a set of CSS queries apply.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors|CSS_Selectors}\n *\n * @example\n * query = '.classSelector'\n * query = 'nodeSelector'\n * query = '#idSelector'\n *\n * @typedef {string} CSS_Selector\n */\n\n/**\n * Dom filter function.\n *\n * @callback domFilter\n * @param {string} nodeName The nodeName of the element\n * @param {Map} attributes The map of attributes.\n * @return {boolean} Whether to include the Dom node in the YXmlElement.\n */\n\n/**\n * Represents a subset of the nodes of a YXmlElement / YXmlFragment and a\n * position within them.\n *\n * Can be created with {@link YXmlFragment#createTreeWalker}\n *\n * @public\n * @implements {Iterable}\n */\nclass YXmlTreeWalker {\n /**\n * @param {YXmlFragment | YXmlElement} root\n * @param {function(AbstractType):boolean} [f]\n */\n constructor (root, f = () => true) {\n this._filter = f;\n this._root = root;\n /**\n * @type {Item}\n */\n this._currentNode = /** @type {Item} */ (root._start);\n this._firstCall = true;\n root.doc ?? warnPrematureAccess();\n }\n\n [Symbol.iterator] () {\n return this\n }\n\n /**\n * Get the next node.\n *\n * @return {IteratorResult} The next node.\n *\n * @public\n */\n next () {\n /**\n * @type {Item|null}\n */\n let n = this._currentNode;\n let type = n && n.content && /** @type {any} */ (n.content).type;\n if (n !== null && (!this._firstCall || n.deleted || !this._filter(type))) { // if first call, we check if we can use the first item\n do {\n type = /** @type {any} */ (n.content).type;\n if (!n.deleted && (type.constructor === YXmlElement || type.constructor === YXmlFragment) && type._start !== null) {\n // walk down in the tree\n n = type._start;\n } else {\n // walk right or up in the tree\n while (n !== null) {\n if (n.right !== null) {\n n = n.right;\n break\n } else if (n.parent === this._root) {\n n = null;\n } else {\n n = /** @type {AbstractType} */ (n.parent)._item;\n }\n }\n }\n } while (n !== null && (n.deleted || !this._filter(/** @type {ContentType} */ (n.content).type)))\n }\n this._firstCall = false;\n if (n === null) {\n // @ts-ignore\n return { value: undefined, done: true }\n }\n this._currentNode = n;\n return { value: /** @type {any} */ (n.content).type, done: false }\n }\n}\n\n/**\n * Represents a list of {@link YXmlElement}.and {@link YXmlText} types.\n * A YxmlFragment is similar to a {@link YXmlElement}, but it does not have a\n * nodeName and it does not have attributes. Though it can be bound to a DOM\n * element - in this case the attributes and the nodeName are not shared.\n *\n * @public\n * @extends AbstractType\n */\nclass YXmlFragment extends AbstractType {\n constructor () {\n super();\n /**\n * @type {Array|null}\n */\n this._prelimContent = [];\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get firstChild () {\n const first = this._first;\n return first ? first.content.getContent()[0] : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n this.insert(0, /** @type {Array} */ (this._prelimContent));\n this._prelimContent = null;\n }\n\n _copy () {\n return new YXmlFragment()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlFragment}\n */\n clone () {\n const el = new YXmlFragment();\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item));\n return el\n }\n\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._prelimContent === null ? this._length : this._prelimContent.length\n }\n\n /**\n * Create a subtree of childNodes.\n *\n * @example\n * const walker = elem.createTreeWalker(dom => dom.nodeName === 'div')\n * for (let node in walker) {\n * // `node` is a div node\n * nop(node)\n * }\n *\n * @param {function(AbstractType):boolean} filter Function that is called on each child element and\n * returns a Boolean indicating whether the child\n * is to be included in the subtree.\n * @return {YXmlTreeWalker} A subtree and a position within it.\n *\n * @public\n */\n createTreeWalker (filter) {\n return new YXmlTreeWalker(this, filter)\n }\n\n /**\n * Returns the first YXmlElement that matches the query.\n * Similar to DOM's {@link querySelector}.\n *\n * Query support:\n * - tagname\n * TODO:\n * - id\n * - attribute\n *\n * @param {CSS_Selector} query The query on the children.\n * @return {YXmlElement|YXmlText|YXmlHook|null} The first element that matches the query or null.\n *\n * @public\n */\n querySelector (query) {\n query = query.toUpperCase();\n // @ts-ignore\n const iterator = new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query);\n const next = iterator.next();\n if (next.done) {\n return null\n } else {\n return next.value\n }\n }\n\n /**\n * Returns all YXmlElements that match the query.\n * Similar to Dom's {@link querySelectorAll}.\n *\n * @todo Does not yet support all queries. Currently only query by tagName.\n *\n * @param {CSS_Selector} query The query on the children\n * @return {Array} The elements that match this query.\n *\n * @public\n */\n querySelectorAll (query) {\n query = query.toUpperCase();\n // @ts-ignore\n return array.from(new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query))\n }\n\n /**\n * Creates YXmlEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YXmlEvent(this, parentSubs, transaction));\n }\n\n /**\n * Get the string representation of all the children of this YXmlFragment.\n *\n * @return {string} The string representation of all children.\n */\n toString () {\n return typeListMap(this, xml => xml.toString()).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const fragment = _document.createDocumentFragment();\n if (binding !== undefined) {\n binding._createAssociation(fragment, this);\n }\n typeListForEach(this, xmlType => {\n fragment.insertBefore(xmlType.toDOM(_document, hooks, binding), null);\n });\n return fragment\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {number} index The index to insert content at\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, content);\n });\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, 0, ...content);\n }\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {null|Item|YXmlElement|YXmlText} ref The index to insert content at\n * @param {Array} content The array of content\n */\n insertAfter (ref, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const refItem = (ref && ref instanceof AbstractType) ? ref._item : ref;\n typeListInsertGenericsAfter(transaction, this, refItem, content);\n });\n } else {\n const pc = /** @type {Array} */ (this._prelimContent);\n const index = ref === null ? 0 : pc.findIndex(el => el === ref) + 1;\n if (index === 0 && ref !== null) {\n throw error.create('Reference item not found')\n }\n pc.splice(index, 0, ...content);\n }\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} [length=1] The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length);\n });\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, length);\n }\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n */\n push (content) {\n this.insert(this.length, content);\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content);\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {YXmlElement|YXmlText}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Returns a portion of this YXmlFragment into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Executes a provided function on once on every child element.\n *\n * @param {function(YXmlElement|YXmlText,number, typeof self):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f);\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlFragmentRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YXmlFragment}\n *\n * @private\n * @function\n */\nconst readYXmlFragment = _decoder => new YXmlFragment();\n\n/**\n * @typedef {Object|number|null|Array|string|Uint8Array|AbstractType} ValueTypes\n */\n\n/**\n * An YXmlElement imitates the behavior of a\n * https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element\n *\n * * An YXmlElement has attributes (key value pairs)\n * * An YXmlElement has childElements that must inherit from YXmlElement\n *\n * @template {{ [key: string]: ValueTypes }} [KV={ [key: string]: string }]\n */\nclass YXmlElement extends YXmlFragment {\n constructor (nodeName = 'UNDEFINED') {\n super();\n this.nodeName = nodeName;\n /**\n * @type {Map|null}\n */\n this._prelimAttrs = new Map();\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;(/** @type {Map} */ (this._prelimAttrs)).forEach((value, key) => {\n this.setAttribute(key, value);\n });\n this._prelimAttrs = null;\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n *\n * @return {YXmlElement}\n */\n _copy () {\n return new YXmlElement(this.nodeName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlElement}\n */\n clone () {\n /**\n * @type {YXmlElement}\n */\n const el = new YXmlElement(this.nodeName);\n const attrs = this.getAttributes();\n object.forEach(attrs, (value, key) => {\n if (typeof value === 'string') {\n el.setAttribute(key, value);\n }\n });\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item));\n return el\n }\n\n /**\n * Returns the XML serialization of this YXmlElement.\n * The attributes are ordered by attribute-name, so you can easily use this\n * method to compare YXmlElements\n *\n * @return {string} The string representation of this type.\n *\n * @public\n */\n toString () {\n const attrs = this.getAttributes();\n const stringBuilder = [];\n const keys = [];\n for (const key in attrs) {\n keys.push(key);\n }\n keys.sort();\n const keysLen = keys.length;\n for (let i = 0; i < keysLen; i++) {\n const key = keys[i];\n stringBuilder.push(key + '=\"' + attrs[key] + '\"');\n }\n const nodeName = this.nodeName.toLocaleLowerCase();\n const attrsString = stringBuilder.length > 0 ? ' ' + stringBuilder.join(' ') : '';\n return `<${nodeName}${attrsString}>${super.toString()}`\n }\n\n /**\n * Removes an attribute from this YXmlElement.\n *\n * @param {string} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName);\n });\n } else {\n /** @type {Map} */ (this._prelimAttrs).delete(attributeName);\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that is to be set.\n * @param {KV[KEY]} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue);\n });\n } else {\n /** @type {Map} */ (this._prelimAttrs).set(attributeName, attributeValue);\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that identifies the\n * queried value.\n * @return {KV[KEY]|undefined} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns whether an attribute exists\n *\n * @param {string} attributeName The attribute name to check for existence.\n * @return {boolean} whether the attribute exists.\n *\n * @public\n */\n hasAttribute (attributeName) {\n return /** @type {any} */ (typeMapHas(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @param {Snapshot} [snapshot]\n * @return {{ [Key in Extract]?: KV[Key]}} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes (snapshot) {\n return /** @type {any} */ (snapshot ? typeMapGetAllSnapshot(this, snapshot) : typeMapGetAll(this))\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const dom = _document.createElement(this.nodeName);\n const attrs = this.getAttributes();\n for (const key in attrs) {\n const value = attrs[key];\n if (typeof value === 'string') {\n dom.setAttribute(key, value);\n }\n }\n typeListForEach(this, yxml => {\n dom.appendChild(yxml.toDOM(_document, hooks, binding));\n });\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlElementRefID);\n encoder.writeKey(this.nodeName);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlElement}\n *\n * @function\n */\nconst readYXmlElement = decoder => new YXmlElement(decoder.readKey());\n\n/**\n * @extends YEvent\n * An Event that describes changes on a YXml Element or Yxml Fragment\n */\nclass YXmlEvent extends YEvent {\n /**\n * @param {YXmlElement|YXmlText|YXmlFragment} target The target on which the event is created.\n * @param {Set} subs The set of changed attributes. `null` is included if the\n * child list changed.\n * @param {Transaction} transaction The transaction instance with wich the\n * change was created.\n */\n constructor (target, subs, transaction) {\n super(target, transaction);\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false;\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.attributesChanged = new Set();\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true;\n } else {\n this.attributesChanged.add(sub);\n }\n });\n }\n}\n\n/**\n * You can manage binding to a custom type with YXmlHook.\n *\n * @extends {YMap}\n */\nclass YXmlHook extends YMap {\n /**\n * @param {string} hookName nodeName of the Dom Node.\n */\n constructor (hookName) {\n super();\n /**\n * @type {string}\n */\n this.hookName = hookName;\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n */\n _copy () {\n return new YXmlHook(this.hookName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlHook}\n */\n clone () {\n const el = new YXmlHook(this.hookName);\n this.forEach((value, key) => {\n el.set(key, value);\n });\n return el\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object.} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type\n * @return {Element} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const hook = hooks[this.hookName];\n let dom;\n if (hook !== undefined) {\n dom = hook.createDom(this);\n } else {\n dom = document.createElement(this.hookName);\n }\n dom.setAttribute('data-yjs-hook', this.hookName);\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlHookRefID);\n encoder.writeKey(this.hookName);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlHook}\n *\n * @private\n * @function\n */\nconst readYXmlHook = decoder =>\n new YXmlHook(decoder.readKey());\n\n/**\n * Represents text in a Dom Element. In the future this type will also handle\n * simple formatting information like bold and italic.\n */\nclass YXmlText extends YText {\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n _copy () {\n return new YXmlText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlText}\n */\n clone () {\n const text = new YXmlText();\n text.applyDelta(this.toDelta());\n return text\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlText.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Text} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks, binding) {\n const dom = _document.createTextNode(this.toString());\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n toString () {\n // @ts-ignore\n return this.toDelta().map(delta => {\n const nestedNodes = [];\n for (const nodeName in delta.attributes) {\n const attrs = [];\n for (const key in delta.attributes[nodeName]) {\n attrs.push({ key, value: delta.attributes[nodeName][key] });\n }\n // sort attributes to get a unique order\n attrs.sort((a, b) => a.key < b.key ? -1 : 1);\n nestedNodes.push({ nodeName, attrs });\n }\n // sort node order to get a unique order\n nestedNodes.sort((a, b) => a.nodeName < b.nodeName ? -1 : 1);\n // now convert to dom string\n let str = '';\n for (let i = 0; i < nestedNodes.length; i++) {\n const node = nestedNodes[i];\n str += `<${node.nodeName}`;\n for (let j = 0; j < node.attrs.length; j++) {\n const attr = node.attrs[j];\n str += ` ${attr.key}=\"${attr.value}\"`;\n }\n str += '>';\n }\n str += delta.insert;\n for (let i = nestedNodes.length - 1; i >= 0; i--) {\n str += ``;\n }\n return str\n }).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlTextRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlText}\n *\n * @private\n * @function\n */\nconst readYXmlText = decoder => new YXmlText();\n\nclass AbstractStruct {\n /**\n * @param {ID} id\n * @param {number} length\n */\n constructor (id, length) {\n this.id = id;\n this.length = length;\n }\n\n /**\n * @type {boolean}\n */\n get deleted () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Merge this struct with the item to the right.\n * This method is already assuming that `this.id.clock + this.length === this.id.clock`.\n * Also this method does *not* remove right from StructStore!\n * @param {AbstractStruct} right\n * @return {boolean} wether this merged with right\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n * @param {number} encodingRef\n */\n write (encoder, offset, encodingRef) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n throw error.methodUnimplemented()\n }\n}\n\nconst structGCRefNumber = 0;\n\n/**\n * @private\n */\nclass GC extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {GC} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset;\n this.length -= offset;\n }\n addStruct(transaction.doc.store, this);\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structGCRefNumber);\n encoder.writeLen(this.length - offset);\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n\nclass ContentBinary {\n /**\n * @param {Uint8Array} content\n */\n constructor (content) {\n this.content = content;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.content]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentBinary}\n */\n copy () {\n return new ContentBinary(this.content)\n }\n\n /**\n * @param {number} offset\n * @return {ContentBinary}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentBinary} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeBuf(this.content);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 3\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentBinary}\n */\nconst readContentBinary = decoder => new ContentBinary(decoder.readBuf());\n\nclass ContentDeleted {\n /**\n * @param {number} len\n */\n constructor (len) {\n this.len = len;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.len\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentDeleted}\n */\n copy () {\n return new ContentDeleted(this.len)\n }\n\n /**\n * @param {number} offset\n * @return {ContentDeleted}\n */\n splice (offset) {\n const right = new ContentDeleted(this.len - offset);\n this.len = offset;\n return right\n }\n\n /**\n * @param {ContentDeleted} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.len += right.len;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n addToDeleteSet(transaction.deleteSet, item.id.client, item.id.clock, this.len);\n item.markDeleted();\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeLen(this.len - offset);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 1\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentDeleted}\n */\nconst readContentDeleted = decoder => new ContentDeleted(decoder.readLen());\n\n/**\n * @param {string} guid\n * @param {Object} opts\n */\nconst createDocFromOpts = (guid, opts) => new Doc({ guid, ...opts, shouldLoad: opts.shouldLoad || opts.autoLoad || false });\n\n/**\n * @private\n */\nclass ContentDoc {\n /**\n * @param {Doc} doc\n */\n constructor (doc) {\n if (doc._item) {\n console.error('This document was already integrated as a sub-document. You should create a second instance instead with the same guid.');\n }\n /**\n * @type {Doc}\n */\n this.doc = doc;\n /**\n * @type {any}\n */\n const opts = {};\n this.opts = opts;\n if (!doc.gc) {\n opts.gc = false;\n }\n if (doc.autoLoad) {\n opts.autoLoad = true;\n }\n if (doc.meta !== null) {\n opts.meta = doc.meta;\n }\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.doc]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentDoc}\n */\n copy () {\n return new ContentDoc(createDocFromOpts(this.doc.guid, this.opts))\n }\n\n /**\n * @param {number} offset\n * @return {ContentDoc}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentDoc} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n // this needs to be reflected in doc.destroy as well\n this.doc._item = item;\n transaction.subdocsAdded.add(this.doc);\n if (this.doc.shouldLoad) {\n transaction.subdocsLoaded.add(this.doc);\n }\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (transaction.subdocsAdded.has(this.doc)) {\n transaction.subdocsAdded.delete(this.doc);\n } else {\n transaction.subdocsRemoved.add(this.doc);\n }\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) { }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(this.doc.guid);\n encoder.writeAny(this.opts);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 9\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentDoc}\n */\nconst readContentDoc = decoder => new ContentDoc(createDocFromOpts(decoder.readString(), decoder.readAny()));\n\n/**\n * @private\n */\nclass ContentEmbed {\n /**\n * @param {Object} embed\n */\n constructor (embed) {\n this.embed = embed;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.embed]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentEmbed}\n */\n copy () {\n return new ContentEmbed(this.embed)\n }\n\n /**\n * @param {number} offset\n * @return {ContentEmbed}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentEmbed} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeJSON(this.embed);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 5\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentEmbed}\n */\nconst readContentEmbed = decoder => new ContentEmbed(decoder.readJSON());\n\n/**\n * @private\n */\nclass ContentFormat {\n /**\n * @param {string} key\n * @param {Object} value\n */\n constructor (key, value) {\n this.key = key;\n this.value = value;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentFormat}\n */\n copy () {\n return new ContentFormat(this.key, this.value)\n }\n\n /**\n * @param {number} _offset\n * @return {ContentFormat}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentFormat} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n return false\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} item\n */\n integrate (_transaction, item) {\n // @todo searchmarker are currently unsupported for rich text documents\n const p = /** @type {YText} */ (item.parent);\n p._searchMarker = null;\n p._hasFormatting = true;\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeKey(this.key);\n encoder.writeJSON(this.value);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 6\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentFormat}\n */\nconst readContentFormat = decoder => new ContentFormat(decoder.readKey(), decoder.readJSON());\n\n/**\n * @private\n */\nclass ContentJSON {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentJSON}\n */\n copy () {\n return new ContentJSON(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentJSON}\n */\n splice (offset) {\n const right = new ContentJSON(this.arr.slice(offset));\n this.arr = this.arr.slice(0, offset);\n return right\n }\n\n /**\n * @param {ContentJSON} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr);\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length;\n encoder.writeLen(len - offset);\n for (let i = offset; i < len; i++) {\n const c = this.arr[i];\n encoder.writeString(c === undefined ? 'undefined' : JSON.stringify(c));\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 2\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentJSON}\n */\nconst readContentJSON = decoder => {\n const len = decoder.readLen();\n const cs = [];\n for (let i = 0; i < len; i++) {\n const c = decoder.readString();\n if (c === 'undefined') {\n cs.push(undefined);\n } else {\n cs.push(JSON.parse(c));\n }\n }\n return new ContentJSON(cs)\n};\n\nconst isDevMode = env.getVariable('node_env') === 'development';\n\nclass ContentAny {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr;\n isDevMode && object.deepFreeze(arr);\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentAny}\n */\n copy () {\n return new ContentAny(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentAny}\n */\n splice (offset) {\n const right = new ContentAny(this.arr.slice(offset));\n this.arr = this.arr.slice(0, offset);\n return right\n }\n\n /**\n * @param {ContentAny} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr);\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length;\n encoder.writeLen(len - offset);\n for (let i = offset; i < len; i++) {\n const c = this.arr[i];\n encoder.writeAny(c);\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 8\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentAny}\n */\nconst readContentAny = decoder => {\n const len = decoder.readLen();\n const cs = [];\n for (let i = 0; i < len; i++) {\n cs.push(decoder.readAny());\n }\n return new ContentAny(cs)\n};\n\n/**\n * @private\n */\nclass ContentString {\n /**\n * @param {string} str\n */\n constructor (str) {\n /**\n * @type {string}\n */\n this.str = str;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.str.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.str.split('')\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentString}\n */\n copy () {\n return new ContentString(this.str)\n }\n\n /**\n * @param {number} offset\n * @return {ContentString}\n */\n splice (offset) {\n const right = new ContentString(this.str.slice(offset));\n this.str = this.str.slice(0, offset);\n\n // Prevent encoding invalid documents because of splitting of surrogate pairs: https://github.com/yjs/yjs/issues/248\n const firstCharCode = this.str.charCodeAt(offset - 1);\n if (firstCharCode >= 0xD800 && firstCharCode <= 0xDBFF) {\n // Last character of the left split is the start of a surrogate utf16/ucs2 pair.\n // We don't support splitting of surrogate pairs because this may lead to invalid documents.\n // Replace the invalid character with a unicode replacement character (� / U+FFFD)\n this.str = this.str.slice(0, offset - 1) + '�';\n // replace right as well\n right.str = '�' + right.str.slice(1);\n }\n return right\n }\n\n /**\n * @param {ContentString} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.str += right.str;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(offset === 0 ? this.str : this.str.slice(offset));\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 4\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentString}\n */\nconst readContentString = decoder => new ContentString(decoder.readString());\n\n/**\n * @type {Array>}\n * @private\n */\nconst typeRefs = [\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText\n];\n\nconst YArrayRefID = 0;\nconst YMapRefID = 1;\nconst YTextRefID = 2;\nconst YXmlElementRefID = 3;\nconst YXmlFragmentRefID = 4;\nconst YXmlHookRefID = 5;\nconst YXmlTextRefID = 6;\n\n/**\n * @private\n */\nclass ContentType {\n /**\n * @param {AbstractType} type\n */\n constructor (type) {\n /**\n * @type {AbstractType}\n */\n this.type = type;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.type]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentType}\n */\n copy () {\n return new ContentType(this.type._copy())\n }\n\n /**\n * @param {number} offset\n * @return {ContentType}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentType} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n this.type._integrate(transaction.doc, item);\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n let item = this.type._start;\n while (item !== null) {\n if (!item.deleted) {\n item.delete(transaction);\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // This will be gc'd later and we want to merge it if possible\n // We try to merge all deleted items after each transaction,\n // but we have no knowledge about that this needs to be merged\n // since it is not in transaction.ds. Hence we add it to transaction._mergeStructs\n transaction._mergeStructs.push(item);\n }\n item = item.right;\n }\n this.type._map.forEach(item => {\n if (!item.deleted) {\n item.delete(transaction);\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // same as above\n transaction._mergeStructs.push(item);\n }\n });\n transaction.changed.delete(this.type);\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) {\n let item = this.type._start;\n while (item !== null) {\n item.gc(store, true);\n item = item.right;\n }\n this.type._start = null;\n this.type._map.forEach(/** @param {Item | null} item */ (item) => {\n while (item !== null) {\n item.gc(store, true);\n item = item.left;\n }\n });\n this.type._map = new Map();\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n this.type._write(encoder);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 7\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentType}\n */\nconst readContentType = decoder => new ContentType(typeRefs[decoder.readTypeRef()](decoder));\n\n/**\n * @todo This should return several items\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {{item:Item, diff:number}}\n */\nconst followRedone = (store, id) => {\n /**\n * @type {ID|null}\n */\n let nextID = id;\n let diff = 0;\n let item;\n do {\n if (diff > 0) {\n nextID = createID(nextID.client, nextID.clock + diff);\n }\n item = getItem(store, nextID);\n diff = nextID.clock - item.id.clock;\n nextID = item.redone;\n } while (nextID !== null && item instanceof Item)\n return {\n item, diff\n }\n};\n\n/**\n * Make sure that neither item nor any of its parents is ever deleted.\n *\n * This property does not persist when storing it into a database or when\n * sending it to other peers\n *\n * @param {Item|null} item\n * @param {boolean} keep\n */\nconst keepItem = (item, keep) => {\n while (item !== null && item.keep !== keep) {\n item.keep = keep;\n item = /** @type {AbstractType} */ (item.parent)._item;\n }\n};\n\n/**\n * Split leftItem into two items\n * @param {Transaction} transaction\n * @param {Item} leftItem\n * @param {number} diff\n * @return {Item}\n *\n * @function\n * @private\n */\nconst splitItem = (transaction, leftItem, diff) => {\n // create rightItem\n const { client, clock } = leftItem.id;\n const rightItem = new Item(\n createID(client, clock + diff),\n leftItem,\n createID(client, clock + diff - 1),\n leftItem.right,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n );\n if (leftItem.deleted) {\n rightItem.markDeleted();\n }\n if (leftItem.keep) {\n rightItem.keep = true;\n }\n if (leftItem.redone !== null) {\n rightItem.redone = createID(leftItem.redone.client, leftItem.redone.clock + diff);\n }\n // update left (do not set leftItem.rightOrigin as it will lead to problems when syncing)\n leftItem.right = rightItem;\n // update right\n if (rightItem.right !== null) {\n rightItem.right.left = rightItem;\n }\n // right is more specific.\n transaction._mergeStructs.push(rightItem);\n // update parent._map\n if (rightItem.parentSub !== null && rightItem.right === null) {\n /** @type {AbstractType} */ (rightItem.parent)._map.set(rightItem.parentSub, rightItem);\n }\n leftItem.length = diff;\n return rightItem\n};\n\n/**\n * @param {Array} stack\n * @param {ID} id\n */\nconst isDeletedByUndoStack = (stack, id) => array.some(stack, /** @param {StackItem} s */ s => isDeleted(s.deletions, id));\n\n/**\n * Redoes the effect of this operation.\n *\n * @param {Transaction} transaction The Yjs instance.\n * @param {Item} item\n * @param {Set} redoitems\n * @param {DeleteSet} itemsToDelete\n * @param {boolean} ignoreRemoteMapChanges\n * @param {import('../utils/UndoManager.js').UndoManager} um\n *\n * @return {Item|null}\n *\n * @private\n */\nconst redoItem = (transaction, item, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) => {\n const doc = transaction.doc;\n const store = doc.store;\n const ownClientID = doc.clientID;\n const redone = item.redone;\n if (redone !== null) {\n return getItemCleanStart(transaction, redone)\n }\n let parentItem = /** @type {AbstractType} */ (item.parent)._item;\n /**\n * @type {Item|null}\n */\n let left = null;\n /**\n * @type {Item|null}\n */\n let right;\n // make sure that parent is redone\n if (parentItem !== null && parentItem.deleted === true) {\n // try to undo parent if it will be undone anyway\n if (parentItem.redone === null && (!redoitems.has(parentItem) || redoItem(transaction, parentItem, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) === null)) {\n return null\n }\n while (parentItem.redone !== null) {\n parentItem = getItemCleanStart(transaction, parentItem.redone);\n }\n }\n const parentType = parentItem === null ? /** @type {AbstractType} */ (item.parent) : /** @type {ContentType} */ (parentItem.content).type;\n\n if (item.parentSub === null) {\n // Is an array item. Insert at the old position\n left = item.left;\n right = item;\n // find next cloned_redo items\n while (left !== null) {\n /**\n * @type {Item|null}\n */\n let leftTrace = left;\n // trace redone until parent matches\n while (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item !== parentItem) {\n leftTrace = leftTrace.redone === null ? null : getItemCleanStart(transaction, leftTrace.redone);\n }\n if (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item === parentItem) {\n left = leftTrace;\n break\n }\n left = left.left;\n }\n while (right !== null) {\n /**\n * @type {Item|null}\n */\n let rightTrace = right;\n // trace redone until parent matches\n while (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item !== parentItem) {\n rightTrace = rightTrace.redone === null ? null : getItemCleanStart(transaction, rightTrace.redone);\n }\n if (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item === parentItem) {\n right = rightTrace;\n break\n }\n right = right.right;\n }\n } else {\n right = null;\n if (item.right && !ignoreRemoteMapChanges) {\n left = item;\n // Iterate right while right is in itemsToDelete\n // If it is intended to delete right while item is redone, we can expect that item should replace right.\n while (left !== null && left.right !== null && (left.right.redone || isDeleted(itemsToDelete, left.right.id) || isDeletedByUndoStack(um.undoStack, left.right.id) || isDeletedByUndoStack(um.redoStack, left.right.id))) {\n left = left.right;\n // follow redone\n while (left.redone) left = getItemCleanStart(transaction, left.redone);\n }\n if (left && left.right !== null) {\n // It is not possible to redo this item because it conflicts with a\n // change from another client\n return null\n }\n } else {\n left = parentType._map.get(item.parentSub) || null;\n }\n }\n const nextClock = getState(store, ownClientID);\n const nextId = createID(ownClientID, nextClock);\n const redoneItem = new Item(\n nextId,\n left, left && left.lastId,\n right, right && right.id,\n parentType,\n item.parentSub,\n item.content.copy()\n );\n item.redone = nextId;\n keepItem(redoneItem, true);\n redoneItem.integrate(transaction, 0);\n return redoneItem\n};\n\n/**\n * Abstract class that represents any content.\n */\nclass Item extends AbstractStruct {\n /**\n * @param {ID} id\n * @param {Item | null} left\n * @param {ID | null} origin\n * @param {Item | null} right\n * @param {ID | null} rightOrigin\n * @param {AbstractType|ID|null} parent Is a type if integrated, is null if it is possible to copy parent from left or right, is ID before integration to search for it.\n * @param {string | null} parentSub\n * @param {AbstractContent} content\n */\n constructor (id, left, origin, right, rightOrigin, parent, parentSub, content) {\n super(id, content.getLength());\n /**\n * The item that was originally to the left of this item.\n * @type {ID | null}\n */\n this.origin = origin;\n /**\n * The item that is currently to the left of this item.\n * @type {Item | null}\n */\n this.left = left;\n /**\n * The item that is currently to the right of this item.\n * @type {Item | null}\n */\n this.right = right;\n /**\n * The item that was originally to the right of this item.\n * @type {ID | null}\n */\n this.rightOrigin = rightOrigin;\n /**\n * @type {AbstractType|ID|null}\n */\n this.parent = parent;\n /**\n * If the parent refers to this item with some kind of key (e.g. YMap, the\n * key is specified here. The key is then used to refer to the list in which\n * to insert this item. If `parentSub = null` type._start is the list in\n * which to insert to. Otherwise it is `parent._map`.\n * @type {String | null}\n */\n this.parentSub = parentSub;\n /**\n * If this type's effect is redone this type refers to the type that undid\n * this operation.\n * @type {ID | null}\n */\n this.redone = null;\n /**\n * @type {AbstractContent}\n */\n this.content = content;\n /**\n * bit1: keep\n * bit2: countable\n * bit3: deleted\n * bit4: mark - mark node as fast-search-marker\n * @type {number} byte\n */\n this.info = this.content.isCountable() ? binary.BIT2 : 0;\n }\n\n /**\n * This is used to mark the item as an indexed fast-search marker\n *\n * @type {boolean}\n */\n set marker (isMarked) {\n if (((this.info & binary.BIT4) > 0) !== isMarked) {\n this.info ^= binary.BIT4;\n }\n }\n\n get marker () {\n return (this.info & binary.BIT4) > 0\n }\n\n /**\n * If true, do not garbage collect this Item.\n */\n get keep () {\n return (this.info & binary.BIT1) > 0\n }\n\n set keep (doKeep) {\n if (this.keep !== doKeep) {\n this.info ^= binary.BIT1;\n }\n }\n\n get countable () {\n return (this.info & binary.BIT2) > 0\n }\n\n /**\n * Whether this item was deleted or not.\n * @type {Boolean}\n */\n get deleted () {\n return (this.info & binary.BIT3) > 0\n }\n\n set deleted (doDelete) {\n if (this.deleted !== doDelete) {\n this.info ^= binary.BIT3;\n }\n }\n\n markDeleted () {\n this.info |= binary.BIT3;\n }\n\n /**\n * Return the creator clientID of the missing op or define missing items and return null.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n if (this.origin && this.origin.client !== this.id.client && this.origin.clock >= getState(store, this.origin.client)) {\n return this.origin.client\n }\n if (this.rightOrigin && this.rightOrigin.client !== this.id.client && this.rightOrigin.clock >= getState(store, this.rightOrigin.client)) {\n return this.rightOrigin.client\n }\n if (this.parent && this.parent.constructor === ID && this.id.client !== this.parent.client && this.parent.clock >= getState(store, this.parent.client)) {\n return this.parent.client\n }\n\n // We have all missing ids, now find the items\n\n if (this.origin) {\n this.left = getItemCleanEnd(transaction, store, this.origin);\n this.origin = this.left.lastId;\n }\n if (this.rightOrigin) {\n this.right = getItemCleanStart(transaction, this.rightOrigin);\n this.rightOrigin = this.right.id;\n }\n if ((this.left && this.left.constructor === GC) || (this.right && this.right.constructor === GC)) {\n this.parent = null;\n } else if (!this.parent) {\n // only set parent if this shouldn't be garbage collected\n if (this.left && this.left.constructor === Item) {\n this.parent = this.left.parent;\n this.parentSub = this.left.parentSub;\n }\n if (this.right && this.right.constructor === Item) {\n this.parent = this.right.parent;\n this.parentSub = this.right.parentSub;\n }\n } else if (this.parent.constructor === ID) {\n const parentItem = getItem(store, this.parent);\n if (parentItem.constructor === GC) {\n this.parent = null;\n } else {\n this.parent = /** @type {ContentType} */ (parentItem.content).type;\n }\n }\n return null\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset;\n this.left = getItemCleanEnd(transaction, transaction.doc.store, createID(this.id.client, this.id.clock - 1));\n this.origin = this.left.lastId;\n this.content = this.content.splice(offset);\n this.length -= offset;\n }\n\n if (this.parent) {\n if ((!this.left && (!this.right || this.right.left !== null)) || (this.left && this.left.right !== this.right)) {\n /**\n * @type {Item|null}\n */\n let left = this.left;\n\n /**\n * @type {Item|null}\n */\n let o;\n // set o to the first conflicting item\n if (left !== null) {\n o = left.right;\n } else if (this.parentSub !== null) {\n o = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null;\n while (o !== null && o.left !== null) {\n o = o.left;\n }\n } else {\n o = /** @type {AbstractType} */ (this.parent)._start;\n }\n // TODO: use something like DeleteSet here (a tree implementation would be best)\n // @todo use global set definitions\n /**\n * @type {Set}\n */\n const conflictingItems = new Set();\n /**\n * @type {Set}\n */\n const itemsBeforeOrigin = new Set();\n // Let c in conflictingItems, b in itemsBeforeOrigin\n // ***{origin}bbbb{this}{c,b}{c,b}{o}***\n // Note that conflictingItems is a subset of itemsBeforeOrigin\n while (o !== null && o !== this.right) {\n itemsBeforeOrigin.add(o);\n conflictingItems.add(o);\n if (compareIDs(this.origin, o.origin)) {\n // case 1\n if (o.id.client < this.id.client) {\n left = o;\n conflictingItems.clear();\n } else if (compareIDs(this.rightOrigin, o.rightOrigin)) {\n // this and o are conflicting and point to the same integration points. The id decides which item comes first.\n // Since this is to the left of o, we can break here\n break\n } // else, o might be integrated before an item that this conflicts with. If so, we will find it in the next iterations\n } else if (o.origin !== null && itemsBeforeOrigin.has(getItem(transaction.doc.store, o.origin))) { // use getItem instead of getItemCleanEnd because we don't want / need to split items.\n // case 2\n if (!conflictingItems.has(getItem(transaction.doc.store, o.origin))) {\n left = o;\n conflictingItems.clear();\n }\n } else {\n break\n }\n o = o.right;\n }\n this.left = left;\n }\n // reconnect left/right + update parent map/start if necessary\n if (this.left !== null) {\n const right = this.left.right;\n this.right = right;\n this.left.right = this;\n } else {\n let r;\n if (this.parentSub !== null) {\n r = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null;\n while (r !== null && r.left !== null) {\n r = r.left;\n }\n } else {\n r = /** @type {AbstractType} */ (this.parent)._start\n ;/** @type {AbstractType} */ (this.parent)._start = this;\n }\n this.right = r;\n }\n if (this.right !== null) {\n this.right.left = this;\n } else if (this.parentSub !== null) {\n // set as current parent value if right === null and this is parentSub\n /** @type {AbstractType} */ (this.parent)._map.set(this.parentSub, this);\n if (this.left !== null) {\n // this is the current attribute value of parent. delete right\n this.left.delete(transaction);\n }\n }\n // adjust length of parent\n if (this.parentSub === null && this.countable && !this.deleted) {\n /** @type {AbstractType} */ (this.parent)._length += this.length;\n }\n addStruct(transaction.doc.store, this);\n this.content.integrate(transaction, this);\n // add parent to transaction.changed\n addChangedTypeToTransaction(transaction, /** @type {AbstractType} */ (this.parent), this.parentSub);\n if ((/** @type {AbstractType} */ (this.parent)._item !== null && /** @type {AbstractType} */ (this.parent)._item.deleted) || (this.parentSub !== null && this.right !== null)) {\n // delete if parent is deleted or if this is not the current attribute value of parent\n this.delete(transaction);\n }\n } else {\n // parent is not defined. Integrate GC struct instead\n new GC(this.id, this.length).integrate(transaction, 0);\n }\n }\n\n /**\n * Returns the next non-deleted item\n */\n get next () {\n let n = this.right;\n while (n !== null && n.deleted) {\n n = n.right;\n }\n return n\n }\n\n /**\n * Returns the previous non-deleted item\n */\n get prev () {\n let n = this.left;\n while (n !== null && n.deleted) {\n n = n.left;\n }\n return n\n }\n\n /**\n * Computes the last content address of this Item.\n */\n get lastId () {\n // allocating ids is pretty costly because of the amount of ids created, so we try to reuse whenever possible\n return this.length === 1 ? this.id : createID(this.id.client, this.id.clock + this.length - 1)\n }\n\n /**\n * Try to merge two items\n *\n * @param {Item} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (\n this.constructor === right.constructor &&\n compareIDs(right.origin, this.lastId) &&\n this.right === right &&\n compareIDs(this.rightOrigin, right.rightOrigin) &&\n this.id.client === right.id.client &&\n this.id.clock + this.length === right.id.clock &&\n this.deleted === right.deleted &&\n this.redone === null &&\n right.redone === null &&\n this.content.constructor === right.content.constructor &&\n this.content.mergeWith(right.content)\n ) {\n const searchMarker = /** @type {AbstractType} */ (this.parent)._searchMarker;\n if (searchMarker) {\n searchMarker.forEach(marker => {\n if (marker.p === right) {\n // right is going to be \"forgotten\" so we need to update the marker\n marker.p = this;\n // adjust marker index\n if (!this.deleted && this.countable) {\n marker.index -= this.length;\n }\n }\n });\n }\n if (right.keep) {\n this.keep = true;\n }\n this.right = right.right;\n if (this.right !== null) {\n this.right.left = this;\n }\n this.length += right.length;\n return true\n }\n return false\n }\n\n /**\n * Mark this Item as deleted.\n *\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (!this.deleted) {\n const parent = /** @type {AbstractType} */ (this.parent);\n // adjust the length of parent\n if (this.countable && this.parentSub === null) {\n parent._length -= this.length;\n }\n this.markDeleted();\n addToDeleteSet(transaction.deleteSet, this.id.client, this.id.clock, this.length);\n addChangedTypeToTransaction(transaction, parent, this.parentSub);\n this.content.delete(transaction);\n }\n }\n\n /**\n * @param {StructStore} store\n * @param {boolean} parentGCd\n */\n gc (store, parentGCd) {\n if (!this.deleted) {\n throw error.unexpectedCase()\n }\n this.content.gc(store);\n if (parentGCd) {\n replaceStruct(store, this, new GC(this.id, this.length));\n } else {\n this.content = new ContentDeleted(this.length);\n }\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n */\n write (encoder, offset) {\n const origin = offset > 0 ? createID(this.id.client, this.id.clock + offset - 1) : this.origin;\n const rightOrigin = this.rightOrigin;\n const parentSub = this.parentSub;\n const info = (this.content.getRef() & binary.BITS5) |\n (origin === null ? 0 : binary.BIT8) | // origin is defined\n (rightOrigin === null ? 0 : binary.BIT7) | // right origin is defined\n (parentSub === null ? 0 : binary.BIT6); // parentSub is non-null\n encoder.writeInfo(info);\n if (origin !== null) {\n encoder.writeLeftID(origin);\n }\n if (rightOrigin !== null) {\n encoder.writeRightID(rightOrigin);\n }\n if (origin === null && rightOrigin === null) {\n const parent = /** @type {AbstractType} */ (this.parent);\n if (parent._item !== undefined) {\n const parentItem = parent._item;\n if (parentItem === null) {\n // parent type on y._map\n // find the correct key\n const ykey = findRootTypeKey(parent);\n encoder.writeParentInfo(true); // write parentYKey\n encoder.writeString(ykey);\n } else {\n encoder.writeParentInfo(false); // write parent id\n encoder.writeLeftID(parentItem.id);\n }\n } else if (parent.constructor === String) { // this edge case was added by differential updates\n encoder.writeParentInfo(true); // write parentYKey\n encoder.writeString(parent);\n } else if (parent.constructor === ID) {\n encoder.writeParentInfo(false); // write parent id\n encoder.writeLeftID(parent);\n } else {\n error.unexpectedCase();\n }\n if (parentSub !== null) {\n encoder.writeString(parentSub);\n }\n }\n this.content.write(encoder, offset);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {number} info\n */\nconst readItemContent = (decoder, info) => contentRefs[info & binary.BITS5](decoder);\n\n/**\n * A lookup map for reading Item content.\n *\n * @type {Array}\n */\nconst contentRefs = [\n () => { error.unexpectedCase(); }, // GC is not ItemContent\n readContentDeleted, // 1\n readContentJSON, // 2\n readContentBinary, // 3\n readContentString, // 4\n readContentEmbed, // 5\n readContentFormat, // 6\n readContentType, // 7\n readContentAny, // 8\n readContentDoc, // 9\n () => { error.unexpectedCase(); } // 10 - Skip is not ItemContent\n];\n\nconst structSkipRefNumber = 10;\n\n/**\n * @private\n */\nclass Skip extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {Skip} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n // skip structs cannot be integrated\n error.unexpectedCase();\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structSkipRefNumber);\n // write as VarUint because Skips can't make use of predictable length-encoding\n encoding.writeVarUint(encoder.restEncoder, this.length - offset);\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n\n/** eslint-env browser */\n\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {});\n\nconst importIdentifier = '__ $YJS$ __';\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438');\n}\nglo[importIdentifier] = true;\n\nexport { AbsolutePosition, AbstractConnector, AbstractStruct, AbstractType, YArray as Array, ContentAny, ContentBinary, ContentDeleted, ContentDoc, ContentEmbed, ContentFormat, ContentJSON, ContentString, ContentType, Doc, GC, ID, Item, YMap as Map, PermanentUserData, RelativePosition, Skip, Snapshot, YText as Text, Transaction, UndoManager, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, YXmlElement as XmlElement, YXmlFragment as XmlFragment, YXmlHook as XmlHook, YXmlText as XmlText, YArrayEvent, YEvent, YMapEvent, YTextEvent, YXmlEvent, applyUpdate, applyUpdateV2, cleanupYTextFormatting, compareIDs, compareRelativePositions, convertUpdateFormatV1ToV2, convertUpdateFormatV2ToV1, createAbsolutePositionFromRelativePosition, createDeleteSet, createDeleteSetFromStructStore, createDocFromSnapshot, createID, createRelativePositionFromJSON, createRelativePositionFromTypeIndex, createSnapshot, decodeRelativePosition, decodeSnapshot, decodeSnapshotV2, decodeStateVector, decodeUpdate, decodeUpdateV2, diffUpdate, diffUpdateV2, emptySnapshot, encodeRelativePosition, encodeSnapshot, encodeSnapshotV2, encodeStateAsUpdate, encodeStateAsUpdateV2, encodeStateVector, encodeStateVectorFromUpdate, encodeStateVectorFromUpdateV2, equalDeleteSets, equalSnapshots, findIndexSS, findRootTypeKey, getItem, getState, getTypeChildren, isDeleted, isParentOf, iterateDeletedStructs, logType, logUpdate, logUpdateV2, mergeDeleteSets, mergeUpdates, mergeUpdatesV2, obfuscateUpdate, obfuscateUpdateV2, parseUpdateMeta, parseUpdateMetaV2, readUpdate, readUpdateV2, relativePositionToJSON, snapshot, snapshotContainsUpdate, transact, tryGc, typeListToArraySnapshot, typeMapGetAllSnapshot, typeMapGetSnapshot };\n//# sourceMappingURL=yjs.mjs.map\n","import { ObservableV2 } from 'lib0/observable'\n\nimport {\n Doc // eslint-disable-line\n} from '../internals.js'\n\n/**\n * This is an abstract interface that all Connectors should implement to keep them interchangeable.\n *\n * @note This interface is experimental and it is not advised to actually inherit this class.\n * It just serves as typing information.\n *\n * @extends {ObservableV2}\n */\nexport class AbstractConnector extends ObservableV2 {\n /**\n * @param {Doc} ydoc\n * @param {any} awareness\n */\n constructor (ydoc, awareness) {\n super()\n this.doc = ydoc\n this.awareness = awareness\n }\n}\n","import {\n findIndexSS,\n getState,\n splitItem,\n iterateStructs,\n UpdateEncoderV2,\n DSDecoderV1, DSEncoderV1, DSDecoderV2, DSEncoderV2, Item, GC, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\n\nimport * as array from 'lib0/array'\nimport * as math from 'lib0/math'\nimport * as map from 'lib0/map'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport class DeleteItem {\n /**\n * @param {number} clock\n * @param {number} len\n */\n constructor (clock, len) {\n /**\n * @type {number}\n */\n this.clock = clock\n /**\n * @type {number}\n */\n this.len = len\n }\n}\n\n/**\n * We no longer maintain a DeleteStore. DeleteSet is a temporary object that is created when needed.\n * - When created in a transaction, it must only be accessed after sorting, and merging\n * - This DeleteSet is send to other clients\n * - We do not create a DeleteSet when we send a sync message. The DeleteSet message is created directly from StructStore\n * - We read a DeleteSet as part of a sync/update message. In this case the DeleteSet is already sorted and merged.\n */\nexport class DeleteSet {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map()\n }\n}\n\n/**\n * Iterate over all structs that the DeleteSet gc's.\n *\n * @param {Transaction} transaction\n * @param {DeleteSet} ds\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nexport const iterateDeletedStructs = (transaction, ds, f) =>\n ds.clients.forEach((deletes, clientid) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(clientid))\n for (let i = 0; i < deletes.length; i++) {\n const del = deletes[i]\n iterateStructs(transaction, structs, del.clock, del.len, f)\n }\n })\n\n/**\n * @param {Array} dis\n * @param {number} clock\n * @return {number|null}\n *\n * @private\n * @function\n */\nexport const findIndexDS = (dis, clock) => {\n let left = 0\n let right = dis.length - 1\n while (left <= right) {\n const midindex = math.floor((left + right) / 2)\n const mid = dis[midindex]\n const midclock = mid.clock\n if (midclock <= clock) {\n if (clock < midclock + mid.len) {\n return midindex\n }\n left = midindex + 1\n } else {\n right = midindex - 1\n }\n }\n return null\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {ID} id\n * @return {boolean}\n *\n * @private\n * @function\n */\nexport const isDeleted = (ds, id) => {\n const dis = ds.clients.get(id.client)\n return dis !== undefined && findIndexDS(dis, id.clock) !== null\n}\n\n/**\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nexport const sortAndMergeDeleteSet = ds => {\n ds.clients.forEach(dels => {\n dels.sort((a, b) => a.clock - b.clock)\n // merge items without filtering or splicing the array\n // i is the current pointer\n // j refers to the current insert position for the pointed item\n // try to merge dels[i] into dels[j-1] or set dels[j]=dels[i]\n let i, j\n for (i = 1, j = 1; i < dels.length; i++) {\n const left = dels[j - 1]\n const right = dels[i]\n if (left.clock + left.len >= right.clock) {\n left.len = math.max(left.len, right.clock + right.len - left.clock)\n } else {\n if (j < i) {\n dels[j] = right\n }\n j++\n }\n }\n dels.length = j\n })\n}\n\n/**\n * @param {Array} dss\n * @return {DeleteSet} A fresh DeleteSet\n */\nexport const mergeDeleteSets = dss => {\n const merged = new DeleteSet()\n for (let dssI = 0; dssI < dss.length; dssI++) {\n dss[dssI].clients.forEach((delsLeft, client) => {\n if (!merged.clients.has(client)) {\n // Write all missing keys from current ds and all following.\n // If merged already contains `client` current ds has already been added.\n /**\n * @type {Array}\n */\n const dels = delsLeft.slice()\n for (let i = dssI + 1; i < dss.length; i++) {\n array.appendTo(dels, dss[i].clients.get(client) || [])\n }\n merged.clients.set(client, dels)\n }\n })\n }\n sortAndMergeDeleteSet(merged)\n return merged\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {number} client\n * @param {number} clock\n * @param {number} length\n *\n * @private\n * @function\n */\nexport const addToDeleteSet = (ds, client, clock, length) => {\n map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([])).push(new DeleteItem(clock, length))\n}\n\nexport const createDeleteSet = () => new DeleteSet()\n\n/**\n * @param {StructStore} ss\n * @return {DeleteSet} Merged and sorted DeleteSet\n *\n * @private\n * @function\n */\nexport const createDeleteSetFromStructStore = ss => {\n const ds = createDeleteSet()\n ss.clients.forEach((structs, client) => {\n /**\n * @type {Array}\n */\n const dsitems = []\n for (let i = 0; i < structs.length; i++) {\n const struct = structs[i]\n if (struct.deleted) {\n const clock = struct.id.clock\n let len = struct.length\n if (i + 1 < structs.length) {\n for (let next = structs[i + 1]; i + 1 < structs.length && next.deleted; next = structs[++i + 1]) {\n len += next.length\n }\n }\n dsitems.push(new DeleteItem(clock, len))\n }\n }\n if (dsitems.length > 0) {\n ds.clients.set(client, dsitems)\n }\n })\n return ds\n}\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nexport const writeDeleteSet = (encoder, ds) => {\n encoding.writeVarUint(encoder.restEncoder, ds.clients.size)\n\n // Ensure that the delete set is written in a deterministic order\n array.from(ds.clients.entries())\n .sort((a, b) => b[0] - a[0])\n .forEach(([client, dsitems]) => {\n encoder.resetDsCurVal()\n encoding.writeVarUint(encoder.restEncoder, client)\n const len = dsitems.length\n encoding.writeVarUint(encoder.restEncoder, len)\n for (let i = 0; i < len; i++) {\n const item = dsitems[i]\n encoder.writeDsClock(item.clock)\n encoder.writeDsLen(item.len)\n }\n })\n}\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {DeleteSet}\n *\n * @private\n * @function\n */\nexport const readDeleteSet = decoder => {\n const ds = new DeleteSet()\n const numClients = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal()\n const client = decoding.readVarUint(decoder.restDecoder)\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder)\n if (numberOfDeletes > 0) {\n const dsField = map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([]))\n for (let i = 0; i < numberOfDeletes; i++) {\n dsField.push(new DeleteItem(decoder.readDsClock(), decoder.readDsLen()))\n }\n }\n }\n return ds\n}\n\n/**\n * @todo YDecoder also contains references to String and other Decoders. Would make sense to exchange YDecoder.toUint8Array for YDecoder.DsToUint8Array()..\n */\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {Uint8Array|null} Returns a v2 update containing all deletes that couldn't be applied yet; or null if all deletes were applied successfully.\n *\n * @private\n * @function\n */\nexport const readAndApplyDeleteSet = (decoder, transaction, store) => {\n const unappliedDS = new DeleteSet()\n const numClients = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal()\n const client = decoding.readVarUint(decoder.restDecoder)\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder)\n const structs = store.clients.get(client) || []\n const state = getState(store, client)\n for (let i = 0; i < numberOfDeletes; i++) {\n const clock = decoder.readDsClock()\n const clockEnd = clock + decoder.readDsLen()\n if (clock < state) {\n if (state < clockEnd) {\n addToDeleteSet(unappliedDS, client, state, clockEnd - state)\n }\n let index = findIndexSS(structs, clock)\n /**\n * We can ignore the case of GC and Delete structs, because we are going to skip them\n * @type {Item}\n */\n // @ts-ignore\n let struct = structs[index]\n // split the first item if necessary\n if (!struct.deleted && struct.id.clock < clock) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock))\n index++ // increase we now want to use the next struct\n }\n while (index < structs.length) {\n // @ts-ignore\n struct = structs[index++]\n if (struct.id.clock < clockEnd) {\n if (!struct.deleted) {\n if (clockEnd < struct.id.clock + struct.length) {\n structs.splice(index, 0, splitItem(transaction, struct, clockEnd - struct.id.clock))\n }\n struct.delete(transaction)\n }\n } else {\n break\n }\n }\n } else {\n addToDeleteSet(unappliedDS, client, clock, clockEnd - clock)\n }\n }\n }\n if (unappliedDS.clients.size > 0) {\n const ds = new UpdateEncoderV2()\n encoding.writeVarUint(ds.restEncoder, 0) // encode 0 structs\n writeDeleteSet(ds, unappliedDS)\n return ds.toUint8Array()\n }\n return null\n}\n\n/**\n * @param {DeleteSet} ds1\n * @param {DeleteSet} ds2\n */\nexport const equalDeleteSets = (ds1, ds2) => {\n if (ds1.clients.size !== ds2.clients.size) return false\n for (const [client, deleteItems1] of ds1.clients.entries()) {\n const deleteItems2 = /** @type {Array} */ (ds2.clients.get(client))\n if (deleteItems2 === undefined || deleteItems1.length !== deleteItems2.length) return false\n for (let i = 0; i < deleteItems1.length; i++) {\n const di1 = deleteItems1[i]\n const di2 = deleteItems2[i]\n if (di1.clock !== di2.clock || di1.len !== di2.len) {\n return false\n }\n }\n }\n return true\n}\n","/**\n * @module Y\n */\n\nimport {\n StructStore,\n AbstractType,\n YArray,\n YText,\n YMap,\n YXmlElement,\n YXmlFragment,\n transact,\n ContentDoc, Item, Transaction, YEvent // eslint-disable-line\n} from '../internals.js'\n\nimport { ObservableV2 } from 'lib0/observable'\nimport * as random from 'lib0/random'\nimport * as map from 'lib0/map'\nimport * as array from 'lib0/array'\nimport * as promise from 'lib0/promise'\n\nexport const generateNewClientId = random.uint32\n\n/**\n * @typedef {Object} DocOpts\n * @property {boolean} [DocOpts.gc=true] Disable garbage collection (default: gc=true)\n * @property {function(Item):boolean} [DocOpts.gcFilter] Will be called before an Item is garbage collected. Return false to keep the Item.\n * @property {string} [DocOpts.guid] Define a globally unique identifier for this document\n * @property {string | null} [DocOpts.collectionid] Associate this document with a collection. This only plays a role if your provider has a concept of collection.\n * @property {any} [DocOpts.meta] Any kind of meta information you want to associate with this document. If this is a subdocument, remote peers will store the meta information as well.\n * @property {boolean} [DocOpts.autoLoad] If a subdocument, automatically load document. If this is a subdocument, remote peers will load the document as well automatically.\n * @property {boolean} [DocOpts.shouldLoad] Whether the document should be synced by the provider now. This is toggled to true when you call ydoc.load()\n */\n\n/**\n * @typedef {Object} DocEvents\n * @property {function(Doc):void} DocEvents.destroy\n * @property {function(Doc):void} DocEvents.load\n * @property {function(boolean, Doc):void} DocEvents.sync\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.update\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.updateV2\n * @property {function(Doc):void} DocEvents.beforeAllTransactions\n * @property {function(Transaction, Doc):void} DocEvents.beforeTransaction\n * @property {function(Transaction, Doc):void} DocEvents.beforeObserverCalls\n * @property {function(Transaction, Doc):void} DocEvents.afterTransaction\n * @property {function(Transaction, Doc):void} DocEvents.afterTransactionCleanup\n * @property {function(Doc, Array):void} DocEvents.afterAllTransactions\n * @property {function({ loaded: Set, added: Set, removed: Set }, Doc, Transaction):void} DocEvents.subdocs\n */\n\n/**\n * A Yjs instance handles the state of shared data.\n * @extends ObservableV2\n */\nexport class Doc extends ObservableV2 {\n /**\n * @param {DocOpts} opts configuration\n */\n constructor ({ guid = random.uuidv4(), collectionid = null, gc = true, gcFilter = () => true, meta = null, autoLoad = false, shouldLoad = true } = {}) {\n super()\n this.gc = gc\n this.gcFilter = gcFilter\n this.clientID = generateNewClientId()\n this.guid = guid\n this.collectionid = collectionid\n /**\n * @type {Map>>}\n */\n this.share = new Map()\n this.store = new StructStore()\n /**\n * @type {Transaction | null}\n */\n this._transaction = null\n /**\n * @type {Array}\n */\n this._transactionCleanups = []\n /**\n * @type {Set}\n */\n this.subdocs = new Set()\n /**\n * If this document is a subdocument - a document integrated into another document - then _item is defined.\n * @type {Item?}\n */\n this._item = null\n this.shouldLoad = shouldLoad\n this.autoLoad = autoLoad\n this.meta = meta\n /**\n * This is set to true when the persistence provider loaded the document from the database or when the `sync` event fires.\n * Note that not all providers implement this feature. Provider authors are encouraged to fire the `load` event when the doc content is loaded from the database.\n *\n * @type {boolean}\n */\n this.isLoaded = false\n /**\n * This is set to true when the connection provider has successfully synced with a backend.\n * Note that when using peer-to-peer providers this event may not provide very useful.\n * Also note that not all providers implement this feature. Provider authors are encouraged to fire\n * the `sync` event when the doc has been synced (with `true` as a parameter) or if connection is\n * lost (with false as a parameter).\n */\n this.isSynced = false\n this.isDestroyed = false\n /**\n * Promise that resolves once the document has been loaded from a presistence provider.\n */\n this.whenLoaded = promise.create(resolve => {\n this.on('load', () => {\n this.isLoaded = true\n resolve(this)\n })\n })\n const provideSyncedPromise = () => promise.create(resolve => {\n /**\n * @param {boolean} isSynced\n */\n const eventHandler = (isSynced) => {\n if (isSynced === undefined || isSynced === true) {\n this.off('sync', eventHandler)\n resolve()\n }\n }\n this.on('sync', eventHandler)\n })\n this.on('sync', isSynced => {\n if (isSynced === false && this.isSynced) {\n this.whenSynced = provideSyncedPromise()\n }\n this.isSynced = isSynced === undefined || isSynced === true\n if (this.isSynced && !this.isLoaded) {\n this.emit('load', [this])\n }\n })\n /**\n * Promise that resolves once the document has been synced with a backend.\n * This promise is recreated when the connection is lost.\n * Note the documentation about the `isSynced` property.\n */\n this.whenSynced = provideSyncedPromise()\n }\n\n /**\n * Notify the parent document that you request to load data into this subdocument (if it is a subdocument).\n *\n * `load()` might be used in the future to request any provider to load the most current data.\n *\n * It is safe to call `load()` multiple times.\n */\n load () {\n const item = this._item\n if (item !== null && !this.shouldLoad) {\n transact(/** @type {any} */ (item.parent).doc, transaction => {\n transaction.subdocsLoaded.add(this)\n }, null, true)\n }\n this.shouldLoad = true\n }\n\n getSubdocs () {\n return this.subdocs\n }\n\n getSubdocGuids () {\n return new Set(array.from(this.subdocs).map(doc => doc.guid))\n }\n\n /**\n * Changes that happen inside of a transaction are bundled. This means that\n * the observer fires _after_ the transaction is finished and that all changes\n * that happened inside of the transaction are sent as one message to the\n * other peers.\n *\n * @template T\n * @param {function(Transaction):T} f The function that should be executed as a transaction\n * @param {any} [origin] Origin of who started the transaction. Will be stored on transaction.origin\n * @return T\n *\n * @public\n */\n transact (f, origin = null) {\n return transact(this, f, origin)\n }\n\n /**\n * Define a shared data type.\n *\n * Multiple calls of `ydoc.get(name, TypeConstructor)` yield the same result\n * and do not overwrite each other. I.e.\n * `ydoc.get(name, Y.Array) === ydoc.get(name, Y.Array)`\n *\n * After this method is called, the type is also available on `ydoc.share.get(name)`.\n *\n * *Best Practices:*\n * Define all types right after the Y.Doc instance is created and store them in a separate object.\n * Also use the typed methods `getText(name)`, `getArray(name)`, ..\n *\n * @template {typeof AbstractType} Type\n * @example\n * const ydoc = new Y.Doc(..)\n * const appState = {\n * document: ydoc.getText('document')\n * comments: ydoc.getArray('comments')\n * }\n *\n * @param {string} name\n * @param {Type} TypeConstructor The constructor of the type definition. E.g. Y.Text, Y.Array, Y.Map, ...\n * @return {InstanceType} The created type. Constructed with TypeConstructor\n *\n * @public\n */\n get (name, TypeConstructor = /** @type {any} */ (AbstractType)) {\n const type = map.setIfUndefined(this.share, name, () => {\n // @ts-ignore\n const t = new TypeConstructor()\n t._integrate(this, null)\n return t\n })\n const Constr = type.constructor\n if (TypeConstructor !== AbstractType && Constr !== TypeConstructor) {\n if (Constr === AbstractType) {\n // @ts-ignore\n const t = new TypeConstructor()\n t._map = type._map\n type._map.forEach(/** @param {Item?} n */ n => {\n for (; n !== null; n = n.left) {\n // @ts-ignore\n n.parent = t\n }\n })\n t._start = type._start\n for (let n = t._start; n !== null; n = n.right) {\n n.parent = t\n }\n t._length = type._length\n this.share.set(name, t)\n t._integrate(this, null)\n return /** @type {InstanceType} */ (t)\n } else {\n throw new Error(`Type with the name ${name} has already been defined with a different constructor`)\n }\n }\n return /** @type {InstanceType} */ (type)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YArray}\n *\n * @public\n */\n getArray (name = '') {\n return /** @type {YArray} */ (this.get(name, YArray))\n }\n\n /**\n * @param {string} [name]\n * @return {YText}\n *\n * @public\n */\n getText (name = '') {\n return this.get(name, YText)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YMap}\n *\n * @public\n */\n getMap (name = '') {\n return /** @type {YMap} */ (this.get(name, YMap))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlElement}\n *\n * @public\n */\n getXmlElement (name = '') {\n return /** @type {YXmlElement<{[key:string]:string}>} */ (this.get(name, YXmlElement))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlFragment}\n *\n * @public\n */\n getXmlFragment (name = '') {\n return this.get(name, YXmlFragment)\n }\n\n /**\n * Converts the entire document into a js object, recursively traversing each yjs type\n * Doesn't log types that have not been defined (using ydoc.getType(..)).\n *\n * @deprecated Do not use this method and rather call toJSON directly on the shared types.\n *\n * @return {Object}\n */\n toJSON () {\n /**\n * @type {Object}\n */\n const doc = {}\n\n this.share.forEach((value, key) => {\n doc[key] = value.toJSON()\n })\n\n return doc\n }\n\n /**\n * Emit `destroy` event and unregister all event handlers.\n */\n destroy () {\n this.isDestroyed = true\n array.from(this.subdocs).forEach(subdoc => subdoc.destroy())\n const item = this._item\n if (item !== null) {\n this._item = null\n const content = /** @type {ContentDoc} */ (item.content)\n content.doc = new Doc({ guid: this.guid, ...content.opts, shouldLoad: false })\n content.doc._item = item\n transact(/** @type {any} */ (item).parent.doc, transaction => {\n const doc = content.doc\n if (!item.deleted) {\n transaction.subdocsAdded.add(doc)\n }\n transaction.subdocsRemoved.add(this)\n }, null, true)\n }\n // @ts-ignore\n this.emit('destroyed', [true]) // DEPRECATED!\n this.emit('destroy', [this])\n super.destroy()\n }\n}\n","import * as buffer from 'lib0/buffer'\nimport * as decoding from 'lib0/decoding'\nimport {\n ID, createID\n} from '../internals.js'\n\nexport class DSDecoderV1 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n this.restDecoder = decoder\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n}\n\nexport class UpdateDecoderV1 extends DSDecoderV1 {\n /**\n * @return {ID}\n */\n readLeftID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return decoding.readUint8(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readString () {\n return decoding.readVarString(this.restDecoder)\n }\n\n /**\n * @return {boolean} isKey\n */\n readParentInfo () {\n return decoding.readVarUint(this.restDecoder) === 1\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readTypeRef () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number} len\n */\n readLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return buffer.copyUint8Array(decoding.readVarUint8Array(this.restDecoder))\n }\n\n /**\n * Legacy implementation uses JSON parse. We use any-decoding in v2.\n *\n * @return {any}\n */\n readJSON () {\n return JSON.parse(decoding.readVarString(this.restDecoder))\n }\n\n /**\n * @return {string}\n */\n readKey () {\n return decoding.readVarString(this.restDecoder)\n }\n}\n\nexport class DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n /**\n * @private\n */\n this.dsCurrVal = 0\n this.restDecoder = decoder\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n this.dsCurrVal += decoding.readVarUint(this.restDecoder)\n return this.dsCurrVal\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n const diff = decoding.readVarUint(this.restDecoder) + 1\n this.dsCurrVal += diff\n return diff\n }\n}\n\nexport class UpdateDecoderV2 extends DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n super(decoder)\n /**\n * List of cached keys. If the keys[id] does not exist, we read a new key\n * from stringEncoder and push it to keys.\n *\n * @type {Array}\n */\n this.keys = []\n decoding.readVarUint(decoder) // read feature flag - currently unused\n this.keyClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.clientDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.leftClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.rightClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.infoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8)\n this.stringDecoder = new decoding.StringDecoder(decoding.readVarUint8Array(decoder))\n this.parentInfoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8)\n this.typeRefDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.lenDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n }\n\n /**\n * @return {ID}\n */\n readLeftID () {\n return new ID(this.clientDecoder.read(), this.leftClockDecoder.read())\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return new ID(this.clientDecoder.read(), this.rightClockDecoder.read())\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return this.clientDecoder.read()\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return /** @type {number} */ (this.infoDecoder.read())\n }\n\n /**\n * @return {string}\n */\n readString () {\n return this.stringDecoder.read()\n }\n\n /**\n * @return {boolean}\n */\n readParentInfo () {\n return this.parentInfoDecoder.read() === 1\n }\n\n /**\n * @return {number} An unsigned 8-bit integer\n */\n readTypeRef () {\n return this.typeRefDecoder.read()\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number}\n */\n readLen () {\n return this.lenDecoder.read()\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return decoding.readVarUint8Array(this.restDecoder)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @return {any}\n */\n readJSON () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readKey () {\n const keyClock = this.keyClockDecoder.read()\n if (keyClock < this.keys.length) {\n return this.keys[keyClock]\n } else {\n const key = this.stringDecoder.read()\n this.keys.push(key)\n return key\n }\n }\n}\n","import * as error from 'lib0/error'\nimport * as encoding from 'lib0/encoding'\n\nimport {\n ID // eslint-disable-line\n} from '../internals.js'\n\nexport class DSEncoderV1 {\n constructor () {\n this.restEncoder = encoding.createEncoder()\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n encoding.writeVarUint(this.restEncoder, clock)\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n encoding.writeVarUint(this.restEncoder, len)\n }\n}\n\nexport class UpdateEncoderV1 extends DSEncoderV1 {\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n encoding.writeVarUint(this.restEncoder, id.client)\n encoding.writeVarUint(this.restEncoder, id.clock)\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n encoding.writeVarUint(this.restEncoder, id.client)\n encoding.writeVarUint(this.restEncoder, id.clock)\n }\n\n /**\n * Use writeClient and writeClock instead of writeID if possible.\n * @param {number} client\n */\n writeClient (client) {\n encoding.writeVarUint(this.restEncoder, client)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n encoding.writeUint8(this.restEncoder, info)\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n encoding.writeVarString(this.restEncoder, s)\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n encoding.writeVarUint(this.restEncoder, isYKey ? 1 : 0)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n encoding.writeVarUint(this.restEncoder, info)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n encoding.writeVarUint(this.restEncoder, len)\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any)\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf)\n }\n\n /**\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeVarString(this.restEncoder, JSON.stringify(embed))\n }\n\n /**\n * @param {string} key\n */\n writeKey (key) {\n encoding.writeVarString(this.restEncoder, key)\n }\n}\n\nexport class DSEncoderV2 {\n constructor () {\n this.restEncoder = encoding.createEncoder() // encodes all the rest / non-optimized\n this.dsCurrVal = 0\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n const diff = clock - this.dsCurrVal\n this.dsCurrVal = clock\n encoding.writeVarUint(this.restEncoder, diff)\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n if (len === 0) {\n error.unexpectedCase()\n }\n encoding.writeVarUint(this.restEncoder, len - 1)\n this.dsCurrVal += len\n }\n}\n\nexport class UpdateEncoderV2 extends DSEncoderV2 {\n constructor () {\n super()\n /**\n * @type {Map}\n */\n this.keyMap = new Map()\n /**\n * Refers to the next uniqe key-identifier to me used.\n * See writeKey method for more information.\n *\n * @type {number}\n */\n this.keyClock = 0\n this.keyClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.clientEncoder = new encoding.UintOptRleEncoder()\n this.leftClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.rightClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.infoEncoder = new encoding.RleEncoder(encoding.writeUint8)\n this.stringEncoder = new encoding.StringEncoder()\n this.parentInfoEncoder = new encoding.RleEncoder(encoding.writeUint8)\n this.typeRefEncoder = new encoding.UintOptRleEncoder()\n this.lenEncoder = new encoding.UintOptRleEncoder()\n }\n\n toUint8Array () {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, 0) // this is a feature flag that we might use in the future\n encoding.writeVarUint8Array(encoder, this.keyClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.clientEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.leftClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.rightClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.infoEncoder))\n encoding.writeVarUint8Array(encoder, this.stringEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.parentInfoEncoder))\n encoding.writeVarUint8Array(encoder, this.typeRefEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.lenEncoder.toUint8Array())\n // @note The rest encoder is appended! (note the missing var)\n encoding.writeUint8Array(encoder, encoding.toUint8Array(this.restEncoder))\n return encoding.toUint8Array(encoder)\n }\n\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n this.clientEncoder.write(id.client)\n this.leftClockEncoder.write(id.clock)\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n this.clientEncoder.write(id.client)\n this.rightClockEncoder.write(id.clock)\n }\n\n /**\n * @param {number} client\n */\n writeClient (client) {\n this.clientEncoder.write(client)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n this.infoEncoder.write(info)\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n this.stringEncoder.write(s)\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n this.parentInfoEncoder.write(isYKey ? 1 : 0)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n this.typeRefEncoder.write(info)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n this.lenEncoder.write(len)\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any)\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeAny(this.restEncoder, embed)\n }\n\n /**\n * Property keys are often reused. For example, in y-prosemirror the key `bold` might\n * occur very often. For a 3d application, the key `position` might occur very often.\n *\n * We cache these keys in a Map and refer to them via a unique number.\n *\n * @param {string} key\n */\n writeKey (key) {\n const clock = this.keyMap.get(key)\n if (clock === undefined) {\n /**\n * @todo uncomment to introduce this feature finally\n *\n * Background. The ContentFormat object was always encoded using writeKey, but the decoder used to use readString.\n * Furthermore, I forgot to set the keyclock. So everything was working fine.\n *\n * However, this feature here is basically useless as it is not being used (it actually only consumes extra memory).\n *\n * I don't know yet how to reintroduce this feature..\n *\n * Older clients won't be able to read updates when we reintroduce this feature. So this should probably be done using a flag.\n *\n */\n // this.keyMap.set(key, this.keyClock)\n this.keyClockEncoder.write(this.keyClock++)\n this.stringEncoder.write(key)\n } else {\n this.keyClockEncoder.write(clock)\n }\n }\n}\n","/**\n * @module encoding\n */\n/*\n * We use the first five bits in the info flag for determining the type of the struct.\n *\n * 0: GC\n * 1: Item with Deleted content\n * 2: Item with JSON content\n * 3: Item with Binary content\n * 4: Item with String content\n * 5: Item with Embed content (for richtext content)\n * 6: Item with Format content (a formatting marker for richtext content)\n * 7: Item with Type\n */\n\nimport {\n findIndexSS,\n getState,\n createID,\n getStateVector,\n readAndApplyDeleteSet,\n writeDeleteSet,\n createDeleteSetFromStructStore,\n transact,\n readItemContent,\n UpdateDecoderV1,\n UpdateDecoderV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n DSEncoderV2,\n DSDecoderV1,\n DSEncoderV1,\n mergeUpdates,\n mergeUpdatesV2,\n Skip,\n diffUpdateV2,\n convertUpdateFormatV2ToV1,\n DSDecoderV2, Doc, Transaction, GC, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as binary from 'lib0/binary'\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as array from 'lib0/array'\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Array} structs All structs by `client`\n * @param {number} client\n * @param {number} clock write structs starting with `ID(client,clock)`\n *\n * @function\n */\nconst writeStructs = (encoder, structs, client, clock) => {\n // write first id\n clock = math.max(clock, structs[0].id.clock) // make sure the first id exists\n const startNewStructs = findIndexSS(structs, clock)\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, structs.length - startNewStructs)\n encoder.writeClient(client)\n encoding.writeVarUint(encoder.restEncoder, clock)\n const firstStruct = structs[startNewStructs]\n // write first struct with an offset\n firstStruct.write(encoder, clock - firstStruct.id.clock)\n for (let i = startNewStructs + 1; i < structs.length; i++) {\n structs[i].write(encoder, 0)\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {StructStore} store\n * @param {Map} _sm\n *\n * @private\n * @function\n */\nexport const writeClientsStructs = (encoder, store, _sm) => {\n // we filter all valid _sm entries into sm\n const sm = new Map()\n _sm.forEach((clock, client) => {\n // only write if new structs are available\n if (getState(store, client) > clock) {\n sm.set(client, clock)\n }\n })\n getStateVector(store).forEach((_clock, client) => {\n if (!_sm.has(client)) {\n sm.set(client, 0)\n }\n })\n // write # states that were updated\n encoding.writeVarUint(encoder.restEncoder, sm.size)\n // Write items with higher client ids first\n // This heavily improves the conflict algorithm.\n array.from(sm.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n writeStructs(encoder, /** @type {Array} */ (store.clients.get(client)), client, clock)\n })\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder The decoder object to read data from.\n * @param {Doc} doc\n * @return {Map }>}\n *\n * @private\n * @function\n */\nexport const readClientsStructRefs = (decoder, doc) => {\n /**\n * @type {Map }>}\n */\n const clientRefs = map.create()\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder)\n /**\n * @type {Array}\n */\n const refs = new Array(numberOfStructs)\n const client = decoder.readClient()\n let clock = decoding.readVarUint(decoder.restDecoder)\n // const start = performance.now()\n clientRefs.set(client, { i: 0, refs })\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo()\n switch (binary.BITS5 & info) {\n case 0: { // GC\n const len = decoder.readLen()\n refs[i] = new GC(createID(client, clock), len)\n clock += len\n break\n }\n case 10: { // Skip Struct (nothing to apply)\n // @todo we could reduce the amount of checks by adding Skip struct to clientRefs so we know that something is missing.\n const len = decoding.readVarUint(decoder.restDecoder)\n refs[i] = new Skip(createID(client, clock), len)\n clock += len\n break\n }\n default: { // Item with content\n /**\n * The optimized implementation doesn't use any variables because inlining variables is faster.\n * Below a non-optimized version is shown that implements the basic algorithm with\n * a few comments\n */\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n cantCopyParentInfo ? (decoder.readParentInfo() ? doc.get(decoder.readString()) : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n /* A non-optimized implementation of the above algorithm:\n\n // The item that was originally to the left of this item.\n const origin = (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null\n // The item that was originally to the right of this item.\n const rightOrigin = (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n const hasParentYKey = cantCopyParentInfo ? decoder.readParentInfo() : false\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const parentYKey = cantCopyParentInfo && hasParentYKey ? decoder.readString() : null\n\n const struct = new Item(\n createID(client, clock),\n null, // left\n origin, // origin\n null, // right\n rightOrigin, // right origin\n cantCopyParentInfo && !hasParentYKey ? decoder.readLeftID() : (parentYKey !== null ? doc.get(parentYKey) : null), // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n */\n refs[i] = struct\n clock += struct.length\n }\n }\n }\n // console.log('time to read: ', performance.now() - start) // @todo remove\n }\n return clientRefs\n}\n\n/**\n * Resume computing structs generated by struct readers.\n *\n * While there is something to do, we integrate structs in this order\n * 1. top element on stack, if stack is not empty\n * 2. next element from current struct reader (if empty, use next struct reader)\n *\n * If struct causally depends on another struct (ref.missing), we put next reader of\n * `ref.id.client` on top of stack.\n *\n * At some point we find a struct that has no causal dependencies,\n * then we start emptying the stack.\n *\n * It is not possible to have circles: i.e. struct1 (from client1) depends on struct2 (from client2)\n * depends on struct3 (from client1). Therefore the max stack size is eqaul to `structReaders.length`.\n *\n * This method is implemented in a way so that we can resume computation if this update\n * causally depends on another update.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {Map} clientsStructRefs\n * @return { null | { update: Uint8Array, missing: Map } }\n *\n * @private\n * @function\n */\nconst integrateStructs = (transaction, store, clientsStructRefs) => {\n /**\n * @type {Array}\n */\n const stack = []\n // sort them so that we take the higher id first, in case of conflicts the lower id will probably not conflict with the id from the higher user.\n let clientsStructRefsIds = array.from(clientsStructRefs.keys()).sort((a, b) => a - b)\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n const getNextStructTarget = () => {\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n let nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]))\n while (nextStructsTarget.refs.length === nextStructsTarget.i) {\n clientsStructRefsIds.pop()\n if (clientsStructRefsIds.length > 0) {\n nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]))\n } else {\n return null\n }\n }\n return nextStructsTarget\n }\n let curStructsTarget = getNextStructTarget()\n if (curStructsTarget === null) {\n return null\n }\n\n /**\n * @type {StructStore}\n */\n const restStructs = new StructStore()\n const missingSV = new Map()\n /**\n * @param {number} client\n * @param {number} clock\n */\n const updateMissingSv = (client, clock) => {\n const mclock = missingSV.get(client)\n if (mclock == null || mclock > clock) {\n missingSV.set(client, clock)\n }\n }\n /**\n * @type {GC|Item}\n */\n let stackHead = /** @type {any} */ (curStructsTarget).refs[/** @type {any} */ (curStructsTarget).i++]\n // caching the state because it is used very often\n const state = new Map()\n\n const addStackToRestSS = () => {\n for (const item of stack) {\n const client = item.id.client\n const unapplicableItems = clientsStructRefs.get(client)\n if (unapplicableItems) {\n // decrement because we weren't able to apply previous operation\n unapplicableItems.i--\n restStructs.clients.set(client, unapplicableItems.refs.slice(unapplicableItems.i))\n clientsStructRefs.delete(client)\n unapplicableItems.i = 0\n unapplicableItems.refs = []\n } else {\n // item was the last item on clientsStructRefs and the field was already cleared. Add item to restStructs and continue\n restStructs.clients.set(client, [item])\n }\n // remove client from clientsStructRefsIds to prevent users from applying the same update again\n clientsStructRefsIds = clientsStructRefsIds.filter(c => c !== client)\n }\n stack.length = 0\n }\n\n // iterate over all struct readers until we are done\n while (true) {\n if (stackHead.constructor !== Skip) {\n const localClock = map.setIfUndefined(state, stackHead.id.client, () => getState(store, stackHead.id.client))\n const offset = localClock - stackHead.id.clock\n if (offset < 0) {\n // update from the same client is missing\n stack.push(stackHead)\n updateMissingSv(stackHead.id.client, stackHead.id.clock - 1)\n // hid a dead wall, add all items from stack to restSS\n addStackToRestSS()\n } else {\n const missing = stackHead.getMissing(transaction, store)\n if (missing !== null) {\n stack.push(stackHead)\n // get the struct reader that has the missing struct\n /**\n * @type {{ refs: Array, i: number }}\n */\n const structRefs = clientsStructRefs.get(/** @type {number} */ (missing)) || { refs: [], i: 0 }\n if (structRefs.refs.length === structRefs.i) {\n // This update message causally depends on another update message that doesn't exist yet\n updateMissingSv(/** @type {number} */ (missing), getState(store, missing))\n addStackToRestSS()\n } else {\n stackHead = structRefs.refs[structRefs.i++]\n continue\n }\n } else if (offset === 0 || offset < stackHead.length) {\n // all fine, apply the stackhead\n stackHead.integrate(transaction, offset)\n state.set(stackHead.id.client, stackHead.id.clock + stackHead.length)\n }\n }\n }\n // iterate to next stackHead\n if (stack.length > 0) {\n stackHead = /** @type {GC|Item} */ (stack.pop())\n } else if (curStructsTarget !== null && curStructsTarget.i < curStructsTarget.refs.length) {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++])\n } else {\n curStructsTarget = getNextStructTarget()\n if (curStructsTarget === null) {\n // we are done!\n break\n } else {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++])\n }\n }\n }\n if (restStructs.clients.size > 0) {\n const encoder = new UpdateEncoderV2()\n writeClientsStructs(encoder, restStructs, new Map())\n // write empty deleteset\n // writeDeleteSet(encoder, new DeleteSet())\n encoding.writeVarUint(encoder.restEncoder, 0) // => no need for an extra function call, just write 0 deletes\n return { missing: missingSV, update: encoder.toUint8Array() }\n }\n return null\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nexport const writeStructsFromTransaction = (encoder, transaction) => writeClientsStructs(encoder, transaction.doc.store, transaction.beforeState)\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {UpdateDecoderV1 | UpdateDecoderV2} [structDecoder]\n *\n * @function\n */\nexport const readUpdateV2 = (decoder, ydoc, transactionOrigin, structDecoder = new UpdateDecoderV2(decoder)) =>\n transact(ydoc, transaction => {\n // force that transaction.local is set to non-local\n transaction.local = false\n let retry = false\n const doc = transaction.doc\n const store = doc.store\n // let start = performance.now()\n const ss = readClientsStructRefs(structDecoder, doc)\n // console.log('time to read structs: ', performance.now() - start) // @todo remove\n // start = performance.now()\n // console.log('time to merge: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const restStructs = integrateStructs(transaction, store, ss)\n const pending = store.pendingStructs\n if (pending) {\n // check if we can apply something\n for (const [client, clock] of pending.missing) {\n if (clock < getState(store, client)) {\n retry = true\n break\n }\n }\n if (restStructs) {\n // merge restStructs into store.pending\n for (const [client, clock] of restStructs.missing) {\n const mclock = pending.missing.get(client)\n if (mclock == null || mclock > clock) {\n pending.missing.set(client, clock)\n }\n }\n pending.update = mergeUpdatesV2([pending.update, restStructs.update])\n }\n } else {\n store.pendingStructs = restStructs\n }\n // console.log('time to integrate: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const dsRest = readAndApplyDeleteSet(structDecoder, transaction, store)\n if (store.pendingDs) {\n // @todo we could make a lower-bound state-vector check as we do above\n const pendingDSUpdate = new UpdateDecoderV2(decoding.createDecoder(store.pendingDs))\n decoding.readVarUint(pendingDSUpdate.restDecoder) // read 0 structs, because we only encode deletes in pendingdsupdate\n const dsRest2 = readAndApplyDeleteSet(pendingDSUpdate, transaction, store)\n if (dsRest && dsRest2) {\n // case 1: ds1 != null && ds2 != null\n store.pendingDs = mergeUpdatesV2([dsRest, dsRest2])\n } else {\n // case 2: ds1 != null\n // case 3: ds2 != null\n // case 4: ds1 == null && ds2 == null\n store.pendingDs = dsRest || dsRest2\n }\n } else {\n // Either dsRest == null && pendingDs == null OR dsRest != null\n store.pendingDs = dsRest\n }\n // console.log('time to cleanup: ', performance.now() - start) // @todo remove\n // start = performance.now()\n\n // console.log('time to resume delete readers: ', performance.now() - start) // @todo remove\n // start = performance.now()\n if (retry) {\n const update = /** @type {{update: Uint8Array}} */ (store.pendingStructs).update\n store.pendingStructs = null\n applyUpdateV2(transaction.doc, update)\n }\n }, transactionOrigin, false)\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nexport const readUpdate = (decoder, ydoc, transactionOrigin) => readUpdateV2(decoder, ydoc, transactionOrigin, new UpdateDecoderV1(decoder))\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n *\n * @function\n */\nexport const applyUpdateV2 = (ydoc, update, transactionOrigin, YDecoder = UpdateDecoderV2) => {\n const decoder = decoding.createDecoder(update)\n readUpdateV2(decoder, ydoc, transactionOrigin, new YDecoder(decoder))\n}\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nexport const applyUpdate = (ydoc, update, transactionOrigin) => applyUpdateV2(ydoc, update, transactionOrigin, UpdateDecoderV1)\n\n/**\n * Write all the document as a single update message. If you specify the state of the remote client (`targetStateVector`) it will\n * only write the operations that are missing.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Doc} doc\n * @param {Map} [targetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n *\n * @function\n */\nexport const writeStateAsUpdate = (encoder, doc, targetStateVector = new Map()) => {\n writeClientsStructs(encoder, doc.store, targetStateVector)\n writeDeleteSet(encoder, createDeleteSetFromStructStore(doc.store))\n}\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @param {UpdateEncoderV1 | UpdateEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateAsUpdateV2 = (doc, encodedTargetStateVector = new Uint8Array([0]), encoder = new UpdateEncoderV2()) => {\n const targetStateVector = decodeStateVector(encodedTargetStateVector)\n writeStateAsUpdate(encoder, doc, targetStateVector)\n const updates = [encoder.toUint8Array()]\n // also add the pending updates (if there are any)\n if (doc.store.pendingDs) {\n updates.push(doc.store.pendingDs)\n }\n if (doc.store.pendingStructs) {\n updates.push(diffUpdateV2(doc.store.pendingStructs.update, encodedTargetStateVector))\n }\n if (updates.length > 1) {\n if (encoder.constructor === UpdateEncoderV1) {\n return mergeUpdates(updates.map((update, i) => i === 0 ? update : convertUpdateFormatV2ToV1(update)))\n } else if (encoder.constructor === UpdateEncoderV2) {\n return mergeUpdatesV2(updates)\n }\n }\n return updates[0]\n}\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateAsUpdate = (doc, encodedTargetStateVector) => encodeStateAsUpdateV2(doc, encodedTargetStateVector, new UpdateEncoderV1())\n\n/**\n * Read state vector from Decoder and return as Map\n *\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nexport const readStateVector = decoder => {\n const ss = new Map()\n const ssLength = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < ssLength; i++) {\n const client = decoding.readVarUint(decoder.restDecoder)\n const clock = decoding.readVarUint(decoder.restDecoder)\n ss.set(client, clock)\n }\n return ss\n}\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\n// export const decodeStateVectorV2 = decodedState => readStateVector(new DSDecoderV2(decoding.createDecoder(decodedState)))\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nexport const decodeStateVector = decodedState => readStateVector(new DSDecoderV1(decoding.createDecoder(decodedState)))\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Map} sv\n * @function\n */\nexport const writeStateVector = (encoder, sv) => {\n encoding.writeVarUint(encoder.restEncoder, sv.size)\n array.from(sv.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n encoding.writeVarUint(encoder.restEncoder, client) // @todo use a special client decoder that is based on mapping\n encoding.writeVarUint(encoder.restEncoder, clock)\n })\n return encoder\n}\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Doc} doc\n *\n * @function\n */\nexport const writeDocumentStateVector = (encoder, doc) => writeStateVector(encoder, getStateVector(doc.store))\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateVectorV2 = (doc, encoder = new DSEncoderV2()) => {\n if (doc instanceof Map) {\n writeStateVector(encoder, doc)\n } else {\n writeDocumentStateVector(encoder, doc)\n }\n return encoder.toUint8Array()\n}\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateVector = doc => encodeStateVectorV2(doc, new DSEncoderV1())\n","import * as f from 'lib0/function'\n\n/**\n * General event handler implementation.\n *\n * @template ARG0, ARG1\n *\n * @private\n */\nexport class EventHandler {\n constructor () {\n /**\n * @type {Array}\n */\n this.l = []\n }\n}\n\n/**\n * @template ARG0,ARG1\n * @returns {EventHandler}\n *\n * @private\n * @function\n */\nexport const createEventHandler = () => new EventHandler()\n\n/**\n * Adds an event listener that is called when\n * {@link EventHandler#callEventListeners} is called.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler.\n *\n * @private\n * @function\n */\nexport const addEventHandlerListener = (eventHandler, f) =>\n eventHandler.l.push(f)\n\n/**\n * Removes an event listener.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler that was added with\n * {@link EventHandler#addEventListener}\n *\n * @private\n * @function\n */\nexport const removeEventHandlerListener = (eventHandler, f) => {\n const l = eventHandler.l\n const len = l.length\n eventHandler.l = l.filter(g => f !== g)\n if (len === eventHandler.l.length) {\n console.error('[yjs] Tried to remove event handler that doesn\\'t exist.')\n }\n}\n\n/**\n * Removes all event listeners.\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n *\n * @private\n * @function\n */\nexport const removeAllEventHandlerListeners = eventHandler => {\n eventHandler.l.length = 0\n}\n\n/**\n * Call all event listeners that were added via\n * {@link EventHandler#addEventListener}.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {ARG0} arg0\n * @param {ARG1} arg1\n *\n * @private\n * @function\n */\nexport const callEventHandlerListeners = (eventHandler, arg0, arg1) =>\n f.callAll(eventHandler.l, [arg0, arg1])\n","import { AbstractType } from '../internals.js' // eslint-disable-line\n\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport * as error from 'lib0/error'\n\nexport class ID {\n /**\n * @param {number} client client id\n * @param {number} clock unique per client id, continuous number\n */\n constructor (client, clock) {\n /**\n * Client id\n * @type {number}\n */\n this.client = client\n /**\n * unique per client id, continuous number\n * @type {number}\n */\n this.clock = clock\n }\n}\n\n/**\n * @param {ID | null} a\n * @param {ID | null} b\n * @return {boolean}\n *\n * @function\n */\nexport const compareIDs = (a, b) => a === b || (a !== null && b !== null && a.client === b.client && a.clock === b.clock)\n\n/**\n * @param {number} client\n * @param {number} clock\n *\n * @private\n * @function\n */\nexport const createID = (client, clock) => new ID(client, clock)\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {ID} id\n *\n * @private\n * @function\n */\nexport const writeID = (encoder, id) => {\n encoding.writeVarUint(encoder, id.client)\n encoding.writeVarUint(encoder, id.clock)\n}\n\n/**\n * Read ID.\n * * If first varUint read is 0xFFFFFF a RootID is returned.\n * * Otherwise an ID is returned\n *\n * @param {decoding.Decoder} decoder\n * @return {ID}\n *\n * @private\n * @function\n */\nexport const readID = decoder =>\n createID(decoding.readVarUint(decoder), decoding.readVarUint(decoder))\n\n/**\n * The top types are mapped from y.share.get(keyname) => type.\n * `type` does not store any information about the `keyname`.\n * This function finds the correct `keyname` for `type` and throws otherwise.\n *\n * @param {AbstractType} type\n * @return {string}\n *\n * @private\n * @function\n */\nexport const findRootTypeKey = type => {\n // @ts-ignore _y must be defined, otherwise unexpected case\n for (const [key, value] of type.doc.share.entries()) {\n if (value === type) {\n return key\n }\n }\n throw error.unexpectedCase()\n}\n","import { AbstractType, Item } from '../internals.js' // eslint-disable-line\n\n/**\n * Check if `parent` is a parent of `child`.\n *\n * @param {AbstractType} parent\n * @param {Item|null} child\n * @return {Boolean} Whether `parent` is a parent of `child`.\n *\n * @private\n * @function\n */\nexport const isParentOf = (parent, child) => {\n while (child !== null) {\n if (child.parent === parent) {\n return true\n }\n child = /** @type {AbstractType} */ (child.parent)._item\n }\n return false\n}\n","import {\n AbstractType // eslint-disable-line\n} from '../internals.js'\n\n/**\n * Convenient helper to log type information.\n *\n * Do not use in productive systems as the output can be immense!\n *\n * @param {AbstractType} type\n */\nexport const logType = type => {\n const res = []\n let n = type._start\n while (n) {\n res.push(n)\n n = n.right\n }\n console.log('Children: ', res)\n console.log('Children content: ', res.filter(m => !m.deleted).map(m => m.content))\n}\n","import {\n YArray,\n YMap,\n readDeleteSet,\n writeDeleteSet,\n createDeleteSet,\n DSEncoderV1, DSDecoderV1, ID, DeleteSet, YArrayEvent, Transaction, Doc // eslint-disable-line\n} from '../internals.js'\n\nimport * as decoding from 'lib0/decoding'\n\nimport { mergeDeleteSets, isDeleted } from './DeleteSet.js'\n\nexport class PermanentUserData {\n /**\n * @param {Doc} doc\n * @param {YMap} [storeType]\n */\n constructor (doc, storeType = doc.getMap('users')) {\n /**\n * @type {Map}\n */\n const dss = new Map()\n this.yusers = storeType\n this.doc = doc\n /**\n * Maps from clientid to userDescription\n *\n * @type {Map}\n */\n this.clients = new Map()\n this.dss = dss\n /**\n * @param {YMap} user\n * @param {string} userDescription\n */\n const initUser = (user, userDescription) => {\n /**\n * @type {YArray}\n */\n const ds = user.get('ds')\n const ids = user.get('ids')\n const addClientId = /** @param {number} clientid */ clientid => this.clients.set(clientid, userDescription)\n ds.observe(/** @param {YArrayEvent} event */ event => {\n event.changes.added.forEach(item => {\n item.content.getContent().forEach(encodedDs => {\n if (encodedDs instanceof Uint8Array) {\n this.dss.set(userDescription, mergeDeleteSets([this.dss.get(userDescription) || createDeleteSet(), readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs)))]))\n }\n })\n })\n })\n this.dss.set(userDescription, mergeDeleteSets(ds.map(encodedDs => readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs))))))\n ids.observe(/** @param {YArrayEvent} event */ event =>\n event.changes.added.forEach(item => item.content.getContent().forEach(addClientId))\n )\n ids.forEach(addClientId)\n }\n // observe users\n storeType.observe(event => {\n event.keysChanged.forEach(userDescription =>\n initUser(storeType.get(userDescription), userDescription)\n )\n })\n // add intial data\n storeType.forEach(initUser)\n }\n\n /**\n * @param {Doc} doc\n * @param {number} clientid\n * @param {string} userDescription\n * @param {Object} conf\n * @param {function(Transaction, DeleteSet):boolean} [conf.filter]\n */\n setUserMapping (doc, clientid, userDescription, { filter = () => true } = {}) {\n const users = this.yusers\n let user = users.get(userDescription)\n if (!user) {\n user = new YMap()\n user.set('ids', new YArray())\n user.set('ds', new YArray())\n users.set(userDescription, user)\n }\n user.get('ids').push([clientid])\n users.observe(_event => {\n setTimeout(() => {\n const userOverwrite = users.get(userDescription)\n if (userOverwrite !== user) {\n // user was overwritten, port all data over to the next user object\n // @todo Experiment with Y.Sets here\n user = userOverwrite\n // @todo iterate over old type\n this.clients.forEach((_userDescription, clientid) => {\n if (userDescription === _userDescription) {\n user.get('ids').push([clientid])\n }\n })\n const encoder = new DSEncoderV1()\n const ds = this.dss.get(userDescription)\n if (ds) {\n writeDeleteSet(encoder, ds)\n user.get('ds').push([encoder.toUint8Array()])\n }\n }\n }, 0)\n })\n doc.on('afterTransaction', /** @param {Transaction} transaction */ transaction => {\n setTimeout(() => {\n const yds = user.get('ds')\n const ds = transaction.deleteSet\n if (transaction.local && ds.clients.size > 0 && filter(transaction, ds)) {\n const encoder = new DSEncoderV1()\n writeDeleteSet(encoder, ds)\n yds.push([encoder.toUint8Array()])\n }\n })\n })\n }\n\n /**\n * @param {number} clientid\n * @return {any}\n */\n getUserByClientId (clientid) {\n return this.clients.get(clientid) || null\n }\n\n /**\n * @param {ID} id\n * @return {string | null}\n */\n getUserByDeletedId (id) {\n for (const [userDescription, ds] of this.dss.entries()) {\n if (isDeleted(ds, id)) {\n return userDescription\n }\n }\n return null\n }\n}\n","import {\n writeID,\n readID,\n compareIDs,\n getState,\n findRootTypeKey,\n Item,\n createID,\n ContentType,\n followRedone,\n getItem,\n ID, Doc, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as error from 'lib0/error'\n\n/**\n * A relative position is based on the Yjs model and is not affected by document changes.\n * E.g. If you place a relative position before a certain character, it will always point to this character.\n * If you place a relative position at the end of a type, it will always point to the end of the type.\n *\n * A numeric position is often unsuited for user selections, because it does not change when content is inserted\n * before or after.\n *\n * ```Insert(0, 'x')('a|bc') = 'xa|bc'``` Where | is the relative position.\n *\n * One of the properties must be defined.\n *\n * @example\n * // Current cursor position is at position 10\n * const relativePosition = createRelativePositionFromIndex(yText, 10)\n * // modify yText\n * yText.insert(0, 'abc')\n * yText.delete(3, 10)\n * // Compute the cursor position\n * const absolutePosition = createAbsolutePositionFromRelativePosition(y, relativePosition)\n * absolutePosition.type === yText // => true\n * console.log('cursor location is ' + absolutePosition.index) // => cursor location is 3\n *\n */\nexport class RelativePosition {\n /**\n * @param {ID|null} type\n * @param {string|null} tname\n * @param {ID|null} item\n * @param {number} assoc\n */\n constructor (type, tname, item, assoc = 0) {\n /**\n * @type {ID|null}\n */\n this.type = type\n /**\n * @type {string|null}\n */\n this.tname = tname\n /**\n * @type {ID | null}\n */\n this.item = item\n /**\n * A relative position is associated to a specific character. By default\n * assoc >= 0, the relative position is associated to the character\n * after the meant position.\n * I.e. position 1 in 'ab' is associated to character 'b'.\n *\n * If assoc < 0, then the relative position is associated to the caharacter\n * before the meant position.\n *\n * @type {number}\n */\n this.assoc = assoc\n }\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {any}\n */\nexport const relativePositionToJSON = rpos => {\n const json = {}\n if (rpos.type) {\n json.type = rpos.type\n }\n if (rpos.tname) {\n json.tname = rpos.tname\n }\n if (rpos.item) {\n json.item = rpos.item\n }\n if (rpos.assoc != null) {\n json.assoc = rpos.assoc\n }\n return json\n}\n\n/**\n * @param {any} json\n * @return {RelativePosition}\n *\n * @function\n */\nexport const createRelativePositionFromJSON = json => new RelativePosition(json.type == null ? null : createID(json.type.client, json.type.clock), json.tname ?? null, json.item == null ? null : createID(json.item.client, json.item.clock), json.assoc == null ? 0 : json.assoc)\n\nexport class AbsolutePosition {\n /**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n */\n constructor (type, index, assoc = 0) {\n /**\n * @type {AbstractType}\n */\n this.type = type\n /**\n * @type {number}\n */\n this.index = index\n this.assoc = assoc\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n *\n * @function\n */\nexport const createAbsolutePosition = (type, index, assoc = 0) => new AbsolutePosition(type, index, assoc)\n\n/**\n * @param {AbstractType} type\n * @param {ID|null} item\n * @param {number} [assoc]\n *\n * @function\n */\nexport const createRelativePosition = (type, item, assoc) => {\n let typeid = null\n let tname = null\n if (type._item === null) {\n tname = findRootTypeKey(type)\n } else {\n typeid = createID(type._item.id.client, type._item.id.clock)\n }\n return new RelativePosition(typeid, tname, item, assoc)\n}\n\n/**\n * Create a relativePosition based on a absolute position.\n *\n * @param {AbstractType} type The base type (e.g. YText or YArray).\n * @param {number} index The absolute position.\n * @param {number} [assoc]\n * @return {RelativePosition}\n *\n * @function\n */\nexport const createRelativePositionFromTypeIndex = (type, index, assoc = 0) => {\n let t = type._start\n if (assoc < 0) {\n // associated to the left character or the beginning of a type, increment index if possible.\n if (index === 0) {\n return createRelativePosition(type, null, assoc)\n }\n index--\n }\n while (t !== null) {\n if (!t.deleted && t.countable) {\n if (t.length > index) {\n // case 1: found position somewhere in the linked list\n return createRelativePosition(type, createID(t.id.client, t.id.clock + index), assoc)\n }\n index -= t.length\n }\n if (t.right === null && assoc < 0) {\n // left-associated position, return last available id\n return createRelativePosition(type, t.lastId, assoc)\n }\n t = t.right\n }\n return createRelativePosition(type, null, assoc)\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {RelativePosition} rpos\n *\n * @function\n */\nexport const writeRelativePosition = (encoder, rpos) => {\n const { type, tname, item, assoc } = rpos\n if (item !== null) {\n encoding.writeVarUint(encoder, 0)\n writeID(encoder, item)\n } else if (tname !== null) {\n // case 2: found position at the end of the list and type is stored in y.share\n encoding.writeUint8(encoder, 1)\n encoding.writeVarString(encoder, tname)\n } else if (type !== null) {\n // case 3: found position at the end of the list and type is attached to an item\n encoding.writeUint8(encoder, 2)\n writeID(encoder, type)\n } else {\n throw error.unexpectedCase()\n }\n encoding.writeVarInt(encoder, assoc)\n return encoder\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {Uint8Array}\n */\nexport const encodeRelativePosition = rpos => {\n const encoder = encoding.createEncoder()\n writeRelativePosition(encoder, rpos)\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * @param {decoding.Decoder} decoder\n * @return {RelativePosition}\n *\n * @function\n */\nexport const readRelativePosition = decoder => {\n let type = null\n let tname = null\n let itemID = null\n switch (decoding.readVarUint(decoder)) {\n case 0:\n // case 1: found position somewhere in the linked list\n itemID = readID(decoder)\n break\n case 1:\n // case 2: found position at the end of the list and type is stored in y.share\n tname = decoding.readVarString(decoder)\n break\n case 2: {\n // case 3: found position at the end of the list and type is attached to an item\n type = readID(decoder)\n }\n }\n const assoc = decoding.hasContent(decoder) ? decoding.readVarInt(decoder) : 0\n return new RelativePosition(type, tname, itemID, assoc)\n}\n\n/**\n * @param {Uint8Array} uint8Array\n * @return {RelativePosition}\n */\nexport const decodeRelativePosition = uint8Array => readRelativePosition(decoding.createDecoder(uint8Array))\n\n/**\n * Transform a relative position to an absolute position.\n *\n * If you want to share the relative position with other users, you should set\n * `followUndoneDeletions` to false to get consistent results across all clients.\n *\n * When calculating the absolute position, we try to follow the \"undone deletions\". This yields\n * better results for the user who performed undo. However, only the user who performed the undo\n * will get the better results, the other users don't know which operations recreated a deleted\n * range of content. There is more information in this ticket: https://github.com/yjs/yjs/issues/638\n *\n * @param {RelativePosition} rpos\n * @param {Doc} doc\n * @param {boolean} followUndoneDeletions - whether to follow undone deletions - see https://github.com/yjs/yjs/issues/638\n * @return {AbsolutePosition|null}\n *\n * @function\n */\nexport const createAbsolutePositionFromRelativePosition = (rpos, doc, followUndoneDeletions = true) => {\n const store = doc.store\n const rightID = rpos.item\n const typeID = rpos.type\n const tname = rpos.tname\n const assoc = rpos.assoc\n let type = null\n let index = 0\n if (rightID !== null) {\n if (getState(store, rightID.client) <= rightID.clock) {\n return null\n }\n const res = followUndoneDeletions ? followRedone(store, rightID) : { item: getItem(store, rightID), diff: 0 }\n const right = res.item\n if (!(right instanceof Item)) {\n return null\n }\n type = /** @type {AbstractType} */ (right.parent)\n if (type._item === null || !type._item.deleted) {\n index = (right.deleted || !right.countable) ? 0 : (res.diff + (assoc >= 0 ? 0 : 1)) // adjust position based on left association if necessary\n let n = right.left\n while (n !== null) {\n if (!n.deleted && n.countable) {\n index += n.length\n }\n n = n.left\n }\n }\n } else {\n if (tname !== null) {\n type = doc.get(tname)\n } else if (typeID !== null) {\n if (getState(store, typeID.client) <= typeID.clock) {\n // type does not exist yet\n return null\n }\n const { item } = followUndoneDeletions ? followRedone(store, typeID) : { item: getItem(store, typeID) }\n if (item instanceof Item && item.content instanceof ContentType) {\n type = item.content.type\n } else {\n // struct is garbage collected\n return null\n }\n } else {\n throw error.unexpectedCase()\n }\n if (assoc >= 0) {\n index = type._length\n } else {\n index = 0\n }\n }\n return createAbsolutePosition(type, index, rpos.assoc)\n}\n\n/**\n * @param {RelativePosition|null} a\n * @param {RelativePosition|null} b\n * @return {boolean}\n *\n * @function\n */\nexport const compareRelativePositions = (a, b) => a === b || (\n a !== null && b !== null && a.tname === b.tname && compareIDs(a.item, b.item) && compareIDs(a.type, b.type) && a.assoc === b.assoc\n)\n","import {\n isDeleted,\n createDeleteSetFromStructStore,\n getStateVector,\n getItemCleanStart,\n iterateDeletedStructs,\n writeDeleteSet,\n writeStateVector,\n readDeleteSet,\n readStateVector,\n createDeleteSet,\n createID,\n getState,\n findIndexSS,\n UpdateEncoderV2,\n applyUpdateV2,\n LazyStructReader,\n equalDeleteSets,\n UpdateDecoderV1, UpdateDecoderV2, DSEncoderV1, DSEncoderV2, DSDecoderV1, DSDecoderV2, Transaction, Doc, DeleteSet, Item, // eslint-disable-line\n mergeDeleteSets\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as set from 'lib0/set'\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\n\nexport class Snapshot {\n /**\n * @param {DeleteSet} ds\n * @param {Map} sv state map\n */\n constructor (ds, sv) {\n /**\n * @type {DeleteSet}\n */\n this.ds = ds\n /**\n * State Map\n * @type {Map}\n */\n this.sv = sv\n }\n}\n\n/**\n * @param {Snapshot} snap1\n * @param {Snapshot} snap2\n * @return {boolean}\n */\nexport const equalSnapshots = (snap1, snap2) => {\n const ds1 = snap1.ds.clients\n const ds2 = snap2.ds.clients\n const sv1 = snap1.sv\n const sv2 = snap2.sv\n if (sv1.size !== sv2.size || ds1.size !== ds2.size) {\n return false\n }\n for (const [key, value] of sv1.entries()) {\n if (sv2.get(key) !== value) {\n return false\n }\n }\n for (const [client, dsitems1] of ds1.entries()) {\n const dsitems2 = ds2.get(client) || []\n if (dsitems1.length !== dsitems2.length) {\n return false\n }\n for (let i = 0; i < dsitems1.length; i++) {\n const dsitem1 = dsitems1[i]\n const dsitem2 = dsitems2[i]\n if (dsitem1.clock !== dsitem2.clock || dsitem1.len !== dsitem2.len) {\n return false\n }\n }\n }\n return true\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n */\nexport const encodeSnapshotV2 = (snapshot, encoder = new DSEncoderV2()) => {\n writeDeleteSet(encoder, snapshot.ds)\n writeStateVector(encoder, snapshot.sv)\n return encoder.toUint8Array()\n}\n\n/**\n * @param {Snapshot} snapshot\n * @return {Uint8Array}\n */\nexport const encodeSnapshot = snapshot => encodeSnapshotV2(snapshot, new DSEncoderV1())\n\n/**\n * @param {Uint8Array} buf\n * @param {DSDecoderV1 | DSDecoderV2} [decoder]\n * @return {Snapshot}\n */\nexport const decodeSnapshotV2 = (buf, decoder = new DSDecoderV2(decoding.createDecoder(buf))) => {\n return new Snapshot(readDeleteSet(decoder), readStateVector(decoder))\n}\n\n/**\n * @param {Uint8Array} buf\n * @return {Snapshot}\n */\nexport const decodeSnapshot = buf => decodeSnapshotV2(buf, new DSDecoderV1(decoding.createDecoder(buf)))\n\n/**\n * @param {DeleteSet} ds\n * @param {Map} sm\n * @return {Snapshot}\n */\nexport const createSnapshot = (ds, sm) => new Snapshot(ds, sm)\n\nexport const emptySnapshot = createSnapshot(createDeleteSet(), new Map())\n\n/**\n * @param {Doc} doc\n * @return {Snapshot}\n */\nexport const snapshot = doc => createSnapshot(createDeleteSetFromStructStore(doc.store), getStateVector(doc.store))\n\n/**\n * @param {Item} item\n * @param {Snapshot|undefined} snapshot\n *\n * @protected\n * @function\n */\nexport const isVisible = (item, snapshot) => snapshot === undefined\n ? !item.deleted\n : snapshot.sv.has(item.id.client) && (snapshot.sv.get(item.id.client) || 0) > item.id.clock && !isDeleted(snapshot.ds, item.id)\n\n/**\n * @param {Transaction} transaction\n * @param {Snapshot} snapshot\n */\nexport const splitSnapshotAffectedStructs = (transaction, snapshot) => {\n const meta = map.setIfUndefined(transaction.meta, splitSnapshotAffectedStructs, set.create)\n const store = transaction.doc.store\n // check if we already split for this snapshot\n if (!meta.has(snapshot)) {\n snapshot.sv.forEach((clock, client) => {\n if (clock < getState(store, client)) {\n getItemCleanStart(transaction, createID(client, clock))\n }\n })\n iterateDeletedStructs(transaction, snapshot.ds, _item => {})\n meta.add(snapshot)\n }\n}\n\n/**\n * @example\n * const ydoc = new Y.Doc({ gc: false })\n * ydoc.getText().insert(0, 'world!')\n * const snapshot = Y.snapshot(ydoc)\n * ydoc.getText().insert(0, 'hello ')\n * const restored = Y.createDocFromSnapshot(ydoc, snapshot)\n * assert(restored.getText().toString() === 'world!')\n *\n * @param {Doc} originDoc\n * @param {Snapshot} snapshot\n * @param {Doc} [newDoc] Optionally, you may define the Yjs document that receives the data from originDoc\n * @return {Doc}\n */\nexport const createDocFromSnapshot = (originDoc, snapshot, newDoc = new Doc()) => {\n if (originDoc.gc) {\n // we should not try to restore a GC-ed document, because some of the restored items might have their content deleted\n throw new Error('Garbage-collection must be disabled in `originDoc`!')\n }\n const { sv, ds } = snapshot\n\n const encoder = new UpdateEncoderV2()\n originDoc.transact(transaction => {\n let size = 0\n sv.forEach(clock => {\n if (clock > 0) {\n size++\n }\n })\n encoding.writeVarUint(encoder.restEncoder, size)\n // splitting the structs before writing them to the encoder\n for (const [client, clock] of sv) {\n if (clock === 0) {\n continue\n }\n if (clock < getState(originDoc.store, client)) {\n getItemCleanStart(transaction, createID(client, clock))\n }\n const structs = originDoc.store.clients.get(client) || []\n const lastStructIndex = findIndexSS(structs, clock - 1)\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, lastStructIndex + 1)\n encoder.writeClient(client)\n // first clock written is 0\n encoding.writeVarUint(encoder.restEncoder, 0)\n for (let i = 0; i <= lastStructIndex; i++) {\n structs[i].write(encoder, 0)\n }\n }\n writeDeleteSet(encoder, ds)\n })\n\n applyUpdateV2(newDoc, encoder.toUint8Array(), 'snapshot')\n return newDoc\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n */\nexport const snapshotContainsUpdateV2 = (snapshot, update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n if ((snapshot.sv.get(curr.id.client) || 0) < curr.id.clock + curr.length) {\n return false\n }\n }\n const mergedDS = mergeDeleteSets([snapshot.ds, readDeleteSet(updateDecoder)])\n return equalDeleteSets(snapshot.ds, mergedDS)\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n */\nexport const snapshotContainsUpdate = (snapshot, update) => snapshotContainsUpdateV2(snapshot, update, UpdateDecoderV1)\n","import {\n GC,\n splitItem,\n Transaction, ID, Item, DSDecoderV2 // eslint-disable-line\n} from '../internals.js'\n\nimport * as math from 'lib0/math'\nimport * as error from 'lib0/error'\n\nexport class StructStore {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map()\n /**\n * @type {null | { missing: Map, update: Uint8Array }}\n */\n this.pendingStructs = null\n /**\n * @type {null | Uint8Array}\n */\n this.pendingDs = null\n }\n}\n\n/**\n * Return the states as a Map.\n * Note that clock refers to the next expected clock id.\n *\n * @param {StructStore} store\n * @return {Map}\n *\n * @public\n * @function\n */\nexport const getStateVector = store => {\n const sm = new Map()\n store.clients.forEach((structs, client) => {\n const struct = structs[structs.length - 1]\n sm.set(client, struct.id.clock + struct.length)\n })\n return sm\n}\n\n/**\n * @param {StructStore} store\n * @param {number} client\n * @return {number}\n *\n * @public\n * @function\n */\nexport const getState = (store, client) => {\n const structs = store.clients.get(client)\n if (structs === undefined) {\n return 0\n }\n const lastStruct = structs[structs.length - 1]\n return lastStruct.id.clock + lastStruct.length\n}\n\n/**\n * @param {StructStore} store\n *\n * @private\n * @function\n */\nexport const integretyCheck = store => {\n store.clients.forEach(structs => {\n for (let i = 1; i < structs.length; i++) {\n const l = structs[i - 1]\n const r = structs[i]\n if (l.id.clock + l.length !== r.id.clock) {\n throw new Error('StructStore failed integrety check')\n }\n }\n })\n}\n\n/**\n * @param {StructStore} store\n * @param {GC|Item} struct\n *\n * @private\n * @function\n */\nexport const addStruct = (store, struct) => {\n let structs = store.clients.get(struct.id.client)\n if (structs === undefined) {\n structs = []\n store.clients.set(struct.id.client, structs)\n } else {\n const lastStruct = structs[structs.length - 1]\n if (lastStruct.id.clock + lastStruct.length !== struct.id.clock) {\n throw error.unexpectedCase()\n }\n }\n structs.push(struct)\n}\n\n/**\n * Perform a binary search on a sorted array\n * @param {Array} structs\n * @param {number} clock\n * @return {number}\n *\n * @private\n * @function\n */\nexport const findIndexSS = (structs, clock) => {\n let left = 0\n let right = structs.length - 1\n let mid = structs[right]\n let midclock = mid.id.clock\n if (midclock === clock) {\n return right\n }\n // @todo does it even make sense to pivot the search?\n // If a good split misses, it might actually increase the time to find the correct item.\n // Currently, the only advantage is that search with pivoting might find the item on the first try.\n let midindex = math.floor((clock / (midclock + mid.length - 1)) * right) // pivoting the search\n while (left <= right) {\n mid = structs[midindex]\n midclock = mid.id.clock\n if (midclock <= clock) {\n if (clock < midclock + mid.length) {\n return midindex\n }\n left = midindex + 1\n } else {\n right = midindex - 1\n }\n midindex = math.floor((left + right) / 2)\n }\n // Always check state before looking for a struct in StructStore\n // Therefore the case of not finding a struct is unexpected\n throw error.unexpectedCase()\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {GC|Item}\n *\n * @private\n * @function\n */\nexport const find = (store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client)\n return structs[findIndexSS(structs, id.clock)]\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n * @private\n * @function\n */\nexport const getItem = /** @type {function(StructStore,ID):Item} */ (find)\n\n/**\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clock\n */\nexport const findIndexCleanStart = (transaction, structs, clock) => {\n const index = findIndexSS(structs, clock)\n const struct = structs[index]\n if (struct.id.clock < clock && struct instanceof Item) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock))\n return index + 1\n }\n return index\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nexport const getItemCleanStart = (transaction, id) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(id.client))\n return structs[findIndexCleanStart(transaction, structs, id.clock)]\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nexport const getItemCleanEnd = (transaction, store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client)\n const index = findIndexSS(structs, id.clock)\n const struct = structs[index]\n if (id.clock !== struct.id.clock + struct.length - 1 && struct.constructor !== GC) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, id.clock - struct.id.clock + 1))\n }\n return struct\n}\n\n/**\n * Replace `item` with `newitem` in store\n * @param {StructStore} store\n * @param {GC|Item} struct\n * @param {GC|Item} newStruct\n *\n * @private\n * @function\n */\nexport const replaceStruct = (store, struct, newStruct) => {\n const structs = /** @type {Array} */ (store.clients.get(struct.id.client))\n structs[findIndexSS(structs, struct.id.clock)] = newStruct\n}\n\n/**\n * Iterate over a range of structs\n *\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clockStart Inclusive start\n * @param {number} len\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nexport const iterateStructs = (transaction, structs, clockStart, len, f) => {\n if (len === 0) {\n return\n }\n const clockEnd = clockStart + len\n let index = findIndexCleanStart(transaction, structs, clockStart)\n let struct\n do {\n struct = structs[index++]\n if (clockEnd < struct.id.clock + struct.length) {\n findIndexCleanStart(transaction, structs, clockEnd)\n }\n f(struct)\n } while (index < structs.length && structs[index].id.clock < clockEnd)\n}\n","import {\n getState,\n writeStructsFromTransaction,\n writeDeleteSet,\n DeleteSet,\n sortAndMergeDeleteSet,\n getStateVector,\n findIndexSS,\n callEventHandlerListeners,\n Item,\n generateNewClientId,\n createID,\n cleanupYTextAfterTransaction,\n UpdateEncoderV1, UpdateEncoderV2, GC, StructStore, AbstractType, AbstractStruct, YEvent, Doc // eslint-disable-line\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as set from 'lib0/set'\nimport * as logging from 'lib0/logging'\nimport { callAll } from 'lib0/function'\n\n/**\n * A transaction is created for every change on the Yjs model. It is possible\n * to bundle changes on the Yjs model in a single transaction to\n * minimize the number on messages sent and the number of observer calls.\n * If possible the user of this library should bundle as many changes as\n * possible. Here is an example to illustrate the advantages of bundling:\n *\n * @example\n * const ydoc = new Y.Doc()\n * const map = ydoc.getMap('map')\n * // Log content when change is triggered\n * map.observe(() => {\n * console.log('change triggered')\n * })\n * // Each change on the map type triggers a log message:\n * map.set('a', 0) // => \"change triggered\"\n * map.set('b', 0) // => \"change triggered\"\n * // When put in a transaction, it will trigger the log after the transaction:\n * ydoc.transact(() => {\n * map.set('a', 1)\n * map.set('b', 1)\n * }) // => \"change triggered\"\n *\n * @public\n */\nexport class Transaction {\n /**\n * @param {Doc} doc\n * @param {any} origin\n * @param {boolean} local\n */\n constructor (doc, origin, local) {\n /**\n * The Yjs instance.\n * @type {Doc}\n */\n this.doc = doc\n /**\n * Describes the set of deleted items by ids\n * @type {DeleteSet}\n */\n this.deleteSet = new DeleteSet()\n /**\n * Holds the state before the transaction started.\n * @type {Map}\n */\n this.beforeState = getStateVector(doc.store)\n /**\n * Holds the state after the transaction.\n * @type {Map}\n */\n this.afterState = new Map()\n /**\n * All types that were directly modified (property added or child\n * inserted/deleted). New types are not included in this Set.\n * Maps from type to parentSubs (`item.parentSub = null` for YArray)\n * @type {Map>,Set>}\n */\n this.changed = new Map()\n /**\n * Stores the events for the types that observe also child elements.\n * It is mainly used by `observeDeep`.\n * @type {Map>,Array>>}\n */\n this.changedParentTypes = new Map()\n /**\n * @type {Array}\n */\n this._mergeStructs = []\n /**\n * @type {any}\n */\n this.origin = origin\n /**\n * Stores meta information on the transaction\n * @type {Map}\n */\n this.meta = new Map()\n /**\n * Whether this change originates from this doc.\n * @type {boolean}\n */\n this.local = local\n /**\n * @type {Set}\n */\n this.subdocsAdded = new Set()\n /**\n * @type {Set}\n */\n this.subdocsRemoved = new Set()\n /**\n * @type {Set}\n */\n this.subdocsLoaded = new Set()\n /**\n * @type {boolean}\n */\n this._needFormattingCleanup = false\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n * @return {boolean} Whether data was written.\n */\nexport const writeUpdateMessageFromTransaction = (encoder, transaction) => {\n if (transaction.deleteSet.clients.size === 0 && !map.any(transaction.afterState, (clock, client) => transaction.beforeState.get(client) !== clock)) {\n return false\n }\n sortAndMergeDeleteSet(transaction.deleteSet)\n writeStructsFromTransaction(encoder, transaction)\n writeDeleteSet(encoder, transaction.deleteSet)\n return true\n}\n\n/**\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nexport const nextID = transaction => {\n const y = transaction.doc\n return createID(y.clientID, getState(y.store, y.clientID))\n}\n\n/**\n * If `type.parent` was added in current transaction, `type` technically\n * did not change, it was just added and we should not fire events for `type`.\n *\n * @param {Transaction} transaction\n * @param {AbstractType>} type\n * @param {string|null} parentSub\n */\nexport const addChangedTypeToTransaction = (transaction, type, parentSub) => {\n const item = type._item\n if (item === null || (item.id.clock < (transaction.beforeState.get(item.id.client) || 0) && !item.deleted)) {\n map.setIfUndefined(transaction.changed, type, set.create).add(parentSub)\n }\n}\n\n/**\n * @param {Array} structs\n * @param {number} pos\n * @return {number} # of merged structs\n */\nconst tryToMergeWithLefts = (structs, pos) => {\n let right = structs[pos]\n let left = structs[pos - 1]\n let i = pos\n for (; i > 0; right = left, left = structs[--i - 1]) {\n if (left.deleted === right.deleted && left.constructor === right.constructor) {\n if (left.mergeWith(right)) {\n if (right instanceof Item && right.parentSub !== null && /** @type {AbstractType} */ (right.parent)._map.get(right.parentSub) === right) {\n /** @type {AbstractType} */ (right.parent)._map.set(right.parentSub, /** @type {Item} */ (left))\n }\n continue\n }\n }\n break\n }\n const merged = pos - i\n if (merged) {\n // remove all merged structs from the array\n structs.splice(pos + 1 - merged, merged)\n }\n return merged\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGcDeleteSet = (ds, store, gcFilter) => {\n for (const [client, deleteItems] of ds.clients.entries()) {\n const structs = /** @type {Array} */ (store.clients.get(client))\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di]\n const endDeleteItemClock = deleteItem.clock + deleteItem.len\n for (\n let si = findIndexSS(structs, deleteItem.clock), struct = structs[si];\n si < structs.length && struct.id.clock < endDeleteItemClock;\n struct = structs[++si]\n ) {\n const struct = structs[si]\n if (deleteItem.clock + deleteItem.len <= struct.id.clock) {\n break\n }\n if (struct instanceof Item && struct.deleted && !struct.keep && gcFilter(struct)) {\n struct.gc(store, false)\n }\n }\n }\n }\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n */\nconst tryMergeDeleteSet = (ds, store) => {\n // try to merge deleted / gc'd items\n // merge from right to left for better efficiency and so we don't miss any merge targets\n ds.clients.forEach((deleteItems, client) => {\n const structs = /** @type {Array} */ (store.clients.get(client))\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di]\n // start with merging the item next to the last deleted item\n const mostRightIndexToCheck = math.min(structs.length - 1, 1 + findIndexSS(structs, deleteItem.clock + deleteItem.len - 1))\n for (\n let si = mostRightIndexToCheck, struct = structs[si];\n si > 0 && struct.id.clock >= deleteItem.clock;\n struct = structs[si]\n ) {\n si -= 1 + tryToMergeWithLefts(structs, si)\n }\n }\n })\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nexport const tryGc = (ds, store, gcFilter) => {\n tryGcDeleteSet(ds, store, gcFilter)\n tryMergeDeleteSet(ds, store)\n}\n\n/**\n * @param {Array} transactionCleanups\n * @param {number} i\n */\nconst cleanupTransactions = (transactionCleanups, i) => {\n if (i < transactionCleanups.length) {\n const transaction = transactionCleanups[i]\n const doc = transaction.doc\n const store = doc.store\n const ds = transaction.deleteSet\n const mergeStructs = transaction._mergeStructs\n try {\n sortAndMergeDeleteSet(ds)\n transaction.afterState = getStateVector(transaction.doc.store)\n doc.emit('beforeObserverCalls', [transaction, doc])\n /**\n * An array of event callbacks.\n *\n * Each callback is called even if the other ones throw errors.\n *\n * @type {Array}\n */\n const fs = []\n // observe events on changed types\n transaction.changed.forEach((subs, itemtype) =>\n fs.push(() => {\n if (itemtype._item === null || !itemtype._item.deleted) {\n itemtype._callObserver(transaction, subs)\n }\n })\n )\n fs.push(() => {\n // deep observe events\n transaction.changedParentTypes.forEach((events, type) => {\n // We need to think about the possibility that the user transforms the\n // Y.Doc in the event.\n if (type._dEH.l.length > 0 && (type._item === null || !type._item.deleted)) {\n events = events\n .filter(event =>\n event.target._item === null || !event.target._item.deleted\n )\n events\n .forEach(event => {\n event.currentTarget = type\n // path is relative to the current target\n event._path = null\n })\n // sort events by path length so that top-level events are fired first.\n events\n .sort((event1, event2) => event1.path.length - event2.path.length)\n // We don't need to check for events.length\n // because we know it has at least one element\n callEventHandlerListeners(type._dEH, events, transaction)\n }\n })\n })\n fs.push(() => doc.emit('afterTransaction', [transaction, doc]))\n callAll(fs, [])\n if (transaction._needFormattingCleanup) {\n cleanupYTextAfterTransaction(transaction)\n }\n } finally {\n // Replace deleted items with ItemDeleted / GC.\n // This is where content is actually remove from the Yjs Doc.\n if (doc.gc) {\n tryGcDeleteSet(ds, store, doc.gcFilter)\n }\n tryMergeDeleteSet(ds, store)\n\n // on all affected store.clients props, try to merge\n transaction.afterState.forEach((clock, client) => {\n const beforeClock = transaction.beforeState.get(client) || 0\n if (beforeClock !== clock) {\n const structs = /** @type {Array} */ (store.clients.get(client))\n // we iterate from right to left so we can safely remove entries\n const firstChangePos = math.max(findIndexSS(structs, beforeClock), 1)\n for (let i = structs.length - 1; i >= firstChangePos;) {\n i -= 1 + tryToMergeWithLefts(structs, i)\n }\n }\n })\n // try to merge mergeStructs\n // @todo: it makes more sense to transform mergeStructs to a DS, sort it, and merge from right to left\n // but at the moment DS does not handle duplicates\n for (let i = mergeStructs.length - 1; i >= 0; i--) {\n const { client, clock } = mergeStructs[i].id\n const structs = /** @type {Array} */ (store.clients.get(client))\n const replacedStructPos = findIndexSS(structs, clock)\n if (replacedStructPos + 1 < structs.length) {\n if (tryToMergeWithLefts(structs, replacedStructPos + 1) > 1) {\n continue // no need to perform next check, both are already merged\n }\n }\n if (replacedStructPos > 0) {\n tryToMergeWithLefts(structs, replacedStructPos)\n }\n }\n if (!transaction.local && transaction.afterState.get(doc.clientID) !== transaction.beforeState.get(doc.clientID)) {\n logging.print(logging.ORANGE, logging.BOLD, '[yjs] ', logging.UNBOLD, logging.RED, 'Changed the client-id because another client seems to be using it.')\n doc.clientID = generateNewClientId()\n }\n // @todo Merge all the transactions into one and provide send the data as a single update message\n doc.emit('afterTransactionCleanup', [transaction, doc])\n if (doc._observers.has('update')) {\n const encoder = new UpdateEncoderV1()\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)\n if (hasContent) {\n doc.emit('update', [encoder.toUint8Array(), transaction.origin, doc, transaction])\n }\n }\n if (doc._observers.has('updateV2')) {\n const encoder = new UpdateEncoderV2()\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)\n if (hasContent) {\n doc.emit('updateV2', [encoder.toUint8Array(), transaction.origin, doc, transaction])\n }\n }\n const { subdocsAdded, subdocsLoaded, subdocsRemoved } = transaction\n if (subdocsAdded.size > 0 || subdocsRemoved.size > 0 || subdocsLoaded.size > 0) {\n subdocsAdded.forEach(subdoc => {\n subdoc.clientID = doc.clientID\n if (subdoc.collectionid == null) {\n subdoc.collectionid = doc.collectionid\n }\n doc.subdocs.add(subdoc)\n })\n subdocsRemoved.forEach(subdoc => doc.subdocs.delete(subdoc))\n doc.emit('subdocs', [{ loaded: subdocsLoaded, added: subdocsAdded, removed: subdocsRemoved }, doc, transaction])\n subdocsRemoved.forEach(subdoc => subdoc.destroy())\n }\n\n if (transactionCleanups.length <= i + 1) {\n doc._transactionCleanups = []\n doc.emit('afterAllTransactions', [doc, transactionCleanups])\n } else {\n cleanupTransactions(transactionCleanups, i + 1)\n }\n }\n }\n}\n\n/**\n * Implements the functionality of `y.transact(()=>{..})`\n *\n * @template T\n * @param {Doc} doc\n * @param {function(Transaction):T} f\n * @param {any} [origin=true]\n * @return {T}\n *\n * @function\n */\nexport const transact = (doc, f, origin = null, local = true) => {\n const transactionCleanups = doc._transactionCleanups\n let initialCall = false\n /**\n * @type {any}\n */\n let result = null\n if (doc._transaction === null) {\n initialCall = true\n doc._transaction = new Transaction(doc, origin, local)\n transactionCleanups.push(doc._transaction)\n if (transactionCleanups.length === 1) {\n doc.emit('beforeAllTransactions', [doc])\n }\n doc.emit('beforeTransaction', [doc._transaction, doc])\n }\n try {\n result = f(doc._transaction)\n } finally {\n if (initialCall) {\n const finishCleanup = doc._transaction === transactionCleanups[0]\n doc._transaction = null\n if (finishCleanup) {\n // The first transaction ended, now process observer calls.\n // Observer call may create new transactions for which we need to call the observers and do cleanup.\n // We don't want to nest these calls, so we execute these calls one after\n // another.\n // Also we need to ensure that all cleanups are called, even if the\n // observes throw errors.\n // This file is full of hacky try {} finally {} blocks to ensure that an\n // event can throw errors and also that the cleanup is called.\n cleanupTransactions(transactionCleanups, 0)\n }\n }\n }\n return result\n}\n","import {\n mergeDeleteSets,\n iterateDeletedStructs,\n keepItem,\n transact,\n createID,\n redoItem,\n isParentOf,\n followRedone,\n getItemCleanStart,\n isDeleted,\n addToDeleteSet,\n YEvent, Transaction, Doc, Item, GC, DeleteSet, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as time from 'lib0/time'\nimport * as array from 'lib0/array'\nimport * as logging from 'lib0/logging'\nimport { ObservableV2 } from 'lib0/observable'\n\nexport class StackItem {\n /**\n * @param {DeleteSet} deletions\n * @param {DeleteSet} insertions\n */\n constructor (deletions, insertions) {\n this.insertions = insertions\n this.deletions = deletions\n /**\n * Use this to save and restore metadata like selection range\n */\n this.meta = new Map()\n }\n}\n/**\n * @param {Transaction} tr\n * @param {UndoManager} um\n * @param {StackItem} stackItem\n */\nconst clearUndoManagerStackItem = (tr, um, stackItem) => {\n iterateDeletedStructs(tr, stackItem.deletions, item => {\n if (item instanceof Item && um.scope.some(type => isParentOf(type, item))) {\n keepItem(item, false)\n }\n })\n}\n\n/**\n * @param {UndoManager} undoManager\n * @param {Array} stack\n * @param {'undo'|'redo'} eventType\n * @return {StackItem?}\n */\nconst popStackItem = (undoManager, stack, eventType) => {\n /**\n * Keep a reference to the transaction so we can fire the event with the changedParentTypes\n * @type {any}\n */\n let _tr = null\n const doc = undoManager.doc\n const scope = undoManager.scope\n transact(doc, transaction => {\n while (stack.length > 0 && undoManager.currStackItem === null) {\n const store = doc.store\n const stackItem = /** @type {StackItem} */ (stack.pop())\n /**\n * @type {Set}\n */\n const itemsToRedo = new Set()\n /**\n * @type {Array}\n */\n const itemsToDelete = []\n let performedChange = false\n iterateDeletedStructs(transaction, stackItem.insertions, struct => {\n if (struct instanceof Item) {\n if (struct.redone !== null) {\n let { item, diff } = followRedone(store, struct.id)\n if (diff > 0) {\n item = getItemCleanStart(transaction, createID(item.id.client, item.id.clock + diff))\n }\n struct = item\n }\n if (!struct.deleted && scope.some(type => isParentOf(type, /** @type {Item} */ (struct)))) {\n itemsToDelete.push(struct)\n }\n }\n })\n iterateDeletedStructs(transaction, stackItem.deletions, struct => {\n if (\n struct instanceof Item &&\n scope.some(type => isParentOf(type, struct)) &&\n // Never redo structs in stackItem.insertions because they were created and deleted in the same capture interval.\n !isDeleted(stackItem.insertions, struct.id)\n ) {\n itemsToRedo.add(struct)\n }\n })\n itemsToRedo.forEach(struct => {\n performedChange = redoItem(transaction, struct, itemsToRedo, stackItem.insertions, undoManager.ignoreRemoteMapChanges, undoManager) !== null || performedChange\n })\n // We want to delete in reverse order so that children are deleted before\n // parents, so we have more information available when items are filtered.\n for (let i = itemsToDelete.length - 1; i >= 0; i--) {\n const item = itemsToDelete[i]\n if (undoManager.deleteFilter(item)) {\n item.delete(transaction)\n performedChange = true\n }\n }\n undoManager.currStackItem = performedChange ? stackItem : null\n }\n transaction.changed.forEach((subProps, type) => {\n // destroy search marker if necessary\n if (subProps.has(null) && type._searchMarker) {\n type._searchMarker.length = 0\n }\n })\n _tr = transaction\n }, undoManager)\n const res = undoManager.currStackItem\n if (res != null) {\n const changedParentTypes = _tr.changedParentTypes\n undoManager.emit('stack-item-popped', [{ stackItem: res, type: eventType, changedParentTypes, origin: undoManager }, undoManager])\n undoManager.currStackItem = null\n }\n return res\n}\n\n/**\n * @typedef {Object} UndoManagerOptions\n * @property {number} [UndoManagerOptions.captureTimeout=500]\n * @property {function(Transaction):boolean} [UndoManagerOptions.captureTransaction] Do not capture changes of a Transaction if result false.\n * @property {function(Item):boolean} [UndoManagerOptions.deleteFilter=()=>true] Sometimes\n * it is necessary to filter what an Undo/Redo operation can delete. If this\n * filter returns false, the type/item won't be deleted even it is in the\n * undo/redo scope.\n * @property {Set} [UndoManagerOptions.trackedOrigins=new Set([null])]\n * @property {boolean} [ignoreRemoteMapChanges] Experimental. By default, the UndoManager will never overwrite remote changes. Enable this property to enable overwriting remote changes on key-value changes (Y.Map, properties on Y.Xml, etc..).\n * @property {Doc} [doc] The document that this UndoManager operates on. Only needed if typeScope is empty.\n */\n\n/**\n * @typedef {Object} StackItemEvent\n * @property {StackItem} StackItemEvent.stackItem\n * @property {any} StackItemEvent.origin\n * @property {'undo'|'redo'} StackItemEvent.type\n * @property {Map>,Array>>} StackItemEvent.changedParentTypes\n */\n\n/**\n * Fires 'stack-item-added' event when a stack item was added to either the undo- or\n * the redo-stack. You may store additional stack information via the\n * metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties).\n * Fires 'stack-item-popped' event when a stack item was popped from either the\n * undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.\n *\n * @extends {ObservableV2<{'stack-item-added':function(StackItemEvent, UndoManager):void, 'stack-item-popped': function(StackItemEvent, UndoManager):void, 'stack-cleared': function({ undoStackCleared: boolean, redoStackCleared: boolean }):void, 'stack-item-updated': function(StackItemEvent, UndoManager):void }>}\n */\nexport class UndoManager extends ObservableV2 {\n /**\n * @param {AbstractType|Array>} typeScope Accepts either a single type, or an array of types\n * @param {UndoManagerOptions} options\n */\n constructor (typeScope, {\n captureTimeout = 500,\n captureTransaction = _tr => true,\n deleteFilter = () => true,\n trackedOrigins = new Set([null]),\n ignoreRemoteMapChanges = false,\n doc = /** @type {Doc} */ (array.isArray(typeScope) ? typeScope[0].doc : typeScope.doc)\n } = {}) {\n super()\n /**\n * @type {Array>}\n */\n this.scope = []\n this.doc = doc\n this.addToScope(typeScope)\n this.deleteFilter = deleteFilter\n trackedOrigins.add(this)\n this.trackedOrigins = trackedOrigins\n this.captureTransaction = captureTransaction\n /**\n * @type {Array}\n */\n this.undoStack = []\n /**\n * @type {Array}\n */\n this.redoStack = []\n /**\n * Whether the client is currently undoing (calling UndoManager.undo)\n *\n * @type {boolean}\n */\n this.undoing = false\n this.redoing = false\n /**\n * The currently popped stack item if UndoManager.undoing or UndoManager.redoing\n *\n * @type {StackItem|null}\n */\n this.currStackItem = null\n this.lastChange = 0\n this.ignoreRemoteMapChanges = ignoreRemoteMapChanges\n this.captureTimeout = captureTimeout\n /**\n * @param {Transaction} transaction\n */\n this.afterTransactionHandler = transaction => {\n // Only track certain transactions\n if (\n !this.captureTransaction(transaction) ||\n !this.scope.some(type => transaction.changedParentTypes.has(type)) ||\n (!this.trackedOrigins.has(transaction.origin) && (!transaction.origin || !this.trackedOrigins.has(transaction.origin.constructor)))\n ) {\n return\n }\n const undoing = this.undoing\n const redoing = this.redoing\n const stack = undoing ? this.redoStack : this.undoStack\n if (undoing) {\n this.stopCapturing() // next undo should not be appended to last stack item\n } else if (!redoing) {\n // neither undoing nor redoing: delete redoStack\n this.clear(false, true)\n }\n const insertions = new DeleteSet()\n transaction.afterState.forEach((endClock, client) => {\n const startClock = transaction.beforeState.get(client) || 0\n const len = endClock - startClock\n if (len > 0) {\n addToDeleteSet(insertions, client, startClock, len)\n }\n })\n const now = time.getUnixTime()\n let didAdd = false\n if (this.lastChange > 0 && now - this.lastChange < this.captureTimeout && stack.length > 0 && !undoing && !redoing) {\n // append change to last stack op\n const lastOp = stack[stack.length - 1]\n lastOp.deletions = mergeDeleteSets([lastOp.deletions, transaction.deleteSet])\n lastOp.insertions = mergeDeleteSets([lastOp.insertions, insertions])\n } else {\n // create a new stack op\n stack.push(new StackItem(transaction.deleteSet, insertions))\n didAdd = true\n }\n if (!undoing && !redoing) {\n this.lastChange = now\n }\n // make sure that deleted structs are not gc'd\n iterateDeletedStructs(transaction, transaction.deleteSet, /** @param {Item|GC} item */ item => {\n if (item instanceof Item && this.scope.some(type => isParentOf(type, item))) {\n keepItem(item, true)\n }\n })\n /**\n * @type {[StackItemEvent, UndoManager]}\n */\n const changeEvent = [{ stackItem: stack[stack.length - 1], origin: transaction.origin, type: undoing ? 'redo' : 'undo', changedParentTypes: transaction.changedParentTypes }, this]\n if (didAdd) {\n this.emit('stack-item-added', changeEvent)\n } else {\n this.emit('stack-item-updated', changeEvent)\n }\n }\n this.doc.on('afterTransaction', this.afterTransactionHandler)\n this.doc.on('destroy', () => {\n this.destroy()\n })\n }\n\n /**\n * @param {Array> | AbstractType} ytypes\n */\n addToScope (ytypes) {\n ytypes = array.isArray(ytypes) ? ytypes : [ytypes]\n ytypes.forEach(ytype => {\n if (this.scope.every(yt => yt !== ytype)) {\n if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc') // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509\n this.scope.push(ytype)\n }\n })\n }\n\n /**\n * @param {any} origin\n */\n addTrackedOrigin (origin) {\n this.trackedOrigins.add(origin)\n }\n\n /**\n * @param {any} origin\n */\n removeTrackedOrigin (origin) {\n this.trackedOrigins.delete(origin)\n }\n\n clear (clearUndoStack = true, clearRedoStack = true) {\n if ((clearUndoStack && this.canUndo()) || (clearRedoStack && this.canRedo())) {\n this.doc.transact(tr => {\n if (clearUndoStack) {\n this.undoStack.forEach(item => clearUndoManagerStackItem(tr, this, item))\n this.undoStack = []\n }\n if (clearRedoStack) {\n this.redoStack.forEach(item => clearUndoManagerStackItem(tr, this, item))\n this.redoStack = []\n }\n this.emit('stack-cleared', [{ undoStackCleared: clearUndoStack, redoStackCleared: clearRedoStack }])\n })\n }\n }\n\n /**\n * UndoManager merges Undo-StackItem if they are created within time-gap\n * smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next\n * StackItem won't be merged.\n *\n *\n * @example\n * // without stopCapturing\n * ytext.insert(0, 'a')\n * ytext.insert(1, 'b')\n * um.undo()\n * ytext.toString() // => '' (note that 'ab' was removed)\n * // with stopCapturing\n * ytext.insert(0, 'a')\n * um.stopCapturing()\n * ytext.insert(0, 'b')\n * um.undo()\n * ytext.toString() // => 'a' (note that only 'b' was removed)\n *\n */\n stopCapturing () {\n this.lastChange = 0\n }\n\n /**\n * Undo last changes on type.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n undo () {\n this.undoing = true\n let res\n try {\n res = popStackItem(this, this.undoStack, 'undo')\n } finally {\n this.undoing = false\n }\n return res\n }\n\n /**\n * Redo last undo operation.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n redo () {\n this.redoing = true\n let res\n try {\n res = popStackItem(this, this.redoStack, 'redo')\n } finally {\n this.redoing = false\n }\n return res\n }\n\n /**\n * Are undo steps available?\n *\n * @return {boolean} `true` if undo is possible\n */\n canUndo () {\n return this.undoStack.length > 0\n }\n\n /**\n * Are redo steps available?\n *\n * @return {boolean} `true` if redo is possible\n */\n canRedo () {\n return this.redoStack.length > 0\n }\n\n destroy () {\n this.trackedOrigins.delete(this)\n this.doc.off('afterTransaction', this.afterTransactionHandler)\n super.destroy()\n }\n}\n","import * as binary from 'lib0/binary'\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport * as error from 'lib0/error'\nimport * as f from 'lib0/function'\nimport * as logging from 'lib0/logging'\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as string from 'lib0/string'\n\nimport {\n ContentAny,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentString,\n ContentType,\n createID,\n decodeStateVector,\n DSEncoderV1,\n DSEncoderV2,\n GC,\n Item,\n mergeDeleteSets,\n readDeleteSet,\n readItemContent,\n Skip,\n UpdateDecoderV1,\n UpdateDecoderV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n writeDeleteSet,\n YXmlElement,\n YXmlHook\n} from '../internals.js'\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n */\nfunction * lazyStructReaderGenerator (decoder) {\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder)\n const client = decoder.readClient()\n let clock = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo()\n // @todo use switch instead of ifs\n if (info === 10) {\n const len = decoding.readVarUint(decoder.restDecoder)\n yield new Skip(createID(client, clock), len)\n clock += len\n } else if ((binary.BITS5 & info) !== 0) {\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n // @ts-ignore Force writing a string here.\n cantCopyParentInfo ? (decoder.readParentInfo() ? decoder.readString() : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n yield struct\n clock += struct.length\n } else {\n const len = decoder.readLen()\n yield new GC(createID(client, clock), len)\n clock += len\n }\n }\n }\n}\n\nexport class LazyStructReader {\n /**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {boolean} filterSkips\n */\n constructor (decoder, filterSkips) {\n this.gen = lazyStructReaderGenerator(decoder)\n /**\n * @type {null | Item | Skip | GC}\n */\n this.curr = null\n this.done = false\n this.filterSkips = filterSkips\n this.next()\n }\n\n /**\n * @return {Item | GC | Skip |null}\n */\n next () {\n // ignore \"Skip\" structs\n do {\n this.curr = this.gen.next().value || null\n } while (this.filterSkips && this.curr !== null && this.curr.constructor === Skip)\n return this.curr\n }\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nexport const logUpdate = update => logUpdateV2(update, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nexport const logUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n }\n logging.print('Structs: ', structs)\n const ds = readDeleteSet(updateDecoder)\n logging.print('DeleteSet: ', ds)\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nexport const decodeUpdate = (update) => decodeUpdateV2(update, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nexport const decodeUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n }\n return {\n structs,\n ds: readDeleteSet(updateDecoder)\n }\n}\n\nexport class LazyStructWriter {\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n constructor (encoder) {\n this.currClient = 0\n this.startClock = 0\n this.written = 0\n this.encoder = encoder\n /**\n * We want to write operations lazily, but also we need to know beforehand how many operations we want to write for each client.\n *\n * This kind of meta-information (#clients, #structs-per-client-written) is written to the restEncoder.\n *\n * We fragment the restEncoder and store a slice of it per-client until we know how many clients there are.\n * When we flush (toUint8Array) we write the restEncoder using the fragments and the meta-information.\n *\n * @type {Array<{ written: number, restEncoder: Uint8Array }>}\n */\n this.clientStructs = []\n }\n}\n\n/**\n * @param {Array} updates\n * @return {Uint8Array}\n */\nexport const mergeUpdates = updates => mergeUpdatesV2(updates, UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof DSEncoderV1 | typeof DSEncoderV2} YEncoder\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {Uint8Array}\n */\nexport const encodeStateVectorFromUpdateV2 = (update, YEncoder = DSEncoderV2, YDecoder = UpdateDecoderV2) => {\n const encoder = new YEncoder()\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false)\n let curr = updateDecoder.curr\n if (curr !== null) {\n let size = 0\n let currClient = curr.id.client\n let stopCounting = curr.id.clock !== 0 // must start at 0\n let currClock = stopCounting ? 0 : curr.id.clock + curr.length\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n if (currClock !== 0) {\n size++\n // We found a new client\n // write what we have to the encoder\n encoding.writeVarUint(encoder.restEncoder, currClient)\n encoding.writeVarUint(encoder.restEncoder, currClock)\n }\n currClient = curr.id.client\n currClock = 0\n stopCounting = curr.id.clock !== 0\n }\n // we ignore skips\n if (curr.constructor === Skip) {\n stopCounting = true\n }\n if (!stopCounting) {\n currClock = curr.id.clock + curr.length\n }\n }\n // write what we have\n if (currClock !== 0) {\n size++\n encoding.writeVarUint(encoder.restEncoder, currClient)\n encoding.writeVarUint(encoder.restEncoder, currClock)\n }\n // prepend the size of the state vector\n const enc = encoding.createEncoder()\n encoding.writeVarUint(enc, size)\n encoding.writeBinaryEncoder(enc, encoder.restEncoder)\n encoder.restEncoder = enc\n return encoder.toUint8Array()\n } else {\n encoding.writeVarUint(encoder.restEncoder, 0)\n return encoder.toUint8Array()\n }\n}\n\n/**\n * @param {Uint8Array} update\n * @return {Uint8Array}\n */\nexport const encodeStateVectorFromUpdate = update => encodeStateVectorFromUpdateV2(update, DSEncoderV1, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {{ from: Map, to: Map }}\n */\nexport const parseUpdateMetaV2 = (update, YDecoder = UpdateDecoderV2) => {\n /**\n * @type {Map}\n */\n const from = new Map()\n /**\n * @type {Map}\n */\n const to = new Map()\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false)\n let curr = updateDecoder.curr\n if (curr !== null) {\n let currClient = curr.id.client\n let currClock = curr.id.clock\n // write the beginning to `from`\n from.set(currClient, currClock)\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n // We found a new client\n // write the end to `to`\n to.set(currClient, currClock)\n // write the beginning to `from`\n from.set(curr.id.client, curr.id.clock)\n // update currClient\n currClient = curr.id.client\n }\n currClock = curr.id.clock + curr.length\n }\n // write the end to `to`\n to.set(currClient, currClock)\n }\n return { from, to }\n}\n\n/**\n * @param {Uint8Array} update\n * @return {{ from: Map, to: Map }}\n */\nexport const parseUpdateMeta = update => parseUpdateMetaV2(update, UpdateDecoderV1)\n\n/**\n * This method is intended to slice any kind of struct and retrieve the right part.\n * It does not handle side-effects, so it should only be used by the lazy-encoder.\n *\n * @param {Item | GC | Skip} left\n * @param {number} diff\n * @return {Item | GC}\n */\nconst sliceStruct = (left, diff) => {\n if (left.constructor === GC) {\n const { client, clock } = left.id\n return new GC(createID(client, clock + diff), left.length - diff)\n } else if (left.constructor === Skip) {\n const { client, clock } = left.id\n return new Skip(createID(client, clock + diff), left.length - diff)\n } else {\n const leftItem = /** @type {Item} */ (left)\n const { client, clock } = leftItem.id\n return new Item(\n createID(client, clock + diff),\n null,\n createID(client, clock + diff - 1),\n null,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n }\n}\n\n/**\n *\n * This function works similarly to `readUpdateV2`.\n *\n * @param {Array} updates\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n * @return {Uint8Array}\n */\nexport const mergeUpdatesV2 = (updates, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n if (updates.length === 1) {\n return updates[0]\n }\n const updateDecoders = updates.map(update => new YDecoder(decoding.createDecoder(update)))\n let lazyStructDecoders = updateDecoders.map(decoder => new LazyStructReader(decoder, true))\n\n /**\n * @todo we don't need offset because we always slice before\n * @type {null | { struct: Item | GC | Skip, offset: number }}\n */\n let currWrite = null\n\n const updateEncoder = new YEncoder()\n // write structs lazily\n const lazyStructEncoder = new LazyStructWriter(updateEncoder)\n\n // Note: We need to ensure that all lazyStructDecoders are fully consumed\n // Note: Should merge document updates whenever possible - even from different updates\n // Note: Should handle that some operations cannot be applied yet ()\n\n while (true) {\n // Write higher clients first ⇒ sort by clientID & clock and remove decoders without content\n lazyStructDecoders = lazyStructDecoders.filter(dec => dec.curr !== null)\n lazyStructDecoders.sort(\n /** @type {function(any,any):number} */ (dec1, dec2) => {\n if (dec1.curr.id.client === dec2.curr.id.client) {\n const clockDiff = dec1.curr.id.clock - dec2.curr.id.clock\n if (clockDiff === 0) {\n // @todo remove references to skip since the structDecoders must filter Skips.\n return dec1.curr.constructor === dec2.curr.constructor\n ? 0\n : dec1.curr.constructor === Skip ? 1 : -1 // we are filtering skips anyway.\n } else {\n return clockDiff\n }\n } else {\n return dec2.curr.id.client - dec1.curr.id.client\n }\n }\n )\n if (lazyStructDecoders.length === 0) {\n break\n }\n const currDecoder = lazyStructDecoders[0]\n // write from currDecoder until the next operation is from another client or if filler-struct\n // then we need to reorder the decoders and find the next operation to write\n const firstClient = /** @type {Item | GC} */ (currDecoder.curr).id.client\n\n if (currWrite !== null) {\n let curr = /** @type {Item | GC | null} */ (currDecoder.curr)\n let iterated = false\n\n // iterate until we find something that we haven't written already\n // remember: first the high client-ids are written\n while (curr !== null && curr.id.clock + curr.length <= currWrite.struct.id.clock + currWrite.struct.length && curr.id.client >= currWrite.struct.id.client) {\n curr = currDecoder.next()\n iterated = true\n }\n if (\n curr === null || // current decoder is empty\n curr.id.client !== firstClient || // check whether there is another decoder that has has updates from `firstClient`\n (iterated && curr.id.clock > currWrite.struct.id.clock + currWrite.struct.length) // the above while loop was used and we are potentially missing updates\n ) {\n continue\n }\n\n if (firstClient !== currWrite.struct.id.client) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: curr, offset: 0 }\n currDecoder.next()\n } else {\n if (currWrite.struct.id.clock + currWrite.struct.length < curr.id.clock) {\n // @todo write currStruct & set currStruct = Skip(clock = currStruct.id.clock + currStruct.length, length = curr.id.clock - self.clock)\n if (currWrite.struct.constructor === Skip) {\n // extend existing skip\n currWrite.struct.length = curr.id.clock + curr.length - currWrite.struct.id.clock\n } else {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n const diff = curr.id.clock - currWrite.struct.id.clock - currWrite.struct.length\n /**\n * @type {Skip}\n */\n const struct = new Skip(createID(firstClient, currWrite.struct.id.clock + currWrite.struct.length), diff)\n currWrite = { struct, offset: 0 }\n }\n } else { // if (currWrite.struct.id.clock + currWrite.struct.length >= curr.id.clock) {\n const diff = currWrite.struct.id.clock + currWrite.struct.length - curr.id.clock\n if (diff > 0) {\n if (currWrite.struct.constructor === Skip) {\n // prefer to slice Skip because the other struct might contain more information\n currWrite.struct.length -= diff\n } else {\n curr = sliceStruct(curr, diff)\n }\n }\n if (!currWrite.struct.mergeWith(/** @type {any} */ (curr))) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: curr, offset: 0 }\n currDecoder.next()\n }\n }\n }\n } else {\n currWrite = { struct: /** @type {Item | GC} */ (currDecoder.curr), offset: 0 }\n currDecoder.next()\n }\n for (\n let next = currDecoder.curr;\n next !== null && next.id.client === firstClient && next.id.clock === currWrite.struct.id.clock + currWrite.struct.length && next.constructor !== Skip;\n next = currDecoder.next()\n ) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: next, offset: 0 }\n }\n }\n if (currWrite !== null) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = null\n }\n finishLazyStructWriting(lazyStructEncoder)\n\n const dss = updateDecoders.map(decoder => readDeleteSet(decoder))\n const ds = mergeDeleteSets(dss)\n writeDeleteSet(updateEncoder, ds)\n return updateEncoder.toUint8Array()\n}\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n */\nexport const diffUpdateV2 = (update, sv, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n const state = decodeStateVector(sv)\n const encoder = new YEncoder()\n const lazyStructWriter = new LazyStructWriter(encoder)\n const decoder = new YDecoder(decoding.createDecoder(update))\n const reader = new LazyStructReader(decoder, false)\n while (reader.curr) {\n const curr = reader.curr\n const currClient = curr.id.client\n const svClock = state.get(currClient) || 0\n if (reader.curr.constructor === Skip) {\n // the first written struct shouldn't be a skip\n reader.next()\n continue\n }\n if (curr.id.clock + curr.length > svClock) {\n writeStructToLazyStructWriter(lazyStructWriter, curr, math.max(svClock - curr.id.clock, 0))\n reader.next()\n while (reader.curr && reader.curr.id.client === currClient) {\n writeStructToLazyStructWriter(lazyStructWriter, reader.curr, 0)\n reader.next()\n }\n } else {\n // read until something new comes up\n while (reader.curr && reader.curr.id.client === currClient && reader.curr.id.clock + reader.curr.length <= svClock) {\n reader.next()\n }\n }\n }\n finishLazyStructWriting(lazyStructWriter)\n // write ds\n const ds = readDeleteSet(decoder)\n writeDeleteSet(encoder, ds)\n return encoder.toUint8Array()\n}\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n */\nexport const diffUpdate = (update, sv) => diffUpdateV2(update, sv, UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {LazyStructWriter} lazyWriter\n */\nconst flushLazyStructWriter = lazyWriter => {\n if (lazyWriter.written > 0) {\n lazyWriter.clientStructs.push({ written: lazyWriter.written, restEncoder: encoding.toUint8Array(lazyWriter.encoder.restEncoder) })\n lazyWriter.encoder.restEncoder = encoding.createEncoder()\n lazyWriter.written = 0\n }\n}\n\n/**\n * @param {LazyStructWriter} lazyWriter\n * @param {Item | GC} struct\n * @param {number} offset\n */\nconst writeStructToLazyStructWriter = (lazyWriter, struct, offset) => {\n // flush curr if we start another client\n if (lazyWriter.written > 0 && lazyWriter.currClient !== struct.id.client) {\n flushLazyStructWriter(lazyWriter)\n }\n if (lazyWriter.written === 0) {\n lazyWriter.currClient = struct.id.client\n // write next client\n lazyWriter.encoder.writeClient(struct.id.client)\n // write startClock\n encoding.writeVarUint(lazyWriter.encoder.restEncoder, struct.id.clock + offset)\n }\n struct.write(lazyWriter.encoder, offset)\n lazyWriter.written++\n}\n/**\n * Call this function when we collected all parts and want to\n * put all the parts together. After calling this method,\n * you can continue using the UpdateEncoder.\n *\n * @param {LazyStructWriter} lazyWriter\n */\nconst finishLazyStructWriting = (lazyWriter) => {\n flushLazyStructWriter(lazyWriter)\n\n // this is a fresh encoder because we called flushCurr\n const restEncoder = lazyWriter.encoder.restEncoder\n\n /**\n * Now we put all the fragments together.\n * This works similarly to `writeClientsStructs`\n */\n\n // write # states that were updated - i.e. the clients\n encoding.writeVarUint(restEncoder, lazyWriter.clientStructs.length)\n\n for (let i = 0; i < lazyWriter.clientStructs.length; i++) {\n const partStructs = lazyWriter.clientStructs[i]\n /**\n * Works similarly to `writeStructs`\n */\n // write # encoded structs\n encoding.writeVarUint(restEncoder, partStructs.written)\n // write the rest of the fragment\n encoding.writeUint8Array(restEncoder, partStructs.restEncoder)\n }\n}\n\n/**\n * @param {Uint8Array} update\n * @param {function(Item|GC|Skip):Item|GC|Skip} blockTransformer\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} YDecoder\n * @param {typeof UpdateEncoderV2 | typeof UpdateEncoderV1 } YEncoder\n */\nexport const convertUpdateFormat = (update, blockTransformer, YDecoder, YEncoder) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n const updateEncoder = new YEncoder()\n const lazyWriter = new LazyStructWriter(updateEncoder)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n writeStructToLazyStructWriter(lazyWriter, blockTransformer(curr), 0)\n }\n finishLazyStructWriting(lazyWriter)\n const ds = readDeleteSet(updateDecoder)\n writeDeleteSet(updateEncoder, ds)\n return updateEncoder.toUint8Array()\n}\n\n/**\n * @typedef {Object} ObfuscatorOptions\n * @property {boolean} [ObfuscatorOptions.formatting=true]\n * @property {boolean} [ObfuscatorOptions.subdocs=true]\n * @property {boolean} [ObfuscatorOptions.yxml=true] Whether to obfuscate nodeName / hookName\n */\n\n/**\n * @param {ObfuscatorOptions} obfuscator\n */\nconst createObfuscator = ({ formatting = true, subdocs = true, yxml = true } = {}) => {\n let i = 0\n const mapKeyCache = map.create()\n const nodeNameCache = map.create()\n const formattingKeyCache = map.create()\n const formattingValueCache = map.create()\n formattingValueCache.set(null, null) // end of a formatting range should always be the end of a formatting range\n /**\n * @param {Item|GC|Skip} block\n * @return {Item|GC|Skip}\n */\n return block => {\n switch (block.constructor) {\n case GC:\n case Skip:\n return block\n case Item: {\n const item = /** @type {Item} */ (block)\n const content = item.content\n switch (content.constructor) {\n case ContentDeleted:\n break\n case ContentType: {\n if (yxml) {\n const type = /** @type {ContentType} */ (content).type\n if (type instanceof YXmlElement) {\n type.nodeName = map.setIfUndefined(nodeNameCache, type.nodeName, () => 'node-' + i)\n }\n if (type instanceof YXmlHook) {\n type.hookName = map.setIfUndefined(nodeNameCache, type.hookName, () => 'hook-' + i)\n }\n }\n break\n }\n case ContentAny: {\n const c = /** @type {ContentAny} */ (content)\n c.arr = c.arr.map(() => i)\n break\n }\n case ContentBinary: {\n const c = /** @type {ContentBinary} */ (content)\n c.content = new Uint8Array([i])\n break\n }\n case ContentDoc: {\n const c = /** @type {ContentDoc} */ (content)\n if (subdocs) {\n c.opts = {}\n c.doc.guid = i + ''\n }\n break\n }\n case ContentEmbed: {\n const c = /** @type {ContentEmbed} */ (content)\n c.embed = {}\n break\n }\n case ContentFormat: {\n const c = /** @type {ContentFormat} */ (content)\n if (formatting) {\n c.key = map.setIfUndefined(formattingKeyCache, c.key, () => i + '')\n c.value = map.setIfUndefined(formattingValueCache, c.value, () => ({ i }))\n }\n break\n }\n case ContentJSON: {\n const c = /** @type {ContentJSON} */ (content)\n c.arr = c.arr.map(() => i)\n break\n }\n case ContentString: {\n const c = /** @type {ContentString} */ (content)\n c.str = string.repeat((i % 10) + '', c.str.length)\n break\n }\n default:\n // unknown content type\n error.unexpectedCase()\n }\n if (item.parentSub) {\n item.parentSub = map.setIfUndefined(mapKeyCache, item.parentSub, () => i + '')\n }\n i++\n return block\n }\n default:\n // unknown block-type\n error.unexpectedCase()\n }\n }\n}\n\n/**\n * This function obfuscates the content of a Yjs update. This is useful to share\n * buggy Yjs documents while significantly limiting the possibility that a\n * developer can on the user. Note that it might still be possible to deduce\n * some information by analyzing the \"structure\" of the document or by analyzing\n * the typing behavior using the CRDT-related metadata that is still kept fully\n * intact.\n *\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nexport const obfuscateUpdate = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nexport const obfuscateUpdateV2 = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV2, UpdateEncoderV2)\n\n/**\n * @param {Uint8Array} update\n */\nexport const convertUpdateFormatV1ToV2 = update => convertUpdateFormat(update, f.id, UpdateDecoderV1, UpdateEncoderV2)\n\n/**\n * @param {Uint8Array} update\n */\nexport const convertUpdateFormatV2ToV1 = update => convertUpdateFormat(update, f.id, UpdateDecoderV2, UpdateEncoderV1)\n","import {\n isDeleted,\n Item, AbstractType, Transaction, AbstractStruct // eslint-disable-line\n} from '../internals.js'\n\nimport * as set from 'lib0/set'\nimport * as array from 'lib0/array'\nimport * as error from 'lib0/error'\n\nconst errorComputeChanges = 'You must not compute changes after the event-handler fired.'\n\n/**\n * @template {AbstractType} T\n * YEvent describes the changes on a YType.\n */\nexport class YEvent {\n /**\n * @param {T} target The changed type.\n * @param {Transaction} transaction\n */\n constructor (target, transaction) {\n /**\n * The type on which this event was created on.\n * @type {T}\n */\n this.target = target\n /**\n * The current target on which the observe callback is called.\n * @type {AbstractType}\n */\n this.currentTarget = target\n /**\n * The transaction that triggered this event.\n * @type {Transaction}\n */\n this.transaction = transaction\n /**\n * @type {Object|null}\n */\n this._changes = null\n /**\n * @type {null | Map}\n */\n this._keys = null\n /**\n * @type {null | Array<{ insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object }>}\n */\n this._delta = null\n /**\n * @type {Array|null}\n */\n this._path = null\n }\n\n /**\n * Computes the path from `y` to the changed type.\n *\n * @todo v14 should standardize on path: Array<{parent, index}> because that is easier to work with.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(dir => {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n */\n get path () {\n return this._path || (this._path = getPathTo(this.currentTarget, this.target))\n }\n\n /**\n * Check if a struct is deleted by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n deletes (struct) {\n return isDeleted(this.transaction.deleteSet, struct.id)\n }\n\n /**\n * @type {Map}\n */\n get keys () {\n if (this._keys === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const keys = new Map()\n const target = this.target\n const changed = /** @type Set */ (this.transaction.changed.get(target))\n changed.forEach(key => {\n if (key !== null) {\n const item = /** @type {Item} */ (target._map.get(key))\n /**\n * @type {'delete' | 'add' | 'update'}\n */\n let action\n let oldValue\n if (this.adds(item)) {\n let prev = item.left\n while (prev !== null && this.adds(prev)) {\n prev = prev.left\n }\n if (this.deletes(item)) {\n if (prev !== null && this.deletes(prev)) {\n action = 'delete'\n oldValue = array.last(prev.content.getContent())\n } else {\n return\n }\n } else {\n if (prev !== null && this.deletes(prev)) {\n action = 'update'\n oldValue = array.last(prev.content.getContent())\n } else {\n action = 'add'\n oldValue = undefined\n }\n }\n } else {\n if (this.deletes(item)) {\n action = 'delete'\n oldValue = array.last(/** @type {Item} */ item.content.getContent())\n } else {\n return // nop\n }\n }\n keys.set(key, { action, oldValue })\n }\n })\n this._keys = keys\n }\n return this._keys\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {Array<{insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object}>}\n */\n get delta () {\n return this.changes.delta\n }\n\n /**\n * Check if a struct is added by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n adds (struct) {\n return struct.id.clock >= (this.transaction.beforeState.get(struct.id.client) || 0)\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n let changes = this._changes\n if (changes === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const target = this.target\n const added = set.create()\n const deleted = set.create()\n /**\n * @type {Array<{insert:Array}|{delete:number}|{retain:number}>}\n */\n const delta = []\n changes = {\n added,\n deleted,\n delta,\n keys: this.keys\n }\n const changed = /** @type Set */ (this.transaction.changed.get(target))\n if (changed.has(null)) {\n /**\n * @type {any}\n */\n let lastOp = null\n const packOp = () => {\n if (lastOp) {\n delta.push(lastOp)\n }\n }\n for (let item = target._start; item !== null; item = item.right) {\n if (item.deleted) {\n if (this.deletes(item) && !this.adds(item)) {\n if (lastOp === null || lastOp.delete === undefined) {\n packOp()\n lastOp = { delete: 0 }\n }\n lastOp.delete += item.length\n deleted.add(item)\n } // else nop\n } else {\n if (this.adds(item)) {\n if (lastOp === null || lastOp.insert === undefined) {\n packOp()\n lastOp = { insert: [] }\n }\n lastOp.insert = lastOp.insert.concat(item.content.getContent())\n added.add(item)\n } else {\n if (lastOp === null || lastOp.retain === undefined) {\n packOp()\n lastOp = { retain: 0 }\n }\n lastOp.retain += item.length\n }\n }\n }\n if (lastOp !== null && lastOp.retain === undefined) {\n packOp()\n }\n }\n this._changes = changes\n }\n return /** @type {any} */ (changes)\n }\n}\n\n/**\n * Compute the path from this type to the specified target.\n *\n * @example\n * // `child` should be accessible via `type.get(path[0]).get(path[1])..`\n * const path = type.getPathTo(child)\n * // assuming `type instanceof YArray`\n * console.log(path) // might look like => [2, 'key1']\n * child === type.get(path[0]).get(path[1])\n *\n * @param {AbstractType} parent\n * @param {AbstractType} child target\n * @return {Array} Path to the target\n *\n * @private\n * @function\n */\nconst getPathTo = (parent, child) => {\n const path = []\n while (child._item !== null && child !== parent) {\n if (child._item.parentSub !== null) {\n // parent is map-ish\n path.unshift(child._item.parentSub)\n } else {\n // parent is array-ish\n let i = 0\n let c = /** @type {AbstractType} */ (child._item.parent)._start\n while (c !== child._item && c !== null) {\n if (!c.deleted && c.countable) {\n i += c.length\n }\n c = c.right\n }\n path.unshift(i)\n }\n child = /** @type {AbstractType} */ (child._item.parent)\n }\n return path\n}\n","import {\n removeEventHandlerListener,\n callEventHandlerListeners,\n addEventHandlerListener,\n createEventHandler,\n getState,\n isVisible,\n ContentType,\n createID,\n ContentAny,\n ContentBinary,\n getItemCleanStart,\n ContentDoc, YText, YArray, UpdateEncoderV1, UpdateEncoderV2, Doc, Snapshot, Transaction, EventHandler, YEvent, Item, // eslint-disable-line\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as iterator from 'lib0/iterator'\nimport * as error from 'lib0/error'\nimport * as math from 'lib0/math'\nimport * as log from 'lib0/logging'\n\n/**\n * https://docs.yjs.dev/getting-started/working-with-shared-types#caveats\n */\nexport const warnPrematureAccess = () => { log.warn('Invalid access: Add Yjs type to a document before reading data.') }\n\nconst maxSearchMarker = 80\n\n/**\n * A unique timestamp that identifies each marker.\n *\n * Time is relative,.. this is more like an ever-increasing clock.\n *\n * @type {number}\n */\nlet globalSearchMarkerTimestamp = 0\n\nexport class ArraySearchMarker {\n /**\n * @param {Item} p\n * @param {number} index\n */\n constructor (p, index) {\n p.marker = true\n this.p = p\n this.index = index\n this.timestamp = globalSearchMarkerTimestamp++\n }\n}\n\n/**\n * @param {ArraySearchMarker} marker\n */\nconst refreshMarkerTimestamp = marker => { marker.timestamp = globalSearchMarkerTimestamp++ }\n\n/**\n * This is rather complex so this function is the only thing that should overwrite a marker\n *\n * @param {ArraySearchMarker} marker\n * @param {Item} p\n * @param {number} index\n */\nconst overwriteMarker = (marker, p, index) => {\n marker.p.marker = false\n marker.p = p\n p.marker = true\n marker.index = index\n marker.timestamp = globalSearchMarkerTimestamp++\n}\n\n/**\n * @param {Array} searchMarker\n * @param {Item} p\n * @param {number} index\n */\nconst markPosition = (searchMarker, p, index) => {\n if (searchMarker.length >= maxSearchMarker) {\n // override oldest marker (we don't want to create more objects)\n const marker = searchMarker.reduce((a, b) => a.timestamp < b.timestamp ? a : b)\n overwriteMarker(marker, p, index)\n return marker\n } else {\n // create new marker\n const pm = new ArraySearchMarker(p, index)\n searchMarker.push(pm)\n return pm\n }\n}\n\n/**\n * Search marker help us to find positions in the associative array faster.\n *\n * They speed up the process of finding a position without much bookkeeping.\n *\n * A maximum of `maxSearchMarker` objects are created.\n *\n * This function always returns a refreshed marker (updated timestamp)\n *\n * @param {AbstractType} yarray\n * @param {number} index\n */\nexport const findMarker = (yarray, index) => {\n if (yarray._start === null || index === 0 || yarray._searchMarker === null) {\n return null\n }\n const marker = yarray._searchMarker.length === 0 ? null : yarray._searchMarker.reduce((a, b) => math.abs(index - a.index) < math.abs(index - b.index) ? a : b)\n let p = yarray._start\n let pindex = 0\n if (marker !== null) {\n p = marker.p\n pindex = marker.index\n refreshMarkerTimestamp(marker) // we used it, we might need to use it again\n }\n // iterate to right if possible\n while (p.right !== null && pindex < index) {\n if (!p.deleted && p.countable) {\n if (index < pindex + p.length) {\n break\n }\n pindex += p.length\n }\n p = p.right\n }\n // iterate to left if necessary (might be that pindex > index)\n while (p.left !== null && pindex > index) {\n p = p.left\n if (!p.deleted && p.countable) {\n pindex -= p.length\n }\n }\n // we want to make sure that p can't be merged with left, because that would screw up everything\n // in that cas just return what we have (it is most likely the best marker anyway)\n // iterate to left until p can't be merged with left\n while (p.left !== null && p.left.id.client === p.id.client && p.left.id.clock + p.left.length === p.id.clock) {\n p = p.left\n if (!p.deleted && p.countable) {\n pindex -= p.length\n }\n }\n\n // @todo remove!\n // assure position\n // {\n // let start = yarray._start\n // let pos = 0\n // while (start !== p) {\n // if (!start.deleted && start.countable) {\n // pos += start.length\n // }\n // start = /** @type {Item} */ (start.right)\n // }\n // if (pos !== pindex) {\n // debugger\n // throw new Error('Gotcha position fail!')\n // }\n // }\n // if (marker) {\n // if (window.lengthes == null) {\n // window.lengthes = []\n // window.getLengthes = () => window.lengthes.sort((a, b) => a - b)\n // }\n // window.lengthes.push(marker.index - pindex)\n // console.log('distance', marker.index - pindex, 'len', p && p.parent.length)\n // }\n if (marker !== null && math.abs(marker.index - pindex) < /** @type {YText|YArray} */ (p.parent).length / maxSearchMarker) {\n // adjust existing marker\n overwriteMarker(marker, p, pindex)\n return marker\n } else {\n // create new marker\n return markPosition(yarray._searchMarker, p, pindex)\n }\n}\n\n/**\n * Update markers when a change happened.\n *\n * This should be called before doing a deletion!\n *\n * @param {Array} searchMarker\n * @param {number} index\n * @param {number} len If insertion, len is positive. If deletion, len is negative.\n */\nexport const updateMarkerChanges = (searchMarker, index, len) => {\n for (let i = searchMarker.length - 1; i >= 0; i--) {\n const m = searchMarker[i]\n if (len > 0) {\n /**\n * @type {Item|null}\n */\n let p = m.p\n p.marker = false\n // Ideally we just want to do a simple position comparison, but this will only work if\n // search markers don't point to deleted items for formats.\n // Iterate marker to prev undeleted countable position so we know what to do when updating a position\n while (p && (p.deleted || !p.countable)) {\n p = p.left\n if (p && !p.deleted && p.countable) {\n // adjust position. the loop should break now\n m.index -= p.length\n }\n }\n if (p === null || p.marker === true) {\n // remove search marker if updated position is null or if position is already marked\n searchMarker.splice(i, 1)\n continue\n }\n m.p = p\n p.marker = true\n }\n if (index < m.index || (len > 0 && index === m.index)) { // a simple index <= m.index check would actually suffice\n m.index = math.max(index, m.index + len)\n }\n }\n}\n\n/**\n * Accumulate all (list) children of a type and return them as an Array.\n *\n * @param {AbstractType} t\n * @return {Array}\n */\nexport const getTypeChildren = t => {\n t.doc ?? warnPrematureAccess()\n let s = t._start\n const arr = []\n while (s) {\n arr.push(s)\n s = s.right\n }\n return arr\n}\n\n/**\n * Call event listeners with an event. This will also add an event to all\n * parents (for `.observeDeep` handlers).\n *\n * @template EventType\n * @param {AbstractType} type\n * @param {Transaction} transaction\n * @param {EventType} event\n */\nexport const callTypeObservers = (type, transaction, event) => {\n const changedType = type\n const changedParentTypes = transaction.changedParentTypes\n while (true) {\n // @ts-ignore\n map.setIfUndefined(changedParentTypes, type, () => []).push(event)\n if (type._item === null) {\n break\n }\n type = /** @type {AbstractType} */ (type._item.parent)\n }\n callEventHandlerListeners(changedType._eH, event, transaction)\n}\n\n/**\n * @template EventType\n * Abstract Yjs Type class\n */\nexport class AbstractType {\n constructor () {\n /**\n * @type {Item|null}\n */\n this._item = null\n /**\n * @type {Map}\n */\n this._map = new Map()\n /**\n * @type {Item|null}\n */\n this._start = null\n /**\n * @type {Doc|null}\n */\n this.doc = null\n this._length = 0\n /**\n * Event handlers\n * @type {EventHandler}\n */\n this._eH = createEventHandler()\n /**\n * Deep event handlers\n * @type {EventHandler>,Transaction>}\n */\n this._dEH = createEventHandler()\n /**\n * @type {null | Array}\n */\n this._searchMarker = null\n }\n\n /**\n * @return {AbstractType|null}\n */\n get parent () {\n return this._item ? /** @type {AbstractType} */ (this._item.parent) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item|null} item\n */\n _integrate (y, item) {\n this.doc = y\n this._item = item\n }\n\n /**\n * @return {AbstractType}\n */\n _copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {AbstractType}\n */\n clone () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n */\n _write (_encoder) { }\n\n /**\n * The first non-deleted item\n */\n get _first () {\n let n = this._start\n while (n !== null && n.deleted) {\n n = n.right\n }\n return n\n }\n\n /**\n * Creates YEvent and calls all type observers.\n * Must be implemented by each type.\n *\n * @param {Transaction} transaction\n * @param {Set} _parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, _parentSubs) {\n if (!transaction.local && this._searchMarker) {\n this._searchMarker.length = 0\n }\n }\n\n /**\n * Observe all events that are created on this type.\n *\n * @param {function(EventType, Transaction):void} f Observer function\n */\n observe (f) {\n addEventHandlerListener(this._eH, f)\n }\n\n /**\n * Observe all events that are created by this type and its children.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n observeDeep (f) {\n addEventHandlerListener(this._dEH, f)\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(EventType,Transaction):void} f Observer function\n */\n unobserve (f) {\n removeEventHandlerListener(this._eH, f)\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n unobserveDeep (f) {\n removeEventHandlerListener(this._dEH, f)\n }\n\n /**\n * @abstract\n * @return {any}\n */\n toJSON () {}\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} start\n * @param {number} end\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListSlice = (type, start, end) => {\n type.doc ?? warnPrematureAccess()\n if (start < 0) {\n start = type._length + start\n }\n if (end < 0) {\n end = type._length + end\n }\n let len = end - start\n const cs = []\n let n = type._start\n while (n !== null && len > 0) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n if (c.length <= start) {\n start -= c.length\n } else {\n for (let i = start; i < c.length && len > 0; i++) {\n cs.push(c[i])\n len--\n }\n start = 0\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * @param {AbstractType} type\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListToArray = type => {\n type.doc ?? warnPrematureAccess()\n const cs = []\n let n = type._start\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i])\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * @param {AbstractType} type\n * @param {Snapshot} snapshot\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListToArraySnapshot = (type, snapshot) => {\n const cs = []\n let n = type._start\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i])\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * Executes a provided function on once on every element of this YArray.\n *\n * @param {AbstractType} type\n * @param {function(any,number,any):void} f A function to execute on every element of this YArray.\n *\n * @private\n * @function\n */\nexport const typeListForEach = (type, f) => {\n let index = 0\n let n = type._start\n type.doc ?? warnPrematureAccess()\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type)\n }\n }\n n = n.right\n }\n}\n\n/**\n * @template C,R\n * @param {AbstractType} type\n * @param {function(C,number,AbstractType):R} f\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListMap = (type, f) => {\n /**\n * @type {Array}\n */\n const result = []\n typeListForEach(type, (c, i) => {\n result.push(f(c, i, type))\n })\n return result\n}\n\n/**\n * @param {AbstractType} type\n * @return {IterableIterator}\n *\n * @private\n * @function\n */\nexport const typeListCreateIterator = type => {\n let n = type._start\n /**\n * @type {Array|null}\n */\n let currentContent = null\n let currentContentIndex = 0\n return {\n [Symbol.iterator] () {\n return this\n },\n next: () => {\n // find some content\n if (currentContent === null) {\n while (n !== null && n.deleted) {\n n = n.right\n }\n // check if we reached the end, no need to check currentContent, because it does not exist\n if (n === null) {\n return {\n done: true,\n value: undefined\n }\n }\n // we found n, so we can set currentContent\n currentContent = n.content.getContent()\n currentContentIndex = 0\n n = n.right // we used the content of n, now iterate to next\n }\n const value = currentContent[currentContentIndex++]\n // check if we need to empty currentContent\n if (currentContent.length <= currentContentIndex) {\n currentContent = null\n }\n return {\n done: false,\n value\n }\n }\n }\n}\n\n/**\n * Executes a provided function on once on every element of this YArray.\n * Operates on a snapshotted state of the document.\n *\n * @param {AbstractType} type\n * @param {function(any,number,AbstractType):void} f A function to execute on every element of this YArray.\n * @param {Snapshot} snapshot\n *\n * @private\n * @function\n */\nexport const typeListForEachSnapshot = (type, f, snapshot) => {\n let index = 0\n let n = type._start\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type)\n }\n }\n n = n.right\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @return {any}\n *\n * @private\n * @function\n */\nexport const typeListGet = (type, index) => {\n type.doc ?? warnPrematureAccess()\n const marker = findMarker(type, index)\n let n = type._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n return n.content.getContent()[index]\n }\n index -= n.length\n }\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Item?} referenceItem\n * @param {Array|Array|boolean|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListInsertGenericsAfter = (transaction, parent, referenceItem, content) => {\n let left = referenceItem\n const doc = transaction.doc\n const ownClientId = doc.clientID\n const store = doc.store\n const right = referenceItem === null ? parent._start : referenceItem.right\n /**\n * @type {Array|number|null>}\n */\n let jsonContent = []\n const packJsonContent = () => {\n if (jsonContent.length > 0) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentAny(jsonContent))\n left.integrate(transaction, 0)\n jsonContent = []\n }\n }\n content.forEach(c => {\n if (c === null) {\n jsonContent.push(c)\n } else {\n switch (c.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n jsonContent.push(c)\n break\n default:\n packJsonContent()\n switch (c.constructor) {\n case Uint8Array:\n case ArrayBuffer:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentBinary(new Uint8Array(/** @type {Uint8Array} */ (c))))\n left.integrate(transaction, 0)\n break\n case Doc:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentDoc(/** @type {Doc} */ (c)))\n left.integrate(transaction, 0)\n break\n default:\n if (c instanceof AbstractType) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentType(c))\n left.integrate(transaction, 0)\n } else {\n throw new Error('Unexpected content type in insert operation')\n }\n }\n }\n }\n })\n packJsonContent()\n}\n\nconst lengthExceeded = () => error.create('Length exceeded!')\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListInsertGenerics = (transaction, parent, index, content) => {\n if (index > parent._length) {\n throw lengthExceeded()\n }\n if (index === 0) {\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, index, content.length)\n }\n return typeListInsertGenericsAfter(transaction, parent, null, content)\n }\n const startIndex = index\n const marker = findMarker(parent, index)\n let n = parent._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n // we need to iterate one to the left so that the algorithm works\n if (index === 0) {\n // @todo refactor this as it actually doesn't consider formats\n n = n.prev // important! get the left undeleted item so that we can actually decrease index\n index += (n && n.countable && !n.deleted) ? n.length : 0\n }\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index <= n.length) {\n if (index < n.length) {\n // insert in-between\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index))\n }\n break\n }\n index -= n.length\n }\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, content.length)\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n}\n\n/**\n * Pushing content is special as we generally want to push after the last item. So we don't have to update\n * the serach marker.\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListPushGenerics = (transaction, parent, content) => {\n // Use the marker with the highest index and iterate to the right.\n const marker = (parent._searchMarker || []).reduce((maxMarker, currMarker) => currMarker.index > maxMarker.index ? currMarker : maxMarker, { index: 0, p: parent._start })\n let n = marker.p\n if (n) {\n while (n.right) {\n n = n.right\n }\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {number} length\n *\n * @private\n * @function\n */\nexport const typeListDelete = (transaction, parent, index, length) => {\n if (length === 0) { return }\n const startIndex = index\n const startLength = length\n const marker = findMarker(parent, index)\n let n = parent._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n }\n // compute the first item to be deleted\n for (; n !== null && index > 0; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index))\n }\n index -= n.length\n }\n }\n // delete all items until done\n while (length > 0 && n !== null) {\n if (!n.deleted) {\n if (length < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + length))\n }\n n.delete(transaction)\n length -= n.length\n }\n n = n.right\n }\n if (length > 0) {\n throw lengthExceeded()\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, -startLength + length /* in case we remove the above exception */)\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n *\n * @private\n * @function\n */\nexport const typeMapDelete = (transaction, parent, key) => {\n const c = parent._map.get(key)\n if (c !== undefined) {\n c.delete(transaction)\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Object|number|null|Array|string|Uint8Array|AbstractType} value\n *\n * @private\n * @function\n */\nexport const typeMapSet = (transaction, parent, key, value) => {\n const left = parent._map.get(key) || null\n const doc = transaction.doc\n const ownClientId = doc.clientID\n let content\n if (value == null) {\n content = new ContentAny([value])\n } else {\n switch (value.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n content = new ContentAny([value])\n break\n case Uint8Array:\n content = new ContentBinary(/** @type {Uint8Array} */ (value))\n break\n case Doc:\n content = new ContentDoc(/** @type {Doc} */ (value))\n break\n default:\n if (value instanceof AbstractType) {\n content = new ContentType(value)\n } else {\n throw new Error('Unexpected content type')\n }\n }\n }\n new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, null, null, parent, key, content).integrate(transaction, 0)\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nexport const typeMapGet = (parent, key) => {\n parent.doc ?? warnPrematureAccess()\n const val = parent._map.get(key)\n return val !== undefined && !val.deleted ? val.content.getContent()[val.length - 1] : undefined\n}\n\n/**\n * @param {AbstractType} parent\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nexport const typeMapGetAll = (parent) => {\n /**\n * @type {Object}\n */\n const res = {}\n parent.doc ?? warnPrematureAccess()\n parent._map.forEach((value, key) => {\n if (!value.deleted) {\n res[key] = value.content.getContent()[value.length - 1]\n }\n })\n return res\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {boolean}\n *\n * @private\n * @function\n */\nexport const typeMapHas = (parent, key) => {\n parent.doc ?? warnPrematureAccess()\n const val = parent._map.get(key)\n return val !== undefined && !val.deleted\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nexport const typeMapGetSnapshot = (parent, key, snapshot) => {\n let v = parent._map.get(key) || null\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left\n }\n return v !== null && isVisible(v, snapshot) ? v.content.getContent()[v.length - 1] : undefined\n}\n\n/**\n * @param {AbstractType} parent\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nexport const typeMapGetAllSnapshot = (parent, snapshot) => {\n /**\n * @type {Object}\n */\n const res = {}\n parent._map.forEach((value, key) => {\n /**\n * @type {Item|null}\n */\n let v = value\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left\n }\n if (v !== null && isVisible(v, snapshot)) {\n res[key] = v.content.getContent()[v.length - 1]\n }\n })\n return res\n}\n\n/**\n * @param {AbstractType & { _map: Map }} type\n * @return {IterableIterator>}\n *\n * @private\n * @function\n */\nexport const createMapIterator = type => {\n type.doc ?? warnPrematureAccess()\n return iterator.iteratorFilter(type._map.entries(), /** @param {any} entry */ entry => !entry[1].deleted)\n}\n","/**\n * @module YArray\n */\n\nimport {\n YEvent,\n AbstractType,\n typeListGet,\n typeListToArray,\n typeListForEach,\n typeListCreateIterator,\n typeListInsertGenerics,\n typeListPushGenerics,\n typeListDelete,\n typeListMap,\n YArrayRefID,\n callTypeObservers,\n transact,\n warnPrematureAccess,\n ArraySearchMarker, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Transaction, Item // eslint-disable-line\n} from '../internals.js'\nimport { typeListSlice } from './AbstractType.js'\n\n/**\n * Event that describes the changes on a YArray\n * @template T\n * @extends YEvent>\n */\nexport class YArrayEvent extends YEvent {}\n\n/**\n * A shared Array implementation.\n * @template T\n * @extends AbstractType>\n * @implements {Iterable}\n */\nexport class YArray extends AbstractType {\n constructor () {\n super()\n /**\n * @type {Array?}\n * @private\n */\n this._prelimContent = []\n /**\n * @type {Array}\n */\n this._searchMarker = []\n }\n\n /**\n * Construct a new YArray containing the specified items.\n * @template {Object|Array|number|null|string|Uint8Array} T\n * @param {Array} items\n * @return {YArray}\n */\n static from (items) {\n /**\n * @type {YArray}\n */\n const a = new YArray()\n a.push(items)\n return a\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n this.insert(0, /** @type {Array} */ (this._prelimContent))\n this._prelimContent = null\n }\n\n /**\n * @return {YArray}\n */\n _copy () {\n return new YArray()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YArray}\n */\n clone () {\n /**\n * @type {YArray}\n */\n const arr = new YArray()\n arr.insert(0, this.toArray().map(el =>\n el instanceof AbstractType ? /** @type {typeof el} */ (el.clone()) : el\n ))\n return arr\n }\n\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._length\n }\n\n /**\n * Creates YArrayEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs)\n callTypeObservers(this, transaction, new YArrayEvent(this, transaction))\n }\n\n /**\n * Inserts new content at an index.\n *\n * Important: This function expects an array of content. Not just a content\n * object. The reason for this \"weirdness\" is that inserting several elements\n * is very efficient when it is done as a single operation.\n *\n * @example\n * // Insert character 'a' at position 0\n * yarray.insert(0, ['a'])\n * // Insert numbers 1, 2 at position 1\n * yarray.insert(1, [1, 2])\n *\n * @param {number} index The index to insert content at.\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, /** @type {any} */ (content))\n })\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, 0, ...content)\n }\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n *\n * @todo Use the following implementation in all types.\n */\n push (content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListPushGenerics(transaction, this, /** @type {any} */ (content))\n })\n } else {\n /** @type {Array} */ (this._prelimContent).push(...content)\n }\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content)\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} length The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length)\n })\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, length)\n }\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {T}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Returns a portion of this YArray into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Array}\n */\n toJSON () {\n return this.map(c => c instanceof AbstractType ? c.toJSON() : c)\n }\n\n /**\n * Returns an Array with the result of calling a provided function on every\n * element of this YArray.\n *\n * @template M\n * @param {function(T,number,YArray):M} f Function that produces an element of the new Array\n * @return {Array} A new array with each element being the result of the\n * callback function\n */\n map (f) {\n return typeListMap(this, /** @type {any} */ (f))\n }\n\n /**\n * Executes a provided function once on every element of this YArray.\n *\n * @param {function(T,number,YArray):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f)\n }\n\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return typeListCreateIterator(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YArrayRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nexport const readYArray = _decoder => new YArray()\n","/**\n * @module YMap\n */\n\nimport {\n YEvent,\n AbstractType,\n typeMapDelete,\n typeMapSet,\n typeMapGet,\n typeMapHas,\n createMapIterator,\n YMapRefID,\n callTypeObservers,\n transact,\n warnPrematureAccess,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Transaction, Item // eslint-disable-line\n} from '../internals.js'\n\nimport * as iterator from 'lib0/iterator'\n\n/**\n * @template T\n * @extends YEvent>\n * Event that describes the changes on a YMap.\n */\nexport class YMapEvent extends YEvent {\n /**\n * @param {YMap} ymap The YArray that changed.\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed.\n */\n constructor (ymap, transaction, subs) {\n super(ymap, transaction)\n this.keysChanged = subs\n }\n}\n\n/**\n * @template MapType\n * A shared Map implementation.\n *\n * @extends AbstractType>\n * @implements {Iterable<[string, MapType]>}\n */\nexport class YMap extends AbstractType {\n /**\n *\n * @param {Iterable=} entries - an optional iterable to initialize the YMap\n */\n constructor (entries) {\n super()\n /**\n * @type {Map?}\n * @private\n */\n this._prelimContent = null\n\n if (entries === undefined) {\n this._prelimContent = new Map()\n } else {\n this._prelimContent = new Map(entries)\n }\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;/** @type {Map} */ (this._prelimContent).forEach((value, key) => {\n this.set(key, value)\n })\n this._prelimContent = null\n }\n\n /**\n * @return {YMap}\n */\n _copy () {\n return new YMap()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YMap}\n */\n clone () {\n /**\n * @type {YMap}\n */\n const map = new YMap()\n this.forEach((value, key) => {\n map.set(key, value instanceof AbstractType ? /** @type {typeof value} */ (value.clone()) : value)\n })\n return map\n }\n\n /**\n * Creates YMapEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YMapEvent(this, transaction, parentSubs))\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Object}\n */\n toJSON () {\n this.doc ?? warnPrematureAccess()\n /**\n * @type {Object}\n */\n const map = {}\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n const v = item.content.getContent()[item.length - 1]\n map[key] = v instanceof AbstractType ? v.toJSON() : v\n }\n })\n return map\n }\n\n /**\n * Returns the size of the YMap (count of key/value pairs)\n *\n * @return {number}\n */\n get size () {\n return [...createMapIterator(this)].length\n }\n\n /**\n * Returns the keys for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n keys () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[0])\n }\n\n /**\n * Returns the values for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n values () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[1].content.getContent()[v[1].length - 1])\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n entries () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => /** @type {any} */ ([v[0], v[1].content.getContent()[v[1].length - 1]]))\n }\n\n /**\n * Executes a provided function on once on every key-value pair.\n *\n * @param {function(MapType,string,YMap):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n this.doc ?? warnPrematureAccess()\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n f(item.content.getContent()[item.length - 1], key, this)\n }\n })\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n [Symbol.iterator] () {\n return this.entries()\n }\n\n /**\n * Remove a specified element from this YMap.\n *\n * @param {string} key The key of the element to remove.\n */\n delete (key) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, key)\n })\n } else {\n /** @type {Map} */ (this._prelimContent).delete(key)\n }\n }\n\n /**\n * Adds or updates an element with a specified key and value.\n * @template {MapType} VAL\n *\n * @param {string} key The key of the element to add to this YMap\n * @param {VAL} value The value of the element to add\n * @return {VAL}\n */\n set (key, value) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, key, /** @type {any} */ (value))\n })\n } else {\n /** @type {Map} */ (this._prelimContent).set(key, value)\n }\n return value\n }\n\n /**\n * Returns a specified element from this YMap.\n *\n * @param {string} key\n * @return {MapType|undefined}\n */\n get (key) {\n return /** @type {any} */ (typeMapGet(this, key))\n }\n\n /**\n * Returns a boolean indicating whether the specified key exists or not.\n *\n * @param {string} key The key to test.\n * @return {boolean}\n */\n has (key) {\n return typeMapHas(this, key)\n }\n\n /**\n * Removes all elements from this YMap.\n */\n clear () {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n this.forEach(function (_value, key, map) {\n typeMapDelete(transaction, map, key)\n })\n })\n } else {\n /** @type {Map} */ (this._prelimContent).clear()\n }\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YMapRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nexport const readYMap = _decoder => new YMap()\n","/**\n * @module YText\n */\n\nimport {\n YEvent,\n AbstractType,\n getItemCleanStart,\n getState,\n isVisible,\n createID,\n YTextRefID,\n callTypeObservers,\n transact,\n ContentEmbed,\n GC,\n ContentFormat,\n ContentString,\n splitSnapshotAffectedStructs,\n iterateDeletedStructs,\n iterateStructs,\n findMarker,\n typeMapDelete,\n typeMapSet,\n typeMapGet,\n typeMapGetAll,\n updateMarkerChanges,\n ContentType,\n warnPrematureAccess,\n ArraySearchMarker, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, ID, Doc, Item, Snapshot, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as error from 'lib0/error'\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst equalAttrs = (a, b) => a === b || (typeof a === 'object' && typeof b === 'object' && a && b && object.equalFlat(a, b))\n\nexport class ItemTextListPosition {\n /**\n * @param {Item|null} left\n * @param {Item|null} right\n * @param {number} index\n * @param {Map} currentAttributes\n */\n constructor (left, right, index, currentAttributes) {\n this.left = left\n this.right = right\n this.index = index\n this.currentAttributes = currentAttributes\n }\n\n /**\n * Only call this if you know that this.right is defined\n */\n forward () {\n if (this.right === null) {\n error.unexpectedCase()\n }\n switch (this.right.content.constructor) {\n case ContentFormat:\n if (!this.right.deleted) {\n updateCurrentAttributes(this.currentAttributes, /** @type {ContentFormat} */ (this.right.content))\n }\n break\n default:\n if (!this.right.deleted) {\n this.index += this.right.length\n }\n break\n }\n this.left = this.right\n this.right = this.right.right\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} pos\n * @param {number} count steps to move forward\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findNextPosition = (transaction, pos, count) => {\n while (pos.right !== null && count > 0) {\n switch (pos.right.content.constructor) {\n case ContentFormat:\n if (!pos.right.deleted) {\n updateCurrentAttributes(pos.currentAttributes, /** @type {ContentFormat} */ (pos.right.content))\n }\n break\n default:\n if (!pos.right.deleted) {\n if (count < pos.right.length) {\n // split right\n getItemCleanStart(transaction, createID(pos.right.id.client, pos.right.id.clock + count))\n }\n pos.index += pos.right.length\n count -= pos.right.length\n }\n break\n }\n pos.left = pos.right\n pos.right = pos.right.right\n // pos.forward() - we don't forward because that would halve the performance because we already do the checks above\n }\n return pos\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {boolean} useSearchMarker\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findPosition = (transaction, parent, index, useSearchMarker) => {\n const currentAttributes = new Map()\n const marker = useSearchMarker ? findMarker(parent, index) : null\n if (marker) {\n const pos = new ItemTextListPosition(marker.p.left, marker.p, marker.index, currentAttributes)\n return findNextPosition(transaction, pos, index - marker.index)\n } else {\n const pos = new ItemTextListPosition(null, parent._start, 0, currentAttributes)\n return findNextPosition(transaction, pos, index)\n }\n}\n\n/**\n * Negate applied formats\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Map} negatedAttributes\n *\n * @private\n * @function\n */\nconst insertNegatedAttributes = (transaction, parent, currPos, negatedAttributes) => {\n // check if we really need to remove attributes\n while (\n currPos.right !== null && (\n currPos.right.deleted === true || (\n currPos.right.content.constructor === ContentFormat &&\n equalAttrs(negatedAttributes.get(/** @type {ContentFormat} */ (currPos.right.content).key), /** @type {ContentFormat} */ (currPos.right.content).value)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n negatedAttributes.delete(/** @type {ContentFormat} */ (currPos.right.content).key)\n }\n currPos.forward()\n }\n const doc = transaction.doc\n const ownClientId = doc.clientID\n negatedAttributes.forEach((val, key) => {\n const left = currPos.left\n const right = currPos.right\n const nextFormat = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val))\n nextFormat.integrate(transaction, 0)\n currPos.right = nextFormat\n currPos.forward()\n })\n}\n\n/**\n * @param {Map} currentAttributes\n * @param {ContentFormat} format\n *\n * @private\n * @function\n */\nconst updateCurrentAttributes = (currentAttributes, format) => {\n const { key, value } = format\n if (value === null) {\n currentAttributes.delete(key)\n } else {\n currentAttributes.set(key, value)\n }\n}\n\n/**\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst minimizeAttributeChanges = (currPos, attributes) => {\n // go right while attributes[right.key] === right.value (or right is deleted)\n while (true) {\n if (currPos.right === null) {\n break\n } else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] ?? null, /** @type {ContentFormat} */ (currPos.right.content).value))) {\n //\n } else {\n break\n }\n currPos.forward()\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n * @return {Map}\n *\n * @private\n * @function\n **/\nconst insertAttributes = (transaction, parent, currPos, attributes) => {\n const doc = transaction.doc\n const ownClientId = doc.clientID\n const negatedAttributes = new Map()\n // insert format-start items\n for (const key in attributes) {\n const val = attributes[key]\n const currentVal = currPos.currentAttributes.get(key) ?? null\n if (!equalAttrs(currentVal, val)) {\n // save negated attribute (set null if currentVal undefined)\n negatedAttributes.set(key, currentVal)\n const { left, right } = currPos\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val))\n currPos.right.integrate(transaction, 0)\n currPos.forward()\n }\n }\n return negatedAttributes\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {string|object|AbstractType} text\n * @param {Object} attributes\n *\n * @private\n * @function\n **/\nconst insertText = (transaction, parent, currPos, text, attributes) => {\n currPos.currentAttributes.forEach((_val, key) => {\n if (attributes[key] === undefined) {\n attributes[key] = null\n }\n })\n const doc = transaction.doc\n const ownClientId = doc.clientID\n minimizeAttributeChanges(currPos, attributes)\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes)\n // insert content\n const content = text.constructor === String ? new ContentString(/** @type {string} */ (text)) : (text instanceof AbstractType ? new ContentType(text) : new ContentEmbed(text))\n let { left, right, index } = currPos\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, content.getLength())\n }\n right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, content)\n right.integrate(transaction, 0)\n currPos.right = right\n currPos.index = index\n currPos.forward()\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes)\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst formatText = (transaction, parent, currPos, length, attributes) => {\n const doc = transaction.doc\n const ownClientId = doc.clientID\n minimizeAttributeChanges(currPos, attributes)\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes)\n // iterate until first non-format or null is found\n // delete all formats with attributes[format.key] != null\n // also check the attributes after the first non-format as we do not want to insert redundant negated attributes there\n // eslint-disable-next-line no-labels\n iterationLoop: while (\n currPos.right !== null &&\n (length > 0 ||\n (\n negatedAttributes.size > 0 &&\n (currPos.right.deleted || currPos.right.content.constructor === ContentFormat)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n switch (currPos.right.content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (currPos.right.content)\n const attr = attributes[key]\n if (attr !== undefined) {\n if (equalAttrs(attr, value)) {\n negatedAttributes.delete(key)\n } else {\n if (length === 0) {\n // no need to further extend negatedAttributes\n // eslint-disable-next-line no-labels\n break iterationLoop\n }\n negatedAttributes.set(key, value)\n }\n currPos.right.delete(transaction)\n } else {\n currPos.currentAttributes.set(key, value)\n }\n break\n }\n default:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length))\n }\n length -= currPos.right.length\n break\n }\n }\n currPos.forward()\n }\n // Quill just assumes that the editor starts with a newline and that it always\n // ends with a newline. We only insert that newline when a new newline is\n // inserted - i.e when length is bigger than type.length\n if (length > 0) {\n let newlines = ''\n for (; length > 0; length--) {\n newlines += '\\n'\n }\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), currPos.left, currPos.left && currPos.left.lastId, currPos.right, currPos.right && currPos.right.id, parent, null, new ContentString(newlines))\n currPos.right.integrate(transaction, 0)\n currPos.forward()\n }\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes)\n}\n\n/**\n * Call this function after string content has been deleted in order to\n * clean up formatting Items.\n *\n * @param {Transaction} transaction\n * @param {Item} start\n * @param {Item|null} curr exclusive end, automatically iterates to the next Content Item\n * @param {Map} startAttributes\n * @param {Map} currAttributes\n * @return {number} The amount of formatting Items deleted.\n *\n * @function\n */\nconst cleanupFormattingGap = (transaction, start, curr, startAttributes, currAttributes) => {\n /**\n * @type {Item|null}\n */\n let end = start\n /**\n * @type {Map}\n */\n const endFormats = map.create()\n while (end && (!end.countable || end.deleted)) {\n if (!end.deleted && end.content.constructor === ContentFormat) {\n const cf = /** @type {ContentFormat} */ (end.content)\n endFormats.set(cf.key, cf)\n }\n end = end.right\n }\n let cleanups = 0\n let reachedCurr = false\n while (start !== end) {\n if (curr === start) {\n reachedCurr = true\n }\n if (!start.deleted) {\n const content = start.content\n switch (content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (content)\n const startAttrValue = startAttributes.get(key) ?? null\n if (endFormats.get(key) !== content || startAttrValue === value) {\n // Either this format is overwritten or it is not necessary because the attribute already existed.\n start.delete(transaction)\n cleanups++\n if (!reachedCurr && (currAttributes.get(key) ?? null) === value && startAttrValue !== value) {\n if (startAttrValue === null) {\n currAttributes.delete(key)\n } else {\n currAttributes.set(key, startAttrValue)\n }\n }\n }\n if (!reachedCurr && !start.deleted) {\n updateCurrentAttributes(currAttributes, /** @type {ContentFormat} */ (content))\n }\n break\n }\n }\n }\n start = /** @type {Item} */ (start.right)\n }\n return cleanups\n}\n\n/**\n * @param {Transaction} transaction\n * @param {Item | null} item\n */\nconst cleanupContextlessFormattingGap = (transaction, item) => {\n // iterate until item.right is null or content\n while (item && item.right && (item.right.deleted || !item.right.countable)) {\n item = item.right\n }\n const attrs = new Set()\n // iterate back until a content item is found\n while (item && (item.deleted || !item.countable)) {\n if (!item.deleted && item.content.constructor === ContentFormat) {\n const key = /** @type {ContentFormat} */ (item.content).key\n if (attrs.has(key)) {\n item.delete(transaction)\n } else {\n attrs.add(key)\n }\n }\n item = item.left\n }\n}\n\n/**\n * This function is experimental and subject to change / be removed.\n *\n * Ideally, we don't need this function at all. Formatting attributes should be cleaned up\n * automatically after each change. This function iterates twice over the complete YText type\n * and removes unnecessary formatting attributes. This is also helpful for testing.\n *\n * This function won't be exported anymore as soon as there is confidence that the YText type works as intended.\n *\n * @param {YText} type\n * @return {number} How many formatting attributes have been cleaned up.\n */\nexport const cleanupYTextFormatting = type => {\n let res = 0\n transact(/** @type {Doc} */ (type.doc), transaction => {\n let start = /** @type {Item} */ (type._start)\n let end = type._start\n let startAttributes = map.create()\n const currentAttributes = map.copy(startAttributes)\n while (end) {\n if (end.deleted === false) {\n switch (end.content.constructor) {\n case ContentFormat:\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (end.content))\n break\n default:\n res += cleanupFormattingGap(transaction, start, end, startAttributes, currentAttributes)\n startAttributes = map.copy(currentAttributes)\n start = end\n break\n }\n }\n end = end.right\n }\n })\n return res\n}\n\n/**\n * This will be called by the transction once the event handlers are called to potentially cleanup\n * formatting attributes.\n *\n * @param {Transaction} transaction\n */\nexport const cleanupYTextAfterTransaction = transaction => {\n /**\n * @type {Set}\n */\n const needFullCleanup = new Set()\n // check if another formatting item was inserted\n const doc = transaction.doc\n for (const [client, afterClock] of transaction.afterState.entries()) {\n const clock = transaction.beforeState.get(client) || 0\n if (afterClock === clock) {\n continue\n }\n iterateStructs(transaction, /** @type {Array} */ (doc.store.clients.get(client)), clock, afterClock, item => {\n if (\n !item.deleted && /** @type {Item} */ (item).content.constructor === ContentFormat && item.constructor !== GC\n ) {\n needFullCleanup.add(/** @type {any} */ (item).parent)\n }\n })\n }\n // cleanup in a new transaction\n transact(doc, (t) => {\n iterateDeletedStructs(transaction, transaction.deleteSet, item => {\n if (item instanceof GC || !(/** @type {YText} */ (item.parent)._hasFormatting) || needFullCleanup.has(/** @type {YText} */ (item.parent))) {\n return\n }\n const parent = /** @type {YText} */ (item.parent)\n if (item.content.constructor === ContentFormat) {\n needFullCleanup.add(parent)\n } else {\n // If no formatting attribute was inserted or deleted, we can make due with contextless\n // formatting cleanups.\n // Contextless: it is not necessary to compute currentAttributes for the affected position.\n cleanupContextlessFormattingGap(t, item)\n }\n })\n // If a formatting item was inserted, we simply clean the whole type.\n // We need to compute currentAttributes for the current position anyway.\n for (const yText of needFullCleanup) {\n cleanupYTextFormatting(yText)\n }\n })\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst deleteText = (transaction, currPos, length) => {\n const startLength = length\n const startAttrs = map.copy(currPos.currentAttributes)\n const start = currPos.right\n while (length > 0 && currPos.right !== null) {\n if (currPos.right.deleted === false) {\n switch (currPos.right.content.constructor) {\n case ContentType:\n case ContentEmbed:\n case ContentString:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length))\n }\n length -= currPos.right.length\n currPos.right.delete(transaction)\n break\n }\n }\n currPos.forward()\n }\n if (start) {\n cleanupFormattingGap(transaction, start, currPos.right, startAttrs, currPos.currentAttributes)\n }\n const parent = /** @type {AbstractType} */ (/** @type {Item} */ (currPos.left || currPos.right).parent)\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, -startLength + length)\n }\n return currPos\n}\n\n/**\n * The Quill Delta format represents changes on a text document with\n * formatting information. For mor information visit {@link https://quilljs.com/docs/delta/|Quill Delta}\n *\n * @example\n * {\n * ops: [\n * { insert: 'Gandalf', attributes: { bold: true } },\n * { insert: ' the ' },\n * { insert: 'Grey', attributes: { color: '#cccccc' } }\n * ]\n * }\n *\n */\n\n/**\n * Attributes that can be assigned to a selection of text.\n *\n * @example\n * {\n * bold: true,\n * font-size: '40px'\n * }\n *\n * @typedef {Object} TextAttributes\n */\n\n/**\n * @extends YEvent\n * Event that describes the changes on a YText type.\n */\nexport class YTextEvent extends YEvent {\n /**\n * @param {YText} ytext\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed\n */\n constructor (ytext, transaction, subs) {\n super(ytext, transaction)\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.keysChanged = new Set()\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true\n } else {\n this.keysChanged.add(sub)\n }\n })\n }\n\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n if (this._changes === null) {\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string|AbstractType|object, delete?:number, retain?:number}>}}\n */\n const changes = {\n keys: this.keys,\n delta: this.delta,\n added: new Set(),\n deleted: new Set()\n }\n this._changes = changes\n }\n return /** @type {any} */ (this._changes)\n }\n\n /**\n * Compute the changes in the delta format.\n * A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.\n *\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n *\n * @public\n */\n get delta () {\n if (this._delta === null) {\n const y = /** @type {Doc} */ (this.target.doc)\n /**\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n */\n const delta = []\n transact(y, transaction => {\n const currentAttributes = new Map() // saves all current attributes for insert\n const oldAttributes = new Map()\n let item = this.target._start\n /**\n * @type {string?}\n */\n let action = null\n /**\n * @type {Object}\n */\n const attributes = {} // counts added or removed new attributes for retain\n /**\n * @type {string|object}\n */\n let insert = ''\n let retain = 0\n let deleteLen = 0\n const addOp = () => {\n if (action !== null) {\n /**\n * @type {any}\n */\n let op = null\n switch (action) {\n case 'delete':\n if (deleteLen > 0) {\n op = { delete: deleteLen }\n }\n deleteLen = 0\n break\n case 'insert':\n if (typeof insert === 'object' || insert.length > 0) {\n op = { insert }\n if (currentAttributes.size > 0) {\n op.attributes = {}\n currentAttributes.forEach((value, key) => {\n if (value !== null) {\n op.attributes[key] = value\n }\n })\n }\n }\n insert = ''\n break\n case 'retain':\n if (retain > 0) {\n op = { retain }\n if (!object.isEmpty(attributes)) {\n op.attributes = object.assign({}, attributes)\n }\n }\n retain = 0\n break\n }\n if (op) delta.push(op)\n action = null\n }\n }\n while (item !== null) {\n switch (item.content.constructor) {\n case ContentType:\n case ContentEmbed:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n addOp()\n action = 'insert'\n insert = item.content.getContent()[0]\n addOp()\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp()\n action = 'delete'\n }\n deleteLen += 1\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp()\n action = 'retain'\n }\n retain += 1\n }\n break\n case ContentString:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n if (action !== 'insert') {\n addOp()\n action = 'insert'\n }\n insert += /** @type {ContentString} */ (item.content).str\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp()\n action = 'delete'\n }\n deleteLen += item.length\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp()\n action = 'retain'\n }\n retain += item.length\n }\n break\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (item.content)\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n const curVal = currentAttributes.get(key) ?? null\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp()\n }\n if (equalAttrs(value, (oldAttributes.get(key) ?? null))) {\n delete attributes[key]\n } else {\n attributes[key] = value\n }\n } else if (value !== null) {\n item.delete(transaction)\n }\n }\n } else if (this.deletes(item)) {\n oldAttributes.set(key, value)\n const curVal = currentAttributes.get(key) ?? null\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp()\n }\n attributes[key] = curVal\n }\n } else if (!item.deleted) {\n oldAttributes.set(key, value)\n const attr = attributes[key]\n if (attr !== undefined) {\n if (!equalAttrs(attr, value)) {\n if (action === 'retain') {\n addOp()\n }\n if (value === null) {\n delete attributes[key]\n } else {\n attributes[key] = value\n }\n } else if (attr !== null) { // this will be cleaned up automatically by the contextless cleanup function\n item.delete(transaction)\n }\n }\n }\n if (!item.deleted) {\n if (action === 'insert') {\n addOp()\n }\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (item.content))\n }\n break\n }\n }\n item = item.right\n }\n addOp()\n while (delta.length > 0) {\n const lastOp = delta[delta.length - 1]\n if (lastOp.retain !== undefined && lastOp.attributes === undefined) {\n // retain delta's if they don't assign attributes\n delta.pop()\n } else {\n break\n }\n }\n })\n this._delta = delta\n }\n return /** @type {any} */ (this._delta)\n }\n}\n\n/**\n * Type that represents text with formatting information.\n *\n * This type replaces y-richtext as this implementation is able to handle\n * block formats (format information on a paragraph), embeds (complex elements\n * like pictures and videos), and text formats (**bold**, *italic*).\n *\n * @extends AbstractType\n */\nexport class YText extends AbstractType {\n /**\n * @param {String} [string] The initial value of the YText.\n */\n constructor (string) {\n super()\n /**\n * Array of pending operations on this type\n * @type {Array?}\n */\n this._pending = string !== undefined ? [() => this.insert(0, string)] : []\n /**\n * @type {Array|null}\n */\n this._searchMarker = []\n /**\n * Whether this YText contains formatting attributes.\n * This flag is updated when a formatting item is integrated (see ContentFormat.integrate)\n */\n this._hasFormatting = false\n }\n\n /**\n * Number of characters of this text type.\n *\n * @type {number}\n */\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._length\n }\n\n /**\n * @param {Doc} y\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n try {\n /** @type {Array} */ (this._pending).forEach(f => f())\n } catch (e) {\n console.error(e)\n }\n this._pending = null\n }\n\n _copy () {\n return new YText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YText}\n */\n clone () {\n const text = new YText()\n text.applyDelta(this.toDelta())\n return text\n }\n\n /**\n * Creates YTextEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs)\n const event = new YTextEvent(this, transaction, parentSubs)\n callTypeObservers(this, transaction, event)\n // If a remote change happened, we try to cleanup potential formatting duplicates.\n if (!transaction.local && this._hasFormatting) {\n transaction._needFormattingCleanup = true\n }\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @public\n */\n toString () {\n this.doc ?? warnPrematureAccess()\n let str = ''\n /**\n * @type {Item|null}\n */\n let n = this._start\n while (n !== null) {\n if (!n.deleted && n.countable && n.content.constructor === ContentString) {\n str += /** @type {ContentString} */ (n.content).str\n }\n n = n.right\n }\n return str\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @return {string}\n * @public\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Apply a {@link Delta} on this shared YText type.\n *\n * @param {any} delta The changes to apply on this element.\n * @param {object} opts\n * @param {boolean} [opts.sanitize] Sanitize input delta. Removes ending newlines if set to true.\n *\n *\n * @public\n */\n applyDelta (delta, { sanitize = true } = {}) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const currPos = new ItemTextListPosition(null, this._start, 0, new Map())\n for (let i = 0; i < delta.length; i++) {\n const op = delta[i]\n if (op.insert !== undefined) {\n // Quill assumes that the content starts with an empty paragraph.\n // Yjs/Y.Text assumes that it starts empty. We always hide that\n // there is a newline at the end of the content.\n // If we omit this step, clients will see a different number of\n // paragraphs, but nothing bad will happen.\n const ins = (!sanitize && typeof op.insert === 'string' && i === delta.length - 1 && currPos.right === null && op.insert.slice(-1) === '\\n') ? op.insert.slice(0, -1) : op.insert\n if (typeof ins !== 'string' || ins.length > 0) {\n insertText(transaction, this, currPos, ins, op.attributes || {})\n }\n } else if (op.retain !== undefined) {\n formatText(transaction, this, currPos, op.retain, op.attributes || {})\n } else if (op.delete !== undefined) {\n deleteText(transaction, currPos, op.delete)\n }\n }\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.applyDelta(delta))\n }\n }\n\n /**\n * Returns the Delta representation of this YText type.\n *\n * @param {Snapshot} [snapshot]\n * @param {Snapshot} [prevSnapshot]\n * @param {function('removed' | 'added', ID):any} [computeYChange]\n * @return {any} The Delta representation of this type.\n *\n * @public\n */\n toDelta (snapshot, prevSnapshot, computeYChange) {\n this.doc ?? warnPrematureAccess()\n /**\n * @type{Array}\n */\n const ops = []\n const currentAttributes = new Map()\n const doc = /** @type {Doc} */ (this.doc)\n let str = ''\n let n = this._start\n function packStr () {\n if (str.length > 0) {\n // pack str with attributes to ops\n /**\n * @type {Object}\n */\n const attributes = {}\n let addAttributes = false\n currentAttributes.forEach((value, key) => {\n addAttributes = true\n attributes[key] = value\n })\n /**\n * @type {Object}\n */\n const op = { insert: str }\n if (addAttributes) {\n op.attributes = attributes\n }\n ops.push(op)\n str = ''\n }\n }\n const computeDelta = () => {\n while (n !== null) {\n if (isVisible(n, snapshot) || (prevSnapshot !== undefined && isVisible(n, prevSnapshot))) {\n switch (n.content.constructor) {\n case ContentString: {\n const cur = currentAttributes.get('ychange')\n if (snapshot !== undefined && !isVisible(n, snapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'removed') {\n packStr()\n currentAttributes.set('ychange', computeYChange ? computeYChange('removed', n.id) : { type: 'removed' })\n }\n } else if (prevSnapshot !== undefined && !isVisible(n, prevSnapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'added') {\n packStr()\n currentAttributes.set('ychange', computeYChange ? computeYChange('added', n.id) : { type: 'added' })\n }\n } else if (cur !== undefined) {\n packStr()\n currentAttributes.delete('ychange')\n }\n str += /** @type {ContentString} */ (n.content).str\n break\n }\n case ContentType:\n case ContentEmbed: {\n packStr()\n /**\n * @type {Object}\n */\n const op = {\n insert: n.content.getContent()[0]\n }\n if (currentAttributes.size > 0) {\n const attrs = /** @type {Object} */ ({})\n op.attributes = attrs\n currentAttributes.forEach((value, key) => {\n attrs[key] = value\n })\n }\n ops.push(op)\n break\n }\n case ContentFormat:\n if (isVisible(n, snapshot)) {\n packStr()\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (n.content))\n }\n break\n }\n }\n n = n.right\n }\n packStr()\n }\n if (snapshot || prevSnapshot) {\n // snapshots are merged again after the transaction, so we need to keep the\n // transaction alive until we are done\n transact(doc, transaction => {\n if (snapshot) {\n splitSnapshotAffectedStructs(transaction, snapshot)\n }\n if (prevSnapshot) {\n splitSnapshotAffectedStructs(transaction, prevSnapshot)\n }\n computeDelta()\n }, 'cleanup')\n } else {\n computeDelta()\n }\n return ops\n }\n\n /**\n * Insert text at a given index.\n *\n * @param {number} index The index at which to start inserting.\n * @param {String} text The text to insert at the specified position.\n * @param {TextAttributes} [attributes] Optionally define some formatting\n * information to apply on the inserted\n * Text.\n * @public\n */\n insert (index, text, attributes) {\n if (text.length <= 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes)\n if (!attributes) {\n attributes = {}\n // @ts-ignore\n pos.currentAttributes.forEach((v, k) => { attributes[k] = v })\n }\n insertText(transaction, this, pos, text, attributes)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insert(index, text, attributes))\n }\n }\n\n /**\n * Inserts an embed at a index.\n *\n * @param {number} index The index to insert the embed at.\n * @param {Object | AbstractType} embed The Object that represents the embed.\n * @param {TextAttributes} [attributes] Attribute information to apply on the\n * embed\n *\n * @public\n */\n insertEmbed (index, embed, attributes) {\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes)\n insertText(transaction, this, pos, embed, attributes || {})\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insertEmbed(index, embed, attributes || {}))\n }\n }\n\n /**\n * Deletes text starting from an index.\n *\n * @param {number} index Index at which to start deleting.\n * @param {number} length The number of characters to remove. Defaults to 1.\n *\n * @public\n */\n delete (index, length) {\n if (length === 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n deleteText(transaction, findPosition(transaction, this, index, true), length)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.delete(index, length))\n }\n }\n\n /**\n * Assigns properties to a range of text.\n *\n * @param {number} index The position where to start formatting.\n * @param {number} length The amount of characters to assign properties to.\n * @param {TextAttributes} attributes Attribute information to apply on the\n * text.\n *\n * @public\n */\n format (index, length, attributes) {\n if (length === 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, false)\n if (pos.right === null) {\n return\n }\n formatText(transaction, this, pos, length, attributes)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.format(index, length, attributes))\n }\n }\n\n /**\n * Removes an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.removeAttribute(attributeName))\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be set.\n * @param {any} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.setAttribute(attributeName, attributeValue))\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that identifies the\n * queried value.\n * @return {any} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @return {Object} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes () {\n return typeMapGetAll(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YTextRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YText}\n *\n * @private\n * @function\n */\nexport const readYText = _decoder => new YText()\n","/**\n * @module YXml\n */\n\nimport {\n YXmlEvent,\n YXmlElement,\n AbstractType,\n typeListMap,\n typeListForEach,\n typeListInsertGenerics,\n typeListInsertGenericsAfter,\n typeListDelete,\n typeListToArray,\n YXmlFragmentRefID,\n callTypeObservers,\n transact,\n typeListGet,\n typeListSlice,\n warnPrematureAccess,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, ContentType, Transaction, Item, YXmlText, YXmlHook // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\nimport * as array from 'lib0/array'\n\n/**\n * Define the elements to which a set of CSS queries apply.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors|CSS_Selectors}\n *\n * @example\n * query = '.classSelector'\n * query = 'nodeSelector'\n * query = '#idSelector'\n *\n * @typedef {string} CSS_Selector\n */\n\n/**\n * Dom filter function.\n *\n * @callback domFilter\n * @param {string} nodeName The nodeName of the element\n * @param {Map} attributes The map of attributes.\n * @return {boolean} Whether to include the Dom node in the YXmlElement.\n */\n\n/**\n * Represents a subset of the nodes of a YXmlElement / YXmlFragment and a\n * position within them.\n *\n * Can be created with {@link YXmlFragment#createTreeWalker}\n *\n * @public\n * @implements {Iterable}\n */\nexport class YXmlTreeWalker {\n /**\n * @param {YXmlFragment | YXmlElement} root\n * @param {function(AbstractType):boolean} [f]\n */\n constructor (root, f = () => true) {\n this._filter = f\n this._root = root\n /**\n * @type {Item}\n */\n this._currentNode = /** @type {Item} */ (root._start)\n this._firstCall = true\n root.doc ?? warnPrematureAccess()\n }\n\n [Symbol.iterator] () {\n return this\n }\n\n /**\n * Get the next node.\n *\n * @return {IteratorResult} The next node.\n *\n * @public\n */\n next () {\n /**\n * @type {Item|null}\n */\n let n = this._currentNode\n let type = n && n.content && /** @type {any} */ (n.content).type\n if (n !== null && (!this._firstCall || n.deleted || !this._filter(type))) { // if first call, we check if we can use the first item\n do {\n type = /** @type {any} */ (n.content).type\n if (!n.deleted && (type.constructor === YXmlElement || type.constructor === YXmlFragment) && type._start !== null) {\n // walk down in the tree\n n = type._start\n } else {\n // walk right or up in the tree\n while (n !== null) {\n if (n.right !== null) {\n n = n.right\n break\n } else if (n.parent === this._root) {\n n = null\n } else {\n n = /** @type {AbstractType} */ (n.parent)._item\n }\n }\n }\n } while (n !== null && (n.deleted || !this._filter(/** @type {ContentType} */ (n.content).type)))\n }\n this._firstCall = false\n if (n === null) {\n // @ts-ignore\n return { value: undefined, done: true }\n }\n this._currentNode = n\n return { value: /** @type {any} */ (n.content).type, done: false }\n }\n}\n\n/**\n * Represents a list of {@link YXmlElement}.and {@link YXmlText} types.\n * A YxmlFragment is similar to a {@link YXmlElement}, but it does not have a\n * nodeName and it does not have attributes. Though it can be bound to a DOM\n * element - in this case the attributes and the nodeName are not shared.\n *\n * @public\n * @extends AbstractType\n */\nexport class YXmlFragment extends AbstractType {\n constructor () {\n super()\n /**\n * @type {Array|null}\n */\n this._prelimContent = []\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get firstChild () {\n const first = this._first\n return first ? first.content.getContent()[0] : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n this.insert(0, /** @type {Array} */ (this._prelimContent))\n this._prelimContent = null\n }\n\n _copy () {\n return new YXmlFragment()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlFragment}\n */\n clone () {\n const el = new YXmlFragment()\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item))\n return el\n }\n\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._prelimContent === null ? this._length : this._prelimContent.length\n }\n\n /**\n * Create a subtree of childNodes.\n *\n * @example\n * const walker = elem.createTreeWalker(dom => dom.nodeName === 'div')\n * for (let node in walker) {\n * // `node` is a div node\n * nop(node)\n * }\n *\n * @param {function(AbstractType):boolean} filter Function that is called on each child element and\n * returns a Boolean indicating whether the child\n * is to be included in the subtree.\n * @return {YXmlTreeWalker} A subtree and a position within it.\n *\n * @public\n */\n createTreeWalker (filter) {\n return new YXmlTreeWalker(this, filter)\n }\n\n /**\n * Returns the first YXmlElement that matches the query.\n * Similar to DOM's {@link querySelector}.\n *\n * Query support:\n * - tagname\n * TODO:\n * - id\n * - attribute\n *\n * @param {CSS_Selector} query The query on the children.\n * @return {YXmlElement|YXmlText|YXmlHook|null} The first element that matches the query or null.\n *\n * @public\n */\n querySelector (query) {\n query = query.toUpperCase()\n // @ts-ignore\n const iterator = new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query)\n const next = iterator.next()\n if (next.done) {\n return null\n } else {\n return next.value\n }\n }\n\n /**\n * Returns all YXmlElements that match the query.\n * Similar to Dom's {@link querySelectorAll}.\n *\n * @todo Does not yet support all queries. Currently only query by tagName.\n *\n * @param {CSS_Selector} query The query on the children\n * @return {Array} The elements that match this query.\n *\n * @public\n */\n querySelectorAll (query) {\n query = query.toUpperCase()\n // @ts-ignore\n return array.from(new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query))\n }\n\n /**\n * Creates YXmlEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YXmlEvent(this, parentSubs, transaction))\n }\n\n /**\n * Get the string representation of all the children of this YXmlFragment.\n *\n * @return {string} The string representation of all children.\n */\n toString () {\n return typeListMap(this, xml => xml.toString()).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const fragment = _document.createDocumentFragment()\n if (binding !== undefined) {\n binding._createAssociation(fragment, this)\n }\n typeListForEach(this, xmlType => {\n fragment.insertBefore(xmlType.toDOM(_document, hooks, binding), null)\n })\n return fragment\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {number} index The index to insert content at\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, content)\n })\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, 0, ...content)\n }\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {null|Item|YXmlElement|YXmlText} ref The index to insert content at\n * @param {Array} content The array of content\n */\n insertAfter (ref, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const refItem = (ref && ref instanceof AbstractType) ? ref._item : ref\n typeListInsertGenericsAfter(transaction, this, refItem, content)\n })\n } else {\n const pc = /** @type {Array} */ (this._prelimContent)\n const index = ref === null ? 0 : pc.findIndex(el => el === ref) + 1\n if (index === 0 && ref !== null) {\n throw error.create('Reference item not found')\n }\n pc.splice(index, 0, ...content)\n }\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} [length=1] The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length)\n })\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, length)\n }\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n */\n push (content) {\n this.insert(this.length, content)\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content)\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {YXmlElement|YXmlText}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Returns a portion of this YXmlFragment into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Executes a provided function on once on every child element.\n *\n * @param {function(YXmlElement|YXmlText,number, typeof self):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f)\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlFragmentRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YXmlFragment}\n *\n * @private\n * @function\n */\nexport const readYXmlFragment = _decoder => new YXmlFragment()\n","import * as object from 'lib0/object'\n\nimport {\n YXmlFragment,\n transact,\n typeMapDelete,\n typeMapHas,\n typeMapSet,\n typeMapGet,\n typeMapGetAll,\n typeMapGetAllSnapshot,\n typeListForEach,\n YXmlElementRefID,\n Snapshot, YXmlText, ContentType, AbstractType, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Item // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @typedef {Object|number|null|Array|string|Uint8Array|AbstractType} ValueTypes\n */\n\n/**\n * An YXmlElement imitates the behavior of a\n * https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element\n *\n * * An YXmlElement has attributes (key value pairs)\n * * An YXmlElement has childElements that must inherit from YXmlElement\n *\n * @template {{ [key: string]: ValueTypes }} [KV={ [key: string]: string }]\n */\nexport class YXmlElement extends YXmlFragment {\n constructor (nodeName = 'UNDEFINED') {\n super()\n this.nodeName = nodeName\n /**\n * @type {Map|null}\n */\n this._prelimAttrs = new Map()\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;(/** @type {Map} */ (this._prelimAttrs)).forEach((value, key) => {\n this.setAttribute(key, value)\n })\n this._prelimAttrs = null\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n *\n * @return {YXmlElement}\n */\n _copy () {\n return new YXmlElement(this.nodeName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlElement}\n */\n clone () {\n /**\n * @type {YXmlElement}\n */\n const el = new YXmlElement(this.nodeName)\n const attrs = this.getAttributes()\n object.forEach(attrs, (value, key) => {\n if (typeof value === 'string') {\n el.setAttribute(key, value)\n }\n })\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item))\n return el\n }\n\n /**\n * Returns the XML serialization of this YXmlElement.\n * The attributes are ordered by attribute-name, so you can easily use this\n * method to compare YXmlElements\n *\n * @return {string} The string representation of this type.\n *\n * @public\n */\n toString () {\n const attrs = this.getAttributes()\n const stringBuilder = []\n const keys = []\n for (const key in attrs) {\n keys.push(key)\n }\n keys.sort()\n const keysLen = keys.length\n for (let i = 0; i < keysLen; i++) {\n const key = keys[i]\n stringBuilder.push(key + '=\"' + attrs[key] + '\"')\n }\n const nodeName = this.nodeName.toLocaleLowerCase()\n const attrsString = stringBuilder.length > 0 ? ' ' + stringBuilder.join(' ') : ''\n return `<${nodeName}${attrsString}>${super.toString()}`\n }\n\n /**\n * Removes an attribute from this YXmlElement.\n *\n * @param {string} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName)\n })\n } else {\n /** @type {Map} */ (this._prelimAttrs).delete(attributeName)\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that is to be set.\n * @param {KV[KEY]} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue)\n })\n } else {\n /** @type {Map} */ (this._prelimAttrs).set(attributeName, attributeValue)\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that identifies the\n * queried value.\n * @return {KV[KEY]|undefined} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns whether an attribute exists\n *\n * @param {string} attributeName The attribute name to check for existence.\n * @return {boolean} whether the attribute exists.\n *\n * @public\n */\n hasAttribute (attributeName) {\n return /** @type {any} */ (typeMapHas(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @param {Snapshot} [snapshot]\n * @return {{ [Key in Extract]?: KV[Key]}} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes (snapshot) {\n return /** @type {any} */ (snapshot ? typeMapGetAllSnapshot(this, snapshot) : typeMapGetAll(this))\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const dom = _document.createElement(this.nodeName)\n const attrs = this.getAttributes()\n for (const key in attrs) {\n const value = attrs[key]\n if (typeof value === 'string') {\n dom.setAttribute(key, value)\n }\n }\n typeListForEach(this, yxml => {\n dom.appendChild(yxml.toDOM(_document, hooks, binding))\n })\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlElementRefID)\n encoder.writeKey(this.nodeName)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlElement}\n *\n * @function\n */\nexport const readYXmlElement = decoder => new YXmlElement(decoder.readKey())\n","import {\n YEvent,\n YXmlText, YXmlElement, YXmlFragment, Transaction // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @extends YEvent\n * An Event that describes changes on a YXml Element or Yxml Fragment\n */\nexport class YXmlEvent extends YEvent {\n /**\n * @param {YXmlElement|YXmlText|YXmlFragment} target The target on which the event is created.\n * @param {Set} subs The set of changed attributes. `null` is included if the\n * child list changed.\n * @param {Transaction} transaction The transaction instance with wich the\n * change was created.\n */\n constructor (target, subs, transaction) {\n super(target, transaction)\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.attributesChanged = new Set()\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true\n } else {\n this.attributesChanged.add(sub)\n }\n })\n }\n}\n","import {\n YMap,\n YXmlHookRefID,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2 // eslint-disable-line\n} from '../internals.js'\n\n/**\n * You can manage binding to a custom type with YXmlHook.\n *\n * @extends {YMap}\n */\nexport class YXmlHook extends YMap {\n /**\n * @param {string} hookName nodeName of the Dom Node.\n */\n constructor (hookName) {\n super()\n /**\n * @type {string}\n */\n this.hookName = hookName\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n */\n _copy () {\n return new YXmlHook(this.hookName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlHook}\n */\n clone () {\n const el = new YXmlHook(this.hookName)\n this.forEach((value, key) => {\n el.set(key, value)\n })\n return el\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object.} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type\n * @return {Element} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const hook = hooks[this.hookName]\n let dom\n if (hook !== undefined) {\n dom = hook.createDom(this)\n } else {\n dom = document.createElement(this.hookName)\n }\n dom.setAttribute('data-yjs-hook', this.hookName)\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlHookRefID)\n encoder.writeKey(this.hookName)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlHook}\n *\n * @private\n * @function\n */\nexport const readYXmlHook = decoder =>\n new YXmlHook(decoder.readKey())\n","import {\n YText,\n YXmlTextRefID,\n ContentType, YXmlElement, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, // eslint-disable-line\n} from '../internals.js'\n\n/**\n * Represents text in a Dom Element. In the future this type will also handle\n * simple formatting information like bold and italic.\n */\nexport class YXmlText extends YText {\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n _copy () {\n return new YXmlText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlText}\n */\n clone () {\n const text = new YXmlText()\n text.applyDelta(this.toDelta())\n return text\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlText.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Text} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks, binding) {\n const dom = _document.createTextNode(this.toString())\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n toString () {\n // @ts-ignore\n return this.toDelta().map(delta => {\n const nestedNodes = []\n for (const nodeName in delta.attributes) {\n const attrs = []\n for (const key in delta.attributes[nodeName]) {\n attrs.push({ key, value: delta.attributes[nodeName][key] })\n }\n // sort attributes to get a unique order\n attrs.sort((a, b) => a.key < b.key ? -1 : 1)\n nestedNodes.push({ nodeName, attrs })\n }\n // sort node order to get a unique order\n nestedNodes.sort((a, b) => a.nodeName < b.nodeName ? -1 : 1)\n // now convert to dom string\n let str = ''\n for (let i = 0; i < nestedNodes.length; i++) {\n const node = nestedNodes[i]\n str += `<${node.nodeName}`\n for (let j = 0; j < node.attrs.length; j++) {\n const attr = node.attrs[j]\n str += ` ${attr.key}=\"${attr.value}\"`\n }\n str += '>'\n }\n str += delta.insert\n for (let i = nestedNodes.length - 1; i >= 0; i--) {\n str += ``\n }\n return str\n }).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlTextRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlText}\n *\n * @private\n * @function\n */\nexport const readYXmlText = decoder => new YXmlText()\n","import {\n UpdateEncoderV1, UpdateEncoderV2, ID, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\nexport class AbstractStruct {\n /**\n * @param {ID} id\n * @param {number} length\n */\n constructor (id, length) {\n this.id = id\n this.length = length\n }\n\n /**\n * @type {boolean}\n */\n get deleted () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Merge this struct with the item to the right.\n * This method is already assuming that `this.id.clock + this.length === this.id.clock`.\n * Also this method does *not* remove right from StructStore!\n * @param {AbstractStruct} right\n * @return {boolean} wether this merged with right\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n * @param {number} encodingRef\n */\n write (encoder, offset, encodingRef) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n throw error.methodUnimplemented()\n }\n}\n","import {\n AbstractStruct,\n addStruct,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\n\nexport const structGCRefNumber = 0\n\n/**\n * @private\n */\nexport class GC extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {GC} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset\n this.length -= offset\n }\n addStruct(transaction.doc.store, this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structGCRefNumber)\n encoder.writeLen(this.length - offset)\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\nexport class ContentBinary {\n /**\n * @param {Uint8Array} content\n */\n constructor (content) {\n this.content = content\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.content]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentBinary}\n */\n copy () {\n return new ContentBinary(this.content)\n }\n\n /**\n * @param {number} offset\n * @return {ContentBinary}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentBinary} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeBuf(this.content)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 3\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentBinary}\n */\nexport const readContentBinary = decoder => new ContentBinary(decoder.readBuf())\n","import {\n addToDeleteSet,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nexport class ContentDeleted {\n /**\n * @param {number} len\n */\n constructor (len) {\n this.len = len\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.len\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentDeleted}\n */\n copy () {\n return new ContentDeleted(this.len)\n }\n\n /**\n * @param {number} offset\n * @return {ContentDeleted}\n */\n splice (offset) {\n const right = new ContentDeleted(this.len - offset)\n this.len = offset\n return right\n }\n\n /**\n * @param {ContentDeleted} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.len += right.len\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n addToDeleteSet(transaction.deleteSet, item.id.client, item.id.clock, this.len)\n item.markDeleted()\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeLen(this.len - offset)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 1\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentDeleted}\n */\nexport const readContentDeleted = decoder => new ContentDeleted(decoder.readLen())\n","import {\n Doc, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, Item // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @param {string} guid\n * @param {Object} opts\n */\nconst createDocFromOpts = (guid, opts) => new Doc({ guid, ...opts, shouldLoad: opts.shouldLoad || opts.autoLoad || false })\n\n/**\n * @private\n */\nexport class ContentDoc {\n /**\n * @param {Doc} doc\n */\n constructor (doc) {\n if (doc._item) {\n console.error('This document was already integrated as a sub-document. You should create a second instance instead with the same guid.')\n }\n /**\n * @type {Doc}\n */\n this.doc = doc\n /**\n * @type {any}\n */\n const opts = {}\n this.opts = opts\n if (!doc.gc) {\n opts.gc = false\n }\n if (doc.autoLoad) {\n opts.autoLoad = true\n }\n if (doc.meta !== null) {\n opts.meta = doc.meta\n }\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.doc]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentDoc}\n */\n copy () {\n return new ContentDoc(createDocFromOpts(this.doc.guid, this.opts))\n }\n\n /**\n * @param {number} offset\n * @return {ContentDoc}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentDoc} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n // this needs to be reflected in doc.destroy as well\n this.doc._item = item\n transaction.subdocsAdded.add(this.doc)\n if (this.doc.shouldLoad) {\n transaction.subdocsLoaded.add(this.doc)\n }\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (transaction.subdocsAdded.has(this.doc)) {\n transaction.subdocsAdded.delete(this.doc)\n } else {\n transaction.subdocsRemoved.add(this.doc)\n }\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) { }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(this.doc.guid)\n encoder.writeAny(this.opts)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 9\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentDoc}\n */\nexport const readContentDoc = decoder => new ContentDoc(createDocFromOpts(decoder.readString(), decoder.readAny()))\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @private\n */\nexport class ContentEmbed {\n /**\n * @param {Object} embed\n */\n constructor (embed) {\n this.embed = embed\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.embed]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentEmbed}\n */\n copy () {\n return new ContentEmbed(this.embed)\n }\n\n /**\n * @param {number} offset\n * @return {ContentEmbed}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentEmbed} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeJSON(this.embed)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 5\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentEmbed}\n */\nexport const readContentEmbed = decoder => new ContentEmbed(decoder.readJSON())\n","import {\n YText, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Item, StructStore, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @private\n */\nexport class ContentFormat {\n /**\n * @param {string} key\n * @param {Object} value\n */\n constructor (key, value) {\n this.key = key\n this.value = value\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentFormat}\n */\n copy () {\n return new ContentFormat(this.key, this.value)\n }\n\n /**\n * @param {number} _offset\n * @return {ContentFormat}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentFormat} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n return false\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} item\n */\n integrate (_transaction, item) {\n // @todo searchmarker are currently unsupported for rich text documents\n const p = /** @type {YText} */ (item.parent)\n p._searchMarker = null\n p._hasFormatting = true\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeKey(this.key)\n encoder.writeJSON(this.value)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 6\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentFormat}\n */\nexport const readContentFormat = decoder => new ContentFormat(decoder.readKey(), decoder.readJSON())\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @private\n */\nexport class ContentJSON {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentJSON}\n */\n copy () {\n return new ContentJSON(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentJSON}\n */\n splice (offset) {\n const right = new ContentJSON(this.arr.slice(offset))\n this.arr = this.arr.slice(0, offset)\n return right\n }\n\n /**\n * @param {ContentJSON} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr)\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length\n encoder.writeLen(len - offset)\n for (let i = offset; i < len; i++) {\n const c = this.arr[i]\n encoder.writeString(c === undefined ? 'undefined' : JSON.stringify(c))\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 2\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentJSON}\n */\nexport const readContentJSON = decoder => {\n const len = decoder.readLen()\n const cs = []\n for (let i = 0; i < len; i++) {\n const c = decoder.readString()\n if (c === 'undefined') {\n cs.push(undefined)\n } else {\n cs.push(JSON.parse(c))\n }\n }\n return new ContentJSON(cs)\n}\n","import {\n UpdateEncoderV1, UpdateEncoderV2, UpdateDecoderV1, UpdateDecoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\nimport * as env from 'lib0/environment'\nimport * as object from 'lib0/object'\n\nconst isDevMode = env.getVariable('node_env') === 'development'\n\nexport class ContentAny {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr\n isDevMode && object.deepFreeze(arr)\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentAny}\n */\n copy () {\n return new ContentAny(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentAny}\n */\n splice (offset) {\n const right = new ContentAny(this.arr.slice(offset))\n this.arr = this.arr.slice(0, offset)\n return right\n }\n\n /**\n * @param {ContentAny} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr)\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length\n encoder.writeLen(len - offset)\n for (let i = offset; i < len; i++) {\n const c = this.arr[i]\n encoder.writeAny(c)\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 8\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentAny}\n */\nexport const readContentAny = decoder => {\n const len = decoder.readLen()\n const cs = []\n for (let i = 0; i < len; i++) {\n cs.push(decoder.readAny())\n }\n return new ContentAny(cs)\n}\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @private\n */\nexport class ContentString {\n /**\n * @param {string} str\n */\n constructor (str) {\n /**\n * @type {string}\n */\n this.str = str\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.str.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.str.split('')\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentString}\n */\n copy () {\n return new ContentString(this.str)\n }\n\n /**\n * @param {number} offset\n * @return {ContentString}\n */\n splice (offset) {\n const right = new ContentString(this.str.slice(offset))\n this.str = this.str.slice(0, offset)\n\n // Prevent encoding invalid documents because of splitting of surrogate pairs: https://github.com/yjs/yjs/issues/248\n const firstCharCode = this.str.charCodeAt(offset - 1)\n if (firstCharCode >= 0xD800 && firstCharCode <= 0xDBFF) {\n // Last character of the left split is the start of a surrogate utf16/ucs2 pair.\n // We don't support splitting of surrogate pairs because this may lead to invalid documents.\n // Replace the invalid character with a unicode replacement character (� / U+FFFD)\n this.str = this.str.slice(0, offset - 1) + '�'\n // replace right as well\n right.str = '�' + right.str.slice(1)\n }\n return right\n }\n\n /**\n * @param {ContentString} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.str += right.str\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(offset === 0 ? this.str : this.str.slice(offset))\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 4\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentString}\n */\nexport const readContentString = decoder => new ContentString(decoder.readString())\n","import {\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, Item, YEvent, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @type {Array>}\n * @private\n */\nexport const typeRefs = [\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText\n]\n\nexport const YArrayRefID = 0\nexport const YMapRefID = 1\nexport const YTextRefID = 2\nexport const YXmlElementRefID = 3\nexport const YXmlFragmentRefID = 4\nexport const YXmlHookRefID = 5\nexport const YXmlTextRefID = 6\n\n/**\n * @private\n */\nexport class ContentType {\n /**\n * @param {AbstractType} type\n */\n constructor (type) {\n /**\n * @type {AbstractType}\n */\n this.type = type\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.type]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentType}\n */\n copy () {\n return new ContentType(this.type._copy())\n }\n\n /**\n * @param {number} offset\n * @return {ContentType}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentType} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n this.type._integrate(transaction.doc, item)\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n let item = this.type._start\n while (item !== null) {\n if (!item.deleted) {\n item.delete(transaction)\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // This will be gc'd later and we want to merge it if possible\n // We try to merge all deleted items after each transaction,\n // but we have no knowledge about that this needs to be merged\n // since it is not in transaction.ds. Hence we add it to transaction._mergeStructs\n transaction._mergeStructs.push(item)\n }\n item = item.right\n }\n this.type._map.forEach(item => {\n if (!item.deleted) {\n item.delete(transaction)\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // same as above\n transaction._mergeStructs.push(item)\n }\n })\n transaction.changed.delete(this.type)\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) {\n let item = this.type._start\n while (item !== null) {\n item.gc(store, true)\n item = item.right\n }\n this.type._start = null\n this.type._map.forEach(/** @param {Item | null} item */ (item) => {\n while (item !== null) {\n item.gc(store, true)\n item = item.left\n }\n })\n this.type._map = new Map()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n this.type._write(encoder)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 7\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentType}\n */\nexport const readContentType = decoder => new ContentType(typeRefs[decoder.readTypeRef()](decoder))\n","import {\n GC,\n getState,\n AbstractStruct,\n replaceStruct,\n addStruct,\n addToDeleteSet,\n findRootTypeKey,\n compareIDs,\n getItem,\n getItemCleanEnd,\n getItemCleanStart,\n readContentDeleted,\n readContentBinary,\n readContentJSON,\n readContentAny,\n readContentString,\n readContentEmbed,\n readContentDoc,\n createID,\n readContentFormat,\n readContentType,\n addChangedTypeToTransaction,\n isDeleted,\n StackItem, DeleteSet, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, ContentType, ContentDeleted, StructStore, ID, AbstractType, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\nimport * as binary from 'lib0/binary'\nimport * as array from 'lib0/array'\n\n/**\n * @todo This should return several items\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {{item:Item, diff:number}}\n */\nexport const followRedone = (store, id) => {\n /**\n * @type {ID|null}\n */\n let nextID = id\n let diff = 0\n let item\n do {\n if (diff > 0) {\n nextID = createID(nextID.client, nextID.clock + diff)\n }\n item = getItem(store, nextID)\n diff = nextID.clock - item.id.clock\n nextID = item.redone\n } while (nextID !== null && item instanceof Item)\n return {\n item, diff\n }\n}\n\n/**\n * Make sure that neither item nor any of its parents is ever deleted.\n *\n * This property does not persist when storing it into a database or when\n * sending it to other peers\n *\n * @param {Item|null} item\n * @param {boolean} keep\n */\nexport const keepItem = (item, keep) => {\n while (item !== null && item.keep !== keep) {\n item.keep = keep\n item = /** @type {AbstractType} */ (item.parent)._item\n }\n}\n\n/**\n * Split leftItem into two items\n * @param {Transaction} transaction\n * @param {Item} leftItem\n * @param {number} diff\n * @return {Item}\n *\n * @function\n * @private\n */\nexport const splitItem = (transaction, leftItem, diff) => {\n // create rightItem\n const { client, clock } = leftItem.id\n const rightItem = new Item(\n createID(client, clock + diff),\n leftItem,\n createID(client, clock + diff - 1),\n leftItem.right,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n if (leftItem.deleted) {\n rightItem.markDeleted()\n }\n if (leftItem.keep) {\n rightItem.keep = true\n }\n if (leftItem.redone !== null) {\n rightItem.redone = createID(leftItem.redone.client, leftItem.redone.clock + diff)\n }\n // update left (do not set leftItem.rightOrigin as it will lead to problems when syncing)\n leftItem.right = rightItem\n // update right\n if (rightItem.right !== null) {\n rightItem.right.left = rightItem\n }\n // right is more specific.\n transaction._mergeStructs.push(rightItem)\n // update parent._map\n if (rightItem.parentSub !== null && rightItem.right === null) {\n /** @type {AbstractType} */ (rightItem.parent)._map.set(rightItem.parentSub, rightItem)\n }\n leftItem.length = diff\n return rightItem\n}\n\n/**\n * @param {Array} stack\n * @param {ID} id\n */\nconst isDeletedByUndoStack = (stack, id) => array.some(stack, /** @param {StackItem} s */ s => isDeleted(s.deletions, id))\n\n/**\n * Redoes the effect of this operation.\n *\n * @param {Transaction} transaction The Yjs instance.\n * @param {Item} item\n * @param {Set} redoitems\n * @param {DeleteSet} itemsToDelete\n * @param {boolean} ignoreRemoteMapChanges\n * @param {import('../utils/UndoManager.js').UndoManager} um\n *\n * @return {Item|null}\n *\n * @private\n */\nexport const redoItem = (transaction, item, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) => {\n const doc = transaction.doc\n const store = doc.store\n const ownClientID = doc.clientID\n const redone = item.redone\n if (redone !== null) {\n return getItemCleanStart(transaction, redone)\n }\n let parentItem = /** @type {AbstractType} */ (item.parent)._item\n /**\n * @type {Item|null}\n */\n let left = null\n /**\n * @type {Item|null}\n */\n let right\n // make sure that parent is redone\n if (parentItem !== null && parentItem.deleted === true) {\n // try to undo parent if it will be undone anyway\n if (parentItem.redone === null && (!redoitems.has(parentItem) || redoItem(transaction, parentItem, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) === null)) {\n return null\n }\n while (parentItem.redone !== null) {\n parentItem = getItemCleanStart(transaction, parentItem.redone)\n }\n }\n const parentType = parentItem === null ? /** @type {AbstractType} */ (item.parent) : /** @type {ContentType} */ (parentItem.content).type\n\n if (item.parentSub === null) {\n // Is an array item. Insert at the old position\n left = item.left\n right = item\n // find next cloned_redo items\n while (left !== null) {\n /**\n * @type {Item|null}\n */\n let leftTrace = left\n // trace redone until parent matches\n while (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item !== parentItem) {\n leftTrace = leftTrace.redone === null ? null : getItemCleanStart(transaction, leftTrace.redone)\n }\n if (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item === parentItem) {\n left = leftTrace\n break\n }\n left = left.left\n }\n while (right !== null) {\n /**\n * @type {Item|null}\n */\n let rightTrace = right\n // trace redone until parent matches\n while (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item !== parentItem) {\n rightTrace = rightTrace.redone === null ? null : getItemCleanStart(transaction, rightTrace.redone)\n }\n if (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item === parentItem) {\n right = rightTrace\n break\n }\n right = right.right\n }\n } else {\n right = null\n if (item.right && !ignoreRemoteMapChanges) {\n left = item\n // Iterate right while right is in itemsToDelete\n // If it is intended to delete right while item is redone, we can expect that item should replace right.\n while (left !== null && left.right !== null && (left.right.redone || isDeleted(itemsToDelete, left.right.id) || isDeletedByUndoStack(um.undoStack, left.right.id) || isDeletedByUndoStack(um.redoStack, left.right.id))) {\n left = left.right\n // follow redone\n while (left.redone) left = getItemCleanStart(transaction, left.redone)\n }\n if (left && left.right !== null) {\n // It is not possible to redo this item because it conflicts with a\n // change from another client\n return null\n }\n } else {\n left = parentType._map.get(item.parentSub) || null\n }\n }\n const nextClock = getState(store, ownClientID)\n const nextId = createID(ownClientID, nextClock)\n const redoneItem = new Item(\n nextId,\n left, left && left.lastId,\n right, right && right.id,\n parentType,\n item.parentSub,\n item.content.copy()\n )\n item.redone = nextId\n keepItem(redoneItem, true)\n redoneItem.integrate(transaction, 0)\n return redoneItem\n}\n\n/**\n * Abstract class that represents any content.\n */\nexport class Item extends AbstractStruct {\n /**\n * @param {ID} id\n * @param {Item | null} left\n * @param {ID | null} origin\n * @param {Item | null} right\n * @param {ID | null} rightOrigin\n * @param {AbstractType|ID|null} parent Is a type if integrated, is null if it is possible to copy parent from left or right, is ID before integration to search for it.\n * @param {string | null} parentSub\n * @param {AbstractContent} content\n */\n constructor (id, left, origin, right, rightOrigin, parent, parentSub, content) {\n super(id, content.getLength())\n /**\n * The item that was originally to the left of this item.\n * @type {ID | null}\n */\n this.origin = origin\n /**\n * The item that is currently to the left of this item.\n * @type {Item | null}\n */\n this.left = left\n /**\n * The item that is currently to the right of this item.\n * @type {Item | null}\n */\n this.right = right\n /**\n * The item that was originally to the right of this item.\n * @type {ID | null}\n */\n this.rightOrigin = rightOrigin\n /**\n * @type {AbstractType|ID|null}\n */\n this.parent = parent\n /**\n * If the parent refers to this item with some kind of key (e.g. YMap, the\n * key is specified here. The key is then used to refer to the list in which\n * to insert this item. If `parentSub = null` type._start is the list in\n * which to insert to. Otherwise it is `parent._map`.\n * @type {String | null}\n */\n this.parentSub = parentSub\n /**\n * If this type's effect is redone this type refers to the type that undid\n * this operation.\n * @type {ID | null}\n */\n this.redone = null\n /**\n * @type {AbstractContent}\n */\n this.content = content\n /**\n * bit1: keep\n * bit2: countable\n * bit3: deleted\n * bit4: mark - mark node as fast-search-marker\n * @type {number} byte\n */\n this.info = this.content.isCountable() ? binary.BIT2 : 0\n }\n\n /**\n * This is used to mark the item as an indexed fast-search marker\n *\n * @type {boolean}\n */\n set marker (isMarked) {\n if (((this.info & binary.BIT4) > 0) !== isMarked) {\n this.info ^= binary.BIT4\n }\n }\n\n get marker () {\n return (this.info & binary.BIT4) > 0\n }\n\n /**\n * If true, do not garbage collect this Item.\n */\n get keep () {\n return (this.info & binary.BIT1) > 0\n }\n\n set keep (doKeep) {\n if (this.keep !== doKeep) {\n this.info ^= binary.BIT1\n }\n }\n\n get countable () {\n return (this.info & binary.BIT2) > 0\n }\n\n /**\n * Whether this item was deleted or not.\n * @type {Boolean}\n */\n get deleted () {\n return (this.info & binary.BIT3) > 0\n }\n\n set deleted (doDelete) {\n if (this.deleted !== doDelete) {\n this.info ^= binary.BIT3\n }\n }\n\n markDeleted () {\n this.info |= binary.BIT3\n }\n\n /**\n * Return the creator clientID of the missing op or define missing items and return null.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n if (this.origin && this.origin.client !== this.id.client && this.origin.clock >= getState(store, this.origin.client)) {\n return this.origin.client\n }\n if (this.rightOrigin && this.rightOrigin.client !== this.id.client && this.rightOrigin.clock >= getState(store, this.rightOrigin.client)) {\n return this.rightOrigin.client\n }\n if (this.parent && this.parent.constructor === ID && this.id.client !== this.parent.client && this.parent.clock >= getState(store, this.parent.client)) {\n return this.parent.client\n }\n\n // We have all missing ids, now find the items\n\n if (this.origin) {\n this.left = getItemCleanEnd(transaction, store, this.origin)\n this.origin = this.left.lastId\n }\n if (this.rightOrigin) {\n this.right = getItemCleanStart(transaction, this.rightOrigin)\n this.rightOrigin = this.right.id\n }\n if ((this.left && this.left.constructor === GC) || (this.right && this.right.constructor === GC)) {\n this.parent = null\n } else if (!this.parent) {\n // only set parent if this shouldn't be garbage collected\n if (this.left && this.left.constructor === Item) {\n this.parent = this.left.parent\n this.parentSub = this.left.parentSub\n }\n if (this.right && this.right.constructor === Item) {\n this.parent = this.right.parent\n this.parentSub = this.right.parentSub\n }\n } else if (this.parent.constructor === ID) {\n const parentItem = getItem(store, this.parent)\n if (parentItem.constructor === GC) {\n this.parent = null\n } else {\n this.parent = /** @type {ContentType} */ (parentItem.content).type\n }\n }\n return null\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset\n this.left = getItemCleanEnd(transaction, transaction.doc.store, createID(this.id.client, this.id.clock - 1))\n this.origin = this.left.lastId\n this.content = this.content.splice(offset)\n this.length -= offset\n }\n\n if (this.parent) {\n if ((!this.left && (!this.right || this.right.left !== null)) || (this.left && this.left.right !== this.right)) {\n /**\n * @type {Item|null}\n */\n let left = this.left\n\n /**\n * @type {Item|null}\n */\n let o\n // set o to the first conflicting item\n if (left !== null) {\n o = left.right\n } else if (this.parentSub !== null) {\n o = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null\n while (o !== null && o.left !== null) {\n o = o.left\n }\n } else {\n o = /** @type {AbstractType} */ (this.parent)._start\n }\n // TODO: use something like DeleteSet here (a tree implementation would be best)\n // @todo use global set definitions\n /**\n * @type {Set}\n */\n const conflictingItems = new Set()\n /**\n * @type {Set}\n */\n const itemsBeforeOrigin = new Set()\n // Let c in conflictingItems, b in itemsBeforeOrigin\n // ***{origin}bbbb{this}{c,b}{c,b}{o}***\n // Note that conflictingItems is a subset of itemsBeforeOrigin\n while (o !== null && o !== this.right) {\n itemsBeforeOrigin.add(o)\n conflictingItems.add(o)\n if (compareIDs(this.origin, o.origin)) {\n // case 1\n if (o.id.client < this.id.client) {\n left = o\n conflictingItems.clear()\n } else if (compareIDs(this.rightOrigin, o.rightOrigin)) {\n // this and o are conflicting and point to the same integration points. The id decides which item comes first.\n // Since this is to the left of o, we can break here\n break\n } // else, o might be integrated before an item that this conflicts with. If so, we will find it in the next iterations\n } else if (o.origin !== null && itemsBeforeOrigin.has(getItem(transaction.doc.store, o.origin))) { // use getItem instead of getItemCleanEnd because we don't want / need to split items.\n // case 2\n if (!conflictingItems.has(getItem(transaction.doc.store, o.origin))) {\n left = o\n conflictingItems.clear()\n }\n } else {\n break\n }\n o = o.right\n }\n this.left = left\n }\n // reconnect left/right + update parent map/start if necessary\n if (this.left !== null) {\n const right = this.left.right\n this.right = right\n this.left.right = this\n } else {\n let r\n if (this.parentSub !== null) {\n r = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null\n while (r !== null && r.left !== null) {\n r = r.left\n }\n } else {\n r = /** @type {AbstractType} */ (this.parent)._start\n ;/** @type {AbstractType} */ (this.parent)._start = this\n }\n this.right = r\n }\n if (this.right !== null) {\n this.right.left = this\n } else if (this.parentSub !== null) {\n // set as current parent value if right === null and this is parentSub\n /** @type {AbstractType} */ (this.parent)._map.set(this.parentSub, this)\n if (this.left !== null) {\n // this is the current attribute value of parent. delete right\n this.left.delete(transaction)\n }\n }\n // adjust length of parent\n if (this.parentSub === null && this.countable && !this.deleted) {\n /** @type {AbstractType} */ (this.parent)._length += this.length\n }\n addStruct(transaction.doc.store, this)\n this.content.integrate(transaction, this)\n // add parent to transaction.changed\n addChangedTypeToTransaction(transaction, /** @type {AbstractType} */ (this.parent), this.parentSub)\n if ((/** @type {AbstractType} */ (this.parent)._item !== null && /** @type {AbstractType} */ (this.parent)._item.deleted) || (this.parentSub !== null && this.right !== null)) {\n // delete if parent is deleted or if this is not the current attribute value of parent\n this.delete(transaction)\n }\n } else {\n // parent is not defined. Integrate GC struct instead\n new GC(this.id, this.length).integrate(transaction, 0)\n }\n }\n\n /**\n * Returns the next non-deleted item\n */\n get next () {\n let n = this.right\n while (n !== null && n.deleted) {\n n = n.right\n }\n return n\n }\n\n /**\n * Returns the previous non-deleted item\n */\n get prev () {\n let n = this.left\n while (n !== null && n.deleted) {\n n = n.left\n }\n return n\n }\n\n /**\n * Computes the last content address of this Item.\n */\n get lastId () {\n // allocating ids is pretty costly because of the amount of ids created, so we try to reuse whenever possible\n return this.length === 1 ? this.id : createID(this.id.client, this.id.clock + this.length - 1)\n }\n\n /**\n * Try to merge two items\n *\n * @param {Item} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (\n this.constructor === right.constructor &&\n compareIDs(right.origin, this.lastId) &&\n this.right === right &&\n compareIDs(this.rightOrigin, right.rightOrigin) &&\n this.id.client === right.id.client &&\n this.id.clock + this.length === right.id.clock &&\n this.deleted === right.deleted &&\n this.redone === null &&\n right.redone === null &&\n this.content.constructor === right.content.constructor &&\n this.content.mergeWith(right.content)\n ) {\n const searchMarker = /** @type {AbstractType} */ (this.parent)._searchMarker\n if (searchMarker) {\n searchMarker.forEach(marker => {\n if (marker.p === right) {\n // right is going to be \"forgotten\" so we need to update the marker\n marker.p = this\n // adjust marker index\n if (!this.deleted && this.countable) {\n marker.index -= this.length\n }\n }\n })\n }\n if (right.keep) {\n this.keep = true\n }\n this.right = right.right\n if (this.right !== null) {\n this.right.left = this\n }\n this.length += right.length\n return true\n }\n return false\n }\n\n /**\n * Mark this Item as deleted.\n *\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (!this.deleted) {\n const parent = /** @type {AbstractType} */ (this.parent)\n // adjust the length of parent\n if (this.countable && this.parentSub === null) {\n parent._length -= this.length\n }\n this.markDeleted()\n addToDeleteSet(transaction.deleteSet, this.id.client, this.id.clock, this.length)\n addChangedTypeToTransaction(transaction, parent, this.parentSub)\n this.content.delete(transaction)\n }\n }\n\n /**\n * @param {StructStore} store\n * @param {boolean} parentGCd\n */\n gc (store, parentGCd) {\n if (!this.deleted) {\n throw error.unexpectedCase()\n }\n this.content.gc(store)\n if (parentGCd) {\n replaceStruct(store, this, new GC(this.id, this.length))\n } else {\n this.content = new ContentDeleted(this.length)\n }\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n */\n write (encoder, offset) {\n const origin = offset > 0 ? createID(this.id.client, this.id.clock + offset - 1) : this.origin\n const rightOrigin = this.rightOrigin\n const parentSub = this.parentSub\n const info = (this.content.getRef() & binary.BITS5) |\n (origin === null ? 0 : binary.BIT8) | // origin is defined\n (rightOrigin === null ? 0 : binary.BIT7) | // right origin is defined\n (parentSub === null ? 0 : binary.BIT6) // parentSub is non-null\n encoder.writeInfo(info)\n if (origin !== null) {\n encoder.writeLeftID(origin)\n }\n if (rightOrigin !== null) {\n encoder.writeRightID(rightOrigin)\n }\n if (origin === null && rightOrigin === null) {\n const parent = /** @type {AbstractType} */ (this.parent)\n if (parent._item !== undefined) {\n const parentItem = parent._item\n if (parentItem === null) {\n // parent type on y._map\n // find the correct key\n const ykey = findRootTypeKey(parent)\n encoder.writeParentInfo(true) // write parentYKey\n encoder.writeString(ykey)\n } else {\n encoder.writeParentInfo(false) // write parent id\n encoder.writeLeftID(parentItem.id)\n }\n } else if (parent.constructor === String) { // this edge case was added by differential updates\n encoder.writeParentInfo(true) // write parentYKey\n encoder.writeString(parent)\n } else if (parent.constructor === ID) {\n encoder.writeParentInfo(false) // write parent id\n encoder.writeLeftID(parent)\n } else {\n error.unexpectedCase()\n }\n if (parentSub !== null) {\n encoder.writeString(parentSub)\n }\n }\n this.content.write(encoder, offset)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {number} info\n */\nexport const readItemContent = (decoder, info) => contentRefs[info & binary.BITS5](decoder)\n\n/**\n * A lookup map for reading Item content.\n *\n * @type {Array}\n */\nexport const contentRefs = [\n () => { error.unexpectedCase() }, // GC is not ItemContent\n readContentDeleted, // 1\n readContentJSON, // 2\n readContentBinary, // 3\n readContentString, // 4\n readContentEmbed, // 5\n readContentFormat, // 6\n readContentType, // 7\n readContentAny, // 8\n readContentDoc, // 9\n () => { error.unexpectedCase() } // 10 - Skip is not ItemContent\n]\n\n/**\n * Do not implement this class!\n */\nexport class AbstractContent {\n /**\n * @return {number}\n */\n getLength () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Should return false if this Item is some kind of meta information\n * (e.g. format information).\n *\n * * Whether this Item should be addressable via `yarray.get(i)`\n * * Whether this Item should be counted when computing yarray.length\n *\n * @return {boolean}\n */\n isCountable () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {AbstractContent}\n */\n copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {number} _offset\n * @return {AbstractContent}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {AbstractContent} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} _item\n */\n integrate (_transaction, _item) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} _transaction\n */\n delete (_transaction) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {StructStore} _store\n */\n gc (_store) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n * @param {number} _offset\n */\n write (_encoder, _offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {number}\n */\n getRef () {\n throw error.methodUnimplemented()\n }\n}\n","import {\n AbstractStruct,\n UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\nimport * as error from 'lib0/error'\nimport * as encoding from 'lib0/encoding'\n\nexport const structSkipRefNumber = 10\n\n/**\n * @private\n */\nexport class Skip extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {Skip} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n // skip structs cannot be integrated\n error.unexpectedCase()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structSkipRefNumber)\n // write as VarUint because Skips can't make use of predictable length-encoding\n encoding.writeVarUint(encoder.restEncoder, this.length - offset)\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n","/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YXmlEvent,\n YMapEvent,\n YArrayEvent,\n YTextEvent,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n createDeleteSet,\n createDeleteSetFromStructStore,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n iterateDeletedStructs,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isDeleted,\n isParentOf,\n equalSnapshots,\n PermanentUserData, // @TODO experimental\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n parseUpdateMeta,\n parseUpdateMetaV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n equalDeleteSets,\n mergeDeleteSets,\n snapshotContainsUpdate\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n","import { _ as _super_prop_base } from \"./_super_prop_base.js\";\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) _get = Reflect.get;\n else {\n _get = function get(target, property, receiver) {\n var base = _super_prop_base(target, property);\n\n if (!base) return;\n\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) return desc.get.call(receiver || target);\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\nexport { _get as _ };\n","import { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\n\nfunction _super_prop_base(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _get_prototype_of(object);\n if (object === null) break;\n }\n\n return object;\n}\nexport { _super_prop_base as _ };\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n * @experimental\n *\n * This is basically a (better typed) duplicate of Observable, which will replace Observable in the\n * next release.\n *\n * @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS\n */\nexport class ObservableV2 {\n constructor () {\n /**\n * Some desc.\n * @type {Map>}\n */\n this._observers = map.create()\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, /** @type {string} */ (name), set.create).add(f)\n return f\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, /** @type {any} */ (_f))\n f(...args)\n }\n this.on(name, /** @type {any} */ (_f))\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name The event name.\n * @param {Parameters} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n\n/* c8 ignore start */\n/**\n * Handles named events.\n *\n * @deprecated\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n/* c8 ignore end */\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template K,V\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template {Map} MAP\n * @template {MAP extends Map ? function():V : unknown} CF\n * @param {MAP} map\n * @param {MAP extends Map ? K : unknown} key\n * @param {CF} createT\n * @return {ReturnType}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set =>\n set.values().next().value ?? undefined\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => new Set(entries)\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\nimport * as set from './set.js'\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {ArrayLike} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n * @template {ArrayLike} ARR\n *\n * @param {ARR} arr\n * @param {function(ITEM, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (!f(arr[i], i, arr)) {\n return false\n }\n }\n return true\n}\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @template {ArrayLike} ARR\n * @param {ARR} arr\n * @param {function(S, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (f(arr[i], i, arr)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @template ELEM\n *\n * @param {ArrayLike} a\n * @param {ArrayLike} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => fold(arr, /** @type {Array} */ ([]), (acc, val) => acc.concat(val))\n\n/**\n * @template T\n * @param {number} len\n * @param {function(number, Array):T} f\n * @return {Array}\n */\nexport const unfold = (len, f) => {\n const array = new Array(len)\n for (let i = 0; i < len; i++) {\n array[i] = f(i, array)\n }\n return array\n}\n\n/**\n * @template T\n * @template RESULT\n * @param {Array} arr\n * @param {RESULT} seed\n * @param {function(RESULT, T, number):RESULT} folder\n */\nexport const fold = (arr, seed, folder) => arr.reduce(folder, seed)\n\nexport const isArray = Array.isArray\n\n/**\n * @template T\n * @param {Array} arr\n * @return {Array}\n */\nexport const unique = arr => from(set.from(arr))\n\n/**\n * @template T\n * @template M\n * @param {ArrayLike} arr\n * @param {function(T):M} mapper\n * @return {Array}\n */\nexport const uniqueBy = (arr, mapper) => {\n /**\n * @type {Set}\n */\n const happened = set.create()\n /**\n * @type {Array}\n */\n const result = []\n for (let i = 0; i < arr.length; i++) {\n const el = arr[i]\n const mapped = mapper(el)\n if (!happened.has(mapped)) {\n happened.add(mapped)\n result.push(el)\n }\n }\n return result\n}\n\n/**\n * @template {ArrayLike} ARR\n * @template {function(ARR extends ArrayLike ? T : never, number, ARR):any} MAPPER\n * @param {ARR} arr\n * @param {MAPPER} mapper\n * @return {Array}\n */\nexport const map = (arr, mapper) => {\n /**\n * @type {Array}\n */\n const res = Array(arr.length)\n for (let i = 0; i < arr.length; i++) {\n res[i] = mapper(/** @type {any} */ (arr[i]), i, /** @type {any} */ (arr))\n }\n return /** @type {any} */ (res)\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Efficient schema-less binary encoding with support for variable length encoding.\n *\n * Use [lib0/encoding] with [lib0/decoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module encoding\n */\n\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as binary from './binary.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\n\n/**\n * A BinaryEncoder handles the encoding to an Uint8Array.\n */\nexport class Encoder {\n constructor () {\n this.cpos = 0\n this.cbuf = new Uint8Array(100)\n /**\n * @type {Array}\n */\n this.bufs = []\n }\n}\n\n/**\n * @function\n * @return {Encoder}\n */\nexport const createEncoder = () => new Encoder()\n\n/**\n * @param {function(Encoder):void} f\n */\nexport const encode = (f) => {\n const encoder = createEncoder()\n f(encoder)\n return toUint8Array(encoder)\n}\n\n/**\n * The current length of the encoded data.\n *\n * @function\n * @param {Encoder} encoder\n * @return {number}\n */\nexport const length = encoder => {\n let len = encoder.cpos\n for (let i = 0; i < encoder.bufs.length; i++) {\n len += encoder.bufs[i].length\n }\n return len\n}\n\n/**\n * Check whether encoder is empty.\n *\n * @function\n * @param {Encoder} encoder\n * @return {boolean}\n */\nexport const hasContent = encoder => encoder.cpos > 0 || encoder.bufs.length > 0\n\n/**\n * Transform to Uint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @return {Uint8Array} The created ArrayBuffer.\n */\nexport const toUint8Array = encoder => {\n const uint8arr = new Uint8Array(length(encoder))\n let curPos = 0\n for (let i = 0; i < encoder.bufs.length; i++) {\n const d = encoder.bufs[i]\n uint8arr.set(d, curPos)\n curPos += d.length\n }\n uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos)\n return uint8arr\n}\n\n/**\n * Verify that it is possible to write `len` bytes wtihout checking. If\n * necessary, a new Buffer with the required length is attached.\n *\n * @param {Encoder} encoder\n * @param {number} len\n */\nexport const verifyLen = (encoder, len) => {\n const bufferLen = encoder.cbuf.length\n if (bufferLen - encoder.cpos < len) {\n encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos))\n encoder.cbuf = new Uint8Array(math.max(bufferLen, len) * 2)\n encoder.cpos = 0\n }\n}\n\n/**\n * Write one byte to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The byte that is to be encoded.\n */\nexport const write = (encoder, num) => {\n const bufferLen = encoder.cbuf.length\n if (encoder.cpos === bufferLen) {\n encoder.bufs.push(encoder.cbuf)\n encoder.cbuf = new Uint8Array(bufferLen * 2)\n encoder.cpos = 0\n }\n encoder.cbuf[encoder.cpos++] = num\n}\n\n/**\n * Write one byte at a specific position.\n * Position must already be written (i.e. encoder.length > pos)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos Position to which to write data\n * @param {number} num Unsigned 8-bit integer\n */\nexport const set = (encoder, pos, num) => {\n let buffer = null\n // iterate all buffers and adjust position\n for (let i = 0; i < encoder.bufs.length && buffer === null; i++) {\n const b = encoder.bufs[i]\n if (pos < b.length) {\n buffer = b // found buffer\n } else {\n pos -= b.length\n }\n }\n if (buffer === null) {\n // use current buffer\n buffer = encoder.cbuf\n }\n buffer[pos] = num\n}\n\n/**\n * Write one byte as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint8 = write\n\n/**\n * Write one byte as an unsigned Integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint8 = set\n\n/**\n * Write two bytes as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint16 = (encoder, num) => {\n write(encoder, num & binary.BITS8)\n write(encoder, (num >>> 8) & binary.BITS8)\n}\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint16 = (encoder, pos, num) => {\n set(encoder, pos, num & binary.BITS8)\n set(encoder, pos + 1, (num >>> 8) & binary.BITS8)\n}\n\n/**\n * Write two bytes as an unsigned integer\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32 = (encoder, num) => {\n for (let i = 0; i < 4; i++) {\n write(encoder, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write two bytes as an unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32BigEndian = (encoder, num) => {\n for (let i = 3; i >= 0; i--) {\n write(encoder, (num >>> (8 * i)) & binary.BITS8)\n }\n}\n\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint32 = (encoder, pos, num) => {\n for (let i = 0; i < 4; i++) {\n set(encoder, pos + i, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write a variable length unsigned integer. Max encodable integer is 2^53.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarUint = (encoder, num) => {\n while (num > binary.BITS7) {\n write(encoder, binary.BIT8 | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n write(encoder, binary.BITS7 & num)\n}\n\n/**\n * Write a variable length integer.\n *\n * We use the 7th bit instead for signaling that this is a negative number.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarInt = (encoder, num) => {\n const isNegative = math.isNegativeZero(num)\n if (isNegative) {\n num = -num\n }\n // |- whether to continue reading |- whether is negative |- number\n write(encoder, (num > binary.BITS6 ? binary.BIT8 : 0) | (isNegative ? binary.BIT7 : 0) | (binary.BITS6 & num))\n num = math.floor(num / 64) // shift >>> 6\n // We don't need to consider the case of num === 0 so we can use a different\n // pattern here than above.\n while (num > 0) {\n write(encoder, (num > binary.BITS7 ? binary.BIT8 : 0) | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n}\n\n/**\n * A cache to store strings temporarily\n */\nconst _strBuffer = new Uint8Array(30000)\nconst _maxStrBSize = _strBuffer.length / 3\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringNative = (encoder, str) => {\n if (str.length < _maxStrBSize) {\n // We can encode the string into the existing buffer\n /* c8 ignore next */\n const written = string.utf8TextEncoder.encodeInto(str, _strBuffer).written || 0\n writeVarUint(encoder, written)\n for (let i = 0; i < written; i++) {\n write(encoder, _strBuffer[i])\n }\n } else {\n writeVarUint8Array(encoder, string.encodeUtf8(str))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringPolyfill = (encoder, str) => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n write(encoder, /** @type {number} */ (encodedString.codePointAt(i)))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\n/* c8 ignore next */\nexport const writeVarString = (string.utf8TextEncoder && /** @type {any} */ (string.utf8TextEncoder).encodeInto) ? _writeVarStringNative : _writeVarStringPolyfill\n\n/**\n * Write a string terminated by a special byte sequence. This is not very performant and is\n * generally discouraged. However, the resulting byte arrays are lexiographically ordered which\n * makes this a nice feature for databases.\n *\n * The string will be encoded using utf8 and then terminated and escaped using writeTerminatingUint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const writeTerminatedString = (encoder, str) =>\n writeTerminatedUint8Array(encoder, string.encodeUtf8(str))\n\n/**\n * Write a terminating Uint8Array. Note that this is not performant and is generally\n * discouraged. There are few situations when this is needed.\n *\n * We use 0x0 as a terminating character. 0x1 serves as an escape character for 0x0 and 0x1.\n *\n * Example: [0,1,2] is encoded to [1,0,1,1,2,0]. 0x0, and 0x1 needed to be escaped using 0x1. Then\n * the result is terminated using the 0x0 character.\n *\n * This is basically how many systems implement null terminated strings. However, we use an escape\n * character 0x1 to avoid issues and potenial attacks on our database (if this is used as a key\n * encoder for NoSql databases).\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} buf The string that is to be encoded.\n */\nexport const writeTerminatedUint8Array = (encoder, buf) => {\n for (let i = 0; i < buf.length; i++) {\n const b = buf[i]\n if (b === 0 || b === 1) {\n write(encoder, 1)\n }\n write(encoder, buf[i])\n }\n write(encoder, 0)\n}\n\n/**\n * Write the content of another Encoder.\n *\n * @TODO: can be improved!\n * - Note: Should consider that when appending a lot of small Encoders, we should rather clone than referencing the old structure.\n * Encoders start with a rather big initial buffer.\n *\n * @function\n * @param {Encoder} encoder The enUint8Arr\n * @param {Encoder} append The BinaryEncoder to be written.\n */\nexport const writeBinaryEncoder = (encoder, append) => writeUint8Array(encoder, toUint8Array(append))\n\n/**\n * Append fixed-length Uint8Array to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeUint8Array = (encoder, uint8Array) => {\n const bufferLen = encoder.cbuf.length\n const cpos = encoder.cpos\n const leftCopyLen = math.min(bufferLen - cpos, uint8Array.length)\n const rightCopyLen = uint8Array.length - leftCopyLen\n encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos)\n encoder.cpos += leftCopyLen\n if (rightCopyLen > 0) {\n // Still something to write, write right half..\n // Append new buffer\n encoder.bufs.push(encoder.cbuf)\n // must have at least size of remaining buffer\n encoder.cbuf = new Uint8Array(math.max(bufferLen * 2, rightCopyLen))\n // copy array\n encoder.cbuf.set(uint8Array.subarray(leftCopyLen))\n encoder.cpos = rightCopyLen\n }\n}\n\n/**\n * Append an Uint8Array to Encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeVarUint8Array = (encoder, uint8Array) => {\n writeVarUint(encoder, uint8Array.byteLength)\n writeUint8Array(encoder, uint8Array)\n}\n\n/**\n * Create an DataView of the next `len` bytes. Use it to write data after\n * calling this function.\n *\n * ```js\n * // write float32 using DataView\n * const dv = writeOnDataView(encoder, 4)\n * dv.setFloat32(0, 1.1)\n * // read float32 using DataView\n * const dv = readFromDataView(encoder, 4)\n * dv.getFloat32(0) // => 1.100000023841858 (leaving it to the reader to find out why this is the correct result)\n * ```\n *\n * @param {Encoder} encoder\n * @param {number} len\n * @return {DataView}\n */\nexport const writeOnDataView = (encoder, len) => {\n verifyLen(encoder, len)\n const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len)\n encoder.cpos += len\n return dview\n}\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigInt64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigInt64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigUint64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigUint64(0, num, false)\n\nconst floatTestBed = new DataView(new ArrayBuffer(4))\n/**\n * Check if a number can be encoded as a 32 bit float.\n *\n * @param {number} num\n * @return {boolean}\n */\nconst isFloat32 = num => {\n floatTestBed.setFloat32(0, num)\n return floatTestBed.getFloat32(0) === num\n}\n\n/**\n * Encode data with efficient binary format.\n *\n * Differences to JSON:\n * • Transforms data to a binary format (not to a string)\n * • Encodes undefined, NaN, and ArrayBuffer (these can't be represented in JSON)\n * • Numbers are efficiently encoded either as a variable length integer, as a\n * 32 bit float, as a 64 bit float, or as a 64 bit bigint.\n *\n * Encoding table:\n *\n * | Data Type | Prefix | Encoding Method | Comment |\n * | ------------------- | -------- | ------------------ | ------- |\n * | undefined | 127 | | Functions, symbol, and everything that cannot be identified is encoded as undefined |\n * | null | 126 | | |\n * | integer | 125 | writeVarInt | Only encodes 32 bit signed integers |\n * | float32 | 124 | writeFloat32 | |\n * | float64 | 123 | writeFloat64 | |\n * | bigint | 122 | writeBigInt64 | |\n * | boolean (false) | 121 | | True and false are different data types so we save the following byte |\n * | boolean (true) | 120 | | - 0b01111000 so the last bit determines whether true or false |\n * | string | 119 | writeVarString | |\n * | object | 118 | custom | Writes {length} then {length} key-value pairs |\n * | array | 117 | custom | Writes {length} then {length} json values |\n * | Uint8Array | 116 | writeVarUint8Array | We use Uint8Array for any kind of binary data |\n *\n * Reasons for the decreasing prefix:\n * We need the first bit for extendability (later we may want to encode the\n * prefix with writeVarUint). The remaining 7 bits are divided as follows:\n * [0-30] the beginning of the data range is used for custom purposes\n * (defined by the function that uses this library)\n * [31-127] the end of the data range is used for data encoding by\n * lib0/encoding.js\n *\n * @param {Encoder} encoder\n * @param {undefined|null|number|bigint|boolean|string|Object|Array|Uint8Array} data\n */\nexport const writeAny = (encoder, data) => {\n switch (typeof data) {\n case 'string':\n // TYPE 119: STRING\n write(encoder, 119)\n writeVarString(encoder, data)\n break\n case 'number':\n if (number.isInteger(data) && math.abs(data) <= binary.BITS31) {\n // TYPE 125: INTEGER\n write(encoder, 125)\n writeVarInt(encoder, data)\n } else if (isFloat32(data)) {\n // TYPE 124: FLOAT32\n write(encoder, 124)\n writeFloat32(encoder, data)\n } else {\n // TYPE 123: FLOAT64\n write(encoder, 123)\n writeFloat64(encoder, data)\n }\n break\n case 'bigint':\n // TYPE 122: BigInt\n write(encoder, 122)\n writeBigInt64(encoder, data)\n break\n case 'object':\n if (data === null) {\n // TYPE 126: null\n write(encoder, 126)\n } else if (array.isArray(data)) {\n // TYPE 117: Array\n write(encoder, 117)\n writeVarUint(encoder, data.length)\n for (let i = 0; i < data.length; i++) {\n writeAny(encoder, data[i])\n }\n } else if (data instanceof Uint8Array) {\n // TYPE 116: ArrayBuffer\n write(encoder, 116)\n writeVarUint8Array(encoder, data)\n } else {\n // TYPE 118: Object\n write(encoder, 118)\n const keys = Object.keys(data)\n writeVarUint(encoder, keys.length)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n writeVarString(encoder, key)\n writeAny(encoder, data[key])\n }\n }\n break\n case 'boolean':\n // TYPE 120/121: boolean (true/false)\n write(encoder, data ? 120 : 121)\n break\n default:\n // TYPE 127: undefined\n write(encoder, 127)\n }\n}\n\n/**\n * Now come a few stateful encoder that have their own classes.\n */\n\n/**\n * Basic Run Length Encoder - a basic compression implementation.\n *\n * Encodes [1,1,1,7] to [1,3,7,1] (3 times 1, 1 time 7). This encoder might do more harm than good if there are a lot of values that are not repeated.\n *\n * It was originally used for image compression. Cool .. article http://csbruce.com/cbm/transactor/pdfs/trans_v7_i06.pdf\n *\n * @note T must not be null!\n *\n * @template T\n */\nexport class RleEncoder extends Encoder {\n /**\n * @param {function(Encoder, T):void} writer\n */\n constructor (writer) {\n super()\n /**\n * The writer\n */\n this.w = writer\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n /**\n * @param {T} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n this.w(this, v)\n this.s = v\n }\n }\n}\n\n/**\n * Basic diff decoder using variable length encoding.\n *\n * Encodes the values [3, 1100, 1101, 1050, 0] to [3, 1097, 1, -51, -1050] using writeVarInt.\n */\nexport class IntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n writeVarInt(this, v - this.s)\n this.s = v\n }\n}\n\n/**\n * A combination of IntDiffEncoder and RleEncoder.\n *\n * Basically first writes the IntDiffEncoder and then counts duplicate diffs using RleEncoding.\n *\n * Encodes the values [1,1,1,2,3,4,5,6] as [1,1,0,2,1,5] (RLE([1,0,0,1,1,1,1,1]) ⇒ RleIntDiff[1,1,0,2,1,5])\n */\nexport class RleIntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v && this.count > 0) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n writeVarInt(this, v - this.s)\n this.s = v\n }\n }\n}\n\n/**\n * @param {UintOptRleEncoder} encoder\n */\nconst flushUintOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set sign to positive\n // case 2: write several values. set sign to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encoder.count === 1 ? encoder.s : -encoder.s)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * Optimized Rle encoder that does not suffer from the mentioned problem of the basic Rle encoder.\n *\n * Internally uses VarInt encoder to write unsigned integers. If the input occurs multiple times, we write\n * write it as a negative number. The UintOptRleDecoder then understands that it needs to read a count.\n *\n * Encodes [1,2,3,3,3] as [1,2,-3,3] (once 1, once 2, three times 3)\n */\nexport class UintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Increasing Uint Optimized RLE Encoder\n *\n * The RLE encoder counts the number of same occurences of the same value.\n * The IncUintOptRle encoder counts if the value increases.\n * I.e. 7, 8, 9, 10 will be encoded as [-7, 4]. 1, 3, 5 will be encoded\n * as [1, 3, 5].\n */\nexport class IncUintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s + this.count === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * @param {IntDiffOptRleEncoder} encoder\n */\nconst flushIntDiffOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // 31 bit making up the diff | wether to write the counter\n // const encodedDiff = encoder.diff << 1 | (encoder.count === 1 ? 0 : 1)\n const encodedDiff = encoder.diff * 2 + (encoder.count === 1 ? 0 : 1)\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set first bit to positive\n // case 2: write several values. set first bit to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encodedDiff)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * A combination of the IntDiffEncoder and the UintOptRleEncoder.\n *\n * The count approach is similar to the UintDiffOptRleEncoder, but instead of using the negative bitflag, it encodes\n * in the LSB whether a count is to be read. Therefore this Encoder only supports 31 bit integers!\n *\n * Encodes [1, 2, 3, 2] as [3, 1, 6, -1] (more specifically [(1 << 1) | 1, (3 << 0) | 0, -1])\n *\n * Internally uses variable length encoding. Contrary to normal UintVar encoding, the first byte contains:\n * * 1 bit that denotes whether the next value is a count (LSB)\n * * 1 bit that denotes whether this value is negative (MSB - 1)\n * * 1 bit that denotes whether to continue reading the variable length integer (MSB)\n *\n * Therefore, only five bits remain to encode diff ranges.\n *\n * Use this Encoder only when appropriate. In most cases, this is probably a bad idea.\n */\nexport class IntDiffOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.diff === v - this.s) {\n this.s = v\n this.count++\n } else {\n flushIntDiffOptRleEncoder(this)\n this.count = 1\n this.diff = v - this.s\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushIntDiffOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Optimized String Encoder.\n *\n * Encoding many small strings in a simple Encoder is not very efficient. The function call to decode a string takes some time and creates references that must be eventually deleted.\n * In practice, when decoding several million small strings, the GC will kick in more and more often to collect orphaned string objects (or maybe there is another reason?).\n *\n * This string encoder solves the above problem. All strings are concatenated and written as a single string using a single encoding call.\n *\n * The lengths are encoded using a UintOptRleEncoder.\n */\nexport class StringEncoder {\n constructor () {\n /**\n * @type {Array}\n */\n this.sarr = []\n this.s = ''\n this.lensE = new UintOptRleEncoder()\n }\n\n /**\n * @param {string} string\n */\n write (string) {\n this.s += string\n if (this.s.length > 19) {\n this.sarr.push(this.s)\n this.s = ''\n }\n this.lensE.write(string.length)\n }\n\n toUint8Array () {\n const encoder = new Encoder()\n this.sarr.push(this.s)\n this.s = ''\n writeVarString(encoder, this.sarr.join(''))\n writeUint8Array(encoder, this.lensE.toUint8Array())\n return toUint8Array(encoder)\n }\n}\n","/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n","/* eslint-env browser */\n\n/**\n * Binary data constants.\n *\n * @module binary\n */\n\n/**\n * n-th bit activated.\n *\n * @type {number}\n */\nexport const BIT1 = 1\nexport const BIT2 = 2\nexport const BIT3 = 4\nexport const BIT4 = 8\nexport const BIT5 = 16\nexport const BIT6 = 32\nexport const BIT7 = 64\nexport const BIT8 = 128\nexport const BIT9 = 256\nexport const BIT10 = 512\nexport const BIT11 = 1024\nexport const BIT12 = 2048\nexport const BIT13 = 4096\nexport const BIT14 = 8192\nexport const BIT15 = 16384\nexport const BIT16 = 32768\nexport const BIT17 = 65536\nexport const BIT18 = 1 << 17\nexport const BIT19 = 1 << 18\nexport const BIT20 = 1 << 19\nexport const BIT21 = 1 << 20\nexport const BIT22 = 1 << 21\nexport const BIT23 = 1 << 22\nexport const BIT24 = 1 << 23\nexport const BIT25 = 1 << 24\nexport const BIT26 = 1 << 25\nexport const BIT27 = 1 << 26\nexport const BIT28 = 1 << 27\nexport const BIT29 = 1 << 28\nexport const BIT30 = 1 << 29\nexport const BIT31 = 1 << 30\nexport const BIT32 = 1 << 31\n\n/**\n * First n bits activated.\n *\n * @type {number}\n */\nexport const BITS0 = 0\nexport const BITS1 = 1\nexport const BITS2 = 3\nexport const BITS3 = 7\nexport const BITS4 = 15\nexport const BITS5 = 31\nexport const BITS6 = 63\nexport const BITS7 = 127\nexport const BITS8 = 255\nexport const BITS9 = 511\nexport const BITS10 = 1023\nexport const BITS11 = 2047\nexport const BITS12 = 4095\nexport const BITS13 = 8191\nexport const BITS14 = 16383\nexport const BITS15 = 32767\nexport const BITS16 = 65535\nexport const BITS17 = BIT18 - 1\nexport const BITS18 = BIT19 - 1\nexport const BITS19 = BIT20 - 1\nexport const BITS20 = BIT21 - 1\nexport const BITS21 = BIT22 - 1\nexport const BITS22 = BIT23 - 1\nexport const BITS23 = BIT24 - 1\nexport const BITS24 = BIT25 - 1\nexport const BITS25 = BIT26 - 1\nexport const BITS26 = BIT27 - 1\nexport const BITS27 = BIT28 - 1\nexport const BITS28 = BIT29 - 1\nexport const BITS29 = BIT30 - 1\nexport const BITS30 = BIT31 - 1\n/**\n * @type {number}\n */\nexport const BITS31 = 0x7FFFFFFF\n/**\n * @type {number}\n */\nexport const BITS32 = 0xFFFFFFFF\n","import * as array from './array.js'\n\n/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * The largest utf16 character.\n * Corresponds to Uint8Array([255, 255]) or charcodeof(2x2^8)\n */\nexport const MAX_UTF16_CHARACTER = fromCharCode(65535)\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* c8 ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* c8 ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* c8 ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* c8 ignore start */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* c8 ignore next */\n utf8TextDecoder = null\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* c8 ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n\n/**\n * @param {string} source\n * @param {number} n\n */\nexport const repeat = (source, n) => array.unfold(n, () => source).join('')\n","/**\n * Efficient schema-less binary decoding with support for variable length encoding.\n *\n * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module decoding\n */\n\nimport * as binary from './binary.js'\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as string from './string.js'\nimport * as error from './error.js'\nimport * as encoding from './encoding.js'\n\nconst errorUnexpectedEndOfArray = error.create('Unexpected end of array')\nconst errorIntegerOutOfRange = error.create('Integer out of Range')\n\n/**\n * A Decoder handles the decoding of an Uint8Array.\n */\nexport class Decoder {\n /**\n * @param {Uint8Array} uint8Array Binary data to decode\n */\n constructor (uint8Array) {\n /**\n * Decoding target.\n *\n * @type {Uint8Array}\n */\n this.arr = uint8Array\n /**\n * Current decoding position.\n *\n * @type {number}\n */\n this.pos = 0\n }\n}\n\n/**\n * @function\n * @param {Uint8Array} uint8Array\n * @return {Decoder}\n */\nexport const createDecoder = uint8Array => new Decoder(uint8Array)\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {boolean}\n */\nexport const hasContent = decoder => decoder.pos !== decoder.arr.length\n\n/**\n * Clone a decoder instance.\n * Optionally set a new position parameter.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} [newPos] Defaults to current position\n * @return {Decoder} A clone of `decoder`\n */\nexport const clone = (decoder, newPos = decoder.pos) => {\n const _decoder = createDecoder(decoder.arr)\n _decoder.pos = newPos\n return _decoder\n}\n\n/**\n * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} len The length of bytes to read\n * @return {Uint8Array}\n */\nexport const readUint8Array = (decoder, len) => {\n const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)\n decoder.pos += len\n return view\n}\n\n/**\n * Read variable length Uint8Array.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder))\n\n/**\n * Read the rest of the content as an ArrayBuffer\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTailAsUint8Array = decoder => readUint8Array(decoder, decoder.arr.length - decoder.pos)\n\n/**\n * Skip one byte, jump to the next position.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} The next position\n */\nexport const skip8 = decoder => decoder.pos++\n\n/**\n * Read one byte as unsigned integer.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} Unsigned 8-bit integer\n */\nexport const readUint8 = decoder => decoder.arr[decoder.pos++]\n\n/**\n * Read 2 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint16 = decoder => {\n const uint =\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n decoder.pos += 2\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32 = decoder => {\n const uint =\n (decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32BigEndian = decoder => {\n const uint =\n (decoder.arr[decoder.pos + 3] +\n (decoder.arr[decoder.pos + 2] << 8) +\n (decoder.arr[decoder.pos + 1] << 16) +\n (decoder.arr[decoder.pos] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint8 = decoder => decoder.arr[decoder.pos]\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint16 = decoder =>\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint32 = decoder => (\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)\n) >>> 0\n\n/**\n * Read unsigned integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarUint = decoder => {\n let num = 0\n let mult = 1\n const len = decoder.arr.length\n while (decoder.pos < len) {\n const r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult // shift $r << (7*#iterations) and add it to num\n mult *= 128 // next iteration, shift 7 \"more\" to the left\n if (r < binary.BIT8) {\n return num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Read signed integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarInt = decoder => {\n let r = decoder.arr[decoder.pos++]\n let num = r & binary.BITS6\n let mult = 64\n const sign = (r & binary.BIT7) > 0 ? -1 : 1\n if ((r & binary.BIT8) === 0) {\n // don't continue reading\n return sign * num\n }\n const len = decoder.arr.length\n while (decoder.pos < len) {\n r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult\n mult *= 128\n if (r < binary.BIT8) {\n return sign * num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarUint = decoder => {\n const pos = decoder.pos\n const s = readVarUint(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarInt = decoder => {\n const pos = decoder.pos\n const s = readVarInt(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * We don't test this function anymore as we use native decoding/encoding by default now.\n * Better not modify this anymore..\n *\n * Transforming utf8 to a string is pretty expensive. The code performs 10x better\n * when String.fromCodePoint is fed with all characters as arguments.\n * But most environments have a maximum number of arguments per functions.\n * For effiency reasons we apply a maximum of 10000 characters at once.\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String.\n */\n/* c8 ignore start */\nexport const _readVarStringPolyfill = decoder => {\n let remainingLen = readVarUint(decoder)\n if (remainingLen === 0) {\n return ''\n } else {\n let encodedString = String.fromCodePoint(readUint8(decoder)) // remember to decrease remainingLen\n if (--remainingLen < 100) { // do not create a Uint8Array for small strings\n while (remainingLen--) {\n encodedString += String.fromCodePoint(readUint8(decoder))\n }\n } else {\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n // this is dangerous, we create a fresh array view from the existing buffer\n const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen)\n decoder.pos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n }\n return decodeURIComponent(escape(encodedString))\n }\n}\n/* c8 ignore stop */\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n */\nexport const _readVarStringNative = decoder =>\n /** @type any */ (string.utf8TextDecoder).decode(readVarUint8Array(decoder))\n\n/**\n * Read string of variable length\n * * varUint is used to store the length of the string\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n *\n */\n/* c8 ignore next */\nexport const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill\n\n/**\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTerminatedUint8Array = decoder => {\n const encoder = encoding.createEncoder()\n let b\n while (true) {\n b = readUint8(decoder)\n if (b === 0) {\n return encoding.toUint8Array(encoder)\n }\n if (b === 1) {\n b = readUint8(decoder)\n }\n encoding.write(encoder, b)\n }\n}\n\n/**\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const readTerminatedString = decoder => string.decodeUtf8(readTerminatedUint8Array(decoder))\n\n/**\n * Look ahead and read varString without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const peekVarString = decoder => {\n const pos = decoder.pos\n const s = readVarString(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * @param {Decoder} decoder\n * @param {number} len\n * @return {DataView}\n */\nexport const readFromDataView = (decoder, len) => {\n const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len)\n decoder.pos += len\n return dv\n}\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigUint64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigUint64(0, false)\n\n/**\n * @type {Array}\n */\nconst readAnyLookupTable = [\n decoder => undefined, // CASE 127: undefined\n decoder => null, // CASE 126: null\n readVarInt, // CASE 125: integer\n readFloat32, // CASE 124: float32\n readFloat64, // CASE 123: float64\n readBigInt64, // CASE 122: bigint\n decoder => false, // CASE 121: boolean (false)\n decoder => true, // CASE 120: boolean (true)\n readVarString, // CASE 119: string\n decoder => { // CASE 118: object\n const len = readVarUint(decoder)\n /**\n * @type {Object}\n */\n const obj = {}\n for (let i = 0; i < len; i++) {\n const key = readVarString(decoder)\n obj[key] = readAny(decoder)\n }\n return obj\n },\n decoder => { // CASE 117: array\n const len = readVarUint(decoder)\n const arr = []\n for (let i = 0; i < len; i++) {\n arr.push(readAny(decoder))\n }\n return arr\n },\n readVarUint8Array // CASE 116: Uint8Array\n]\n\n/**\n * @param {Decoder} decoder\n */\nexport const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder)\n\n/**\n * T must not be null.\n *\n * @template T\n */\nexport class RleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {function(Decoder):T} reader\n */\n constructor (uint8Array, reader) {\n super(uint8Array)\n /**\n * The reader\n */\n this.reader = reader\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = this.reader(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {T} */ (this.s)\n }\n}\n\nexport class IntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @return {number}\n */\n read () {\n this.s += readVarInt(this)\n return this.s\n }\n}\n\nexport class RleIntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n this.s += readVarInt(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class UintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class IncUintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s++)\n }\n}\n\nexport class IntDiffOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n const diff = readVarInt(this)\n // if the first bit is set, we read more data\n const hasCount = diff & 1\n this.diff = math.floor(diff / 2) // shift >> 1\n this.count = 1\n if (hasCount) {\n this.count = readVarUint(this) + 2\n }\n }\n this.s += this.diff\n this.count--\n return this.s\n }\n}\n\nexport class StringDecoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n this.decoder = new UintOptRleDecoder(uint8Array)\n this.str = readVarString(this.decoder)\n /**\n * @type {number}\n */\n this.spos = 0\n }\n\n /**\n * @return {string}\n */\n read () {\n const end = this.spos + this.decoder.read()\n const res = this.str.slice(this.spos, end)\n this.spos = end\n return res\n }\n}\n","/**\n * Error helpers.\n *\n * @module error\n */\n\n/**\n * @param {string} s\n * @return {Error}\n */\n/* c8 ignore next */\nexport const create = s => new Error(s)\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n","/**\n * Isomorphic module for true random numbers / buffers / uuids.\n *\n * Attention: falls back to Math.random if the browser does not support crypto.\n *\n * @module random\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\nimport { getRandomValues } from 'lib0/webcrypto'\n\nexport const rand = Math.random\n\nexport const uint32 = () => getRandomValues(new Uint32Array(1))[0]\n\nexport const uint53 = () => {\n const arr = getRandomValues(new Uint32Array(8))\n return (arr[0] & binary.BITS21) * (binary.BITS32 + 1) + (arr[1] >>> 0)\n}\n\n/**\n * @template T\n * @param {Array} arr\n * @return {T}\n */\nexport const oneOf = arr => arr[math.floor(rand() * arr.length)]\n\n// @ts-ignore\nconst uuidv4Template = [1e7] + -1e3 + -4e3 + -8e3 + -1e11\n\n/**\n * @return {string}\n */\nexport const uuidv4 = () => uuidv4Template.replace(/[018]/g, /** @param {number} c */ c =>\n (c ^ uint32() & 15 >> c / 4).toString(16)\n)\n","/* eslint-env browser */\n\nexport const subtle = crypto.subtle\nexport const getRandomValues = crypto.getRandomValues.bind(crypto)\n","/**\n * Utility helpers to work with promises.\n *\n * @module promise\n */\n\nimport * as time from './time.js'\n\n/**\n * @template T\n * @callback PromiseResolve\n * @param {T|PromiseLike} [result]\n */\n\n/**\n * @template T\n * @param {function(PromiseResolve,function(Error):void):any} f\n * @return {Promise}\n */\nexport const create = f => /** @type {Promise} */ (new Promise(f))\n\n/**\n * @param {function(function():void,function(Error):void):void} f\n * @return {Promise}\n */\nexport const createEmpty = f => new Promise(f)\n\n/**\n * `Promise.all` wait for all promises in the array to resolve and return the result\n * @template {unknown[] | []} PS\n *\n * @param {PS} ps\n * @return {Promise<{ -readonly [P in keyof PS]: Awaited }>}\n */\nexport const all = Promise.all.bind(Promise)\n\n/**\n * @param {Error} [reason]\n * @return {Promise}\n */\nexport const reject = reason => Promise.reject(reason)\n\n/**\n * @template T\n * @param {T|void} res\n * @return {Promise}\n */\nexport const resolve = res => Promise.resolve(res)\n\n/**\n * @template T\n * @param {T} res\n * @return {Promise}\n */\nexport const resolveWith = res => Promise.resolve(res)\n\n/**\n * @todo Next version, reorder parameters: check, [timeout, [intervalResolution]]\n * @deprecated use untilAsync instead\n *\n * @param {number} timeout\n * @param {function():boolean} check\n * @param {number} [intervalResolution]\n * @return {Promise}\n */\nexport const until = (timeout, check, intervalResolution = 10) => create((resolve, reject) => {\n const startTime = time.getUnixTime()\n const hasTimeout = timeout > 0\n const untilInterval = () => {\n if (check()) {\n clearInterval(intervalHandle)\n resolve()\n } else if (hasTimeout) {\n /* c8 ignore else */\n if (time.getUnixTime() - startTime > timeout) {\n clearInterval(intervalHandle)\n reject(new Error('Timeout'))\n }\n }\n }\n const intervalHandle = setInterval(untilInterval, intervalResolution)\n})\n\n/**\n * @param {()=>Promise|boolean} check\n * @param {number} timeout\n * @param {number} intervalResolution\n * @return {Promise}\n */\nexport const untilAsync = async (check, timeout = 0, intervalResolution = 10) => {\n const startTime = time.getUnixTime()\n const noTimeout = timeout <= 0\n // eslint-disable-next-line no-unmodified-loop-condition\n while (noTimeout || time.getUnixTime() - startTime <= timeout) {\n if (await check()) return\n await wait(intervalResolution)\n }\n throw new Error('Timeout')\n}\n\n/**\n * @param {number} timeout\n * @return {Promise}\n */\nexport const wait = timeout => create((resolve, _reject) => setTimeout(resolve, timeout))\n\n/**\n * Checks if an object is a promise using ducktyping.\n *\n * Promises are often polyfilled, so it makes sense to add some additional guarantees if the user of this\n * library has some insane environment where global Promise objects are overwritten.\n *\n * @param {any} p\n * @return {boolean}\n */\nexport const isPromise = p => p instanceof Promise || (p && p.then && p.catch && p.finally)\n","/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* c8 ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n","/**\n * Utility module to convert metric values.\n *\n * @module metric\n */\n\nimport * as math from './math.js'\n\nexport const yotta = 1e24\nexport const zetta = 1e21\nexport const exa = 1e18\nexport const peta = 1e15\nexport const tera = 1e12\nexport const giga = 1e9\nexport const mega = 1e6\nexport const kilo = 1e3\nexport const hecto = 1e2\nexport const deca = 10\nexport const deci = 0.1\nexport const centi = 0.01\nexport const milli = 1e-3\nexport const micro = 1e-6\nexport const nano = 1e-9\nexport const pico = 1e-12\nexport const femto = 1e-15\nexport const atto = 1e-18\nexport const zepto = 1e-21\nexport const yocto = 1e-24\n\nconst prefixUp = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']\nconst prefixDown = ['', 'm', 'μ', 'n', 'p', 'f', 'a', 'z', 'y']\n\n/**\n * Calculate the metric prefix for a number. Assumes E.g. `prefix(1000) = { n: 1, prefix: 'k' }`\n *\n * @param {number} n\n * @param {number} [baseMultiplier] Multiplier of the base (10^(3*baseMultiplier)). E.g. `convert(time, -3)` if time is already in milli seconds\n * @return {{n:number,prefix:string}}\n */\nexport const prefix = (n, baseMultiplier = 0) => {\n const nPow = n === 0 ? 0 : math.log10(n)\n let mult = 0\n while (nPow < mult * 3 && baseMultiplier > -8) {\n baseMultiplier--\n mult--\n }\n while (nPow >= 3 + mult * 3 && baseMultiplier < 8) {\n baseMultiplier++\n mult++\n }\n const prefix = baseMultiplier < 0 ? prefixDown[-baseMultiplier] : prefixUp[baseMultiplier]\n return {\n n: math.round((mult > 0 ? n / math.exp10(mult * 3) : n * math.exp10(mult * -3)) * 1e12) / 1e12,\n prefix\n }\n}\n","/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* c8 ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/* eslint-env browser */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* c8 ignore start */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n/* c8 ignore stop */\n\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\n/* c8 ignore start */\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n if (typeof localStorage !== 'undefined' && localStorage) {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n/* c8 ignore stop */\n\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\n/* c8 ignore next */\nexport const varStorage = _localStorage\n\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n\n/**\n * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((array.isArray(a) && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/* c8 ignore start */\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n/* c8 ignore stop */\n\nexport const isArray = array.isArray\n\n/**\n * @param {any} s\n * @return {s is String}\n */\nexport const isString = (s) => s && s.constructor === String\n\n/**\n * @param {any} n\n * @return {n is Number}\n */\nexport const isNumber = n => n != null && n.constructor === Number\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {any} n\n * @param {TYPE} T\n * @return {n is InstanceType}\n */\nexport const is = (n, T) => n && n.constructor === T\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {TYPE} T\n */\nexport const isTemplate = (T) =>\n /**\n * @param {any} n\n * @return {n is InstanceType}\n **/\n n => n && n.constructor === T\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n","/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as set from './set.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as common from './logging.common.js'\n\nexport { BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR } from './logging.common.js'\n\n/**\n * @type {Object>}\n */\nconst _browserStyleMap = {\n [common.BOLD]: pair.create('font-weight', 'bold'),\n [common.UNBOLD]: pair.create('font-weight', 'normal'),\n [common.BLUE]: pair.create('color', 'blue'),\n [common.GREEN]: pair.create('color', 'green'),\n [common.GREY]: pair.create('color', 'grey'),\n [common.RED]: pair.create('color', 'red'),\n [common.PURPLE]: pair.create('color', 'purple'),\n [common.ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [common.UNCOLOR]: pair.create('color', 'black')\n}\n\n/**\n * @param {Array} args\n * @return {Array}\n */\n/* c8 ignore start */\nconst computeBrowserLoggingArgs = (args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n break\n }\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\n/* c8 ignore start */\nconst computeLoggingArgs = env.supportsColor\n ? computeBrowserLoggingArgs\n : common.computeNoColorLoggingArgs\n/* c8 ignore stop */\n\n/**\n * @param {Array} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* c8 ignore start */\n/**\n * @param {Array} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(common.ORANGE)\n vconsoles.forEach((vc) => vc.print(args))\n}\n/* c8 ignore stop */\n\n/**\n * @param {Error} err\n */\n/* c8 ignore start */\nexport const printError = (err) => {\n console.error(err)\n vconsoles.forEach((vc) => vc.printError(err))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\n/* c8 ignore start */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log(\n '%c ',\n `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`\n )\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach((vc) => vc.printImg(url, height))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} base64\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printImgBase64 = (base64, height) =>\n printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.group(args))\n}\n\n/**\n * @param {Array} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupEnd())\n}\n\n/**\n * @param {function():Node} createNode\n */\n/* c8 ignore next 2 */\nexport const printDom = (createNode) =>\n vconsoles.forEach((vc) => vc.printDom(createNode()))\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printCanvas = (canvas, height) =>\n printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = set.create()\n\n/**\n * @param {Array} args\n * @return {Array}\n */\n/* c8 ignore start */\nconst _computeLineSpans = (args) => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n let arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n arg = 'undefined '\n }\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [\n pair.create('style', dom.mapToStyleString(currentStyle))\n ], [dom.text(arg.toString())])\n if (span.innerHTML === '') {\n span.innerHTML = ' '\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(\n dom.element('span', [], [dom.text(/** @type {string} */ (content))])\n )\n }\n }\n return spans\n}\n/* c8 ignore stop */\n\nconst lineStyle =\n 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* c8 ignore start */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [\n pair.create('hidden', collapsed),\n pair.create('style', 'color:grey;font-size:120%;')\n ], [dom.text('▼')])\n const triangleRight = dom.element('span', [\n pair.create('hidden', !collapsed),\n pair.create('style', 'color:grey;font-size:125%;')\n ], [dom.text('▶')])\n const content = dom.element(\n 'div',\n [pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )],\n [triangleDown, triangleRight, dom.text(' ')].concat(\n _computeLineSpans(args)\n )\n )\n const nextContainer = dom.element('div', [\n pair.create('hidden', collapsed)\n ])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', (_event) => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('div', [\n pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )\n ], _computeLineSpans(args))\n ])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([common.RED, common.BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('img', [\n pair.create('src', url),\n pair.create('height', `${math.round(height * 1.5)}px`)\n ])\n ])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n/* c8 ignore stop */\n\n/**\n * @param {Element} dom\n */\n/* c8 ignore next */\nexport const createVConsole = (dom) => new VConsole(dom)\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (moduleName) => common.createModuleLogger(print, moduleName)\n","/**\n * Working with value pairs.\n *\n * @module pair\n */\n\n/**\n * @template L,R\n */\nexport class Pair {\n /**\n * @param {L} left\n * @param {R} right\n */\n constructor (left, right) {\n this.left = left\n this.right = right\n }\n}\n\n/**\n * @template L,R\n * @param {L} left\n * @param {R} right\n * @return {Pair}\n */\nexport const create = (left, right) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {R} right\n * @param {L} left\n * @return {Pair}\n */\nexport const createReversed = (right, left) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {Array>} arr\n * @param {function(L, R):any} f\n */\nexport const forEach = (arr, f) => arr.forEach(p => f(p.left, p.right))\n\n/**\n * @template L,R,X\n * @param {Array>} arr\n * @param {function(L, R):X} f\n * @return {Array}\n */\nexport const map = (arr, f) => arr.map(p => f(p.left, p.right))\n","/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\n\n/* c8 ignore start */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @param {string} text\n * @return {Text}\n */\nexport const createTextNode = text => doc.createTextNode(text)\n\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array|HTMLCollection} children\n * @return {DocumentFragment}\n */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array} nodes\n * @return {Element}\n */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array|pair.Pair>} attrs Array of key-value pairs\n * @param {Array} children\n * @return {Element}\n */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @param {number} width\n * @param {number} height\n */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\nexport const text = createTextNode\n\n/**\n * @param {pair.Pair} pair\n */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array>} pairs\n * @return {string}\n */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map} m\n * @return {string}\n */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf}\n */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nconst _parse = html => domParser.parseFromString(`${html}`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n/* c8 ignore stop */\n","/**\n * JSON utility functions.\n *\n * @module json\n */\n\n/**\n * Transform JavaScript object to JSON.\n *\n * @param {any} object\n * @return {string}\n */\nexport const stringify = JSON.stringify\n\n/**\n * Parse JSON object.\n *\n * @param {string} json\n * @return {any}\n */\nexport const parse = JSON.parse\n","/* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */\n\n/**\n * Utility module to work with EcmaScript's event loop.\n *\n * @module eventloop\n */\n\n/**\n * @type {Array}\n */\nlet queue = []\n\nconst _runQueue = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]()\n }\n queue = []\n}\n\n/**\n * @param {function():void} f\n */\nexport const enqueue = f => {\n queue.push(f)\n if (queue.length === 1) {\n setTimeout(_runQueue, 0)\n }\n}\n\n/**\n * @typedef {Object} TimeoutObject\n * @property {function} TimeoutObject.destroy\n */\n\n/**\n * @param {function(number):void} clearFunction\n */\nconst createTimeoutClass = clearFunction => class TT {\n /**\n * @param {number} timeoutId\n */\n constructor (timeoutId) {\n this._ = timeoutId\n }\n\n destroy () {\n clearFunction(this._)\n }\n}\n\nconst Timeout = createTimeoutClass(clearTimeout)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const timeout = (timeout, callback) => new Timeout(setTimeout(callback, timeout))\n\nconst Interval = createTimeoutClass(clearInterval)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const interval = (timeout, callback) => new Interval(setInterval(callback, timeout))\n\n/* c8 ignore next */\nexport const Animation = createTimeoutClass(arg => typeof requestAnimationFrame !== 'undefined' && cancelAnimationFrame(arg))\n\n/**\n * @param {function(number):void} cb\n * @return {TimeoutObject}\n */\n/* c8 ignore next */\nexport const animationFrame = cb => typeof requestAnimationFrame === 'undefined' ? timeout(0, cb) : new Animation(requestAnimationFrame(cb))\n\n/* c8 ignore next */\n// @ts-ignore\nconst Idle = createTimeoutClass(arg => typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(arg))\n\n/**\n * Note: this is experimental and is probably only useful in browsers.\n *\n * @param {function} cb\n * @return {TimeoutObject}\n */\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const idleCallback = cb => typeof requestIdleCallback !== 'undefined' ? new Idle(requestIdleCallback(cb)) : timeout(1000, cb)\n\n/**\n * @param {number} timeout Timeout of the debounce action\n * @return {function(function():void):void}\n */\nexport const createDebouncer = timeout => {\n let timer = -1\n return f => {\n clearTimeout(timer)\n if (f) {\n timer = /** @type {any} */ (setTimeout(f, timeout))\n }\n }\n}\n","import * as symbol from './symbol.js'\nimport * as time from './time.js'\nimport * as env from './environment.js'\nimport * as func from './function.js'\nimport * as json from './json.js'\n\nexport const BOLD = symbol.create()\nexport const UNBOLD = symbol.create()\nexport const BLUE = symbol.create()\nexport const GREY = symbol.create()\nexport const GREEN = symbol.create()\nexport const RED = symbol.create()\nexport const PURPLE = symbol.create()\nexport const ORANGE = symbol.create()\nexport const UNCOLOR = symbol.create()\n\n/* c8 ignore start */\n/**\n * @param {Array} args\n * @return {Array}\n */\nexport const computeNoColorLoggingArgs = args => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n if (arg === undefined) {\n break\n } else if (arg.constructor === String || arg.constructor === Number) {\n strBuilder.push(arg)\n } else if (arg.constructor === Object) {\n break\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs.push(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\nconst loggingColors = [GREEN, PURPLE, ORANGE, BLUE]\nlet nextColor = 0\nlet lastLoggingTime = time.getUnixTime()\n\n/* c8 ignore start */\n/**\n * @param {function(...any):void} _print\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (_print, moduleName) => {\n const color = loggingColors[nextColor]\n const debugRegexVar = env.getVariable('log')\n const doLogging = debugRegexVar !== null &&\n (debugRegexVar === '*' || debugRegexVar === 'true' ||\n new RegExp(debugRegexVar, 'gi').test(moduleName))\n nextColor = (nextColor + 1) % loggingColors.length\n moduleName += ': '\n return !doLogging\n ? func.nop\n : (...args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = args[0]()\n }\n const timeNow = time.getUnixTime()\n const timeDiff = timeNow - lastLoggingTime\n lastLoggingTime = timeNow\n _print(\n color,\n moduleName,\n UNCOLOR,\n ...args.map((arg) => {\n if (arg != null && arg.constructor === Uint8Array) {\n arg = Array.from(arg)\n }\n const t = typeof arg\n switch (t) {\n case 'string':\n case 'symbol':\n return arg\n default: {\n return json.stringify(arg)\n }\n }\n }),\n color,\n ' +' + timeDiff + 'ms'\n )\n }\n}\n/* c8 ignore stop */\n","/**\n * Utility module to work with EcmaScript Symbols.\n *\n * @module symbol\n */\n\n/**\n * Return fresh symbol.\n *\n * @return {Symbol}\n */\nexport const create = Symbol\n\n/**\n * @param {any} s\n * @return {boolean}\n */\nexport const isSymbol = s => typeof s === 'symbol'\n","/**\n * Utility module to create and manipulate Iterators.\n *\n * @module iterator\n */\n\n/**\n * @template T,R\n * @param {Iterator} iterator\n * @param {function(T):R} f\n * @return {IterableIterator}\n */\nexport const mapIterator = (iterator, f) => ({\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next () {\n const r = iterator.next()\n return { value: r.done ? undefined : f(r.value), done: r.done }\n }\n})\n\n/**\n * @template T\n * @param {function():IteratorResult} next\n * @return {IterableIterator}\n */\nexport const createIterator = next => ({\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next\n})\n\n/**\n * @template T\n * @param {Iterator} iterator\n * @param {function(T):boolean} filter\n */\nexport const iteratorFilter = (iterator, filter) => createIterator(() => {\n let res\n do {\n res = iterator.next()\n } while (!res.done && !filter(res.value))\n return res\n})\n\n/**\n * @template T,M\n * @param {Iterator} iterator\n * @param {function(T):M} fmap\n */\nexport const iteratorMap = (iterator, fmap) => createIterator(() => {\n const { done, value } = iterator.next()\n return { done, value: done ? undefined : fmap(value) }\n})\n","/**\n* Muuri v0.9.5\n* https://muuri.dev/\n* Copyright (c) 2015-present, Haltu Oy\n* Released under the MIT license\n* https://github.com/haltu/muuri/blob/master/LICENSE.md\n* @license MIT\n*\n* Muuri Packer\n* Copyright (c) 2016-present, Niklas Rämö \n* @license MIT\n*\n* Muuri Ticker / Muuri Emitter / Muuri Dragger\n* Copyright (c) 2018-present, Niklas Rämö \n* @license MIT\n*\n* Muuri AutoScroller\n* Copyright (c) 2019-present, Niklas Rämö \n* @license MIT\n*/\n\nvar GRID_INSTANCES = {};\nvar ITEM_ELEMENT_MAP = typeof Map === 'function' ? new Map() : null;\n\nvar ACTION_SWAP = 'swap';\nvar ACTION_MOVE = 'move';\n\nvar EVENT_SYNCHRONIZE = 'synchronize';\nvar EVENT_LAYOUT_START = 'layoutStart';\nvar EVENT_LAYOUT_END = 'layoutEnd';\nvar EVENT_LAYOUT_ABORT = 'layoutAbort';\nvar EVENT_ADD = 'add';\nvar EVENT_REMOVE = 'remove';\nvar EVENT_SHOW_START = 'showStart';\nvar EVENT_SHOW_END = 'showEnd';\nvar EVENT_HIDE_START = 'hideStart';\nvar EVENT_HIDE_END = 'hideEnd';\nvar EVENT_FILTER = 'filter';\nvar EVENT_SORT = 'sort';\nvar EVENT_MOVE = 'move';\nvar EVENT_SEND = 'send';\nvar EVENT_BEFORE_SEND = 'beforeSend';\nvar EVENT_RECEIVE = 'receive';\nvar EVENT_BEFORE_RECEIVE = 'beforeReceive';\nvar EVENT_DRAG_INIT = 'dragInit';\nvar EVENT_DRAG_START = 'dragStart';\nvar EVENT_DRAG_MOVE = 'dragMove';\nvar EVENT_DRAG_SCROLL = 'dragScroll';\nvar EVENT_DRAG_END = 'dragEnd';\nvar EVENT_DRAG_RELEASE_START = 'dragReleaseStart';\nvar EVENT_DRAG_RELEASE_END = 'dragReleaseEnd';\nvar EVENT_DESTROY = 'destroy';\n\nvar HAS_TOUCH_EVENTS = 'ontouchstart' in window;\nvar HAS_POINTER_EVENTS = !!window.PointerEvent;\nvar HAS_MS_POINTER_EVENTS = !!window.navigator.msPointerEnabled;\n\nvar MAX_SAFE_FLOAT32_INTEGER = 16777216;\n\n/**\n * Event emitter constructor.\n *\n * @class\n */\nfunction Emitter() {\n this._events = {};\n this._queue = [];\n this._counter = 0;\n this._clearOnEmit = false;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Bind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Emitter}\n */\nEmitter.prototype.on = function (event, listener) {\n if (!this._events || !event || !listener) return this;\n\n // Get listeners queue and create it if it does not exist.\n var listeners = this._events[event];\n if (!listeners) listeners = this._events[event] = [];\n\n // Add the listener to the queue.\n listeners.push(listener);\n\n return this;\n};\n\n/**\n * Unbind all event listeners that match the provided listener function.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Emitter}\n */\nEmitter.prototype.off = function (event, listener) {\n if (!this._events || !event || !listener) return this;\n\n // Get listeners and return immediately if none is found.\n var listeners = this._events[event];\n if (!listeners || !listeners.length) return this;\n\n // Remove all matching listeners.\n var index;\n while ((index = listeners.indexOf(listener)) !== -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n};\n\n/**\n * Unbind all listeners of the provided event.\n *\n * @public\n * @param {String} event\n * @returns {Emitter}\n */\nEmitter.prototype.clear = function (event) {\n if (!this._events || !event) return this;\n\n var listeners = this._events[event];\n if (listeners) {\n listeners.length = 0;\n delete this._events[event];\n }\n\n return this;\n};\n\n/**\n * Emit all listeners in a specified event with the provided arguments.\n *\n * @public\n * @param {String} event\n * @param {...*} [args]\n * @returns {Emitter}\n */\nEmitter.prototype.emit = function (event) {\n if (!this._events || !event) {\n this._clearOnEmit = false;\n return this;\n }\n\n // Get event listeners and quit early if there's no listeners.\n var listeners = this._events[event];\n if (!listeners || !listeners.length) {\n this._clearOnEmit = false;\n return this;\n }\n\n var queue = this._queue;\n var startIndex = queue.length;\n var argsLength = arguments.length - 1;\n var args;\n\n // If we have more than 3 arguments let's put the arguments in an array and\n // apply it to the listeners.\n if (argsLength > 3) {\n args = [];\n args.push.apply(args, arguments);\n args.shift();\n }\n\n // Add the current listeners to the callback queue before we process them.\n // This is necessary to guarantee that all of the listeners are called in\n // correct order even if new event listeners are removed/added during\n // processing and/or events are emitted during processing.\n queue.push.apply(queue, listeners);\n\n // Reset the event's listeners if need be.\n if (this._clearOnEmit) {\n listeners.length = 0;\n this._clearOnEmit = false;\n }\n\n // Increment queue counter. This is needed for the scenarios where emit is\n // triggered while the queue is already processing. We need to keep track of\n // how many \"queue processors\" there are active so that we can safely reset\n // the queue in the end when the last queue processor is finished.\n ++this._counter;\n\n // Process the queue (the specific part of it for this emit).\n var i = startIndex;\n var endIndex = queue.length;\n for (; i < endIndex; i++) {\n // prettier-ignore\n argsLength === 0 ? queue[i]() :\n argsLength === 1 ? queue[i](arguments[1]) :\n argsLength === 2 ? queue[i](arguments[1], arguments[2]) :\n argsLength === 3 ? queue[i](arguments[1], arguments[2], arguments[3]) :\n queue[i].apply(null, args);\n\n // Stop processing if the emitter is destroyed.\n if (!this._events) return this;\n }\n\n // Decrement queue process counter.\n --this._counter;\n\n // Reset the queue if there are no more queue processes running.\n if (!this._counter) queue.length = 0;\n\n return this;\n};\n\n/**\n * Emit all listeners in a specified event with the provided arguments and\n * remove the event's listeners just before calling the them. This method allows\n * the emitter to serve as a queue where all listeners are called only once.\n *\n * @public\n * @param {String} event\n * @param {...*} [args]\n * @returns {Emitter}\n */\nEmitter.prototype.burst = function () {\n if (!this._events) return this;\n this._clearOnEmit = true;\n this.emit.apply(this, arguments);\n return this;\n};\n\n/**\n * Check how many listeners there are for a specific event.\n *\n * @public\n * @param {String} event\n * @returns {Boolean}\n */\nEmitter.prototype.countListeners = function (event) {\n if (!this._events) return 0;\n var listeners = this._events[event];\n return listeners ? listeners.length : 0;\n};\n\n/**\n * Destroy emitter instance. Basically just removes all bound listeners.\n *\n * @public\n * @returns {Emitter}\n */\nEmitter.prototype.destroy = function () {\n if (!this._events) return this;\n this._queue.length = this._counter = 0;\n this._events = null;\n return this;\n};\n\nvar pointerout = HAS_POINTER_EVENTS ? 'pointerout' : HAS_MS_POINTER_EVENTS ? 'MSPointerOut' : '';\nvar waitDuration = 100;\n\n/**\n * If you happen to use Edge or IE on a touch capable device there is a\n * a specific case where pointercancel and pointerend events are never emitted,\n * even though one them should always be emitted when you release your finger\n * from the screen. The bug appears specifically when Muuri shifts the dragged\n * element's position in the DOM after pointerdown event, IE and Edge don't like\n * that behaviour and quite often forget to emit the pointerend/pointercancel\n * event. But, they do emit pointerout event so we utilize that here.\n * Specifically, if there has been no pointermove event within 100 milliseconds\n * since the last pointerout event we force cancel the drag operation. This hack\n * works surprisingly well 99% of the time. There is that 1% chance there still\n * that dragged items get stuck but it is what it is.\n *\n * @class\n * @param {Dragger} dragger\n */\nfunction EdgeHack(dragger) {\n if (!pointerout) return;\n\n this._dragger = dragger;\n this._timeout = null;\n this._outEvent = null;\n this._isActive = false;\n\n this._addBehaviour = this._addBehaviour.bind(this);\n this._removeBehaviour = this._removeBehaviour.bind(this);\n this._onTimeout = this._onTimeout.bind(this);\n this._resetData = this._resetData.bind(this);\n this._onStart = this._onStart.bind(this);\n this._onOut = this._onOut.bind(this);\n\n this._dragger.on('start', this._onStart);\n}\n\n/**\n * @private\n */\nEdgeHack.prototype._addBehaviour = function () {\n if (this._isActive) return;\n this._isActive = true;\n this._dragger.on('move', this._resetData);\n this._dragger.on('cancel', this._removeBehaviour);\n this._dragger.on('end', this._removeBehaviour);\n window.addEventListener(pointerout, this._onOut);\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._removeBehaviour = function () {\n if (!this._isActive) return;\n this._dragger.off('move', this._resetData);\n this._dragger.off('cancel', this._removeBehaviour);\n this._dragger.off('end', this._removeBehaviour);\n window.removeEventListener(pointerout, this._onOut);\n this._resetData();\n this._isActive = false;\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._resetData = function () {\n window.clearTimeout(this._timeout);\n this._timeout = null;\n this._outEvent = null;\n};\n\n/**\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nEdgeHack.prototype._onStart = function (e) {\n if (e.pointerType === 'mouse') return;\n this._addBehaviour();\n};\n\n/**\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nEdgeHack.prototype._onOut = function (e) {\n if (!this._dragger._getTrackedTouch(e)) return;\n this._resetData();\n this._outEvent = e;\n this._timeout = window.setTimeout(this._onTimeout, waitDuration);\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._onTimeout = function () {\n var e = this._outEvent;\n this._resetData();\n if (this._dragger.isActive()) this._dragger._onCancel(e);\n};\n\n/**\n * @public\n */\nEdgeHack.prototype.destroy = function () {\n if (!pointerout) return;\n this._dragger.off('start', this._onStart);\n this._removeBehaviour();\n};\n\n// Playing it safe here, test all potential prefixes capitalized and lowercase.\nvar vendorPrefixes = ['', 'webkit', 'moz', 'ms', 'o', 'Webkit', 'Moz', 'MS', 'O'];\nvar cache$2 = {};\n\n/**\n * Get prefixed CSS property name when given a non-prefixed CSS property name.\n * Returns null if the property is not supported at all.\n *\n * @param {CSSStyleDeclaration} style\n * @param {String} prop\n * @returns {String}\n */\nfunction getPrefixedPropName(style, prop) {\n var prefixedProp = cache$2[prop] || '';\n if (prefixedProp) return prefixedProp;\n\n var camelProp = prop[0].toUpperCase() + prop.slice(1);\n var i = 0;\n while (i < vendorPrefixes.length) {\n prefixedProp = vendorPrefixes[i] ? vendorPrefixes[i] + camelProp : prop;\n if (prefixedProp in style) {\n cache$2[prop] = prefixedProp;\n return prefixedProp;\n }\n ++i;\n }\n\n return '';\n}\n\n/**\n * Check if passive events are supported.\n * https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n *\n * @returns {Boolean}\n */\nfunction hasPassiveEvents() {\n var isPassiveEventsSupported = false;\n\n try {\n var passiveOpts = Object.defineProperty({}, 'passive', {\n get: function () {\n isPassiveEventsSupported = true;\n },\n });\n window.addEventListener('testPassive', null, passiveOpts);\n window.removeEventListener('testPassive', null, passiveOpts);\n } catch (e) {}\n\n return isPassiveEventsSupported;\n}\n\nvar ua = window.navigator.userAgent.toLowerCase();\nvar isEdge = ua.indexOf('edge') > -1;\nvar isIE = ua.indexOf('trident') > -1;\nvar isFirefox = ua.indexOf('firefox') > -1;\nvar isAndroid = ua.indexOf('android') > -1;\n\nvar listenerOptions = hasPassiveEvents() ? { passive: true } : false;\n\nvar taProp = 'touchAction';\nvar taPropPrefixed = getPrefixedPropName(document.documentElement.style, taProp);\nvar taDefaultValue = 'auto';\n\n/**\n * Creates a new Dragger instance for an element.\n *\n * @public\n * @class\n * @param {HTMLElement} element\n * @param {Object} [cssProps]\n */\nfunction Dragger(element, cssProps) {\n this._element = element;\n this._emitter = new Emitter();\n this._isDestroyed = false;\n this._cssProps = {};\n this._touchAction = '';\n this._isActive = false;\n\n this._pointerId = null;\n this._startTime = 0;\n this._startX = 0;\n this._startY = 0;\n this._currentX = 0;\n this._currentY = 0;\n\n this._onStart = this._onStart.bind(this);\n this._onMove = this._onMove.bind(this);\n this._onCancel = this._onCancel.bind(this);\n this._onEnd = this._onEnd.bind(this);\n\n // Can't believe had to build a freaking class for a hack!\n this._edgeHack = null;\n if ((isEdge || isIE) && (HAS_POINTER_EVENTS || HAS_MS_POINTER_EVENTS)) {\n this._edgeHack = new EdgeHack(this);\n }\n\n // Apply initial CSS props.\n this.setCssProps(cssProps);\n\n // If touch action was not provided with initial CSS props let's assume it's\n // auto.\n if (!this._touchAction) {\n this.setTouchAction(taDefaultValue);\n }\n\n // Prevent native link/image dragging for the item and it's children.\n element.addEventListener('dragstart', Dragger._preventDefault, false);\n\n // Listen to start event.\n element.addEventListener(Dragger._inputEvents.start, this._onStart, listenerOptions);\n}\n\n/**\n * Protected properties\n * ********************\n */\n\nDragger._pointerEvents = {\n start: 'pointerdown',\n move: 'pointermove',\n cancel: 'pointercancel',\n end: 'pointerup',\n};\n\nDragger._msPointerEvents = {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel',\n end: 'MSPointerUp',\n};\n\nDragger._touchEvents = {\n start: 'touchstart',\n move: 'touchmove',\n cancel: 'touchcancel',\n end: 'touchend',\n};\n\nDragger._mouseEvents = {\n start: 'mousedown',\n move: 'mousemove',\n cancel: '',\n end: 'mouseup',\n};\n\nDragger._inputEvents = (function () {\n if (HAS_TOUCH_EVENTS) return Dragger._touchEvents;\n if (HAS_POINTER_EVENTS) return Dragger._pointerEvents;\n if (HAS_MS_POINTER_EVENTS) return Dragger._msPointerEvents;\n return Dragger._mouseEvents;\n})();\n\nDragger._emitter = new Emitter();\n\nDragger._emitterEvents = {\n start: 'start',\n move: 'move',\n end: 'end',\n cancel: 'cancel',\n};\n\nDragger._activeInstances = [];\n\n/**\n * Protected static methods\n * ************************\n */\n\nDragger._preventDefault = function (e) {\n if (e.preventDefault && e.cancelable !== false) e.preventDefault();\n};\n\nDragger._activateInstance = function (instance) {\n var index = Dragger._activeInstances.indexOf(instance);\n if (index > -1) return;\n\n Dragger._activeInstances.push(instance);\n Dragger._emitter.on(Dragger._emitterEvents.move, instance._onMove);\n Dragger._emitter.on(Dragger._emitterEvents.cancel, instance._onCancel);\n Dragger._emitter.on(Dragger._emitterEvents.end, instance._onEnd);\n\n if (Dragger._activeInstances.length === 1) {\n Dragger._bindListeners();\n }\n};\n\nDragger._deactivateInstance = function (instance) {\n var index = Dragger._activeInstances.indexOf(instance);\n if (index === -1) return;\n\n Dragger._activeInstances.splice(index, 1);\n Dragger._emitter.off(Dragger._emitterEvents.move, instance._onMove);\n Dragger._emitter.off(Dragger._emitterEvents.cancel, instance._onCancel);\n Dragger._emitter.off(Dragger._emitterEvents.end, instance._onEnd);\n\n if (!Dragger._activeInstances.length) {\n Dragger._unbindListeners();\n }\n};\n\nDragger._bindListeners = function () {\n window.addEventListener(Dragger._inputEvents.move, Dragger._onMove, listenerOptions);\n window.addEventListener(Dragger._inputEvents.end, Dragger._onEnd, listenerOptions);\n if (Dragger._inputEvents.cancel) {\n window.addEventListener(Dragger._inputEvents.cancel, Dragger._onCancel, listenerOptions);\n }\n};\n\nDragger._unbindListeners = function () {\n window.removeEventListener(Dragger._inputEvents.move, Dragger._onMove, listenerOptions);\n window.removeEventListener(Dragger._inputEvents.end, Dragger._onEnd, listenerOptions);\n if (Dragger._inputEvents.cancel) {\n window.removeEventListener(Dragger._inputEvents.cancel, Dragger._onCancel, listenerOptions);\n }\n};\n\nDragger._getEventPointerId = function (event) {\n // If we have pointer id available let's use it.\n if (typeof event.pointerId === 'number') {\n return event.pointerId;\n }\n\n // For touch events let's get the first changed touch's identifier.\n if (event.changedTouches) {\n return event.changedTouches[0] ? event.changedTouches[0].identifier : null;\n }\n\n // For mouse/other events let's provide a static id.\n return 1;\n};\n\nDragger._getTouchById = function (event, id) {\n // If we have a pointer event return the whole event if there's a match, and\n // null otherwise.\n if (typeof event.pointerId === 'number') {\n return event.pointerId === id ? event : null;\n }\n\n // For touch events let's check if there's a changed touch object that matches\n // the pointerId in which case return the touch object.\n if (event.changedTouches) {\n for (var i = 0; i < event.changedTouches.length; i++) {\n if (event.changedTouches[i].identifier === id) {\n return event.changedTouches[i];\n }\n }\n return null;\n }\n\n // For mouse/other events let's assume there's only one pointer and just\n // return the event.\n return event;\n};\n\nDragger._onMove = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.move, e);\n};\n\nDragger._onCancel = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.cancel, e);\n};\n\nDragger._onEnd = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.end, e);\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Reset current drag operation (if any).\n *\n * @private\n */\nDragger.prototype._reset = function () {\n this._pointerId = null;\n this._startTime = 0;\n this._startX = 0;\n this._startY = 0;\n this._currentX = 0;\n this._currentY = 0;\n this._isActive = false;\n Dragger._deactivateInstance(this);\n};\n\n/**\n * Create a custom dragger event from a raw event.\n *\n * @private\n * @param {String} type\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n * @returns {Object}\n */\nDragger.prototype._createEvent = function (type, e) {\n var touch = this._getTrackedTouch(e);\n return {\n // Hammer.js compatibility interface.\n type: type,\n srcEvent: e,\n distance: this.getDistance(),\n deltaX: this.getDeltaX(),\n deltaY: this.getDeltaY(),\n deltaTime: type === Dragger._emitterEvents.start ? 0 : this.getDeltaTime(),\n isFirst: type === Dragger._emitterEvents.start,\n isFinal: type === Dragger._emitterEvents.end || type === Dragger._emitterEvents.cancel,\n pointerType: e.pointerType || (e.touches ? 'touch' : 'mouse'),\n // Partial Touch API interface.\n identifier: this._pointerId,\n screenX: touch.screenX,\n screenY: touch.screenY,\n clientX: touch.clientX,\n clientY: touch.clientY,\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n };\n};\n\n/**\n * Emit a raw event as dragger event internally.\n *\n * @private\n * @param {String} type\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._emit = function (type, e) {\n this._emitter.emit(type, this._createEvent(type, e));\n};\n\n/**\n * If the provided event is a PointerEvent this method will return it if it has\n * the same pointerId as the instance. If the provided event is a TouchEvent\n * this method will try to look for a Touch instance in the changedTouches that\n * has an identifier matching this instance's pointerId. If the provided event\n * is a MouseEvent (or just any other event than PointerEvent or TouchEvent)\n * it will be returned immediately.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n * @returns {?(Touch|PointerEvent|MouseEvent)}\n */\nDragger.prototype._getTrackedTouch = function (e) {\n if (this._pointerId === null) return null;\n return Dragger._getTouchById(e, this._pointerId);\n};\n\n/**\n * Handler for start event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onStart = function (e) {\n if (this._isDestroyed) return;\n\n // If pointer id is already assigned let's return early.\n if (this._pointerId !== null) return;\n\n // Get (and set) pointer id.\n this._pointerId = Dragger._getEventPointerId(e);\n if (this._pointerId === null) return;\n\n // Setup initial data and emit start event.\n var touch = this._getTrackedTouch(e);\n this._startX = this._currentX = touch.clientX;\n this._startY = this._currentY = touch.clientY;\n this._startTime = Date.now();\n this._isActive = true;\n this._emit(Dragger._emitterEvents.start, e);\n\n // If the drag procedure was not reset within the start procedure let's\n // activate the instance (start listening to move/cancel/end events).\n if (this._isActive) {\n Dragger._activateInstance(this);\n }\n};\n\n/**\n * Handler for move event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onMove = function (e) {\n var touch = this._getTrackedTouch(e);\n if (!touch) return;\n this._currentX = touch.clientX;\n this._currentY = touch.clientY;\n this._emit(Dragger._emitterEvents.move, e);\n};\n\n/**\n * Handler for cancel event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onCancel = function (e) {\n if (!this._getTrackedTouch(e)) return;\n this._emit(Dragger._emitterEvents.cancel, e);\n this._reset();\n};\n\n/**\n * Handler for end event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onEnd = function (e) {\n if (!this._getTrackedTouch(e)) return;\n this._emit(Dragger._emitterEvents.end, e);\n this._reset();\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Check if the element is being dragged at the moment.\n *\n * @public\n * @returns {Boolean}\n */\nDragger.prototype.isActive = function () {\n return this._isActive;\n};\n\n/**\n * Set element's touch-action CSS property.\n *\n * @public\n * @param {String} value\n */\nDragger.prototype.setTouchAction = function (value) {\n // Store unmodified touch action value (we trust user input here).\n this._touchAction = value;\n\n // Set touch-action style.\n if (taPropPrefixed) {\n this._cssProps[taPropPrefixed] = '';\n this._element.style[taPropPrefixed] = value;\n }\n\n // If we have an unsupported touch-action value let's add a special listener\n // that prevents default action on touch start event. A dirty hack, but best\n // we can do for now. The other options would be to somehow polyfill the\n // unsupported touch action behavior with custom heuristics which sounds like\n // a can of worms. We do a special exception here for Firefox Android which's\n // touch-action does not work properly if the dragged element is moved in the\n // the DOM tree on touchstart.\n if (HAS_TOUCH_EVENTS) {\n this._element.removeEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n if (this._element.style[taPropPrefixed] !== value || (isFirefox && isAndroid)) {\n this._element.addEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n }\n }\n};\n\n/**\n * Update element's CSS properties. Accepts an object with camel cased style\n * props with value pairs as it's first argument.\n *\n * @public\n * @param {Object} [newProps]\n */\nDragger.prototype.setCssProps = function (newProps) {\n if (!newProps) return;\n\n var currentProps = this._cssProps;\n var element = this._element;\n var prop;\n var prefixedProp;\n\n // Reset current props.\n for (prop in currentProps) {\n element.style[prop] = currentProps[prop];\n delete currentProps[prop];\n }\n\n // Set new props.\n for (prop in newProps) {\n // Make sure we have a value for the prop.\n if (!newProps[prop]) continue;\n\n // Special handling for touch-action.\n if (prop === taProp) {\n this.setTouchAction(newProps[prop]);\n continue;\n }\n\n // Get prefixed prop and skip if it does not exist.\n prefixedProp = getPrefixedPropName(element.style, prop);\n if (!prefixedProp) continue;\n\n // Store the prop and add the style.\n currentProps[prefixedProp] = '';\n element.style[prefixedProp] = newProps[prop];\n }\n};\n\n/**\n * How much the pointer has moved on x-axis from start position, in pixels.\n * Positive value indicates movement from left to right.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaX = function () {\n return this._currentX - this._startX;\n};\n\n/**\n * How much the pointer has moved on y-axis from start position, in pixels.\n * Positive value indicates movement from top to bottom.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaY = function () {\n return this._currentY - this._startY;\n};\n\n/**\n * How far (in pixels) has pointer moved from start position.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDistance = function () {\n var x = this.getDeltaX();\n var y = this.getDeltaY();\n return Math.sqrt(x * x + y * y);\n};\n\n/**\n * How long has pointer been dragged.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaTime = function () {\n return this._startTime ? Date.now() - this._startTime : 0;\n};\n\n/**\n * Bind drag event listeners.\n *\n * @public\n * @param {String} eventName\n * - 'start', 'move', 'cancel' or 'end'.\n * @param {Function} listener\n */\nDragger.prototype.on = function (eventName, listener) {\n this._emitter.on(eventName, listener);\n};\n\n/**\n * Unbind drag event listeners.\n *\n * @public\n * @param {String} eventName\n * - 'start', 'move', 'cancel' or 'end'.\n * @param {Function} listener\n */\nDragger.prototype.off = function (eventName, listener) {\n this._emitter.off(eventName, listener);\n};\n\n/**\n * Destroy the instance and unbind all drag event listeners.\n *\n * @public\n */\nDragger.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var element = this._element;\n\n if (this._edgeHack) this._edgeHack.destroy();\n\n // Reset data and deactivate the instance.\n this._reset();\n\n // Destroy emitter.\n this._emitter.destroy();\n\n // Unbind event handlers.\n element.removeEventListener(Dragger._inputEvents.start, this._onStart, listenerOptions);\n element.removeEventListener('dragstart', Dragger._preventDefault, false);\n element.removeEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n\n // Reset styles.\n for (var prop in this._cssProps) {\n element.style[prop] = this._cssProps[prop];\n delete this._cssProps[prop];\n }\n\n // Reset data.\n this._element = null;\n\n // Mark as destroyed.\n this._isDestroyed = true;\n};\n\nvar dt = 1000 / 60;\n\nvar raf = (\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n return this.setTimeout(function () {\n callback(Date.now());\n }, dt);\n }\n).bind(window);\n\n/**\n * A ticker system for handling DOM reads and writes in an efficient way.\n *\n * @class\n */\nfunction Ticker(numLanes) {\n this._nextStep = null;\n this._lanes = [];\n this._stepQueue = [];\n this._stepCallbacks = {};\n this._step = this._step.bind(this);\n for (var i = 0; i < numLanes; i++) {\n this._lanes.push(new TickerLane());\n }\n}\n\nTicker.prototype._step = function (time) {\n var lanes = this._lanes;\n var stepQueue = this._stepQueue;\n var stepCallbacks = this._stepCallbacks;\n var i, j, id, laneQueue, laneCallbacks, laneIndices;\n\n this._nextStep = null;\n\n for (i = 0; i < lanes.length; i++) {\n laneQueue = lanes[i].queue;\n laneCallbacks = lanes[i].callbacks;\n laneIndices = lanes[i].indices;\n for (j = 0; j < laneQueue.length; j++) {\n id = laneQueue[j];\n if (!id) continue;\n stepQueue.push(id);\n stepCallbacks[id] = laneCallbacks[id];\n delete laneCallbacks[id];\n delete laneIndices[id];\n }\n laneQueue.length = 0;\n }\n\n for (i = 0; i < stepQueue.length; i++) {\n id = stepQueue[i];\n if (stepCallbacks[id]) stepCallbacks[id](time);\n delete stepCallbacks[id];\n }\n\n stepQueue.length = 0;\n};\n\nTicker.prototype.add = function (laneIndex, id, callback) {\n this._lanes[laneIndex].add(id, callback);\n if (!this._nextStep) this._nextStep = raf(this._step);\n};\n\nTicker.prototype.remove = function (laneIndex, id) {\n this._lanes[laneIndex].remove(id);\n};\n\n/**\n * A lane for ticker.\n *\n * @class\n */\nfunction TickerLane() {\n this.queue = [];\n this.indices = {};\n this.callbacks = {};\n}\n\nTickerLane.prototype.add = function (id, callback) {\n var index = this.indices[id];\n if (index !== undefined) this.queue[index] = undefined;\n this.queue.push(id);\n this.callbacks[id] = callback;\n this.indices[id] = this.queue.length - 1;\n};\n\nTickerLane.prototype.remove = function (id) {\n var index = this.indices[id];\n if (index === undefined) return;\n this.queue[index] = undefined;\n delete this.callbacks[id];\n delete this.indices[id];\n};\n\nvar LAYOUT_READ = 'layoutRead';\nvar LAYOUT_WRITE = 'layoutWrite';\nvar VISIBILITY_READ = 'visibilityRead';\nvar VISIBILITY_WRITE = 'visibilityWrite';\nvar DRAG_START_READ = 'dragStartRead';\nvar DRAG_START_WRITE = 'dragStartWrite';\nvar DRAG_MOVE_READ = 'dragMoveRead';\nvar DRAG_MOVE_WRITE = 'dragMoveWrite';\nvar DRAG_SCROLL_READ = 'dragScrollRead';\nvar DRAG_SCROLL_WRITE = 'dragScrollWrite';\nvar DRAG_SORT_READ = 'dragSortRead';\nvar PLACEHOLDER_LAYOUT_READ = 'placeholderLayoutRead';\nvar PLACEHOLDER_LAYOUT_WRITE = 'placeholderLayoutWrite';\nvar PLACEHOLDER_RESIZE_WRITE = 'placeholderResizeWrite';\nvar AUTO_SCROLL_READ = 'autoScrollRead';\nvar AUTO_SCROLL_WRITE = 'autoScrollWrite';\nvar DEBOUNCE_READ = 'debounceRead';\n\nvar LANE_READ = 0;\nvar LANE_READ_TAIL = 1;\nvar LANE_WRITE = 2;\n\nvar ticker = new Ticker(3);\n\nfunction addLayoutTick(itemId, read, write) {\n ticker.add(LANE_READ, LAYOUT_READ + itemId, read);\n ticker.add(LANE_WRITE, LAYOUT_WRITE + itemId, write);\n}\n\nfunction cancelLayoutTick(itemId) {\n ticker.remove(LANE_READ, LAYOUT_READ + itemId);\n ticker.remove(LANE_WRITE, LAYOUT_WRITE + itemId);\n}\n\nfunction addVisibilityTick(itemId, read, write) {\n ticker.add(LANE_READ, VISIBILITY_READ + itemId, read);\n ticker.add(LANE_WRITE, VISIBILITY_WRITE + itemId, write);\n}\n\nfunction cancelVisibilityTick(itemId) {\n ticker.remove(LANE_READ, VISIBILITY_READ + itemId);\n ticker.remove(LANE_WRITE, VISIBILITY_WRITE + itemId);\n}\n\nfunction addDragStartTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_START_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_START_WRITE + itemId, write);\n}\n\nfunction cancelDragStartTick(itemId) {\n ticker.remove(LANE_READ, DRAG_START_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_START_WRITE + itemId);\n}\n\nfunction addDragMoveTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_MOVE_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_MOVE_WRITE + itemId, write);\n}\n\nfunction cancelDragMoveTick(itemId) {\n ticker.remove(LANE_READ, DRAG_MOVE_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_MOVE_WRITE + itemId);\n}\n\nfunction addDragScrollTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_SCROLL_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_SCROLL_WRITE + itemId, write);\n}\n\nfunction cancelDragScrollTick(itemId) {\n ticker.remove(LANE_READ, DRAG_SCROLL_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_SCROLL_WRITE + itemId);\n}\n\nfunction addDragSortTick(itemId, read) {\n ticker.add(LANE_READ_TAIL, DRAG_SORT_READ + itemId, read);\n}\n\nfunction cancelDragSortTick(itemId) {\n ticker.remove(LANE_READ_TAIL, DRAG_SORT_READ + itemId);\n}\n\nfunction addPlaceholderLayoutTick(itemId, read, write) {\n ticker.add(LANE_READ, PLACEHOLDER_LAYOUT_READ + itemId, read);\n ticker.add(LANE_WRITE, PLACEHOLDER_LAYOUT_WRITE + itemId, write);\n}\n\nfunction cancelPlaceholderLayoutTick(itemId) {\n ticker.remove(LANE_READ, PLACEHOLDER_LAYOUT_READ + itemId);\n ticker.remove(LANE_WRITE, PLACEHOLDER_LAYOUT_WRITE + itemId);\n}\n\nfunction addPlaceholderResizeTick(itemId, write) {\n ticker.add(LANE_WRITE, PLACEHOLDER_RESIZE_WRITE + itemId, write);\n}\n\nfunction cancelPlaceholderResizeTick(itemId) {\n ticker.remove(LANE_WRITE, PLACEHOLDER_RESIZE_WRITE + itemId);\n}\n\nfunction addAutoScrollTick(read, write) {\n ticker.add(LANE_READ, AUTO_SCROLL_READ, read);\n ticker.add(LANE_WRITE, AUTO_SCROLL_WRITE, write);\n}\n\nfunction cancelAutoScrollTick() {\n ticker.remove(LANE_READ, AUTO_SCROLL_READ);\n ticker.remove(LANE_WRITE, AUTO_SCROLL_WRITE);\n}\n\nfunction addDebounceTick(debounceId, read) {\n ticker.add(LANE_READ, DEBOUNCE_READ + debounceId, read);\n}\n\nfunction cancelDebounceTick(debounceId) {\n ticker.remove(LANE_READ, DEBOUNCE_READ + debounceId);\n}\n\nvar AXIS_X = 1;\nvar AXIS_Y = 2;\nvar FORWARD = 4;\nvar BACKWARD = 8;\nvar LEFT = AXIS_X | BACKWARD;\nvar RIGHT = AXIS_X | FORWARD;\nvar UP = AXIS_Y | BACKWARD;\nvar DOWN = AXIS_Y | FORWARD;\n\nvar functionType = 'function';\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isFunction(val) {\n return typeof val === functionType;\n}\n\nvar cache$1 = typeof WeakMap === 'function' ? new WeakMap() : null;\n\n/**\n * Returns the computed value of an element's style property as a string.\n *\n * @param {HTMLElement} element\n * @param {String} style\n * @returns {String}\n */\nfunction getStyle(element, style) {\n var styles = cache$1 && cache$1.get(element);\n\n if (!styles) {\n styles = window.getComputedStyle(element, null);\n if (cache$1) cache$1.set(element, styles);\n }\n\n return styles.getPropertyValue(style);\n}\n\n/**\n * Returns the computed value of an element's style property transformed into\n * a float value.\n *\n * @param {HTMLElement} el\n * @param {String} style\n * @returns {Number}\n */\nfunction getStyleAsFloat(el, style) {\n return parseFloat(getStyle(el, style)) || 0;\n}\n\nvar DOC_ELEM = document.documentElement;\nvar BODY = document.body;\nvar THRESHOLD_DATA = { value: 0, offset: 0 };\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {HTMLElement|Window}\n */\nfunction getScrollElement(element) {\n if (element === window || element === DOC_ELEM || element === BODY) {\n return window;\n } else {\n return element;\n }\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollLeft(element) {\n return element === window ? element.pageXOffset : element.scrollLeft;\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollTop(element) {\n return element === window ? element.pageYOffset : element.scrollTop;\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollLeftMax(element) {\n if (element === window) {\n return DOC_ELEM.scrollWidth - DOC_ELEM.clientWidth;\n } else {\n return element.scrollWidth - element.clientWidth;\n }\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollTopMax(element) {\n if (element === window) {\n return DOC_ELEM.scrollHeight - DOC_ELEM.clientHeight;\n } else {\n return element.scrollHeight - element.clientHeight;\n }\n}\n\n/**\n * Get window's or element's client rectangle data relative to the element's\n * content dimensions (includes inner size + padding, excludes scrollbars,\n * borders and margins).\n *\n * @param {HTMLElement|Window} element\n * @returns {Rectangle}\n */\nfunction getContentRect(element, result) {\n result = result || {};\n\n if (element === window) {\n result.width = DOC_ELEM.clientWidth;\n result.height = DOC_ELEM.clientHeight;\n result.left = 0;\n result.right = result.width;\n result.top = 0;\n result.bottom = result.height;\n } else {\n var bcr = element.getBoundingClientRect();\n var borderLeft = element.clientLeft || getStyleAsFloat(element, 'border-left-width');\n var borderTop = element.clientTop || getStyleAsFloat(element, 'border-top-width');\n result.width = element.clientWidth;\n result.height = element.clientHeight;\n result.left = bcr.left + borderLeft;\n result.right = result.left + result.width;\n result.top = bcr.top + borderTop;\n result.bottom = result.top + result.height;\n }\n\n return result;\n}\n\n/**\n * @param {Item} item\n * @returns {Object}\n */\nfunction getItemAutoScrollSettings(item) {\n return item._drag._getGrid()._settings.dragAutoScroll;\n}\n\n/**\n * @param {Item} item\n */\nfunction prepareItemScrollSync(item) {\n if (!item._drag) return;\n item._drag._prepareScroll();\n}\n\n/**\n * @param {Item} item\n */\nfunction applyItemScrollSync(item) {\n if (!item._drag || !item._isActive) return;\n var drag = item._drag;\n drag._scrollDiffX = drag._scrollDiffY = 0;\n item._setTranslate(drag._left, drag._top);\n}\n\n/**\n * Compute threshold value and edge offset.\n *\n * @param {Number} threshold\n * @param {Number} safeZone\n * @param {Number} itemSize\n * @param {Number} targetSize\n * @returns {Object}\n */\nfunction computeThreshold(threshold, safeZone, itemSize, targetSize) {\n THRESHOLD_DATA.value = Math.min(targetSize / 2, threshold);\n THRESHOLD_DATA.offset =\n Math.max(0, itemSize + THRESHOLD_DATA.value * 2 + targetSize * safeZone - targetSize) / 2;\n return THRESHOLD_DATA;\n}\n\nfunction ScrollRequest() {\n this.reset();\n}\n\nScrollRequest.prototype.reset = function () {\n if (this.isActive) this.onStop();\n this.item = null;\n this.element = null;\n this.isActive = false;\n this.isEnding = false;\n this.direction = null;\n this.value = null;\n this.maxValue = 0;\n this.threshold = 0;\n this.distance = 0;\n this.speed = 0;\n this.duration = 0;\n this.action = null;\n};\n\nScrollRequest.prototype.hasReachedEnd = function () {\n return FORWARD & this.direction ? this.value >= this.maxValue : this.value <= 0;\n};\n\nScrollRequest.prototype.computeCurrentScrollValue = function () {\n if (this.value === null) {\n return AXIS_X & this.direction ? getScrollLeft(this.element) : getScrollTop(this.element);\n }\n return Math.max(0, Math.min(this.value, this.maxValue));\n};\n\nScrollRequest.prototype.computeNextScrollValue = function (deltaTime) {\n var delta = this.speed * (deltaTime / 1000);\n var nextValue = FORWARD & this.direction ? this.value + delta : this.value - delta;\n return Math.max(0, Math.min(nextValue, this.maxValue));\n};\n\nScrollRequest.prototype.computeSpeed = (function () {\n var data = {\n direction: null,\n threshold: 0,\n distance: 0,\n value: 0,\n maxValue: 0,\n deltaTime: 0,\n duration: 0,\n isEnding: false,\n };\n\n return function (deltaTime) {\n var item = this.item;\n var speed = getItemAutoScrollSettings(item).speed;\n\n if (isFunction(speed)) {\n data.direction = this.direction;\n data.threshold = this.threshold;\n data.distance = this.distance;\n data.value = this.value;\n data.maxValue = this.maxValue;\n data.duration = this.duration;\n data.speed = this.speed;\n data.deltaTime = deltaTime;\n data.isEnding = this.isEnding;\n return speed(item, this.element, data);\n } else {\n return speed;\n }\n };\n})();\n\nScrollRequest.prototype.tick = function (deltaTime) {\n if (!this.isActive) {\n this.isActive = true;\n this.onStart();\n }\n this.value = this.computeCurrentScrollValue();\n this.speed = this.computeSpeed(deltaTime);\n this.value = this.computeNextScrollValue(deltaTime);\n this.duration += deltaTime;\n return this.value;\n};\n\nScrollRequest.prototype.onStart = function () {\n var item = this.item;\n var onStart = getItemAutoScrollSettings(item).onStart;\n if (isFunction(onStart)) onStart(item, this.element, this.direction);\n};\n\nScrollRequest.prototype.onStop = function () {\n var item = this.item;\n var onStop = getItemAutoScrollSettings(item).onStop;\n if (isFunction(onStop)) onStop(item, this.element, this.direction);\n // Manually nudge sort to happen. There's a good chance that the item is still\n // after the scroll stops which means that the next sort will be triggered\n // only after the item is moved or it's parent scrolled.\n if (item._drag) item._drag.sort();\n};\n\nfunction ScrollAction() {\n this.element = null;\n this.requestX = null;\n this.requestY = null;\n this.scrollLeft = 0;\n this.scrollTop = 0;\n}\n\nScrollAction.prototype.reset = function () {\n if (this.requestX) this.requestX.action = null;\n if (this.requestY) this.requestY.action = null;\n this.element = null;\n this.requestX = null;\n this.requestY = null;\n this.scrollLeft = 0;\n this.scrollTop = 0;\n};\n\nScrollAction.prototype.addRequest = function (request) {\n if (AXIS_X & request.direction) {\n this.removeRequest(this.requestX);\n this.requestX = request;\n } else {\n this.removeRequest(this.requestY);\n this.requestY = request;\n }\n request.action = this;\n};\n\nScrollAction.prototype.removeRequest = function (request) {\n if (!request) return;\n if (this.requestX === request) {\n this.requestX = null;\n request.action = null;\n } else if (this.requestY === request) {\n this.requestY = null;\n request.action = null;\n }\n};\n\nScrollAction.prototype.computeScrollValues = function () {\n this.scrollLeft = this.requestX ? this.requestX.value : getScrollLeft(this.element);\n this.scrollTop = this.requestY ? this.requestY.value : getScrollTop(this.element);\n};\n\nScrollAction.prototype.scroll = function () {\n var element = this.element;\n if (!element) return;\n\n if (element.scrollTo) {\n element.scrollTo(this.scrollLeft, this.scrollTop);\n } else {\n element.scrollLeft = this.scrollLeft;\n element.scrollTop = this.scrollTop;\n }\n};\n\nfunction Pool(createItem, releaseItem) {\n this.pool = [];\n this.createItem = createItem;\n this.releaseItem = releaseItem;\n}\n\nPool.prototype.pick = function () {\n return this.pool.pop() || this.createItem();\n};\n\nPool.prototype.release = function (item) {\n this.releaseItem(item);\n if (this.pool.indexOf(item) !== -1) return;\n this.pool.push(item);\n};\n\nPool.prototype.reset = function () {\n this.pool.length = 0;\n};\n\n/**\n * Check if two rectangles are overlapping.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction isOverlapping(a, b) {\n return !(\n a.left + a.width <= b.left ||\n b.left + b.width <= a.left ||\n a.top + a.height <= b.top ||\n b.top + b.height <= a.top\n );\n}\n\n/**\n * Calculate intersection area between two rectangle.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction getIntersectionArea(a, b) {\n if (!isOverlapping(a, b)) return 0;\n var width = Math.min(a.left + a.width, b.left + b.width) - Math.max(a.left, b.left);\n var height = Math.min(a.top + a.height, b.top + b.height) - Math.max(a.top, b.top);\n return width * height;\n}\n\n/**\n * Calculate how many percent the intersection area of two rectangles is from\n * the maximum potential intersection area between the rectangles.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction getIntersectionScore(a, b) {\n var area = getIntersectionArea(a, b);\n if (!area) return 0;\n var maxArea = Math.min(a.width, b.width) * Math.min(a.height, b.height);\n return (area / maxArea) * 100;\n}\n\nvar RECT_1 = {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\n\nvar RECT_2 = {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\n\nfunction AutoScroller() {\n this._isDestroyed = false;\n this._isTicking = false;\n this._tickTime = 0;\n this._tickDeltaTime = 0;\n this._items = [];\n this._actions = [];\n this._requests = {};\n this._requests[AXIS_X] = {};\n this._requests[AXIS_Y] = {};\n this._requestOverlapCheck = {};\n this._dragPositions = {};\n this._dragDirections = {};\n this._overlapCheckInterval = 150;\n\n this._requestPool = new Pool(\n function () {\n return new ScrollRequest();\n },\n function (request) {\n request.reset();\n }\n );\n\n this._actionPool = new Pool(\n function () {\n return new ScrollAction();\n },\n function (action) {\n action.reset();\n }\n );\n\n this._readTick = this._readTick.bind(this);\n this._writeTick = this._writeTick.bind(this);\n}\n\nAutoScroller.AXIS_X = AXIS_X;\nAutoScroller.AXIS_Y = AXIS_Y;\nAutoScroller.FORWARD = FORWARD;\nAutoScroller.BACKWARD = BACKWARD;\nAutoScroller.LEFT = LEFT;\nAutoScroller.RIGHT = RIGHT;\nAutoScroller.UP = UP;\nAutoScroller.DOWN = DOWN;\n\nAutoScroller.smoothSpeed = function (maxSpeed, acceleration, deceleration) {\n return function (item, element, data) {\n var targetSpeed = 0;\n if (!data.isEnding) {\n if (data.threshold > 0) {\n var factor = data.threshold - Math.max(0, data.distance);\n targetSpeed = (maxSpeed / data.threshold) * factor;\n } else {\n targetSpeed = maxSpeed;\n }\n }\n\n var currentSpeed = data.speed;\n var nextSpeed = targetSpeed;\n\n if (currentSpeed === targetSpeed) {\n return nextSpeed;\n }\n\n if (currentSpeed < targetSpeed) {\n nextSpeed = currentSpeed + acceleration * (data.deltaTime / 1000);\n return Math.min(targetSpeed, nextSpeed);\n } else {\n nextSpeed = currentSpeed - deceleration * (data.deltaTime / 1000);\n return Math.max(targetSpeed, nextSpeed);\n }\n };\n};\n\nAutoScroller.pointerHandle = function (pointerSize) {\n var rect = { left: 0, top: 0, width: 0, height: 0 };\n var size = pointerSize || 1;\n return function (item, x, y, w, h, pX, pY) {\n rect.left = pX - size * 0.5;\n rect.top = pY - size * 0.5;\n rect.width = size;\n rect.height = size;\n return rect;\n };\n};\n\nAutoScroller.prototype._readTick = function (time) {\n if (this._isDestroyed) return;\n if (time && this._tickTime) {\n this._tickDeltaTime = time - this._tickTime;\n this._tickTime = time;\n this._updateRequests();\n this._updateActions();\n } else {\n this._tickTime = time;\n this._tickDeltaTime = 0;\n }\n};\n\nAutoScroller.prototype._writeTick = function () {\n if (this._isDestroyed) return;\n this._applyActions();\n addAutoScrollTick(this._readTick, this._writeTick);\n};\n\nAutoScroller.prototype._startTicking = function () {\n this._isTicking = true;\n addAutoScrollTick(this._readTick, this._writeTick);\n};\n\nAutoScroller.prototype._stopTicking = function () {\n this._isTicking = false;\n this._tickTime = 0;\n this._tickDeltaTime = 0;\n cancelAutoScrollTick();\n};\n\nAutoScroller.prototype._getItemHandleRect = function (item, handle, rect) {\n var itemDrag = item._drag;\n\n if (handle) {\n var ev = itemDrag._dragMoveEvent || itemDrag._dragStartEvent;\n var data = handle(\n item,\n itemDrag._clientX,\n itemDrag._clientY,\n item._width,\n item._height,\n ev.clientX,\n ev.clientY\n );\n rect.left = data.left;\n rect.top = data.top;\n rect.width = data.width;\n rect.height = data.height;\n } else {\n rect.left = itemDrag._clientX;\n rect.top = itemDrag._clientY;\n rect.width = item._width;\n rect.height = item._height;\n }\n\n rect.right = rect.left + rect.width;\n rect.bottom = rect.top + rect.height;\n\n return rect;\n};\n\nAutoScroller.prototype._requestItemScroll = function (\n item,\n axis,\n element,\n direction,\n threshold,\n distance,\n maxValue\n) {\n var reqMap = this._requests[axis];\n var request = reqMap[item._id];\n\n if (request) {\n if (request.element !== element || request.direction !== direction) {\n request.reset();\n }\n } else {\n request = this._requestPool.pick();\n }\n\n request.item = item;\n request.element = element;\n request.direction = direction;\n request.threshold = threshold;\n request.distance = distance;\n request.maxValue = maxValue;\n reqMap[item._id] = request;\n};\n\nAutoScroller.prototype._cancelItemScroll = function (item, axis) {\n var reqMap = this._requests[axis];\n var request = reqMap[item._id];\n if (!request) return;\n if (request.action) request.action.removeRequest(request);\n this._requestPool.release(request);\n delete reqMap[item._id];\n};\n\nAutoScroller.prototype._checkItemOverlap = function (item, checkX, checkY) {\n var settings = getItemAutoScrollSettings(item);\n var targets = isFunction(settings.targets) ? settings.targets(item) : settings.targets;\n var threshold = settings.threshold;\n var safeZone = settings.safeZone;\n\n if (!targets || !targets.length) {\n checkX && this._cancelItemScroll(item, AXIS_X);\n checkY && this._cancelItemScroll(item, AXIS_Y);\n return;\n }\n\n var dragDirections = this._dragDirections[item._id];\n var dragDirectionX = dragDirections[0];\n var dragDirectionY = dragDirections[1];\n\n if (!dragDirectionX && !dragDirectionY) {\n checkX && this._cancelItemScroll(item, AXIS_X);\n checkY && this._cancelItemScroll(item, AXIS_Y);\n return;\n }\n\n var itemRect = this._getItemHandleRect(item, settings.handle, RECT_1);\n var testRect = RECT_2;\n\n var target = null;\n var testElement = null;\n var testAxisX = true;\n var testAxisY = true;\n var testScore = 0;\n var testPriority = 0;\n var testThreshold = null;\n var testDirection = null;\n var testDistance = 0;\n var testMaxScrollX = 0;\n var testMaxScrollY = 0;\n\n var xElement = null;\n var xPriority = -Infinity;\n var xThreshold = 0;\n var xScore = 0;\n var xDirection = null;\n var xDistance = 0;\n var xMaxScroll = 0;\n\n var yElement = null;\n var yPriority = -Infinity;\n var yThreshold = 0;\n var yScore = 0;\n var yDirection = null;\n var yDistance = 0;\n var yMaxScroll = 0;\n\n for (var i = 0; i < targets.length; i++) {\n target = targets[i];\n testAxisX = checkX && dragDirectionX && target.axis !== AXIS_Y;\n testAxisY = checkY && dragDirectionY && target.axis !== AXIS_X;\n testPriority = target.priority || 0;\n\n // Ignore this item if it's x-axis and y-axis priority is lower than\n // the currently matching item's.\n if ((!testAxisX || testPriority < xPriority) && (!testAxisY || testPriority < yPriority)) {\n continue;\n }\n\n testElement = getScrollElement(target.element || target);\n testMaxScrollX = testAxisX ? getScrollLeftMax(testElement) : -1;\n testMaxScrollY = testAxisY ? getScrollTopMax(testElement) : -1;\n\n // Ignore this item if there is no possibility to scroll.\n if (!testMaxScrollX && !testMaxScrollY) continue;\n\n testRect = getContentRect(testElement, testRect);\n testScore = getIntersectionScore(itemRect, testRect);\n\n // Ignore this item if it's not overlapping at all with the dragged item.\n if (testScore <= 0) continue;\n\n // Test x-axis.\n if (\n testAxisX &&\n testPriority >= xPriority &&\n testMaxScrollX > 0 &&\n (testPriority > xPriority || testScore > xScore)\n ) {\n testDirection = null;\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n itemRect.width,\n testRect.width\n );\n if (dragDirectionX === RIGHT) {\n testDistance = testRect.right + testThreshold.offset - itemRect.right;\n if (testDistance <= testThreshold.value && getScrollLeft(testElement) < testMaxScrollX) {\n testDirection = RIGHT;\n }\n } else if (dragDirectionX === LEFT) {\n testDistance = itemRect.left - (testRect.left - testThreshold.offset);\n if (testDistance <= testThreshold.value && getScrollLeft(testElement) > 0) {\n testDirection = LEFT;\n }\n }\n\n if (testDirection !== null) {\n xElement = testElement;\n xPriority = testPriority;\n xThreshold = testThreshold.value;\n xScore = testScore;\n xDirection = testDirection;\n xDistance = testDistance;\n xMaxScroll = testMaxScrollX;\n }\n }\n\n // Test y-axis.\n if (\n testAxisY &&\n testPriority >= yPriority &&\n testMaxScrollY > 0 &&\n (testPriority > yPriority || testScore > yScore)\n ) {\n testDirection = null;\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n itemRect.height,\n testRect.height\n );\n if (dragDirectionY === DOWN) {\n testDistance = testRect.bottom + testThreshold.offset - itemRect.bottom;\n if (testDistance <= testThreshold.value && getScrollTop(testElement) < testMaxScrollY) {\n testDirection = DOWN;\n }\n } else if (dragDirectionY === UP) {\n testDistance = itemRect.top - (testRect.top - testThreshold.offset);\n if (testDistance <= testThreshold.value && getScrollTop(testElement) > 0) {\n testDirection = UP;\n }\n }\n\n if (testDirection !== null) {\n yElement = testElement;\n yPriority = testPriority;\n yThreshold = testThreshold.value;\n yScore = testScore;\n yDirection = testDirection;\n yDistance = testDistance;\n yMaxScroll = testMaxScrollY;\n }\n }\n }\n\n // Request or cancel x-axis scroll.\n if (checkX) {\n if (xElement) {\n this._requestItemScroll(\n item,\n AXIS_X,\n xElement,\n xDirection,\n xThreshold,\n xDistance,\n xMaxScroll\n );\n } else {\n this._cancelItemScroll(item, AXIS_X);\n }\n }\n\n // Request or cancel y-axis scroll.\n if (checkY) {\n if (yElement) {\n this._requestItemScroll(\n item,\n AXIS_Y,\n yElement,\n yDirection,\n yThreshold,\n yDistance,\n yMaxScroll\n );\n } else {\n this._cancelItemScroll(item, AXIS_Y);\n }\n }\n};\n\nAutoScroller.prototype._updateScrollRequest = function (scrollRequest) {\n var item = scrollRequest.item;\n var settings = getItemAutoScrollSettings(item);\n var targets = isFunction(settings.targets) ? settings.targets(item) : settings.targets;\n var targetCount = (targets && targets.length) || 0;\n var threshold = settings.threshold;\n var safeZone = settings.safeZone;\n var itemRect = this._getItemHandleRect(item, settings.handle, RECT_1);\n var testRect = RECT_2;\n var target = null;\n var testElement = null;\n var testIsAxisX = false;\n var testScore = null;\n var testThreshold = null;\n var testDistance = null;\n var testScroll = null;\n var testMaxScroll = null;\n var hasReachedEnd = null;\n\n for (var i = 0; i < targetCount; i++) {\n target = targets[i];\n\n // Make sure we have a matching element.\n testElement = getScrollElement(target.element || target);\n if (testElement !== scrollRequest.element) continue;\n\n // Make sure we have a matching axis.\n testIsAxisX = !!(AXIS_X & scrollRequest.direction);\n if (testIsAxisX) {\n if (target.axis === AXIS_Y) continue;\n } else {\n if (target.axis === AXIS_X) continue;\n }\n\n // Stop scrolling if there is no room to scroll anymore.\n testMaxScroll = testIsAxisX ? getScrollLeftMax(testElement) : getScrollTopMax(testElement);\n if (testMaxScroll <= 0) {\n break;\n }\n\n testRect = getContentRect(testElement, testRect);\n testScore = getIntersectionScore(itemRect, testRect);\n\n // Stop scrolling if dragged item is not overlapping with the scroll\n // element anymore.\n if (testScore <= 0) {\n break;\n }\n\n // Compute threshold and edge offset.\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n testIsAxisX ? itemRect.width : itemRect.height,\n testIsAxisX ? testRect.width : testRect.height\n );\n\n // Compute distance (based on current direction).\n if (scrollRequest.direction === LEFT) {\n testDistance = itemRect.left - (testRect.left - testThreshold.offset);\n } else if (scrollRequest.direction === RIGHT) {\n testDistance = testRect.right + testThreshold.offset - itemRect.right;\n } else if (scrollRequest.direction === UP) {\n testDistance = itemRect.top - (testRect.top - testThreshold.offset);\n } else {\n testDistance = testRect.bottom + testThreshold.offset - itemRect.bottom;\n }\n\n // Stop scrolling if threshold is not exceeded.\n if (testDistance > testThreshold.value) {\n break;\n }\n\n // Stop scrolling if we have reached the end of the scroll value.\n testScroll = testIsAxisX ? getScrollLeft(testElement) : getScrollTop(testElement);\n hasReachedEnd =\n FORWARD & scrollRequest.direction ? testScroll >= testMaxScroll : testScroll <= 0;\n if (hasReachedEnd) {\n break;\n }\n\n // Scrolling can continue, let's update the values.\n scrollRequest.maxValue = testMaxScroll;\n scrollRequest.threshold = testThreshold.value;\n scrollRequest.distance = testDistance;\n scrollRequest.isEnding = false;\n return true;\n }\n\n // Before we end the request, let's see if we need to stop the scrolling\n // smoothly or immediately.\n if (settings.smoothStop === true && scrollRequest.speed > 0) {\n if (hasReachedEnd === null) hasReachedEnd = scrollRequest.hasReachedEnd();\n scrollRequest.isEnding = hasReachedEnd ? false : true;\n } else {\n scrollRequest.isEnding = false;\n }\n\n return scrollRequest.isEnding;\n};\n\nAutoScroller.prototype._updateRequests = function () {\n var items = this._items;\n var requestsX = this._requests[AXIS_X];\n var requestsY = this._requests[AXIS_Y];\n var item, reqX, reqY, checkTime, needsCheck, checkX, checkY;\n\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n checkTime = this._requestOverlapCheck[item._id];\n needsCheck = checkTime > 0 && this._tickTime - checkTime > this._overlapCheckInterval;\n\n checkX = true;\n reqX = requestsX[item._id];\n if (reqX && reqX.isActive) {\n checkX = !this._updateScrollRequest(reqX);\n if (checkX) {\n needsCheck = true;\n this._cancelItemScroll(item, AXIS_X);\n }\n }\n\n checkY = true;\n reqY = requestsY[item._id];\n if (reqY && reqY.isActive) {\n checkY = !this._updateScrollRequest(reqY);\n if (checkY) {\n needsCheck = true;\n this._cancelItemScroll(item, AXIS_Y);\n }\n }\n\n if (needsCheck) {\n this._requestOverlapCheck[item._id] = 0;\n this._checkItemOverlap(item, checkX, checkY);\n }\n }\n};\n\nAutoScroller.prototype._requestAction = function (request, axis) {\n var actions = this._actions;\n var isAxisX = axis === AXIS_X;\n var action = null;\n\n for (var i = 0; i < actions.length; i++) {\n action = actions[i];\n\n // If the action's request does not match the request's -> skip.\n if (request.element !== action.element) {\n action = null;\n continue;\n }\n\n // If the request and action share the same element, but the request slot\n // for the requested axis is already reserved let's ignore and cancel this\n // request.\n if (isAxisX ? action.requestX : action.requestY) {\n this._cancelItemScroll(request.item, axis);\n return;\n }\n\n // Seems like we have found our action, let's break the loop.\n break;\n }\n\n if (!action) action = this._actionPool.pick();\n action.element = request.element;\n action.addRequest(request);\n\n request.tick(this._tickDeltaTime);\n actions.push(action);\n};\n\nAutoScroller.prototype._updateActions = function () {\n var items = this._items;\n var requests = this._requests;\n var actions = this._actions;\n var itemId;\n var reqX;\n var reqY;\n var i;\n\n // Generate actions.\n for (i = 0; i < items.length; i++) {\n itemId = items[i]._id;\n reqX = requests[AXIS_X][itemId];\n reqY = requests[AXIS_Y][itemId];\n if (reqX) this._requestAction(reqX, AXIS_X);\n if (reqY) this._requestAction(reqY, AXIS_Y);\n }\n\n // Compute actions' scroll values.\n for (i = 0; i < actions.length; i++) {\n actions[i].computeScrollValues();\n }\n};\n\nAutoScroller.prototype._applyActions = function () {\n var actions = this._actions;\n var items = this._items;\n var i;\n\n // No actions -> no scrolling.\n if (!actions.length) return;\n\n // Scroll all the required elements.\n for (i = 0; i < actions.length; i++) {\n actions[i].scroll();\n this._actionPool.release(actions[i]);\n }\n\n // Reset actions.\n actions.length = 0;\n\n // Sync the item position immediately after all the auto-scrolling business is\n // finished. Without this procedure the items will jitter during auto-scroll\n // (in some cases at least) since the drag scroll handler is async (bound to\n // raf tick). Note that this procedure should not emit any dragScroll events,\n // because otherwise they would be emitted twice for the same event.\n for (i = 0; i < items.length; i++) prepareItemScrollSync(items[i]);\n for (i = 0; i < items.length; i++) applyItemScrollSync(items[i]);\n};\n\nAutoScroller.prototype._updateDragDirection = function (item) {\n var dragPositions = this._dragPositions[item._id];\n var dragDirections = this._dragDirections[item._id];\n var x1 = item._drag._left;\n var y1 = item._drag._top;\n if (dragPositions.length) {\n var x2 = dragPositions[0];\n var y2 = dragPositions[1];\n dragDirections[0] = x1 > x2 ? RIGHT : x1 < x2 ? LEFT : dragDirections[0] || 0;\n dragDirections[1] = y1 > y2 ? DOWN : y1 < y2 ? UP : dragDirections[1] || 0;\n }\n dragPositions[0] = x1;\n dragPositions[1] = y1;\n};\n\nAutoScroller.prototype.addItem = function (item) {\n if (this._isDestroyed) return;\n var index = this._items.indexOf(item);\n if (index === -1) {\n this._items.push(item);\n this._requestOverlapCheck[item._id] = this._tickTime;\n this._dragDirections[item._id] = [0, 0];\n this._dragPositions[item._id] = [];\n if (!this._isTicking) this._startTicking();\n }\n};\n\nAutoScroller.prototype.updateItem = function (item) {\n if (this._isDestroyed) return;\n\n // Make sure the item still exists in the auto-scroller.\n if (!this._dragDirections[item._id]) return;\n\n this._updateDragDirection(item);\n if (!this._requestOverlapCheck[item._id]) {\n this._requestOverlapCheck[item._id] = this._tickTime;\n }\n};\n\nAutoScroller.prototype.removeItem = function (item) {\n if (this._isDestroyed) return;\n\n var index = this._items.indexOf(item);\n if (index === -1) return;\n\n var itemId = item._id;\n\n var reqX = this._requests[AXIS_X][itemId];\n if (reqX) {\n this._cancelItemScroll(item, AXIS_X);\n delete this._requests[AXIS_X][itemId];\n }\n\n var reqY = this._requests[AXIS_Y][itemId];\n if (reqY) {\n this._cancelItemScroll(item, AXIS_Y);\n delete this._requests[AXIS_Y][itemId];\n }\n\n delete this._requestOverlapCheck[itemId];\n delete this._dragPositions[itemId];\n delete this._dragDirections[itemId];\n this._items.splice(index, 1);\n\n if (this._isTicking && !this._items.length) {\n this._stopTicking();\n }\n};\n\nAutoScroller.prototype.isItemScrollingX = function (item) {\n var reqX = this._requests[AXIS_X][item._id];\n return !!(reqX && reqX.isActive);\n};\n\nAutoScroller.prototype.isItemScrollingY = function (item) {\n var reqY = this._requests[AXIS_Y][item._id];\n return !!(reqY && reqY.isActive);\n};\n\nAutoScroller.prototype.isItemScrolling = function (item) {\n return this.isItemScrollingX(item) || this.isItemScrollingY(item);\n};\n\nAutoScroller.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var items = this._items.slice(0);\n for (var i = 0; i < items.length; i++) {\n this.removeItem(items[i]);\n }\n\n this._actions.length = 0;\n this._requestPool.reset();\n this._actionPool.reset();\n\n this._isDestroyed = true;\n};\n\nvar ElProto = window.Element.prototype;\nvar matchesFn =\n ElProto.matches ||\n ElProto.matchesSelector ||\n ElProto.webkitMatchesSelector ||\n ElProto.mozMatchesSelector ||\n ElProto.msMatchesSelector ||\n ElProto.oMatchesSelector ||\n function () {\n return false;\n };\n\n/**\n * Check if element matches a CSS selector.\n *\n * @param {Element} el\n * @param {String} selector\n * @returns {Boolean}\n */\nfunction elementMatches(el, selector) {\n return matchesFn.call(el, selector);\n}\n\n/**\n * Add class to an element.\n *\n * @param {HTMLElement} element\n * @param {String} className\n */\nfunction addClass(element, className) {\n if (!className) return;\n\n if (element.classList) {\n element.classList.add(className);\n } else {\n if (!elementMatches(element, '.' + className)) {\n element.className += ' ' + className;\n }\n }\n}\n\nvar tempArray = [];\nvar numberType = 'number';\n\n/**\n * Insert an item or an array of items to array to a specified index. Mutates\n * the array. The index can be negative in which case the items will be added\n * to the end of the array.\n *\n * @param {Array} array\n * @param {*} items\n * @param {Number} [index=-1]\n */\nfunction arrayInsert(array, items, index) {\n var startIndex = typeof index === numberType ? index : -1;\n if (startIndex < 0) startIndex = array.length - startIndex + 1;\n\n array.splice.apply(array, tempArray.concat(startIndex, 0, items));\n tempArray.length = 0;\n}\n\n/**\n * Normalize array index. Basically this function makes sure that the provided\n * array index is within the bounds of the provided array and also transforms\n * negative index to the matching positive index. The third (optional) argument\n * allows you to define offset for array's length in case you are adding items\n * to the array or removing items from the array.\n *\n * @param {Array} array\n * @param {Number} index\n * @param {Number} [sizeOffset]\n */\nfunction normalizeArrayIndex(array, index, sizeOffset) {\n var maxIndex = Math.max(0, array.length - 1 + (sizeOffset || 0));\n return index > maxIndex ? maxIndex : index < 0 ? Math.max(maxIndex + index + 1, 0) : index;\n}\n\n/**\n * Move array item to another index.\n *\n * @param {Array} array\n * @param {Number} fromIndex\n * - Index (positive or negative) of the item that will be moved.\n * @param {Number} toIndex\n * - Index (positive or negative) where the item should be moved to.\n */\nfunction arrayMove(array, fromIndex, toIndex) {\n // Make sure the array has two or more items.\n if (array.length < 2) return;\n\n // Normalize the indices.\n var from = normalizeArrayIndex(array, fromIndex);\n var to = normalizeArrayIndex(array, toIndex);\n\n // Add target item to the new position.\n if (from !== to) {\n array.splice(to, 0, array.splice(from, 1)[0]);\n }\n}\n\n/**\n * Swap array items.\n *\n * @param {Array} array\n * @param {Number} index\n * - Index (positive or negative) of the item that will be swapped.\n * @param {Number} withIndex\n * - Index (positive or negative) of the other item that will be swapped.\n */\nfunction arraySwap(array, index, withIndex) {\n // Make sure the array has two or more items.\n if (array.length < 2) return;\n\n // Normalize the indices.\n var indexA = normalizeArrayIndex(array, index);\n var indexB = normalizeArrayIndex(array, withIndex);\n var temp;\n\n // Swap the items.\n if (indexA !== indexB) {\n temp = array[indexA];\n array[indexA] = array[indexB];\n array[indexB] = temp;\n }\n}\n\nvar transformProp = getPrefixedPropName(document.documentElement.style, 'transform') || 'transform';\n\nvar styleNameRegEx = /([A-Z])/g;\nvar prefixRegex = /^(webkit-|moz-|ms-|o-)/;\nvar msPrefixRegex = /^(-m-s-)/;\n\n/**\n * Transforms a camel case style property to kebab case style property. Handles\n * vendor prefixed properties elegantly as well, e.g. \"WebkitTransform\" and\n * \"webkitTransform\" are both transformed into \"-webkit-transform\".\n *\n * @param {String} property\n * @returns {String}\n */\nfunction getStyleName(property) {\n // Initial slicing, turns \"fooBarProp\" into \"foo-bar-prop\".\n var styleName = property.replace(styleNameRegEx, '-$1').toLowerCase();\n\n // Handle properties that start with \"webkit\", \"moz\", \"ms\" or \"o\" prefix (we\n // need to add an extra '-' to the beginnig).\n styleName = styleName.replace(prefixRegex, '-$1');\n\n // Handle properties that start with \"MS\" prefix (we need to transform the\n // \"-m-s-\" into \"-ms-\").\n styleName = styleName.replace(msPrefixRegex, '-ms-');\n\n return styleName;\n}\n\nvar transformStyle = getStyleName(transformProp);\n\nvar transformNone$1 = 'none';\nvar displayInline = 'inline';\nvar displayNone = 'none';\nvar displayStyle = 'display';\n\n/**\n * Returns true if element is transformed, false if not. In practice the\n * element's display value must be anything else than \"none\" or \"inline\" as\n * well as have a valid transform value applied in order to be counted as a\n * transformed element.\n *\n * Borrowed from Mezr (v0.6.1):\n * https://github.com/niklasramo/mezr/blob/0.6.1/mezr.js#L661\n *\n * @param {HTMLElement} element\n * @returns {Boolean}\n */\nfunction isTransformed(element) {\n var transform = getStyle(element, transformStyle);\n if (!transform || transform === transformNone$1) return false;\n\n var display = getStyle(element, displayStyle);\n if (display === displayInline || display === displayNone) return false;\n\n return true;\n}\n\n/**\n * Returns an absolute positioned element's containing block, which is\n * considered to be the closest ancestor element that the target element's\n * positioning is relative to. Disclaimer: this only works as intended for\n * absolute positioned elements.\n *\n * @param {HTMLElement} element\n * @returns {(Document|Element)}\n */\nfunction getContainingBlock(element) {\n // As long as the containing block is an element, static and not\n // transformed, try to get the element's parent element and fallback to\n // document. https://github.com/niklasramo/mezr/blob/0.6.1/mezr.js#L339\n var doc = document;\n var res = element || doc;\n while (res && res !== doc && getStyle(res, 'position') === 'static' && !isTransformed(res)) {\n res = res.parentElement || doc;\n }\n return res;\n}\n\nvar offsetA = {};\nvar offsetB = {};\nvar offsetDiff = {};\n\n/**\n * Returns the element's document offset, which in practice means the vertical\n * and horizontal distance between the element's northwest corner and the\n * document's northwest corner. Note that this function always returns the same\n * object so be sure to read the data from it instead using it as a reference.\n *\n * @param {(Document|Element|Window)} element\n * @param {Object} [offsetData]\n * - Optional data object where the offset data will be inserted to. If not\n * provided a new object will be created for the return data.\n * @returns {Object}\n */\nfunction getOffset(element, offsetData) {\n var offset = offsetData || {};\n var rect;\n\n // Set up return data.\n offset.left = 0;\n offset.top = 0;\n\n // Document's offsets are always 0.\n if (element === document) return offset;\n\n // Add viewport scroll left/top to the respective offsets.\n offset.left = window.pageXOffset || 0;\n offset.top = window.pageYOffset || 0;\n\n // Window's offsets are the viewport scroll left/top values.\n if (element.self === window.self) return offset;\n\n // Add element's client rects to the offsets.\n rect = element.getBoundingClientRect();\n offset.left += rect.left;\n offset.top += rect.top;\n\n // Exclude element's borders from the offset.\n offset.left += getStyleAsFloat(element, 'border-left-width');\n offset.top += getStyleAsFloat(element, 'border-top-width');\n\n return offset;\n}\n\n/**\n * Calculate the offset difference two elements.\n *\n * @param {HTMLElement} elemA\n * @param {HTMLElement} elemB\n * @param {Boolean} [compareContainingBlocks=false]\n * - When this is set to true the containing blocks of the provided elements\n * will be used for calculating the difference. Otherwise the provided\n * elements will be compared directly.\n * @returns {Object}\n */\nfunction getOffsetDiff(elemA, elemB, compareContainingBlocks) {\n offsetDiff.left = 0;\n offsetDiff.top = 0;\n\n // If elements are same let's return early.\n if (elemA === elemB) return offsetDiff;\n\n // Compare containing blocks if necessary.\n if (compareContainingBlocks) {\n elemA = getContainingBlock(elemA);\n elemB = getContainingBlock(elemB);\n\n // If containing blocks are identical, let's return early.\n if (elemA === elemB) return offsetDiff;\n }\n\n // Finally, let's calculate the offset diff.\n getOffset(elemA, offsetA);\n getOffset(elemB, offsetB);\n offsetDiff.left = offsetB.left - offsetA.left;\n offsetDiff.top = offsetB.top - offsetA.top;\n\n return offsetDiff;\n}\n\n/**\n * Check if overflow style value is scrollable.\n *\n * @param {String} value\n * @returns {Boolean}\n */\nfunction isScrollableOverflow(value) {\n return value === 'auto' || value === 'scroll' || value === 'overlay';\n}\n\n/**\n * Check if an element is scrollable.\n *\n * @param {HTMLElement} element\n * @returns {Boolean}\n */\nfunction isScrollable(element) {\n return (\n isScrollableOverflow(getStyle(element, 'overflow')) ||\n isScrollableOverflow(getStyle(element, 'overflow-x')) ||\n isScrollableOverflow(getStyle(element, 'overflow-y'))\n );\n}\n\n/**\n * Collect element's ancestors that are potentially scrollable elements. The\n * provided element is also also included in the check, meaning that if it is\n * scrollable it is added to the result array.\n *\n * @param {HTMLElement} element\n * @param {Array} [result]\n * @returns {Array}\n */\nfunction getScrollableAncestors(element, result) {\n result = result || [];\n\n // Find scroll parents.\n while (element && element !== document) {\n // If element is inside ShadowDOM let's get it's host node from the real\n // DOM and continue looping.\n if (element.getRootNode && element instanceof DocumentFragment) {\n element = element.getRootNode().host;\n continue;\n }\n\n // If element is scrollable let's add it to the scrollable list.\n if (isScrollable(element)) {\n result.push(element);\n }\n\n element = element.parentNode;\n }\n\n // Always add window to the results.\n result.push(window);\n\n return result;\n}\n\nvar translateValue = {};\nvar transformNone = 'none';\nvar rxMat3d = /^matrix3d/;\nvar rxMatTx = /([^,]*,){4}/;\nvar rxMat3dTx = /([^,]*,){12}/;\nvar rxNextItem = /[^,]*,/;\n\n/**\n * Returns the element's computed translateX and translateY values as a floats.\n * The returned object is always the same object and updated every time this\n * function is called.\n *\n * @param {HTMLElement} element\n * @returns {Object}\n */\nfunction getTranslate(element) {\n translateValue.x = 0;\n translateValue.y = 0;\n\n var transform = getStyle(element, transformStyle);\n if (!transform || transform === transformNone) {\n return translateValue;\n }\n\n // Transform style can be in either matrix3d(...) or matrix(...).\n var isMat3d = rxMat3d.test(transform);\n var tX = transform.replace(isMat3d ? rxMat3dTx : rxMatTx, '');\n var tY = tX.replace(rxNextItem, '');\n\n translateValue.x = parseFloat(tX) || 0;\n translateValue.y = parseFloat(tY) || 0;\n\n return translateValue;\n}\n\n/**\n * Remove class from an element.\n *\n * @param {HTMLElement} element\n * @param {String} className\n */\nfunction removeClass(element, className) {\n if (!className) return;\n\n if (element.classList) {\n element.classList.remove(className);\n } else {\n if (elementMatches(element, '.' + className)) {\n element.className = (' ' + element.className + ' ')\n .replace(' ' + className + ' ', ' ')\n .trim();\n }\n }\n}\n\nvar IS_IOS =\n /^(iPad|iPhone|iPod)/.test(window.navigator.platform) ||\n (/^Mac/.test(window.navigator.platform) && window.navigator.maxTouchPoints > 1);\nvar START_PREDICATE_INACTIVE = 0;\nvar START_PREDICATE_PENDING = 1;\nvar START_PREDICATE_RESOLVED = 2;\nvar SCROLL_LISTENER_OPTIONS = hasPassiveEvents() ? { passive: true } : false;\n\n/**\n * Bind touch interaction to an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDrag(item) {\n var element = item._element;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this._item = item;\n this._gridId = grid._id;\n this._isDestroyed = false;\n this._isMigrating = false;\n\n // Start predicate data.\n this._startPredicate = isFunction(settings.dragStartPredicate)\n ? settings.dragStartPredicate\n : ItemDrag.defaultStartPredicate;\n this._startPredicateState = START_PREDICATE_INACTIVE;\n this._startPredicateResult = undefined;\n\n // Data for drag sort predicate heuristics.\n this._isSortNeeded = false;\n this._sortTimer = undefined;\n this._blockedSortIndex = null;\n this._sortX1 = 0;\n this._sortX2 = 0;\n this._sortY1 = 0;\n this._sortY2 = 0;\n\n // Setup item's initial drag data.\n this._reset();\n\n // Bind the methods that needs binding.\n this._preStartCheck = this._preStartCheck.bind(this);\n this._preEndCheck = this._preEndCheck.bind(this);\n this._onScroll = this._onScroll.bind(this);\n this._prepareStart = this._prepareStart.bind(this);\n this._applyStart = this._applyStart.bind(this);\n this._prepareMove = this._prepareMove.bind(this);\n this._applyMove = this._applyMove.bind(this);\n this._prepareScroll = this._prepareScroll.bind(this);\n this._applyScroll = this._applyScroll.bind(this);\n this._handleSort = this._handleSort.bind(this);\n this._handleSortDelayed = this._handleSortDelayed.bind(this);\n\n // Get drag handle element.\n this._handle = (settings.dragHandle && element.querySelector(settings.dragHandle)) || element;\n\n // Init dragger.\n this._dragger = new Dragger(this._handle, settings.dragCssProps);\n this._dragger.on('start', this._preStartCheck);\n this._dragger.on('move', this._preStartCheck);\n this._dragger.on('cancel', this._preEndCheck);\n this._dragger.on('end', this._preEndCheck);\n}\n\n/**\n * Public properties\n * *****************\n */\n\n/**\n * @public\n * @static\n * @type {AutoScroller}\n */\nItemDrag.autoScroller = new AutoScroller();\n\n/**\n * Public static methods\n * *********************\n */\n\n/**\n * Default drag start predicate handler that handles anchor elements\n * gracefully. The return value of this function defines if the drag is\n * started, rejected or pending. When true is returned the dragging is started\n * and when false is returned the dragging is rejected. If nothing is returned\n * the predicate will be called again on the next drag movement.\n *\n * @public\n * @static\n * @param {Item} item\n * @param {Object} event\n * @param {Object} [options]\n * - An optional options object which can be used to pass the predicate\n * it's options manually. By default the predicate retrieves the options\n * from the grid's settings.\n * @returns {(Boolean|undefined)}\n */\nItemDrag.defaultStartPredicate = function (item, event, options) {\n var drag = item._drag;\n\n // Make sure left button is pressed on mouse.\n if (event.isFirst && event.srcEvent.button) {\n return false;\n }\n\n // If the start event is trusted, non-cancelable and it's default action has\n // not been prevented it is in most cases a sign that the gesture would be\n // cancelled anyways right after it has started (e.g. starting drag while\n // the page is scrolling).\n if (\n !IS_IOS &&\n event.isFirst &&\n event.srcEvent.isTrusted === true &&\n event.srcEvent.defaultPrevented === false &&\n event.srcEvent.cancelable === false\n ) {\n return false;\n }\n\n // Final event logic. At this stage return value does not matter anymore,\n // the predicate is either resolved or it's not and there's nothing to do\n // about it. Here we just reset data and if the item element is a link\n // we follow it (if there has only been slight movement).\n if (event.isFinal) {\n drag._finishStartPredicate(event);\n return;\n }\n\n // Setup predicate data from options if not already set.\n var predicate = drag._startPredicateData;\n if (!predicate) {\n var config = options || drag._getGrid()._settings.dragStartPredicate || {};\n drag._startPredicateData = predicate = {\n distance: Math.max(config.distance, 0) || 0,\n delay: Math.max(config.delay, 0) || 0,\n };\n }\n\n // If delay is defined let's keep track of the latest event and initiate\n // delay if it has not been done yet.\n if (predicate.delay) {\n predicate.event = event;\n if (!predicate.delayTimer) {\n predicate.delayTimer = window.setTimeout(function () {\n predicate.delay = 0;\n if (drag._resolveStartPredicate(predicate.event)) {\n drag._forceResolveStartPredicate(predicate.event);\n drag._resetStartPredicate();\n }\n }, predicate.delay);\n }\n }\n\n return drag._resolveStartPredicate(event);\n};\n\n/**\n * Default drag sort predicate.\n *\n * @public\n * @static\n * @param {Item} item\n * @param {Object} [options]\n * @param {Number} [options.threshold=50]\n * @param {String} [options.action='move']\n * @returns {?Object}\n * - Returns `null` if no valid index was found. Otherwise returns drag sort\n * command.\n */\nItemDrag.defaultSortPredicate = (function () {\n var itemRect = {};\n var targetRect = {};\n var returnData = {};\n var gridsArray = [];\n var minThreshold = 1;\n var maxThreshold = 100;\n\n function getTargetGrid(item, rootGrid, threshold) {\n var target = null;\n var dragSort = rootGrid._settings.dragSort;\n var bestScore = -1;\n var gridScore;\n var grids;\n var grid;\n var container;\n var containerRect;\n var left;\n var top;\n var right;\n var bottom;\n var i;\n\n // Get potential target grids.\n if (dragSort === true) {\n gridsArray[0] = rootGrid;\n grids = gridsArray;\n } else if (isFunction(dragSort)) {\n grids = dragSort.call(rootGrid, item);\n }\n\n // Return immediately if there are no grids.\n if (!grids || !Array.isArray(grids) || !grids.length) {\n return target;\n }\n\n // Loop through the grids and get the best match.\n for (i = 0; i < grids.length; i++) {\n grid = grids[i];\n\n // Filter out all destroyed grids.\n if (grid._isDestroyed) continue;\n\n // Compute the grid's client rect an clamp the initial boundaries to\n // viewport dimensions.\n grid._updateBoundingRect();\n left = Math.max(0, grid._left);\n top = Math.max(0, grid._top);\n right = Math.min(window.innerWidth, grid._right);\n bottom = Math.min(window.innerHeight, grid._bottom);\n\n // The grid might be inside one or more elements that clip it's visibility\n // (e.g overflow scroll/hidden) so we want to find out the visible portion\n // of the grid in the viewport and use that in our calculations.\n container = grid._element.parentNode;\n while (\n container &&\n container !== document &&\n container !== document.documentElement &&\n container !== document.body\n ) {\n if (container.getRootNode && container instanceof DocumentFragment) {\n container = container.getRootNode().host;\n continue;\n }\n\n if (getStyle(container, 'overflow') !== 'visible') {\n containerRect = container.getBoundingClientRect();\n left = Math.max(left, containerRect.left);\n top = Math.max(top, containerRect.top);\n right = Math.min(right, containerRect.right);\n bottom = Math.min(bottom, containerRect.bottom);\n }\n\n if (getStyle(container, 'position') === 'fixed') {\n break;\n }\n\n container = container.parentNode;\n }\n\n // No need to go further if target rect does not have visible area.\n if (left >= right || top >= bottom) continue;\n\n // Check how much dragged element overlaps the container element.\n targetRect.left = left;\n targetRect.top = top;\n targetRect.width = right - left;\n targetRect.height = bottom - top;\n gridScore = getIntersectionScore(itemRect, targetRect);\n\n // Check if this grid is the best match so far.\n if (gridScore > threshold && gridScore > bestScore) {\n bestScore = gridScore;\n target = grid;\n }\n }\n\n // Always reset grids array.\n gridsArray.length = 0;\n\n return target;\n }\n\n return function (item, options) {\n var drag = item._drag;\n var rootGrid = drag._getGrid();\n\n // Get drag sort predicate settings.\n var sortThreshold = options && typeof options.threshold === 'number' ? options.threshold : 50;\n var sortAction = options && options.action === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n var migrateAction =\n options && options.migrateAction === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n\n // Sort threshold must be a positive number capped to a max value of 100. If\n // that's not the case this function will not work correctly. So let's clamp\n // the threshold just in case.\n sortThreshold = Math.min(Math.max(sortThreshold, minThreshold), maxThreshold);\n\n // Populate item rect data.\n itemRect.width = item._width;\n itemRect.height = item._height;\n itemRect.left = drag._clientX;\n itemRect.top = drag._clientY;\n\n // Calculate the target grid.\n var grid = getTargetGrid(item, rootGrid, sortThreshold);\n\n // Return early if we found no grid container element that overlaps the\n // dragged item enough.\n if (!grid) return null;\n\n var isMigration = item.getGrid() !== grid;\n var gridOffsetLeft = 0;\n var gridOffsetTop = 0;\n var matchScore = 0;\n var matchIndex = -1;\n var hasValidTargets = false;\n var target;\n var score;\n var i;\n\n // If item is moved within it's originating grid adjust item's left and\n // top props. Otherwise if item is moved to/within another grid get the\n // container element's offset (from the element's content edge).\n if (grid === rootGrid) {\n itemRect.left = drag._gridX + item._marginLeft;\n itemRect.top = drag._gridY + item._marginTop;\n } else {\n grid._updateBorders(1, 0, 1, 0);\n gridOffsetLeft = grid._left + grid._borderLeft;\n gridOffsetTop = grid._top + grid._borderTop;\n }\n\n // Loop through the target grid items and try to find the best match.\n for (i = 0; i < grid._items.length; i++) {\n target = grid._items[i];\n\n // If the target item is not active or the target item is the dragged\n // item let's skip to the next item.\n if (!target._isActive || target === item) {\n continue;\n }\n\n // Mark the grid as having valid target items.\n hasValidTargets = true;\n\n // Calculate the target's overlap score with the dragged item.\n targetRect.width = target._width;\n targetRect.height = target._height;\n targetRect.left = target._left + target._marginLeft + gridOffsetLeft;\n targetRect.top = target._top + target._marginTop + gridOffsetTop;\n score = getIntersectionScore(itemRect, targetRect);\n\n // Update best match index and score if the target's overlap score with\n // the dragged item is higher than the current best match score.\n if (score > matchScore) {\n matchIndex = i;\n matchScore = score;\n }\n }\n\n // If there is no valid match and the dragged item is being moved into\n // another grid we need to do some guess work here. If there simply are no\n // valid targets (which means that the dragged item will be the only active\n // item in the new grid) we can just add it as the first item. If we have\n // valid items in the new grid and the dragged item is overlapping one or\n // more of the items in the new grid let's make an exception with the\n // threshold and just pick the item which the dragged item is overlapping\n // most. However, if the dragged item is not overlapping any of the valid\n // items in the new grid let's position it as the last item in the grid.\n if (isMigration && matchScore < sortThreshold) {\n matchIndex = hasValidTargets ? matchIndex : 0;\n matchScore = sortThreshold;\n }\n\n // Check if the best match overlaps enough to justify a placement switch.\n if (matchScore >= sortThreshold) {\n returnData.grid = grid;\n returnData.index = matchIndex;\n returnData.action = isMigration ? migrateAction : sortAction;\n return returnData;\n }\n\n return null;\n };\n})();\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Abort dragging and reset drag data.\n *\n * @public\n */\nItemDrag.prototype.stop = function () {\n if (!this._isActive) return;\n\n // If the item is being dropped into another grid, finish it up and return\n // immediately.\n if (this._isMigrating) {\n this._finishMigration();\n return;\n }\n\n var item = this._item;\n var itemId = item._id;\n\n // Stop auto-scroll.\n ItemDrag.autoScroller.removeItem(item);\n\n // Cancel queued ticks.\n cancelDragStartTick(itemId);\n cancelDragMoveTick(itemId);\n cancelDragScrollTick(itemId);\n\n // Cancel sort procedure.\n this._cancelSort();\n\n if (this._isStarted) {\n // Remove scroll listeners.\n this._unbindScrollListeners();\n\n var element = item._element;\n var grid = this._getGrid();\n var draggingClass = grid._settings.itemDraggingClass;\n\n // Append item element to the container if it's not it's child. Also make\n // sure the translate values are adjusted to account for the DOM shift.\n if (element.parentNode !== grid._element) {\n grid._element.appendChild(element);\n item._setTranslate(this._gridX, this._gridY);\n\n // We need to do forced reflow to make sure the dragging class is removed\n // gracefully.\n // eslint-disable-next-line\n if (draggingClass) element.clientWidth;\n }\n\n // Remove dragging class.\n removeClass(element, draggingClass);\n }\n\n // Reset drag data.\n this._reset();\n};\n\n/**\n * Manually trigger drag sort. This is only needed for special edge cases where\n * e.g. you have disabled sort and want to trigger a sort right after enabling\n * it (and don't want to wait for the next move/scroll event).\n *\n * @private\n * @param {Boolean} [force=false]\n */\nItemDrag.prototype.sort = function (force) {\n var item = this._item;\n if (this._isActive && item._isActive && this._dragMoveEvent) {\n if (force === true) {\n this._handleSort();\n } else {\n addDragSortTick(item._id, this._handleSort);\n }\n }\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemDrag.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop();\n this._dragger.destroy();\n ItemDrag.autoScroller.removeItem(this._item);\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Get Grid instance.\n *\n * @private\n * @returns {?Grid}\n */\nItemDrag.prototype._getGrid = function () {\n return GRID_INSTANCES[this._gridId] || null;\n};\n\n/**\n * Setup/reset drag data.\n *\n * @private\n */\nItemDrag.prototype._reset = function () {\n this._isActive = false;\n this._isStarted = false;\n\n // The dragged item's container element.\n this._container = null;\n\n // The dragged item's containing block.\n this._containingBlock = null;\n\n // Drag/scroll event data.\n this._dragStartEvent = null;\n this._dragMoveEvent = null;\n this._dragPrevMoveEvent = null;\n this._scrollEvent = null;\n\n // All the elements which need to be listened for scroll events during\n // dragging.\n this._scrollers = [];\n\n // The current translateX/translateY position.\n this._left = 0;\n this._top = 0;\n\n // Dragged element's current position within the grid.\n this._gridX = 0;\n this._gridY = 0;\n\n // Dragged element's current offset from window's northwest corner. Does\n // not account for element's margins.\n this._clientX = 0;\n this._clientY = 0;\n\n // Keep track of the clientX/Y diff for scrolling.\n this._scrollDiffX = 0;\n this._scrollDiffY = 0;\n\n // Keep track of the clientX/Y diff for moving.\n this._moveDiffX = 0;\n this._moveDiffY = 0;\n\n // Offset difference between the dragged element's temporary drag\n // container and it's original container.\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n};\n\n/**\n * Bind drag scroll handlers to all scrollable ancestor elements of the\n * dragged element and the drag container element.\n *\n * @private\n */\nItemDrag.prototype._bindScrollListeners = function () {\n var gridContainer = this._getGrid()._element;\n var dragContainer = this._container;\n var scrollers = this._scrollers;\n var gridScrollers;\n var i;\n\n // Get dragged element's scrolling parents.\n scrollers.length = 0;\n getScrollableAncestors(this._item._element.parentNode, scrollers);\n\n // If drag container is defined and it's not the same element as grid\n // container then we need to add the grid container and it's scroll parents\n // to the elements which are going to be listener for scroll events.\n if (dragContainer !== gridContainer) {\n gridScrollers = [];\n getScrollableAncestors(gridContainer, gridScrollers);\n for (i = 0; i < gridScrollers.length; i++) {\n if (scrollers.indexOf(gridScrollers[i]) < 0) {\n scrollers.push(gridScrollers[i]);\n }\n }\n }\n\n // Bind scroll listeners.\n for (i = 0; i < scrollers.length; i++) {\n scrollers[i].addEventListener('scroll', this._onScroll, SCROLL_LISTENER_OPTIONS);\n }\n};\n\n/**\n * Unbind currently bound drag scroll handlers from all scrollable ancestor\n * elements of the dragged element and the drag container element.\n *\n * @private\n */\nItemDrag.prototype._unbindScrollListeners = function () {\n var scrollers = this._scrollers;\n var i;\n\n for (i = 0; i < scrollers.length; i++) {\n scrollers[i].removeEventListener('scroll', this._onScroll, SCROLL_LISTENER_OPTIONS);\n }\n\n scrollers.length = 0;\n};\n\n/**\n * Unbind currently bound drag scroll handlers from all scrollable ancestor\n * elements of the dragged element and the drag container element.\n *\n * @private\n * @param {Object} event\n * @returns {Boolean}\n */\nItemDrag.prototype._resolveStartPredicate = function (event) {\n var predicate = this._startPredicateData;\n if (event.distance < predicate.distance || predicate.delay) return;\n this._resetStartPredicate();\n return true;\n};\n\n/**\n * Forcefully resolve drag start predicate.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._forceResolveStartPredicate = function (event) {\n if (!this._isDestroyed && this._startPredicateState === START_PREDICATE_PENDING) {\n this._startPredicateState = START_PREDICATE_RESOLVED;\n this._onStart(event);\n }\n};\n\n/**\n * Finalize start predicate.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._finishStartPredicate = function (event) {\n var element = this._item._element;\n\n // Check if this is a click (very subjective heuristics).\n var isClick = Math.abs(event.deltaX) < 2 && Math.abs(event.deltaY) < 2 && event.deltaTime < 200;\n\n // Reset predicate.\n this._resetStartPredicate();\n\n // If the gesture can be interpreted as click let's try to open the element's\n // href url (if it is an anchor element).\n if (isClick) openAnchorHref(element);\n};\n\n/**\n * Reset drag sort heuristics.\n *\n * @private\n * @param {Number} x\n * @param {Number} y\n */\nItemDrag.prototype._resetHeuristics = function (x, y) {\n this._blockedSortIndex = null;\n this._sortX1 = this._sortX2 = x;\n this._sortY1 = this._sortY2 = y;\n};\n\n/**\n * Run heuristics and return true if overlap check can be performed, and false\n * if it can not.\n *\n * @private\n * @param {Number} x\n * @param {Number} y\n * @returns {Boolean}\n */\nItemDrag.prototype._checkHeuristics = function (x, y) {\n var settings = this._getGrid()._settings.dragSortHeuristics;\n var minDist = settings.minDragDistance;\n\n // Skip heuristics if not needed.\n if (minDist <= 0) {\n this._blockedSortIndex = null;\n return true;\n }\n\n var diffX = x - this._sortX2;\n var diffY = y - this._sortY2;\n\n // If we can't do proper bounce back check make sure that the blocked index\n // is not set.\n var canCheckBounceBack = minDist > 3 && settings.minBounceBackAngle > 0;\n if (!canCheckBounceBack) {\n this._blockedSortIndex = null;\n }\n\n if (Math.abs(diffX) > minDist || Math.abs(diffY) > minDist) {\n // Reset blocked index if angle changed enough. This check requires a\n // minimum value of 3 for minDragDistance to function properly.\n if (canCheckBounceBack) {\n var angle = Math.atan2(diffX, diffY);\n var prevAngle = Math.atan2(this._sortX2 - this._sortX1, this._sortY2 - this._sortY1);\n var deltaAngle = Math.atan2(Math.sin(angle - prevAngle), Math.cos(angle - prevAngle));\n if (Math.abs(deltaAngle) > settings.minBounceBackAngle) {\n this._blockedSortIndex = null;\n }\n }\n\n // Update points.\n this._sortX1 = this._sortX2;\n this._sortY1 = this._sortY2;\n this._sortX2 = x;\n this._sortY2 = y;\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Reset for default drag start predicate function.\n *\n * @private\n */\nItemDrag.prototype._resetStartPredicate = function () {\n var predicate = this._startPredicateData;\n if (predicate) {\n if (predicate.delayTimer) {\n predicate.delayTimer = window.clearTimeout(predicate.delayTimer);\n }\n this._startPredicateData = null;\n }\n};\n\n/**\n * Handle the sorting procedure. Manage drag sort heuristics/interval and\n * check overlap when necessary.\n *\n * @private\n */\nItemDrag.prototype._handleSort = function () {\n if (!this._isActive) return;\n\n var settings = this._getGrid()._settings;\n\n // No sorting when drag sort is disabled. Also, account for the scenario where\n // dragSort is temporarily disabled during drag procedure so we need to reset\n // sort timer heuristics state too.\n if (\n !settings.dragSort ||\n (!settings.dragAutoScroll.sortDuringScroll && ItemDrag.autoScroller.isItemScrolling(this._item))\n ) {\n this._sortX1 = this._sortX2 = this._gridX;\n this._sortY1 = this._sortY2 = this._gridY;\n // We set this to true intentionally so that overlap check would be\n // triggered as soon as possible after sort becomes enabled again.\n this._isSortNeeded = true;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n return;\n }\n\n // If sorting is enabled we always need to run the heuristics check to keep\n // the tracked coordinates updated. We also allow an exception when the sort\n // timer is finished because the heuristics are intended to prevent overlap\n // checks based on the dragged element's immediate movement and a delayed\n // overlap check is valid if it comes through, because it was valid when it\n // was invoked.\n var shouldSort = this._checkHeuristics(this._gridX, this._gridY);\n if (!this._isSortNeeded && !shouldSort) return;\n\n var sortInterval = settings.dragSortHeuristics.sortInterval;\n if (sortInterval <= 0 || this._isSortNeeded) {\n this._isSortNeeded = false;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n this._checkOverlap();\n } else if (this._sortTimer === undefined) {\n this._sortTimer = window.setTimeout(this._handleSortDelayed, sortInterval);\n }\n};\n\n/**\n * Delayed sort handler.\n *\n * @private\n */\nItemDrag.prototype._handleSortDelayed = function () {\n this._isSortNeeded = true;\n this._sortTimer = undefined;\n addDragSortTick(this._item._id, this._handleSort);\n};\n\n/**\n * Cancel and reset sort procedure.\n *\n * @private\n */\nItemDrag.prototype._cancelSort = function () {\n this._isSortNeeded = false;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n cancelDragSortTick(this._item._id);\n};\n\n/**\n * Handle the ending of the drag procedure for sorting.\n *\n * @private\n */\nItemDrag.prototype._finishSort = function () {\n var isSortEnabled = this._getGrid()._settings.dragSort;\n var needsFinalCheck = isSortEnabled && (this._isSortNeeded || this._sortTimer !== undefined);\n this._cancelSort();\n if (needsFinalCheck) this._checkOverlap();\n};\n\n/**\n * Check (during drag) if an item is overlapping other items and based on\n * the configuration layout the items.\n *\n * @private\n */\nItemDrag.prototype._checkOverlap = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n var settings = this._getGrid()._settings;\n var result;\n var currentGrid;\n var currentIndex;\n var targetGrid;\n var targetIndex;\n var targetItem;\n var sortAction;\n var isMigration;\n\n // Get overlap check result.\n if (isFunction(settings.dragSortPredicate)) {\n result = settings.dragSortPredicate(item, this._dragMoveEvent);\n } else {\n result = ItemDrag.defaultSortPredicate(item, settings.dragSortPredicate);\n }\n\n // Let's make sure the result object has a valid index before going further.\n if (!result || typeof result.index !== 'number') return;\n\n sortAction = result.action === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n currentGrid = item.getGrid();\n targetGrid = result.grid || currentGrid;\n isMigration = currentGrid !== targetGrid;\n currentIndex = currentGrid._items.indexOf(item);\n targetIndex = normalizeArrayIndex(\n targetGrid._items,\n result.index,\n isMigration && sortAction === ACTION_MOVE ? 1 : 0\n );\n\n // Prevent position bounce.\n if (!isMigration && targetIndex === this._blockedSortIndex) {\n return;\n }\n\n // If the item was moved within it's current grid.\n if (!isMigration) {\n // Make sure the target index is not the current index.\n if (currentIndex !== targetIndex) {\n this._blockedSortIndex = currentIndex;\n\n // Do the sort.\n (sortAction === ACTION_SWAP ? arraySwap : arrayMove)(\n currentGrid._items,\n currentIndex,\n targetIndex\n );\n\n // Emit move event.\n if (currentGrid._hasListeners(EVENT_MOVE)) {\n currentGrid._emit(EVENT_MOVE, {\n item: item,\n fromIndex: currentIndex,\n toIndex: targetIndex,\n action: sortAction,\n });\n }\n\n // Layout the grid.\n currentGrid.layout();\n }\n }\n\n // If the item was moved to another grid.\n else {\n this._blockedSortIndex = null;\n\n // Let's fetch the target item when it's still in it's original index.\n targetItem = targetGrid._items[targetIndex];\n\n // Emit beforeSend event.\n if (currentGrid._hasListeners(EVENT_BEFORE_SEND)) {\n currentGrid._emit(EVENT_BEFORE_SEND, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit beforeReceive event.\n if (targetGrid._hasListeners(EVENT_BEFORE_RECEIVE)) {\n targetGrid._emit(EVENT_BEFORE_RECEIVE, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Update item's grid id reference.\n item._gridId = targetGrid._id;\n\n // Update drag instance's migrating indicator.\n this._isMigrating = item._gridId !== this._gridId;\n\n // Move item instance from current grid to target grid.\n currentGrid._items.splice(currentIndex, 1);\n arrayInsert(targetGrid._items, item, targetIndex);\n\n // Reset sort data.\n item._sortData = null;\n\n // Emit send event.\n if (currentGrid._hasListeners(EVENT_SEND)) {\n currentGrid._emit(EVENT_SEND, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit receive event.\n if (targetGrid._hasListeners(EVENT_RECEIVE)) {\n targetGrid._emit(EVENT_RECEIVE, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // If the sort action is \"swap\" let's respect it and send the target item\n // (if it exists) from the target grid to the originating grid. This process\n // is done on purpose after the dragged item placed within the target grid\n // so that we can keep this implementation as simple as possible utilizing\n // the existing API.\n if (sortAction === ACTION_SWAP && targetItem && targetItem.isActive()) {\n // Sanity check to make sure that the target item is still part of the\n // target grid. It could have been manipulated in the event handlers.\n if (targetGrid._items.indexOf(targetItem) > -1) {\n targetGrid.send(targetItem, currentGrid, currentIndex, {\n appendTo: this._container || document.body,\n layoutSender: false,\n layoutReceiver: false,\n });\n }\n }\n\n // Layout both grids.\n currentGrid.layout();\n targetGrid.layout();\n }\n};\n\n/**\n * If item is dragged into another grid, finish the migration process\n * gracefully.\n *\n * @private\n */\nItemDrag.prototype._finishMigration = function () {\n var item = this._item;\n var release = item._dragRelease;\n var element = item._element;\n var isActive = item._isActive;\n var targetGrid = item.getGrid();\n var targetGridElement = targetGrid._element;\n var targetSettings = targetGrid._settings;\n var targetContainer = targetSettings.dragContainer || targetGridElement;\n var currentSettings = this._getGrid()._settings;\n var currentContainer = element.parentNode;\n var currentVisClass = isActive\n ? currentSettings.itemVisibleClass\n : currentSettings.itemHiddenClass;\n var nextVisClass = isActive ? targetSettings.itemVisibleClass : targetSettings.itemHiddenClass;\n var translate;\n var offsetDiff;\n\n // Destroy current drag. Note that we need to set the migrating flag to\n // false first, because otherwise we create an infinite loop between this\n // and the drag.stop() method.\n this._isMigrating = false;\n this.destroy();\n\n // Update item class.\n if (currentSettings.itemClass !== targetSettings.itemClass) {\n removeClass(element, currentSettings.itemClass);\n addClass(element, targetSettings.itemClass);\n }\n\n // Update visibility class.\n if (currentVisClass !== nextVisClass) {\n removeClass(element, currentVisClass);\n addClass(element, nextVisClass);\n }\n\n // Move the item inside the target container if it's different than the\n // current container.\n if (targetContainer !== currentContainer) {\n targetContainer.appendChild(element);\n offsetDiff = getOffsetDiff(currentContainer, targetContainer, true);\n translate = getTranslate(element);\n translate.x -= offsetDiff.left;\n translate.y -= offsetDiff.top;\n }\n\n // Update item's cached dimensions.\n item._refreshDimensions();\n\n // Calculate the offset difference between target's drag container (if any)\n // and actual grid container element. We save it later for the release\n // process.\n offsetDiff = getOffsetDiff(targetContainer, targetGridElement, true);\n release._containerDiffX = offsetDiff.left;\n release._containerDiffY = offsetDiff.top;\n\n // Recreate item's drag handler.\n item._drag = targetSettings.dragEnabled ? new ItemDrag(item) : null;\n\n // Adjust the position of the item element if it was moved from a container\n // to another.\n if (targetContainer !== currentContainer) {\n item._setTranslate(translate.x, translate.y);\n }\n\n // Update child element's styles to reflect the current visibility state.\n item._visibility.setStyles(isActive ? targetSettings.visibleStyles : targetSettings.hiddenStyles);\n\n // Start the release.\n release.start();\n};\n\n/**\n * Drag pre-start handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._preStartCheck = function (event) {\n // Let's activate drag start predicate state.\n if (this._startPredicateState === START_PREDICATE_INACTIVE) {\n this._startPredicateState = START_PREDICATE_PENDING;\n }\n\n // If predicate is pending try to resolve it.\n if (this._startPredicateState === START_PREDICATE_PENDING) {\n this._startPredicateResult = this._startPredicate(this._item, event);\n if (this._startPredicateResult === true) {\n this._startPredicateState = START_PREDICATE_RESOLVED;\n this._onStart(event);\n } else if (this._startPredicateResult === false) {\n this._resetStartPredicate(event);\n this._dragger._reset();\n this._startPredicateState = START_PREDICATE_INACTIVE;\n }\n }\n\n // Otherwise if predicate is resolved and drag is active, move the item.\n else if (this._startPredicateState === START_PREDICATE_RESOLVED && this._isActive) {\n this._onMove(event);\n }\n};\n\n/**\n * Drag pre-end handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._preEndCheck = function (event) {\n var isResolved = this._startPredicateState === START_PREDICATE_RESOLVED;\n\n // Do final predicate check to allow user to unbind stuff for the current\n // drag procedure within the predicate callback. The return value of this\n // check will have no effect to the state of the predicate.\n this._startPredicate(this._item, event);\n\n this._startPredicateState = START_PREDICATE_INACTIVE;\n\n if (!isResolved || !this._isActive) return;\n\n if (this._isStarted) {\n this._onEnd(event);\n } else {\n this.stop();\n }\n};\n\n/**\n * Drag start handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onStart = function (event) {\n var item = this._item;\n if (!item._isActive) return;\n\n this._isActive = true;\n this._dragStartEvent = event;\n ItemDrag.autoScroller.addItem(item);\n\n addDragStartTick(item._id, this._prepareStart, this._applyStart);\n};\n\n/**\n * Prepare item to be dragged.\n *\n * @private\n * ItemDrag.prototype\n */\nItemDrag.prototype._prepareStart = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var element = item._element;\n var grid = this._getGrid();\n var settings = grid._settings;\n var gridContainer = grid._element;\n var dragContainer = settings.dragContainer || gridContainer;\n var containingBlock = getContainingBlock(dragContainer);\n var translate = getTranslate(element);\n var elementRect = element.getBoundingClientRect();\n var hasDragContainer = dragContainer !== gridContainer;\n\n this._container = dragContainer;\n this._containingBlock = containingBlock;\n this._clientX = elementRect.left;\n this._clientY = elementRect.top;\n this._left = this._gridX = translate.x;\n this._top = this._gridY = translate.y;\n this._scrollDiffX = this._scrollDiffY = 0;\n this._moveDiffX = this._moveDiffY = 0;\n\n this._resetHeuristics(this._gridX, this._gridY);\n\n // If a specific drag container is set and it is different from the\n // grid's container element we store the offset between containers.\n if (hasDragContainer) {\n var offsetDiff = getOffsetDiff(containingBlock, gridContainer);\n this._containerDiffX = offsetDiff.left;\n this._containerDiffY = offsetDiff.top;\n }\n};\n\n/**\n * Start drag for the item.\n *\n * @private\n */\nItemDrag.prototype._applyStart = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var grid = this._getGrid();\n var element = item._element;\n var release = item._dragRelease;\n var migrate = item._migrate;\n var hasDragContainer = this._container !== grid._element;\n\n if (item.isPositioning()) {\n item._layout.stop(true, this._left, this._top);\n }\n\n if (migrate._isActive) {\n this._left -= migrate._containerDiffX;\n this._top -= migrate._containerDiffY;\n this._gridX -= migrate._containerDiffX;\n this._gridY -= migrate._containerDiffY;\n migrate.stop(true, this._left, this._top);\n }\n\n if (item.isReleasing()) {\n release._reset();\n }\n\n if (grid._settings.dragPlaceholder.enabled) {\n item._dragPlaceholder.create();\n }\n\n this._isStarted = true;\n\n grid._emit(EVENT_DRAG_INIT, item, this._dragStartEvent);\n\n if (hasDragContainer) {\n // If the dragged element is a child of the drag container all we need to\n // do is setup the relative drag position data.\n if (element.parentNode === this._container) {\n this._gridX -= this._containerDiffX;\n this._gridY -= this._containerDiffY;\n }\n // Otherwise we need to append the element inside the correct container,\n // setup the actual drag position data and adjust the element's translate\n // values to account for the DOM position shift.\n else {\n this._left += this._containerDiffX;\n this._top += this._containerDiffY;\n this._container.appendChild(element);\n item._setTranslate(this._left, this._top);\n }\n }\n\n addClass(element, grid._settings.itemDraggingClass);\n this._bindScrollListeners();\n grid._emit(EVENT_DRAG_START, item, this._dragStartEvent);\n};\n\n/**\n * Drag move handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onMove = function (event) {\n var item = this._item;\n\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n this._dragMoveEvent = event;\n addDragMoveTick(item._id, this._prepareMove, this._applyMove);\n addDragSortTick(item._id, this._handleSort);\n};\n\n/**\n * Prepare dragged item for moving.\n *\n * @private\n */\nItemDrag.prototype._prepareMove = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var settings = this._getGrid()._settings;\n var axis = settings.dragAxis;\n var nextEvent = this._dragMoveEvent;\n var prevEvent = this._dragPrevMoveEvent || this._dragStartEvent || nextEvent;\n\n // Update horizontal position data.\n if (axis !== 'y') {\n var moveDiffX = nextEvent.clientX - prevEvent.clientX;\n this._left = this._left - this._moveDiffX + moveDiffX;\n this._gridX = this._gridX - this._moveDiffX + moveDiffX;\n this._clientX = this._clientX - this._moveDiffX + moveDiffX;\n this._moveDiffX = moveDiffX;\n }\n\n // Update vertical position data.\n if (axis !== 'x') {\n var moveDiffY = nextEvent.clientY - prevEvent.clientY;\n this._top = this._top - this._moveDiffY + moveDiffY;\n this._gridY = this._gridY - this._moveDiffY + moveDiffY;\n this._clientY = this._clientY - this._moveDiffY + moveDiffY;\n this._moveDiffY = moveDiffY;\n }\n\n this._dragPrevMoveEvent = nextEvent;\n};\n\n/**\n * Apply movement to dragged item.\n *\n * @private\n */\nItemDrag.prototype._applyMove = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n this._moveDiffX = this._moveDiffY = 0;\n item._setTranslate(this._left, this._top);\n this._getGrid()._emit(EVENT_DRAG_MOVE, item, this._dragMoveEvent);\n ItemDrag.autoScroller.updateItem(item);\n};\n\n/**\n * Drag scroll handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onScroll = function (event) {\n var item = this._item;\n\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n this._scrollEvent = event;\n addDragScrollTick(item._id, this._prepareScroll, this._applyScroll);\n addDragSortTick(item._id, this._handleSort);\n};\n\n/**\n * Prepare dragged item for scrolling.\n *\n * @private\n */\nItemDrag.prototype._prepareScroll = function () {\n if (!this._isActive) return;\n\n // If item is not active do nothing.\n var item = this._item;\n if (!item._isActive) return;\n\n var element = item._element;\n var grid = this._getGrid();\n var gridContainer = grid._element;\n var rect = element.getBoundingClientRect();\n\n // Update container diff.\n if (this._container !== gridContainer) {\n var offsetDiff = getOffsetDiff(this._containingBlock, gridContainer);\n this._containerDiffX = offsetDiff.left;\n this._containerDiffY = offsetDiff.top;\n }\n\n // Update horizontal position data.\n var scrollDiffX = this._clientX - this._moveDiffX - rect.left;\n this._left = this._left - this._scrollDiffX + scrollDiffX;\n this._scrollDiffX = scrollDiffX;\n\n // Update vertical position data.\n var scrollDiffY = this._clientY - this._moveDiffY - rect.top;\n this._top = this._top - this._scrollDiffY + scrollDiffY;\n this._scrollDiffY = scrollDiffY;\n\n // Update grid position.\n this._gridX = this._left - this._containerDiffX;\n this._gridY = this._top - this._containerDiffY;\n};\n\n/**\n * Apply scroll to dragged item.\n *\n * @private\n */\nItemDrag.prototype._applyScroll = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n this._scrollDiffX = this._scrollDiffY = 0;\n item._setTranslate(this._left, this._top);\n this._getGrid()._emit(EVENT_DRAG_SCROLL, item, this._scrollEvent);\n};\n\n/**\n * Drag end handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onEnd = function (event) {\n var item = this._item;\n var element = item._element;\n var grid = this._getGrid();\n var settings = grid._settings;\n var release = item._dragRelease;\n\n // If item is not active, reset drag.\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n // Cancel queued ticks.\n cancelDragStartTick(item._id);\n cancelDragMoveTick(item._id);\n cancelDragScrollTick(item._id);\n\n // Finish sort procedure (does final overlap check if needed).\n this._finishSort();\n\n // Remove scroll listeners.\n this._unbindScrollListeners();\n\n // Setup release data.\n release._containerDiffX = this._containerDiffX;\n release._containerDiffY = this._containerDiffY;\n\n // Reset drag data.\n this._reset();\n\n // Remove drag class name from element.\n removeClass(element, settings.itemDraggingClass);\n\n // Stop auto-scroll.\n ItemDrag.autoScroller.removeItem(item);\n\n // Emit dragEnd event.\n grid._emit(EVENT_DRAG_END, item, event);\n\n // Finish up the migration process or start the release process.\n this._isMigrating ? this._finishMigration() : release.start();\n};\n\n/**\n * Private helpers\n * ***************\n */\n\n/**\n * Check if an element is an anchor element and open the href url if possible.\n *\n * @param {HTMLElement} element\n */\nfunction openAnchorHref(element) {\n // Make sure the element is anchor element.\n if (element.tagName.toLowerCase() !== 'a') return;\n\n // Get href and make sure it exists.\n var href = element.getAttribute('href');\n if (!href) return;\n\n // Finally let's navigate to the link href.\n var target = element.getAttribute('target');\n if (target && target !== '_self') {\n window.open(href, target);\n } else {\n window.location.href = href;\n }\n}\n\n/**\n * Get current values of the provided styles definition object or array.\n *\n * @param {HTMLElement} element\n * @param {(Object|Array} styles\n * @return {Object}\n */\nfunction getCurrentStyles(element, styles) {\n var result = {};\n var prop, i;\n\n if (Array.isArray(styles)) {\n for (i = 0; i < styles.length; i++) {\n prop = styles[i];\n result[prop] = getStyle(element, getStyleName(prop));\n }\n } else {\n for (prop in styles) {\n result[prop] = getStyle(element, getStyleName(prop));\n }\n }\n\n return result;\n}\n\nvar unprefixRegEx = /^(webkit|moz|ms|o|Webkit|Moz|MS|O)(?=[A-Z])/;\nvar cache = {};\n\n/**\n * Remove any potential vendor prefixes from a property name.\n *\n * @param {String} prop\n * @returns {String}\n */\nfunction getUnprefixedPropName(prop) {\n var result = cache[prop];\n if (result) return result;\n\n result = prop.replace(unprefixRegEx, '');\n\n if (result !== prop) {\n result = result[0].toLowerCase() + result.slice(1);\n }\n\n cache[prop] = result;\n\n return result;\n}\n\nvar nativeCode = '[native code]';\n\n/**\n * Check if a value (e.g. a method or constructor) is native code. Good for\n * detecting when a polyfill is used and when not.\n *\n * @param {*} feat\n * @returns {Boolean}\n */\nfunction isNative(feat) {\n var S = window.Symbol;\n return !!(\n feat &&\n isFunction(S) &&\n isFunction(S.toString) &&\n S(feat).toString().indexOf(nativeCode) > -1\n );\n}\n\n/**\n * Set inline styles to an element.\n *\n * @param {HTMLElement} element\n * @param {Object} styles\n */\nfunction setStyles(element, styles) {\n for (var prop in styles) {\n element.style[prop] = styles[prop];\n }\n}\n\nvar HAS_WEB_ANIMATIONS = !!(Element && isFunction(Element.prototype.animate));\nvar HAS_NATIVE_WEB_ANIMATIONS = !!(Element && isNative(Element.prototype.animate));\n\n/**\n * Item animation handler powered by Web Animations API.\n *\n * @class\n * @param {HTMLElement} element\n */\nfunction Animator(element) {\n this._element = element;\n this._animation = null;\n this._duration = 0;\n this._easing = '';\n this._callback = null;\n this._props = [];\n this._values = [];\n this._isDestroyed = false;\n this._onFinish = this._onFinish.bind(this);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start instance's animation. Automatically stops current animation if it is\n * running.\n *\n * @public\n * @param {Object} propsFrom\n * @param {Object} propsTo\n * @param {Object} [options]\n * @param {Number} [options.duration=300]\n * @param {String} [options.easing='ease']\n * @param {Function} [options.onFinish]\n */\nAnimator.prototype.start = function (propsFrom, propsTo, options) {\n if (this._isDestroyed) return;\n\n var element = this._element;\n var opts = options || {};\n\n // If we don't have web animations available let's not animate.\n if (!HAS_WEB_ANIMATIONS) {\n setStyles(element, propsTo);\n this._callback = isFunction(opts.onFinish) ? opts.onFinish : null;\n this._onFinish();\n return;\n }\n\n var animation = this._animation;\n var currentProps = this._props;\n var currentValues = this._values;\n var duration = opts.duration || 300;\n var easing = opts.easing || 'ease';\n var cancelAnimation = false;\n var propName, propCount, propIndex;\n\n // If we have an existing animation running, let's check if it needs to be\n // cancelled or if it can continue running.\n if (animation) {\n propCount = 0;\n\n // Cancel animation if duration or easing has changed.\n if (duration !== this._duration || easing !== this._easing) {\n cancelAnimation = true;\n }\n\n // Check if the requested animation target props and values match with the\n // current props and values.\n if (!cancelAnimation) {\n for (propName in propsTo) {\n ++propCount;\n propIndex = currentProps.indexOf(propName);\n if (propIndex === -1 || propsTo[propName] !== currentValues[propIndex]) {\n cancelAnimation = true;\n break;\n }\n }\n\n // Check if the target props count matches current props count. This is\n // needed for the edge case scenario where target props contain the same\n // styles as current props, but the current props have some additional\n // props.\n if (propCount !== currentProps.length) {\n cancelAnimation = true;\n }\n }\n }\n\n // Cancel animation (if required).\n if (cancelAnimation) animation.cancel();\n\n // Store animation callback.\n this._callback = isFunction(opts.onFinish) ? opts.onFinish : null;\n\n // If we have a running animation that does not need to be cancelled, let's\n // call it a day here and let it run.\n if (animation && !cancelAnimation) return;\n\n // Store target props and values to instance.\n currentProps.length = currentValues.length = 0;\n for (propName in propsTo) {\n currentProps.push(propName);\n currentValues.push(propsTo[propName]);\n }\n\n // Start the animation. We need to provide unprefixed property names to the\n // Web Animations polyfill if it is being used. If we have native Web\n // Animations available we need to provide prefixed properties instead.\n this._duration = duration;\n this._easing = easing;\n this._animation = element.animate(\n [\n createFrame(propsFrom, HAS_NATIVE_WEB_ANIMATIONS),\n createFrame(propsTo, HAS_NATIVE_WEB_ANIMATIONS),\n ],\n {\n duration: duration,\n easing: easing,\n }\n );\n this._animation.onfinish = this._onFinish;\n\n // Set the end styles. This makes sure that the element stays at the end\n // values after animation is finished.\n setStyles(element, propsTo);\n};\n\n/**\n * Stop instance's current animation if running.\n *\n * @public\n */\nAnimator.prototype.stop = function () {\n if (this._isDestroyed || !this._animation) return;\n this._animation.cancel();\n this._animation = this._callback = null;\n this._props.length = this._values.length = 0;\n};\n\n/**\n * Read the current values of the element's animated styles from the DOM.\n *\n * @public\n * @return {Object}\n */\nAnimator.prototype.getCurrentStyles = function () {\n return getCurrentStyles(element, currentProps);\n};\n\n/**\n * Check if the item is being animated currently.\n *\n * @public\n * @return {Boolean}\n */\nAnimator.prototype.isAnimating = function () {\n return !!this._animation;\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nAnimator.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop();\n this._element = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Animation end handler.\n *\n * @private\n */\nAnimator.prototype._onFinish = function () {\n var callback = this._callback;\n this._animation = this._callback = null;\n this._props.length = this._values.length = 0;\n callback && callback();\n};\n\n/**\n * Private helpers\n * ***************\n */\n\nfunction createFrame(props, prefix) {\n var frame = {};\n for (var prop in props) {\n frame[prefix ? prop : getUnprefixedPropName(prop)] = props[prop];\n }\n return frame;\n}\n\n/**\n * Transform translateX and translateY value into CSS transform style\n * property's value.\n *\n * @param {Number} x\n * @param {Number} y\n * @returns {String}\n */\nfunction getTranslateString(x, y) {\n return 'translateX(' + x + 'px) translateY(' + y + 'px)';\n}\n\n/**\n * Drag placeholder.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDragPlaceholder(item) {\n this._item = item;\n this._animation = new Animator();\n this._element = null;\n this._className = '';\n this._didMigrate = false;\n this._resetAfterLayout = false;\n this._left = 0;\n this._top = 0;\n this._transX = 0;\n this._transY = 0;\n this._nextTransX = 0;\n this._nextTransY = 0;\n\n // Bind animation handlers.\n this._setupAnimation = this._setupAnimation.bind(this);\n this._startAnimation = this._startAnimation.bind(this);\n this._updateDimensions = this._updateDimensions.bind(this);\n\n // Bind event handlers.\n this._onLayoutStart = this._onLayoutStart.bind(this);\n this._onLayoutEnd = this._onLayoutEnd.bind(this);\n this._onReleaseEnd = this._onReleaseEnd.bind(this);\n this._onMigrate = this._onMigrate.bind(this);\n this._onHide = this._onHide.bind(this);\n}\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Update placeholder's dimensions to match the item's dimensions.\n *\n * @private\n */\nItemDragPlaceholder.prototype._updateDimensions = function () {\n if (!this.isActive()) return;\n setStyles(this._element, {\n width: this._item._width + 'px',\n height: this._item._height + 'px',\n });\n};\n\n/**\n * Move placeholder to a new position.\n *\n * @private\n * @param {Item[]} items\n * @param {Boolean} isInstant\n */\nItemDragPlaceholder.prototype._onLayoutStart = function (items, isInstant) {\n var item = this._item;\n\n // If the item is not part of the layout anymore reset placeholder.\n if (items.indexOf(item) === -1) {\n this.reset();\n return;\n }\n\n var nextLeft = item._left;\n var nextTop = item._top;\n var currentLeft = this._left;\n var currentTop = this._top;\n\n // Keep track of item layout position.\n this._left = nextLeft;\n this._top = nextTop;\n\n // If item's position did not change, and the item did not migrate and the\n // layout is not instant and we can safely skip layout.\n if (!isInstant && !this._didMigrate && currentLeft === nextLeft && currentTop === nextTop) {\n return;\n }\n\n // Slots data is calculated with item margins added to them so we need to add\n // item's left and top margin to the slot data to get the placeholder's\n // next position.\n var nextX = nextLeft + item._marginLeft;\n var nextY = nextTop + item._marginTop;\n\n // Just snap to new position without any animations if no animation is\n // required or if placeholder moves between grids.\n var grid = item.getGrid();\n var animEnabled = !isInstant && grid._settings.layoutDuration > 0;\n if (!animEnabled || this._didMigrate) {\n // Cancel potential (queued) layout tick.\n cancelPlaceholderLayoutTick(item._id);\n\n // Snap placeholder to correct position.\n this._element.style[transformProp] = getTranslateString(nextX, nextY);\n this._animation.stop();\n\n // Move placeholder inside correct container after migration.\n if (this._didMigrate) {\n grid.getElement().appendChild(this._element);\n this._didMigrate = false;\n }\n\n return;\n }\n\n // Start the placeholder's layout animation in the next tick. We do this to\n // avoid layout thrashing.\n this._nextTransX = nextX;\n this._nextTransY = nextY;\n addPlaceholderLayoutTick(item._id, this._setupAnimation, this._startAnimation);\n};\n\n/**\n * Prepare placeholder for layout animation.\n *\n * @private\n */\nItemDragPlaceholder.prototype._setupAnimation = function () {\n if (!this.isActive()) return;\n\n var translate = getTranslate(this._element);\n this._transX = translate.x;\n this._transY = translate.y;\n};\n\n/**\n * Start layout animation.\n *\n * @private\n */\nItemDragPlaceholder.prototype._startAnimation = function () {\n if (!this.isActive()) return;\n\n var animation = this._animation;\n var currentX = this._transX;\n var currentY = this._transY;\n var nextX = this._nextTransX;\n var nextY = this._nextTransY;\n\n // If placeholder is already in correct position let's just stop animation\n // and be done with it.\n if (currentX === nextX && currentY === nextY) {\n if (animation.isAnimating()) {\n this._element.style[transformProp] = getTranslateString(nextX, nextY);\n animation.stop();\n }\n return;\n }\n\n // Otherwise let's start the animation.\n var settings = this._item.getGrid()._settings;\n var currentStyles = {};\n var targetStyles = {};\n currentStyles[transformProp] = getTranslateString(currentX, currentY);\n targetStyles[transformProp] = getTranslateString(nextX, nextY);\n animation.start(currentStyles, targetStyles, {\n duration: settings.layoutDuration,\n easing: settings.layoutEasing,\n onFinish: this._onLayoutEnd,\n });\n};\n\n/**\n * Layout end handler.\n *\n * @private\n */\nItemDragPlaceholder.prototype._onLayoutEnd = function () {\n if (this._resetAfterLayout) {\n this.reset();\n }\n};\n\n/**\n * Drag end handler. This handler is called when dragReleaseEnd event is\n * emitted and receives the event data as it's argument.\n *\n * @private\n * @param {Item} item\n */\nItemDragPlaceholder.prototype._onReleaseEnd = function (item) {\n if (item._id === this._item._id) {\n // If the placeholder is not animating anymore we can safely reset it.\n if (!this._animation.isAnimating()) {\n this.reset();\n return;\n }\n\n // If the placeholder item is still animating here, let's wait for it to\n // finish it's animation.\n this._resetAfterLayout = true;\n }\n};\n\n/**\n * Migration start handler. This handler is called when beforeSend event is\n * emitted and receives the event data as it's argument.\n *\n * @private\n * @param {Object} data\n * @param {Item} data.item\n * @param {Grid} data.fromGrid\n * @param {Number} data.fromIndex\n * @param {Grid} data.toGrid\n * @param {Number} data.toIndex\n */\nItemDragPlaceholder.prototype._onMigrate = function (data) {\n // Make sure we have a matching item.\n if (data.item !== this._item) return;\n\n var grid = this._item.getGrid();\n var nextGrid = data.toGrid;\n\n // Unbind listeners from current grid.\n grid.off(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.off(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.off(EVENT_BEFORE_SEND, this._onMigrate);\n grid.off(EVENT_HIDE_START, this._onHide);\n\n // Bind listeners to the next grid.\n nextGrid.on(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n nextGrid.on(EVENT_LAYOUT_START, this._onLayoutStart);\n nextGrid.on(EVENT_BEFORE_SEND, this._onMigrate);\n nextGrid.on(EVENT_HIDE_START, this._onHide);\n\n // Mark the item as migrated.\n this._didMigrate = true;\n};\n\n/**\n * Reset placeholder if the associated item is hidden.\n *\n * @private\n * @param {Item[]} items\n */\nItemDragPlaceholder.prototype._onHide = function (items) {\n if (items.indexOf(this._item) > -1) this.reset();\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Create placeholder. Note that this method only writes to DOM and does not\n * read anything from DOM so it should not cause any additional layout\n * thrashing when it's called at the end of the drag start procedure.\n *\n * @public\n */\nItemDragPlaceholder.prototype.create = function () {\n // If we already have placeholder set up we can skip the initiation logic.\n if (this.isActive()) {\n this._resetAfterLayout = false;\n return;\n }\n\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n var animation = this._animation;\n\n // Keep track of layout position.\n this._left = item._left;\n this._top = item._top;\n\n // Create placeholder element.\n var element;\n if (isFunction(settings.dragPlaceholder.createElement)) {\n element = settings.dragPlaceholder.createElement(item);\n } else {\n element = document.createElement('div');\n }\n this._element = element;\n\n // Update element to animation instance.\n animation._element = element;\n\n // Add placeholder class to the placeholder element.\n this._className = settings.itemPlaceholderClass || '';\n if (this._className) {\n addClass(element, this._className);\n }\n\n // Set initial styles.\n setStyles(element, {\n position: 'absolute',\n left: '0px',\n top: '0px',\n width: item._width + 'px',\n height: item._height + 'px',\n });\n\n // Set initial position.\n element.style[transformProp] = getTranslateString(\n item._left + item._marginLeft,\n item._top + item._marginTop\n );\n\n // Bind event listeners.\n grid.on(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.on(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.on(EVENT_BEFORE_SEND, this._onMigrate);\n grid.on(EVENT_HIDE_START, this._onHide);\n\n // onCreate hook.\n if (isFunction(settings.dragPlaceholder.onCreate)) {\n settings.dragPlaceholder.onCreate(item, element);\n }\n\n // Insert the placeholder element to the grid.\n grid.getElement().appendChild(element);\n};\n\n/**\n * Reset placeholder data.\n *\n * @public\n */\nItemDragPlaceholder.prototype.reset = function () {\n if (!this.isActive()) return;\n\n var element = this._element;\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n var animation = this._animation;\n\n // Reset flag.\n this._resetAfterLayout = false;\n\n // Cancel potential (queued) layout tick.\n cancelPlaceholderLayoutTick(item._id);\n cancelPlaceholderResizeTick(item._id);\n\n // Reset animation instance.\n animation.stop();\n animation._element = null;\n\n // Unbind event listeners.\n grid.off(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.off(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.off(EVENT_BEFORE_SEND, this._onMigrate);\n grid.off(EVENT_HIDE_START, this._onHide);\n\n // Remove placeholder class from the placeholder element.\n if (this._className) {\n removeClass(element, this._className);\n this._className = '';\n }\n\n // Remove element.\n element.parentNode.removeChild(element);\n this._element = null;\n\n // onRemove hook. Note that here we use the current grid's onRemove callback\n // so if the item has migrated during drag the onRemove method will not be\n // the originating grid's method.\n if (isFunction(settings.dragPlaceholder.onRemove)) {\n settings.dragPlaceholder.onRemove(item, element);\n }\n};\n\n/**\n * Check if placeholder is currently active (visible).\n *\n * @public\n * @returns {Boolean}\n */\nItemDragPlaceholder.prototype.isActive = function () {\n return !!this._element;\n};\n\n/**\n * Get placeholder element.\n *\n * @public\n * @returns {?HTMLElement}\n */\nItemDragPlaceholder.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Update placeholder's dimensions to match the item's dimensions. Note that\n * the updating is done asynchronously in the next tick to avoid layout\n * thrashing.\n *\n * @public\n */\nItemDragPlaceholder.prototype.updateDimensions = function () {\n if (!this.isActive()) return;\n addPlaceholderResizeTick(this._item._id, this._updateDimensions);\n};\n\n/**\n * Destroy placeholder instance.\n *\n * @public\n */\nItemDragPlaceholder.prototype.destroy = function () {\n this.reset();\n this._animation.destroy();\n this._item = this._animation = null;\n};\n\n/**\n * The release process handler constructor. Although this might seem as proper\n * fit for the drag process this needs to be separated into it's own logic\n * because there might be a scenario where drag is disabled, but the release\n * process still needs to be implemented (dragging from a grid to another).\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDragRelease(item) {\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._isPositioningStarted = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start the release process of an item.\n *\n * @public\n */\nItemDragRelease.prototype.start = function () {\n if (this._isDestroyed || this._isActive) return;\n\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this._isActive = true;\n addClass(item._element, settings.itemReleasingClass);\n if (!settings.dragRelease.useDragContainer) {\n this._placeToGrid();\n }\n grid._emit(EVENT_DRAG_RELEASE_START, item);\n\n // Let's start layout manually _only_ if there is no unfinished layout in\n // about to finish.\n if (!grid._nextLayoutData) item._layout.start(false);\n};\n\n/**\n * End the release process of an item. This method can be used to abort an\n * ongoing release process (animation) or finish the release process.\n *\n * @public\n * @param {Boolean} [abort=false]\n * - Should the release be aborted? When true, the release end event won't be\n * emitted. Set to true only when you need to abort the release process\n * while the item is animating to it's position.\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n */\nItemDragRelease.prototype.stop = function (abort, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n var grid = item.getGrid();\n\n if (!abort && (left === undefined || top === undefined)) {\n left = item._left;\n top = item._top;\n }\n\n var didReparent = this._placeToGrid(left, top);\n this._reset(didReparent);\n\n if (!abort) grid._emit(EVENT_DRAG_RELEASE_END, item);\n};\n\nItemDragRelease.prototype.isJustReleased = function () {\n return this._isActive && this._isPositioningStarted === false;\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemDragRelease.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop(true);\n this._item = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Move the element back to the grid container element if it does not exist\n * there already.\n *\n * @private\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n * @returns {Boolean}\n * - Returns `true` if the element was reparented.\n */\nItemDragRelease.prototype._placeToGrid = function (left, top) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var container = item.getGrid()._element;\n var didReparent = false;\n\n if (element.parentNode !== container) {\n if (left === undefined || top === undefined) {\n var translate = getTranslate(element);\n left = translate.x - this._containerDiffX;\n top = translate.y - this._containerDiffY;\n }\n\n container.appendChild(element);\n item._setTranslate(left, top);\n didReparent = true;\n }\n\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n\n return didReparent;\n};\n\n/**\n * Reset data and remove releasing class.\n *\n * @private\n * @param {Boolean} [needsReflow]\n */\nItemDragRelease.prototype._reset = function (needsReflow) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var releasingClass = item.getGrid()._settings.itemReleasingClass;\n\n this._isActive = false;\n this._isPositioningStarted = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n\n // If the element was just reparented we need to do a forced reflow to remove\n // the class gracefully.\n if (releasingClass) {\n // eslint-disable-next-line\n if (needsReflow) item._element.clientWidth;\n removeClass(item._element, releasingClass);\n }\n};\n\nvar MIN_ANIMATION_DISTANCE = 2;\n\n/**\n * Layout manager for Item instance, handles the positioning of an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemLayout(item) {\n var element = item._element;\n var elementStyle = element.style;\n\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._isInterrupted = false;\n this._currentStyles = {};\n this._targetStyles = {};\n this._nextLeft = 0;\n this._nextTop = 0;\n this._offsetLeft = 0;\n this._offsetTop = 0;\n this._skipNextAnimation = false;\n this._animOptions = {\n onFinish: this._finish.bind(this),\n duration: 0,\n easing: 0,\n };\n\n // Set element's initial position styles.\n elementStyle.left = '0px';\n elementStyle.top = '0px';\n item._setTranslate(0, 0);\n\n this._animation = new Animator(element);\n this._queue = 'layout-' + item._id;\n\n // Bind animation handlers and finish method.\n this._setupAnimation = this._setupAnimation.bind(this);\n this._startAnimation = this._startAnimation.bind(this);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start item layout based on it's current data.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemLayout.prototype.start = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var release = item._dragRelease;\n var gridSettings = item.getGrid()._settings;\n var isPositioning = this._isActive;\n var isJustReleased = release.isJustReleased();\n var animDuration = isJustReleased\n ? gridSettings.dragRelease.duration\n : gridSettings.layoutDuration;\n var animEasing = isJustReleased ? gridSettings.dragRelease.easing : gridSettings.layoutEasing;\n var animEnabled = !instant && !this._skipNextAnimation && animDuration > 0;\n\n // If the item is currently positioning cancel potential queued layout tick\n // and process current layout callback queue with interrupted flag on.\n if (isPositioning) {\n cancelLayoutTick(item._id);\n item._emitter.burst(this._queue, true, item);\n }\n\n // Mark release positioning as started.\n if (isJustReleased) release._isPositioningStarted = true;\n\n // Push the callback to the callback queue.\n if (isFunction(onFinish)) {\n item._emitter.on(this._queue, onFinish);\n }\n\n // Reset animation skipping flag.\n this._skipNextAnimation = false;\n\n // If no animations are needed, easy peasy!\n if (!animEnabled) {\n this._updateOffsets();\n item._setTranslate(this._nextLeft, this._nextTop);\n this._animation.stop();\n this._finish();\n return;\n }\n\n // Let's make sure an ongoing animation's callback is cancelled before going\n // further. Without this there's a chance that the animation will finish\n // before the next tick and mess up our logic.\n if (this._animation.isAnimating()) {\n this._animation._animation.onfinish = null;\n }\n\n // Kick off animation to be started in the next tick.\n this._isActive = true;\n this._animOptions.easing = animEasing;\n this._animOptions.duration = animDuration;\n this._isInterrupted = isPositioning;\n addLayoutTick(item._id, this._setupAnimation, this._startAnimation);\n};\n\n/**\n * Stop item's position animation if it is currently animating.\n *\n * @public\n * @param {Boolean} processCallbackQueue\n * @param {Number} [left]\n * @param {Number} [top]\n */\nItemLayout.prototype.stop = function (processCallbackQueue, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n\n // Cancel animation init.\n cancelLayoutTick(item._id);\n\n // Stop animation.\n if (this._animation.isAnimating()) {\n if (left === undefined || top === undefined) {\n var translate = getTranslate(item._element);\n left = translate.x;\n top = translate.y;\n }\n item._setTranslate(left, top);\n this._animation.stop();\n }\n\n // Remove positioning class.\n removeClass(item._element, item.getGrid()._settings.itemPositioningClass);\n\n // Reset active state.\n this._isActive = false;\n\n // Process callback queue if needed.\n if (processCallbackQueue) {\n item._emitter.burst(this._queue, true, item);\n }\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nItemLayout.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var elementStyle = this._item._element.style;\n\n this.stop(true, 0, 0);\n this._item._emitter.clear(this._queue);\n this._animation.destroy();\n\n elementStyle[transformProp] = '';\n elementStyle.left = '';\n elementStyle.top = '';\n\n this._item = null;\n this._currentStyles = null;\n this._targetStyles = null;\n this._animOptions = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Calculate and update item's current layout offset data.\n *\n * @private\n */\nItemLayout.prototype._updateOffsets = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var migrate = item._migrate;\n var release = item._dragRelease;\n\n this._offsetLeft = release._isActive\n ? release._containerDiffX\n : migrate._isActive\n ? migrate._containerDiffX\n : 0;\n\n this._offsetTop = release._isActive\n ? release._containerDiffY\n : migrate._isActive\n ? migrate._containerDiffY\n : 0;\n\n this._nextLeft = this._item._left + this._offsetLeft;\n this._nextTop = this._item._top + this._offsetTop;\n};\n\n/**\n * Finish item layout procedure.\n *\n * @private\n */\nItemLayout.prototype._finish = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var migrate = item._migrate;\n var release = item._dragRelease;\n\n // Update internal translate values.\n item._tX = this._nextLeft;\n item._tY = this._nextTop;\n\n // Mark the item as inactive and remove positioning classes.\n if (this._isActive) {\n this._isActive = false;\n removeClass(item._element, item.getGrid()._settings.itemPositioningClass);\n }\n\n // Finish up release and migration.\n if (release._isActive) release.stop();\n if (migrate._isActive) migrate.stop();\n\n // Process the callback queue.\n item._emitter.burst(this._queue, false, item);\n};\n\n/**\n * Prepare item for layout animation.\n *\n * @private\n */\nItemLayout.prototype._setupAnimation = function () {\n var item = this._item;\n if (item._tX === undefined || item._tY === undefined) {\n var translate = getTranslate(item._element);\n item._tX = translate.x;\n item._tY = translate.y;\n }\n};\n\n/**\n * Start layout animation.\n *\n * @private\n */\nItemLayout.prototype._startAnimation = function () {\n var item = this._item;\n var settings = item.getGrid()._settings;\n var isInstant = this._animOptions.duration <= 0;\n\n // Let's update the offset data and target styles.\n this._updateOffsets();\n\n var xDiff = Math.abs(item._left - (item._tX - this._offsetLeft));\n var yDiff = Math.abs(item._top - (item._tY - this._offsetTop));\n\n // If there is no need for animation or if the item is already in correct\n // position (or near it) let's finish the process early.\n if (isInstant || (xDiff < MIN_ANIMATION_DISTANCE && yDiff < MIN_ANIMATION_DISTANCE)) {\n if (xDiff || yDiff || this._isInterrupted) {\n item._setTranslate(this._nextLeft, this._nextTop);\n }\n this._animation.stop();\n this._finish();\n return;\n }\n\n // Set item's positioning class if needed.\n if (!this._isInterrupted) {\n addClass(item._element, settings.itemPositioningClass);\n }\n\n // Get current/next styles for animation.\n this._currentStyles[transformProp] = getTranslateString(item._tX, item._tY);\n this._targetStyles[transformProp] = getTranslateString(this._nextLeft, this._nextTop);\n\n // Set internal translation values to undefined for the duration of the\n // animation since they will be changing on each animation frame for the\n // duration of the animation and tracking them would mean reading the DOM on\n // each frame, which is pretty darn expensive.\n item._tX = item._tY = undefined;\n\n // Start animation.\n this._animation.start(this._currentStyles, this._targetStyles, this._animOptions);\n};\n\n/**\n * The migrate process handler constructor.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemMigrate(item) {\n // Private props.\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._container = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start the migrate process of an item.\n *\n * @public\n * @param {Grid} targetGrid\n * @param {(HTMLElement|Number|Item)} position\n * @param {HTMLElement} [container]\n */\nItemMigrate.prototype.start = function (targetGrid, position, container) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var isActive = item.isActive();\n var isVisible = item.isVisible();\n var grid = item.getGrid();\n var settings = grid._settings;\n var targetSettings = targetGrid._settings;\n var targetElement = targetGrid._element;\n var targetItems = targetGrid._items;\n var currentIndex = grid._items.indexOf(item);\n var targetContainer = container || document.body;\n var targetIndex;\n var targetItem;\n var currentContainer;\n var offsetDiff;\n var containerDiff;\n var translate;\n var translateX;\n var translateY;\n var currentVisClass;\n var nextVisClass;\n\n // Get target index.\n if (typeof position === 'number') {\n targetIndex = normalizeArrayIndex(targetItems, position, 1);\n } else {\n targetItem = targetGrid.getItem(position);\n if (!targetItem) return;\n targetIndex = targetItems.indexOf(targetItem);\n }\n\n // Get current translateX and translateY values if needed.\n if (item.isPositioning() || this._isActive || item.isReleasing()) {\n translate = getTranslate(element);\n translateX = translate.x;\n translateY = translate.y;\n }\n\n // Abort current positioning.\n if (item.isPositioning()) {\n item._layout.stop(true, translateX, translateY);\n }\n\n // Abort current migration.\n if (this._isActive) {\n translateX -= this._containerDiffX;\n translateY -= this._containerDiffY;\n this.stop(true, translateX, translateY);\n }\n\n // Abort current release.\n if (item.isReleasing()) {\n translateX -= item._dragRelease._containerDiffX;\n translateY -= item._dragRelease._containerDiffY;\n item._dragRelease.stop(true, translateX, translateY);\n }\n\n // Stop current visibility animation.\n item._visibility.stop(true);\n\n // Destroy current drag.\n if (item._drag) item._drag.destroy();\n\n // Emit beforeSend event.\n if (grid._hasListeners(EVENT_BEFORE_SEND)) {\n grid._emit(EVENT_BEFORE_SEND, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit beforeReceive event.\n if (targetGrid._hasListeners(EVENT_BEFORE_RECEIVE)) {\n targetGrid._emit(EVENT_BEFORE_RECEIVE, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Update item class.\n if (settings.itemClass !== targetSettings.itemClass) {\n removeClass(element, settings.itemClass);\n addClass(element, targetSettings.itemClass);\n }\n\n // Update visibility class.\n currentVisClass = isVisible ? settings.itemVisibleClass : settings.itemHiddenClass;\n nextVisClass = isVisible ? targetSettings.itemVisibleClass : targetSettings.itemHiddenClass;\n if (currentVisClass !== nextVisClass) {\n removeClass(element, currentVisClass);\n addClass(element, nextVisClass);\n }\n\n // Move item instance from current grid to target grid.\n grid._items.splice(currentIndex, 1);\n arrayInsert(targetItems, item, targetIndex);\n\n // Update item's grid id reference.\n item._gridId = targetGrid._id;\n\n // If item is active we need to move the item inside the target container for\n // the duration of the (potential) animation if it's different than the\n // current container.\n if (isActive) {\n currentContainer = element.parentNode;\n if (targetContainer !== currentContainer) {\n targetContainer.appendChild(element);\n offsetDiff = getOffsetDiff(targetContainer, currentContainer, true);\n if (!translate) {\n translate = getTranslate(element);\n translateX = translate.x;\n translateY = translate.y;\n }\n item._setTranslate(translateX + offsetDiff.left, translateY + offsetDiff.top);\n }\n }\n // If item is not active let's just append it to the target grid's element.\n else {\n targetElement.appendChild(element);\n }\n\n // Update child element's styles to reflect the current visibility state.\n item._visibility.setStyles(\n isVisible ? targetSettings.visibleStyles : targetSettings.hiddenStyles\n );\n\n // Get offset diff for the migration data, if the item is active.\n if (isActive) {\n containerDiff = getOffsetDiff(targetContainer, targetElement, true);\n }\n\n // Update item's cached dimensions.\n item._refreshDimensions();\n\n // Reset item's sort data.\n item._sortData = null;\n\n // Create new drag handler.\n item._drag = targetSettings.dragEnabled ? new ItemDrag(item) : null;\n\n // Setup migration data.\n if (isActive) {\n this._isActive = true;\n this._container = targetContainer;\n this._containerDiffX = containerDiff.left;\n this._containerDiffY = containerDiff.top;\n } else {\n this._isActive = false;\n this._container = null;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n }\n\n // Emit send event.\n if (grid._hasListeners(EVENT_SEND)) {\n grid._emit(EVENT_SEND, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit receive event.\n if (targetGrid._hasListeners(EVENT_RECEIVE)) {\n targetGrid._emit(EVENT_RECEIVE, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n};\n\n/**\n * End the migrate process of an item. This method can be used to abort an\n * ongoing migrate process (animation) or finish the migrate process.\n *\n * @public\n * @param {Boolean} [abort=false]\n * - Should the migration be aborted?\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n */\nItemMigrate.prototype.stop = function (abort, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n var element = item._element;\n var grid = item.getGrid();\n var gridElement = grid._element;\n var translate;\n\n if (this._container !== gridElement) {\n if (left === undefined || top === undefined) {\n if (abort) {\n translate = getTranslate(element);\n left = translate.x - this._containerDiffX;\n top = translate.y - this._containerDiffY;\n } else {\n left = item._left;\n top = item._top;\n }\n }\n\n gridElement.appendChild(element);\n item._setTranslate(left, top);\n }\n\n this._isActive = false;\n this._container = null;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemMigrate.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop(true);\n this._item = null;\n this._isDestroyed = true;\n};\n\n/**\n * Visibility manager for Item instance, handles visibility of an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemVisibility(item) {\n var isActive = item._isActive;\n var element = item._element;\n var childElement = element.children[0];\n var settings = item.getGrid()._settings;\n\n if (!childElement) {\n throw new Error('No valid child element found within item element.');\n }\n\n this._item = item;\n this._isDestroyed = false;\n this._isHidden = !isActive;\n this._isHiding = false;\n this._isShowing = false;\n this._childElement = childElement;\n this._currentStyleProps = [];\n this._animation = new Animator(childElement);\n this._queue = 'visibility-' + item._id;\n this._finishShow = this._finishShow.bind(this);\n this._finishHide = this._finishHide.bind(this);\n\n element.style.display = isActive ? '' : 'none';\n addClass(element, isActive ? settings.itemVisibleClass : settings.itemHiddenClass);\n this.setStyles(isActive ? settings.visibleStyles : settings.hiddenStyles);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Show item.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype.show = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var callback = isFunction(onFinish) ? onFinish : null;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n // If item is visible call the callback and be done with it.\n if (!this._isShowing && !this._isHidden) {\n callback && callback(false, item);\n return;\n }\n\n // If item is showing and does not need to be shown instantly, let's just\n // push callback to the callback queue and be done with it.\n if (this._isShowing && !instant) {\n callback && item._emitter.on(this._queue, callback);\n return;\n }\n\n // If the item is hiding or hidden process the current visibility callback\n // queue with the interrupted flag active, update classes and set display\n // to block if necessary.\n if (!this._isShowing) {\n item._emitter.burst(this._queue, true, item);\n removeClass(element, settings.itemHiddenClass);\n addClass(element, settings.itemVisibleClass);\n if (!this._isHiding) element.style.display = '';\n }\n\n // Push callback to the callback queue.\n callback && item._emitter.on(this._queue, callback);\n\n // Update visibility states.\n this._isShowing = true;\n this._isHiding = this._isHidden = false;\n\n // Finally let's start show animation.\n this._startAnimation(true, instant, this._finishShow);\n};\n\n/**\n * Hide item.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype.hide = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var callback = isFunction(onFinish) ? onFinish : null;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n // If item is already hidden call the callback and be done with it.\n if (!this._isHiding && this._isHidden) {\n callback && callback(false, item);\n return;\n }\n\n // If item is hiding and does not need to be hidden instantly, let's just\n // push callback to the callback queue and be done with it.\n if (this._isHiding && !instant) {\n callback && item._emitter.on(this._queue, callback);\n return;\n }\n\n // If the item is showing or visible process the current visibility callback\n // queue with the interrupted flag active, update classes and set display\n // to block if necessary.\n if (!this._isHiding) {\n item._emitter.burst(this._queue, true, item);\n addClass(element, settings.itemHiddenClass);\n removeClass(element, settings.itemVisibleClass);\n }\n\n // Push callback to the callback queue.\n callback && item._emitter.on(this._queue, callback);\n\n // Update visibility states.\n this._isHidden = this._isHiding = true;\n this._isShowing = false;\n\n // Finally let's start hide animation.\n this._startAnimation(false, instant, this._finishHide);\n};\n\n/**\n * Stop current hiding/showing process.\n *\n * @public\n * @param {Boolean} processCallbackQueue\n */\nItemVisibility.prototype.stop = function (processCallbackQueue) {\n if (this._isDestroyed) return;\n if (!this._isHiding && !this._isShowing) return;\n\n var item = this._item;\n\n cancelVisibilityTick(item._id);\n this._animation.stop();\n if (processCallbackQueue) {\n item._emitter.burst(this._queue, true, item);\n }\n};\n\n/**\n * Reset all existing visibility styles and apply new visibility styles to the\n * visibility element. This method should be used to set styles when there is a\n * chance that the current style properties differ from the new ones (basically\n * on init and on migrations).\n *\n * @public\n * @param {Object} styles\n */\nItemVisibility.prototype.setStyles = function (styles) {\n var childElement = this._childElement;\n var currentStyleProps = this._currentStyleProps;\n this._removeCurrentStyles();\n for (var prop in styles) {\n currentStyleProps.push(prop);\n childElement.style[prop] = styles[prop];\n }\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nItemVisibility.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this.stop(true);\n item._emitter.clear(this._queue);\n this._animation.destroy();\n this._removeCurrentStyles();\n removeClass(element, settings.itemVisibleClass);\n removeClass(element, settings.itemHiddenClass);\n element.style.display = '';\n\n // Reset state.\n this._isHiding = this._isShowing = false;\n this._isDestroyed = this._isHidden = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Start visibility animation.\n *\n * @private\n * @param {Boolean} toVisible\n * @param {Boolean} [instant]\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype._startAnimation = function (toVisible, instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var animation = this._animation;\n var childElement = this._childElement;\n var settings = item.getGrid()._settings;\n var targetStyles = toVisible ? settings.visibleStyles : settings.hiddenStyles;\n var duration = toVisible ? settings.showDuration : settings.hideDuration;\n var easing = toVisible ? settings.showEasing : settings.hideEasing;\n var isInstant = instant || duration <= 0;\n var currentStyles;\n\n // No target styles? Let's quit early.\n if (!targetStyles) {\n onFinish && onFinish();\n return;\n }\n\n // Cancel queued visibility tick.\n cancelVisibilityTick(item._id);\n\n // If we need to apply the styles instantly without animation.\n if (isInstant) {\n setStyles(childElement, targetStyles);\n animation.stop();\n onFinish && onFinish();\n return;\n }\n\n // Let's make sure an ongoing animation's callback is cancelled before going\n // further. Without this there's a chance that the animation will finish\n // before the next tick and mess up our logic.\n if (animation.isAnimating()) {\n animation._animation.onfinish = null;\n }\n\n // Start the animation in the next tick (to avoid layout thrashing).\n addVisibilityTick(\n item._id,\n function () {\n currentStyles = getCurrentStyles(childElement, targetStyles);\n },\n function () {\n animation.start(currentStyles, targetStyles, {\n duration: duration,\n easing: easing,\n onFinish: onFinish,\n });\n }\n );\n};\n\n/**\n * Finish show procedure.\n *\n * @private\n */\nItemVisibility.prototype._finishShow = function () {\n if (this._isHidden) return;\n this._isShowing = false;\n this._item._emitter.burst(this._queue, false, this._item);\n};\n\n/**\n * Finish hide procedure.\n *\n * @private\n */\nItemVisibility.prototype._finishHide = function () {\n if (!this._isHidden) return;\n var item = this._item;\n this._isHiding = false;\n item._layout.stop(true, 0, 0);\n item._element.style.display = 'none';\n item._emitter.burst(this._queue, false, item);\n};\n\n/**\n * Remove currently applied visibility related inline style properties.\n *\n * @private\n */\nItemVisibility.prototype._removeCurrentStyles = function () {\n var childElement = this._childElement;\n var currentStyleProps = this._currentStyleProps;\n\n for (var i = 0; i < currentStyleProps.length; i++) {\n childElement.style[currentStyleProps[i]] = '';\n }\n\n currentStyleProps.length = 0;\n};\n\nvar id = 0;\n\n/**\n * Returns a unique numeric id (increments a base value on every call).\n * @returns {Number}\n */\nfunction createUid() {\n return ++id;\n}\n\n/**\n * Creates a new Item instance for a Grid instance.\n *\n * @class\n * @param {Grid} grid\n * @param {HTMLElement} element\n * @param {Boolean} [isActive]\n */\nfunction Item(grid, element, isActive) {\n var settings = grid._settings;\n\n // Store item/element pair to a map (for faster item querying by element).\n if (ITEM_ELEMENT_MAP) {\n if (ITEM_ELEMENT_MAP.has(element)) {\n throw new Error('You can only create one Muuri Item per element!');\n } else {\n ITEM_ELEMENT_MAP.set(element, this);\n }\n }\n\n this._id = createUid();\n this._gridId = grid._id;\n this._element = element;\n this._isDestroyed = false;\n this._left = 0;\n this._top = 0;\n this._width = 0;\n this._height = 0;\n this._marginLeft = 0;\n this._marginRight = 0;\n this._marginTop = 0;\n this._marginBottom = 0;\n this._tX = undefined;\n this._tY = undefined;\n this._sortData = null;\n this._emitter = new Emitter();\n\n // If the provided item element is not a direct child of the grid container\n // element, append it to the grid container. Note, we are indeed reading the\n // DOM here but it's a property that does not cause reflowing.\n if (element.parentNode !== grid._element) {\n grid._element.appendChild(element);\n }\n\n // Set item class.\n addClass(element, settings.itemClass);\n\n // If isActive is not defined, let's try to auto-detect it. Note, we are\n // indeed reading the DOM here but it's a property that does not cause\n // reflowing.\n if (typeof isActive !== 'boolean') {\n isActive = getStyle(element, 'display') !== 'none';\n }\n\n // Set up active state (defines if the item is considered part of the layout\n // or not).\n this._isActive = isActive;\n\n // Setup visibility handler.\n this._visibility = new ItemVisibility(this);\n\n // Set up layout handler.\n this._layout = new ItemLayout(this);\n\n // Set up migration handler data.\n this._migrate = new ItemMigrate(this);\n\n // Set up drag handler.\n this._drag = settings.dragEnabled ? new ItemDrag(this) : null;\n\n // Set up release handler. Note that although this is fully linked to dragging\n // this still needs to be always instantiated to handle migration scenarios\n // correctly.\n this._dragRelease = new ItemDragRelease(this);\n\n // Set up drag placeholder handler. Note that although this is fully linked to\n // dragging this still needs to be always instantiated to handle migration\n // scenarios correctly.\n this._dragPlaceholder = new ItemDragPlaceholder(this);\n\n // Note! You must call the following methods before you start using the\n // instance. They are deliberately not called in the end as it would cause\n // potentially a massive amount of reflows if multiple items were instantiated\n // in a loop.\n // this._refreshDimensions();\n // this._refreshSortData();\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Get the instance grid reference.\n *\n * @public\n * @returns {Grid}\n */\nItem.prototype.getGrid = function () {\n return GRID_INSTANCES[this._gridId];\n};\n\n/**\n * Get the instance element.\n *\n * @public\n * @returns {HTMLElement}\n */\nItem.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Get instance element's cached width.\n *\n * @public\n * @returns {Number}\n */\nItem.prototype.getWidth = function () {\n return this._width;\n};\n\n/**\n * Get instance element's cached height.\n *\n * @public\n * @returns {Number}\n */\nItem.prototype.getHeight = function () {\n return this._height;\n};\n\n/**\n * Get instance element's cached margins.\n *\n * @public\n * @returns {Object}\n * - The returned object contains left, right, top and bottom properties\n * which indicate the item element's cached margins.\n */\nItem.prototype.getMargin = function () {\n return {\n left: this._marginLeft,\n right: this._marginRight,\n top: this._marginTop,\n bottom: this._marginBottom,\n };\n};\n\n/**\n * Get instance element's cached position.\n *\n * @public\n * @returns {Object}\n * - The returned object contains left and top properties which indicate the\n * item element's cached position in the grid.\n */\nItem.prototype.getPosition = function () {\n return {\n left: this._left,\n top: this._top,\n };\n};\n\n/**\n * Is the item active?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isActive = function () {\n return this._isActive;\n};\n\n/**\n * Is the item visible?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isVisible = function () {\n return !!this._visibility && !this._visibility._isHidden;\n};\n\n/**\n * Is the item being animated to visible?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isShowing = function () {\n return !!(this._visibility && this._visibility._isShowing);\n};\n\n/**\n * Is the item being animated to hidden?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isHiding = function () {\n return !!(this._visibility && this._visibility._isHiding);\n};\n\n/**\n * Is the item positioning?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isPositioning = function () {\n return !!(this._layout && this._layout._isActive);\n};\n\n/**\n * Is the item being dragged (or queued for dragging)?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isDragging = function () {\n return !!(this._drag && this._drag._isActive);\n};\n\n/**\n * Is the item being released?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isReleasing = function () {\n return !!(this._dragRelease && this._dragRelease._isActive);\n};\n\n/**\n * Is the item destroyed?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isDestroyed = function () {\n return this._isDestroyed;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Recalculate item's dimensions.\n *\n * @private\n * @param {Boolean} [force=false]\n */\nItem.prototype._refreshDimensions = function (force) {\n if (this._isDestroyed) return;\n if (force !== true && this._visibility._isHidden) return;\n\n var element = this._element;\n var dragPlaceholder = this._dragPlaceholder;\n var rect = element.getBoundingClientRect();\n\n // Calculate width and height.\n this._width = rect.width;\n this._height = rect.height;\n\n // Calculate margins (ignore negative margins).\n this._marginLeft = Math.max(0, getStyleAsFloat(element, 'margin-left'));\n this._marginRight = Math.max(0, getStyleAsFloat(element, 'margin-right'));\n this._marginTop = Math.max(0, getStyleAsFloat(element, 'margin-top'));\n this._marginBottom = Math.max(0, getStyleAsFloat(element, 'margin-bottom'));\n\n // Keep drag placeholder's dimensions synced with the item's.\n if (dragPlaceholder) dragPlaceholder.updateDimensions();\n};\n\n/**\n * Fetch and store item's sort data.\n *\n * @private\n */\nItem.prototype._refreshSortData = function () {\n if (this._isDestroyed) return;\n\n var data = (this._sortData = {});\n var getters = this.getGrid()._settings.sortData;\n var prop;\n\n for (prop in getters) {\n data[prop] = getters[prop](this, this._element);\n }\n};\n\n/**\n * Add item to layout.\n *\n * @private\n */\nItem.prototype._addToLayout = function (left, top) {\n if (this._isActive === true) return;\n this._isActive = true;\n this._left = left || 0;\n this._top = top || 0;\n};\n\n/**\n * Remove item from layout.\n *\n * @private\n */\nItem.prototype._removeFromLayout = function () {\n if (this._isActive === false) return;\n this._isActive = false;\n this._left = 0;\n this._top = 0;\n};\n\n/**\n * Check if the layout procedure can be skipped for the item.\n *\n * @private\n * @param {Number} left\n * @param {Number} top\n * @returns {Boolean}\n */\nItem.prototype._canSkipLayout = function (left, top) {\n return (\n this._left === left &&\n this._top === top &&\n !this._migrate._isActive &&\n !this._layout._skipNextAnimation &&\n !this._dragRelease.isJustReleased()\n );\n};\n\n/**\n * Set the provided left and top arguments as the item element's translate\n * values in the DOM. This method keeps track of the currently applied\n * translate values and skips the update operation if the provided values are\n * identical to the currently applied values. Returns `false` if there was no\n * need for update and `true` if the translate value was updated.\n *\n * @private\n * @param {Number} left\n * @param {Number} top\n * @returns {Boolean}\n */\nItem.prototype._setTranslate = function (left, top) {\n if (this._tX === left && this._tY === top) return false;\n this._tX = left;\n this._tY = top;\n this._element.style[transformProp] = getTranslateString(left, top);\n return true;\n};\n\n/**\n * Destroy item instance.\n *\n * @private\n * @param {Boolean} [removeElement=false]\n */\nItem.prototype._destroy = function (removeElement) {\n if (this._isDestroyed) return;\n\n var element = this._element;\n var grid = this.getGrid();\n var settings = grid._settings;\n\n // Destroy handlers.\n this._dragPlaceholder.destroy();\n this._dragRelease.destroy();\n this._migrate.destroy();\n this._layout.destroy();\n this._visibility.destroy();\n if (this._drag) this._drag.destroy();\n\n // Destroy emitter.\n this._emitter.destroy();\n\n // Remove item class.\n removeClass(element, settings.itemClass);\n\n // Remove element from DOM.\n if (removeElement) element.parentNode.removeChild(element);\n\n // Remove item/element pair from map.\n if (ITEM_ELEMENT_MAP) ITEM_ELEMENT_MAP.delete(element);\n\n // Reset state.\n this._isActive = false;\n this._isDestroyed = true;\n};\n\nfunction createPackerProcessor(isWorker) {\n var FILL_GAPS = 1;\n var HORIZONTAL = 2;\n var ALIGN_RIGHT = 4;\n var ALIGN_BOTTOM = 8;\n var ROUNDING = 16;\n\n var EPS = 0.001;\n var MIN_SLOT_SIZE = 0.5;\n\n // Rounds number first to three decimal precision and then floors the result\n // to two decimal precision.\n // Math.floor(Math.round(number * 1000) / 10) / 100\n function roundNumber(number) {\n return ((((number * 1000 + 0.5) << 0) / 10) << 0) / 100;\n }\n\n /**\n * @class\n */\n function PackerProcessor() {\n this.currentRects = [];\n this.nextRects = [];\n this.rectTarget = {};\n this.rectStore = [];\n this.slotSizes = [];\n this.rectId = 0;\n this.slotIndex = -1;\n this.slotData = { left: 0, top: 0, width: 0, height: 0 };\n this.sortRectsLeftTop = this.sortRectsLeftTop.bind(this);\n this.sortRectsTopLeft = this.sortRectsTopLeft.bind(this);\n }\n\n /**\n * Takes a layout object as an argument and computes positions (slots) for the\n * layout items. Also computes the final width and height of the layout. The\n * provided layout object's slots array is mutated as well as the width and\n * height properties.\n *\n * @param {Object} layout\n * @param {Number} layout.width\n * - The start (current) width of the layout in pixels.\n * @param {Number} layout.height\n * - The start (current) height of the layout in pixels.\n * @param {(Item[]|Number[])} layout.items\n * - List of Muuri.Item instances or a list of item dimensions\n * (e.g [ item1Width, item1Height, item2Width, item2Height, ... ]).\n * @param {(Array|Float32Array)} layout.slots\n * - An Array/Float32Array instance which's length should equal to\n * the amount of items times two. The position (width and height) of each\n * item will be written into this array.\n * @param {Number} settings\n * - The layout's settings as bitmasks.\n * @returns {Object}\n */\n PackerProcessor.prototype.computeLayout = function (layout, settings) {\n var items = layout.items;\n var slots = layout.slots;\n var fillGaps = !!(settings & FILL_GAPS);\n var horizontal = !!(settings & HORIZONTAL);\n var alignRight = !!(settings & ALIGN_RIGHT);\n var alignBottom = !!(settings & ALIGN_BOTTOM);\n var rounding = !!(settings & ROUNDING);\n var isPreProcessed = typeof items[0] === 'number';\n var i, bump, item, slotWidth, slotHeight, slot;\n\n // No need to go further if items do not exist.\n if (!items.length) return layout;\n\n // Compute slots for the items.\n bump = isPreProcessed ? 2 : 1;\n for (i = 0; i < items.length; i += bump) {\n // If items are pre-processed it means that items array contains only\n // the raw dimensions of the items. Otherwise we assume it is an array\n // of normal Muuri items.\n if (isPreProcessed) {\n slotWidth = items[i];\n slotHeight = items[i + 1];\n } else {\n item = items[i];\n slotWidth = item._width + item._marginLeft + item._marginRight;\n slotHeight = item._height + item._marginTop + item._marginBottom;\n }\n\n // If rounding is enabled let's round the item's width and height to\n // make the layout algorithm a bit more stable. This has a performance\n // cost so don't use this if not necessary.\n if (rounding) {\n slotWidth = roundNumber(slotWidth);\n slotHeight = roundNumber(slotHeight);\n }\n\n // Get slot data.\n slot = this.computeNextSlot(layout, slotWidth, slotHeight, fillGaps, horizontal);\n\n // Update layout width/height.\n if (horizontal) {\n if (slot.left + slot.width > layout.width) {\n layout.width = slot.left + slot.width;\n }\n } else {\n if (slot.top + slot.height > layout.height) {\n layout.height = slot.top + slot.height;\n }\n }\n\n // Add item slot data to layout slots.\n slots[++this.slotIndex] = slot.left;\n slots[++this.slotIndex] = slot.top;\n\n // Store the size too (for later usage) if needed.\n if (alignRight || alignBottom) {\n this.slotSizes.push(slot.width, slot.height);\n }\n }\n\n // If the alignment is set to right we need to adjust the results.\n if (alignRight) {\n for (i = 0; i < slots.length; i += 2) {\n slots[i] = layout.width - (slots[i] + this.slotSizes[i]);\n }\n }\n\n // If the alignment is set to bottom we need to adjust the results.\n if (alignBottom) {\n for (i = 1; i < slots.length; i += 2) {\n slots[i] = layout.height - (slots[i] + this.slotSizes[i]);\n }\n }\n\n // Reset stuff.\n this.slotSizes.length = 0;\n this.currentRects.length = 0;\n this.nextRects.length = 0;\n this.rectStore.length = 0;\n this.rectId = 0;\n this.slotIndex = -1;\n\n return layout;\n };\n\n /**\n * Calculate next slot in the layout. Returns a slot object with position and\n * dimensions data. The returned object is reused between calls.\n *\n * @param {Object} layout\n * @param {Number} slotWidth\n * @param {Number} slotHeight\n * @param {Boolean} fillGaps\n * @param {Boolean} horizontal\n * @returns {Object}\n */\n PackerProcessor.prototype.computeNextSlot = function (\n layout,\n slotWidth,\n slotHeight,\n fillGaps,\n horizontal\n ) {\n var slot = this.slotData;\n var currentRects = this.currentRects;\n var nextRects = this.nextRects;\n var ignoreCurrentRects = false;\n var rect;\n var rectId;\n var shards;\n var i;\n var j;\n\n // Reset new slots.\n nextRects.length = 0;\n\n // Set item slot initial data.\n slot.left = null;\n slot.top = null;\n slot.width = slotWidth;\n slot.height = slotHeight;\n\n // Try to find position for the slot from the existing free spaces in the\n // layout.\n for (i = 0; i < currentRects.length; i++) {\n rectId = currentRects[i];\n if (!rectId) continue;\n rect = this.getRect(rectId);\n if (slot.width <= rect.width + EPS && slot.height <= rect.height + EPS) {\n slot.left = rect.left;\n slot.top = rect.top;\n break;\n }\n }\n\n // If no position was found for the slot let's position the slot to\n // the bottom left (in vertical mode) or top right (in horizontal mode) of\n // the layout.\n if (slot.left === null) {\n if (horizontal) {\n slot.left = layout.width;\n slot.top = 0;\n } else {\n slot.left = 0;\n slot.top = layout.height;\n }\n\n // If gaps don't need filling let's throw away all the current free spaces\n // (currentRects).\n if (!fillGaps) {\n ignoreCurrentRects = true;\n }\n }\n\n // In vertical mode, if the slot's bottom overlaps the layout's bottom.\n if (!horizontal && slot.top + slot.height > layout.height + EPS) {\n // If slot is not aligned to the left edge, create a new free space to the\n // left of the slot.\n if (slot.left > MIN_SLOT_SIZE) {\n nextRects.push(this.addRect(0, layout.height, slot.left, Infinity));\n }\n\n // If slot is not aligned to the right edge, create a new free space to\n // the right of the slot.\n if (slot.left + slot.width < layout.width - MIN_SLOT_SIZE) {\n nextRects.push(\n this.addRect(\n slot.left + slot.width,\n layout.height,\n layout.width - slot.left - slot.width,\n Infinity\n )\n );\n }\n\n // Update layout height.\n layout.height = slot.top + slot.height;\n }\n\n // In horizontal mode, if the slot's right overlaps the layout's right edge.\n if (horizontal && slot.left + slot.width > layout.width + EPS) {\n // If slot is not aligned to the top, create a new free space above the\n // slot.\n if (slot.top > MIN_SLOT_SIZE) {\n nextRects.push(this.addRect(layout.width, 0, Infinity, slot.top));\n }\n\n // If slot is not aligned to the bottom, create a new free space below\n // the slot.\n if (slot.top + slot.height < layout.height - MIN_SLOT_SIZE) {\n nextRects.push(\n this.addRect(\n layout.width,\n slot.top + slot.height,\n Infinity,\n layout.height - slot.top - slot.height\n )\n );\n }\n\n // Update layout width.\n layout.width = slot.left + slot.width;\n }\n\n // Clean up the current free spaces making sure none of them overlap with\n // the slot. Split all overlapping free spaces into smaller shards that do\n // not overlap with the slot.\n if (!ignoreCurrentRects) {\n if (fillGaps) i = 0;\n for (; i < currentRects.length; i++) {\n rectId = currentRects[i];\n if (!rectId) continue;\n rect = this.getRect(rectId);\n shards = this.splitRect(rect, slot);\n for (j = 0; j < shards.length; j++) {\n rectId = shards[j];\n rect = this.getRect(rectId);\n // Make sure that the free space is within the boundaries of the\n // layout. This routine is critical to the algorithm as it makes sure\n // that there are no leftover spaces with infinite height/width.\n // It's also essential that we don't compare values absolutely to each\n // other but leave a little headroom (EPSILON) to get rid of false\n // positives.\n if (\n horizontal ? rect.left + EPS < layout.width - EPS : rect.top + EPS < layout.height - EPS\n ) {\n nextRects.push(rectId);\n }\n }\n }\n }\n\n // Sanitize and sort all the new free spaces that will be used in the next\n // iteration. This procedure is critical to make the bin-packing algorithm\n // work. The free spaces have to be in correct order in the beginning of the\n // next iteration.\n if (nextRects.length > 1) {\n this.purgeRects(nextRects).sort(horizontal ? this.sortRectsLeftTop : this.sortRectsTopLeft);\n }\n\n // Finally we need to make sure that `this.currentRects` points to\n // `nextRects` array as that is used in the next iteration's beginning when\n // we try to find a space for the next slot.\n this.currentRects = nextRects;\n this.nextRects = currentRects;\n\n return slot;\n };\n\n /**\n * Add a new rectangle to the rectangle store. Returns the id of the new\n * rectangle.\n *\n * @param {Number} left\n * @param {Number} top\n * @param {Number} width\n * @param {Number} height\n * @returns {Number}\n */\n PackerProcessor.prototype.addRect = function (left, top, width, height) {\n var rectId = ++this.rectId;\n this.rectStore[rectId] = left || 0;\n this.rectStore[++this.rectId] = top || 0;\n this.rectStore[++this.rectId] = width || 0;\n this.rectStore[++this.rectId] = height || 0;\n return rectId;\n };\n\n /**\n * Get rectangle data from the rectangle store by id. Optionally you can\n * provide a target object where the rectangle data will be written in. By\n * default an internal object is reused as a target object.\n *\n * @param {Number} id\n * @param {Object} [target]\n * @returns {Object}\n */\n PackerProcessor.prototype.getRect = function (id, target) {\n if (!target) target = this.rectTarget;\n target.left = this.rectStore[id] || 0;\n target.top = this.rectStore[++id] || 0;\n target.width = this.rectStore[++id] || 0;\n target.height = this.rectStore[++id] || 0;\n return target;\n };\n\n /**\n * Punch a hole into a rectangle and return the shards (1-4).\n *\n * @param {Object} rect\n * @param {Object} hole\n * @returns {Number[]}\n */\n PackerProcessor.prototype.splitRect = (function () {\n var shards = [];\n var width = 0;\n var height = 0;\n return function (rect, hole) {\n // Reset old shards.\n shards.length = 0;\n\n // If the slot does not overlap with the hole add slot to the return data\n // as is. Note that in this case we are eager to keep the slot as is if\n // possible so we use the EPSILON in favour of that logic.\n if (\n rect.left + rect.width <= hole.left + EPS ||\n hole.left + hole.width <= rect.left + EPS ||\n rect.top + rect.height <= hole.top + EPS ||\n hole.top + hole.height <= rect.top + EPS\n ) {\n shards.push(this.addRect(rect.left, rect.top, rect.width, rect.height));\n return shards;\n }\n\n // Left split.\n width = hole.left - rect.left;\n if (width >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, rect.top, width, rect.height));\n }\n\n // Right split.\n width = rect.left + rect.width - (hole.left + hole.width);\n if (width >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(hole.left + hole.width, rect.top, width, rect.height));\n }\n\n // Top split.\n height = hole.top - rect.top;\n if (height >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, rect.top, rect.width, height));\n }\n\n // Bottom split.\n height = rect.top + rect.height - (hole.top + hole.height);\n if (height >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, hole.top + hole.height, rect.width, height));\n }\n\n return shards;\n };\n })();\n\n /**\n * Check if a rectangle is fully within another rectangle.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Boolean}\n */\n PackerProcessor.prototype.isRectAWithinRectB = function (a, b) {\n return (\n a.left + EPS >= b.left &&\n a.top + EPS >= b.top &&\n a.left + a.width - EPS <= b.left + b.width &&\n a.top + a.height - EPS <= b.top + b.height\n );\n };\n\n /**\n * Loops through an array of rectangle ids and resets all that are fully\n * within another rectangle in the array. Resetting in this case means that\n * the rectangle id value is replaced with zero.\n *\n * @param {Number[]} rectIds\n * @returns {Number[]}\n */\n PackerProcessor.prototype.purgeRects = (function () {\n var rectA = {};\n var rectB = {};\n return function (rectIds) {\n var i = rectIds.length;\n var j;\n\n while (i--) {\n j = rectIds.length;\n if (!rectIds[i]) continue;\n this.getRect(rectIds[i], rectA);\n while (j--) {\n if (!rectIds[j] || i === j) continue;\n this.getRect(rectIds[j], rectB);\n if (this.isRectAWithinRectB(rectA, rectB)) {\n rectIds[i] = 0;\n break;\n }\n }\n }\n\n return rectIds;\n };\n })();\n\n /**\n * Sort rectangles with top-left gravity.\n *\n * @param {Number} aId\n * @param {Number} bId\n * @returns {Number}\n */\n PackerProcessor.prototype.sortRectsTopLeft = (function () {\n var rectA = {};\n var rectB = {};\n return function (aId, bId) {\n this.getRect(aId, rectA);\n this.getRect(bId, rectB);\n\n return rectA.top < rectB.top && rectA.top + EPS < rectB.top\n ? -1\n : rectA.top > rectB.top && rectA.top - EPS > rectB.top\n ? 1\n : rectA.left < rectB.left && rectA.left + EPS < rectB.left\n ? -1\n : rectA.left > rectB.left && rectA.left - EPS > rectB.left\n ? 1\n : 0;\n };\n })();\n\n /**\n * Sort rectangles with left-top gravity.\n *\n * @param {Number} aId\n * @param {Number} bId\n * @returns {Number}\n */\n PackerProcessor.prototype.sortRectsLeftTop = (function () {\n var rectA = {};\n var rectB = {};\n return function (aId, bId) {\n this.getRect(aId, rectA);\n this.getRect(bId, rectB);\n return rectA.left < rectB.left && rectA.left + EPS < rectB.left\n ? -1\n : rectA.left > rectB.left && rectA.left - EPS < rectB.left\n ? 1\n : rectA.top < rectB.top && rectA.top + EPS < rectB.top\n ? -1\n : rectA.top > rectB.top && rectA.top - EPS > rectB.top\n ? 1\n : 0;\n };\n })();\n\n if (isWorker) {\n var PACKET_INDEX_WIDTH = 1;\n var PACKET_INDEX_HEIGHT = 2;\n var PACKET_INDEX_OPTIONS = 3;\n var PACKET_HEADER_SLOTS = 4;\n var processor = new PackerProcessor();\n\n self.onmessage = function (msg) {\n var data = new Float32Array(msg.data);\n var items = data.subarray(PACKET_HEADER_SLOTS, data.length);\n var slots = new Float32Array(items.length);\n var settings = data[PACKET_INDEX_OPTIONS];\n var layout = {\n items: items,\n slots: slots,\n width: data[PACKET_INDEX_WIDTH],\n height: data[PACKET_INDEX_HEIGHT],\n };\n\n // Compute the layout (width / height / slots).\n processor.computeLayout(layout, settings);\n\n // Copy layout data to the return data.\n data[PACKET_INDEX_WIDTH] = layout.width;\n data[PACKET_INDEX_HEIGHT] = layout.height;\n data.set(layout.slots, PACKET_HEADER_SLOTS);\n\n // Send layout back to the main thread.\n postMessage(data.buffer, [data.buffer]);\n };\n }\n\n return PackerProcessor;\n}\n\nvar PackerProcessor = createPackerProcessor();\n\n//\n// WORKER UTILS\n//\n\nvar blobUrl = null;\nvar activeWorkers = [];\n\nfunction createWorkerProcessors(amount, onmessage) {\n var workers = [];\n\n if (amount > 0) {\n if (!blobUrl) {\n blobUrl = URL.createObjectURL(\n new Blob(['(' + createPackerProcessor.toString() + ')(true)'], {\n type: 'application/javascript',\n })\n );\n }\n\n for (var i = 0, worker; i < amount; i++) {\n worker = new Worker(blobUrl);\n if (onmessage) worker.onmessage = onmessage;\n workers.push(worker);\n activeWorkers.push(worker);\n }\n }\n\n return workers;\n}\n\nfunction destroyWorkerProcessors(workers) {\n var worker;\n var index;\n\n for (var i = 0; i < workers.length; i++) {\n worker = workers[i];\n worker.onmessage = null;\n worker.onerror = null;\n worker.onmessageerror = null;\n worker.terminate();\n\n index = activeWorkers.indexOf(worker);\n if (index > -1) activeWorkers.splice(index, 1);\n }\n\n if (blobUrl && !activeWorkers.length) {\n URL.revokeObjectURL(blobUrl);\n blobUrl = null;\n }\n}\n\nfunction isWorkerProcessorsSupported() {\n return !!(window.Worker && window.URL && window.Blob);\n}\n\nvar FILL_GAPS = 1;\nvar HORIZONTAL = 2;\nvar ALIGN_RIGHT = 4;\nvar ALIGN_BOTTOM = 8;\nvar ROUNDING = 16;\nvar PACKET_INDEX_ID = 0;\nvar PACKET_INDEX_WIDTH = 1;\nvar PACKET_INDEX_HEIGHT = 2;\nvar PACKET_INDEX_OPTIONS = 3;\nvar PACKET_HEADER_SLOTS = 4;\n\n/**\n * @class\n * @param {Number} [numWorkers=0]\n * @param {Object} [options]\n * @param {Boolean} [options.fillGaps=false]\n * @param {Boolean} [options.horizontal=false]\n * @param {Boolean} [options.alignRight=false]\n * @param {Boolean} [options.alignBottom=false]\n * @param {Boolean} [options.rounding=false]\n */\nfunction Packer(numWorkers, options) {\n this._options = 0;\n this._processor = null;\n this._layoutQueue = [];\n this._layouts = {};\n this._layoutCallbacks = {};\n this._layoutWorkers = {};\n this._layoutWorkerData = {};\n this._workers = [];\n this._onWorkerMessage = this._onWorkerMessage.bind(this);\n\n // Set initial options.\n this.setOptions(options);\n\n // Init the worker(s) or the processor if workers can't be used.\n numWorkers = typeof numWorkers === 'number' ? Math.max(0, numWorkers) : 0;\n if (numWorkers && isWorkerProcessorsSupported()) {\n try {\n this._workers = createWorkerProcessors(numWorkers, this._onWorkerMessage);\n } catch (e) {\n this._processor = new PackerProcessor();\n }\n } else {\n this._processor = new PackerProcessor();\n }\n}\n\nPacker.prototype._sendToWorker = function () {\n if (!this._layoutQueue.length || !this._workers.length) return;\n\n var layoutId = this._layoutQueue.shift();\n var worker = this._workers.pop();\n var data = this._layoutWorkerData[layoutId];\n\n delete this._layoutWorkerData[layoutId];\n this._layoutWorkers[layoutId] = worker;\n worker.postMessage(data.buffer, [data.buffer]);\n};\n\nPacker.prototype._onWorkerMessage = function (msg) {\n var data = new Float32Array(msg.data);\n var layoutId = data[PACKET_INDEX_ID];\n var layout = this._layouts[layoutId];\n var callback = this._layoutCallbacks[layoutId];\n var worker = this._layoutWorkers[layoutId];\n\n if (layout) delete this._layouts[layoutId];\n if (callback) delete this._layoutCallbacks[layoutId];\n if (worker) delete this._layoutWorkers[layoutId];\n\n if (layout && callback) {\n layout.width = data[PACKET_INDEX_WIDTH];\n layout.height = data[PACKET_INDEX_HEIGHT];\n layout.slots = data.subarray(PACKET_HEADER_SLOTS, data.length);\n this._finalizeLayout(layout);\n callback(layout);\n }\n\n if (worker) {\n this._workers.push(worker);\n this._sendToWorker();\n }\n};\n\nPacker.prototype._finalizeLayout = function (layout) {\n var grid = layout._grid;\n var isHorizontal = layout._settings & HORIZONTAL;\n var isBorderBox = grid._boxSizing === 'border-box';\n\n delete layout._grid;\n delete layout._settings;\n\n layout.styles = {};\n\n if (isHorizontal) {\n layout.styles.width =\n (isBorderBox ? layout.width + grid._borderLeft + grid._borderRight : layout.width) + 'px';\n } else {\n layout.styles.height =\n (isBorderBox ? layout.height + grid._borderTop + grid._borderBottom : layout.height) + 'px';\n }\n\n return layout;\n};\n\n/**\n * @public\n * @param {Object} [options]\n * @param {Boolean} [options.fillGaps]\n * @param {Boolean} [options.horizontal]\n * @param {Boolean} [options.alignRight]\n * @param {Boolean} [options.alignBottom]\n * @param {Boolean} [options.rounding]\n */\nPacker.prototype.setOptions = function (options) {\n if (!options) return;\n\n var fillGaps;\n if (typeof options.fillGaps === 'boolean') {\n fillGaps = options.fillGaps ? FILL_GAPS : 0;\n } else {\n fillGaps = this._options & FILL_GAPS;\n }\n\n var horizontal;\n if (typeof options.horizontal === 'boolean') {\n horizontal = options.horizontal ? HORIZONTAL : 0;\n } else {\n horizontal = this._options & HORIZONTAL;\n }\n\n var alignRight;\n if (typeof options.alignRight === 'boolean') {\n alignRight = options.alignRight ? ALIGN_RIGHT : 0;\n } else {\n alignRight = this._options & ALIGN_RIGHT;\n }\n\n var alignBottom;\n if (typeof options.alignBottom === 'boolean') {\n alignBottom = options.alignBottom ? ALIGN_BOTTOM : 0;\n } else {\n alignBottom = this._options & ALIGN_BOTTOM;\n }\n\n var rounding;\n if (typeof options.rounding === 'boolean') {\n rounding = options.rounding ? ROUNDING : 0;\n } else {\n rounding = this._options & ROUNDING;\n }\n\n this._options = fillGaps | horizontal | alignRight | alignBottom | rounding;\n};\n\n/**\n * @public\n * @param {Grid} grid\n * @param {Number} layoutId\n * @param {Item[]} items\n * @param {Number} width\n * @param {Number} height\n * @param {Function} callback\n * @returns {?Function}\n */\nPacker.prototype.createLayout = function (grid, layoutId, items, width, height, callback) {\n if (this._layouts[layoutId]) {\n throw new Error('A layout with the provided id is currently being processed.');\n }\n\n var horizontal = this._options & HORIZONTAL;\n var layout = {\n id: layoutId,\n items: items,\n slots: null,\n width: horizontal ? 0 : width,\n height: !horizontal ? 0 : height,\n // Temporary data, which will be removed before sending the layout data\n // outside of Packer's context.\n _grid: grid,\n _settings: this._options,\n };\n\n // If there are no items let's call the callback immediately.\n if (!items.length) {\n layout.slots = [];\n this._finalizeLayout(layout);\n callback(layout);\n return;\n }\n\n // Create layout synchronously if needed.\n if (this._processor) {\n layout.slots = window.Float32Array\n ? new Float32Array(items.length * 2)\n : new Array(items.length * 2);\n this._processor.computeLayout(layout, layout._settings);\n this._finalizeLayout(layout);\n callback(layout);\n return;\n }\n\n // Worker data.\n var data = new Float32Array(PACKET_HEADER_SLOTS + items.length * 2);\n\n // Worker data header.\n data[PACKET_INDEX_ID] = layoutId;\n data[PACKET_INDEX_WIDTH] = layout.width;\n data[PACKET_INDEX_HEIGHT] = layout.height;\n data[PACKET_INDEX_OPTIONS] = layout._settings;\n\n // Worker data items.\n var i, j, item;\n for (i = 0, j = PACKET_HEADER_SLOTS - 1, item; i < items.length; i++) {\n item = items[i];\n data[++j] = item._width + item._marginLeft + item._marginRight;\n data[++j] = item._height + item._marginTop + item._marginBottom;\n }\n\n this._layoutQueue.push(layoutId);\n this._layouts[layoutId] = layout;\n this._layoutCallbacks[layoutId] = callback;\n this._layoutWorkerData[layoutId] = data;\n\n this._sendToWorker();\n\n return this.cancelLayout.bind(this, layoutId);\n};\n\n/**\n * @public\n * @param {Number} layoutId\n */\nPacker.prototype.cancelLayout = function (layoutId) {\n var layout = this._layouts[layoutId];\n if (!layout) return;\n\n delete this._layouts[layoutId];\n delete this._layoutCallbacks[layoutId];\n\n if (this._layoutWorkerData[layoutId]) {\n delete this._layoutWorkerData[layoutId];\n var queueIndex = this._layoutQueue.indexOf(layoutId);\n if (queueIndex > -1) this._layoutQueue.splice(queueIndex, 1);\n }\n};\n\n/**\n * @public\n */\nPacker.prototype.destroy = function () {\n // Move all currently used workers back in the workers array.\n for (var key in this._layoutWorkers) {\n this._workers.push(this._layoutWorkers[key]);\n }\n\n // Destroy all instance's workers.\n destroyWorkerProcessors(this._workers);\n\n // Reset data.\n this._workers.length = 0;\n this._layoutQueue.length = 0;\n this._layouts = {};\n this._layoutCallbacks = {};\n this._layoutWorkers = {};\n this._layoutWorkerData = {};\n};\n\nvar debounceId = 0;\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. The returned function accepts one argument which, when\n * being `true`, cancels the debounce function immediately. When the debounce\n * function is canceled it cannot be invoked again.\n *\n * @param {Function} fn\n * @param {Number} durationMs\n * @returns {Function}\n */\nfunction debounce(fn, durationMs) {\n var id = ++debounceId;\n var timer = 0;\n var lastTime = 0;\n var isCanceled = false;\n var tick = function (time) {\n if (isCanceled) return;\n\n if (lastTime) timer -= time - lastTime;\n lastTime = time;\n\n if (timer > 0) {\n addDebounceTick(id, tick);\n } else {\n timer = lastTime = 0;\n fn();\n }\n };\n\n return function (cancel) {\n if (isCanceled) return;\n\n if (durationMs <= 0) {\n if (cancel !== true) fn();\n return;\n }\n\n if (cancel === true) {\n isCanceled = true;\n timer = lastTime = 0;\n tick = undefined;\n cancelDebounceTick(id);\n return;\n }\n\n if (timer <= 0) {\n timer = durationMs;\n tick(0);\n } else {\n timer = durationMs;\n }\n };\n}\n\nvar htmlCollectionType = '[object HTMLCollection]';\nvar nodeListType = '[object NodeList]';\n\n/**\n * Check if a value is a node list or a html collection.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isNodeList(val) {\n var type = Object.prototype.toString.call(val);\n return type === htmlCollectionType || type === nodeListType;\n}\n\nvar objectType = 'object';\nvar objectToStringType = '[object Object]';\nvar toString = Object.prototype.toString;\n\n/**\n * Check if a value is a plain object.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isPlainObject(val) {\n return typeof val === objectType && toString.call(val) === objectToStringType;\n}\n\nfunction noop() {}\n\n/**\n * Converts a value to an array or clones an array.\n *\n * @param {*} val\n * @returns {Array}\n */\nfunction toArray(val) {\n return isNodeList(val) ? Array.prototype.slice.call(val) : Array.prototype.concat(val);\n}\n\nvar NUMBER_TYPE = 'number';\nvar STRING_TYPE = 'string';\nvar INSTANT_LAYOUT = 'instant';\nvar layoutId = 0;\n\n/**\n * Creates a new Grid instance.\n *\n * @class\n * @param {(HTMLElement|String)} element\n * @param {Object} [options]\n * @param {(String|HTMLElement[]|NodeList|HTMLCollection)} [options.items=\"*\"]\n * @param {Number} [options.showDuration=300]\n * @param {String} [options.showEasing=\"ease\"]\n * @param {Object} [options.visibleStyles={opacity: \"1\", transform: \"scale(1)\"}]\n * @param {Number} [options.hideDuration=300]\n * @param {String} [options.hideEasing=\"ease\"]\n * @param {Object} [options.hiddenStyles={opacity: \"0\", transform: \"scale(0.5)\"}]\n * @param {(Function|Object)} [options.layout]\n * @param {Boolean} [options.layout.fillGaps=false]\n * @param {Boolean} [options.layout.horizontal=false]\n * @param {Boolean} [options.layout.alignRight=false]\n * @param {Boolean} [options.layout.alignBottom=false]\n * @param {Boolean} [options.layout.rounding=false]\n * @param {(Boolean|Number)} [options.layoutOnResize=150]\n * @param {Boolean} [options.layoutOnInit=true]\n * @param {Number} [options.layoutDuration=300]\n * @param {String} [options.layoutEasing=\"ease\"]\n * @param {?Object} [options.sortData=null]\n * @param {Boolean} [options.dragEnabled=false]\n * @param {?String} [options.dragHandle=null]\n * @param {?HtmlElement} [options.dragContainer=null]\n * @param {?Function} [options.dragStartPredicate]\n * @param {Number} [options.dragStartPredicate.distance=0]\n * @param {Number} [options.dragStartPredicate.delay=0]\n * @param {String} [options.dragAxis=\"xy\"]\n * @param {(Boolean|Function)} [options.dragSort=true]\n * @param {Object} [options.dragSortHeuristics]\n * @param {Number} [options.dragSortHeuristics.sortInterval=100]\n * @param {Number} [options.dragSortHeuristics.minDragDistance=10]\n * @param {Number} [options.dragSortHeuristics.minBounceBackAngle=1]\n * @param {(Function|Object)} [options.dragSortPredicate]\n * @param {Number} [options.dragSortPredicate.threshold=50]\n * @param {String} [options.dragSortPredicate.action=\"move\"]\n * @param {String} [options.dragSortPredicate.migrateAction=\"move\"]\n * @param {Object} [options.dragRelease]\n * @param {Number} [options.dragRelease.duration=300]\n * @param {String} [options.dragRelease.easing=\"ease\"]\n * @param {Boolean} [options.dragRelease.useDragContainer=true]\n * @param {Object} [options.dragCssProps]\n * @param {Object} [options.dragPlaceholder]\n * @param {Boolean} [options.dragPlaceholder.enabled=false]\n * @param {?Function} [options.dragPlaceholder.createElement=null]\n * @param {?Function} [options.dragPlaceholder.onCreate=null]\n * @param {?Function} [options.dragPlaceholder.onRemove=null]\n * @param {Object} [options.dragAutoScroll]\n * @param {(Function|Array)} [options.dragAutoScroll.targets=[]]\n * @param {?Function} [options.dragAutoScroll.handle=null]\n * @param {Number} [options.dragAutoScroll.threshold=50]\n * @param {Number} [options.dragAutoScroll.safeZone=0.2]\n * @param {(Function|Number)} [options.dragAutoScroll.speed]\n * @param {Boolean} [options.dragAutoScroll.sortDuringScroll=true]\n * @param {Boolean} [options.dragAutoScroll.smoothStop=false]\n * @param {?Function} [options.dragAutoScroll.onStart=null]\n * @param {?Function} [options.dragAutoScroll.onStop=null]\n * @param {String} [options.containerClass=\"muuri\"]\n * @param {String} [options.itemClass=\"muuri-item\"]\n * @param {String} [options.itemVisibleClass=\"muuri-item-visible\"]\n * @param {String} [options.itemHiddenClass=\"muuri-item-hidden\"]\n * @param {String} [options.itemPositioningClass=\"muuri-item-positioning\"]\n * @param {String} [options.itemDraggingClass=\"muuri-item-dragging\"]\n * @param {String} [options.itemReleasingClass=\"muuri-item-releasing\"]\n * @param {String} [options.itemPlaceholderClass=\"muuri-item-placeholder\"]\n */\nfunction Grid(element, options) {\n // Allow passing element as selector string\n if (typeof element === STRING_TYPE) {\n element = document.querySelector(element);\n }\n\n // Throw an error if the container element is not body element or does not\n // exist within the body element.\n var isElementInDom = element.getRootNode\n ? element.getRootNode({ composed: true }) === document\n : document.body.contains(element);\n if (!isElementInDom || element === document.documentElement) {\n throw new Error('Container element must be an existing DOM element.');\n }\n\n // Create instance settings by merging the options with default options.\n var settings = mergeSettings(Grid.defaultOptions, options);\n settings.visibleStyles = normalizeStyles(settings.visibleStyles);\n settings.hiddenStyles = normalizeStyles(settings.hiddenStyles);\n if (!isFunction(settings.dragSort)) {\n settings.dragSort = !!settings.dragSort;\n }\n\n this._id = createUid();\n this._element = element;\n this._settings = settings;\n this._isDestroyed = false;\n this._items = [];\n this._layout = {\n id: 0,\n items: [],\n slots: [],\n };\n this._isLayoutFinished = true;\n this._nextLayoutData = null;\n this._emitter = new Emitter();\n this._onLayoutDataReceived = this._onLayoutDataReceived.bind(this);\n\n // Store grid instance to the grid instances collection.\n GRID_INSTANCES[this._id] = this;\n\n // Add container element's class name.\n addClass(element, settings.containerClass);\n\n // If layoutOnResize option is a valid number sanitize it and bind the resize\n // handler.\n bindLayoutOnResize(this, settings.layoutOnResize);\n\n // Add initial items.\n this.add(getInitialGridElements(element, settings.items), { layout: false });\n\n // Layout on init if necessary.\n if (settings.layoutOnInit) {\n this.layout(true);\n }\n}\n\n/**\n * Public properties\n * *****************\n */\n\n/**\n * @public\n * @static\n * @see Item\n */\nGrid.Item = Item;\n\n/**\n * @public\n * @static\n * @see ItemLayout\n */\nGrid.ItemLayout = ItemLayout;\n\n/**\n * @public\n * @static\n * @see ItemVisibility\n */\nGrid.ItemVisibility = ItemVisibility;\n\n/**\n * @public\n * @static\n * @see ItemMigrate\n */\nGrid.ItemMigrate = ItemMigrate;\n\n/**\n * @public\n * @static\n * @see ItemDrag\n */\nGrid.ItemDrag = ItemDrag;\n\n/**\n * @public\n * @static\n * @see ItemDragRelease\n */\nGrid.ItemDragRelease = ItemDragRelease;\n\n/**\n * @public\n * @static\n * @see ItemDragPlaceholder\n */\nGrid.ItemDragPlaceholder = ItemDragPlaceholder;\n\n/**\n * @public\n * @static\n * @see Emitter\n */\nGrid.Emitter = Emitter;\n\n/**\n * @public\n * @static\n * @see Animator\n */\nGrid.Animator = Animator;\n\n/**\n * @public\n * @static\n * @see Dragger\n */\nGrid.Dragger = Dragger;\n\n/**\n * @public\n * @static\n * @see Packer\n */\nGrid.Packer = Packer;\n\n/**\n * @public\n * @static\n * @see AutoScroller\n */\nGrid.AutoScroller = AutoScroller;\n\n/**\n * The default Packer instance used by default for all layouts.\n *\n * @public\n * @static\n * @type {Packer}\n */\nGrid.defaultPacker = new Packer(2);\n\n/**\n * Default options for Grid instance.\n *\n * @public\n * @static\n * @type {Object}\n */\nGrid.defaultOptions = {\n // Initial item elements\n items: '*',\n\n // Default show animation\n showDuration: 300,\n showEasing: 'ease',\n\n // Default hide animation\n hideDuration: 300,\n hideEasing: 'ease',\n\n // Item's visible/hidden state styles\n visibleStyles: {\n opacity: '1',\n transform: 'scale(1)',\n },\n hiddenStyles: {\n opacity: '0',\n transform: 'scale(0.5)',\n },\n\n // Layout\n layout: {\n fillGaps: false,\n horizontal: false,\n alignRight: false,\n alignBottom: false,\n rounding: false,\n },\n layoutOnResize: 150,\n layoutOnInit: true,\n layoutDuration: 300,\n layoutEasing: 'ease',\n\n // Sorting\n sortData: null,\n\n // Drag & Drop\n dragEnabled: false,\n dragContainer: null,\n dragHandle: null,\n dragStartPredicate: {\n distance: 0,\n delay: 0,\n },\n dragAxis: 'xy',\n dragSort: true,\n dragSortHeuristics: {\n sortInterval: 100,\n minDragDistance: 10,\n minBounceBackAngle: 1,\n },\n dragSortPredicate: {\n threshold: 50,\n action: ACTION_MOVE,\n migrateAction: ACTION_MOVE,\n },\n dragRelease: {\n duration: 300,\n easing: 'ease',\n useDragContainer: true,\n },\n dragCssProps: {\n touchAction: 'none',\n userSelect: 'none',\n userDrag: 'none',\n tapHighlightColor: 'rgba(0, 0, 0, 0)',\n touchCallout: 'none',\n contentZooming: 'none',\n },\n dragPlaceholder: {\n enabled: false,\n createElement: null,\n onCreate: null,\n onRemove: null,\n },\n dragAutoScroll: {\n targets: [],\n handle: null,\n threshold: 50,\n safeZone: 0.2,\n speed: AutoScroller.smoothSpeed(1000, 2000, 2500),\n sortDuringScroll: true,\n smoothStop: false,\n onStart: null,\n onStop: null,\n },\n\n // Classnames\n containerClass: 'muuri',\n itemClass: 'muuri-item',\n itemVisibleClass: 'muuri-item-shown',\n itemHiddenClass: 'muuri-item-hidden',\n itemPositioningClass: 'muuri-item-positioning',\n itemDraggingClass: 'muuri-item-dragging',\n itemReleasingClass: 'muuri-item-releasing',\n itemPlaceholderClass: 'muuri-item-placeholder',\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Bind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Grid}\n */\nGrid.prototype.on = function (event, listener) {\n this._emitter.on(event, listener);\n return this;\n};\n\n/**\n * Unbind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Grid}\n */\nGrid.prototype.off = function (event, listener) {\n this._emitter.off(event, listener);\n return this;\n};\n\n/**\n * Get the container element.\n *\n * @public\n * @returns {HTMLElement}\n */\nGrid.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Get instance's item by element or by index. Target can also be an Item\n * instance in which case the function returns the item if it exists within\n * related Grid instance. If nothing is found with the provided target, null\n * is returned.\n *\n * @private\n * @param {(HtmlElement|Number|Item)} [target]\n * @returns {?Item}\n */\nGrid.prototype.getItem = function (target) {\n // If no target is specified or the instance is destroyed, return null.\n if (this._isDestroyed || (!target && target !== 0)) {\n return null;\n }\n\n // If target is number return the item in that index. If the number is lower\n // than zero look for the item starting from the end of the items array. For\n // example -1 for the last item, -2 for the second last item, etc.\n if (typeof target === NUMBER_TYPE) {\n return this._items[target > -1 ? target : this._items.length + target] || null;\n }\n\n // If the target is an instance of Item return it if it is attached to this\n // Grid instance, otherwise return null.\n if (target instanceof Item) {\n return target._gridId === this._id ? target : null;\n }\n\n // In other cases let's assume that the target is an element, so let's try\n // to find an item that matches the element and return it. If item is not\n // found return null.\n if (ITEM_ELEMENT_MAP) {\n var item = ITEM_ELEMENT_MAP.get(target);\n return item && item._gridId === this._id ? item : null;\n } else {\n for (var i = 0; i < this._items.length; i++) {\n if (this._items[i]._element === target) {\n return this._items[i];\n }\n }\n }\n\n return null;\n};\n\n/**\n * Get all items. Optionally you can provide specific targets (elements,\n * indices and item instances). All items that are not found are omitted from\n * the returned array.\n *\n * @public\n * @param {(HtmlElement|Number|Item|Array)} [targets]\n * @returns {Item[]}\n */\nGrid.prototype.getItems = function (targets) {\n // Return all items immediately if no targets were provided or if the\n // instance is destroyed.\n if (this._isDestroyed || targets === undefined) {\n return this._items.slice(0);\n }\n\n var items = [];\n var i, item;\n\n if (Array.isArray(targets) || isNodeList(targets)) {\n for (i = 0; i < targets.length; i++) {\n item = this.getItem(targets[i]);\n if (item) items.push(item);\n }\n } else {\n item = this.getItem(targets);\n if (item) items.push(item);\n }\n\n return items;\n};\n\n/**\n * Update the cached dimensions of the instance's items. By default all the\n * items are refreshed, but you can also provide an array of target items as the\n * first argument if you want to refresh specific items. Note that all hidden\n * items are not refreshed by default since their \"display\" property is \"none\"\n * and their dimensions are therefore not readable from the DOM. However, if you\n * do want to force update hidden item dimensions too you can provide `true`\n * as the second argument, which makes the elements temporarily visible while\n * their dimensions are being read.\n *\n * @public\n * @param {Item[]} [items]\n * @param {Boolean} [force=false]\n * @returns {Grid}\n */\nGrid.prototype.refreshItems = function (items, force) {\n if (this._isDestroyed) return this;\n\n var targets = items || this._items;\n var i, item, style, hiddenItemStyles;\n\n if (force === true) {\n hiddenItemStyles = [];\n for (i = 0; i < targets.length; i++) {\n item = targets[i];\n if (!item.isVisible() && !item.isHiding()) {\n style = item.getElement().style;\n style.visibility = 'hidden';\n style.display = '';\n hiddenItemStyles.push(style);\n }\n }\n }\n\n for (i = 0; i < targets.length; i++) {\n targets[i]._refreshDimensions(force);\n }\n\n if (force === true) {\n for (i = 0; i < hiddenItemStyles.length; i++) {\n style = hiddenItemStyles[i];\n style.visibility = '';\n style.display = 'none';\n }\n hiddenItemStyles.length = 0;\n }\n\n return this;\n};\n\n/**\n * Update the sort data of the instance's items. By default all the items are\n * refreshed, but you can also provide an array of target items if you want to\n * refresh specific items.\n *\n * @public\n * @param {Item[]} [items]\n * @returns {Grid}\n */\nGrid.prototype.refreshSortData = function (items) {\n if (this._isDestroyed) return this;\n\n var targets = items || this._items;\n for (var i = 0; i < targets.length; i++) {\n targets[i]._refreshSortData();\n }\n\n return this;\n};\n\n/**\n * Synchronize the item elements to match the order of the items in the DOM.\n * This comes handy if you need to keep the DOM structure matched with the\n * order of the items. Note that if an item's element is not currently a child\n * of the container element (if it is dragged for example) it is ignored and\n * left untouched.\n *\n * @public\n * @returns {Grid}\n */\nGrid.prototype.synchronize = function () {\n if (this._isDestroyed) return this;\n\n var items = this._items;\n if (!items.length) return this;\n\n var fragment;\n var element;\n\n for (var i = 0; i < items.length; i++) {\n element = items[i]._element;\n if (element.parentNode === this._element) {\n fragment = fragment || document.createDocumentFragment();\n fragment.appendChild(element);\n }\n }\n\n if (!fragment) return this;\n\n this._element.appendChild(fragment);\n this._emit(EVENT_SYNCHRONIZE);\n\n return this;\n};\n\n/**\n * Calculate and apply item positions.\n *\n * @public\n * @param {Boolean} [instant=false]\n * @param {Function} [onFinish]\n * @returns {Grid}\n */\nGrid.prototype.layout = function (instant, onFinish) {\n if (this._isDestroyed) return this;\n\n // Cancel unfinished layout algorithm if possible.\n var unfinishedLayout = this._nextLayoutData;\n if (unfinishedLayout && isFunction(unfinishedLayout.cancel)) {\n unfinishedLayout.cancel();\n }\n\n // Compute layout id (let's stay in Float32 range).\n layoutId = (layoutId % MAX_SAFE_FLOAT32_INTEGER) + 1;\n var nextLayoutId = layoutId;\n\n // Store data for next layout.\n this._nextLayoutData = {\n id: nextLayoutId,\n instant: instant,\n onFinish: onFinish,\n cancel: null,\n };\n\n // Collect layout items (all active grid items).\n var items = this._items;\n var layoutItems = [];\n for (var i = 0; i < items.length; i++) {\n if (items[i]._isActive) layoutItems.push(items[i]);\n }\n\n // Compute new layout.\n this._refreshDimensions();\n var gridWidth = this._width - this._borderLeft - this._borderRight;\n var gridHeight = this._height - this._borderTop - this._borderBottom;\n var layoutSettings = this._settings.layout;\n var cancelLayout;\n if (isFunction(layoutSettings)) {\n cancelLayout = layoutSettings(\n this,\n nextLayoutId,\n layoutItems,\n gridWidth,\n gridHeight,\n this._onLayoutDataReceived\n );\n } else {\n Grid.defaultPacker.setOptions(layoutSettings);\n cancelLayout = Grid.defaultPacker.createLayout(\n this,\n nextLayoutId,\n layoutItems,\n gridWidth,\n gridHeight,\n this._onLayoutDataReceived\n );\n }\n\n // Store layout cancel method if available.\n if (\n isFunction(cancelLayout) &&\n this._nextLayoutData &&\n this._nextLayoutData.id === nextLayoutId\n ) {\n this._nextLayoutData.cancel = cancelLayout;\n }\n\n return this;\n};\n\n/**\n * Add new items by providing the elements you wish to add to the instance and\n * optionally provide the index where you want the items to be inserted into.\n * All elements that are not already children of the container element will be\n * automatically appended to the container element. If an element has it's CSS\n * display property set to \"none\" it will be marked as inactive during the\n * initiation process. As long as the item is inactive it will not be part of\n * the layout, but it will retain it's index. You can activate items at any\n * point with grid.show() method. This method will automatically call\n * grid.layout() if one or more of the added elements are visible. If only\n * hidden items are added no layout will be called. All the new visible items\n * are positioned without animation during their first layout.\n *\n * @public\n * @param {(HTMLElement|HTMLElement[])} elements\n * @param {Object} [options]\n * @param {Number} [options.index=-1]\n * @param {Boolean} [options.active]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Item[]}\n */\nGrid.prototype.add = function (elements, options) {\n if (this._isDestroyed || !elements) return [];\n\n var newItems = toArray(elements);\n if (!newItems.length) return newItems;\n\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var items = this._items;\n var needsLayout = false;\n var fragment;\n var element;\n var item;\n var i;\n\n // Collect all the elements that are not child of the grid element into a\n // document fragment.\n for (i = 0; i < newItems.length; i++) {\n element = newItems[i];\n if (element.parentNode !== this._element) {\n fragment = fragment || document.createDocumentFragment();\n fragment.appendChild(element);\n }\n }\n\n // If we have a fragment, let's append it to the grid element. We could just\n // not do this and the `new Item()` instantiation would handle this for us,\n // but this way we can add the elements into the DOM a bit faster.\n if (fragment) {\n this._element.appendChild(fragment);\n }\n\n // Map provided elements into new grid items.\n for (i = 0; i < newItems.length; i++) {\n element = newItems[i];\n item = newItems[i] = new Item(this, element, opts.active);\n\n // If the item to be added is active, we need to do a layout. Also, we\n // need to mark the item with the skipNextAnimation flag to make it\n // position instantly (without animation) during the next layout. Without\n // the hack the item would animate to it's new position from the northwest\n // corner of the grid, which feels a bit buggy (imho).\n if (item._isActive) {\n needsLayout = true;\n item._layout._skipNextAnimation = true;\n }\n }\n\n // Set up the items' initial dimensions and sort data. This needs to be done\n // in a separate loop to avoid layout thrashing.\n for (i = 0; i < newItems.length; i++) {\n item = newItems[i];\n item._refreshDimensions();\n item._refreshSortData();\n }\n\n // Add the new items to the items collection to correct index.\n arrayInsert(items, newItems, opts.index);\n\n // Emit add event.\n if (this._hasListeners(EVENT_ADD)) {\n this._emit(EVENT_ADD, newItems.slice(0));\n }\n\n // If layout is needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n return newItems;\n};\n\n/**\n * Remove items from the instance.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.removeElements=false]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Item[]}\n */\nGrid.prototype.remove = function (items, options) {\n if (this._isDestroyed || !items.length) return [];\n\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var needsLayout = false;\n var allItems = this.getItems();\n var targetItems = [];\n var indices = [];\n var index;\n var item;\n var i;\n\n // Remove the individual items.\n for (i = 0; i < items.length; i++) {\n item = items[i];\n if (item._isDestroyed) continue;\n\n index = this._items.indexOf(item);\n if (index === -1) continue;\n\n if (item._isActive) needsLayout = true;\n\n targetItems.push(item);\n indices.push(allItems.indexOf(item));\n item._destroy(opts.removeElements);\n this._items.splice(index, 1);\n }\n\n // Emit remove event.\n if (this._hasListeners(EVENT_REMOVE)) {\n this._emit(EVENT_REMOVE, targetItems.slice(0), indices);\n }\n\n // If layout is needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n return targetItems;\n};\n\n/**\n * Show specific instance items.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.show = function (items, options) {\n if (!this._isDestroyed && items.length) {\n this._setItemsVisibility(items, true, options);\n }\n return this;\n};\n\n/**\n * Hide specific instance items.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.hide = function (items, options) {\n if (!this._isDestroyed && items.length) {\n this._setItemsVisibility(items, false, options);\n }\n return this;\n};\n\n/**\n * Filter items. Expects at least one argument, a predicate, which should be\n * either a function or a string. The predicate callback is executed for every\n * item in the instance. If the return value of the predicate is truthy the\n * item in question will be shown and otherwise hidden. The predicate callback\n * receives the item instance as it's argument. If the predicate is a string\n * it is considered to be a selector and it is checked against every item\n * element in the instance with the native element.matches() method. All the\n * matching items will be shown and others hidden.\n *\n * @public\n * @param {(Function|String)} predicate\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {FilterCallback} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.filter = function (predicate, options) {\n if (this._isDestroyed || !this._items.length) return this;\n\n var itemsToShow = [];\n var itemsToHide = [];\n var isPredicateString = typeof predicate === STRING_TYPE;\n var isPredicateFn = isFunction(predicate);\n var opts = options || {};\n var isInstant = opts.instant === true;\n var syncWithLayout = opts.syncWithLayout;\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var onFinish = isFunction(opts.onFinish) ? opts.onFinish : null;\n var tryFinishCounter = -1;\n var tryFinish = noop;\n var item;\n var i;\n\n // If we have onFinish callback, let's create proper tryFinish callback.\n if (onFinish) {\n tryFinish = function () {\n ++tryFinishCounter && onFinish(itemsToShow.slice(0), itemsToHide.slice(0));\n };\n }\n\n // Check which items need to be shown and which hidden.\n if (isPredicateFn || isPredicateString) {\n for (i = 0; i < this._items.length; i++) {\n item = this._items[i];\n if (isPredicateFn ? predicate(item) : elementMatches(item._element, predicate)) {\n itemsToShow.push(item);\n } else {\n itemsToHide.push(item);\n }\n }\n }\n\n // Show items that need to be shown.\n if (itemsToShow.length) {\n this.show(itemsToShow, {\n instant: isInstant,\n syncWithLayout: syncWithLayout,\n onFinish: tryFinish,\n layout: false,\n });\n } else {\n tryFinish();\n }\n\n // Hide items that need to be hidden.\n if (itemsToHide.length) {\n this.hide(itemsToHide, {\n instant: isInstant,\n syncWithLayout: syncWithLayout,\n onFinish: tryFinish,\n layout: false,\n });\n } else {\n tryFinish();\n }\n\n // If there are any items to filter.\n if (itemsToShow.length || itemsToHide.length) {\n // Emit filter event.\n if (this._hasListeners(EVENT_FILTER)) {\n this._emit(EVENT_FILTER, itemsToShow.slice(0), itemsToHide.slice(0));\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n }\n\n return this;\n};\n\n/**\n * Sort items. There are three ways to sort the items. The first is simply by\n * providing a function as the comparer which works identically to native\n * array sort. Alternatively you can sort by the sort data you have provided\n * in the instance's options. Just provide the sort data key(s) as a string\n * (separated by space) and the items will be sorted based on the provided\n * sort data keys. Lastly you have the opportunity to provide a presorted\n * array of items which will be used to sync the internal items array in the\n * same order.\n *\n * @public\n * @param {(Function|String|Item[])} comparer\n * @param {Object} [options]\n * @param {Boolean} [options.descending=false]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.sort = (function () {\n var sortComparer;\n var isDescending;\n var origItems;\n var indexMap;\n\n function defaultComparer(a, b) {\n var result = 0;\n var criteriaName;\n var criteriaOrder;\n var valA;\n var valB;\n\n // Loop through the list of sort criteria.\n for (var i = 0; i < sortComparer.length; i++) {\n // Get the criteria name, which should match an item's sort data key.\n criteriaName = sortComparer[i][0];\n criteriaOrder = sortComparer[i][1];\n\n // Get items' cached sort values for the criteria. If the item has no sort\n // data let's update the items sort data (this is a lazy load mechanism).\n valA = (a._sortData ? a : a._refreshSortData())._sortData[criteriaName];\n valB = (b._sortData ? b : b._refreshSortData())._sortData[criteriaName];\n\n // Sort the items in descending order if defined so explicitly. Otherwise\n // sort items in ascending order.\n if (criteriaOrder === 'desc' || (!criteriaOrder && isDescending)) {\n result = valB < valA ? -1 : valB > valA ? 1 : 0;\n } else {\n result = valA < valB ? -1 : valA > valB ? 1 : 0;\n }\n\n // If we have -1 or 1 as the return value, let's return it immediately.\n if (result) return result;\n }\n\n // If values are equal let's compare the item indices to make sure we\n // have a stable sort. Note that this is not necessary in evergreen browsers\n // because Array.sort() is nowadays stable. However, in order to guarantee\n // same results in older browsers we need this.\n if (!result) {\n if (!indexMap) indexMap = createIndexMap(origItems);\n result = isDescending ? compareIndexMap(indexMap, b, a) : compareIndexMap(indexMap, a, b);\n }\n return result;\n }\n\n function customComparer(a, b) {\n var result = isDescending ? -sortComparer(a, b) : sortComparer(a, b);\n if (!result) {\n if (!indexMap) indexMap = createIndexMap(origItems);\n result = isDescending ? compareIndexMap(indexMap, b, a) : compareIndexMap(indexMap, a, b);\n }\n return result;\n }\n\n return function (comparer, options) {\n if (this._isDestroyed || this._items.length < 2) return this;\n\n var items = this._items;\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n\n // Setup parent scope data.\n isDescending = !!opts.descending;\n origItems = items.slice(0);\n indexMap = null;\n\n // If function is provided do a native array sort.\n if (isFunction(comparer)) {\n sortComparer = comparer;\n items.sort(customComparer);\n }\n // Otherwise if we got a string, let's sort by the sort data as provided in\n // the instance's options.\n else if (typeof comparer === STRING_TYPE) {\n sortComparer = comparer\n .trim()\n .split(' ')\n .filter(function (val) {\n return val;\n })\n .map(function (val) {\n return val.split(':');\n });\n items.sort(defaultComparer);\n }\n // Otherwise if we got an array, let's assume it's a presorted array of the\n // items and order the items based on it. Here we blindly trust that the\n // presorted array consists of the same item instances as the current\n // `gird._items` array.\n else if (Array.isArray(comparer)) {\n items.length = 0;\n items.push.apply(items, comparer);\n }\n // Otherwise let's throw an error.\n else {\n sortComparer = isDescending = origItems = indexMap = null;\n throw new Error('Invalid comparer argument provided.');\n }\n\n // Emit sort event.\n if (this._hasListeners(EVENT_SORT)) {\n this._emit(EVENT_SORT, items.slice(0), origItems);\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n // Reset data (to avoid mem leaks).\n sortComparer = isDescending = origItems = indexMap = null;\n\n return this;\n };\n})();\n\n/**\n * Move item to another index or in place of another item.\n *\n * @public\n * @param {(HtmlElement|Number|Item)} item\n * @param {(HtmlElement|Number|Item)} position\n * @param {Object} [options]\n * @param {String} [options.action=\"move\"]\n * - Accepts either \"move\" or \"swap\".\n * - \"move\" moves the item in place of the other item.\n * - \"swap\" swaps the position of the items.\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.move = function (item, position, options) {\n if (this._isDestroyed || this._items.length < 2) return this;\n\n var items = this._items;\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var isSwap = opts.action === ACTION_SWAP;\n var action = isSwap ? ACTION_SWAP : ACTION_MOVE;\n var fromItem = this.getItem(item);\n var toItem = this.getItem(position);\n var fromIndex;\n var toIndex;\n\n // Make sure the items exist and are not the same.\n if (fromItem && toItem && fromItem !== toItem) {\n // Get the indices of the items.\n fromIndex = items.indexOf(fromItem);\n toIndex = items.indexOf(toItem);\n\n // Do the move/swap.\n if (isSwap) {\n arraySwap(items, fromIndex, toIndex);\n } else {\n arrayMove(items, fromIndex, toIndex);\n }\n\n // Emit move event.\n if (this._hasListeners(EVENT_MOVE)) {\n this._emit(EVENT_MOVE, {\n item: fromItem,\n fromIndex: fromIndex,\n toIndex: toIndex,\n action: action,\n });\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n }\n\n return this;\n};\n\n/**\n * Send item to another Grid instance.\n *\n * @public\n * @param {(HtmlElement|Number|Item)} item\n * @param {Grid} targetGrid\n * @param {(HtmlElement|Number|Item)} position\n * @param {Object} [options]\n * @param {HTMLElement} [options.appendTo=document.body]\n * @param {(Boolean|Function|String)} [options.layoutSender=true]\n * @param {(Boolean|Function|String)} [options.layoutReceiver=true]\n * @returns {Grid}\n */\nGrid.prototype.send = function (item, targetGrid, position, options) {\n if (this._isDestroyed || targetGrid._isDestroyed || this === targetGrid) return this;\n\n // Make sure we have a valid target item.\n item = this.getItem(item);\n if (!item) return this;\n\n var opts = options || {};\n var container = opts.appendTo || document.body;\n var layoutSender = opts.layoutSender ? opts.layoutSender : opts.layoutSender === undefined;\n var layoutReceiver = opts.layoutReceiver\n ? opts.layoutReceiver\n : opts.layoutReceiver === undefined;\n\n // Start the migration process.\n item._migrate.start(targetGrid, position, container);\n\n // If migration was started successfully and the item is active, let's layout\n // the grids.\n if (item._migrate._isActive && item._isActive) {\n if (layoutSender) {\n this.layout(\n layoutSender === INSTANT_LAYOUT,\n isFunction(layoutSender) ? layoutSender : undefined\n );\n }\n if (layoutReceiver) {\n targetGrid.layout(\n layoutReceiver === INSTANT_LAYOUT,\n isFunction(layoutReceiver) ? layoutReceiver : undefined\n );\n }\n }\n\n return this;\n};\n\n/**\n * Destroy the instance.\n *\n * @public\n * @param {Boolean} [removeElements=false]\n * @returns {Grid}\n */\nGrid.prototype.destroy = function (removeElements) {\n if (this._isDestroyed) return this;\n\n var container = this._element;\n var items = this._items.slice(0);\n var layoutStyles = (this._layout && this._layout.styles) || {};\n var i, prop;\n\n // Unbind window resize event listener.\n unbindLayoutOnResize(this);\n\n // Destroy items.\n for (i = 0; i < items.length; i++) items[i]._destroy(removeElements);\n this._items.length = 0;\n\n // Restore container.\n removeClass(container, this._settings.containerClass);\n for (prop in layoutStyles) container.style[prop] = '';\n\n // Emit destroy event and unbind all events.\n this._emit(EVENT_DESTROY);\n this._emitter.destroy();\n\n // Remove reference from the grid instances collection.\n delete GRID_INSTANCES[this._id];\n\n // Flag instance as destroyed.\n this._isDestroyed = true;\n\n return this;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Emit a grid event.\n *\n * @private\n * @param {String} event\n * @param {...*} [arg]\n */\nGrid.prototype._emit = function () {\n if (this._isDestroyed) return;\n this._emitter.emit.apply(this._emitter, arguments);\n};\n\n/**\n * Check if there are any events listeners for an event.\n *\n * @private\n * @param {String} event\n * @returns {Boolean}\n */\nGrid.prototype._hasListeners = function (event) {\n if (this._isDestroyed) return false;\n return this._emitter.countListeners(event) > 0;\n};\n\n/**\n * Update container's width, height and offsets.\n *\n * @private\n */\nGrid.prototype._updateBoundingRect = function () {\n var element = this._element;\n var rect = element.getBoundingClientRect();\n this._width = rect.width;\n this._height = rect.height;\n this._left = rect.left;\n this._top = rect.top;\n this._right = rect.right;\n this._bottom = rect.bottom;\n};\n\n/**\n * Update container's border sizes.\n *\n * @private\n * @param {Boolean} left\n * @param {Boolean} right\n * @param {Boolean} top\n * @param {Boolean} bottom\n */\nGrid.prototype._updateBorders = function (left, right, top, bottom) {\n var element = this._element;\n if (left) this._borderLeft = getStyleAsFloat(element, 'border-left-width');\n if (right) this._borderRight = getStyleAsFloat(element, 'border-right-width');\n if (top) this._borderTop = getStyleAsFloat(element, 'border-top-width');\n if (bottom) this._borderBottom = getStyleAsFloat(element, 'border-bottom-width');\n};\n\n/**\n * Refresh all of container's internal dimensions and offsets.\n *\n * @private\n */\nGrid.prototype._refreshDimensions = function () {\n this._updateBoundingRect();\n this._updateBorders(1, 1, 1, 1);\n this._boxSizing = getStyle(this._element, 'box-sizing');\n};\n\n/**\n * Calculate and apply item positions.\n *\n * @private\n * @param {Object} layout\n */\nGrid.prototype._onLayoutDataReceived = (function () {\n var itemsToLayout = [];\n return function (layout) {\n if (this._isDestroyed || !this._nextLayoutData || this._nextLayoutData.id !== layout.id) return;\n\n var grid = this;\n var instant = this._nextLayoutData.instant;\n var onFinish = this._nextLayoutData.onFinish;\n var numItems = layout.items.length;\n var counter = numItems;\n var item;\n var left;\n var top;\n var i;\n\n // Reset next layout data.\n this._nextLayoutData = null;\n\n if (!this._isLayoutFinished && this._hasListeners(EVENT_LAYOUT_ABORT)) {\n this._emit(EVENT_LAYOUT_ABORT, this._layout.items.slice(0));\n }\n\n // Update the layout reference.\n this._layout = layout;\n\n // Update the item positions and collect all items that need to be laid\n // out. It is critical that we update the item position _before_ the\n // layoutStart event as the new data might be needed in the callback.\n itemsToLayout.length = 0;\n for (i = 0; i < numItems; i++) {\n item = layout.items[i];\n\n // Make sure we have a matching item.\n if (!item) {\n --counter;\n continue;\n }\n\n // Get the item's new left and top values.\n left = layout.slots[i * 2];\n top = layout.slots[i * 2 + 1];\n\n // Let's skip the layout process if we can. Possibly avoids a lot of DOM\n // operations which saves us some CPU cycles.\n if (item._canSkipLayout(left, top)) {\n --counter;\n continue;\n }\n\n // Update the item's position.\n item._left = left;\n item._top = top;\n\n // Only active non-dragged items need to be moved.\n if (item.isActive() && !item.isDragging()) {\n itemsToLayout.push(item);\n } else {\n --counter;\n }\n }\n\n // Set layout styles to the grid element.\n if (layout.styles) {\n setStyles(this._element, layout.styles);\n }\n\n // layoutStart event is intentionally emitted after the container element's\n // dimensions are set, because otherwise there would be no hook for reacting\n // to container dimension changes.\n if (this._hasListeners(EVENT_LAYOUT_START)) {\n this._emit(EVENT_LAYOUT_START, layout.items.slice(0), instant === true);\n // Let's make sure that the current layout process has not been overridden\n // in the layoutStart event, and if so, let's stop processing the aborted\n // layout.\n if (this._layout.id !== layout.id) return;\n }\n\n var tryFinish = function () {\n if (--counter > 0) return;\n\n var hasLayoutChanged = grid._layout.id !== layout.id;\n var callback = isFunction(instant) ? instant : onFinish;\n\n if (!hasLayoutChanged) {\n grid._isLayoutFinished = true;\n }\n\n if (isFunction(callback)) {\n callback(layout.items.slice(0), hasLayoutChanged);\n }\n\n if (!hasLayoutChanged && grid._hasListeners(EVENT_LAYOUT_END)) {\n grid._emit(EVENT_LAYOUT_END, layout.items.slice(0));\n }\n };\n\n if (!itemsToLayout.length) {\n tryFinish();\n return this;\n }\n\n this._isLayoutFinished = false;\n\n for (i = 0; i < itemsToLayout.length; i++) {\n if (this._layout.id !== layout.id) break;\n itemsToLayout[i]._layout.start(instant === true, tryFinish);\n }\n\n if (this._layout.id === layout.id) {\n itemsToLayout.length = 0;\n }\n\n return this;\n };\n})();\n\n/**\n * Show or hide Grid instance's items.\n *\n * @private\n * @param {Item[]} items\n * @param {Boolean} toVisible\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n */\nGrid.prototype._setItemsVisibility = function (items, toVisible, options) {\n var grid = this;\n var targetItems = items.slice(0);\n var opts = options || {};\n var isInstant = opts.instant === true;\n var callback = opts.onFinish;\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var counter = targetItems.length;\n var startEvent = toVisible ? EVENT_SHOW_START : EVENT_HIDE_START;\n var endEvent = toVisible ? EVENT_SHOW_END : EVENT_HIDE_END;\n var method = toVisible ? 'show' : 'hide';\n var needsLayout = false;\n var completedItems = [];\n var hiddenItems = [];\n var item;\n var i;\n\n // If there are no items call the callback, but don't emit any events.\n if (!counter) {\n if (isFunction(callback)) callback(targetItems);\n return;\n }\n\n // Prepare the items.\n for (i = 0; i < targetItems.length; i++) {\n item = targetItems[i];\n\n // If inactive item is shown or active item is hidden we need to do\n // layout.\n if ((toVisible && !item._isActive) || (!toVisible && item._isActive)) {\n needsLayout = true;\n }\n\n // If inactive item is shown we also need to do a little hack to make the\n // item not animate it's next positioning (layout).\n item._layout._skipNextAnimation = !!(toVisible && !item._isActive);\n\n // If a hidden item is being shown we need to refresh the item's\n // dimensions.\n if (toVisible && item._visibility._isHidden) {\n hiddenItems.push(item);\n }\n\n // Add item to layout or remove it from layout.\n if (toVisible) {\n item._addToLayout();\n } else {\n item._removeFromLayout();\n }\n }\n\n // Force refresh the dimensions of all hidden items.\n if (hiddenItems.length) {\n this.refreshItems(hiddenItems, true);\n hiddenItems.length = 0;\n }\n\n // Show the items in sync with the next layout.\n function triggerVisibilityChange() {\n if (needsLayout && opts.syncWithLayout !== false) {\n grid.off(EVENT_LAYOUT_START, triggerVisibilityChange);\n }\n\n if (grid._hasListeners(startEvent)) {\n grid._emit(startEvent, targetItems.slice(0));\n }\n\n for (i = 0; i < targetItems.length; i++) {\n // Make sure the item is still in the original grid. There is a chance\n // that the item starts migrating before tiggerVisibilityChange is called.\n if (targetItems[i]._gridId !== grid._id) {\n if (--counter < 1) {\n if (isFunction(callback)) callback(completedItems.slice(0));\n if (grid._hasListeners(endEvent)) grid._emit(endEvent, completedItems.slice(0));\n }\n continue;\n }\n\n targetItems[i]._visibility[method](isInstant, function (interrupted, item) {\n // If the current item's animation was not interrupted add it to the\n // completedItems array.\n if (!interrupted) completedItems.push(item);\n\n // If all items have finished their animations call the callback\n // and emit showEnd/hideEnd event.\n if (--counter < 1) {\n if (isFunction(callback)) callback(completedItems.slice(0));\n if (grid._hasListeners(endEvent)) grid._emit(endEvent, completedItems.slice(0));\n }\n });\n }\n }\n\n // Trigger the visibility change, either async with layout or instantly.\n if (needsLayout && opts.syncWithLayout !== false) {\n this.on(EVENT_LAYOUT_START, triggerVisibilityChange);\n } else {\n triggerVisibilityChange();\n }\n\n // Trigger layout if needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n};\n\n/**\n * Private helpers\n * ***************\n */\n\n/**\n * Merge default settings with user settings. The returned object is a new\n * object with merged values. The merging is a deep merge meaning that all\n * objects and arrays within the provided settings objects will be also merged\n * so that modifying the values of the settings object will have no effect on\n * the returned object.\n *\n * @param {Object} defaultSettings\n * @param {Object} [userSettings]\n * @returns {Object} Returns a new object.\n */\nfunction mergeSettings(defaultSettings, userSettings) {\n // Create a fresh copy of default settings.\n var settings = mergeObjects({}, defaultSettings);\n\n // Merge user settings to default settings.\n if (userSettings) {\n settings = mergeObjects(settings, userSettings);\n }\n\n // Handle visible/hidden styles manually so that the whole object is\n // overridden instead of the props.\n\n if (userSettings && userSettings.visibleStyles) {\n settings.visibleStyles = userSettings.visibleStyles;\n } else if (defaultSettings && defaultSettings.visibleStyles) {\n settings.visibleStyles = defaultSettings.visibleStyles;\n }\n\n if (userSettings && userSettings.hiddenStyles) {\n settings.hiddenStyles = userSettings.hiddenStyles;\n } else if (defaultSettings && defaultSettings.hiddenStyles) {\n settings.hiddenStyles = defaultSettings.hiddenStyles;\n }\n\n return settings;\n}\n\n/**\n * Merge two objects recursively (deep merge). The source object's properties\n * are merged to the target object.\n *\n * @param {Object} target\n * - The target object.\n * @param {Object} source\n * - The source object.\n * @returns {Object} Returns the target object.\n */\nfunction mergeObjects(target, source) {\n var sourceKeys = Object.keys(source);\n var length = sourceKeys.length;\n var isSourceObject;\n var propName;\n var i;\n\n for (i = 0; i < length; i++) {\n propName = sourceKeys[i];\n isSourceObject = isPlainObject(source[propName]);\n\n // If target and source values are both objects, merge the objects and\n // assign the merged value to the target property.\n if (isPlainObject(target[propName]) && isSourceObject) {\n target[propName] = mergeObjects(mergeObjects({}, target[propName]), source[propName]);\n continue;\n }\n\n // If source's value is object and target's is not let's clone the object as\n // the target's value.\n if (isSourceObject) {\n target[propName] = mergeObjects({}, source[propName]);\n continue;\n }\n\n // If source's value is an array let's clone the array as the target's\n // value.\n if (Array.isArray(source[propName])) {\n target[propName] = source[propName].slice(0);\n continue;\n }\n\n // In all other cases let's just directly assign the source's value as the\n // target's value.\n target[propName] = source[propName];\n }\n\n return target;\n}\n\n/**\n * Collect and return initial items for grid.\n *\n * @param {HTMLElement} gridElement\n * @param {?(HTMLElement[]|NodeList|HtmlCollection|String)} elements\n * @returns {(HTMLElement[]|NodeList|HtmlCollection)}\n */\nfunction getInitialGridElements(gridElement, elements) {\n // If we have a wildcard selector let's return all the children.\n if (elements === '*') {\n return gridElement.children;\n }\n\n // If we have some more specific selector, let's filter the elements.\n if (typeof elements === STRING_TYPE) {\n var result = [];\n var children = gridElement.children;\n for (var i = 0; i < children.length; i++) {\n if (elementMatches(children[i], elements)) {\n result.push(children[i]);\n }\n }\n return result;\n }\n\n // If we have an array of elements or a node list.\n if (Array.isArray(elements) || isNodeList(elements)) {\n return elements;\n }\n\n // Otherwise just return an empty array.\n return [];\n}\n\n/**\n * Bind grid's resize handler to window.\n *\n * @param {Grid} grid\n * @param {(Number|Boolean)} delay\n */\nfunction bindLayoutOnResize(grid, delay) {\n if (typeof delay !== NUMBER_TYPE) {\n delay = delay === true ? 0 : -1;\n }\n\n if (delay >= 0) {\n grid._resizeHandler = debounce(function () {\n grid.refreshItems().layout();\n }, delay);\n\n window.addEventListener('resize', grid._resizeHandler);\n }\n}\n\n/**\n * Unbind grid's resize handler from window.\n *\n * @param {Grid} grid\n */\nfunction unbindLayoutOnResize(grid) {\n if (grid._resizeHandler) {\n grid._resizeHandler(true);\n window.removeEventListener('resize', grid._resizeHandler);\n grid._resizeHandler = null;\n }\n}\n\n/**\n * Normalize style declaration object, returns a normalized (new) styles object\n * (prefixed properties and invalid properties removed).\n *\n * @param {Object} styles\n * @returns {Object}\n */\nfunction normalizeStyles(styles) {\n var normalized = {};\n var docElemStyle = document.documentElement.style;\n var prop, prefixedProp;\n\n // Normalize visible styles (prefix and remove invalid).\n for (prop in styles) {\n if (!styles[prop]) continue;\n prefixedProp = getPrefixedPropName(docElemStyle, prop);\n if (!prefixedProp) continue;\n normalized[prefixedProp] = styles[prop];\n }\n\n return normalized;\n}\n\n/**\n * Create index map from items.\n *\n * @param {Item[]} items\n * @returns {Object}\n */\nfunction createIndexMap(items) {\n var result = {};\n for (var i = 0; i < items.length; i++) {\n result[items[i]._id] = i;\n }\n return result;\n}\n\n/**\n * Sort comparer function for items' index map.\n *\n * @param {Object} indexMap\n * @param {Item} itemA\n * @param {Item} itemB\n * @returns {Number}\n */\nfunction compareIndexMap(indexMap, itemA, itemB) {\n var indexA = indexMap[itemA._id];\n var indexB = indexMap[itemB._id];\n return indexA - indexB;\n}\n\nexport default Grid;\n","import { getPeerID, hashJsonObject, getShortPeerID } from './Utils'\n\nimport * as Y from 'yjs'\nimport { TrysteroProvider } from '../../node_modules/y-trystero/src/TrysteroProvider'\nimport { joinRoom } from '../../node_modules/trystero/src/torrent'\n\nimport { selfId } from 'trystero'\n\nfunction LOG(...args: any[]) {\n console.log(\n '%c🛸 Connection >>>',\n 'background-color: #004400; font-weight: bold;',\n ...args\n )\n}\n\nconst trackersAnnounceURLs = [\n 'wss://tracker.openwebtorrent.com',\n 'wss://tracker.webtorrent.dev',\n 'wss://tracker.files.fm:7073/announce',\n 'wss://tracker.openwebtorrent.com:443/announce',\n 'wss://tracker.files.fm:7073/announce',\n]\n\nconst LOBBY = 'Lobby'\nconst STATION = 'Station'\n\nlet heartbeatID\n\nexport default class Peer {\n private provider: TrysteroProvider\n private tx: any\n private rx: any\n private sync: boolean = false\n\n private y: {\n doc: Y.Doc\n chat: Y.Array\n rooms: Y.Map\n users: Y.Map\n setup: Y.Map\n }\n\n private role: 'student' | 'teacher' | 'station' = 'student'\n\n private lab: {\n id: string\n data: any\n timestamp: number\n hash: string | null\n }\n\n private connected: boolean = false\n\n private callback: {} = {}\n private callbackUpdate: {} = {}\n\n private peerID: string\n\n constructor(\n setup: { id: string; data: any; timestamp: number; hash: string | null },\n stationID?: string,\n password?: string\n ) {\n const doc = new Y.Doc()\n\n this.y = {\n doc: doc,\n setup: doc.getMap('setup'),\n users: doc.getMap('users'),\n rooms: doc.getMap('rooms'),\n chat: doc.getArray('chat'),\n }\n\n this.lab = setup\n\n this.peerID = getPeerID()\n if (stationID) {\n this.role = 'station'\n this.peerID = STATION + ' ' + stationID\n }\n\n this.provider = new TrysteroProvider(\n this.lab.id + (this.lab.hash || ''),\n this.y.doc,\n {\n appId: process.env.APP_ID || 'edry-Lite', // optional, but recommended\n password: password,\n joinRoom: joinRoom,\n // {\"rtcConfig\":{\"config\":{\"iceServers\":[{\"urls\":\"....\"},{\"urls\":\"turn:turn....\",\"username\":\"XXXX\",\"credential\":\"XXXXXX\"}]}}}\n peerOpts: JSON.parse(process.env.TRYSTERO_PEER_CONFIG || '{}'),\n }\n )\n\n this.initSetup()\n\n this.provider.on('status', (event) => {\n LOG('status', event)\n })\n\n this.provider.on('synced', (event) => {\n console.log('synced---------------------------------', event)\n this.connected = true\n\n this.provider.room?.onPeerLeave((id: string) => {\n this.removePeers([id])\n })\n\n this.initPubSub()\n\n this.rx((msg: any, peerId: string) => {\n this.update('message', msg)\n })\n\n this.y.setup.observe((event) => {\n const timestamp = this.y.setup.get('timestamp')\n\n if (this.lab.timestamp !== timestamp) {\n this.initSetup()\n }\n })\n\n LOG('synced', event)\n this.sync = true\n this.update('connected')\n })\n }\n\n user() {\n return this.y.users.get(this.peerID)\n }\n\n isStation() {\n return this.role === 'station'\n }\n\n removePeers(selfIds: string[]) {\n const peers = this.y.users.toJSON()\n\n this.y.doc.transact(() => {\n for (const id in peers) {\n if (selfIds.includes(peers[id].selfId)) {\n this.y.users.delete(id)\n\n if (peers[id].role === 'station') {\n this.y.rooms.delete(id)\n }\n\n break\n }\n }\n })\n }\n\n initPubSub() {\n LOG('initializing pubsub ...')\n if (this.provider.room) {\n const [tx, rx] = this.provider.room.trysteroRoom.makeAction('p2p')\n this.tx = tx\n this.rx = rx\n\n LOG('... done')\n } else {\n LOG('... failed, retrying in 1s')\n setTimeout(() => {\n this.initPubSub()\n }, 1000)\n }\n }\n\n initSetup() {\n const timestamp: number = (this.y.setup.get('timestamp') as number) || 0\n const data = this.y.setup.get('config')\n\n // If my setup is older than the current setup\n if (this.lab.timestamp < timestamp) {\n LOG('receiving initial lab configuration')\n\n this.lab.data = data\n this.lab.timestamp = timestamp\n this.update('setup')\n }\n // if the received setup is not up to date\n else if (this.lab.timestamp !== timestamp && this.lab.timestamp > 0) {\n LOG('received outdated lab configuration, writing changes back')\n this.y.doc.transact(() => {\n this.y.setup.set('config', this.lab.data)\n this.y.setup.set('timestamp', this.lab.timestamp)\n })\n }\n\n // equal setups will be ignored\n }\n\n initUser(\n role: 'student' | 'teacher' | 'station',\n withObserver: boolean = true\n ) {\n this.role = role\n\n if (heartbeatID) {\n clearInterval(heartbeatID)\n heartbeatID = null\n }\n\n const userSettings = new Y.Map()\n userSettings.set('displayName', getShortPeerID(this.peerID))\n userSettings.set('room', this.isStation() ? this.peerID : LOBBY)\n userSettings.set('role', this.role)\n userSettings.set('dateJoined', Date.now())\n userSettings.set('timestamp', Date.now())\n userSettings.set('selfId', selfId)\n userSettings.set('handRaised', false)\n userSettings.set('connections', [{ id: '', target: {} }])\n this.y.users.set(this.peerID, userSettings)\n\n heartbeatID = setInterval(() => {\n if (this.y.users.has(this.peerID)) {\n const timeNow = Date.now()\n this.user().set('timestamp', timeNow)\n\n const users = this.y.users.toJSON()\n\n let ids: string[] = []\n for (const id in users) {\n if (users[id].timestamp < timeNow - 5000) {\n ids.push(users[id].selfId)\n }\n }\n\n if (ids.length > 0) {\n this.removePeers(ids)\n }\n } else {\n LOG('user not found', this.peerID)\n }\n }, 1000)\n\n if (withObserver) {\n this.y.users.observeDeep((events) => {\n const allEventsHaveOnlyTimestamp = events.every((event) => {\n return (\n event.changes.keys &&\n event.changes.keys.size === 1 &&\n event.changes.keys.has('timestamp')\n )\n })\n\n if (!allEventsHaveOnlyTimestamp) {\n this.update('room')\n }\n })\n }\n }\n\n initRooms() {\n this.y.doc.transact(() => {\n if (this.y.rooms.size === 0) {\n LOG('initializing rooms')\n\n this.addRoom(LOBBY)\n\n const defaultRooms = this.lab.data.meta.defaultNumberOfRooms\n\n if (defaultRooms) {\n for (let i = 1; i <= defaultRooms; i++) {\n this.addRoom('Room ' + i)\n }\n }\n }\n if (this.isStation()) {\n this.addRoom(this.peerID)\n }\n })\n\n this.y.rooms.observeDeep((events) => {\n // Handle room deletions from root-level changes\n events.forEach((event) => {\n if (event.target === this.y.rooms) {\n // This is a root-level change (like deleting a room)\n const keysChanged = Array.from(event.changes.keys.keys())\n\n keysChanged.forEach((key) => {\n const change = event.changes.keys.get(key)\n if (change?.action === 'delete') {\n // If my room is deleted, move to lobby\n if (this.user() && this.user().get('room') === key) {\n LOG('current room was deleted, moving to lobby')\n this.user().set('room', LOBBY)\n }\n }\n })\n }\n })\n\n // Only trigger one update per batch of changes\n this.update('room')\n })\n }\n\n initChat() {\n this.y.chat.observe((event) => {\n this.update('chat')\n })\n }\n\n newSetup(config: { id: string; data: any; timestamp: number }) {\n if (this.lab.hash) {\n const self = this\n hashJsonObject(config.data).then((hash) => {\n if (hash === self.lab.hash && self.lab.timestamp < config.timestamp) {\n self.lab.id = config.id\n self.lab.data = config.data\n self.lab.timestamp = config.timestamp\n\n self.initSetup()\n } else {\n LOG('updating failed, hash mismatch')\n }\n })\n } else {\n if (this.lab.timestamp < config.timestamp) {\n this.lab.id = config.id\n this.lab.data = config.data\n this.lab.timestamp = config.timestamp\n\n this.initSetup()\n }\n }\n }\n\n async update(\n event: 'setup' | 'room' | 'message' | 'connected' | 'chat',\n message?: any\n ) {\n const callback = this.callback[event]\n\n switch (event) {\n case 'message': {\n if (callback) {\n message.date = Date.now()\n callback(message)\n }\n break\n }\n case 'setup': {\n if (callback) {\n callback(this.lab)\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n case 'room': {\n //this.peerUpdate()\n\n if (callback && this.sync) {\n callback(await this.toJSON())\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n\n case 'chat': {\n if (callback) {\n callback({\n messages: this.y.doc.getArray('chat').toArray(),\n truncated: false,\n })\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n\n case 'connected': {\n if (callback) {\n callback(this.connected)\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n }\n }\n\n on(event: 'setup' | 'room' | 'connected', callback: any) {\n if (callback) {\n this.callback[event] = callback\n\n if (this.callbackUpdate[event]) {\n this.update(event)\n }\n } else if (this.callback[event]) {\n delete this.callback[event]\n }\n }\n\n broadcast(room: string, msg: any) {\n if (!this.connected) {\n return\n }\n\n const users = this.y.users.toJSON()\n for (const id in users) {\n if (users[id].room === room) {\n try {\n this.tx(msg, users[id].selfId)\n } catch (e) {\n LOG('warning', e.message)\n }\n }\n }\n this.update('message', msg)\n }\n\n stop() {\n LOG('stopping peer')\n clearInterval(heartbeatID)\n heartbeatID = null\n this.y.users.delete(this.peerID)\n\n this.provider.disconnect()\n this.provider.destroy()\n\n this.callback = {}\n this.callbackUpdate = {}\n }\n\n addRoom(name?: string) {\n if (name && !this.y.rooms.has(name)) {\n const room = new Y.Map()\n this.y.rooms.set(name, room)\n } else if (!name) {\n const roomIDs: number[] = Object.keys(this.y.rooms.toJSON())\n .filter((e) => e.match(/Room/))\n .map((e) => e.split(' ')[1])\n .map((e) => parseInt(e))\n .sort((a, b) => a - b)\n\n let newRoomID = 1\n for (const id of roomIDs) {\n if (id !== newRoomID) {\n break\n }\n newRoomID++\n }\n\n this.addRoom('Room ' + newRoomID)\n }\n }\n\n gotoRoom(room: string) {\n this.user().set('room', room)\n this.user().set('timestamp', Date.now())\n }\n\n sendMessage(message: string) {\n this.y.chat.push([\n {\n timestamp: Date.now(),\n user: getShortPeerID(this.peerID),\n msg: message,\n },\n ])\n }\n\n updateState(data: string) {\n const decodedUint8Array = Uint8Array.from(atob(data), (c) =>\n c.charCodeAt(0)\n )\n this.y.doc.transact(\n () => {\n Y.applyUpdate(this.y.doc, decodedUint8Array)\n },\n { transactionId: 'intern' }\n )\n }\n\n async join(role: 'student' | 'teacher' | 'station') {\n this.initUser(role)\n this.initRooms()\n this.initChat()\n\n this.update('room')\n }\n\n async toJSON() {\n // check if station and add station room exist\n if (this.isStation() && !this.y.rooms.has(this.peerID)) {\n this.addRoom(this.peerID)\n }\n\n if (!this.y.users.has(this.peerID)) {\n await this.awaitTransact(() => {\n this.initUser(this.role, false)\n })\n }\n\n console.warn('SSSSSSSSSSSSSSSSSSSSSSSSSSSS', this.y.doc.toJSON())\n\n return {\n rooms: this.y.rooms.toJSON(),\n users: this.y.users.toJSON(),\n doc: this.y.doc,\n }\n }\n\n awaitTransact(transactFn) {\n return new Promise((resolve) => {\n // We'll use this to track when the transaction is done\n let isTransactionDone = false\n\n const observer = () => {\n if (isTransactionDone) {\n this.y.doc.off('afterTransaction', observer)\n resolve()\n }\n }\n\n this.y.doc.on('afterTransaction', observer)\n\n this.y.doc.transact(() => {\n try {\n transactFn()\n } catch (e) {\n console.error('Error in transaction', e)\n }\n isTransactionDone = true\n })\n })\n }\n}\n","import * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport { ObservableV2 } from 'lib0/observable'\nimport * as promise from 'lib0/promise'\nimport * as random from 'lib0/random'\nimport * as Y from 'yjs' // eslint-disable-line\nimport { awarenessProtocol } from '../protocols'\nimport * as cryptoutils from './cryptoutils'\nimport { Room } from './Room'\n//import { SignalingConn } from './archive/SignalingConn'\nimport { emitStatus } from './messagesSend'\nimport { rooms } from './connectionMaps'\nimport * as error from 'lib0/error'\nimport { joinRoom as joinRoomBittorrent } from 'trystero'\n\ntype TrysteroProviderEvents = {\n status: (arg: { connected: boolean }) => void\n synced: (arg: { synced: boolean }) => void\n peers: (arg: {\n added: string[]\n removed: string[]\n trysteroPeers: string[]\n bcPeers: string[]\n }) => void\n}\n\ntype ProviderOptions = {\n password?: string\n awareness?: awarenessProtocol.Awareness\n filterBcConns?: boolean\n peerOpts?: any\n appId?: string\n maxConns?: number\n joinRoom?: typeof joinRoom\n}\n\nexport class TrysteroProvider extends ObservableV2 {\n awareness: awarenessProtocol.Awareness\n doc: Y.Doc\n filterBcConns: boolean\n shouldConnect: boolean\n maxConns: number\n peerOpts: any\n room: Room | null\n roomName: string\n appId: string\n password: string\n key: PromiseLike\n joinRoom: typeof joinRoomBittorrent\n\n constructor(\n roomName: string,\n doc: Y.Doc,\n {\n appId = 'yjs-trystero',\n password = 'default',\n awareness = new awarenessProtocol.Awareness(doc),\n maxConns = 20 + math.floor(random.rand() * 15), // the random factor reduces the chance that n clients form a cluster\n filterBcConns = true,\n peerOpts = {}, // simple-peer options. See https://github.com/feross/simple-peer#peer--new-peeropts\n joinRoom = joinRoomBittorrent,\n } = {} as ProviderOptions\n ) {\n super()\n // set room info\n this.appId = appId\n roomName = `${appId}-${roomName}`\n this.roomName = roomName\n this.password = password\n this.key = password\n ? cryptoutils.deriveKey(password, roomName)\n : promise.resolve(null)\n\n // yjs objects\n this.doc = doc\n this.awareness = awareness\n\n // preferences\n this.filterBcConns = filterBcConns\n this.shouldConnect = false\n this.maxConns = maxConns\n this.peerOpts = peerOpts\n this.joinRoom = joinRoom\n\n // create the room\n this.room = null\n this.key.then((key) => {\n // check if room already exists\n if (rooms.has(roomName)) {\n throw error.create(\n `A Yjs Doc connected to room \"${roomName}\" already exists!`\n )\n }\n // create the room\n this.room = new Room(doc, this, roomName, key)\n // add room to rooms map\n rooms.set(roomName, this.room)\n\n // connect or disconnect room\n if (this.shouldConnect) {\n this.room.connect()\n } else {\n this.room.disconnect()\n }\n emitStatus(this)\n })\n\n // connect\n this.connect()\n\n // set up destroy handler\n this.destroy = this.destroy.bind(this)\n doc.on('destroy', this.destroy)\n }\n\n // get connected status\n get connected(): boolean {\n return this.room !== null && this.shouldConnect\n }\n\n // connect to the room\n connect() {\n this.shouldConnect = true\n if (this.room) {\n this.room.connect()\n emitStatus(this)\n }\n }\n\n // disconnect from the room\n disconnect() {\n this.shouldConnect = false\n if (this.room) {\n this.room.disconnect()\n emitStatus(this)\n }\n }\n\n // destroy the room\n destroy() {\n this.doc.off('destroy', this.destroy)\n // need to wait for key before deleting room\n this.key.then(() => {\n this.room.destroy()\n rooms.delete(this.roomName)\n })\n super.destroy()\n }\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n * @experimental\n *\n * This is basically a (better typed) duplicate of Observable, which will replace Observable in the\n * next release.\n *\n * @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS\n */\nexport class ObservableV2 {\n constructor () {\n /**\n * Some desc.\n * @type {Map>}\n */\n this._observers = map.create()\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, /** @type {string} */ (name), set.create).add(f)\n return f\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, /** @type {any} */ (_f))\n f(...args)\n }\n this.on(name, /** @type {any} */ (_f))\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name The event name.\n * @param {Parameters} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n\n/* c8 ignore start */\n/**\n * Handles named events.\n *\n * @deprecated\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n/* c8 ignore end */\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template K,V\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template {Map} MAP\n * @template {MAP extends Map ? function():V : unknown} CF\n * @param {MAP} map\n * @param {MAP extends Map ? K : unknown} key\n * @param {CF} createT\n * @return {ReturnType}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set =>\n set.values().next().value ?? undefined\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => new Set(entries)\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\nimport * as set from './set.js'\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {ArrayLike} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n * @template {ArrayLike} ARR\n *\n * @param {ARR} arr\n * @param {function(ITEM, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (!f(arr[i], i, arr)) {\n return false\n }\n }\n return true\n}\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @template {ArrayLike} ARR\n * @param {ARR} arr\n * @param {function(S, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (f(arr[i], i, arr)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @template ELEM\n *\n * @param {ArrayLike} a\n * @param {ArrayLike} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => fold(arr, /** @type {Array} */ ([]), (acc, val) => acc.concat(val))\n\n/**\n * @template T\n * @param {number} len\n * @param {function(number, Array):T} f\n * @return {Array}\n */\nexport const unfold = (len, f) => {\n const array = new Array(len)\n for (let i = 0; i < len; i++) {\n array[i] = f(i, array)\n }\n return array\n}\n\n/**\n * @template T\n * @template RESULT\n * @param {Array} arr\n * @param {RESULT} seed\n * @param {function(RESULT, T, number):RESULT} folder\n */\nexport const fold = (arr, seed, folder) => arr.reduce(folder, seed)\n\nexport const isArray = Array.isArray\n\n/**\n * @template T\n * @param {Array} arr\n * @return {Array}\n */\nexport const unique = arr => from(set.from(arr))\n\n/**\n * @template T\n * @template M\n * @param {ArrayLike} arr\n * @param {function(T):M} mapper\n * @return {Array}\n */\nexport const uniqueBy = (arr, mapper) => {\n /**\n * @type {Set}\n */\n const happened = set.create()\n /**\n * @type {Array}\n */\n const result = []\n for (let i = 0; i < arr.length; i++) {\n const el = arr[i]\n const mapped = mapper(el)\n if (!happened.has(mapped)) {\n happened.add(mapped)\n result.push(el)\n }\n }\n return result\n}\n\n/**\n * @template {ArrayLike} ARR\n * @template {function(ARR extends ArrayLike ? T : never, number, ARR):any} MAPPER\n * @param {ARR} arr\n * @param {MAPPER} mapper\n * @return {Array}\n */\nexport const map = (arr, mapper) => {\n /**\n * @type {Array}\n */\n const res = Array(arr.length)\n for (let i = 0; i < arr.length; i++) {\n res[i] = mapper(/** @type {any} */ (arr[i]), i, /** @type {any} */ (arr))\n }\n return /** @type {any} */ (res)\n}\n","/**\n * Utility helpers to work with promises.\n *\n * @module promise\n */\n\nimport * as time from './time.js'\n\n/**\n * @template T\n * @callback PromiseResolve\n * @param {T|PromiseLike} [result]\n */\n\n/**\n * @template T\n * @param {function(PromiseResolve,function(Error):void):any} f\n * @return {Promise}\n */\nexport const create = f => /** @type {Promise} */ (new Promise(f))\n\n/**\n * @param {function(function():void,function(Error):void):void} f\n * @return {Promise}\n */\nexport const createEmpty = f => new Promise(f)\n\n/**\n * `Promise.all` wait for all promises in the array to resolve and return the result\n * @template {unknown[] | []} PS\n *\n * @param {PS} ps\n * @return {Promise<{ -readonly [P in keyof PS]: Awaited }>}\n */\nexport const all = Promise.all.bind(Promise)\n\n/**\n * @param {Error} [reason]\n * @return {Promise}\n */\nexport const reject = reason => Promise.reject(reason)\n\n/**\n * @template T\n * @param {T|void} res\n * @return {Promise}\n */\nexport const resolve = res => Promise.resolve(res)\n\n/**\n * @template T\n * @param {T} res\n * @return {Promise}\n */\nexport const resolveWith = res => Promise.resolve(res)\n\n/**\n * @todo Next version, reorder parameters: check, [timeout, [intervalResolution]]\n * @deprecated use untilAsync instead\n *\n * @param {number} timeout\n * @param {function():boolean} check\n * @param {number} [intervalResolution]\n * @return {Promise}\n */\nexport const until = (timeout, check, intervalResolution = 10) => create((resolve, reject) => {\n const startTime = time.getUnixTime()\n const hasTimeout = timeout > 0\n const untilInterval = () => {\n if (check()) {\n clearInterval(intervalHandle)\n resolve()\n } else if (hasTimeout) {\n /* c8 ignore else */\n if (time.getUnixTime() - startTime > timeout) {\n clearInterval(intervalHandle)\n reject(new Error('Timeout'))\n }\n }\n }\n const intervalHandle = setInterval(untilInterval, intervalResolution)\n})\n\n/**\n * @param {()=>Promise|boolean} check\n * @param {number} timeout\n * @param {number} intervalResolution\n * @return {Promise}\n */\nexport const untilAsync = async (check, timeout = 0, intervalResolution = 10) => {\n const startTime = time.getUnixTime()\n const noTimeout = timeout <= 0\n // eslint-disable-next-line no-unmodified-loop-condition\n while (noTimeout || time.getUnixTime() - startTime <= timeout) {\n if (await check()) return\n await wait(intervalResolution)\n }\n throw new Error('Timeout')\n}\n\n/**\n * @param {number} timeout\n * @return {Promise}\n */\nexport const wait = timeout => create((resolve, _reject) => setTimeout(resolve, timeout))\n\n/**\n * Checks if an object is a promise using ducktyping.\n *\n * Promises are often polyfilled, so it makes sense to add some additional guarantees if the user of this\n * library has some insane environment where global Promise objects are overwritten.\n *\n * @param {any} p\n * @return {boolean}\n */\nexport const isPromise = p => p instanceof Promise || (p && p.then && p.catch && p.finally)\n","/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* c8 ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n","/**\n * Utility module to convert metric values.\n *\n * @module metric\n */\n\nimport * as math from './math.js'\n\nexport const yotta = 1e24\nexport const zetta = 1e21\nexport const exa = 1e18\nexport const peta = 1e15\nexport const tera = 1e12\nexport const giga = 1e9\nexport const mega = 1e6\nexport const kilo = 1e3\nexport const hecto = 1e2\nexport const deca = 10\nexport const deci = 0.1\nexport const centi = 0.01\nexport const milli = 1e-3\nexport const micro = 1e-6\nexport const nano = 1e-9\nexport const pico = 1e-12\nexport const femto = 1e-15\nexport const atto = 1e-18\nexport const zepto = 1e-21\nexport const yocto = 1e-24\n\nconst prefixUp = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']\nconst prefixDown = ['', 'm', 'μ', 'n', 'p', 'f', 'a', 'z', 'y']\n\n/**\n * Calculate the metric prefix for a number. Assumes E.g. `prefix(1000) = { n: 1, prefix: 'k' }`\n *\n * @param {number} n\n * @param {number} [baseMultiplier] Multiplier of the base (10^(3*baseMultiplier)). E.g. `convert(time, -3)` if time is already in milli seconds\n * @return {{n:number,prefix:string}}\n */\nexport const prefix = (n, baseMultiplier = 0) => {\n const nPow = n === 0 ? 0 : math.log10(n)\n let mult = 0\n while (nPow < mult * 3 && baseMultiplier > -8) {\n baseMultiplier--\n mult--\n }\n while (nPow >= 3 + mult * 3 && baseMultiplier < 8) {\n baseMultiplier++\n mult++\n }\n const prefix = baseMultiplier < 0 ? prefixDown[-baseMultiplier] : prefixUp[baseMultiplier]\n return {\n n: math.round((mult > 0 ? n / math.exp10(mult * 3) : n * math.exp10(mult * -3)) * 1e12) / 1e12,\n prefix\n }\n}\n","/**\n * Isomorphic module for true random numbers / buffers / uuids.\n *\n * Attention: falls back to Math.random if the browser does not support crypto.\n *\n * @module random\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\nimport { getRandomValues } from 'lib0/webcrypto'\n\nexport const rand = Math.random\n\nexport const uint32 = () => getRandomValues(new Uint32Array(1))[0]\n\nexport const uint53 = () => {\n const arr = getRandomValues(new Uint32Array(8))\n return (arr[0] & binary.BITS21) * (binary.BITS32 + 1) + (arr[1] >>> 0)\n}\n\n/**\n * @template T\n * @param {Array} arr\n * @return {T}\n */\nexport const oneOf = arr => arr[math.floor(rand() * arr.length)]\n\n// @ts-ignore\nconst uuidv4Template = [1e7] + -1e3 + -4e3 + -8e3 + -1e11\n\n/**\n * @return {string}\n */\nexport const uuidv4 = () => uuidv4Template.replace(/[018]/g, /** @param {number} c */ c =>\n (c ^ uint32() & 15 >> c / 4).toString(16)\n)\n","/* eslint-env browser */\n\n/**\n * Binary data constants.\n *\n * @module binary\n */\n\n/**\n * n-th bit activated.\n *\n * @type {number}\n */\nexport const BIT1 = 1\nexport const BIT2 = 2\nexport const BIT3 = 4\nexport const BIT4 = 8\nexport const BIT5 = 16\nexport const BIT6 = 32\nexport const BIT7 = 64\nexport const BIT8 = 128\nexport const BIT9 = 256\nexport const BIT10 = 512\nexport const BIT11 = 1024\nexport const BIT12 = 2048\nexport const BIT13 = 4096\nexport const BIT14 = 8192\nexport const BIT15 = 16384\nexport const BIT16 = 32768\nexport const BIT17 = 65536\nexport const BIT18 = 1 << 17\nexport const BIT19 = 1 << 18\nexport const BIT20 = 1 << 19\nexport const BIT21 = 1 << 20\nexport const BIT22 = 1 << 21\nexport const BIT23 = 1 << 22\nexport const BIT24 = 1 << 23\nexport const BIT25 = 1 << 24\nexport const BIT26 = 1 << 25\nexport const BIT27 = 1 << 26\nexport const BIT28 = 1 << 27\nexport const BIT29 = 1 << 28\nexport const BIT30 = 1 << 29\nexport const BIT31 = 1 << 30\nexport const BIT32 = 1 << 31\n\n/**\n * First n bits activated.\n *\n * @type {number}\n */\nexport const BITS0 = 0\nexport const BITS1 = 1\nexport const BITS2 = 3\nexport const BITS3 = 7\nexport const BITS4 = 15\nexport const BITS5 = 31\nexport const BITS6 = 63\nexport const BITS7 = 127\nexport const BITS8 = 255\nexport const BITS9 = 511\nexport const BITS10 = 1023\nexport const BITS11 = 2047\nexport const BITS12 = 4095\nexport const BITS13 = 8191\nexport const BITS14 = 16383\nexport const BITS15 = 32767\nexport const BITS16 = 65535\nexport const BITS17 = BIT18 - 1\nexport const BITS18 = BIT19 - 1\nexport const BITS19 = BIT20 - 1\nexport const BITS20 = BIT21 - 1\nexport const BITS21 = BIT22 - 1\nexport const BITS22 = BIT23 - 1\nexport const BITS23 = BIT24 - 1\nexport const BITS24 = BIT25 - 1\nexport const BITS25 = BIT26 - 1\nexport const BITS26 = BIT27 - 1\nexport const BITS27 = BIT28 - 1\nexport const BITS28 = BIT29 - 1\nexport const BITS29 = BIT30 - 1\nexport const BITS30 = BIT31 - 1\n/**\n * @type {number}\n */\nexport const BITS31 = 0x7FFFFFFF\n/**\n * @type {number}\n */\nexport const BITS32 = 0xFFFFFFFF\n","/* eslint-env browser */\n\nexport const subtle = crypto.subtle\nexport const getRandomValues = crypto.getRandomValues.bind(crypto)\n","export * as authProtocol from './auth'\nexport * as awarenessProtocol from './awareness'\nexport * as syncProtocol from './sync'\n","import * as Y from 'yjs'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport const messagePermissionDenied: number = 0\n\nexport const writePermissionDenied = (\n encoder: encoding.Encoder,\n reason: string\n): void => {\n encoding.writeVarUint(encoder, messagePermissionDenied)\n encoding.writeVarString(encoder, reason)\n}\n\nexport type PermissionDeniedHandler = (y: any, reason: string) => void\n\nexport const readAuthMessage = (\n decoder: decoding.Decoder,\n y: Y.Doc,\n permissionDeniedHandler: PermissionDeniedHandler\n): void => {\n switch (decoding.readVarUint(decoder)) {\n case messagePermissionDenied:\n permissionDeniedHandler(y, decoding.readVarString(decoder))\n }\n}\n","/**\n * Efficient schema-less binary encoding with support for variable length encoding.\n *\n * Use [lib0/encoding] with [lib0/decoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module encoding\n */\n\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as binary from './binary.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\n\n/**\n * A BinaryEncoder handles the encoding to an Uint8Array.\n */\nexport class Encoder {\n constructor () {\n this.cpos = 0\n this.cbuf = new Uint8Array(100)\n /**\n * @type {Array}\n */\n this.bufs = []\n }\n}\n\n/**\n * @function\n * @return {Encoder}\n */\nexport const createEncoder = () => new Encoder()\n\n/**\n * @param {function(Encoder):void} f\n */\nexport const encode = (f) => {\n const encoder = createEncoder()\n f(encoder)\n return toUint8Array(encoder)\n}\n\n/**\n * The current length of the encoded data.\n *\n * @function\n * @param {Encoder} encoder\n * @return {number}\n */\nexport const length = encoder => {\n let len = encoder.cpos\n for (let i = 0; i < encoder.bufs.length; i++) {\n len += encoder.bufs[i].length\n }\n return len\n}\n\n/**\n * Check whether encoder is empty.\n *\n * @function\n * @param {Encoder} encoder\n * @return {boolean}\n */\nexport const hasContent = encoder => encoder.cpos > 0 || encoder.bufs.length > 0\n\n/**\n * Transform to Uint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @return {Uint8Array} The created ArrayBuffer.\n */\nexport const toUint8Array = encoder => {\n const uint8arr = new Uint8Array(length(encoder))\n let curPos = 0\n for (let i = 0; i < encoder.bufs.length; i++) {\n const d = encoder.bufs[i]\n uint8arr.set(d, curPos)\n curPos += d.length\n }\n uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos)\n return uint8arr\n}\n\n/**\n * Verify that it is possible to write `len` bytes wtihout checking. If\n * necessary, a new Buffer with the required length is attached.\n *\n * @param {Encoder} encoder\n * @param {number} len\n */\nexport const verifyLen = (encoder, len) => {\n const bufferLen = encoder.cbuf.length\n if (bufferLen - encoder.cpos < len) {\n encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos))\n encoder.cbuf = new Uint8Array(math.max(bufferLen, len) * 2)\n encoder.cpos = 0\n }\n}\n\n/**\n * Write one byte to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The byte that is to be encoded.\n */\nexport const write = (encoder, num) => {\n const bufferLen = encoder.cbuf.length\n if (encoder.cpos === bufferLen) {\n encoder.bufs.push(encoder.cbuf)\n encoder.cbuf = new Uint8Array(bufferLen * 2)\n encoder.cpos = 0\n }\n encoder.cbuf[encoder.cpos++] = num\n}\n\n/**\n * Write one byte at a specific position.\n * Position must already be written (i.e. encoder.length > pos)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos Position to which to write data\n * @param {number} num Unsigned 8-bit integer\n */\nexport const set = (encoder, pos, num) => {\n let buffer = null\n // iterate all buffers and adjust position\n for (let i = 0; i < encoder.bufs.length && buffer === null; i++) {\n const b = encoder.bufs[i]\n if (pos < b.length) {\n buffer = b // found buffer\n } else {\n pos -= b.length\n }\n }\n if (buffer === null) {\n // use current buffer\n buffer = encoder.cbuf\n }\n buffer[pos] = num\n}\n\n/**\n * Write one byte as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint8 = write\n\n/**\n * Write one byte as an unsigned Integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint8 = set\n\n/**\n * Write two bytes as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint16 = (encoder, num) => {\n write(encoder, num & binary.BITS8)\n write(encoder, (num >>> 8) & binary.BITS8)\n}\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint16 = (encoder, pos, num) => {\n set(encoder, pos, num & binary.BITS8)\n set(encoder, pos + 1, (num >>> 8) & binary.BITS8)\n}\n\n/**\n * Write two bytes as an unsigned integer\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32 = (encoder, num) => {\n for (let i = 0; i < 4; i++) {\n write(encoder, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write two bytes as an unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32BigEndian = (encoder, num) => {\n for (let i = 3; i >= 0; i--) {\n write(encoder, (num >>> (8 * i)) & binary.BITS8)\n }\n}\n\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint32 = (encoder, pos, num) => {\n for (let i = 0; i < 4; i++) {\n set(encoder, pos + i, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write a variable length unsigned integer. Max encodable integer is 2^53.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarUint = (encoder, num) => {\n while (num > binary.BITS7) {\n write(encoder, binary.BIT8 | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n write(encoder, binary.BITS7 & num)\n}\n\n/**\n * Write a variable length integer.\n *\n * We use the 7th bit instead for signaling that this is a negative number.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarInt = (encoder, num) => {\n const isNegative = math.isNegativeZero(num)\n if (isNegative) {\n num = -num\n }\n // |- whether to continue reading |- whether is negative |- number\n write(encoder, (num > binary.BITS6 ? binary.BIT8 : 0) | (isNegative ? binary.BIT7 : 0) | (binary.BITS6 & num))\n num = math.floor(num / 64) // shift >>> 6\n // We don't need to consider the case of num === 0 so we can use a different\n // pattern here than above.\n while (num > 0) {\n write(encoder, (num > binary.BITS7 ? binary.BIT8 : 0) | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n}\n\n/**\n * A cache to store strings temporarily\n */\nconst _strBuffer = new Uint8Array(30000)\nconst _maxStrBSize = _strBuffer.length / 3\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringNative = (encoder, str) => {\n if (str.length < _maxStrBSize) {\n // We can encode the string into the existing buffer\n /* c8 ignore next */\n const written = string.utf8TextEncoder.encodeInto(str, _strBuffer).written || 0\n writeVarUint(encoder, written)\n for (let i = 0; i < written; i++) {\n write(encoder, _strBuffer[i])\n }\n } else {\n writeVarUint8Array(encoder, string.encodeUtf8(str))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringPolyfill = (encoder, str) => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n write(encoder, /** @type {number} */ (encodedString.codePointAt(i)))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\n/* c8 ignore next */\nexport const writeVarString = (string.utf8TextEncoder && /** @type {any} */ (string.utf8TextEncoder).encodeInto) ? _writeVarStringNative : _writeVarStringPolyfill\n\n/**\n * Write a string terminated by a special byte sequence. This is not very performant and is\n * generally discouraged. However, the resulting byte arrays are lexiographically ordered which\n * makes this a nice feature for databases.\n *\n * The string will be encoded using utf8 and then terminated and escaped using writeTerminatingUint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const writeTerminatedString = (encoder, str) =>\n writeTerminatedUint8Array(encoder, string.encodeUtf8(str))\n\n/**\n * Write a terminating Uint8Array. Note that this is not performant and is generally\n * discouraged. There are few situations when this is needed.\n *\n * We use 0x0 as a terminating character. 0x1 serves as an escape character for 0x0 and 0x1.\n *\n * Example: [0,1,2] is encoded to [1,0,1,1,2,0]. 0x0, and 0x1 needed to be escaped using 0x1. Then\n * the result is terminated using the 0x0 character.\n *\n * This is basically how many systems implement null terminated strings. However, we use an escape\n * character 0x1 to avoid issues and potenial attacks on our database (if this is used as a key\n * encoder for NoSql databases).\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} buf The string that is to be encoded.\n */\nexport const writeTerminatedUint8Array = (encoder, buf) => {\n for (let i = 0; i < buf.length; i++) {\n const b = buf[i]\n if (b === 0 || b === 1) {\n write(encoder, 1)\n }\n write(encoder, buf[i])\n }\n write(encoder, 0)\n}\n\n/**\n * Write the content of another Encoder.\n *\n * @TODO: can be improved!\n * - Note: Should consider that when appending a lot of small Encoders, we should rather clone than referencing the old structure.\n * Encoders start with a rather big initial buffer.\n *\n * @function\n * @param {Encoder} encoder The enUint8Arr\n * @param {Encoder} append The BinaryEncoder to be written.\n */\nexport const writeBinaryEncoder = (encoder, append) => writeUint8Array(encoder, toUint8Array(append))\n\n/**\n * Append fixed-length Uint8Array to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeUint8Array = (encoder, uint8Array) => {\n const bufferLen = encoder.cbuf.length\n const cpos = encoder.cpos\n const leftCopyLen = math.min(bufferLen - cpos, uint8Array.length)\n const rightCopyLen = uint8Array.length - leftCopyLen\n encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos)\n encoder.cpos += leftCopyLen\n if (rightCopyLen > 0) {\n // Still something to write, write right half..\n // Append new buffer\n encoder.bufs.push(encoder.cbuf)\n // must have at least size of remaining buffer\n encoder.cbuf = new Uint8Array(math.max(bufferLen * 2, rightCopyLen))\n // copy array\n encoder.cbuf.set(uint8Array.subarray(leftCopyLen))\n encoder.cpos = rightCopyLen\n }\n}\n\n/**\n * Append an Uint8Array to Encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeVarUint8Array = (encoder, uint8Array) => {\n writeVarUint(encoder, uint8Array.byteLength)\n writeUint8Array(encoder, uint8Array)\n}\n\n/**\n * Create an DataView of the next `len` bytes. Use it to write data after\n * calling this function.\n *\n * ```js\n * // write float32 using DataView\n * const dv = writeOnDataView(encoder, 4)\n * dv.setFloat32(0, 1.1)\n * // read float32 using DataView\n * const dv = readFromDataView(encoder, 4)\n * dv.getFloat32(0) // => 1.100000023841858 (leaving it to the reader to find out why this is the correct result)\n * ```\n *\n * @param {Encoder} encoder\n * @param {number} len\n * @return {DataView}\n */\nexport const writeOnDataView = (encoder, len) => {\n verifyLen(encoder, len)\n const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len)\n encoder.cpos += len\n return dview\n}\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigInt64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigInt64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigUint64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigUint64(0, num, false)\n\nconst floatTestBed = new DataView(new ArrayBuffer(4))\n/**\n * Check if a number can be encoded as a 32 bit float.\n *\n * @param {number} num\n * @return {boolean}\n */\nconst isFloat32 = num => {\n floatTestBed.setFloat32(0, num)\n return floatTestBed.getFloat32(0) === num\n}\n\n/**\n * Encode data with efficient binary format.\n *\n * Differences to JSON:\n * • Transforms data to a binary format (not to a string)\n * • Encodes undefined, NaN, and ArrayBuffer (these can't be represented in JSON)\n * • Numbers are efficiently encoded either as a variable length integer, as a\n * 32 bit float, as a 64 bit float, or as a 64 bit bigint.\n *\n * Encoding table:\n *\n * | Data Type | Prefix | Encoding Method | Comment |\n * | ------------------- | -------- | ------------------ | ------- |\n * | undefined | 127 | | Functions, symbol, and everything that cannot be identified is encoded as undefined |\n * | null | 126 | | |\n * | integer | 125 | writeVarInt | Only encodes 32 bit signed integers |\n * | float32 | 124 | writeFloat32 | |\n * | float64 | 123 | writeFloat64 | |\n * | bigint | 122 | writeBigInt64 | |\n * | boolean (false) | 121 | | True and false are different data types so we save the following byte |\n * | boolean (true) | 120 | | - 0b01111000 so the last bit determines whether true or false |\n * | string | 119 | writeVarString | |\n * | object | 118 | custom | Writes {length} then {length} key-value pairs |\n * | array | 117 | custom | Writes {length} then {length} json values |\n * | Uint8Array | 116 | writeVarUint8Array | We use Uint8Array for any kind of binary data |\n *\n * Reasons for the decreasing prefix:\n * We need the first bit for extendability (later we may want to encode the\n * prefix with writeVarUint). The remaining 7 bits are divided as follows:\n * [0-30] the beginning of the data range is used for custom purposes\n * (defined by the function that uses this library)\n * [31-127] the end of the data range is used for data encoding by\n * lib0/encoding.js\n *\n * @param {Encoder} encoder\n * @param {undefined|null|number|bigint|boolean|string|Object|Array|Uint8Array} data\n */\nexport const writeAny = (encoder, data) => {\n switch (typeof data) {\n case 'string':\n // TYPE 119: STRING\n write(encoder, 119)\n writeVarString(encoder, data)\n break\n case 'number':\n if (number.isInteger(data) && math.abs(data) <= binary.BITS31) {\n // TYPE 125: INTEGER\n write(encoder, 125)\n writeVarInt(encoder, data)\n } else if (isFloat32(data)) {\n // TYPE 124: FLOAT32\n write(encoder, 124)\n writeFloat32(encoder, data)\n } else {\n // TYPE 123: FLOAT64\n write(encoder, 123)\n writeFloat64(encoder, data)\n }\n break\n case 'bigint':\n // TYPE 122: BigInt\n write(encoder, 122)\n writeBigInt64(encoder, data)\n break\n case 'object':\n if (data === null) {\n // TYPE 126: null\n write(encoder, 126)\n } else if (array.isArray(data)) {\n // TYPE 117: Array\n write(encoder, 117)\n writeVarUint(encoder, data.length)\n for (let i = 0; i < data.length; i++) {\n writeAny(encoder, data[i])\n }\n } else if (data instanceof Uint8Array) {\n // TYPE 116: ArrayBuffer\n write(encoder, 116)\n writeVarUint8Array(encoder, data)\n } else {\n // TYPE 118: Object\n write(encoder, 118)\n const keys = Object.keys(data)\n writeVarUint(encoder, keys.length)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n writeVarString(encoder, key)\n writeAny(encoder, data[key])\n }\n }\n break\n case 'boolean':\n // TYPE 120/121: boolean (true/false)\n write(encoder, data ? 120 : 121)\n break\n default:\n // TYPE 127: undefined\n write(encoder, 127)\n }\n}\n\n/**\n * Now come a few stateful encoder that have their own classes.\n */\n\n/**\n * Basic Run Length Encoder - a basic compression implementation.\n *\n * Encodes [1,1,1,7] to [1,3,7,1] (3 times 1, 1 time 7). This encoder might do more harm than good if there are a lot of values that are not repeated.\n *\n * It was originally used for image compression. Cool .. article http://csbruce.com/cbm/transactor/pdfs/trans_v7_i06.pdf\n *\n * @note T must not be null!\n *\n * @template T\n */\nexport class RleEncoder extends Encoder {\n /**\n * @param {function(Encoder, T):void} writer\n */\n constructor (writer) {\n super()\n /**\n * The writer\n */\n this.w = writer\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n /**\n * @param {T} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n this.w(this, v)\n this.s = v\n }\n }\n}\n\n/**\n * Basic diff decoder using variable length encoding.\n *\n * Encodes the values [3, 1100, 1101, 1050, 0] to [3, 1097, 1, -51, -1050] using writeVarInt.\n */\nexport class IntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n writeVarInt(this, v - this.s)\n this.s = v\n }\n}\n\n/**\n * A combination of IntDiffEncoder and RleEncoder.\n *\n * Basically first writes the IntDiffEncoder and then counts duplicate diffs using RleEncoding.\n *\n * Encodes the values [1,1,1,2,3,4,5,6] as [1,1,0,2,1,5] (RLE([1,0,0,1,1,1,1,1]) ⇒ RleIntDiff[1,1,0,2,1,5])\n */\nexport class RleIntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v && this.count > 0) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n writeVarInt(this, v - this.s)\n this.s = v\n }\n }\n}\n\n/**\n * @param {UintOptRleEncoder} encoder\n */\nconst flushUintOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set sign to positive\n // case 2: write several values. set sign to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encoder.count === 1 ? encoder.s : -encoder.s)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * Optimized Rle encoder that does not suffer from the mentioned problem of the basic Rle encoder.\n *\n * Internally uses VarInt encoder to write unsigned integers. If the input occurs multiple times, we write\n * write it as a negative number. The UintOptRleDecoder then understands that it needs to read a count.\n *\n * Encodes [1,2,3,3,3] as [1,2,-3,3] (once 1, once 2, three times 3)\n */\nexport class UintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Increasing Uint Optimized RLE Encoder\n *\n * The RLE encoder counts the number of same occurences of the same value.\n * The IncUintOptRle encoder counts if the value increases.\n * I.e. 7, 8, 9, 10 will be encoded as [-7, 4]. 1, 3, 5 will be encoded\n * as [1, 3, 5].\n */\nexport class IncUintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s + this.count === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * @param {IntDiffOptRleEncoder} encoder\n */\nconst flushIntDiffOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // 31 bit making up the diff | wether to write the counter\n // const encodedDiff = encoder.diff << 1 | (encoder.count === 1 ? 0 : 1)\n const encodedDiff = encoder.diff * 2 + (encoder.count === 1 ? 0 : 1)\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set first bit to positive\n // case 2: write several values. set first bit to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encodedDiff)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * A combination of the IntDiffEncoder and the UintOptRleEncoder.\n *\n * The count approach is similar to the UintDiffOptRleEncoder, but instead of using the negative bitflag, it encodes\n * in the LSB whether a count is to be read. Therefore this Encoder only supports 31 bit integers!\n *\n * Encodes [1, 2, 3, 2] as [3, 1, 6, -1] (more specifically [(1 << 1) | 1, (3 << 0) | 0, -1])\n *\n * Internally uses variable length encoding. Contrary to normal UintVar encoding, the first byte contains:\n * * 1 bit that denotes whether the next value is a count (LSB)\n * * 1 bit that denotes whether this value is negative (MSB - 1)\n * * 1 bit that denotes whether to continue reading the variable length integer (MSB)\n *\n * Therefore, only five bits remain to encode diff ranges.\n *\n * Use this Encoder only when appropriate. In most cases, this is probably a bad idea.\n */\nexport class IntDiffOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.diff === v - this.s) {\n this.s = v\n this.count++\n } else {\n flushIntDiffOptRleEncoder(this)\n this.count = 1\n this.diff = v - this.s\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushIntDiffOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Optimized String Encoder.\n *\n * Encoding many small strings in a simple Encoder is not very efficient. The function call to decode a string takes some time and creates references that must be eventually deleted.\n * In practice, when decoding several million small strings, the GC will kick in more and more often to collect orphaned string objects (or maybe there is another reason?).\n *\n * This string encoder solves the above problem. All strings are concatenated and written as a single string using a single encoding call.\n *\n * The lengths are encoded using a UintOptRleEncoder.\n */\nexport class StringEncoder {\n constructor () {\n /**\n * @type {Array}\n */\n this.sarr = []\n this.s = ''\n this.lensE = new UintOptRleEncoder()\n }\n\n /**\n * @param {string} string\n */\n write (string) {\n this.s += string\n if (this.s.length > 19) {\n this.sarr.push(this.s)\n this.s = ''\n }\n this.lensE.write(string.length)\n }\n\n toUint8Array () {\n const encoder = new Encoder()\n this.sarr.push(this.s)\n this.s = ''\n writeVarString(encoder, this.sarr.join(''))\n writeUint8Array(encoder, this.lensE.toUint8Array())\n return toUint8Array(encoder)\n }\n}\n","/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n","import * as array from './array.js'\n\n/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * The largest utf16 character.\n * Corresponds to Uint8Array([255, 255]) or charcodeof(2x2^8)\n */\nexport const MAX_UTF16_CHARACTER = fromCharCode(65535)\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* c8 ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* c8 ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* c8 ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* c8 ignore start */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* c8 ignore next */\n utf8TextDecoder = null\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* c8 ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n\n/**\n * @param {string} source\n * @param {number} n\n */\nexport const repeat = (source, n) => array.unfold(n, () => source).join('')\n","/**\n * Efficient schema-less binary decoding with support for variable length encoding.\n *\n * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module decoding\n */\n\nimport * as binary from './binary.js'\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as string from './string.js'\nimport * as error from './error.js'\nimport * as encoding from './encoding.js'\n\nconst errorUnexpectedEndOfArray = error.create('Unexpected end of array')\nconst errorIntegerOutOfRange = error.create('Integer out of Range')\n\n/**\n * A Decoder handles the decoding of an Uint8Array.\n */\nexport class Decoder {\n /**\n * @param {Uint8Array} uint8Array Binary data to decode\n */\n constructor (uint8Array) {\n /**\n * Decoding target.\n *\n * @type {Uint8Array}\n */\n this.arr = uint8Array\n /**\n * Current decoding position.\n *\n * @type {number}\n */\n this.pos = 0\n }\n}\n\n/**\n * @function\n * @param {Uint8Array} uint8Array\n * @return {Decoder}\n */\nexport const createDecoder = uint8Array => new Decoder(uint8Array)\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {boolean}\n */\nexport const hasContent = decoder => decoder.pos !== decoder.arr.length\n\n/**\n * Clone a decoder instance.\n * Optionally set a new position parameter.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} [newPos] Defaults to current position\n * @return {Decoder} A clone of `decoder`\n */\nexport const clone = (decoder, newPos = decoder.pos) => {\n const _decoder = createDecoder(decoder.arr)\n _decoder.pos = newPos\n return _decoder\n}\n\n/**\n * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} len The length of bytes to read\n * @return {Uint8Array}\n */\nexport const readUint8Array = (decoder, len) => {\n const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)\n decoder.pos += len\n return view\n}\n\n/**\n * Read variable length Uint8Array.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder))\n\n/**\n * Read the rest of the content as an ArrayBuffer\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTailAsUint8Array = decoder => readUint8Array(decoder, decoder.arr.length - decoder.pos)\n\n/**\n * Skip one byte, jump to the next position.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} The next position\n */\nexport const skip8 = decoder => decoder.pos++\n\n/**\n * Read one byte as unsigned integer.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} Unsigned 8-bit integer\n */\nexport const readUint8 = decoder => decoder.arr[decoder.pos++]\n\n/**\n * Read 2 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint16 = decoder => {\n const uint =\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n decoder.pos += 2\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32 = decoder => {\n const uint =\n (decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32BigEndian = decoder => {\n const uint =\n (decoder.arr[decoder.pos + 3] +\n (decoder.arr[decoder.pos + 2] << 8) +\n (decoder.arr[decoder.pos + 1] << 16) +\n (decoder.arr[decoder.pos] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint8 = decoder => decoder.arr[decoder.pos]\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint16 = decoder =>\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint32 = decoder => (\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)\n) >>> 0\n\n/**\n * Read unsigned integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarUint = decoder => {\n let num = 0\n let mult = 1\n const len = decoder.arr.length\n while (decoder.pos < len) {\n const r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult // shift $r << (7*#iterations) and add it to num\n mult *= 128 // next iteration, shift 7 \"more\" to the left\n if (r < binary.BIT8) {\n return num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Read signed integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarInt = decoder => {\n let r = decoder.arr[decoder.pos++]\n let num = r & binary.BITS6\n let mult = 64\n const sign = (r & binary.BIT7) > 0 ? -1 : 1\n if ((r & binary.BIT8) === 0) {\n // don't continue reading\n return sign * num\n }\n const len = decoder.arr.length\n while (decoder.pos < len) {\n r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult\n mult *= 128\n if (r < binary.BIT8) {\n return sign * num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarUint = decoder => {\n const pos = decoder.pos\n const s = readVarUint(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarInt = decoder => {\n const pos = decoder.pos\n const s = readVarInt(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * We don't test this function anymore as we use native decoding/encoding by default now.\n * Better not modify this anymore..\n *\n * Transforming utf8 to a string is pretty expensive. The code performs 10x better\n * when String.fromCodePoint is fed with all characters as arguments.\n * But most environments have a maximum number of arguments per functions.\n * For effiency reasons we apply a maximum of 10000 characters at once.\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String.\n */\n/* c8 ignore start */\nexport const _readVarStringPolyfill = decoder => {\n let remainingLen = readVarUint(decoder)\n if (remainingLen === 0) {\n return ''\n } else {\n let encodedString = String.fromCodePoint(readUint8(decoder)) // remember to decrease remainingLen\n if (--remainingLen < 100) { // do not create a Uint8Array for small strings\n while (remainingLen--) {\n encodedString += String.fromCodePoint(readUint8(decoder))\n }\n } else {\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n // this is dangerous, we create a fresh array view from the existing buffer\n const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen)\n decoder.pos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n }\n return decodeURIComponent(escape(encodedString))\n }\n}\n/* c8 ignore stop */\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n */\nexport const _readVarStringNative = decoder =>\n /** @type any */ (string.utf8TextDecoder).decode(readVarUint8Array(decoder))\n\n/**\n * Read string of variable length\n * * varUint is used to store the length of the string\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n *\n */\n/* c8 ignore next */\nexport const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill\n\n/**\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTerminatedUint8Array = decoder => {\n const encoder = encoding.createEncoder()\n let b\n while (true) {\n b = readUint8(decoder)\n if (b === 0) {\n return encoding.toUint8Array(encoder)\n }\n if (b === 1) {\n b = readUint8(decoder)\n }\n encoding.write(encoder, b)\n }\n}\n\n/**\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const readTerminatedString = decoder => string.decodeUtf8(readTerminatedUint8Array(decoder))\n\n/**\n * Look ahead and read varString without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const peekVarString = decoder => {\n const pos = decoder.pos\n const s = readVarString(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * @param {Decoder} decoder\n * @param {number} len\n * @return {DataView}\n */\nexport const readFromDataView = (decoder, len) => {\n const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len)\n decoder.pos += len\n return dv\n}\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigUint64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigUint64(0, false)\n\n/**\n * @type {Array}\n */\nconst readAnyLookupTable = [\n decoder => undefined, // CASE 127: undefined\n decoder => null, // CASE 126: null\n readVarInt, // CASE 125: integer\n readFloat32, // CASE 124: float32\n readFloat64, // CASE 123: float64\n readBigInt64, // CASE 122: bigint\n decoder => false, // CASE 121: boolean (false)\n decoder => true, // CASE 120: boolean (true)\n readVarString, // CASE 119: string\n decoder => { // CASE 118: object\n const len = readVarUint(decoder)\n /**\n * @type {Object}\n */\n const obj = {}\n for (let i = 0; i < len; i++) {\n const key = readVarString(decoder)\n obj[key] = readAny(decoder)\n }\n return obj\n },\n decoder => { // CASE 117: array\n const len = readVarUint(decoder)\n const arr = []\n for (let i = 0; i < len; i++) {\n arr.push(readAny(decoder))\n }\n return arr\n },\n readVarUint8Array // CASE 116: Uint8Array\n]\n\n/**\n * @param {Decoder} decoder\n */\nexport const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder)\n\n/**\n * T must not be null.\n *\n * @template T\n */\nexport class RleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {function(Decoder):T} reader\n */\n constructor (uint8Array, reader) {\n super(uint8Array)\n /**\n * The reader\n */\n this.reader = reader\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = this.reader(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {T} */ (this.s)\n }\n}\n\nexport class IntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @return {number}\n */\n read () {\n this.s += readVarInt(this)\n return this.s\n }\n}\n\nexport class RleIntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n this.s += readVarInt(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class UintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class IncUintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s++)\n }\n}\n\nexport class IntDiffOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n const diff = readVarInt(this)\n // if the first bit is set, we read more data\n const hasCount = diff & 1\n this.diff = math.floor(diff / 2) // shift >> 1\n this.count = 1\n if (hasCount) {\n this.count = readVarUint(this) + 2\n }\n }\n this.s += this.diff\n this.count--\n return this.s\n }\n}\n\nexport class StringDecoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n this.decoder = new UintOptRleDecoder(uint8Array)\n this.str = readVarString(this.decoder)\n /**\n * @type {number}\n */\n this.spos = 0\n }\n\n /**\n * @return {string}\n */\n read () {\n const end = this.spos + this.decoder.read()\n const res = this.str.slice(this.spos, end)\n this.spos = end\n return res\n }\n}\n","/**\n * Error helpers.\n *\n * @module error\n */\n\n/**\n * @param {string} s\n * @return {Error}\n */\n/* c8 ignore next */\nexport const create = s => new Error(s)\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n","import * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as time from 'lib0/time'\nimport * as math from 'lib0/math'\nimport { ObservableV2 } from 'lib0/observable'\nimport * as f from 'lib0/function'\nimport * as Y from 'yjs'\n/**\n * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information\n * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of\n * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.\n *\n * Each client is identified by a unique client id (something we borrow from `doc.clientID`).\n *\n * A client can override its own state by propagating a message with an increasing timestamp (`clock`).\n *\n * If such a message is received, it is applied if the known state of that client is older than the new state (`clock < newClock`).\n *\n * If a client thinks that a remote client is offline, it may propagate a message with\n * `{ clock: currentClientClock, state: null, client: remoteClient }`\n *\n * If such a message is received, and the known clock of that client equals the received clock, it will override the state with `null`.\n *\n * Before a client disconnects, it should propagate a `null` state with an updated clock.\n *\n * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.\n */\n\nexport const outdatedTimeout = 30000\n\ntype MetaClientState = {\n clock: number\n lastUpdated: number\n}\n\nexport class Awareness extends ObservableV2 {\n doc: Y.Doc\n clientID: number\n states: Map>\n meta: Map\n _checkInterval: NodeJS.Timeout\n\n constructor(doc: Y.Doc) {\n super()\n this.doc = doc\n this.clientID = doc.clientID\n this.states = new Map()\n this.meta = new Map()\n this._checkInterval = setInterval(\n () => {\n const now = time.getUnixTime()\n if (\n this.getLocalState() !== null &&\n outdatedTimeout / 2 <= now - this.meta.get(this.clientID).lastUpdated\n ) {\n // renew local clock\n this.setLocalState(this.getLocalState())\n }\n const remove = []\n this.meta.forEach((meta, clientid) => {\n if (\n clientid !== this.clientID &&\n outdatedTimeout <= now - meta.lastUpdated &&\n this.states.has(clientid)\n ) {\n remove.push(clientid)\n }\n })\n if (remove.length > 0) {\n removeAwarenessStates(this, remove, 'timeout')\n }\n },\n math.floor(outdatedTimeout / 10)\n )\n doc.on('destroy', () => {\n this.destroy()\n })\n this.setLocalState({})\n }\n\n destroy() {\n this.emit('destroy', [this])\n this.setLocalState(null)\n super.destroy()\n clearInterval(this._checkInterval)\n }\n\n getLocalState(): Record | null {\n return this.states.get(this.clientID) || null\n }\n\n setLocalState(state: object | null) {\n const clientID = this.clientID\n const currLocalMeta = this.meta.get(clientID)\n const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1\n const prevState = this.states.get(clientID)\n if (state === null) {\n this.states.delete(clientID)\n } else {\n this.states.set(clientID, state)\n }\n this.meta.set(clientID, {\n clock,\n lastUpdated: time.getUnixTime(),\n })\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n if (state === null) {\n removed.push(clientID)\n } else if (prevState == null) {\n if (state != null) {\n added.push(clientID)\n }\n } else {\n updated.push(clientID)\n if (!f.equalityDeep(prevState, state)) {\n filteredUpdated.push(clientID)\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n this.emit('change', [\n { added, updated: filteredUpdated, removed },\n 'local',\n ])\n }\n this.emit('update', [{ added, updated, removed }, 'local'])\n }\n\n setLocalStateField(field: string, value: any) {\n const state = this.getLocalState()\n if (state !== null) {\n this.setLocalState({\n ...state,\n [field]: value,\n })\n }\n }\n\n getStates(): Map> {\n return this.states\n }\n}\n\n/**\n * Mark (remote) clients as inactive and remove them from the list of active peers.\n * This change will be propagated to remote clients\n */\nexport const removeAwarenessStates = (\n awareness: Awareness,\n clients: number[],\n origin: any\n) => {\n const removed = []\n for (let i = 0; i < clients.length; i++) {\n const clientID = clients[i]\n if (awareness.states.has(clientID)) {\n awareness.states.delete(clientID)\n if (clientID === awareness.clientID) {\n const curMeta =\n /** @type {MetaClientState} */ awareness.meta.get(clientID)\n awareness.meta.set(clientID, {\n clock: curMeta.clock + 1,\n lastUpdated: time.getUnixTime(),\n })\n }\n removed.push(clientID)\n }\n }\n if (removed.length > 0) {\n awareness.emit('change', [{ added: [], updated: [], removed }, origin])\n awareness.emit('update', [{ added: [], updated: [], removed }, origin])\n }\n}\n\n//\nexport const encodeAwarenessUpdate = (\n awareness: Awareness,\n clients: number[],\n states: Uint8Array = awareness.states\n) => {\n const len = clients.length\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = clients[i]\n const state = states.get(clientID) || null\n const clock =\n /** @type {MetaClientState} */ awareness.meta.get(clientID).clock\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(state))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Modify the content of an awareness update before re-encoding it to an awareness update.\n *\n * This might be useful when you have a central server that wants to ensure that clients\n * cant hijack somebody elses identity.\n */\nexport const modifyAwarenessUpdate = (update: Uint8Array, modify: any) => {\n const decoder = decoding.createDecoder(update)\n const encoder = encoding.createEncoder()\n const len = decoding.readVarUint(decoder)\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n const clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const modifiedState = modify(state)\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(modifiedState))\n }\n return encoding.toUint8Array(encoder)\n}\n\nexport const applyAwarenessUpdate = (\n awareness: Awareness,\n update: Uint8Array,\n origin: any\n) => {\n const decoder = decoding.createDecoder(update)\n const timestamp = time.getUnixTime()\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n const len = decoding.readVarUint(decoder)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n let clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const clientMeta = awareness.meta.get(clientID)\n const prevState = awareness.states.get(clientID)\n const currClock = clientMeta === undefined ? 0 : clientMeta.clock\n if (\n currClock < clock ||\n (currClock === clock && state === null && awareness.states.has(clientID))\n ) {\n if (state === null) {\n // never let a remote client remove this local state\n if (\n clientID === awareness.clientID &&\n awareness.getLocalState() != null\n ) {\n // remote client removed the local state. Do not remote state. Broadcast a message indicating\n // that this client still exists by increasing the clock\n clock++\n } else {\n awareness.states.delete(clientID)\n }\n } else {\n awareness.states.set(clientID, state)\n }\n awareness.meta.set(clientID, {\n clock,\n lastUpdated: timestamp,\n })\n if (clientMeta === undefined && state !== null) {\n added.push(clientID)\n } else if (clientMeta !== undefined && state === null) {\n removed.push(clientID)\n } else if (state !== null) {\n if (!f.equalityDeep(state, prevState)) {\n filteredUpdated.push(clientID)\n }\n updated.push(clientID)\n }\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n awareness.emit('change', [\n {\n added,\n updated: filteredUpdated,\n removed,\n },\n origin,\n ])\n }\n if (added.length > 0 || updated.length > 0 || removed.length > 0) {\n awareness.emit('update', [\n {\n added,\n updated,\n removed,\n },\n origin,\n ])\n }\n}\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((array.isArray(a) && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/* c8 ignore start */\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n/* c8 ignore stop */\n\nexport const isArray = array.isArray\n\n/**\n * @param {any} s\n * @return {s is String}\n */\nexport const isString = (s) => s && s.constructor === String\n\n/**\n * @param {any} n\n * @return {n is Number}\n */\nexport const isNumber = n => n != null && n.constructor === Number\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {any} n\n * @param {TYPE} T\n * @return {n is InstanceType}\n */\nexport const is = (n, T) => n && n.constructor === T\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {TYPE} T\n */\nexport const isTemplate = (T) =>\n /**\n * @param {any} n\n * @return {n is InstanceType}\n **/\n n => n && n.constructor === T\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n","/**\n * @module sync-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as Y from 'yjs'\n\n//type StateMap = Map;\n\n/**\n * Core Yjs defines two message types:\n * • YjsSyncStep1: Includes the State Set of the sending client. When received, the client should reply with YjsSyncStep2.\n * • YjsSyncStep2: Includes all missing structs and the complete delete set. When received, the client is assured that it\n * received all information from the remote client.\n *\n * In a peer-to-peer network, you may want to introduce a SyncDone message type. Both parties should initiate the connection\n * with SyncStep1. When a client received SyncStep2, it should reply with SyncDone. When the local client received both\n * SyncStep2 and SyncDone, it is assured that it is synced to the remote client.\n *\n * In a client-server model, you want to handle this differently: The client should initiate the connection with SyncStep1.\n * When the server receives SyncStep1, it should reply with SyncStep2 immediately followed by SyncStep1. The client replies\n * with SyncStep2 when it receives SyncStep1. Optionally the server may send a SyncDone after it received SyncStep2, so the\n * client knows that the sync is finished. There are two reasons for this more elaborated sync model: 1. This protocol can\n * easily be implemented on top of http and websockets. 2. The server should only reply to requests, and not initiate them.\n * Therefore it is necessary that the client initiates the sync.\n *\n * Construction of a message:\n * [messageType : varUint, message definition..]\n *\n * Note: A message does not include information about the room name. This must to be handled by the upper layer protocol!\n *\n * stringify[messageType] stringifies a message definition (messageType is already read from the bufffer)\n */\n\nexport enum SyncMessageType {\n Step1 = 0,\n Step2 = 1,\n Update = 2,\n Done = 3,\n}\n\ntype StateVector = Uint8Array\ntype UpdateVector = Uint8Array\n\n// Create a sync step 1 message based on the state of the current shared document.\nexport const writeSyncStep1 = (encoder: encoding.Encoder, doc: Y.Doc) => {\n encoding.writeVarUint(encoder, SyncMessageType.Step1)\n const sv = Y.encodeStateVector(doc)\n encoding.writeVarUint8Array(encoder, sv)\n}\n\nexport const writeSyncStep2 = (\n encoder: encoding.Encoder,\n doc: Y.Doc,\n encodedStateVector: StateVector\n) => {\n encoding.writeVarUint(encoder, SyncMessageType.Step2)\n encoding.writeVarUint8Array(\n encoder,\n Y.encodeStateAsUpdate(doc, encodedStateVector)\n )\n}\n\n// Read SyncStep1 message and reply with SyncStep2.\nexport const readSyncStep1 = (\n decoder: decoding.Decoder,\n encoder: encoding.Encoder,\n doc: Y.Doc\n) => {\n writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder))\n}\n\n// Read and apply Structs and then DeleteStore to a y instance.\nexport const readSyncStep2 = (\n decoder: decoding.Decoder,\n doc: Y.Doc,\n transactionOrigin: any\n) => {\n try {\n Y.applyUpdate(doc, decoding.readVarUint8Array(decoder), transactionOrigin)\n } catch (error) {\n // This catches errors that are thrown by event handlers\n console.error('Caught error while handling a Yjs update', error)\n }\n}\nexport const readUpdate = readSyncStep2\n\nexport const writeUpdate = (\n encoder: encoding.Encoder,\n update: UpdateVector\n) => {\n encoding.writeVarUint(encoder, SyncMessageType.Update)\n encoding.writeVarUint8Array(encoder, update)\n}\n\nexport const readSyncMessage = (\n decoder: decoding.Decoder,\n encoder: encoding.Encoder,\n doc: Y.Doc,\n transactionOrigin: any\n) => {\n const messageType = decoding.readVarUint(decoder)\n switch (messageType) {\n case SyncMessageType.Step1:\n readSyncStep1(decoder, encoder, doc)\n break\n case SyncMessageType.Step2:\n readSyncStep2(decoder, doc, transactionOrigin)\n break\n case SyncMessageType.Update:\n readUpdate(decoder, doc, transactionOrigin)\n break\n default:\n throw new Error('Unknown message type')\n }\n return messageType\n}\n","import * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as promise from 'lib0/promise'\nimport * as error from 'lib0/error'\nimport * as string from 'lib0/string'\n\nexport const deriveKey = (\n secret: string,\n roomName: string\n): Promise => {\n const secretBuffer = string.encodeUtf8(secret).buffer\n const salt = string.encodeUtf8(roomName).buffer\n return crypto.subtle\n .importKey('raw', secretBuffer, 'PBKDF2', false, ['deriveKey'])\n .then((keyMaterial) =>\n crypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt,\n iterations: 100000,\n hash: 'SHA-256',\n },\n keyMaterial,\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n )\n )\n}\n\nexport const encrypt = (\n data: Uint8Array,\n key: CryptoKey\n): Promise => {\n if (!key) {\n return promise.resolve(data)\n }\n const iv = crypto.getRandomValues(new Uint8Array(12))\n return crypto.subtle\n .encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n data\n )\n .then((cipher) => {\n const encryptedDataEncoder = encoding.createEncoder()\n encoding.writeVarString(encryptedDataEncoder, 'AES-GCM')\n encoding.writeVarUint8Array(encryptedDataEncoder, iv)\n encoding.writeVarUint8Array(encryptedDataEncoder, new Uint8Array(cipher))\n return encoding.toUint8Array(encryptedDataEncoder)\n })\n}\n\nexport const encryptJson = (\n data: any,\n key: CryptoKey | null\n): Promise => {\n const dataEncoder = encoding.createEncoder()\n encoding.writeAny(dataEncoder, data)\n return encrypt(encoding.toUint8Array(dataEncoder), key)\n}\n\nexport const decrypt = (\n data: Uint8Array,\n key: CryptoKey | null\n): Promise => {\n if (!key) {\n return promise.resolve(data)\n }\n const dataDecoder = decoding.createDecoder(data)\n const algorithm = decoding.readVarString(dataDecoder)\n if (algorithm !== 'AES-GCM') {\n promise.reject(error.create('Unknown encryption algorithm'))\n }\n const iv = decoding.readVarUint8Array(dataDecoder)\n const cipher = decoding.readVarUint8Array(dataDecoder)\n return crypto.subtle\n .decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n cipher\n )\n .then((data) => new Uint8Array(data))\n}\n\nexport const decryptJson = (\n data: Uint8Array,\n key: CryptoKey | null\n): Promise =>\n decrypt(data, key).then((decryptedValue) =>\n decoding.readAny(decoding.createDecoder(new Uint8Array(decryptedValue)))\n )\n","import * as bc from 'lib0/broadcastchannel'\nimport * as encoding from 'lib0/encoding'\nimport { createMutex } from 'lib0/mutex'\nimport * as random from 'lib0/random'\n\nimport * as Y from 'yjs' // eslint-disable-line\n\nimport { awarenessProtocol, syncProtocol } from '../protocols'\n\nimport { MessageType } from './types'\nimport { TrysteroProvider } from './TrysteroProvider'\nimport { rooms } from './connectionMaps'\nimport * as cryptoutils from './cryptoutils'\nimport { checkIsSynced, readMessage } from './messagesRead'\nimport {\n broadcastBcMessage,\n broadcastBcPeerId,\n broadcastRoomMessage,\n sendTrysteroConn,\n} from './messagesSend'\n\nimport {\n joinRoom,\n Room as TrysteroRoom,\n ActionSender,\n ActionReceiver,\n DataPayload,\n} from 'trystero'\n\nexport class Room {\n peerId: string\n doc: Y.Doc\n awareness: awarenessProtocol.Awareness\n provider: TrysteroProvider\n synced: boolean\n name: string\n key: CryptoKey | null\n bcConns: Set\n mux: any\n bcconnected: boolean\n\n // callbacks\n _bcSubscriber: (data: ArrayBuffer) => void\n _docUpdateHandler: (update: Uint8Array, _origin: any) => void\n _awarenessUpdateHandler: (changed: any, _origin: any) => void\n _beforeUnloadHandler: () => void\n _callbackPeerJoin?: (peerId: string) => void\n _callbackPeerLeave?: (peerId: string) => void\n\n // the raw trystero room\n trysteroRoom: TrysteroRoom\n trysteroConns: Record\n\n // functions to send and receive messages\n sendYjsMessage: ActionSender\n getYjsMessage: ActionReceiver\n\n constructor(\n doc: Y.Doc,\n provider: TrysteroProvider,\n name: string,\n key: CryptoKey | null\n ) {\n this.peerId = random.uuidv4() // this needs to be a random string\n this.doc = doc\n this.awareness = provider.awareness\n this.provider = provider\n this.synced = false\n this.name = name\n this.key = key\n this.bcConns = new Set()\n this.mux = createMutex()\n this.bcconnected = false\n\n // create a trystero room\n const config = {\n appId: provider.appId,\n password: provider.password,\n ...provider.peerOpts,\n }\n this.trysteroRoom = provider.joinRoom(config, name)\n\n // create actions for sending and receiving messages\n const [sendYjsMessage, getYjsMessage] =\n this.trysteroRoom.makeAction('yjs-message')\n this.sendYjsMessage = sendYjsMessage\n this.getYjsMessage = getYjsMessage\n\n this.getYjsMessage((data, peerId) => {\n const message = readMessage(this, data)\n if (message) {\n broadcastRoomMessage(this, message)\n }\n })\n\n // set the trysteroConns object\n this.trysteroConns = this.trysteroRoom.getPeers()\n\n // actions for when a peer joins the room\n this.trysteroRoom.onPeerJoin((peerId) => {\n this.trysteroConns = this.trysteroRoom.getPeers()\n this.trysteroConns[peerId].connected = true\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Sync)\n syncProtocol.writeSyncStep1(encoder, this.doc)\n sendTrysteroConn(this, peerId, encoder)\n const awarenessStates = this.awareness.getStates()\n if (awarenessStates.size > 0) {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(\n this.awareness,\n Array.from(awarenessStates.keys())\n )\n )\n sendTrysteroConn(this, peerId, encoder)\n }\n\n if (this._callbackPeerJoin) {\n this._callbackPeerJoin(peerId)\n }\n })\n\n // actions for when a peer leaves the room\n this.trysteroRoom.onPeerLeave((peerId) => {\n this.trysteroConns = this.trysteroRoom.getPeers()\n this.provider.emit('peers', [\n {\n removed: [peerId],\n added: [],\n trysteroPeers: Array.from(Object.keys(this.trysteroConns)),\n bcPeers: Array.from(this.bcConns),\n },\n ])\n checkIsSynced(this)\n\n if (this._callbackPeerLeave) {\n this._callbackPeerLeave(peerId)\n }\n })\n console.log('conns', this.trysteroConns)\n\n // Listens to broadcastchannel messages\n this._bcSubscriber = (data) =>\n cryptoutils.decrypt(new Uint8Array(data), key).then((m) =>\n this.mux(() => {\n const reply = readMessage(this, m)\n if (reply) {\n broadcastBcMessage(this, reply)\n }\n })\n )\n\n // Listens to Yjs updates and sends them to remote peers\n this._docUpdateHandler = (update: Uint8Array, _origin: any) => {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Sync)\n syncProtocol.writeUpdate(encoder, update)\n broadcastRoomMessage(this, encoder)\n }\n\n // Listens to Awareness updates and sends them to remote peers\n this._awarenessUpdateHandler = (\n { added, updated, removed },\n _origin: any\n ) => {\n // combine updated clients into a single array\n const changedClients = added.concat(updated).concat(removed)\n const encoderAwareness = encoding.createEncoder()\n encoding.writeVarUint(encoderAwareness, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoderAwareness,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients)\n )\n broadcastRoomMessage(this, encoderAwareness)\n }\n\n // disconnect from all rooms on window unload\n this._beforeUnloadHandler = () => {\n awarenessProtocol.removeAwarenessStates(\n this.awareness,\n [doc.clientID],\n 'window unload'\n )\n rooms.forEach((room) => {\n room.disconnect()\n })\n }\n\n // Registering event listeners\n if (typeof window !== 'undefined') {\n window.addEventListener('beforeunload', this._beforeUnloadHandler)\n } else if (typeof process !== 'undefined') {\n process.on('exit', this._beforeUnloadHandler)\n }\n }\n\n onPeerJoin(callback: (peerId: string) => void) {\n this._callbackPeerJoin = callback\n }\n\n onPeerLeave(callback: (peerId: string) => void) {\n this._callbackPeerLeave = callback\n }\n\n connect() {\n this.doc.on('update', this._docUpdateHandler)\n this.awareness.on('update', this._awarenessUpdateHandler)\n\n // broadcast peerId via broadcastchannel\n bc.subscribe(this.name, this._bcSubscriber)\n this.bcconnected = true\n broadcastBcPeerId(this)\n\n // write sync step 1\n const encoderSync = encoding.createEncoder()\n encoding.writeVarUint(encoderSync, MessageType.Sync)\n syncProtocol.writeSyncStep1(encoderSync, this.doc)\n broadcastBcMessage(this, encoderSync)\n\n // broadcast local state\n const encoderState = encoding.createEncoder()\n encoding.writeVarUint(encoderState, MessageType.Sync)\n syncProtocol.writeSyncStep2(encoderState, this.doc)\n broadcastBcMessage(this, encoderState)\n\n // write queryAwareness\n const encoderAwarenessQuery = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessQuery, MessageType.QueryAwareness)\n broadcastBcMessage(this, encoderAwarenessQuery)\n\n // broadcast local awareness state\n const encoderAwarenessState = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessState, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoderAwarenessState,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, [\n this.doc.clientID,\n ])\n )\n broadcastBcMessage(this, encoderAwarenessState)\n }\n\n disconnect() {\n //this.sendYjsMessage({ type: 'unsubscribe', topics: [this.name] })\n\n awarenessProtocol.removeAwarenessStates(\n this.awareness,\n [this.doc.clientID],\n 'disconnect'\n )\n\n // broadcast peerId removal via broadcastchannel\n const encoderPeerIdBc = encoding.createEncoder()\n encoding.writeVarUint(encoderPeerIdBc, MessageType.BcPeerId)\n encoding.writeUint8(encoderPeerIdBc, 0) // remove peerId from other bc peers\n encoding.writeVarString(encoderPeerIdBc, this.peerId)\n broadcastBcMessage(this, encoderPeerIdBc)\n\n bc.unsubscribe(this.name, this._bcSubscriber)\n this.bcconnected = false\n this.doc.off('update', this._docUpdateHandler)\n this.awareness.off('update', this._awarenessUpdateHandler)\n\n // leave the room\n bc.unsubscribe(this.name, () => {})\n this.trysteroRoom.leave()\n }\n\n destroy() {\n this.disconnect()\n if (typeof window !== 'undefined') {\n window.removeEventListener('beforeunload', this._beforeUnloadHandler)\n } else if (typeof process !== 'undefined') {\n process.off('exit', this._beforeUnloadHandler)\n }\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map}\n */\nconst channels = new Map()\n\n/* c8 ignore start */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n /**\n * @param {any} e\n */\n this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') })\n storage.onChange(this._onChange)\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n\n close () {\n storage.offChange(this._onChange)\n }\n}\n/* c8 ignore stop */\n\n// Use BroadcastChannel or Polyfill\n/* c8 ignore next */\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = set.create()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n /* c8 ignore next */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n","/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* c8 ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/* eslint-env browser */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* c8 ignore start */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n/* c8 ignore stop */\n\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\n/* c8 ignore start */\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n if (typeof localStorage !== 'undefined' && localStorage) {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n/* c8 ignore stop */\n\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\n/* c8 ignore next */\nexport const varStorage = _localStorage\n\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n\n/**\n * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Mutual exclude for JavaScript.\n *\n * @module mutex\n */\n\n/**\n * @callback mutex\n * @param {function():void} cb Only executed when this mutex is not in the current stack\n * @param {function():void} [elseCb] Executed when this mutex is in the current stack\n */\n\n/**\n * Creates a mutual exclude function with the following property:\n *\n * ```js\n * const mutex = createMutex()\n * mutex(() => {\n * // This function is immediately executed\n * mutex(() => {\n * // This function is not executed, as the mutex is already active.\n * })\n * })\n * ```\n *\n * @return {mutex} A mutual exclude function\n * @public\n */\nexport const createMutex = () => {\n let token = true\n return (f, g) => {\n if (token) {\n token = false\n try {\n f()\n } finally {\n token = true\n }\n } else if (g !== undefined) {\n g()\n }\n }\n}\n","export enum MessageType {\n Sync = 0,\n QueryAwareness = 3,\n Awareness = 1,\n BcPeerId = 4,\n}\n\nexport type PeerId = string\n","import { Room } from './Room'\n\n// Map of rooms by name\nexport const rooms: Map = new Map()\n","import * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport { awarenessProtocol, syncProtocol } from '../protocols'\n\nimport { MessageType } from './MessageType'\nimport { Room } from './Room'\nimport { TrysteroConn } from './TrysteroConn'\n//import { checkIsSynced } from './checkIsSynced'\nimport { broadcastBcPeerId } from './messagesSend'\n\n// read message from buffer and emit message\nexport const readMessage = (\n room: Room,\n buf: Uint8Array\n): encoding.Encoder | null => {\n const decoder = decoding.createDecoder(buf)\n const encoder = encoding.createEncoder()\n const messageType = decoding.readVarUint(decoder)\n if (room === undefined) {\n return null\n }\n const awareness = room.awareness\n const doc = room.doc\n let sendReply = false\n switch (messageType) {\n // sync step 1 and 2\n case MessageType.Sync: {\n encoding.writeVarUint(encoder, MessageType.Sync)\n const syncMessageType = syncProtocol.readSyncMessage(\n decoder,\n encoder,\n doc,\n room\n )\n // sync step 2\n if (\n syncMessageType === syncProtocol.SyncMessageType.Step2 &&\n !room.synced\n ) {\n checkIsSynced(room)\n }\n // sync step 1\n if (syncMessageType === syncProtocol.SyncMessageType.Step1) {\n sendReply = true\n }\n break\n }\n\n // reply with awareness to queryAwareness\n case MessageType.QueryAwareness:\n encoding.writeVarUint(encoder, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(\n awareness,\n Array.from(awareness.getStates().keys())\n )\n )\n sendReply = true\n break\n\n // handle incoming awareness data\n case MessageType.Awareness:\n awarenessProtocol.applyAwarenessUpdate(\n awareness,\n decoding.readVarUint8Array(decoder),\n room\n )\n break\n\n case MessageType.BcPeerId: {\n const add = decoding.readUint8(decoder) === 1\n const peerName = decoding.readVarString(decoder)\n if (\n peerName !== room.peerId &&\n ((room.bcConns.has(peerName) && !add) ||\n (!room.bcConns.has(peerName) && add))\n ) {\n const removed: string[] = []\n const added: string[] = []\n if (add) {\n room.bcConns.add(peerName)\n added.push(peerName)\n } else {\n room.bcConns.delete(peerName)\n removed.push(peerName)\n }\n room.provider.emit('peers', [\n {\n added,\n removed,\n trysteroPeers: Array.from(Object.keys(room.trysteroConns)),\n bcPeers: Array.from(room.bcConns),\n },\n ])\n broadcastBcPeerId(room)\n }\n\n break\n }\n\n default:\n console.error('Unable to compute message')\n return encoder\n }\n if (!sendReply) {\n // nothing has been written, no answer created\n return null\n }\n return encoder\n}\n\n// check if all peers are synced\nexport const checkIsSynced = (room: Room) => {\n let synced = true\n Array.from(Object.keys(room.trysteroConns)).forEach((peer) => {\n if (!peer.synced) {\n synced = false\n }\n })\n if ((!synced && room.synced) || (synced && !room.synced)) {\n room.synced = synced\n room.provider.emit('synced', [{ synced }])\n }\n}\n","export enum MessageType {\n Sync = 0,\n QueryAwareness = 3,\n Awareness = 1,\n BcPeerId = 4,\n}\n","import * as bc from 'lib0/broadcastchannel'\nimport * as encoding from 'lib0/encoding'\n\nimport * as cryptoutils from './cryptoutils'\n\nimport { MessageType, PeerId } from './types'\nimport { Room } from './Room'\n//import { TrysteroConn } from './TrysteroConn'\nimport { TrysteroProvider } from './TrysteroProvider'\n////import { publishSignalingMessage } from './checkIsSynced'\n//import { signalingConns } from './connectionMaps'\nimport { TargetPeers } from 'trystero'\n\n// send a message to a peer\nexport const sendTrysteroConn = (\n room: Room,\n trysteroPeer: PeerId,\n encoder: encoding.Encoder\n) => {\n try {\n room.sendYjsMessage(encoding.toUint8Array(encoder), trysteroPeer)\n } catch (e) {}\n}\n\n// broadcast a message to all peers in the room\nexport const broadcastTrysteroConn = (\n room: Room,\n encoder: encoding.Encoder\n) => {\n room.sendYjsMessage(encoding.toUint8Array(encoder))\n}\n\n// broadcast an encrypted message to all other tabs\nexport const broadcastBcMessage = (room: Room, encoder: encoding.Encoder) =>\n cryptoutils\n .encrypt(encoding.toUint8Array(encoder), room.key)\n .then((data) => room.mux(() => bc.publish(room.name, data)))\n\n// broadcast a message to all peers in the room\nexport const broadcastRoomMessage = (room: Room, encoder: encoding.Encoder) => {\n //console.log('broadcastRoomMessage', encoding.toUint8Array(encoder))\n // if the document is open in other tabs, broadcast the message via broadcastchannel\n if (room.bcconnected) {\n broadcastBcMessage(room, encoder)\n }\n // then, broadcast the message to all peers in the room\n broadcastTrysteroConn(room, encoder)\n}\n\n// broadcast peerId via broadcastchannel\nexport const broadcastBcPeerId = (room: Room) => {\n if (room.provider.filterBcConns) {\n // broadcast peerId via broadcastchannel\n const encoderPeerIdBc = encoding.createEncoder()\n encoding.writeVarUint(encoderPeerIdBc, MessageType.BcPeerId)\n encoding.writeUint8(encoderPeerIdBc, 1)\n encoding.writeVarString(encoderPeerIdBc, room.peerId)\n broadcastBcMessage(room, encoderPeerIdBc)\n }\n}\n\n// emit connection status\nexport const emitStatus = (provider: TrysteroProvider) => {\n provider.emit('status', [\n {\n connected: provider.connected,\n },\n ])\n}\n","export {getRelaySockets, joinRoom, selfId} from './nostr.js'\n","import {schnorr} from '@noble/curves/secp256k1'\nimport strategy from './strategy.js'\nimport {\n encodeBytes,\n fromJson,\n genId,\n getRelays,\n isBrowser,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toHex,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst defaultRedundancy = 5\nconst kind = 29333\nconst tag = 'x'\nconst eventMsgType = 'EVENT'\nconst privateKey = isBrowser && schnorr.utils.randomPrivateKey()\nconst publicKey = isBrowser && toHex(schnorr.getPublicKey(privateKey))\nconst subIdToTopic = {}\nconst msgHandlers = {}\n\nconst now = () => Math.floor(Date.now() / 1000)\n\nconst createEvent = async (topic, content) => {\n const payload = {\n kind,\n content,\n pubkey: publicKey,\n created_at: now(),\n tags: [[tag, topic]]\n }\n\n const id = toHex(\n new Uint8Array(\n await crypto.subtle.digest(\n 'SHA-256',\n encodeBytes(\n toJson([\n 0,\n payload.pubkey,\n payload.created_at,\n payload.kind,\n payload.tags,\n payload.content\n ])\n )\n )\n )\n )\n\n return toJson([\n eventMsgType,\n {\n ...payload,\n id,\n sig: toHex(await schnorr.sign(id, privateKey))\n }\n ])\n}\n\nconst subscribe = (subId, topic) => {\n subIdToTopic[subId] = topic\n return toJson([\n 'REQ',\n subId,\n {\n kinds: [kind],\n since: now(),\n ['#' + tag]: [topic]\n }\n ])\n}\n\nconst unsubscribe = subId => {\n delete subIdToTopic[subId]\n return toJson(['CLOSE', subId])\n}\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(url => {\n const client = makeSocket(url, data => {\n const [msgType, subId, payload, relayMsg] = fromJson(data)\n\n if (msgType !== eventMsgType) {\n const prefix = `${libName}: relay failure from ${client.url} - `\n\n if (msgType === 'NOTICE') {\n console.warn(prefix + subId)\n } else if (msgType === 'OK' && !payload) {\n console.warn(prefix + relayMsg)\n }\n return\n }\n\n msgHandlers[subId]?.(subIdToTopic[subId], payload.content)\n })\n\n clients[url] = client\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, selfTopic, onMessage) => {\n const rootSubId = genId(64)\n const selfSubId = genId(64)\n\n msgHandlers[rootSubId] = msgHandlers[selfSubId] = (topic, data) =>\n onMessage(topic, data, async (peerTopic, signal) =>\n client.send(await createEvent(peerTopic, signal))\n )\n\n client.send(subscribe(rootSubId, rootTopic))\n client.send(subscribe(selfSubId, selfTopic))\n\n return () => {\n client.send(unsubscribe(rootSubId))\n client.send(unsubscribe(selfSubId))\n delete msgHandlers[rootSubId]\n delete msgHandlers[selfSubId]\n }\n },\n\n announce: async (client, rootTopic) =>\n client.send(await createEvent(rootTopic, toJson({peerId: selfId})))\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'relay.nostr.net',\n 'relay.snort.social',\n 'relay.piazza.today',\n 'relay.exit.pub',\n 'nostr.lu.ke',\n 'nostr.mom',\n 'relay.urbanzap.space',\n 'nostr.data.haus',\n 'nostr.sathoarder.com',\n 'relay.nostromo.social',\n 'relay.nostr.bg',\n 'nostr.stakey.net',\n 'nostr.vulpem.com',\n 'a.nos.lol',\n 'eu.purplerelay.com',\n 'nostr2.sanhauf.com',\n 'e.nos.lol'\n].map(url => 'wss://' + url)\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst _shortw_utils_js_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_js_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_js_1 = require(\"./abstract/modular.js\");\nconst utils_js_1 = require(\"./abstract/utils.js\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_js_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_js_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_js_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_js_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_js_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_js_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_js_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_js_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_js_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_js_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_js_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_js_1.pow2)(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = (0, modular_js_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexports.secp256k1 = (0, _shortw_utils_js_1.createCurve)({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = (0, modular_js_1.mod)(k - c1 * a1 - c2 * a2, n);\n let k2 = (0, modular_js_1.mod)(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = (0, utils_js_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha256_1.sha256)((0, utils_js_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => (0, utils_js_1.numberToBytesBE)(n, 32);\nconst modP = (x) => (0, modular_js_1.mod)(x, secp256k1P);\nconst modN = (x) => (0, modular_js_1.mod)(x, secp256k1N);\nconst Point = exports.secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n (0, utils_js_1.aInRange)('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = utils_js_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) {\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = (0, utils_js_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = (0, utils_js_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const pub = (0, utils_js_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_js_1.inRange)(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_js_1.inRange)(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n */\nexports.schnorr = (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_js_1.numberToBytesBE,\n bytesToNumberBE: utils_js_1.bytesToNumberBE,\n taggedHash,\n mod: modular_js_1.mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.isogenyMap)(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256_1.sha256,\n}))();\nexports.hashToCurve = (() => htf.hashToCurve)();\nexports.encodeToCurve = (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport {\n inRange,\n aInRange,\n bytesToNumberBE,\n concatBytes,\n ensureBytes,\n numberToBytesBE,\n} from './abstract/utils.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexport const secp256k1 = createCurve(\n {\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k: bigint) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg) k1 = n - k1;\n if (k2neg) k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n },\n sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType, a: bigint, b: bigint) =>\n Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n) y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(\n message: Hex,\n privateKey: PrivKey,\n auxRand: Hex = randomBytes(32)\n): Uint8Array {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n) throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P)) return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N)) return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r) return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Schnorr signatures over secp256k1.\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n isogenyMap(\n Fp,\n [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n }))();\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n secp256k1.ProjectivePoint,\n (scalars: bigint[]) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n },\n {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = exports.SHA256 = void 0;\nconst _md_js_1 = require(\"./_md.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_js_1.HashMD {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_js_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_js_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\nexports.SHA256 = SHA256;\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashMD = exports.Maj = exports.Chi = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\nexports.Chi = Chi;\n/**\n * Majority function, true if any two inputs is true\n */\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\nexports.Maj = Maj;\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n (0, _assert_js_1.exists)(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.output)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.HashMD = HashMD;\n//# sourceMappingURL=_md.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBytes = isBytes;\nexports.number = number;\nexports.bool = bool;\nexports.bytes = bytes;\nexports.hash = hash;\nexports.exists = exists;\nexports.output = output;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = { number, bool, bytes, hash, exists, output };\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.byteSwap = exports.isLE = exports.rotl = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\nexports.isBytes = isBytes;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\nconst _assert_js_1 = require(\"./_assert.js\");\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexports.rotl = rotl;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nconst byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\nexports.byteSwap = byteSwap;\n// Conditionally byte swap if on a big-endian platform\nexports.byteSwapIfBE = exports.isLE ? (n) => n : (n) => (0, exports.byteSwap)(n);\n// In place byte swap for Uint32Array\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = (0, exports.byteSwap)(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n (0, _assert_js_1.bytes)(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n (0, _assert_js_1.bytes)(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n (0, _assert_js_1.bytes)(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nconst toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return crypto_1.crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)),\n randomBytes: utils_1.randomBytes,\n };\n}\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_js_1.weierstrass)({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { CHash } from './abstract/utils.js';\nimport { CurveType, weierstrass } from './abstract/weierstrass.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n return {\n hash,\n hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, _assert_js_1.hash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n (0, _assert_js_1.exists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.bytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC> extends Hash> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to?: HMAC): HMAC {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = void 0;\nexports.weierstrassPoints = weierstrassPoints;\nexports.weierstrass = weierstrass;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nconst curve_js_1 = require(\"./curve.js\");\nconst mod = require(\"./modular.js\");\nconst ut = require(\"./utils.js\");\nconst utils_js_1 = require(\"./utils.js\");\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n (0, utils_js_1.abool)('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n (0, utils_js_1.abool)('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected assertion');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE((0, utils_js_1.ensureBytes)('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = (0, utils_js_1.memoized)((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_js_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes((0, utils_js_1.ensureBytes)('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return (0, curve_js_1.pippenger)(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (sc === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, sc);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = (0, curve_js_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nfunction weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = (0, utils_js_1.ensureBytes)('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = exports.DER.toSig((0, utils_js_1.ensureBytes)('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN((0, utils_js_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return exports.DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = (0, utils_js_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push((0, utils_js_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n publicKey = (0, utils_js_1.ensureBytes)('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport {\n AffinePoint,\n BasicCurve,\n Group,\n GroupConstructor,\n validateBasic,\n wNAF,\n pippenger,\n} from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes, memoized, abool } from './utils.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n beta: bigint;\n splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve = BasicCurve & {\n // Params: a, b\n a: T;\n b: T;\n\n // Optional params\n allowedPrivateKeyLengths?: readonly number[]; // for P521\n wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n // When a cofactor != 1, there can be an effective methods to:\n // 1. Determine whether a point is torsion-free\n isTorsionFree?: (c: ProjConstructor, point: ProjPointType) => boolean;\n // 2. Clear torsion component\n clearCofactor?: (c: ProjConstructor, point: ProjPointType) => ProjPointType;\n};\n\ntype Entropy = Hex | boolean;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\nfunction validateSigVerOpts(opts: SignOpts | VerOpts) {\n if (opts.lowS !== undefined) abool('lowS', opts.lowS);\n if (opts.prehash !== undefined) abool('prehash', opts.prehash);\n}\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType extends Group> {\n readonly px: T;\n readonly py: T;\n readonly pz: T;\n get x(): T;\n get y(): T;\n multiply(scalar: bigint): ProjPointType;\n toAffine(iz?: T): AffinePoint;\n isTorsionFree(): boolean;\n clearCofactor(): ProjPointType;\n assertValidity(): void;\n hasEvenY(): boolean;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n\n multiplyUnsafe(scalar: bigint): ProjPointType;\n multiplyAndAddUnsafe(Q: ProjPointType, a: bigint, b: bigint): ProjPointType | undefined;\n _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor extends GroupConstructor> {\n new (x: T, y: T, z: T): ProjPointType;\n fromAffine(p: AffinePoint): ProjPointType;\n fromHex(hex: Hex): ProjPointType;\n fromPrivateKey(privateKey: PrivKey): ProjPointType;\n normalizeZ(points: ProjPointType[]): ProjPointType[];\n msm(points: ProjPointType[], scalars: bigint[]): ProjPointType;\n}\n\nexport type CurvePointsType = BasicWCurve & {\n // Bytes\n fromBytes?: (bytes: Uint8Array) => AffinePoint;\n toBytes?: (c: ProjConstructor, point: ProjPointType, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts(curve: CurvePointsType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n a: 'field',\n b: 'field',\n },\n {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n }\n );\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (\n typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function'\n ) {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes = {\n CURVE: ReturnType>;\n ProjectivePoint: ProjConstructor;\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n weierstrassEquation: (x: T) => T;\n isWithinCurveOrder: (num: bigint) => boolean;\n};\n\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag: number, data: string) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length & 1) throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 0b1000_0000) throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 0b1000_0000) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array } {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag) throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 0b1000_0000); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong) length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 0b0111_1111;\n if (!lenLen) throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4) throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen) throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0) throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes) length = (length << 8) | b;\n pos += lenLen;\n if (length < 128) throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length) throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num: bigint) {\n const { Err: E } = DER;\n if (num < _0n) throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000) hex = '00' + hex;\n if (hex.length & 1) throw new E('unexpected assertion');\n return hex;\n },\n decode(data: Uint8Array): bigint {\n const { Err: E } = DER;\n if (data[0] & 0b1000_0000) throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 0b1000_0000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig: { r: bigint; s: bigint }): string {\n const { _tlv: tlv, _int: int } = DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function weierstrassPoints(opts: CurvePointsType): CurvePointsRes {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n\n const toBytes =\n CURVE.toBytes ||\n ((_c: ProjConstructor, point: ProjPointType, _isCompressed: boolean) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes =\n CURVE.fromBytes ||\n ((bytes: Uint8Array) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x: T): T {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num: bigint): boolean {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key: PrivKey): bigint {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key)) key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num: bigint;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey) num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n\n function assertPrjPoint(other: unknown) {\n if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n }\n\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p: Point, iz?: T): AffinePoint => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE)) return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p: Point) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py)) return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point implements ProjPointType {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n constructor(\n readonly px: T,\n readonly py: T,\n readonly pz: T\n ) {\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n Object.freeze(this);\n }\n\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p: AffinePoint): Point {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n const is0 = (i: T) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n\n get x(): T {\n return this.toAffine().x;\n }\n get y(): T {\n return this.toAffine().y;\n }\n\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points: Point[]): Point[] {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex: Hex): Point {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey: PrivKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n\n // Multiscalar Multiplication\n static msm(points: Point[], scalars: bigint[]) {\n return pippenger(Point, Fn, points, scalars);\n }\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n wnaf.setWindowSize(this, windowSize);\n }\n\n // A point on curve is valid if it conforms to equation.\n assertValidity(): void {\n assertValidMemo(this);\n }\n\n hasEvenY(): boolean {\n const { y } = this.toAffine();\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n\n /**\n * Compare one point to another.\n */\n equals(other: Point): boolean {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate(): Point {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other: Point): Point {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n\n subtract(other: Point) {\n return this.add(other.negate());\n }\n\n is0() {\n return this.equals(Point.ZERO);\n }\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc: bigint): Point {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n) return I;\n if (sc === _1n) return this;\n const { endo } = CURVE;\n if (!endo) return wnaf.unsafeLadder(this, sc);\n\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d: Point = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n) k1p = k1p.add(d);\n if (k2 & _1n) k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg) k1p = k1p.negate();\n if (k2neg) k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar: bigint): Point {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point: Point, fake: Point; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n } else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (\n P: Point,\n a: bigint // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz?: T): AffinePoint {\n return toAffineMemo(this, iz);\n }\n isTorsionFree(): boolean {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n) return true; // No subgroups, always torsion-free\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor(): Point {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n) return this; // Fast-path\n if (clearCofactor) return clearCofactor(Point, this) as Point;\n return this.multiplyUnsafe(CURVE.h);\n }\n\n toRawBytes(isCompressed = true): Uint8Array {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n\n toHex(isCompressed = true): string {\n abool('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point as ProjConstructor,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\n\n// Instance\nexport interface SignatureType {\n readonly r: bigint;\n readonly s: bigint;\n readonly recovery?: number;\n assertValidity(): void;\n addRecoveryBit(recovery: number): RecoveredSignatureType;\n hasHighS(): boolean;\n normalizeS(): SignatureType;\n recoverPublicKey(msgHash: Hex): ProjPointType;\n toCompactRawBytes(): Uint8Array;\n toCompactHex(): string;\n // DER-encoded\n toDERRawBytes(isCompressed?: boolean): Uint8Array;\n toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n new (r: bigint, s: bigint): SignatureType;\n fromCompact(hex: Hex): SignatureType;\n fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType;\n\nexport type CurveType = BasicWCurve & {\n hash: CHash; // CHash not FHash because we need outputLen for DRBG\n hmac: HmacFnSync;\n randomBytes: (bytesLength?: number) => Uint8Array;\n lowS?: boolean;\n bits2int?: (bytes: Uint8Array) => bigint;\n bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n },\n {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n }\n );\n return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n CURVE: ReturnType;\n getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n ProjectivePoint: ProjConstructor;\n Signature: SignatureConstructor;\n utils: {\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n isValidPrivateKey(privateKey: PrivKey): boolean;\n randomPrivateKey: () => Uint8Array;\n precompute: (windowSize?: number, point?: ProjPointType) => ProjPointType;\n };\n};\n\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType;\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n function modN(a: bigint) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a: bigint) {\n return mod.invert(a, CURVE_ORDER);\n }\n\n const {\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed: boolean): Uint8Array {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes: Uint8Array) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER)) throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y: bigint;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n } catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return { x, y };\n } else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n } else {\n throw new Error(\n `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n );\n }\n },\n });\n const numToNByteStr = (num: bigint): string =>\n ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n function isBiggerThanHalfOrder(number: bigint) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n\n function normalizeS(s: bigint) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature implements SignatureType {\n constructor(\n readonly r: bigint,\n readonly s: bigint,\n readonly recovery?: number\n ) {\n this.assertValidity();\n }\n\n // pair (bytes of r, bytes of s)\n static fromCompact(hex: Hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex: Hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n\n assertValidity(): void {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n\n addRecoveryBit(recovery: number): RecoveredSignature {\n return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n }\n\n recoverPublicKey(msgHash: Hex): typeof Point.BASE {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n\n // Signatures should be low-s, to prevent malleability.\n hasHighS(): boolean {\n return isBiggerThanHalfOrder(this.s);\n }\n\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n type RecoveredSignature = Signature & { recovery: number };\n\n const utils = {\n isValidPrivateKey(privateKey: PrivKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: (): Uint8Array => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey: PrivKey, isCompressed = true): Uint8Array {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item: PrivKey | PubKey): boolean {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && (item as Hex).length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\n\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int =\n CURVE.bits2int ||\n function (bytes: Uint8Array): bigint {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN =\n CURVE.bits2int_modN ||\n function (bytes: Uint8Array): bigint {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num: bigint): Uint8Array {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash: Hex, privateKey: PrivKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n) return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n) return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(\n signature: Hex | SignatureLike,\n msgHash: Hex,\n publicKey: Hex,\n opts = defaultVerOpts\n ): boolean {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n\n let _sig: Signature | undefined = undefined;\n let P: ProjPointType;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\n }\n } else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n } else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n } catch (error) {\n if ((error as Error).message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS()) return false;\n if (prehash) msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R) return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp: mod.IField, Z: T) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u: T, v: T) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(\n Fp: mod.IField,\n opts: {\n A: T;\n B: T;\n Z: T;\n }\n) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd) throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u: T): { x: T; y: T } => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = wNAF;\nexports.pippenger = pippenger;\nexports.validateBasic = validateBasic;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, n, transform) {\n const W = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nfunction pippenger(c, field, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error(`wrong point at index ${i}`);\n });\n const wbits = (0, utils_js_1.bitLen)(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\nfunction validateBasic(curve) {\n (0, modular_js_1.validateField)(curve.Fp);\n (0, utils_js_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_js_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject, bitLen } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper = (i: T[]) => T[];\n\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF>(c: GroupConstructor, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W: number) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W: number) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm: T, W: number): Group[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n\n let p = c.ZERO;\n let f = c.BASE;\n\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n\n wNAFCached(P: T, n: bigint, transform: Mapper): { p: T; f: T } {\n const W: number = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W) as T[];\n if (W !== 1) pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n\n setWindowSize(P: T, W: number) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger>(\n c: GroupConstructor,\n field: IField,\n points: T[],\n scalars: bigint[]\n): T {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s)) throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof (c as any))) throw new Error(`wrong point at index ${i}`);\n });\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0) for (let j = 0; j < windowSize; j++) sum = sum.double();\n }\n return sum as T;\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve = {\n Fp: IField; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic(curve: BasicCurve & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nconst utils_js_1 = require(\"./utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nfunction invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return (0, utils_js_1.validateObject)(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nfunction FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nfunction FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nfunction FpLegendre(order) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: (0, utils_js_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? (0, utils_js_1.numberToBytesLE)(num, BYTES) : (0, utils_js_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? (0, utils_js_1.bytesToNumberLE)(bytes) : (0, utils_js_1.bytesToNumberBE)(bytes);\n },\n });\n return Object.freeze(f);\n}\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_js_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberLE)(hash) : (0, utils_js_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberBE)(key) : (0, utils_js_1.bytesToNumberLE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_js_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_js_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n numberToBytesBE,\n numberToBytesLE,\n validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n\n let Q: bigint, S: number, Z: bigint;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp: IField, n: T): T {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\n\nexport function FpSqrt(P: bigint) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp: IField, n: T) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField(field: IField) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f: IField, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f: IField, nums: T[]): T[] {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv(f: IField, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\nexport function FpLegendre(order: bigint) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f: IField, x: T): T => f.pow(x, legendreConst);\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f: IField) {\n const legendre = FpLegendre(f.ORDER);\n return (x: T): boolean => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField & Required, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial> = {}\n): Readonly {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.bytesToHex = bytesToHex;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nexport function abytes(item: unknown): void {\n if (!isBytes(item)) throw new Error('Uint8Array expected');\n}\n\nexport function abool(title: string, value: boolean): void {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Is positive bigint\nconst isPosBig = (n: bigint) => typeof n === 'bigint' && _0n <= n;\n\nexport function inRange(n: bigint, min: bigint, max: bigint) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title: string, n: bigint, min: bigint, max: bigint) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn: (arg: T, ...args: O) => R) {\n const map = new WeakMap();\n return (arg: T, ...args: O): R => {\n const val = map.get(arg);\n if (val !== undefined) return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_js_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_js_1.concatBytes)((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_js_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_js_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_js_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_js_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_js_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_js_1.validateObject)(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n (0, utils_js_1.abytes)(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? (0, utils_js_1.utf8ToBytes)(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_js_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nfunction createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport type { AffinePoint, Group, GroupConstructor } from './curve.js';\nimport { IField, mod } from './modular.js';\nimport type { CHash } from './utils.js';\nimport { abytes, bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';\n\n/**\n * * `DST` is a domain separation tag, defined in section 2.2.5\n * * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m\n * * `m` is extension degree (1 for prime fields)\n * * `k` is the target security target in bits (e.g. 128), from section 5.1\n * * `expand` is `xmd` (SHA2, SHA3, BLAKE) or `xof` (SHAKE, BLAKE-XOF)\n * * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props\n */\ntype UnicodeOrBytes = string | Uint8Array;\nexport type Opts = {\n DST: UnicodeOrBytes;\n p: bigint;\n m: number;\n k: number;\n expand: 'xmd' | 'xof';\n hash: CHash;\n};\n\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value: number, length: number): Uint8Array {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0) as number[];\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\n\nfunction strxor(a: Uint8Array, b: Uint8Array): Uint8Array {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\n\nfunction anum(item: unknown): void {\n if (!Number.isSafeInteger(item)) throw new Error('number expected');\n}\n\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nexport function expand_message_xmd(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255) DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255) throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nexport function expand_message_xof(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n k: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (\n H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest()\n );\n}\n\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg: Uint8Array, count: number, options: Opts): bigint[][] {\n validateObject(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n abytes(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? utf8ToBytes(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n } else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n } else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n } else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\n\nexport function isogenyMap>(field: F, map: [T[], T[], T[], T[]]) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x: T, y: T) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) =>\n val.reduce((acc, i) => field.add(field.mul(acc, x), i))\n );\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\n\nexport interface H2CPoint extends Group> {\n add(rhs: H2CPoint): H2CPoint;\n toAffine(iz?: bigint): AffinePoint;\n clearCofactor(): H2CPoint;\n assertValidity(): void;\n}\n\nexport interface H2CPointConstructor extends GroupConstructor> {\n fromAffine(ap: AffinePoint): H2CPoint;\n}\n\nexport type MapToCurve = (scalar: bigint[]) => AffinePoint;\n\n// Separated from initialization opts, so users won't accidentally change per-curve parameters\n// (changing DST is ok!)\nexport type htfBasicOpts = { DST: UnicodeOrBytes };\n\nexport function createHasher(\n Point: H2CPointConstructor,\n mapToCurve: MapToCurve,\n def: Opts & { encodeDST?: UnicodeOrBytes }\n) {\n if (typeof mapToCurve !== 'function') throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options } as Opts);\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options } as Opts);\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars: bigint[]) {\n if (!Array.isArray(scalars)) throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n","import {decrypt, encrypt, genKey, sha1} from './crypto.js'\nimport initPeer from './peer.js'\nimport room from './room.js'\nimport {\n all,\n alloc,\n fromJson,\n libName,\n mkErr,\n noOp,\n selfId,\n toJson,\n topicPath\n} from './utils.js'\n\nconst poolSize = 20\nconst announceIntervalMs = 5_333\nconst offerTtl = 57_333\n\nexport default ({init, subscribe, announce}) => {\n const occupiedRooms = {}\n\n let didInit = false\n let initPromises\n let offerPool\n let offerCleanupTimer\n\n return (config, roomId, onJoinError) => {\n const {appId} = config\n\n if (occupiedRooms[appId]?.[roomId]) {\n return occupiedRooms[appId][roomId]\n }\n\n const pendingOffers = {}\n const connectedPeers = {}\n const rootTopicPlaintext = topicPath(libName, appId, roomId)\n const rootTopicP = sha1(rootTopicPlaintext)\n const selfTopicP = sha1(topicPath(rootTopicPlaintext, selfId))\n const key = genKey(config.password || '', appId, roomId)\n\n const withKey = f => async signal => ({\n type: signal.type,\n sdp: await f(key, signal.sdp)\n })\n\n const toPlain = withKey(decrypt)\n const toCipher = withKey(encrypt)\n\n const makeOffer = () => initPeer(true, config.rtcConfig)\n\n const connectPeer = (peer, peerId, clientId) => {\n if (connectedPeers[peerId]) {\n if (connectedPeers[peerId] !== peer) {\n peer.destroy()\n }\n return\n }\n\n connectedPeers[peerId] = peer\n onPeerConnect(peer, peerId)\n\n pendingOffers[peerId]?.forEach((peer, i) => {\n if (i !== clientId) {\n peer.destroy()\n }\n })\n delete pendingOffers[peerId]\n }\n\n const disconnectPeer = (peer, peerId) => {\n if (connectedPeers[peerId] === peer) {\n delete connectedPeers[peerId]\n }\n }\n\n const prunePendingOffer = (peerId, clientId) => {\n if (connectedPeers[peerId]) {\n return\n }\n\n const offer = pendingOffers[peerId]?.[clientId]\n\n if (offer) {\n delete pendingOffers[peerId][clientId]\n offer.destroy()\n }\n }\n\n const getOffers = n => {\n offerPool.push(...alloc(n, makeOffer))\n\n return all(\n offerPool\n .splice(0, n)\n .map(peer =>\n peer.offerPromise.then(toCipher).then(offer => ({peer, offer}))\n )\n )\n }\n\n const handleJoinError = (peerId, sdpType) =>\n onJoinError?.({\n error: `incorrect password (${config.password}) when decrypting ${sdpType}`,\n appId,\n peerId,\n roomId\n })\n\n const handleMessage = clientId => async (topic, msg, signalPeer) => {\n const [rootTopic, selfTopic] = await all([rootTopicP, selfTopicP])\n\n if (topic !== rootTopic && topic !== selfTopic) {\n return\n }\n\n const {peerId, offer, answer, peer} =\n typeof msg === 'string' ? fromJson(msg) : msg\n\n if (peerId === selfId || connectedPeers[peerId]) {\n return\n }\n\n if (peerId && !offer && !answer) {\n if (pendingOffers[peerId]?.[clientId]) {\n return\n }\n\n const [[{peer, offer}], topic] = await all([\n getOffers(1),\n sha1(topicPath(rootTopicPlaintext, peerId))\n ])\n\n pendingOffers[peerId] ||= []\n pendingOffers[peerId][clientId] = peer\n\n setTimeout(\n () => prunePendingOffer(peerId, clientId),\n announceIntervals[clientId] * 0.9\n )\n\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n signalPeer(topic, toJson({peerId: selfId, offer}))\n } else if (offer) {\n const myOffer = pendingOffers[peerId]?.[clientId]\n\n if (myOffer && selfId > peerId) {\n return\n }\n\n const peer = initPeer(false, config.rtcConfig)\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n let plainOffer\n\n try {\n plainOffer = await toPlain(offer)\n } catch (_) {\n handleJoinError(peerId, 'offer')\n return\n }\n\n if (peer.isDead) {\n return\n }\n\n const [topic, answer] = await all([\n sha1(topicPath(rootTopicPlaintext, peerId)),\n peer.signal(plainOffer)\n ])\n\n signalPeer(\n topic,\n toJson({peerId: selfId, answer: await toCipher(answer)})\n )\n } else if (answer) {\n let plainAnswer\n\n try {\n plainAnswer = await toPlain(answer)\n } catch (e) {\n handleJoinError(peerId, 'answer')\n return\n }\n\n if (peer) {\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n peer.signal(plainAnswer)\n } else {\n const peer = pendingOffers[peerId]?.[clientId]\n\n if (peer && !peer.isDead) {\n peer.signal(plainAnswer)\n }\n }\n }\n }\n\n if (!config) {\n throw mkErr('requires a config map as the first argument')\n }\n\n if (!appId && !config.firebaseApp) {\n throw mkErr('config map is missing appId field')\n }\n\n if (!roomId) {\n throw mkErr('roomId argument required')\n }\n\n if (!didInit) {\n const initRes = init(config)\n offerPool = alloc(poolSize, makeOffer)\n initPromises = Array.isArray(initRes) ? initRes : [initRes]\n didInit = true\n offerCleanupTimer = setInterval(\n () =>\n (offerPool = offerPool.filter(peer => {\n const shouldLive = Date.now() - peer.created < offerTtl\n\n if (!shouldLive) {\n peer.destroy()\n }\n\n return shouldLive\n })),\n offerTtl * 1.03\n )\n }\n\n const announceIntervals = initPromises.map(() => announceIntervalMs)\n const announceTimeouts = []\n\n const unsubFns = initPromises.map(async (clientP, i) =>\n subscribe(\n await clientP,\n await rootTopicP,\n await selfTopicP,\n handleMessage(i),\n getOffers\n )\n )\n\n all([rootTopicP, selfTopicP]).then(([rootTopic, selfTopic]) => {\n const queueAnnounce = async (client, i) => {\n const ms = await announce(client, rootTopic, selfTopic)\n\n if (typeof ms === 'number') {\n announceIntervals[i] = ms\n }\n\n announceTimeouts[i] = setTimeout(\n () => queueAnnounce(client, i),\n announceIntervals[i]\n )\n }\n\n unsubFns.forEach(async (didSub, i) => {\n await didSub\n queueAnnounce(await initPromises[i], i)\n })\n })\n\n let onPeerConnect = noOp\n\n occupiedRooms[appId] ||= {}\n\n return (occupiedRooms[appId][roomId] = room(\n f => (onPeerConnect = f),\n id => delete connectedPeers[id],\n () => {\n delete occupiedRooms[appId][roomId]\n announceTimeouts.forEach(clearTimeout)\n unsubFns.forEach(async f => (await f)())\n clearInterval(offerCleanupTimer)\n }\n ))\n }\n}\n","import {decodeBytes, encodeBytes} from './utils.js'\n\nconst algo = 'AES-GCM'\nconst strToSha1 = {}\n\nconst pack = buff => btoa(String.fromCharCode.apply(null, new Uint8Array(buff)))\n\nconst unpack = packed => {\n const str = atob(packed)\n\n return new Uint8Array(str.length).map((_, i) => str.charCodeAt(i)).buffer\n}\n\nexport const sha1 = async str => {\n if (strToSha1[str]) {\n return strToSha1[str]\n }\n\n const hash = Array.from(\n new Uint8Array(await crypto.subtle.digest('SHA-1', encodeBytes(str)))\n )\n .map(b => b.toString(36))\n .join('')\n\n // eslint-disable-next-line require-atomic-updates\n strToSha1[str] = hash\n\n return hash\n}\n\nexport const genKey = async (secret, appId, roomId) =>\n crypto.subtle.importKey(\n 'raw',\n await crypto.subtle.digest(\n {name: 'SHA-256'},\n encodeBytes(`${secret}:${appId}:${roomId}`)\n ),\n {name: algo},\n false,\n ['encrypt', 'decrypt']\n )\n\nconst joinChar = '$'\nconst ivJoinChar = ','\n\nexport const encrypt = async (keyP, plaintext) => {\n const iv = crypto.getRandomValues(new Uint8Array(16))\n\n return (\n iv.join(ivJoinChar) +\n joinChar +\n pack(\n await crypto.subtle.encrypt(\n {name: algo, iv},\n await keyP,\n encodeBytes(plaintext)\n )\n )\n )\n}\n\nexport const decrypt = async (keyP, raw) => {\n const [iv, c] = raw.split(joinChar)\n\n return decodeBytes(\n await crypto.subtle.decrypt(\n {name: algo, iv: new Uint8Array(iv.split(ivJoinChar))},\n await keyP,\n unpack(c)\n )\n )\n}\n","export const libName = 'Trystero'\n\nexport const alloc = (n, f) => Array(n).fill().map(f)\n\nconst charSet = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'\n\nexport const genId = n =>\n alloc(n, () => charSet[Math.floor(Math.random() * charSet.length)]).join('')\n\nexport const selfId = genId(20)\n\nexport const all = Promise.all.bind(Promise)\n\nexport const isBrowser = typeof window !== 'undefined'\n\nexport const {entries, fromEntries, keys} = Object\n\nexport const noOp = () => {}\n\nexport const mkErr = msg => new Error(`${libName}: ${msg}`)\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const encodeBytes = txt => encoder.encode(txt)\n\nexport const decodeBytes = buffer => decoder.decode(buffer)\n\nexport const toHex = buffer =>\n buffer.reduce((a, c) => a + c.toString(16).padStart(2, '0'), '')\n\nexport const topicPath = (...parts) => parts.join('@')\n\nexport const getRelays = (config, defaults, defaultN) =>\n (config.relayUrls || defaults).slice(\n 0,\n config.relayUrls\n ? config.relayUrls.length\n : config.relayRedundancy || defaultN\n )\n\nexport const toJson = JSON.stringify\n\nexport const fromJson = JSON.parse\n\nconst defaultRetryMs = 3333\nconst socketRetryPeriods = {}\n\nexport const makeSocket = (url, onMessage) => {\n const client = {}\n\n const init = () => {\n const socket = new WebSocket(url)\n\n socket.onclose = () => {\n socketRetryPeriods[url] ??= defaultRetryMs\n setTimeout(init, socketRetryPeriods[url])\n socketRetryPeriods[url] *= 2\n }\n\n socket.onmessage = e => onMessage(e.data)\n client.socket = socket\n client.url = socket.url\n client.ready = new Promise(\n res =>\n (socket.onopen = () => {\n res(client)\n socketRetryPeriods[url] = defaultRetryMs\n })\n )\n client.send = data => {\n if (socket.readyState === 1) {\n socket.send(data)\n }\n }\n }\n\n init()\n\n return client\n}\n\nexport const socketGetter = clientMap => () =>\n fromEntries(entries(clientMap).map(([url, client]) => [url, client.socket]))\n","import Peer from '@thaunknown/simple-peer'\nimport {alloc} from './utils.js'\n\nconst dataEvent = 'data'\nconst signalEvent = 'signal'\n\nexport default (initiator, config) => {\n const peer = new Peer({\n ...{iceServers: [{urls: defaultIceServers}]},\n ...config,\n initiator,\n trickle: false\n })\n const onData = d => earlyDataBuffer.push(d)\n\n let earlyDataBuffer = []\n\n peer.on(dataEvent, onData)\n\n return {\n id: peer._id,\n\n created: Date.now(),\n\n connection: peer._pc,\n\n get channel() {\n return peer._channel\n },\n\n get isDead() {\n return peer.destroyed\n },\n\n signal: sdp =>\n new Promise(res => {\n if (!initiator) {\n peer.on(signalEvent, res)\n }\n peer.signal(sdp)\n }),\n\n sendData: data => peer.send(data),\n\n destroy: () => peer.destroy(),\n\n setHandlers: handlers =>\n Object.entries(handlers).forEach(([event, fn]) => peer.on(event, fn)),\n\n offerPromise: initiator\n ? new Promise(res => peer.on(signalEvent, res))\n : Promise.resolve(),\n\n addStream: stream => peer.addStream(stream),\n\n removeStream: stream => peer.removeStream(stream),\n\n addTrack: (track, stream) => peer.addTrack(track, stream),\n\n removeTrack: (track, stream) => peer.removeTrack(track, stream),\n\n replaceTrack: (oldTrack, newTrack, stream) =>\n peer.replaceTrack(oldTrack, newTrack, stream),\n\n drainEarlyData: f => {\n peer.off(dataEvent, onData)\n earlyDataBuffer.forEach(f)\n earlyDataBuffer = null\n }\n }\n}\n\nexport const defaultIceServers = [\n ...alloc(5, (_, i) => `stun:stun${i || ''}.l.google.com:19302`),\n 'stun:global.stun.twilio.com:3478'\n]\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport Lite from './lite.js'\r\nimport errCode from 'err-code'\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Lite {\r\n constructor (opts = {}) {\r\n super(opts)\r\n if (!this._pc) return\r\n\r\n this.streams = opts.streams || (opts.stream ? [opts.stream] : []) // support old \"stream\" option\r\n this._senderMap = new Map()\r\n\r\n if (this.streams) {\r\n this.streams.forEach(stream => {\r\n this.addStream(stream)\r\n })\r\n }\r\n this._pc.ontrack = event => {\r\n this._onTrack(event)\r\n }\r\n }\r\n\r\n /**\r\n * Add a Transceiver to the connection.\r\n * @param {String} kind\r\n * @param {Object=} init\r\n */\r\n addTransceiver (kind, init) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTransceiver after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTransceiver()')\r\n\r\n if (this.initiator) {\r\n try {\r\n this._pc.addTransceiver(kind, init)\r\n this._needsNegotiation()\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_ADD_TRANSCEIVER'))\r\n }\r\n } else {\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'transceiverRequest',\r\n transceiverRequest: { kind, init }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Add a MediaStream to the connection.\r\n * @param {MediaStream} stream\r\n */\r\n addStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addStream()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.addTrack(track, stream)\r\n })\r\n }\r\n\r\n /**\r\n * Add a MediaStreamTrack to the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n addTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTrack()')\r\n\r\n const submap = this._senderMap.get(track) || new Map() // nested Maps map [track, stream] to sender\r\n let sender = submap.get(stream)\r\n if (!sender) {\r\n sender = this._pc.addTrack(track, stream)\r\n submap.set(stream, sender)\r\n this._senderMap.set(track, submap)\r\n this._needsNegotiation()\r\n } else if (sender.removed) {\r\n throw errCode(new Error('Track has been removed. You should enable/disable tracks that you want to re-add.'), 'ERR_SENDER_REMOVED')\r\n } else {\r\n throw errCode(new Error('Track has already been added to that stream.'), 'ERR_SENDER_ALREADY_ADDED')\r\n }\r\n }\r\n\r\n /**\r\n * Replace a MediaStreamTrack by another in the connection.\r\n * @param {MediaStreamTrack} oldTrack\r\n * @param {MediaStreamTrack} newTrack\r\n * @param {MediaStream} stream\r\n */\r\n replaceTrack (oldTrack, newTrack, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot replaceTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('replaceTrack()')\r\n\r\n const submap = this._senderMap.get(oldTrack)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot replace track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n if (newTrack) this._senderMap.set(newTrack, submap)\r\n\r\n if (sender.replaceTrack != null) {\r\n sender.replaceTrack(newTrack)\r\n } else {\r\n this.__destroy(errCode(new Error('replaceTrack is not supported in this browser'), 'ERR_UNSUPPORTED_REPLACETRACK'))\r\n }\r\n }\r\n\r\n /**\r\n * Remove a MediaStreamTrack from the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n removeTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSender()')\r\n\r\n const submap = this._senderMap.get(track)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot remove track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n try {\r\n sender.removed = true\r\n this._pc.removeTrack(sender)\r\n } catch (err) {\r\n if (err.name === 'NS_ERROR_UNEXPECTED') {\r\n this._sendersAwaitingStable.push(sender) // HACK: Firefox must wait until (signalingState === stable) https://bugzilla.mozilla.org/show_bug.cgi?id=1133874\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_REMOVE_TRACK'))\r\n }\r\n }\r\n this._needsNegotiation()\r\n }\r\n\r\n /**\r\n * Remove a MediaStream from the connection.\r\n * @param {MediaStream} stream\r\n */\r\n removeStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSenders()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.removeTrack(track, stream)\r\n })\r\n }\r\n\r\n _requestMissingTransceivers () {\r\n if (this._pc.getTransceivers) {\r\n this._pc.getTransceivers().forEach(transceiver => {\r\n if (!transceiver.mid && transceiver.sender.track && !transceiver.requested) {\r\n transceiver.requested = true // HACK: Safari returns negotiated transceivers with a null mid\r\n this.addTransceiver(transceiver.sender.track.kind)\r\n }\r\n })\r\n }\r\n }\r\n\r\n _onTrack (event) {\r\n if (this.destroyed) return\r\n\r\n event.streams.forEach(eventStream => {\r\n this._debug('on track')\r\n this.emit('track', event.track, eventStream)\r\n\r\n this._remoteTracks.push({\r\n track: event.track,\r\n stream: eventStream\r\n })\r\n\r\n if (this._remoteStreams.some(remoteStream => {\r\n return remoteStream.id === eventStream.id\r\n })) return // Only fire one 'stream' event, even though there may be multiple tracks per stream\r\n\r\n this._remoteStreams.push(eventStream)\r\n queueMicrotask(() => {\r\n this._debug('on stream')\r\n this.emit('stream', eventStream) // ensure all tracks have been added\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default Peer\r\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport debug from 'debug'\r\nimport { RTCPeerConnection, RTCSessionDescription, RTCIceCandidate } from 'webrtc-polyfill'\r\nimport { Duplex } from 'streamx'\r\nimport errCode from 'err-code'\r\nimport { randomBytes, arr2hex, text2arr } from 'uint8-util'\r\n\r\nconst Debug = debug('simple-peer')\r\n\r\nconst MAX_BUFFERED_AMOUNT = 64 * 1024\r\nconst ICECOMPLETE_TIMEOUT = 5 * 1000\r\nconst CHANNEL_CLOSING_TIMEOUT = 5 * 1000\r\n\r\n// HACK: Filter trickle lines when trickle is disabled #354\r\nfunction filterTrickle (sdp) {\r\n return sdp.replace(/a=ice-options:trickle\\s\\n/g, '')\r\n}\r\n\r\nfunction warn (message) {\r\n console.warn(message)\r\n}\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Duplex {\r\n /** @type {RTCPeerConnection} */\r\n _pc\r\n constructor (opts) {\r\n opts = Object.assign({\r\n allowHalfOpen: false\r\n }, opts)\r\n\r\n super(opts)\r\n\r\n this.__objectMode = !!opts.objectMode // streamx is objectMode by default, so implement readable's fuctionality\r\n\r\n this._id = arr2hex(randomBytes(4)).slice(0, 7)\r\n this._debug('new peer %o', opts)\r\n\r\n this.channelName = opts.initiator\r\n ? opts.channelName || arr2hex(randomBytes(20))\r\n : null\r\n\r\n this.initiator = opts.initiator || false\r\n this.channelConfig = opts.channelConfig || Peer.channelConfig\r\n this.channelNegotiated = this.channelConfig.negotiated\r\n this.config = Object.assign({}, Peer.config, opts.config)\r\n this.offerOptions = opts.offerOptions || {}\r\n this.answerOptions = opts.answerOptions || {}\r\n this.sdpTransform = opts.sdpTransform || (sdp => sdp)\r\n this.trickle = opts.trickle !== undefined ? opts.trickle : true\r\n this.allowHalfTrickle = opts.allowHalfTrickle !== undefined ? opts.allowHalfTrickle : false\r\n this.iceCompleteTimeout = opts.iceCompleteTimeout || ICECOMPLETE_TIMEOUT\r\n\r\n this._destroying = false\r\n this._connected = false\r\n\r\n this.remoteAddress = undefined\r\n this.remoteFamily = undefined\r\n this.remotePort = undefined\r\n this.localAddress = undefined\r\n this.localFamily = undefined\r\n this.localPort = undefined\r\n\r\n if (!RTCPeerConnection) {\r\n if (typeof window === 'undefined') {\r\n throw errCode(new Error('No WebRTC support: Specify `opts.wrtc` option in this environment'), 'ERR_WEBRTC_SUPPORT')\r\n } else {\r\n throw errCode(new Error('No WebRTC support: Not a supported browser'), 'ERR_WEBRTC_SUPPORT')\r\n }\r\n }\r\n\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._iceComplete = false // ice candidate trickle done (got null candidate)\r\n this._iceCompleteTimer = null // send an offer/answer anyway after some timeout\r\n this._channel = null\r\n this._pendingCandidates = []\r\n\r\n this._isNegotiating = false // is this peer waiting for negotiation to complete?\r\n this._firstNegotiation = true\r\n this._batchedNegotiation = false // batch synchronous negotiations\r\n this._queuedNegotiation = false // is there a queued negotiation request?\r\n this._sendersAwaitingStable = []\r\n this._closingInterval = null\r\n\r\n this._remoteTracks = []\r\n this._remoteStreams = []\r\n\r\n this._chunk = null\r\n this._cb = null\r\n this._interval = null\r\n\r\n try {\r\n this._pc = new RTCPeerConnection(this.config)\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_PC_CONSTRUCTOR'))\r\n return\r\n }\r\n\r\n // We prefer feature detection whenever possible, but sometimes that's not\r\n // possible for certain implementations.\r\n this._isReactNativeWebrtc = typeof this._pc._peerConnectionId === 'number'\r\n\r\n this._pc.oniceconnectionstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onicegatheringstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onconnectionstatechange = () => {\r\n this._onConnectionStateChange()\r\n }\r\n this._pc.onsignalingstatechange = () => {\r\n this._onSignalingStateChange()\r\n }\r\n this._pc.onicecandidate = event => {\r\n this._onIceCandidate(event)\r\n }\r\n\r\n // HACK: Fix for odd Firefox behavior, see: https://github.com/feross/simple-peer/pull/783\r\n if (typeof this._pc.peerIdentity === 'object') {\r\n this._pc.peerIdentity.catch(err => {\r\n this.__destroy(errCode(err, 'ERR_PC_PEER_IDENTITY'))\r\n })\r\n }\r\n\r\n // Other spec events, unused by this implementation:\r\n // - onconnectionstatechange\r\n // - onicecandidateerror\r\n // - onfingerprintfailure\r\n // - onnegotiationneeded\r\n\r\n if (this.initiator || this.channelNegotiated) {\r\n this._setupData({\r\n channel: this._pc.createDataChannel(this.channelName, this.channelConfig)\r\n })\r\n } else {\r\n this._pc.ondatachannel = event => {\r\n this._setupData(event)\r\n }\r\n }\r\n\r\n this._debug('initial negotiation')\r\n this._needsNegotiation()\r\n\r\n this._onFinishBound = () => {\r\n this._onFinish()\r\n }\r\n this.once('finish', this._onFinishBound)\r\n }\r\n\r\n get bufferSize () {\r\n return (this._channel && this._channel.bufferedAmount) || 0\r\n }\r\n\r\n // HACK: it's possible channel.readyState is \"closing\" before peer.destroy() fires\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n get connected () {\r\n return (this._connected && this._channel.readyState === 'open')\r\n }\r\n\r\n address () {\r\n return { port: this.localPort, family: this.localFamily, address: this.localAddress }\r\n }\r\n\r\n signal (data) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot signal after peer is destroyed'), 'ERR_DESTROYED')\r\n if (typeof data === 'string') {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (err) {\r\n data = {}\r\n }\r\n }\r\n this._debug('signal()')\r\n\r\n if (data.renegotiate && this.initiator) {\r\n this._debug('got request to renegotiate')\r\n this._needsNegotiation()\r\n }\r\n if (data.transceiverRequest && this.initiator) {\r\n this._debug('got request for transceiver')\r\n this.addTransceiver(data.transceiverRequest.kind, data.transceiverRequest.init)\r\n }\r\n if (data.candidate) {\r\n if (this._pc.remoteDescription && this._pc.remoteDescription.type) {\r\n this._addIceCandidate(data.candidate)\r\n } else {\r\n this._pendingCandidates.push(data.candidate)\r\n }\r\n }\r\n if (data.sdp) {\r\n this._pc.setRemoteDescription(new RTCSessionDescription(data))\r\n .then(() => {\r\n if (this.destroyed) return\r\n\r\n this._pendingCandidates.forEach(candidate => {\r\n this._addIceCandidate(candidate)\r\n })\r\n this._pendingCandidates = []\r\n\r\n if (this._pc.remoteDescription.type === 'offer') this._createAnswer()\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_SET_REMOTE_DESCRIPTION'))\r\n })\r\n }\r\n if (!data.sdp && !data.candidate && !data.renegotiate && !data.transceiverRequest) {\r\n this.__destroy(errCode(new Error('signal() called with invalid signal data'), 'ERR_SIGNALING'))\r\n }\r\n }\r\n\r\n _addIceCandidate (candidate) {\r\n const iceCandidateObj = new RTCIceCandidate(candidate)\r\n this._pc.addIceCandidate(iceCandidateObj)\r\n .catch(err => {\r\n if (!iceCandidateObj.address || iceCandidateObj.address.endsWith('.local')) {\r\n warn('Ignoring unsupported ICE candidate.')\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_ADD_ICE_CANDIDATE'))\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Send text/binary data to the remote peer.\r\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array|string|Blob} chunk\r\n */\r\n send (chunk) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot send after peer is destroyed'), 'ERR_DESTROYED')\r\n this._channel.send(chunk)\r\n }\r\n\r\n _needsNegotiation () {\r\n this._debug('_needsNegotiation')\r\n if (this._batchedNegotiation) return // batch synchronous renegotiations\r\n this._batchedNegotiation = true\r\n queueMicrotask(() => {\r\n this._batchedNegotiation = false\r\n if (this.initiator || !this._firstNegotiation) {\r\n this._debug('starting batched negotiation')\r\n this.negotiate()\r\n } else {\r\n this._debug('non-initiator initial negotiation request discarded')\r\n }\r\n this._firstNegotiation = false\r\n })\r\n }\r\n\r\n negotiate () {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot negotiate after peer is destroyed'), 'ERR_DESTROYED')\r\n\r\n if (this.initiator) {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('start negotiation')\r\n setTimeout(() => { // HACK: Chrome crashes if we immediately call createOffer\r\n this._createOffer()\r\n }, 0)\r\n }\r\n } else {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('requesting negotiation from initiator')\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'renegotiate',\r\n renegotiate: true\r\n })\r\n }\r\n }\r\n this._isNegotiating = true\r\n }\r\n\r\n _final (cb) {\r\n if (!this._readableState.ended) this.push(null)\r\n cb(null)\r\n }\r\n\r\n __destroy (err) {\r\n this.end()\r\n this._destroy(() => {}, err)\r\n }\r\n\r\n _destroy (cb, err) {\r\n if (this.destroyed || this._destroying) return\r\n this._destroying = true\r\n\r\n this._debug('destroying (error: %s)', err && (err.message || err))\r\n\r\n setTimeout(() => { // allow events concurrent with the call to _destroy() to fire (see #692)\r\n this._connected = false\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._remoteTracks = null\r\n this._remoteStreams = null\r\n this._senderMap = null\r\n\r\n clearInterval(this._closingInterval)\r\n this._closingInterval = null\r\n\r\n clearInterval(this._interval)\r\n this._interval = null\r\n this._chunk = null\r\n this._cb = null\r\n\r\n if (this._onFinishBound) this.removeListener('finish', this._onFinishBound)\r\n this._onFinishBound = null\r\n\r\n if (this._channel) {\r\n try {\r\n this._channel.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._channel.onmessage = null\r\n this._channel.onopen = null\r\n this._channel.onclose = null\r\n this._channel.onerror = null\r\n }\r\n if (this._pc) {\r\n try {\r\n this._pc.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._pc.oniceconnectionstatechange = null\r\n this._pc.onicegatheringstatechange = null\r\n this._pc.onsignalingstatechange = null\r\n this._pc.onicecandidate = null\r\n this._pc.ontrack = null\r\n this._pc.ondatachannel = null\r\n }\r\n this._pc = null\r\n this._channel = null\r\n if (err) this.emit('error', err)\r\n cb()\r\n }, 0)\r\n }\r\n\r\n _setupData (event) {\r\n if (!event.channel) {\r\n // In some situations `pc.createDataChannel()` returns `undefined` (in wrtc),\r\n // which is invalid behavior. Handle it gracefully.\r\n // See: https://github.com/feross/simple-peer/issues/163\r\n return this.__destroy(errCode(new Error('Data channel event is missing `channel` property'), 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n this._channel = event.channel\r\n this._channel.binaryType = 'arraybuffer'\r\n\r\n if (typeof this._channel.bufferedAmountLowThreshold === 'number') {\r\n this._channel.bufferedAmountLowThreshold = MAX_BUFFERED_AMOUNT\r\n }\r\n\r\n this.channelName = this._channel.label\r\n\r\n this._channel.onmessage = event => {\r\n this._onChannelMessage(event)\r\n }\r\n this._channel.onbufferedamountlow = () => {\r\n this._onChannelBufferedAmountLow()\r\n }\r\n this._channel.onopen = () => {\r\n this._onChannelOpen()\r\n }\r\n this._channel.onclose = () => {\r\n this._onChannelClose()\r\n }\r\n this._channel.onerror = event => {\r\n const err = event.error instanceof Error\r\n ? event.error\r\n : new Error(`Datachannel error: ${event.message} ${event.filename}:${event.lineno}:${event.colno}`)\r\n this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n // HACK: Chrome will sometimes get stuck in readyState \"closing\", let's check for this condition\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n let isClosing = false\r\n this._closingInterval = setInterval(() => { // No \"onclosing\" event\r\n if (this._channel && this._channel.readyState === 'closing') {\r\n if (isClosing) this._onChannelClose() // closing timed out: equivalent to onclose firing\r\n isClosing = true\r\n } else {\r\n isClosing = false\r\n }\r\n }, CHANNEL_CLOSING_TIMEOUT)\r\n }\r\n\r\n _write (chunk, cb) {\r\n if (this.destroyed) return cb(errCode(new Error('cannot write after peer is destroyed'), 'ERR_DATA_CHANNEL'))\r\n\r\n if (this._connected) {\r\n try {\r\n this.send(chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n if (this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n this._debug('start backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n this._cb = cb\r\n } else {\r\n cb(null)\r\n }\r\n } else {\r\n this._debug('write before connect')\r\n this._chunk = chunk\r\n this._cb = cb\r\n }\r\n }\r\n\r\n // When stream finishes writing, close socket. Half open connections are not\r\n // supported.\r\n _onFinish () {\r\n if (this.destroyed) return\r\n\r\n // Wait a bit before destroying so the socket flushes.\r\n // TODO: is there a more reliable way to accomplish this?\r\n const destroySoon = () => {\r\n setTimeout(() => this.__destroy(), 1000)\r\n }\r\n\r\n if (this._connected) {\r\n destroySoon()\r\n } else {\r\n this.once('connect', destroySoon)\r\n }\r\n }\r\n\r\n _startIceCompleteTimeout () {\r\n if (this.destroyed) return\r\n if (this._iceCompleteTimer) return\r\n this._debug('started iceComplete timeout')\r\n this._iceCompleteTimer = setTimeout(() => {\r\n if (!this._iceComplete) {\r\n this._iceComplete = true\r\n this._debug('iceComplete timeout completed')\r\n this.emit('iceTimeout')\r\n this.emit('_iceComplete')\r\n }\r\n }, this.iceCompleteTimeout)\r\n }\r\n\r\n _createOffer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createOffer(this.offerOptions)\r\n .then(offer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) offer.sdp = filterTrickle(offer.sdp)\r\n offer.sdp = this.sdpTransform(offer.sdp)\r\n\r\n const sendOffer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || offer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n }\r\n\r\n const onSuccess = () => {\r\n this._debug('createOffer success')\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendOffer()\r\n else this.once('_iceComplete', sendOffer) // wait for candidates\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(offer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_OFFER'))\r\n })\r\n }\r\n\r\n _createAnswer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createAnswer(this.answerOptions)\r\n .then(answer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) answer.sdp = filterTrickle(answer.sdp)\r\n answer.sdp = this.sdpTransform(answer.sdp)\r\n\r\n const sendAnswer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || answer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n if (!this.initiator) this._requestMissingTransceivers?.()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendAnswer()\r\n else this.once('_iceComplete', sendAnswer)\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(answer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_ANSWER'))\r\n })\r\n }\r\n\r\n _onConnectionStateChange () {\r\n if (this.destroyed || this._destroying) return\r\n if (this._pc.connectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Connection failed.'), 'ERR_CONNECTION_FAILURE'))\r\n }\r\n }\r\n\r\n _onIceStateChange () {\r\n if (this.destroyed) return\r\n const iceConnectionState = this._pc.iceConnectionState\r\n const iceGatheringState = this._pc.iceGatheringState\r\n\r\n this._debug(\r\n 'iceStateChange (connection: %s) (gathering: %s)',\r\n iceConnectionState,\r\n iceGatheringState\r\n )\r\n this.emit('iceStateChange', iceConnectionState, iceGatheringState)\r\n\r\n if (iceConnectionState === 'connected' || iceConnectionState === 'completed') {\r\n this._pcReady = true\r\n this._maybeReady()\r\n }\r\n if (iceConnectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Ice connection failed.'), 'ERR_ICE_CONNECTION_FAILURE'))\r\n }\r\n if (iceConnectionState === 'closed') {\r\n this.__destroy(errCode(new Error('Ice connection closed.'), 'ERR_ICE_CONNECTION_CLOSED'))\r\n }\r\n }\r\n\r\n getStats (cb) {\r\n // statreports can come with a value array instead of properties\r\n const flattenValues = report => {\r\n if (Object.prototype.toString.call(report.values) === '[object Array]') {\r\n report.values.forEach(value => {\r\n Object.assign(report, value)\r\n })\r\n }\r\n return report\r\n }\r\n\r\n // Promise-based getStats() (standard)\r\n if (this._pc.getStats.length === 0 || this._isReactNativeWebrtc) {\r\n this._pc.getStats()\r\n .then(res => {\r\n const reports = []\r\n res.forEach(report => {\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Single-parameter callback-based getStats() (non-standard)\r\n } else if (this._pc.getStats.length > 0) {\r\n this._pc.getStats(res => {\r\n // If we destroy connection in `connect` callback this code might happen to run when actual connection is already closed\r\n if (this.destroyed) return\r\n\r\n const reports = []\r\n res.result().forEach(result => {\r\n const report = {}\r\n result.names().forEach(name => {\r\n report[name] = result.stat(name)\r\n })\r\n report.id = result.id\r\n report.type = result.type\r\n report.timestamp = result.timestamp\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Unknown browser, skip getStats() since it's anyone's guess which style of\r\n // getStats() they implement.\r\n } else {\r\n cb(null, [])\r\n }\r\n }\r\n\r\n _maybeReady () {\r\n this._debug('maybeReady pc %s channel %s', this._pcReady, this._channelReady)\r\n if (this._connected || this._connecting || !this._pcReady || !this._channelReady) return\r\n\r\n this._connecting = true\r\n\r\n // HACK: We can't rely on order here, for details see https://github.com/js-platform/node-webrtc/issues/339\r\n const findCandidatePair = () => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n this.getStats((err, items) => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n // Treat getStats error as non-fatal. It's not essential.\r\n if (err) items = []\r\n\r\n const remoteCandidates = {}\r\n const localCandidates = {}\r\n const candidatePairs = {}\r\n let foundSelectedCandidatePair = false\r\n\r\n items.forEach(item => {\r\n // TODO: Once all browsers support the hyphenated stats report types, remove\r\n // the non-hypenated ones\r\n if (item.type === 'remotecandidate' || item.type === 'remote-candidate') {\r\n remoteCandidates[item.id] = item\r\n }\r\n if (item.type === 'localcandidate' || item.type === 'local-candidate') {\r\n localCandidates[item.id] = item\r\n }\r\n if (item.type === 'candidatepair' || item.type === 'candidate-pair') {\r\n candidatePairs[item.id] = item\r\n }\r\n })\r\n\r\n const setSelectedCandidatePair = selectedCandidatePair => {\r\n foundSelectedCandidatePair = true\r\n\r\n let local = localCandidates[selectedCandidatePair.localCandidateId]\r\n\r\n if (local && (local.ip || local.address)) {\r\n // Spec\r\n this.localAddress = local.ip || local.address\r\n this.localPort = Number(local.port)\r\n } else if (local && local.ipAddress) {\r\n // Firefox\r\n this.localAddress = local.ipAddress\r\n this.localPort = Number(local.portNumber)\r\n } else if (typeof selectedCandidatePair.googLocalAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n local = selectedCandidatePair.googLocalAddress.split(':')\r\n this.localAddress = local[0]\r\n this.localPort = Number(local[1])\r\n }\r\n if (this.localAddress) {\r\n this.localFamily = this.localAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n let remote = remoteCandidates[selectedCandidatePair.remoteCandidateId]\r\n\r\n if (remote && (remote.ip || remote.address)) {\r\n // Spec\r\n this.remoteAddress = remote.ip || remote.address\r\n this.remotePort = Number(remote.port)\r\n } else if (remote && remote.ipAddress) {\r\n // Firefox\r\n this.remoteAddress = remote.ipAddress\r\n this.remotePort = Number(remote.portNumber)\r\n } else if (typeof selectedCandidatePair.googRemoteAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n remote = selectedCandidatePair.googRemoteAddress.split(':')\r\n this.remoteAddress = remote[0]\r\n this.remotePort = Number(remote[1])\r\n }\r\n if (this.remoteAddress) {\r\n this.remoteFamily = this.remoteAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n this._debug(\r\n 'connect local: %s:%s remote: %s:%s',\r\n this.localAddress,\r\n this.localPort,\r\n this.remoteAddress,\r\n this.remotePort\r\n )\r\n }\r\n\r\n items.forEach(item => {\r\n // Spec-compliant\r\n if (item.type === 'transport' && item.selectedCandidatePairId) {\r\n setSelectedCandidatePair(candidatePairs[item.selectedCandidatePairId])\r\n }\r\n\r\n // Old implementations\r\n if (\r\n (item.type === 'googCandidatePair' && item.googActiveConnection === 'true') ||\r\n ((item.type === 'candidatepair' || item.type === 'candidate-pair') && item.selected)\r\n ) {\r\n setSelectedCandidatePair(item)\r\n }\r\n })\r\n\r\n // Ignore candidate pair selection in browsers like Safari 11 that do not have any local or remote candidates\r\n // But wait until at least 1 candidate pair is available\r\n if (!foundSelectedCandidatePair && (!Object.keys(candidatePairs).length || Object.keys(localCandidates).length)) {\r\n setTimeout(findCandidatePair, 100)\r\n return\r\n } else {\r\n this._connecting = false\r\n this._connected = true\r\n }\r\n\r\n if (this._chunk) {\r\n try {\r\n this.send(this._chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n this._chunk = null\r\n this._debug('sent chunk from \"write before connect\"')\r\n\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n // If `bufferedAmountLowThreshold` and 'onbufferedamountlow' are unsupported,\r\n // fallback to using setInterval to implement backpressure.\r\n if (typeof this._channel.bufferedAmountLowThreshold !== 'number') {\r\n this._interval = setInterval(() => this._onInterval(), 150)\r\n if (this._interval.unref) this._interval.unref()\r\n }\r\n\r\n this._debug('connect')\r\n this.emit('connect')\r\n })\r\n }\r\n findCandidatePair()\r\n }\r\n\r\n _onInterval () {\r\n if (!this._cb || !this._channel || this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n return\r\n }\r\n this._onChannelBufferedAmountLow()\r\n }\r\n\r\n _onSignalingStateChange () {\r\n if (this.destroyed) return\r\n\r\n if (this._pc.signalingState === 'stable') {\r\n this._isNegotiating = false\r\n\r\n // HACK: Firefox doesn't yet support removing tracks when signalingState !== 'stable'\r\n this._debug('flushing sender queue', this._sendersAwaitingStable)\r\n this._sendersAwaitingStable.forEach(sender => {\r\n this._pc.removeTrack(sender)\r\n this._queuedNegotiation = true\r\n })\r\n this._sendersAwaitingStable = []\r\n\r\n if (this._queuedNegotiation) {\r\n this._debug('flushing negotiation queue')\r\n this._queuedNegotiation = false\r\n this._needsNegotiation() // negotiate again\r\n } else {\r\n this._debug('negotiated')\r\n this.emit('negotiated')\r\n }\r\n }\r\n\r\n this._debug('signalingStateChange %s', this._pc.signalingState)\r\n this.emit('signalingStateChange', this._pc.signalingState)\r\n }\r\n\r\n _onIceCandidate (event) {\r\n if (this.destroyed) return\r\n if (event.candidate && this.trickle) {\r\n this.emit('signal', {\r\n type: 'candidate',\r\n candidate: {\r\n candidate: event.candidate.candidate,\r\n sdpMLineIndex: event.candidate.sdpMLineIndex,\r\n sdpMid: event.candidate.sdpMid\r\n }\r\n })\r\n } else if (!event.candidate && !this._iceComplete) {\r\n this._iceComplete = true\r\n this.emit('_iceComplete')\r\n }\r\n // as soon as we've received one valid candidate start timeout\r\n if (event.candidate) {\r\n this._startIceCompleteTimeout()\r\n }\r\n }\r\n\r\n _onChannelMessage (event) {\r\n if (this.destroyed) return\r\n let data = event.data\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data)\r\n } else if (this.__objectMode === false) {\r\n data = text2arr(data)\r\n }\r\n this.push(data)\r\n }\r\n\r\n _onChannelBufferedAmountLow () {\r\n if (this.destroyed || !this._cb) return\r\n this._debug('ending backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n _onChannelOpen () {\r\n if (this._connected || this.destroyed) return\r\n this._debug('on channel open')\r\n this._channelReady = true\r\n this._maybeReady()\r\n }\r\n\r\n _onChannelClose () {\r\n if (this.destroyed) return\r\n this._debug('on channel close')\r\n this.__destroy()\r\n }\r\n\r\n _debug () {\r\n const args = [].slice.call(arguments)\r\n args[0] = '[' + this._id + '] ' + args[0]\r\n Debug.apply(null, args)\r\n }\r\n}\r\n\r\nPeer.WEBRTC_SUPPORT = !!RTCPeerConnection\r\n\r\n/**\r\n * Expose peer and data channel config for overriding all Peer\r\n * instances. Otherwise, just set opts.config or opts.channelConfig\r\n * when constructing a Peer.\r\n */\r\nPeer.config = {\r\n iceServers: [\r\n {\r\n urls: [\r\n 'stun:stun.l.google.com:19302',\r\n 'stun:global.stun.twilio.com:3478'\r\n ]\r\n }\r\n ],\r\n sdpSemantics: 'unified-plan'\r\n}\r\n\r\nPeer.channelConfig = {}\r\n\r\nexport default Peer\r\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","const scope = typeof window !== 'undefined' ? window : self\r\n\r\n// @ts-ignore\r\nexport const RTCPeerConnection = scope.RTCPeerConnection || scope.mozRTCPeerConnection || scope.webkitRTCPeerConnection\r\n// @ts-ignore\r\nexport const RTCSessionDescription = scope.RTCSessionDescription || scope.mozRTCSessionDescription || scope.webkitRTCSessionDescription\r\n// @ts-ignore\r\nexport const RTCIceCandidate = scope.RTCIceCandidate || scope.mozRTCIceCandidate || scope.webkitRTCIceCandidate\r\nexport const RTCIceTransport = scope.RTCIceTransport\r\nexport const RTCDataChannel = scope.RTCDataChannel\r\nexport const RTCSctpTransport = scope.RTCSctpTransport\r\nexport const RTCDtlsTransport = scope.RTCDtlsTransport\r\nexport const RTCCertificate = scope.RTCCertificate\r\nexport const MediaStream = scope.MediaStream\r\nexport const MediaStreamTrack = scope.MediaStreamTrack\r\nexport const MediaStreamTrackEvent = scope.MediaStreamTrackEvent\r\nexport const RTCPeerConnectionIceEvent = scope.RTCPeerConnectionIceEvent\r\nexport const RTCDataChannelEvent = scope.RTCDataChannelEvent\r\nexport const RTCTrackEvent = scope.RTCTrackEvent\r\nexport const RTCError = scope.RTCError\r\nexport const RTCErrorEvent = scope.RTCErrorEvent\r\nexport const RTCRtpTransceiver = scope.RTCRtpTransceiver\r\nexport const RTCRtpReceiver = scope.RTCRtpReceiver\r\nexport const RTCRtpSender = scope.RTCRtpSender\r\n\r\nexport * as default from './browser.js'\r\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst queueTick = require('queue-tick')\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ WRITE_FINISHING\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = (stream._duplexState | WRITE_ACTIVE) & WRITE_NOT_FINISHING\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTick()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTick()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = typeof queueMicrotask === 'function' ? queueMicrotask : (fn) => Promise.resolve().then(fn)\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","module.exports = class BrowserDecoder {\n constructor (encoding) {\n this.decoder = new TextDecoder(encoding === 'utf16le' ? 'utf16-le' : encoding)\n }\n\n get remaining () {\n return -1\n }\n\n decode (data) {\n return this.decoder.decode(data, { stream: true })\n }\n\n flush () {\n return this.decoder.decode(new Uint8Array(0))\n }\n}\n","'use strict';\n\n/**\n * @typedef {{ [key: string]: any }} Extensions\n * @typedef {Error} Err\n * @property {string} message\n */\n\n/**\n *\n * @param {Error} obj\n * @param {Extensions} props\n * @returns {Error & Extensions}\n */\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\n/**\n *\n * @param {any} err - An Error\n * @param {string|Extensions} code - A string code or props to set on the error\n * @param {Extensions} [props] - Props to set on the error\n * @returns {Error & Extensions}\n */\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = '';\n }\n\n if (code) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n // @ts-ignore\n const output = assign(new ErrClass(), props);\n\n return output;\n }\n}\n\nmodule.exports = createError;\n","import { arr2hex, hex2arr, alphabet } from './util.js'\r\nimport { decode, encode } from 'base64-arraybuffer'\r\n\r\nconst decoder = new TextDecoder()\r\n// 50% slower at < 48 chars, but little impact at 4M OPS/s vs 8M OPS/s\r\nexport const arr2text = (data, enc) => {\r\n if (!enc) return decoder.decode(data)\r\n const dec = new TextDecoder(enc)\r\n return dec.decode(data)\r\n}\r\n\r\n// sacrifice ~20% speed for bundle size\r\nconst encoder = new TextEncoder()\r\nexport const text2arr = str => encoder.encode(str)\r\n\r\nexport const arr2base = data => encode(data)\r\n\r\nexport const base2arr = str => new Uint8Array(decode(str))\r\n\r\nexport const bin2hex = str => {\r\n let res = ''\r\n let c\r\n let i = 0\r\n const len = str.length\r\n\r\n while (i < len) {\r\n c = str.charCodeAt(i++)\r\n res += alphabet[c >> 4] + alphabet[c & 0xF]\r\n }\r\n\r\n return res\r\n}\r\n\r\nconst MAX_ARGUMENTS_LENGTH = 0x10000\r\nexport const hex2bin = hex => {\r\n const points = hex2arr(hex)\r\n if (points.length <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode(...points)\r\n\r\n let res = ''\r\n let i = 0\r\n while (i < points.length) {\r\n res += String.fromCharCode(...points.subarray(i, i += MAX_ARGUMENTS_LENGTH))\r\n }\r\n return res\r\n}\r\n\r\nconst scope = typeof window !== 'undefined' ? window : self\r\nconst crypto = scope.crypto || scope.msCrypto || {}\r\nconst subtle = crypto.subtle || crypto.webkitSubtle\r\n\r\nconst formatMap = {\r\n hex: arr2hex,\r\n base64: arr2base\r\n}\r\n\r\nexport const hash = async (data, format, algo = 'sha-1') => {\r\n if (!subtle) throw new Error('no web crypto support')\r\n if (typeof data === 'string') data = text2arr(data)\r\n const out = new Uint8Array(await subtle.digest(algo, data))\r\n return format ? formatMap[format](out) : out\r\n}\r\n\r\nexport const randomBytes = size => {\r\n const view = new Uint8Array(size)\r\n return crypto.getRandomValues(view)\r\n}\r\n\r\nexport * from './util.js'\r\n","/* Common package for dealing with hex/string/uint8 conversions (and sha1 hashing)\r\n*\r\n* @author Jimmy Wärting (https://jimmy.warting.se/opensource)\r\n* @license MIT\r\n*/\r\nexport const alphabet = '0123456789abcdef'\r\nconst encodeLookup = []\r\nconst decodeLookup = []\r\n\r\nfor (let i = 0; i < 256; i++) {\r\n encodeLookup[i] = alphabet[i >> 4 & 0xf] + alphabet[i & 0xf]\r\n if (i < 16) {\r\n if (i < 10) {\r\n decodeLookup[0x30 + i] = i\r\n } else {\r\n decodeLookup[0x61 - 10 + i] = i\r\n }\r\n }\r\n}\r\n\r\nexport const arr2hex = data => {\r\n const length = data.length\r\n let string = ''\r\n let i = 0\r\n while (i < length) {\r\n string += encodeLookup[data[i++]]\r\n }\r\n return string\r\n}\r\n\r\nexport const hex2arr = str => {\r\n const sizeof = str.length >> 1\r\n const length = sizeof << 1\r\n const array = new Uint8Array(sizeof)\r\n let n = 0\r\n let i = 0\r\n while (i < length) {\r\n array[n++] = decodeLookup[str.charCodeAt(i++)] << 4 | decodeLookup[str.charCodeAt(i++)]\r\n }\r\n return array\r\n}\r\n\r\nexport const concat = (chunks, size = 0) => {\r\n const length = chunks.length || 0\r\n if (!size) {\r\n let i = length\r\n while (i--) size += chunks[i].length\r\n }\r\n const b = new Uint8Array(size)\r\n let offset = size\r\n let i = length\r\n while (i--) {\r\n offset -= chunks[i].length\r\n b.set(chunks[i], offset)\r\n }\r\n\r\n return b\r\n}\r\n\r\nexport const equal = (a, b) => {\r\n if (a.length !== b.length) return false\r\n for (let i = a.length; i > -1; i -= 1) {\r\n if ((a[i] !== b[i])) return false\r\n }\r\n return true\r\n}\r\n","/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {\n all,\n alloc,\n decodeBytes,\n encodeBytes,\n entries,\n fromEntries,\n fromJson,\n isBrowser,\n keys,\n libName,\n mkErr,\n noOp,\n toJson\n} from './utils.js'\n\nconst TypedArray = Object.getPrototypeOf(Uint8Array)\nconst typeByteLimit = 12\nconst typeIndex = 0\nconst nonceIndex = typeIndex + typeByteLimit\nconst tagIndex = nonceIndex + 1\nconst progressIndex = tagIndex + 1\nconst payloadIndex = progressIndex + 1\nconst chunkSize = 16 * 2 ** 10 - payloadIndex\nconst oneByteMax = 0xff\nconst buffLowEvent = 'bufferedamountlow'\nconst internalNs = ns => '@_' + ns\n\nexport default (onPeer, onPeerLeave, onSelfLeave) => {\n const peerMap = {}\n const actions = {}\n const actionsCache = {}\n const pendingTransmissions = {}\n const pendingPongs = {}\n const pendingStreamMetas = {}\n const pendingTrackMetas = {}\n const listeners = {\n onPeerJoin: noOp,\n onPeerLeave: noOp,\n onPeerStream: noOp,\n onPeerTrack: noOp\n }\n\n const iterate = (targets, f) =>\n (targets\n ? Array.isArray(targets)\n ? targets\n : [targets]\n : keys(peerMap)\n ).flatMap(id => {\n const peer = peerMap[id]\n\n if (!peer) {\n console.warn(`${libName}: no peer with id ${id} found`)\n return []\n }\n\n return f(id, peer)\n })\n\n const exitPeer = id => {\n if (!peerMap[id]) {\n return\n }\n\n delete peerMap[id]\n delete pendingTransmissions[id]\n delete pendingPongs[id]\n listeners.onPeerLeave(id)\n onPeerLeave(id)\n }\n\n const makeAction = type => {\n if (actions[type]) {\n return actionsCache[type]\n }\n\n if (!type) {\n throw mkErr('action type argument is required')\n }\n\n const typeBytes = encodeBytes(type)\n\n if (typeBytes.byteLength > typeByteLimit) {\n throw mkErr(\n `action type string \"${type}\" (${typeBytes.byteLength}b) exceeds ` +\n `byte limit (${typeByteLimit}). Hint: choose a shorter name.`\n )\n }\n\n const typeBytesPadded = new Uint8Array(typeByteLimit)\n typeBytesPadded.set(typeBytes)\n\n let nonce = 0\n\n actions[type] = {\n onComplete: noOp,\n onProgress: noOp,\n\n setOnComplete: f => (actions[type] = {...actions[type], onComplete: f}),\n\n setOnProgress: f => (actions[type] = {...actions[type], onProgress: f}),\n\n send: async (data, targets, meta, onProgress) => {\n if (meta && typeof meta !== 'object') {\n throw mkErr('action meta argument must be an object')\n }\n\n const dataType = typeof data\n\n if (dataType === 'undefined') {\n throw mkErr('action data cannot be undefined')\n }\n\n const isJson = dataType !== 'string'\n const isBlob = data instanceof Blob\n const isBinary =\n isBlob || data instanceof ArrayBuffer || data instanceof TypedArray\n\n if (meta && !isBinary) {\n throw mkErr('action meta argument can only be used with binary data')\n }\n\n const buffer = isBinary\n ? new Uint8Array(isBlob ? await data.arrayBuffer() : data)\n : encodeBytes(isJson ? toJson(data) : data)\n\n const metaEncoded = meta ? encodeBytes(toJson(meta)) : null\n\n const chunkTotal =\n Math.ceil(buffer.byteLength / chunkSize) + (meta ? 1 : 0) || 1\n\n const chunks = alloc(chunkTotal, (_, i) => {\n const isLast = i === chunkTotal - 1\n const isMeta = meta && i === 0\n const chunk = new Uint8Array(\n payloadIndex +\n (isMeta\n ? metaEncoded.byteLength\n : isLast\n ? buffer.byteLength -\n chunkSize * (chunkTotal - (meta ? 2 : 1))\n : chunkSize)\n )\n\n chunk.set(typeBytesPadded)\n chunk.set([nonce], nonceIndex)\n chunk.set(\n [isLast | (isMeta << 1) | (isBinary << 2) | (isJson << 3)],\n tagIndex\n )\n chunk.set(\n [Math.round(((i + 1) / chunkTotal) * oneByteMax)],\n progressIndex\n )\n chunk.set(\n meta\n ? isMeta\n ? metaEncoded\n : buffer.subarray((i - 1) * chunkSize, i * chunkSize)\n : buffer.subarray(i * chunkSize, (i + 1) * chunkSize),\n payloadIndex\n )\n\n return chunk\n })\n\n nonce = (nonce + 1) & oneByteMax\n\n return all(\n iterate(targets, async (id, peer) => {\n const {channel} = peer\n let chunkN = 0\n\n while (chunkN < chunkTotal) {\n const chunk = chunks[chunkN]\n\n if (channel.bufferedAmount > channel.bufferedAmountLowThreshold) {\n await new Promise(res => {\n const next = () => {\n channel.removeEventListener(buffLowEvent, next)\n res()\n }\n\n channel.addEventListener(buffLowEvent, next)\n })\n }\n\n if (!peerMap[id]) {\n break\n }\n\n peer.sendData(chunk)\n chunkN++\n onProgress?.(chunk[progressIndex] / oneByteMax, id, meta)\n }\n })\n )\n }\n }\n\n return (actionsCache[type] ||= [\n actions[type].send,\n actions[type].setOnComplete,\n actions[type].setOnProgress\n ])\n }\n\n const handleData = (id, data) => {\n const buffer = new Uint8Array(data)\n const type = decodeBytes(buffer.subarray(typeIndex, nonceIndex)).replaceAll(\n '\\x00',\n ''\n )\n const [nonce] = buffer.subarray(nonceIndex, tagIndex)\n const [tag] = buffer.subarray(tagIndex, progressIndex)\n const [progress] = buffer.subarray(progressIndex, payloadIndex)\n const payload = buffer.subarray(payloadIndex)\n const isLast = !!(tag & 1)\n const isMeta = !!(tag & (1 << 1))\n const isBinary = !!(tag & (1 << 2))\n const isJson = !!(tag & (1 << 3))\n\n if (!actions[type]) {\n console.warn(\n `${libName}: received message with unregistered type (${type})`\n )\n return\n }\n\n pendingTransmissions[id] ||= {}\n pendingTransmissions[id][type] ||= {}\n\n const target = (pendingTransmissions[id][type][nonce] ||= {chunks: []})\n\n if (isMeta) {\n target.meta = fromJson(decodeBytes(payload))\n } else {\n target.chunks.push(payload)\n }\n\n actions[type].onProgress(progress / oneByteMax, id, target.meta)\n\n if (!isLast) {\n return\n }\n\n const full = new Uint8Array(\n target.chunks.reduce((a, c) => a + c.byteLength, 0)\n )\n\n target.chunks.reduce((a, c) => {\n full.set(c, a)\n return a + c.byteLength\n }, 0)\n\n delete pendingTransmissions[id][type][nonce]\n\n if (isBinary) {\n actions[type].onComplete(full, id, target.meta)\n } else {\n const text = decodeBytes(full)\n actions[type].onComplete(isJson ? fromJson(text) : text, id)\n }\n }\n\n const leave = async () => {\n await sendLeave('')\n await new Promise(res => setTimeout(res, 99))\n entries(peerMap).forEach(([id, peer]) => {\n peer.destroy()\n delete peerMap[id]\n })\n onSelfLeave()\n }\n\n const [sendPing, getPing] = makeAction(internalNs('ping'))\n const [sendPong, getPong] = makeAction(internalNs('pong'))\n const [sendSignal, getSignal] = makeAction(internalNs('signal'))\n const [sendStreamMeta, getStreamMeta] = makeAction(internalNs('stream'))\n const [sendTrackMeta, getTrackMeta] = makeAction(internalNs('track'))\n const [sendLeave, getLeave] = makeAction(internalNs('leave'))\n\n onPeer((peer, id) => {\n if (peerMap[id]) {\n return\n }\n\n peerMap[id] = peer\n\n peer.setHandlers({\n data: d => handleData(id, d),\n stream: stream => {\n listeners.onPeerStream(stream, id, pendingStreamMetas[id])\n delete pendingStreamMetas[id]\n },\n track: (track, stream) => {\n listeners.onPeerTrack(track, stream, id, pendingTrackMetas[id])\n delete pendingTrackMetas[id]\n },\n signal: sdp => sendSignal(sdp, id),\n close: () => exitPeer(id),\n error: () => exitPeer(id)\n })\n\n listeners.onPeerJoin(id)\n peer.drainEarlyData?.(d => handleData(id, d))\n })\n\n getPing((_, id) => sendPong('', id))\n\n getPong((_, id) => {\n pendingPongs[id]?.()\n delete pendingPongs[id]\n })\n\n getSignal((sdp, id) => peerMap[id]?.signal(sdp))\n\n getStreamMeta((meta, id) => (pendingStreamMetas[id] = meta))\n\n getTrackMeta((meta, id) => (pendingTrackMetas[id] = meta))\n\n getLeave((_, id) => exitPeer(id))\n\n if (isBrowser) {\n addEventListener('beforeunload', leave)\n }\n\n return {\n makeAction,\n\n leave,\n\n ping: async id => {\n if (!id) {\n throw mkErr('ping() must be called with target peer ID')\n }\n\n const start = Date.now()\n\n sendPing('', id)\n await new Promise(res => (pendingPongs[id] = res))\n return Date.now() - start\n },\n\n getPeers: () =>\n fromEntries(entries(peerMap).map(([id, peer]) => [id, peer.connection])),\n\n addStream: (stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendStreamMeta(meta, id)\n }\n\n peer.addStream(stream)\n }),\n\n removeStream: (stream, targets) =>\n iterate(targets, (_, peer) => peer.removeStream(stream)),\n\n addTrack: (track, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.addTrack(track, stream)\n }),\n\n removeTrack: (track, stream, targets) =>\n iterate(targets, (_, peer) => peer.removeTrack(track, stream)),\n\n replaceTrack: (oldTrack, newTrack, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.replaceTrack(oldTrack, newTrack, stream)\n }),\n\n onPeerJoin: f => (listeners.onPeerJoin = f),\n\n onPeerLeave: f => (listeners.onPeerLeave = f),\n\n onPeerStream: f => (listeners.onPeerStream = f),\n\n onPeerTrack: f => (listeners.onPeerTrack = f)\n }\n}\n","import {sha1} from './crypto.js'\nimport strategy from './strategy.js'\nimport {\n entries,\n genId,\n fromEntries,\n fromJson,\n getRelays,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst topicToInfoHash = {}\nconst infoHashToTopic = {}\nconst announceIntervals = {}\nconst announceFns = {}\nconst trackerAnnounceMs = {}\nconst handledOffers = {}\nconst msgHandlers = {}\nconst trackerAction = 'announce'\nconst hashLimit = 20\nconst offerPoolSize = 10\nconst defaultAnnounceMs = 33_333\nconst maxAnnounceMs = 120_333\nconst defaultRedundancy = 3\n\nconst getInfoHash = async topic => {\n if (topicToInfoHash[topic]) {\n return topicToInfoHash[topic]\n }\n\n const hash = (await sha1(topic)).slice(0, hashLimit)\n\n // eslint-disable-next-line require-atomic-updates\n topicToInfoHash[topic] = hash\n infoHashToTopic[hash] = topic\n\n return hash\n}\n\nconst send = async (client, topic, payload) =>\n client.send(\n toJson({\n action: trackerAction,\n info_hash: await getInfoHash(topic),\n peer_id: selfId,\n ...payload\n })\n )\n\nconst warn = (url, msg, didFail) =>\n console.warn(\n `${libName}: torrent tracker ${didFail ? 'failure' : 'warning'} from ${url} - ${msg}`\n )\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(rawUrl => {\n const client = makeSocket(rawUrl, rawData => {\n const data = fromJson(rawData)\n const errMsg = data['failure reason']\n const warnMsg = data['warning message']\n const {interval} = data\n const topic = infoHashToTopic[data.info_hash]\n\n if (errMsg) {\n warn(url, errMsg, true)\n return\n }\n\n if (warnMsg) {\n warn(url, warnMsg)\n }\n\n if (\n interval &&\n interval * 1000 > trackerAnnounceMs[url] &&\n announceFns[url][topic]\n ) {\n const int = Math.min(interval * 1000, maxAnnounceMs)\n\n clearInterval(announceIntervals[url][topic])\n trackerAnnounceMs[url] = int\n announceIntervals[url][topic] = setInterval(\n announceFns[url][topic],\n int\n )\n }\n\n if (handledOffers[data.offer_id]) {\n return\n }\n\n if (data.offer || data.answer) {\n handledOffers[data.offer_id] = true\n msgHandlers[url][topic]?.(data)\n }\n })\n\n const {url} = client\n\n clients[url] = client\n msgHandlers[url] = {}\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, _, onMessage, getOffers) => {\n const {url} = client\n\n const announce = async () => {\n const offers = fromEntries(\n (await getOffers(offerPoolSize)).map(peerAndOffer => [\n genId(hashLimit),\n peerAndOffer\n ])\n )\n\n msgHandlers[client.url][rootTopic] = data => {\n if (data.offer) {\n onMessage(\n rootTopic,\n {offer: data.offer, peerId: data.peer_id},\n (_, signal) =>\n send(client, rootTopic, {\n // certain trackers will reject if answer contains extra fields\n answer: fromJson(signal).answer,\n offer_id: data.offer_id,\n to_peer_id: data.peer_id\n })\n )\n } else if (data.answer) {\n const offer = offers[data.offer_id]\n\n if (offer) {\n onMessage(rootTopic, {\n answer: data.answer,\n peerId: data.peer_id,\n peer: offer.peer\n })\n }\n }\n }\n\n send(client, rootTopic, {\n numwant: offerPoolSize,\n offers: entries(offers).map(([id, {offer}]) => ({offer_id: id, offer}))\n })\n }\n\n trackerAnnounceMs[url] = defaultAnnounceMs\n announceFns[url] ||= {}\n announceFns[url][rootTopic] = announce\n announceIntervals[url] ||= {}\n announceIntervals[url][rootTopic] = setInterval(\n announce,\n trackerAnnounceMs[url]\n )\n announce()\n\n return () => {\n clearInterval(announceIntervals[url][rootTopic])\n delete msgHandlers[url][rootTopic]\n delete announceFns[url][rootTopic]\n }\n },\n\n announce: client => trackerAnnounceMs[client.url]\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'tracker.webtorrent.dev',\n 'tracker.openwebtorrent.com',\n 'tracker.files.fm:7073/announce',\n 'tracker.btorrent.xyz'\n].map(url => 'wss://' + url)\n","import {decodeBytes, encodeBytes} from './utils.js'\n\nconst algo = 'AES-GCM'\nconst strToSha1 = {}\n\nconst pack = buff => btoa(String.fromCharCode.apply(null, new Uint8Array(buff)))\n\nconst unpack = packed => {\n const str = atob(packed)\n\n return new Uint8Array(str.length).map((_, i) => str.charCodeAt(i)).buffer\n}\n\nexport const sha1 = async str => {\n if (strToSha1[str]) {\n return strToSha1[str]\n }\n\n const hash = Array.from(\n new Uint8Array(await crypto.subtle.digest('SHA-1', encodeBytes(str)))\n )\n .map(b => b.toString(36))\n .join('')\n\n // eslint-disable-next-line require-atomic-updates\n strToSha1[str] = hash\n\n return hash\n}\n\nexport const genKey = async (secret, appId, roomId) =>\n crypto.subtle.importKey(\n 'raw',\n await crypto.subtle.digest(\n {name: 'SHA-256'},\n encodeBytes(`${secret}:${appId}:${roomId}`)\n ),\n {name: algo},\n false,\n ['encrypt', 'decrypt']\n )\n\nconst joinChar = '$'\nconst ivJoinChar = ','\n\nexport const encrypt = async (keyP, plaintext) => {\n const iv = crypto.getRandomValues(new Uint8Array(16))\n\n return (\n iv.join(ivJoinChar) +\n joinChar +\n pack(\n await crypto.subtle.encrypt(\n {name: algo, iv},\n await keyP,\n encodeBytes(plaintext)\n )\n )\n )\n}\n\nexport const decrypt = async (keyP, raw) => {\n const [iv, c] = raw.split(joinChar)\n\n return decodeBytes(\n await crypto.subtle.decrypt(\n {name: algo, iv: new Uint8Array(iv.split(ivJoinChar))},\n await keyP,\n unpack(c)\n )\n )\n}\n","export const libName = 'Trystero'\n\nexport const alloc = (n, f) => Array(n).fill().map(f)\n\nconst charSet = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'\n\nexport const genId = n =>\n alloc(n, () => charSet[Math.floor(Math.random() * charSet.length)]).join('')\n\nexport const selfId = genId(20)\n\nexport const all = Promise.all.bind(Promise)\n\nexport const isBrowser = typeof window !== 'undefined'\n\nexport const {entries, fromEntries, keys} = Object\n\nexport const noOp = () => {}\n\nexport const mkErr = msg => new Error(`${libName}: ${msg}`)\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const encodeBytes = txt => encoder.encode(txt)\n\nexport const decodeBytes = buffer => decoder.decode(buffer)\n\nexport const toHex = buffer =>\n buffer.reduce((a, c) => a + c.toString(16).padStart(2, '0'), '')\n\nexport const topicPath = (...parts) => parts.join('@')\n\nexport const getRelays = (config, defaults, defaultN) =>\n (config.relayUrls || defaults).slice(\n 0,\n config.relayUrls\n ? config.relayUrls.length\n : config.relayRedundancy || defaultN\n )\n\nexport const toJson = JSON.stringify\n\nexport const fromJson = JSON.parse\n\nconst defaultRetryMs = 3333\nconst socketRetryPeriods = {}\n\nexport const makeSocket = (url, onMessage) => {\n const client = {}\n\n const init = () => {\n const socket = new WebSocket(url)\n\n socket.onclose = () => {\n socketRetryPeriods[url] ??= defaultRetryMs\n setTimeout(init, socketRetryPeriods[url])\n socketRetryPeriods[url] *= 2\n }\n\n socket.onmessage = e => onMessage(e.data)\n client.socket = socket\n client.url = socket.url\n client.ready = new Promise(\n res =>\n (socket.onopen = () => {\n res(client)\n socketRetryPeriods[url] = defaultRetryMs\n })\n )\n client.send = data => {\n if (socket.readyState === 1) {\n socket.send(data)\n }\n }\n }\n\n init()\n\n return client\n}\n\nexport const socketGetter = clientMap => () =>\n fromEntries(entries(clientMap).map(([url, client]) => [url, client.socket]))\n","import {decrypt, encrypt, genKey, sha1} from './crypto.js'\nimport initPeer from './peer.js'\nimport room from './room.js'\nimport {\n all,\n alloc,\n fromJson,\n libName,\n mkErr,\n noOp,\n selfId,\n toJson,\n topicPath\n} from './utils.js'\n\nconst poolSize = 20\nconst announceIntervalMs = 5_333\nconst offerTtl = 57_333\n\nexport default ({init, subscribe, announce}) => {\n const occupiedRooms = {}\n\n let didInit = false\n let initPromises\n let offerPool\n let offerCleanupTimer\n\n return (config, roomId, onJoinError) => {\n const {appId} = config\n\n if (occupiedRooms[appId]?.[roomId]) {\n return occupiedRooms[appId][roomId]\n }\n\n const pendingOffers = {}\n const connectedPeers = {}\n const rootTopicPlaintext = topicPath(libName, appId, roomId)\n const rootTopicP = sha1(rootTopicPlaintext)\n const selfTopicP = sha1(topicPath(rootTopicPlaintext, selfId))\n const key = genKey(config.password || '', appId, roomId)\n\n const withKey = f => async signal => ({\n type: signal.type,\n sdp: await f(key, signal.sdp)\n })\n\n const toPlain = withKey(decrypt)\n const toCipher = withKey(encrypt)\n\n const makeOffer = () => initPeer(true, config.rtcConfig)\n\n const connectPeer = (peer, peerId, clientId) => {\n if (connectedPeers[peerId]) {\n if (connectedPeers[peerId] !== peer) {\n peer.destroy()\n }\n return\n }\n\n connectedPeers[peerId] = peer\n onPeerConnect(peer, peerId)\n\n pendingOffers[peerId]?.forEach((peer, i) => {\n if (i !== clientId) {\n peer.destroy()\n }\n })\n delete pendingOffers[peerId]\n }\n\n const disconnectPeer = (peer, peerId) => {\n if (connectedPeers[peerId] === peer) {\n delete connectedPeers[peerId]\n }\n }\n\n const prunePendingOffer = (peerId, clientId) => {\n if (connectedPeers[peerId]) {\n return\n }\n\n const offer = pendingOffers[peerId]?.[clientId]\n\n if (offer) {\n delete pendingOffers[peerId][clientId]\n offer.destroy()\n }\n }\n\n const getOffers = n => {\n offerPool.push(...alloc(n, makeOffer))\n\n return all(\n offerPool\n .splice(0, n)\n .map(peer =>\n peer.offerPromise.then(toCipher).then(offer => ({peer, offer}))\n )\n )\n }\n\n const handleJoinError = (peerId, sdpType) =>\n onJoinError?.({\n error: `incorrect password (${config.password}) when decrypting ${sdpType}`,\n appId,\n peerId,\n roomId\n })\n\n const handleMessage = clientId => async (topic, msg, signalPeer) => {\n const [rootTopic, selfTopic] = await all([rootTopicP, selfTopicP])\n\n if (topic !== rootTopic && topic !== selfTopic) {\n return\n }\n\n const {peerId, offer, answer, peer} =\n typeof msg === 'string' ? fromJson(msg) : msg\n\n if (peerId === selfId || connectedPeers[peerId]) {\n return\n }\n\n if (peerId && !offer && !answer) {\n if (pendingOffers[peerId]?.[clientId]) {\n return\n }\n\n const [[{peer, offer}], topic] = await all([\n getOffers(1),\n sha1(topicPath(rootTopicPlaintext, peerId))\n ])\n\n pendingOffers[peerId] ||= []\n pendingOffers[peerId][clientId] = peer\n\n setTimeout(\n () => prunePendingOffer(peerId, clientId),\n announceIntervals[clientId] * 0.9\n )\n\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n signalPeer(topic, toJson({peerId: selfId, offer}))\n } else if (offer) {\n const myOffer = pendingOffers[peerId]?.[clientId]\n\n if (myOffer && selfId > peerId) {\n return\n }\n\n const peer = initPeer(false, config.rtcConfig)\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n let plainOffer\n\n try {\n plainOffer = await toPlain(offer)\n } catch (_) {\n handleJoinError(peerId, 'offer')\n return\n }\n\n if (peer.isDead) {\n return\n }\n\n const [topic, answer] = await all([\n sha1(topicPath(rootTopicPlaintext, peerId)),\n peer.signal(plainOffer)\n ])\n\n signalPeer(\n topic,\n toJson({peerId: selfId, answer: await toCipher(answer)})\n )\n } else if (answer) {\n let plainAnswer\n\n try {\n plainAnswer = await toPlain(answer)\n } catch (e) {\n handleJoinError(peerId, 'answer')\n return\n }\n\n if (peer) {\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n peer.signal(plainAnswer)\n } else {\n const peer = pendingOffers[peerId]?.[clientId]\n\n if (peer && !peer.isDead) {\n peer.signal(plainAnswer)\n }\n }\n }\n }\n\n if (!config) {\n throw mkErr('requires a config map as the first argument')\n }\n\n if (!appId && !config.firebaseApp) {\n throw mkErr('config map is missing appId field')\n }\n\n if (!roomId) {\n throw mkErr('roomId argument required')\n }\n\n if (!didInit) {\n const initRes = init(config)\n offerPool = alloc(poolSize, makeOffer)\n initPromises = Array.isArray(initRes) ? initRes : [initRes]\n didInit = true\n offerCleanupTimer = setInterval(\n () =>\n (offerPool = offerPool.filter(peer => {\n const shouldLive = Date.now() - peer.created < offerTtl\n\n if (!shouldLive) {\n peer.destroy()\n }\n\n return shouldLive\n })),\n offerTtl * 1.03\n )\n }\n\n const announceIntervals = initPromises.map(() => announceIntervalMs)\n const announceTimeouts = []\n\n const unsubFns = initPromises.map(async (clientP, i) =>\n subscribe(\n await clientP,\n await rootTopicP,\n await selfTopicP,\n handleMessage(i),\n getOffers\n )\n )\n\n all([rootTopicP, selfTopicP]).then(([rootTopic, selfTopic]) => {\n const queueAnnounce = async (client, i) => {\n const ms = await announce(client, rootTopic, selfTopic)\n\n if (typeof ms === 'number') {\n announceIntervals[i] = ms\n }\n\n announceTimeouts[i] = setTimeout(\n () => queueAnnounce(client, i),\n announceIntervals[i]\n )\n }\n\n unsubFns.forEach(async (didSub, i) => {\n await didSub\n queueAnnounce(await initPromises[i], i)\n })\n })\n\n let onPeerConnect = noOp\n\n occupiedRooms[appId] ||= {}\n\n return (occupiedRooms[appId][roomId] = room(\n f => (onPeerConnect = f),\n id => delete connectedPeers[id],\n () => {\n delete occupiedRooms[appId][roomId]\n announceTimeouts.forEach(clearTimeout)\n unsubFns.forEach(async f => (await f)())\n clearInterval(offerCleanupTimer)\n }\n ))\n }\n}\n","import Peer from '@thaunknown/simple-peer'\nimport {alloc} from './utils.js'\n\nconst dataEvent = 'data'\nconst signalEvent = 'signal'\n\nexport default (initiator, config) => {\n const peer = new Peer({\n ...{iceServers: [{urls: defaultIceServers}]},\n ...config,\n initiator,\n trickle: false\n })\n const onData = d => earlyDataBuffer.push(d)\n\n let earlyDataBuffer = []\n\n peer.on(dataEvent, onData)\n\n return {\n id: peer._id,\n\n created: Date.now(),\n\n connection: peer._pc,\n\n get channel() {\n return peer._channel\n },\n\n get isDead() {\n return peer.destroyed\n },\n\n signal: sdp =>\n new Promise(res => {\n if (!initiator) {\n peer.on(signalEvent, res)\n }\n peer.signal(sdp)\n }),\n\n sendData: data => peer.send(data),\n\n destroy: () => peer.destroy(),\n\n setHandlers: handlers =>\n Object.entries(handlers).forEach(([event, fn]) => peer.on(event, fn)),\n\n offerPromise: initiator\n ? new Promise(res => peer.on(signalEvent, res))\n : Promise.resolve(),\n\n addStream: stream => peer.addStream(stream),\n\n removeStream: stream => peer.removeStream(stream),\n\n addTrack: (track, stream) => peer.addTrack(track, stream),\n\n removeTrack: (track, stream) => peer.removeTrack(track, stream),\n\n replaceTrack: (oldTrack, newTrack, stream) =>\n peer.replaceTrack(oldTrack, newTrack, stream),\n\n drainEarlyData: f => {\n peer.off(dataEvent, onData)\n earlyDataBuffer.forEach(f)\n earlyDataBuffer = null\n }\n }\n}\n\nexport const defaultIceServers = [\n ...alloc(5, (_, i) => `stun:stun${i || ''}.l.google.com:19302`),\n 'stun:global.stun.twilio.com:3478'\n]\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport Lite from './lite.js'\r\nimport errCode from 'err-code'\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Lite {\r\n constructor (opts = {}) {\r\n super(opts)\r\n if (!this._pc) return\r\n\r\n this.streams = opts.streams || (opts.stream ? [opts.stream] : []) // support old \"stream\" option\r\n this._senderMap = new Map()\r\n\r\n if (this.streams) {\r\n this.streams.forEach(stream => {\r\n this.addStream(stream)\r\n })\r\n }\r\n this._pc.ontrack = event => {\r\n this._onTrack(event)\r\n }\r\n }\r\n\r\n /**\r\n * Add a Transceiver to the connection.\r\n * @param {String} kind\r\n * @param {Object=} init\r\n */\r\n addTransceiver (kind, init) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTransceiver after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTransceiver()')\r\n\r\n if (this.initiator) {\r\n try {\r\n this._pc.addTransceiver(kind, init)\r\n this._needsNegotiation()\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_ADD_TRANSCEIVER'))\r\n }\r\n } else {\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'transceiverRequest',\r\n transceiverRequest: { kind, init }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Add a MediaStream to the connection.\r\n * @param {MediaStream} stream\r\n */\r\n addStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addStream()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.addTrack(track, stream)\r\n })\r\n }\r\n\r\n /**\r\n * Add a MediaStreamTrack to the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n addTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTrack()')\r\n\r\n const submap = this._senderMap.get(track) || new Map() // nested Maps map [track, stream] to sender\r\n let sender = submap.get(stream)\r\n if (!sender) {\r\n sender = this._pc.addTrack(track, stream)\r\n submap.set(stream, sender)\r\n this._senderMap.set(track, submap)\r\n this._needsNegotiation()\r\n } else if (sender.removed) {\r\n throw errCode(new Error('Track has been removed. You should enable/disable tracks that you want to re-add.'), 'ERR_SENDER_REMOVED')\r\n } else {\r\n throw errCode(new Error('Track has already been added to that stream.'), 'ERR_SENDER_ALREADY_ADDED')\r\n }\r\n }\r\n\r\n /**\r\n * Replace a MediaStreamTrack by another in the connection.\r\n * @param {MediaStreamTrack} oldTrack\r\n * @param {MediaStreamTrack} newTrack\r\n * @param {MediaStream} stream\r\n */\r\n replaceTrack (oldTrack, newTrack, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot replaceTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('replaceTrack()')\r\n\r\n const submap = this._senderMap.get(oldTrack)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot replace track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n if (newTrack) this._senderMap.set(newTrack, submap)\r\n\r\n if (sender.replaceTrack != null) {\r\n sender.replaceTrack(newTrack)\r\n } else {\r\n this.__destroy(errCode(new Error('replaceTrack is not supported in this browser'), 'ERR_UNSUPPORTED_REPLACETRACK'))\r\n }\r\n }\r\n\r\n /**\r\n * Remove a MediaStreamTrack from the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n removeTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSender()')\r\n\r\n const submap = this._senderMap.get(track)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot remove track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n try {\r\n sender.removed = true\r\n this._pc.removeTrack(sender)\r\n } catch (err) {\r\n if (err.name === 'NS_ERROR_UNEXPECTED') {\r\n this._sendersAwaitingStable.push(sender) // HACK: Firefox must wait until (signalingState === stable) https://bugzilla.mozilla.org/show_bug.cgi?id=1133874\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_REMOVE_TRACK'))\r\n }\r\n }\r\n this._needsNegotiation()\r\n }\r\n\r\n /**\r\n * Remove a MediaStream from the connection.\r\n * @param {MediaStream} stream\r\n */\r\n removeStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSenders()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.removeTrack(track, stream)\r\n })\r\n }\r\n\r\n _requestMissingTransceivers () {\r\n if (this._pc.getTransceivers) {\r\n this._pc.getTransceivers().forEach(transceiver => {\r\n if (!transceiver.mid && transceiver.sender.track && !transceiver.requested) {\r\n transceiver.requested = true // HACK: Safari returns negotiated transceivers with a null mid\r\n this.addTransceiver(transceiver.sender.track.kind)\r\n }\r\n })\r\n }\r\n }\r\n\r\n _onTrack (event) {\r\n if (this.destroyed) return\r\n\r\n event.streams.forEach(eventStream => {\r\n this._debug('on track')\r\n this.emit('track', event.track, eventStream)\r\n\r\n this._remoteTracks.push({\r\n track: event.track,\r\n stream: eventStream\r\n })\r\n\r\n if (this._remoteStreams.some(remoteStream => {\r\n return remoteStream.id === eventStream.id\r\n })) return // Only fire one 'stream' event, even though there may be multiple tracks per stream\r\n\r\n this._remoteStreams.push(eventStream)\r\n queueMicrotask(() => {\r\n this._debug('on stream')\r\n this.emit('stream', eventStream) // ensure all tracks have been added\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default Peer\r\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport debug from 'debug'\r\nimport { RTCPeerConnection, RTCSessionDescription, RTCIceCandidate } from 'webrtc-polyfill'\r\nimport { Duplex } from 'streamx'\r\nimport errCode from 'err-code'\r\nimport { randomBytes, arr2hex, text2arr } from 'uint8-util'\r\n\r\nconst Debug = debug('simple-peer')\r\n\r\nconst MAX_BUFFERED_AMOUNT = 64 * 1024\r\nconst ICECOMPLETE_TIMEOUT = 5 * 1000\r\nconst CHANNEL_CLOSING_TIMEOUT = 5 * 1000\r\n\r\n// HACK: Filter trickle lines when trickle is disabled #354\r\nfunction filterTrickle (sdp) {\r\n return sdp.replace(/a=ice-options:trickle\\s\\n/g, '')\r\n}\r\n\r\nfunction warn (message) {\r\n console.warn(message)\r\n}\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Duplex {\r\n /** @type {RTCPeerConnection} */\r\n _pc\r\n constructor (opts) {\r\n opts = Object.assign({\r\n allowHalfOpen: false\r\n }, opts)\r\n\r\n super(opts)\r\n\r\n this.__objectMode = !!opts.objectMode // streamx is objectMode by default, so implement readable's fuctionality\r\n\r\n this._id = arr2hex(randomBytes(4)).slice(0, 7)\r\n this._debug('new peer %o', opts)\r\n\r\n this.channelName = opts.initiator\r\n ? opts.channelName || arr2hex(randomBytes(20))\r\n : null\r\n\r\n this.initiator = opts.initiator || false\r\n this.channelConfig = opts.channelConfig || Peer.channelConfig\r\n this.channelNegotiated = this.channelConfig.negotiated\r\n this.config = Object.assign({}, Peer.config, opts.config)\r\n this.offerOptions = opts.offerOptions || {}\r\n this.answerOptions = opts.answerOptions || {}\r\n this.sdpTransform = opts.sdpTransform || (sdp => sdp)\r\n this.trickle = opts.trickle !== undefined ? opts.trickle : true\r\n this.allowHalfTrickle = opts.allowHalfTrickle !== undefined ? opts.allowHalfTrickle : false\r\n this.iceCompleteTimeout = opts.iceCompleteTimeout || ICECOMPLETE_TIMEOUT\r\n\r\n this._destroying = false\r\n this._connected = false\r\n\r\n this.remoteAddress = undefined\r\n this.remoteFamily = undefined\r\n this.remotePort = undefined\r\n this.localAddress = undefined\r\n this.localFamily = undefined\r\n this.localPort = undefined\r\n\r\n if (!RTCPeerConnection) {\r\n if (typeof window === 'undefined') {\r\n throw errCode(new Error('No WebRTC support: Specify `opts.wrtc` option in this environment'), 'ERR_WEBRTC_SUPPORT')\r\n } else {\r\n throw errCode(new Error('No WebRTC support: Not a supported browser'), 'ERR_WEBRTC_SUPPORT')\r\n }\r\n }\r\n\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._iceComplete = false // ice candidate trickle done (got null candidate)\r\n this._iceCompleteTimer = null // send an offer/answer anyway after some timeout\r\n this._channel = null\r\n this._pendingCandidates = []\r\n\r\n this._isNegotiating = false // is this peer waiting for negotiation to complete?\r\n this._firstNegotiation = true\r\n this._batchedNegotiation = false // batch synchronous negotiations\r\n this._queuedNegotiation = false // is there a queued negotiation request?\r\n this._sendersAwaitingStable = []\r\n this._closingInterval = null\r\n\r\n this._remoteTracks = []\r\n this._remoteStreams = []\r\n\r\n this._chunk = null\r\n this._cb = null\r\n this._interval = null\r\n\r\n try {\r\n this._pc = new RTCPeerConnection(this.config)\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_PC_CONSTRUCTOR'))\r\n return\r\n }\r\n\r\n // We prefer feature detection whenever possible, but sometimes that's not\r\n // possible for certain implementations.\r\n this._isReactNativeWebrtc = typeof this._pc._peerConnectionId === 'number'\r\n\r\n this._pc.oniceconnectionstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onicegatheringstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onconnectionstatechange = () => {\r\n this._onConnectionStateChange()\r\n }\r\n this._pc.onsignalingstatechange = () => {\r\n this._onSignalingStateChange()\r\n }\r\n this._pc.onicecandidate = event => {\r\n this._onIceCandidate(event)\r\n }\r\n\r\n // HACK: Fix for odd Firefox behavior, see: https://github.com/feross/simple-peer/pull/783\r\n if (typeof this._pc.peerIdentity === 'object') {\r\n this._pc.peerIdentity.catch(err => {\r\n this.__destroy(errCode(err, 'ERR_PC_PEER_IDENTITY'))\r\n })\r\n }\r\n\r\n // Other spec events, unused by this implementation:\r\n // - onconnectionstatechange\r\n // - onicecandidateerror\r\n // - onfingerprintfailure\r\n // - onnegotiationneeded\r\n\r\n if (this.initiator || this.channelNegotiated) {\r\n this._setupData({\r\n channel: this._pc.createDataChannel(this.channelName, this.channelConfig)\r\n })\r\n } else {\r\n this._pc.ondatachannel = event => {\r\n this._setupData(event)\r\n }\r\n }\r\n\r\n this._debug('initial negotiation')\r\n this._needsNegotiation()\r\n\r\n this._onFinishBound = () => {\r\n this._onFinish()\r\n }\r\n this.once('finish', this._onFinishBound)\r\n }\r\n\r\n get bufferSize () {\r\n return (this._channel && this._channel.bufferedAmount) || 0\r\n }\r\n\r\n // HACK: it's possible channel.readyState is \"closing\" before peer.destroy() fires\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n get connected () {\r\n return (this._connected && this._channel.readyState === 'open')\r\n }\r\n\r\n address () {\r\n return { port: this.localPort, family: this.localFamily, address: this.localAddress }\r\n }\r\n\r\n signal (data) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot signal after peer is destroyed'), 'ERR_DESTROYED')\r\n if (typeof data === 'string') {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (err) {\r\n data = {}\r\n }\r\n }\r\n this._debug('signal()')\r\n\r\n if (data.renegotiate && this.initiator) {\r\n this._debug('got request to renegotiate')\r\n this._needsNegotiation()\r\n }\r\n if (data.transceiverRequest && this.initiator) {\r\n this._debug('got request for transceiver')\r\n this.addTransceiver(data.transceiverRequest.kind, data.transceiverRequest.init)\r\n }\r\n if (data.candidate) {\r\n if (this._pc.remoteDescription && this._pc.remoteDescription.type) {\r\n this._addIceCandidate(data.candidate)\r\n } else {\r\n this._pendingCandidates.push(data.candidate)\r\n }\r\n }\r\n if (data.sdp) {\r\n this._pc.setRemoteDescription(new RTCSessionDescription(data))\r\n .then(() => {\r\n if (this.destroyed) return\r\n\r\n this._pendingCandidates.forEach(candidate => {\r\n this._addIceCandidate(candidate)\r\n })\r\n this._pendingCandidates = []\r\n\r\n if (this._pc.remoteDescription.type === 'offer') this._createAnswer()\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_SET_REMOTE_DESCRIPTION'))\r\n })\r\n }\r\n if (!data.sdp && !data.candidate && !data.renegotiate && !data.transceiverRequest) {\r\n this.__destroy(errCode(new Error('signal() called with invalid signal data'), 'ERR_SIGNALING'))\r\n }\r\n }\r\n\r\n _addIceCandidate (candidate) {\r\n const iceCandidateObj = new RTCIceCandidate(candidate)\r\n this._pc.addIceCandidate(iceCandidateObj)\r\n .catch(err => {\r\n if (!iceCandidateObj.address || iceCandidateObj.address.endsWith('.local')) {\r\n warn('Ignoring unsupported ICE candidate.')\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_ADD_ICE_CANDIDATE'))\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Send text/binary data to the remote peer.\r\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array|string|Blob} chunk\r\n */\r\n send (chunk) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot send after peer is destroyed'), 'ERR_DESTROYED')\r\n this._channel.send(chunk)\r\n }\r\n\r\n _needsNegotiation () {\r\n this._debug('_needsNegotiation')\r\n if (this._batchedNegotiation) return // batch synchronous renegotiations\r\n this._batchedNegotiation = true\r\n queueMicrotask(() => {\r\n this._batchedNegotiation = false\r\n if (this.initiator || !this._firstNegotiation) {\r\n this._debug('starting batched negotiation')\r\n this.negotiate()\r\n } else {\r\n this._debug('non-initiator initial negotiation request discarded')\r\n }\r\n this._firstNegotiation = false\r\n })\r\n }\r\n\r\n negotiate () {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot negotiate after peer is destroyed'), 'ERR_DESTROYED')\r\n\r\n if (this.initiator) {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('start negotiation')\r\n setTimeout(() => { // HACK: Chrome crashes if we immediately call createOffer\r\n this._createOffer()\r\n }, 0)\r\n }\r\n } else {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('requesting negotiation from initiator')\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'renegotiate',\r\n renegotiate: true\r\n })\r\n }\r\n }\r\n this._isNegotiating = true\r\n }\r\n\r\n _final (cb) {\r\n if (!this._readableState.ended) this.push(null)\r\n cb(null)\r\n }\r\n\r\n __destroy (err) {\r\n this.end()\r\n this._destroy(() => {}, err)\r\n }\r\n\r\n _destroy (cb, err) {\r\n if (this.destroyed || this._destroying) return\r\n this._destroying = true\r\n\r\n this._debug('destroying (error: %s)', err && (err.message || err))\r\n\r\n setTimeout(() => { // allow events concurrent with the call to _destroy() to fire (see #692)\r\n this._connected = false\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._remoteTracks = null\r\n this._remoteStreams = null\r\n this._senderMap = null\r\n\r\n clearInterval(this._closingInterval)\r\n this._closingInterval = null\r\n\r\n clearInterval(this._interval)\r\n this._interval = null\r\n this._chunk = null\r\n this._cb = null\r\n\r\n if (this._onFinishBound) this.removeListener('finish', this._onFinishBound)\r\n this._onFinishBound = null\r\n\r\n if (this._channel) {\r\n try {\r\n this._channel.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._channel.onmessage = null\r\n this._channel.onopen = null\r\n this._channel.onclose = null\r\n this._channel.onerror = null\r\n }\r\n if (this._pc) {\r\n try {\r\n this._pc.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._pc.oniceconnectionstatechange = null\r\n this._pc.onicegatheringstatechange = null\r\n this._pc.onsignalingstatechange = null\r\n this._pc.onicecandidate = null\r\n this._pc.ontrack = null\r\n this._pc.ondatachannel = null\r\n }\r\n this._pc = null\r\n this._channel = null\r\n if (err) this.emit('error', err)\r\n cb()\r\n }, 0)\r\n }\r\n\r\n _setupData (event) {\r\n if (!event.channel) {\r\n // In some situations `pc.createDataChannel()` returns `undefined` (in wrtc),\r\n // which is invalid behavior. Handle it gracefully.\r\n // See: https://github.com/feross/simple-peer/issues/163\r\n return this.__destroy(errCode(new Error('Data channel event is missing `channel` property'), 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n this._channel = event.channel\r\n this._channel.binaryType = 'arraybuffer'\r\n\r\n if (typeof this._channel.bufferedAmountLowThreshold === 'number') {\r\n this._channel.bufferedAmountLowThreshold = MAX_BUFFERED_AMOUNT\r\n }\r\n\r\n this.channelName = this._channel.label\r\n\r\n this._channel.onmessage = event => {\r\n this._onChannelMessage(event)\r\n }\r\n this._channel.onbufferedamountlow = () => {\r\n this._onChannelBufferedAmountLow()\r\n }\r\n this._channel.onopen = () => {\r\n this._onChannelOpen()\r\n }\r\n this._channel.onclose = () => {\r\n this._onChannelClose()\r\n }\r\n this._channel.onerror = event => {\r\n const err = event.error instanceof Error\r\n ? event.error\r\n : new Error(`Datachannel error: ${event.message} ${event.filename}:${event.lineno}:${event.colno}`)\r\n this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n // HACK: Chrome will sometimes get stuck in readyState \"closing\", let's check for this condition\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n let isClosing = false\r\n this._closingInterval = setInterval(() => { // No \"onclosing\" event\r\n if (this._channel && this._channel.readyState === 'closing') {\r\n if (isClosing) this._onChannelClose() // closing timed out: equivalent to onclose firing\r\n isClosing = true\r\n } else {\r\n isClosing = false\r\n }\r\n }, CHANNEL_CLOSING_TIMEOUT)\r\n }\r\n\r\n _write (chunk, cb) {\r\n if (this.destroyed) return cb(errCode(new Error('cannot write after peer is destroyed'), 'ERR_DATA_CHANNEL'))\r\n\r\n if (this._connected) {\r\n try {\r\n this.send(chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n if (this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n this._debug('start backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n this._cb = cb\r\n } else {\r\n cb(null)\r\n }\r\n } else {\r\n this._debug('write before connect')\r\n this._chunk = chunk\r\n this._cb = cb\r\n }\r\n }\r\n\r\n // When stream finishes writing, close socket. Half open connections are not\r\n // supported.\r\n _onFinish () {\r\n if (this.destroyed) return\r\n\r\n // Wait a bit before destroying so the socket flushes.\r\n // TODO: is there a more reliable way to accomplish this?\r\n const destroySoon = () => {\r\n setTimeout(() => this.__destroy(), 1000)\r\n }\r\n\r\n if (this._connected) {\r\n destroySoon()\r\n } else {\r\n this.once('connect', destroySoon)\r\n }\r\n }\r\n\r\n _startIceCompleteTimeout () {\r\n if (this.destroyed) return\r\n if (this._iceCompleteTimer) return\r\n this._debug('started iceComplete timeout')\r\n this._iceCompleteTimer = setTimeout(() => {\r\n if (!this._iceComplete) {\r\n this._iceComplete = true\r\n this._debug('iceComplete timeout completed')\r\n this.emit('iceTimeout')\r\n this.emit('_iceComplete')\r\n }\r\n }, this.iceCompleteTimeout)\r\n }\r\n\r\n _createOffer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createOffer(this.offerOptions)\r\n .then(offer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) offer.sdp = filterTrickle(offer.sdp)\r\n offer.sdp = this.sdpTransform(offer.sdp)\r\n\r\n const sendOffer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || offer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n }\r\n\r\n const onSuccess = () => {\r\n this._debug('createOffer success')\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendOffer()\r\n else this.once('_iceComplete', sendOffer) // wait for candidates\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(offer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_OFFER'))\r\n })\r\n }\r\n\r\n _createAnswer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createAnswer(this.answerOptions)\r\n .then(answer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) answer.sdp = filterTrickle(answer.sdp)\r\n answer.sdp = this.sdpTransform(answer.sdp)\r\n\r\n const sendAnswer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || answer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n if (!this.initiator) this._requestMissingTransceivers?.()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendAnswer()\r\n else this.once('_iceComplete', sendAnswer)\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(answer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_ANSWER'))\r\n })\r\n }\r\n\r\n _onConnectionStateChange () {\r\n if (this.destroyed || this._destroying) return\r\n if (this._pc.connectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Connection failed.'), 'ERR_CONNECTION_FAILURE'))\r\n }\r\n }\r\n\r\n _onIceStateChange () {\r\n if (this.destroyed) return\r\n const iceConnectionState = this._pc.iceConnectionState\r\n const iceGatheringState = this._pc.iceGatheringState\r\n\r\n this._debug(\r\n 'iceStateChange (connection: %s) (gathering: %s)',\r\n iceConnectionState,\r\n iceGatheringState\r\n )\r\n this.emit('iceStateChange', iceConnectionState, iceGatheringState)\r\n\r\n if (iceConnectionState === 'connected' || iceConnectionState === 'completed') {\r\n this._pcReady = true\r\n this._maybeReady()\r\n }\r\n if (iceConnectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Ice connection failed.'), 'ERR_ICE_CONNECTION_FAILURE'))\r\n }\r\n if (iceConnectionState === 'closed') {\r\n this.__destroy(errCode(new Error('Ice connection closed.'), 'ERR_ICE_CONNECTION_CLOSED'))\r\n }\r\n }\r\n\r\n getStats (cb) {\r\n // statreports can come with a value array instead of properties\r\n const flattenValues = report => {\r\n if (Object.prototype.toString.call(report.values) === '[object Array]') {\r\n report.values.forEach(value => {\r\n Object.assign(report, value)\r\n })\r\n }\r\n return report\r\n }\r\n\r\n // Promise-based getStats() (standard)\r\n if (this._pc.getStats.length === 0 || this._isReactNativeWebrtc) {\r\n this._pc.getStats()\r\n .then(res => {\r\n const reports = []\r\n res.forEach(report => {\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Single-parameter callback-based getStats() (non-standard)\r\n } else if (this._pc.getStats.length > 0) {\r\n this._pc.getStats(res => {\r\n // If we destroy connection in `connect` callback this code might happen to run when actual connection is already closed\r\n if (this.destroyed) return\r\n\r\n const reports = []\r\n res.result().forEach(result => {\r\n const report = {}\r\n result.names().forEach(name => {\r\n report[name] = result.stat(name)\r\n })\r\n report.id = result.id\r\n report.type = result.type\r\n report.timestamp = result.timestamp\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Unknown browser, skip getStats() since it's anyone's guess which style of\r\n // getStats() they implement.\r\n } else {\r\n cb(null, [])\r\n }\r\n }\r\n\r\n _maybeReady () {\r\n this._debug('maybeReady pc %s channel %s', this._pcReady, this._channelReady)\r\n if (this._connected || this._connecting || !this._pcReady || !this._channelReady) return\r\n\r\n this._connecting = true\r\n\r\n // HACK: We can't rely on order here, for details see https://github.com/js-platform/node-webrtc/issues/339\r\n const findCandidatePair = () => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n this.getStats((err, items) => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n // Treat getStats error as non-fatal. It's not essential.\r\n if (err) items = []\r\n\r\n const remoteCandidates = {}\r\n const localCandidates = {}\r\n const candidatePairs = {}\r\n let foundSelectedCandidatePair = false\r\n\r\n items.forEach(item => {\r\n // TODO: Once all browsers support the hyphenated stats report types, remove\r\n // the non-hypenated ones\r\n if (item.type === 'remotecandidate' || item.type === 'remote-candidate') {\r\n remoteCandidates[item.id] = item\r\n }\r\n if (item.type === 'localcandidate' || item.type === 'local-candidate') {\r\n localCandidates[item.id] = item\r\n }\r\n if (item.type === 'candidatepair' || item.type === 'candidate-pair') {\r\n candidatePairs[item.id] = item\r\n }\r\n })\r\n\r\n const setSelectedCandidatePair = selectedCandidatePair => {\r\n foundSelectedCandidatePair = true\r\n\r\n let local = localCandidates[selectedCandidatePair.localCandidateId]\r\n\r\n if (local && (local.ip || local.address)) {\r\n // Spec\r\n this.localAddress = local.ip || local.address\r\n this.localPort = Number(local.port)\r\n } else if (local && local.ipAddress) {\r\n // Firefox\r\n this.localAddress = local.ipAddress\r\n this.localPort = Number(local.portNumber)\r\n } else if (typeof selectedCandidatePair.googLocalAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n local = selectedCandidatePair.googLocalAddress.split(':')\r\n this.localAddress = local[0]\r\n this.localPort = Number(local[1])\r\n }\r\n if (this.localAddress) {\r\n this.localFamily = this.localAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n let remote = remoteCandidates[selectedCandidatePair.remoteCandidateId]\r\n\r\n if (remote && (remote.ip || remote.address)) {\r\n // Spec\r\n this.remoteAddress = remote.ip || remote.address\r\n this.remotePort = Number(remote.port)\r\n } else if (remote && remote.ipAddress) {\r\n // Firefox\r\n this.remoteAddress = remote.ipAddress\r\n this.remotePort = Number(remote.portNumber)\r\n } else if (typeof selectedCandidatePair.googRemoteAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n remote = selectedCandidatePair.googRemoteAddress.split(':')\r\n this.remoteAddress = remote[0]\r\n this.remotePort = Number(remote[1])\r\n }\r\n if (this.remoteAddress) {\r\n this.remoteFamily = this.remoteAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n this._debug(\r\n 'connect local: %s:%s remote: %s:%s',\r\n this.localAddress,\r\n this.localPort,\r\n this.remoteAddress,\r\n this.remotePort\r\n )\r\n }\r\n\r\n items.forEach(item => {\r\n // Spec-compliant\r\n if (item.type === 'transport' && item.selectedCandidatePairId) {\r\n setSelectedCandidatePair(candidatePairs[item.selectedCandidatePairId])\r\n }\r\n\r\n // Old implementations\r\n if (\r\n (item.type === 'googCandidatePair' && item.googActiveConnection === 'true') ||\r\n ((item.type === 'candidatepair' || item.type === 'candidate-pair') && item.selected)\r\n ) {\r\n setSelectedCandidatePair(item)\r\n }\r\n })\r\n\r\n // Ignore candidate pair selection in browsers like Safari 11 that do not have any local or remote candidates\r\n // But wait until at least 1 candidate pair is available\r\n if (!foundSelectedCandidatePair && (!Object.keys(candidatePairs).length || Object.keys(localCandidates).length)) {\r\n setTimeout(findCandidatePair, 100)\r\n return\r\n } else {\r\n this._connecting = false\r\n this._connected = true\r\n }\r\n\r\n if (this._chunk) {\r\n try {\r\n this.send(this._chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n this._chunk = null\r\n this._debug('sent chunk from \"write before connect\"')\r\n\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n // If `bufferedAmountLowThreshold` and 'onbufferedamountlow' are unsupported,\r\n // fallback to using setInterval to implement backpressure.\r\n if (typeof this._channel.bufferedAmountLowThreshold !== 'number') {\r\n this._interval = setInterval(() => this._onInterval(), 150)\r\n if (this._interval.unref) this._interval.unref()\r\n }\r\n\r\n this._debug('connect')\r\n this.emit('connect')\r\n })\r\n }\r\n findCandidatePair()\r\n }\r\n\r\n _onInterval () {\r\n if (!this._cb || !this._channel || this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n return\r\n }\r\n this._onChannelBufferedAmountLow()\r\n }\r\n\r\n _onSignalingStateChange () {\r\n if (this.destroyed) return\r\n\r\n if (this._pc.signalingState === 'stable') {\r\n this._isNegotiating = false\r\n\r\n // HACK: Firefox doesn't yet support removing tracks when signalingState !== 'stable'\r\n this._debug('flushing sender queue', this._sendersAwaitingStable)\r\n this._sendersAwaitingStable.forEach(sender => {\r\n this._pc.removeTrack(sender)\r\n this._queuedNegotiation = true\r\n })\r\n this._sendersAwaitingStable = []\r\n\r\n if (this._queuedNegotiation) {\r\n this._debug('flushing negotiation queue')\r\n this._queuedNegotiation = false\r\n this._needsNegotiation() // negotiate again\r\n } else {\r\n this._debug('negotiated')\r\n this.emit('negotiated')\r\n }\r\n }\r\n\r\n this._debug('signalingStateChange %s', this._pc.signalingState)\r\n this.emit('signalingStateChange', this._pc.signalingState)\r\n }\r\n\r\n _onIceCandidate (event) {\r\n if (this.destroyed) return\r\n if (event.candidate && this.trickle) {\r\n this.emit('signal', {\r\n type: 'candidate',\r\n candidate: {\r\n candidate: event.candidate.candidate,\r\n sdpMLineIndex: event.candidate.sdpMLineIndex,\r\n sdpMid: event.candidate.sdpMid\r\n }\r\n })\r\n } else if (!event.candidate && !this._iceComplete) {\r\n this._iceComplete = true\r\n this.emit('_iceComplete')\r\n }\r\n // as soon as we've received one valid candidate start timeout\r\n if (event.candidate) {\r\n this._startIceCompleteTimeout()\r\n }\r\n }\r\n\r\n _onChannelMessage (event) {\r\n if (this.destroyed) return\r\n let data = event.data\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data)\r\n } else if (this.__objectMode === false) {\r\n data = text2arr(data)\r\n }\r\n this.push(data)\r\n }\r\n\r\n _onChannelBufferedAmountLow () {\r\n if (this.destroyed || !this._cb) return\r\n this._debug('ending backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n _onChannelOpen () {\r\n if (this._connected || this.destroyed) return\r\n this._debug('on channel open')\r\n this._channelReady = true\r\n this._maybeReady()\r\n }\r\n\r\n _onChannelClose () {\r\n if (this.destroyed) return\r\n this._debug('on channel close')\r\n this.__destroy()\r\n }\r\n\r\n _debug () {\r\n const args = [].slice.call(arguments)\r\n args[0] = '[' + this._id + '] ' + args[0]\r\n Debug.apply(null, args)\r\n }\r\n}\r\n\r\nPeer.WEBRTC_SUPPORT = !!RTCPeerConnection\r\n\r\n/**\r\n * Expose peer and data channel config for overriding all Peer\r\n * instances. Otherwise, just set opts.config or opts.channelConfig\r\n * when constructing a Peer.\r\n */\r\nPeer.config = {\r\n iceServers: [\r\n {\r\n urls: [\r\n 'stun:stun.l.google.com:19302',\r\n 'stun:global.stun.twilio.com:3478'\r\n ]\r\n }\r\n ],\r\n sdpSemantics: 'unified-plan'\r\n}\r\n\r\nPeer.channelConfig = {}\r\n\r\nexport default Peer\r\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","const scope = typeof window !== 'undefined' ? window : self\r\n\r\n// @ts-ignore\r\nexport const RTCPeerConnection = scope.RTCPeerConnection || scope.mozRTCPeerConnection || scope.webkitRTCPeerConnection\r\n// @ts-ignore\r\nexport const RTCSessionDescription = scope.RTCSessionDescription || scope.mozRTCSessionDescription || scope.webkitRTCSessionDescription\r\n// @ts-ignore\r\nexport const RTCIceCandidate = scope.RTCIceCandidate || scope.mozRTCIceCandidate || scope.webkitRTCIceCandidate\r\nexport const RTCIceTransport = scope.RTCIceTransport\r\nexport const RTCDataChannel = scope.RTCDataChannel\r\nexport const RTCSctpTransport = scope.RTCSctpTransport\r\nexport const RTCDtlsTransport = scope.RTCDtlsTransport\r\nexport const RTCCertificate = scope.RTCCertificate\r\nexport const MediaStream = scope.MediaStream\r\nexport const MediaStreamTrack = scope.MediaStreamTrack\r\nexport const MediaStreamTrackEvent = scope.MediaStreamTrackEvent\r\nexport const RTCPeerConnectionIceEvent = scope.RTCPeerConnectionIceEvent\r\nexport const RTCDataChannelEvent = scope.RTCDataChannelEvent\r\nexport const RTCTrackEvent = scope.RTCTrackEvent\r\nexport const RTCError = scope.RTCError\r\nexport const RTCErrorEvent = scope.RTCErrorEvent\r\nexport const RTCRtpTransceiver = scope.RTCRtpTransceiver\r\nexport const RTCRtpReceiver = scope.RTCRtpReceiver\r\nexport const RTCRtpSender = scope.RTCRtpSender\r\n\r\nexport * as default from './browser.js'\r\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst queueTick = require('queue-tick')\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ WRITE_FINISHING\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = (stream._duplexState | WRITE_ACTIVE) & WRITE_NOT_FINISHING\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTick()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTick()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = typeof queueMicrotask === 'function' ? queueMicrotask : (fn) => Promise.resolve().then(fn)\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","module.exports = class BrowserDecoder {\n constructor (encoding) {\n this.decoder = new TextDecoder(encoding === 'utf16le' ? 'utf16-le' : encoding)\n }\n\n get remaining () {\n return -1\n }\n\n decode (data) {\n return this.decoder.decode(data, { stream: true })\n }\n\n flush () {\n return this.decoder.decode(new Uint8Array(0))\n }\n}\n","'use strict';\n\n/**\n * @typedef {{ [key: string]: any }} Extensions\n * @typedef {Error} Err\n * @property {string} message\n */\n\n/**\n *\n * @param {Error} obj\n * @param {Extensions} props\n * @returns {Error & Extensions}\n */\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\n/**\n *\n * @param {any} err - An Error\n * @param {string|Extensions} code - A string code or props to set on the error\n * @param {Extensions} [props] - Props to set on the error\n * @returns {Error & Extensions}\n */\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = '';\n }\n\n if (code) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n // @ts-ignore\n const output = assign(new ErrClass(), props);\n\n return output;\n }\n}\n\nmodule.exports = createError;\n","import { arr2hex, hex2arr, alphabet } from './util.js'\r\nimport { decode, encode } from 'base64-arraybuffer'\r\n\r\nconst decoder = new TextDecoder()\r\n// 50% slower at < 48 chars, but little impact at 4M OPS/s vs 8M OPS/s\r\nexport const arr2text = (data, enc) => {\r\n if (!enc) return decoder.decode(data)\r\n const dec = new TextDecoder(enc)\r\n return dec.decode(data)\r\n}\r\n\r\n// sacrifice ~20% speed for bundle size\r\nconst encoder = new TextEncoder()\r\nexport const text2arr = str => encoder.encode(str)\r\n\r\nexport const arr2base = data => encode(data)\r\n\r\nexport const base2arr = str => new Uint8Array(decode(str))\r\n\r\nexport const bin2hex = str => {\r\n let res = ''\r\n let c\r\n let i = 0\r\n const len = str.length\r\n\r\n while (i < len) {\r\n c = str.charCodeAt(i++)\r\n res += alphabet[c >> 4] + alphabet[c & 0xF]\r\n }\r\n\r\n return res\r\n}\r\n\r\nconst MAX_ARGUMENTS_LENGTH = 0x10000\r\nexport const hex2bin = hex => {\r\n const points = hex2arr(hex)\r\n if (points.length <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode(...points)\r\n\r\n let res = ''\r\n let i = 0\r\n while (i < points.length) {\r\n res += String.fromCharCode(...points.subarray(i, i += MAX_ARGUMENTS_LENGTH))\r\n }\r\n return res\r\n}\r\n\r\nconst scope = typeof window !== 'undefined' ? window : self\r\nconst crypto = scope.crypto || scope.msCrypto || {}\r\nconst subtle = crypto.subtle || crypto.webkitSubtle\r\n\r\nconst formatMap = {\r\n hex: arr2hex,\r\n base64: arr2base\r\n}\r\n\r\nexport const hash = async (data, format, algo = 'sha-1') => {\r\n if (!subtle) throw new Error('no web crypto support')\r\n if (typeof data === 'string') data = text2arr(data)\r\n const out = new Uint8Array(await subtle.digest(algo, data))\r\n return format ? formatMap[format](out) : out\r\n}\r\n\r\nexport const randomBytes = size => {\r\n const view = new Uint8Array(size)\r\n return crypto.getRandomValues(view)\r\n}\r\n\r\nexport * from './util.js'\r\n","/* Common package for dealing with hex/string/uint8 conversions (and sha1 hashing)\r\n*\r\n* @author Jimmy Wärting (https://jimmy.warting.se/opensource)\r\n* @license MIT\r\n*/\r\nexport const alphabet = '0123456789abcdef'\r\nconst encodeLookup = []\r\nconst decodeLookup = []\r\n\r\nfor (let i = 0; i < 256; i++) {\r\n encodeLookup[i] = alphabet[i >> 4 & 0xf] + alphabet[i & 0xf]\r\n if (i < 16) {\r\n if (i < 10) {\r\n decodeLookup[0x30 + i] = i\r\n } else {\r\n decodeLookup[0x61 - 10 + i] = i\r\n }\r\n }\r\n}\r\n\r\nexport const arr2hex = data => {\r\n const length = data.length\r\n let string = ''\r\n let i = 0\r\n while (i < length) {\r\n string += encodeLookup[data[i++]]\r\n }\r\n return string\r\n}\r\n\r\nexport const hex2arr = str => {\r\n const sizeof = str.length >> 1\r\n const length = sizeof << 1\r\n const array = new Uint8Array(sizeof)\r\n let n = 0\r\n let i = 0\r\n while (i < length) {\r\n array[n++] = decodeLookup[str.charCodeAt(i++)] << 4 | decodeLookup[str.charCodeAt(i++)]\r\n }\r\n return array\r\n}\r\n\r\nexport const concat = (chunks, size = 0) => {\r\n const length = chunks.length || 0\r\n if (!size) {\r\n let i = length\r\n while (i--) size += chunks[i].length\r\n }\r\n const b = new Uint8Array(size)\r\n let offset = size\r\n let i = length\r\n while (i--) {\r\n offset -= chunks[i].length\r\n b.set(chunks[i], offset)\r\n }\r\n\r\n return b\r\n}\r\n\r\nexport const equal = (a, b) => {\r\n if (a.length !== b.length) return false\r\n for (let i = a.length; i > -1; i -= 1) {\r\n if ((a[i] !== b[i])) return false\r\n }\r\n return true\r\n}\r\n","/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {\n all,\n alloc,\n decodeBytes,\n encodeBytes,\n entries,\n fromEntries,\n fromJson,\n isBrowser,\n keys,\n libName,\n mkErr,\n noOp,\n toJson\n} from './utils.js'\n\nconst TypedArray = Object.getPrototypeOf(Uint8Array)\nconst typeByteLimit = 12\nconst typeIndex = 0\nconst nonceIndex = typeIndex + typeByteLimit\nconst tagIndex = nonceIndex + 1\nconst progressIndex = tagIndex + 1\nconst payloadIndex = progressIndex + 1\nconst chunkSize = 16 * 2 ** 10 - payloadIndex\nconst oneByteMax = 0xff\nconst buffLowEvent = 'bufferedamountlow'\nconst internalNs = ns => '@_' + ns\n\nexport default (onPeer, onPeerLeave, onSelfLeave) => {\n const peerMap = {}\n const actions = {}\n const actionsCache = {}\n const pendingTransmissions = {}\n const pendingPongs = {}\n const pendingStreamMetas = {}\n const pendingTrackMetas = {}\n const listeners = {\n onPeerJoin: noOp,\n onPeerLeave: noOp,\n onPeerStream: noOp,\n onPeerTrack: noOp\n }\n\n const iterate = (targets, f) =>\n (targets\n ? Array.isArray(targets)\n ? targets\n : [targets]\n : keys(peerMap)\n ).flatMap(id => {\n const peer = peerMap[id]\n\n if (!peer) {\n console.warn(`${libName}: no peer with id ${id} found`)\n return []\n }\n\n return f(id, peer)\n })\n\n const exitPeer = id => {\n if (!peerMap[id]) {\n return\n }\n\n delete peerMap[id]\n delete pendingTransmissions[id]\n delete pendingPongs[id]\n listeners.onPeerLeave(id)\n onPeerLeave(id)\n }\n\n const makeAction = type => {\n if (actions[type]) {\n return actionsCache[type]\n }\n\n if (!type) {\n throw mkErr('action type argument is required')\n }\n\n const typeBytes = encodeBytes(type)\n\n if (typeBytes.byteLength > typeByteLimit) {\n throw mkErr(\n `action type string \"${type}\" (${typeBytes.byteLength}b) exceeds ` +\n `byte limit (${typeByteLimit}). Hint: choose a shorter name.`\n )\n }\n\n const typeBytesPadded = new Uint8Array(typeByteLimit)\n typeBytesPadded.set(typeBytes)\n\n let nonce = 0\n\n actions[type] = {\n onComplete: noOp,\n onProgress: noOp,\n\n setOnComplete: f => (actions[type] = {...actions[type], onComplete: f}),\n\n setOnProgress: f => (actions[type] = {...actions[type], onProgress: f}),\n\n send: async (data, targets, meta, onProgress) => {\n if (meta && typeof meta !== 'object') {\n throw mkErr('action meta argument must be an object')\n }\n\n const dataType = typeof data\n\n if (dataType === 'undefined') {\n throw mkErr('action data cannot be undefined')\n }\n\n const isJson = dataType !== 'string'\n const isBlob = data instanceof Blob\n const isBinary =\n isBlob || data instanceof ArrayBuffer || data instanceof TypedArray\n\n if (meta && !isBinary) {\n throw mkErr('action meta argument can only be used with binary data')\n }\n\n const buffer = isBinary\n ? new Uint8Array(isBlob ? await data.arrayBuffer() : data)\n : encodeBytes(isJson ? toJson(data) : data)\n\n const metaEncoded = meta ? encodeBytes(toJson(meta)) : null\n\n const chunkTotal =\n Math.ceil(buffer.byteLength / chunkSize) + (meta ? 1 : 0) || 1\n\n const chunks = alloc(chunkTotal, (_, i) => {\n const isLast = i === chunkTotal - 1\n const isMeta = meta && i === 0\n const chunk = new Uint8Array(\n payloadIndex +\n (isMeta\n ? metaEncoded.byteLength\n : isLast\n ? buffer.byteLength -\n chunkSize * (chunkTotal - (meta ? 2 : 1))\n : chunkSize)\n )\n\n chunk.set(typeBytesPadded)\n chunk.set([nonce], nonceIndex)\n chunk.set(\n [isLast | (isMeta << 1) | (isBinary << 2) | (isJson << 3)],\n tagIndex\n )\n chunk.set(\n [Math.round(((i + 1) / chunkTotal) * oneByteMax)],\n progressIndex\n )\n chunk.set(\n meta\n ? isMeta\n ? metaEncoded\n : buffer.subarray((i - 1) * chunkSize, i * chunkSize)\n : buffer.subarray(i * chunkSize, (i + 1) * chunkSize),\n payloadIndex\n )\n\n return chunk\n })\n\n nonce = (nonce + 1) & oneByteMax\n\n return all(\n iterate(targets, async (id, peer) => {\n const {channel} = peer\n let chunkN = 0\n\n while (chunkN < chunkTotal) {\n const chunk = chunks[chunkN]\n\n if (channel.bufferedAmount > channel.bufferedAmountLowThreshold) {\n await new Promise(res => {\n const next = () => {\n channel.removeEventListener(buffLowEvent, next)\n res()\n }\n\n channel.addEventListener(buffLowEvent, next)\n })\n }\n\n if (!peerMap[id]) {\n break\n }\n\n peer.sendData(chunk)\n chunkN++\n onProgress?.(chunk[progressIndex] / oneByteMax, id, meta)\n }\n })\n )\n }\n }\n\n return (actionsCache[type] ||= [\n actions[type].send,\n actions[type].setOnComplete,\n actions[type].setOnProgress\n ])\n }\n\n const handleData = (id, data) => {\n const buffer = new Uint8Array(data)\n const type = decodeBytes(buffer.subarray(typeIndex, nonceIndex)).replaceAll(\n '\\x00',\n ''\n )\n const [nonce] = buffer.subarray(nonceIndex, tagIndex)\n const [tag] = buffer.subarray(tagIndex, progressIndex)\n const [progress] = buffer.subarray(progressIndex, payloadIndex)\n const payload = buffer.subarray(payloadIndex)\n const isLast = !!(tag & 1)\n const isMeta = !!(tag & (1 << 1))\n const isBinary = !!(tag & (1 << 2))\n const isJson = !!(tag & (1 << 3))\n\n if (!actions[type]) {\n console.warn(\n `${libName}: received message with unregistered type (${type})`\n )\n return\n }\n\n pendingTransmissions[id] ||= {}\n pendingTransmissions[id][type] ||= {}\n\n const target = (pendingTransmissions[id][type][nonce] ||= {chunks: []})\n\n if (isMeta) {\n target.meta = fromJson(decodeBytes(payload))\n } else {\n target.chunks.push(payload)\n }\n\n actions[type].onProgress(progress / oneByteMax, id, target.meta)\n\n if (!isLast) {\n return\n }\n\n const full = new Uint8Array(\n target.chunks.reduce((a, c) => a + c.byteLength, 0)\n )\n\n target.chunks.reduce((a, c) => {\n full.set(c, a)\n return a + c.byteLength\n }, 0)\n\n delete pendingTransmissions[id][type][nonce]\n\n if (isBinary) {\n actions[type].onComplete(full, id, target.meta)\n } else {\n const text = decodeBytes(full)\n actions[type].onComplete(isJson ? fromJson(text) : text, id)\n }\n }\n\n const leave = async () => {\n await sendLeave('')\n await new Promise(res => setTimeout(res, 99))\n entries(peerMap).forEach(([id, peer]) => {\n peer.destroy()\n delete peerMap[id]\n })\n onSelfLeave()\n }\n\n const [sendPing, getPing] = makeAction(internalNs('ping'))\n const [sendPong, getPong] = makeAction(internalNs('pong'))\n const [sendSignal, getSignal] = makeAction(internalNs('signal'))\n const [sendStreamMeta, getStreamMeta] = makeAction(internalNs('stream'))\n const [sendTrackMeta, getTrackMeta] = makeAction(internalNs('track'))\n const [sendLeave, getLeave] = makeAction(internalNs('leave'))\n\n onPeer((peer, id) => {\n if (peerMap[id]) {\n return\n }\n\n peerMap[id] = peer\n\n peer.setHandlers({\n data: d => handleData(id, d),\n stream: stream => {\n listeners.onPeerStream(stream, id, pendingStreamMetas[id])\n delete pendingStreamMetas[id]\n },\n track: (track, stream) => {\n listeners.onPeerTrack(track, stream, id, pendingTrackMetas[id])\n delete pendingTrackMetas[id]\n },\n signal: sdp => sendSignal(sdp, id),\n close: () => exitPeer(id),\n error: () => exitPeer(id)\n })\n\n listeners.onPeerJoin(id)\n peer.drainEarlyData?.(d => handleData(id, d))\n })\n\n getPing((_, id) => sendPong('', id))\n\n getPong((_, id) => {\n pendingPongs[id]?.()\n delete pendingPongs[id]\n })\n\n getSignal((sdp, id) => peerMap[id]?.signal(sdp))\n\n getStreamMeta((meta, id) => (pendingStreamMetas[id] = meta))\n\n getTrackMeta((meta, id) => (pendingTrackMetas[id] = meta))\n\n getLeave((_, id) => exitPeer(id))\n\n if (isBrowser) {\n addEventListener('beforeunload', leave)\n }\n\n return {\n makeAction,\n\n leave,\n\n ping: async id => {\n if (!id) {\n throw mkErr('ping() must be called with target peer ID')\n }\n\n const start = Date.now()\n\n sendPing('', id)\n await new Promise(res => (pendingPongs[id] = res))\n return Date.now() - start\n },\n\n getPeers: () =>\n fromEntries(entries(peerMap).map(([id, peer]) => [id, peer.connection])),\n\n addStream: (stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendStreamMeta(meta, id)\n }\n\n peer.addStream(stream)\n }),\n\n removeStream: (stream, targets) =>\n iterate(targets, (_, peer) => peer.removeStream(stream)),\n\n addTrack: (track, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.addTrack(track, stream)\n }),\n\n removeTrack: (track, stream, targets) =>\n iterate(targets, (_, peer) => peer.removeTrack(track, stream)),\n\n replaceTrack: (oldTrack, newTrack, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.replaceTrack(oldTrack, newTrack, stream)\n }),\n\n onPeerJoin: f => (listeners.onPeerJoin = f),\n\n onPeerLeave: f => (listeners.onPeerLeave = f),\n\n onPeerStream: f => (listeners.onPeerStream = f),\n\n onPeerTrack: f => (listeners.onPeerTrack = f)\n }\n}\n","export {getRelaySockets, joinRoom, selfId} from './nostr.js'\n","import {schnorr} from '@noble/curves/secp256k1'\nimport strategy from './strategy.js'\nimport {\n encodeBytes,\n fromJson,\n genId,\n getRelays,\n isBrowser,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toHex,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst defaultRedundancy = 5\nconst kind = 29333\nconst tag = 'x'\nconst eventMsgType = 'EVENT'\nconst privateKey = isBrowser && schnorr.utils.randomPrivateKey()\nconst publicKey = isBrowser && toHex(schnorr.getPublicKey(privateKey))\nconst subIdToTopic = {}\nconst msgHandlers = {}\n\nconst now = () => Math.floor(Date.now() / 1000)\n\nconst createEvent = async (topic, content) => {\n const payload = {\n kind,\n content,\n pubkey: publicKey,\n created_at: now(),\n tags: [[tag, topic]]\n }\n\n const id = toHex(\n new Uint8Array(\n await crypto.subtle.digest(\n 'SHA-256',\n encodeBytes(\n toJson([\n 0,\n payload.pubkey,\n payload.created_at,\n payload.kind,\n payload.tags,\n payload.content\n ])\n )\n )\n )\n )\n\n return toJson([\n eventMsgType,\n {\n ...payload,\n id,\n sig: toHex(await schnorr.sign(id, privateKey))\n }\n ])\n}\n\nconst subscribe = (subId, topic) => {\n subIdToTopic[subId] = topic\n return toJson([\n 'REQ',\n subId,\n {\n kinds: [kind],\n since: now(),\n ['#' + tag]: [topic]\n }\n ])\n}\n\nconst unsubscribe = subId => {\n delete subIdToTopic[subId]\n return toJson(['CLOSE', subId])\n}\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(url => {\n const client = makeSocket(url, data => {\n const [msgType, subId, payload, relayMsg] = fromJson(data)\n\n if (msgType !== eventMsgType) {\n const prefix = `${libName}: relay failure from ${client.url} - `\n\n if (msgType === 'NOTICE') {\n console.warn(prefix + subId)\n } else if (msgType === 'OK' && !payload) {\n console.warn(prefix + relayMsg)\n }\n return\n }\n\n msgHandlers[subId]?.(subIdToTopic[subId], payload.content)\n })\n\n clients[url] = client\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, selfTopic, onMessage) => {\n const rootSubId = genId(64)\n const selfSubId = genId(64)\n\n msgHandlers[rootSubId] = msgHandlers[selfSubId] = (topic, data) =>\n onMessage(topic, data, async (peerTopic, signal) =>\n client.send(await createEvent(peerTopic, signal))\n )\n\n client.send(subscribe(rootSubId, rootTopic))\n client.send(subscribe(selfSubId, selfTopic))\n\n return () => {\n client.send(unsubscribe(rootSubId))\n client.send(unsubscribe(selfSubId))\n delete msgHandlers[rootSubId]\n delete msgHandlers[selfSubId]\n }\n },\n\n announce: async (client, rootTopic) =>\n client.send(await createEvent(rootTopic, toJson({peerId: selfId})))\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'relay.nostr.net',\n 'relay.snort.social',\n 'relay.piazza.today',\n 'relay.exit.pub',\n 'nostr.lu.ke',\n 'nostr.mom',\n 'relay.urbanzap.space',\n 'nostr.data.haus',\n 'nostr.sathoarder.com',\n 'relay.nostromo.social',\n 'relay.nostr.bg',\n 'nostr.stakey.net',\n 'nostr.vulpem.com',\n 'a.nos.lol',\n 'eu.purplerelay.com',\n 'nostr2.sanhauf.com',\n 'e.nos.lol'\n].map(url => 'wss://' + url)\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst _shortw_utils_js_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_js_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_js_1 = require(\"./abstract/modular.js\");\nconst utils_js_1 = require(\"./abstract/utils.js\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_js_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_js_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_js_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_js_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_js_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_js_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_js_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_js_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_js_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_js_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_js_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_js_1.pow2)(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = (0, modular_js_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexports.secp256k1 = (0, _shortw_utils_js_1.createCurve)({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = (0, modular_js_1.mod)(k - c1 * a1 - c2 * a2, n);\n let k2 = (0, modular_js_1.mod)(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = (0, utils_js_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha256_1.sha256)((0, utils_js_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => (0, utils_js_1.numberToBytesBE)(n, 32);\nconst modP = (x) => (0, modular_js_1.mod)(x, secp256k1P);\nconst modN = (x) => (0, modular_js_1.mod)(x, secp256k1N);\nconst Point = exports.secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n (0, utils_js_1.aInRange)('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = utils_js_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) {\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = (0, utils_js_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = (0, utils_js_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const pub = (0, utils_js_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_js_1.inRange)(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_js_1.inRange)(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n */\nexports.schnorr = (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_js_1.numberToBytesBE,\n bytesToNumberBE: utils_js_1.bytesToNumberBE,\n taggedHash,\n mod: modular_js_1.mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.isogenyMap)(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256_1.sha256,\n}))();\nexports.hashToCurve = (() => htf.hashToCurve)();\nexports.encodeToCurve = (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport {\n inRange,\n aInRange,\n bytesToNumberBE,\n concatBytes,\n ensureBytes,\n numberToBytesBE,\n} from './abstract/utils.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexport const secp256k1 = createCurve(\n {\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k: bigint) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg) k1 = n - k1;\n if (k2neg) k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n },\n sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType, a: bigint, b: bigint) =>\n Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n) y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(\n message: Hex,\n privateKey: PrivKey,\n auxRand: Hex = randomBytes(32)\n): Uint8Array {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n) throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P)) return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N)) return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r) return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Schnorr signatures over secp256k1.\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n isogenyMap(\n Fp,\n [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n }))();\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n secp256k1.ProjectivePoint,\n (scalars: bigint[]) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n },\n {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = exports.SHA256 = void 0;\nconst _md_js_1 = require(\"./_md.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_js_1.HashMD {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_js_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_js_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\nexports.SHA256 = SHA256;\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashMD = exports.Maj = exports.Chi = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\nexports.Chi = Chi;\n/**\n * Majority function, true if any two inputs is true\n */\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\nexports.Maj = Maj;\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n (0, _assert_js_1.exists)(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.output)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.HashMD = HashMD;\n//# sourceMappingURL=_md.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBytes = isBytes;\nexports.number = number;\nexports.bool = bool;\nexports.bytes = bytes;\nexports.hash = hash;\nexports.exists = exists;\nexports.output = output;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = { number, bool, bytes, hash, exists, output };\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.byteSwap = exports.isLE = exports.rotl = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\nexports.isBytes = isBytes;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\nconst _assert_js_1 = require(\"./_assert.js\");\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexports.rotl = rotl;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nconst byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\nexports.byteSwap = byteSwap;\n// Conditionally byte swap if on a big-endian platform\nexports.byteSwapIfBE = exports.isLE ? (n) => n : (n) => (0, exports.byteSwap)(n);\n// In place byte swap for Uint32Array\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = (0, exports.byteSwap)(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n (0, _assert_js_1.bytes)(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n (0, _assert_js_1.bytes)(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n (0, _assert_js_1.bytes)(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nconst toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return crypto_1.crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)),\n randomBytes: utils_1.randomBytes,\n };\n}\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_js_1.weierstrass)({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { CHash } from './abstract/utils.js';\nimport { CurveType, weierstrass } from './abstract/weierstrass.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n return {\n hash,\n hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, _assert_js_1.hash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n (0, _assert_js_1.exists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.bytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC> extends Hash> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to?: HMAC): HMAC {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = void 0;\nexports.weierstrassPoints = weierstrassPoints;\nexports.weierstrass = weierstrass;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nconst curve_js_1 = require(\"./curve.js\");\nconst mod = require(\"./modular.js\");\nconst ut = require(\"./utils.js\");\nconst utils_js_1 = require(\"./utils.js\");\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n (0, utils_js_1.abool)('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n (0, utils_js_1.abool)('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected assertion');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE((0, utils_js_1.ensureBytes)('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = (0, utils_js_1.memoized)((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_js_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes((0, utils_js_1.ensureBytes)('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return (0, curve_js_1.pippenger)(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (sc === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, sc);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = (0, curve_js_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nfunction weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = (0, utils_js_1.ensureBytes)('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = exports.DER.toSig((0, utils_js_1.ensureBytes)('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN((0, utils_js_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return exports.DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = (0, utils_js_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push((0, utils_js_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n publicKey = (0, utils_js_1.ensureBytes)('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport {\n AffinePoint,\n BasicCurve,\n Group,\n GroupConstructor,\n validateBasic,\n wNAF,\n pippenger,\n} from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes, memoized, abool } from './utils.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n beta: bigint;\n splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve = BasicCurve & {\n // Params: a, b\n a: T;\n b: T;\n\n // Optional params\n allowedPrivateKeyLengths?: readonly number[]; // for P521\n wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n // When a cofactor != 1, there can be an effective methods to:\n // 1. Determine whether a point is torsion-free\n isTorsionFree?: (c: ProjConstructor, point: ProjPointType) => boolean;\n // 2. Clear torsion component\n clearCofactor?: (c: ProjConstructor, point: ProjPointType) => ProjPointType;\n};\n\ntype Entropy = Hex | boolean;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\nfunction validateSigVerOpts(opts: SignOpts | VerOpts) {\n if (opts.lowS !== undefined) abool('lowS', opts.lowS);\n if (opts.prehash !== undefined) abool('prehash', opts.prehash);\n}\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType extends Group> {\n readonly px: T;\n readonly py: T;\n readonly pz: T;\n get x(): T;\n get y(): T;\n multiply(scalar: bigint): ProjPointType;\n toAffine(iz?: T): AffinePoint;\n isTorsionFree(): boolean;\n clearCofactor(): ProjPointType;\n assertValidity(): void;\n hasEvenY(): boolean;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n\n multiplyUnsafe(scalar: bigint): ProjPointType;\n multiplyAndAddUnsafe(Q: ProjPointType, a: bigint, b: bigint): ProjPointType | undefined;\n _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor extends GroupConstructor> {\n new (x: T, y: T, z: T): ProjPointType;\n fromAffine(p: AffinePoint): ProjPointType;\n fromHex(hex: Hex): ProjPointType;\n fromPrivateKey(privateKey: PrivKey): ProjPointType;\n normalizeZ(points: ProjPointType[]): ProjPointType[];\n msm(points: ProjPointType[], scalars: bigint[]): ProjPointType;\n}\n\nexport type CurvePointsType = BasicWCurve & {\n // Bytes\n fromBytes?: (bytes: Uint8Array) => AffinePoint;\n toBytes?: (c: ProjConstructor, point: ProjPointType, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts(curve: CurvePointsType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n a: 'field',\n b: 'field',\n },\n {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n }\n );\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (\n typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function'\n ) {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes = {\n CURVE: ReturnType>;\n ProjectivePoint: ProjConstructor;\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n weierstrassEquation: (x: T) => T;\n isWithinCurveOrder: (num: bigint) => boolean;\n};\n\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag: number, data: string) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length & 1) throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 0b1000_0000) throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 0b1000_0000) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array } {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag) throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 0b1000_0000); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong) length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 0b0111_1111;\n if (!lenLen) throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4) throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen) throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0) throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes) length = (length << 8) | b;\n pos += lenLen;\n if (length < 128) throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length) throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num: bigint) {\n const { Err: E } = DER;\n if (num < _0n) throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000) hex = '00' + hex;\n if (hex.length & 1) throw new E('unexpected assertion');\n return hex;\n },\n decode(data: Uint8Array): bigint {\n const { Err: E } = DER;\n if (data[0] & 0b1000_0000) throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 0b1000_0000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig: { r: bigint; s: bigint }): string {\n const { _tlv: tlv, _int: int } = DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function weierstrassPoints(opts: CurvePointsType): CurvePointsRes {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n\n const toBytes =\n CURVE.toBytes ||\n ((_c: ProjConstructor, point: ProjPointType, _isCompressed: boolean) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes =\n CURVE.fromBytes ||\n ((bytes: Uint8Array) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x: T): T {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num: bigint): boolean {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key: PrivKey): bigint {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key)) key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num: bigint;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey) num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n\n function assertPrjPoint(other: unknown) {\n if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n }\n\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p: Point, iz?: T): AffinePoint => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE)) return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p: Point) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py)) return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point implements ProjPointType {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n constructor(\n readonly px: T,\n readonly py: T,\n readonly pz: T\n ) {\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n Object.freeze(this);\n }\n\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p: AffinePoint): Point {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n const is0 = (i: T) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n\n get x(): T {\n return this.toAffine().x;\n }\n get y(): T {\n return this.toAffine().y;\n }\n\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points: Point[]): Point[] {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex: Hex): Point {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey: PrivKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n\n // Multiscalar Multiplication\n static msm(points: Point[], scalars: bigint[]) {\n return pippenger(Point, Fn, points, scalars);\n }\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n wnaf.setWindowSize(this, windowSize);\n }\n\n // A point on curve is valid if it conforms to equation.\n assertValidity(): void {\n assertValidMemo(this);\n }\n\n hasEvenY(): boolean {\n const { y } = this.toAffine();\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n\n /**\n * Compare one point to another.\n */\n equals(other: Point): boolean {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate(): Point {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other: Point): Point {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n\n subtract(other: Point) {\n return this.add(other.negate());\n }\n\n is0() {\n return this.equals(Point.ZERO);\n }\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc: bigint): Point {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n) return I;\n if (sc === _1n) return this;\n const { endo } = CURVE;\n if (!endo) return wnaf.unsafeLadder(this, sc);\n\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d: Point = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n) k1p = k1p.add(d);\n if (k2 & _1n) k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg) k1p = k1p.negate();\n if (k2neg) k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar: bigint): Point {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point: Point, fake: Point; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n } else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (\n P: Point,\n a: bigint // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz?: T): AffinePoint {\n return toAffineMemo(this, iz);\n }\n isTorsionFree(): boolean {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n) return true; // No subgroups, always torsion-free\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor(): Point {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n) return this; // Fast-path\n if (clearCofactor) return clearCofactor(Point, this) as Point;\n return this.multiplyUnsafe(CURVE.h);\n }\n\n toRawBytes(isCompressed = true): Uint8Array {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n\n toHex(isCompressed = true): string {\n abool('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point as ProjConstructor,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\n\n// Instance\nexport interface SignatureType {\n readonly r: bigint;\n readonly s: bigint;\n readonly recovery?: number;\n assertValidity(): void;\n addRecoveryBit(recovery: number): RecoveredSignatureType;\n hasHighS(): boolean;\n normalizeS(): SignatureType;\n recoverPublicKey(msgHash: Hex): ProjPointType;\n toCompactRawBytes(): Uint8Array;\n toCompactHex(): string;\n // DER-encoded\n toDERRawBytes(isCompressed?: boolean): Uint8Array;\n toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n new (r: bigint, s: bigint): SignatureType;\n fromCompact(hex: Hex): SignatureType;\n fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType;\n\nexport type CurveType = BasicWCurve & {\n hash: CHash; // CHash not FHash because we need outputLen for DRBG\n hmac: HmacFnSync;\n randomBytes: (bytesLength?: number) => Uint8Array;\n lowS?: boolean;\n bits2int?: (bytes: Uint8Array) => bigint;\n bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n },\n {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n }\n );\n return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n CURVE: ReturnType;\n getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n ProjectivePoint: ProjConstructor;\n Signature: SignatureConstructor;\n utils: {\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n isValidPrivateKey(privateKey: PrivKey): boolean;\n randomPrivateKey: () => Uint8Array;\n precompute: (windowSize?: number, point?: ProjPointType) => ProjPointType;\n };\n};\n\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType;\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n function modN(a: bigint) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a: bigint) {\n return mod.invert(a, CURVE_ORDER);\n }\n\n const {\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed: boolean): Uint8Array {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes: Uint8Array) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER)) throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y: bigint;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n } catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return { x, y };\n } else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n } else {\n throw new Error(\n `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n );\n }\n },\n });\n const numToNByteStr = (num: bigint): string =>\n ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n function isBiggerThanHalfOrder(number: bigint) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n\n function normalizeS(s: bigint) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature implements SignatureType {\n constructor(\n readonly r: bigint,\n readonly s: bigint,\n readonly recovery?: number\n ) {\n this.assertValidity();\n }\n\n // pair (bytes of r, bytes of s)\n static fromCompact(hex: Hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex: Hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n\n assertValidity(): void {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n\n addRecoveryBit(recovery: number): RecoveredSignature {\n return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n }\n\n recoverPublicKey(msgHash: Hex): typeof Point.BASE {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n\n // Signatures should be low-s, to prevent malleability.\n hasHighS(): boolean {\n return isBiggerThanHalfOrder(this.s);\n }\n\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n type RecoveredSignature = Signature & { recovery: number };\n\n const utils = {\n isValidPrivateKey(privateKey: PrivKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: (): Uint8Array => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey: PrivKey, isCompressed = true): Uint8Array {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item: PrivKey | PubKey): boolean {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && (item as Hex).length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\n\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int =\n CURVE.bits2int ||\n function (bytes: Uint8Array): bigint {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN =\n CURVE.bits2int_modN ||\n function (bytes: Uint8Array): bigint {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num: bigint): Uint8Array {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash: Hex, privateKey: PrivKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n) return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n) return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(\n signature: Hex | SignatureLike,\n msgHash: Hex,\n publicKey: Hex,\n opts = defaultVerOpts\n ): boolean {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n\n let _sig: Signature | undefined = undefined;\n let P: ProjPointType;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\n }\n } else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n } else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n } catch (error) {\n if ((error as Error).message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS()) return false;\n if (prehash) msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R) return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp: mod.IField, Z: T) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u: T, v: T) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(\n Fp: mod.IField,\n opts: {\n A: T;\n B: T;\n Z: T;\n }\n) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd) throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u: T): { x: T; y: T } => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = wNAF;\nexports.pippenger = pippenger;\nexports.validateBasic = validateBasic;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, n, transform) {\n const W = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nfunction pippenger(c, field, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error(`wrong point at index ${i}`);\n });\n const wbits = (0, utils_js_1.bitLen)(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\nfunction validateBasic(curve) {\n (0, modular_js_1.validateField)(curve.Fp);\n (0, utils_js_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_js_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject, bitLen } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper = (i: T[]) => T[];\n\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF>(c: GroupConstructor, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W: number) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W: number) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm: T, W: number): Group[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n\n let p = c.ZERO;\n let f = c.BASE;\n\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n\n wNAFCached(P: T, n: bigint, transform: Mapper): { p: T; f: T } {\n const W: number = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W) as T[];\n if (W !== 1) pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n\n setWindowSize(P: T, W: number) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger>(\n c: GroupConstructor,\n field: IField,\n points: T[],\n scalars: bigint[]\n): T {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s)) throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof (c as any))) throw new Error(`wrong point at index ${i}`);\n });\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0) for (let j = 0; j < windowSize; j++) sum = sum.double();\n }\n return sum as T;\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve = {\n Fp: IField; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic(curve: BasicCurve & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nconst utils_js_1 = require(\"./utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nfunction invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return (0, utils_js_1.validateObject)(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nfunction FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nfunction FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nfunction FpLegendre(order) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: (0, utils_js_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? (0, utils_js_1.numberToBytesLE)(num, BYTES) : (0, utils_js_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? (0, utils_js_1.bytesToNumberLE)(bytes) : (0, utils_js_1.bytesToNumberBE)(bytes);\n },\n });\n return Object.freeze(f);\n}\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_js_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberLE)(hash) : (0, utils_js_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberBE)(key) : (0, utils_js_1.bytesToNumberLE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_js_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_js_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n numberToBytesBE,\n numberToBytesLE,\n validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n\n let Q: bigint, S: number, Z: bigint;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp: IField, n: T): T {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\n\nexport function FpSqrt(P: bigint) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp: IField, n: T) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField(field: IField) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f: IField, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f: IField, nums: T[]): T[] {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv(f: IField, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\nexport function FpLegendre(order: bigint) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f: IField, x: T): T => f.pow(x, legendreConst);\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f: IField) {\n const legendre = FpLegendre(f.ORDER);\n return (x: T): boolean => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField & Required, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial> = {}\n): Readonly {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.bytesToHex = bytesToHex;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nexport function abytes(item: unknown): void {\n if (!isBytes(item)) throw new Error('Uint8Array expected');\n}\n\nexport function abool(title: string, value: boolean): void {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Is positive bigint\nconst isPosBig = (n: bigint) => typeof n === 'bigint' && _0n <= n;\n\nexport function inRange(n: bigint, min: bigint, max: bigint) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title: string, n: bigint, min: bigint, max: bigint) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn: (arg: T, ...args: O) => R) {\n const map = new WeakMap();\n return (arg: T, ...args: O): R => {\n const val = map.get(arg);\n if (val !== undefined) return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_js_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_js_1.concatBytes)((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_js_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_js_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_js_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_js_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_js_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_js_1.validateObject)(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n (0, utils_js_1.abytes)(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? (0, utils_js_1.utf8ToBytes)(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_js_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nfunction createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport type { AffinePoint, Group, GroupConstructor } from './curve.js';\nimport { IField, mod } from './modular.js';\nimport type { CHash } from './utils.js';\nimport { abytes, bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';\n\n/**\n * * `DST` is a domain separation tag, defined in section 2.2.5\n * * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m\n * * `m` is extension degree (1 for prime fields)\n * * `k` is the target security target in bits (e.g. 128), from section 5.1\n * * `expand` is `xmd` (SHA2, SHA3, BLAKE) or `xof` (SHAKE, BLAKE-XOF)\n * * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props\n */\ntype UnicodeOrBytes = string | Uint8Array;\nexport type Opts = {\n DST: UnicodeOrBytes;\n p: bigint;\n m: number;\n k: number;\n expand: 'xmd' | 'xof';\n hash: CHash;\n};\n\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value: number, length: number): Uint8Array {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0) as number[];\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\n\nfunction strxor(a: Uint8Array, b: Uint8Array): Uint8Array {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\n\nfunction anum(item: unknown): void {\n if (!Number.isSafeInteger(item)) throw new Error('number expected');\n}\n\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nexport function expand_message_xmd(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255) DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255) throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nexport function expand_message_xof(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n k: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (\n H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest()\n );\n}\n\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg: Uint8Array, count: number, options: Opts): bigint[][] {\n validateObject(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n abytes(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? utf8ToBytes(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n } else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n } else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n } else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\n\nexport function isogenyMap>(field: F, map: [T[], T[], T[], T[]]) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x: T, y: T) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) =>\n val.reduce((acc, i) => field.add(field.mul(acc, x), i))\n );\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\n\nexport interface H2CPoint extends Group> {\n add(rhs: H2CPoint): H2CPoint;\n toAffine(iz?: bigint): AffinePoint;\n clearCofactor(): H2CPoint;\n assertValidity(): void;\n}\n\nexport interface H2CPointConstructor extends GroupConstructor> {\n fromAffine(ap: AffinePoint): H2CPoint;\n}\n\nexport type MapToCurve = (scalar: bigint[]) => AffinePoint;\n\n// Separated from initialization opts, so users won't accidentally change per-curve parameters\n// (changing DST is ok!)\nexport type htfBasicOpts = { DST: UnicodeOrBytes };\n\nexport function createHasher(\n Point: H2CPointConstructor,\n mapToCurve: MapToCurve,\n def: Opts & { encodeDST?: UnicodeOrBytes }\n) {\n if (typeof mapToCurve !== 'function') throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options } as Opts);\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options } as Opts);\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars: bigint[]) {\n if (!Array.isArray(scalars)) throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n","\n\n\n","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from \"./composables/date/date.mjs\";\nimport { createDefaults, DefaultsSymbol } from \"./composables/defaults.mjs\";\nimport { createDisplay, DisplaySymbol } from \"./composables/display.mjs\";\nimport { createGoTo, GoToSymbol } from \"./composables/goto.mjs\";\nimport { createIcons, IconSymbol } from \"./composables/icons.mjs\";\nimport { createLocale, LocaleSymbol } from \"./composables/locale.mjs\";\nimport { createTheme, ThemeSymbol } from \"./composables/theme.mjs\"; // Utilities\nimport { nextTick, reactive } from 'vue';\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from \"./util/index.mjs\"; // Types\nexport * from \"./composables/index.mjs\";\nexport function createVuetify() {\n let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n blueprint,\n ...rest\n } = vuetify;\n const options = mergeDeep(blueprint, rest);\n const {\n aliases = {},\n components = {},\n directives = {}\n } = options;\n const defaults = createDefaults(options.defaults);\n const display = createDisplay(options.display, options.ssr);\n const theme = createTheme(options.theme);\n const icons = createIcons(options.icons);\n const locale = createLocale(options.locale);\n const date = createDate(options.date, locale);\n const goTo = createGoTo(options.goTo, locale);\n const install = app => {\n for (const key in directives) {\n app.directive(key, directives[key]);\n }\n for (const key in components) {\n app.component(key, components[key]);\n }\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name\n }));\n }\n theme.install(app);\n app.provide(DefaultsSymbol, defaults);\n app.provide(DisplaySymbol, display);\n app.provide(ThemeSymbol, theme);\n app.provide(IconSymbol, icons);\n app.provide(LocaleSymbol, locale);\n app.provide(DateOptionsSymbol, date.options);\n app.provide(DateAdapterSymbol, date.instance);\n app.provide(GoToSymbol, goTo);\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update();\n });\n } else {\n const {\n mount\n } = app;\n app.mount = function () {\n const vm = mount(...arguments);\n nextTick(() => display.update());\n app.mount = mount;\n return vm;\n };\n }\n }\n getUid.reset();\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify() {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol)\n });\n }\n }\n });\n }\n };\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo\n };\n}\nexport const version = \"3.7.3\";\ncreateVuetify.version = version;\n\n// Vue's inject() can only be used in setup\nfunction inject(key) {\n const vm = this.$;\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;\n if (provides && key in provides) {\n return provides[key];\n }\n}\n//# sourceMappingURL=framework.mjs.map","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { nextTick, reactive } from 'vue'\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\nexport * from './composables'\nexport type { DateOptions, DateInstance, DateModule } from '@/composables/date'\n\nexport interface VuetifyOptions {\n aliases?: Record\n blueprint?: Blueprint\n components?: Record\n date?: DateOptions\n directives?: Record\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n","import { _ as _object_without_properties_loose } from \"./_object_without_properties_loose.js\";\n\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\nexport { _object_without_properties as _ };\n","function _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\nexport { _object_without_properties_loose as _ };\n","// Composables\nimport { useLocale } from \"../locale.mjs\"; // Utilities\nimport { inject, reactive, watch } from 'vue';\nimport { mergeDeep } from \"../../util/index.mjs\"; // Types\n// Adapters\nimport { VuetifyDateAdapter } from \"./adapters/vuetify.mjs\";\n/** Supports module augmentation to specify date adapter types */\nexport let DateModule;\nexport const DateOptionsSymbol = Symbol.for('vuetify:date-options');\nexport const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');\nexport function createDate(options, locale) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW'\n }\n }, options);\n return {\n options: _options,\n instance: createInstance(_options, locale)\n };\n}\nfunction createInstance(options, locale) {\n const instance = reactive(typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats\n }) : options.adapter);\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n return instance;\n}\nexport function useDate() {\n const options = inject(DateOptionsSymbol);\n if (!options) throw new Error('[Vuetify] Could not find injected date options');\n const locale = useLocale();\n return createInstance(options, locale);\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek(adapter, value) {\n const date = adapter.toJsDate(value);\n let year = date.getFullYear();\n let d1w1 = new Date(year, 0, 1);\n if (date < d1w1) {\n year = year - 1;\n d1w1 = new Date(year, 0, 1);\n } else {\n const tv = new Date(year + 1, 0, 1);\n if (date >= tv) {\n year = year + 1;\n d1w1 = tv;\n }\n }\n const diffTime = Math.abs(date.getTime() - d1w1.getTime());\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return Math.floor(diffDays / 7) + 1;\n}\n//# sourceMappingURL=date.mjs.map","// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record\n locale: Record\n}\n\nexport type DateOptions = Partial\n\nexport const DateOptionsSymbol: InjectionKey = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek (adapter: DateAdapter, value: any) {\n const date = adapter.toJsDate(value)\n let year = date.getFullYear()\n let d1w1 = new Date(year, 0, 1)\n\n if (date < d1w1) {\n year = year - 1\n d1w1 = new Date(year, 0, 1)\n } else {\n const tv = new Date(year + 1, 0, 1)\n if (date >= tv) {\n year = year + 1\n d1w1 = tv\n }\n }\n\n const diffTime = Math.abs(date.getTime() - d1w1.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n\n return Math.floor(diffDays / 7) + 1\n}\n","// Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { createVuetifyAdapter } from \"../locale/adapters/vuetify.mjs\"; // Types\nexport const LocaleSymbol = Symbol.for('vuetify:locale');\nfunction isLocaleInstance(obj) {\n return obj.name != null;\n}\nexport function createLocale(options) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);\n const rtl = createRtl(i18n, options);\n return {\n ...i18n,\n ...rtl\n };\n}\nexport function useLocale() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n return locale;\n}\nexport function provideLocale(props) {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n const i18n = locale.provide(props);\n const rtl = provideRtl(i18n, locale.rtl, props);\n const data = {\n ...i18n,\n ...rtl\n };\n provide(LocaleSymbol, data);\n return data;\n}\n\n// RTL\n\nexport const RtlSymbol = Symbol.for('vuetify:rtl');\nfunction genDefaults() {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false\n };\n}\nexport function createRtl(i18n, options) {\n const rtl = ref(options?.rtl ?? genDefaults());\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function provideRtl(locale, rtl, props) {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function useRtl() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance');\n return {\n isRtl: locale.isRtl,\n rtlClasses: locale.rtlClasses\n };\n}\n//# sourceMappingURL=locale.mjs.map","// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref\n current: Ref\n fallback: Ref\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref\n rtl: Ref>\n rtlClasses: Ref\n}\n\nexport const RtlSymbol: InjectionKey = Symbol.for('vuetify:rtl')\n\nfunction genDefaults () {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n }\n}\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref>(options?.rtl ?? genDefaults())\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n","// Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { consoleError, consoleWarn, getObjectValueByPath } from \"../../util/index.mjs\"; // Locales\nimport en from \"../en.mjs\"; // Types\nconst LANG_PREFIX = '$vuetify.';\nconst replace = (str, params) => {\n return str.replace(/\\{(\\d+)\\}/g, (match, index) => {\n return String(params[+index]);\n });\n};\nconst createTranslateFunction = (current, fallback, messages) => {\n return function (key) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params);\n }\n const shortKey = key.replace(LANG_PREFIX, '');\n const currentLocale = current.value && messages.value[current.value];\n const fallbackLocale = fallback.value && messages.value[fallback.value];\n let str = getObjectValueByPath(currentLocale, shortKey, null);\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`);\n str = getObjectValueByPath(fallbackLocale, shortKey, null);\n }\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`);\n str = key;\n }\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`);\n str = key;\n }\n return replace(str, params);\n };\n};\nfunction createNumberFunction(current, fallback) {\n return (value, options) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options);\n return numberFormat.format(value);\n };\n}\nfunction useProvided(props, prop, provided) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value;\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value;\n }\n });\n return internal;\n}\nfunction createProvideFunction(state) {\n return props => {\n const current = useProvided(props, 'locale', state.current);\n const fallback = useProvided(props, 'fallback', state.fallback);\n const messages = useProvided(props, 'messages', state.messages);\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n };\n}\nexport function createVuetifyAdapter(options) {\n const current = shallowRef(options?.locale ?? 'en');\n const fallback = shallowRef(options?.fallback ?? 'en');\n const messages = ref({\n en,\n ...options?.messages\n });\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n}\n//# sourceMappingURL=vuetify.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Locales\nimport en from '@/locale/en'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref,\n fallback: Ref,\n messages: Ref,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref, fallback: Ref) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided (props: any, prop: string, provided: Ref) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref\n}\n\nfunction createProvideFunction (state: { current: Ref, fallback: Ref, messages: Ref }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = shallowRef(options?.locale ?? 'en')\n const fallback = shallowRef(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, ref, toRaw, watch } from 'vue';\nimport { getCurrentInstance, toKebabCase } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useProxiedModel(props, prop, defaultValue) {\n let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;\n let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;\n const vm = getCurrentInstance('useProxiedModel');\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);\n const kebabProp = toKebabCase(prop);\n const checkKebab = kebabProp !== prop;\n const isControlled = checkKebab ? computed(() => {\n void props[prop];\n return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));\n }) : computed(() => {\n void props[prop];\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));\n });\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val;\n });\n });\n const model = computed({\n get() {\n const externalValue = props[prop];\n return transformIn(isControlled.value ? externalValue : internal.value);\n },\n set(internalValue) {\n const newValue = transformOut(internalValue);\n const value = toRaw(isControlled.value ? props[prop] : internal.value);\n if (value === newValue || transformIn(value) === internalValue) {\n return;\n }\n internal.value = newValue;\n vm?.emit(`update:${prop}`, newValue);\n }\n });\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value\n });\n return model;\n}\n//# sourceMappingURL=proxiedModel.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { EventProp } from '@/util'\n\ntype InnerVal = T extends any[] ? Readonly : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined },\n Prop extends Extract,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue';\n\n// Types\n\nexport function useToggleScope(source, fn) {\n let scope;\n function start() {\n scope = effectScope();\n scope.run(() => fn.length ? fn(() => {\n scope?.stop();\n start();\n }) : fn());\n }\n watch(source, active => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n//# sourceMappingURL=toggleScope.mjs.map","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue'\n\n// Types\nimport type { EffectScope, WatchSource } from 'vue'\n\nexport function useToggleScope (source: WatchSource, fn: (reset: () => void) => void) {\n let scope: EffectScope | undefined\n function start () {\n scope = effectScope()\n scope.run(() => fn.length\n ? fn(() => { scope?.stop(); start() })\n : (fn as any)()\n )\n }\n\n watch(source, active => {\n if (active && !scope) {\n start()\n } else if (!active) {\n scope?.stop()\n scope = undefined\n }\n }, { immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n","export * from \"./anchor.mjs\";\nexport * from \"./animation.mjs\";\nexport * from \"./bindProps.mjs\";\nexport * from \"./colorUtils.mjs\";\nexport * from \"./console.mjs\";\nexport * from \"./createSimpleFunctional.mjs\";\nexport * from \"./defineComponent.mjs\";\nexport * from \"./dom.mjs\";\nexport * from \"./easing.mjs\";\nexport * from \"./events.mjs\";\nexport * from \"./getCurrentInstance.mjs\";\nexport * from \"./getScrollParent.mjs\";\nexport * from \"./globals.mjs\";\nexport * from \"./helpers.mjs\";\nexport * from \"./injectSelf.mjs\";\nexport * from \"./isFixedPosition.mjs\";\nexport * from \"./propsFactory.mjs\";\nexport * from \"./useRender.mjs\";\n//# sourceMappingURL=index.mjs.map","export * from './anchor'\nexport * from './animation'\nexport * from './bindProps'\nexport * from './colorUtils'\nexport * from './console'\nexport * from './createSimpleFunctional'\nexport * from './defineComponent'\nexport * from './dom'\nexport * from './easing'\nexport * from './events'\nexport * from './getCurrentInstance'\nexport * from './getScrollParent'\nexport * from './globals'\nexport * from './helpers'\nexport * from './injectSelf'\nexport * from './isFixedPosition'\nexport * from './propsFactory'\nexport * from './useRender'\n","// Utilities\nimport { includes } from \"./helpers.mjs\";\nconst block = ['top', 'bottom'];\nconst inline = ['start', 'end', 'left', 'right'];\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor, isRtl) {\n let [side, align] = anchor.split(' ');\n if (!align) {\n align = includes(block, side) ? 'start' : includes(inline, side) ? 'top' : 'center';\n }\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl)\n };\n}\nexport function toPhysical(str, isRtl) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\nexport function flipSide(anchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.side],\n align: anchor.align\n };\n}\nexport function flipAlign(anchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.align]\n };\n}\nexport function flipCorner(anchor) {\n return {\n side: anchor.align,\n align: anchor.side\n };\n}\nexport function getAxis(anchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n//# sourceMappingURL=anchor.mjs.map","// Utilities\nimport { includes } from '@/util/helpers'\n\nconst block = ['top', 'bottom'] as const\nconst inline = ['start', 'end', 'left', 'right'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline[number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right', align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [Tblock | Tinline | 'center', Tblock | Tinline | 'center' | undefined]\n if (!align) {\n align =\n includes(block, side) ? 'start'\n : includes(inline, side) ? 'top'\n : 'center'\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor\n}\n\nexport function toPhysical (str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left'\n if (str === 'end') return isRtl ? 'left' : 'right'\n return str\n}\n\nexport function flipSide (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\nexport function flipAlign (anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor\n}\n\nexport function flipCorner (anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor\n}\n\nexport function getAxis (anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x'\n}\n","function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue';\nimport { IN_BROWSER } from \"./globals.mjs\"; // Types\nexport function getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === undefined ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === undefined ? fallback : obj[path[last]];\n}\nexport function deepEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n // If the values are Date, compare them as timestamps\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n return props.every(p => deepEqual(a[p], b[p]));\n}\nexport function getObjectValueByPath(obj, path, fallback) {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback;\n if (obj[path] !== undefined) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback);\n}\nexport function getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === undefined ? fallback : item;\n if (property == null || typeof property === 'boolean') return fallback;\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n }\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n}\nexport function createRange(length) {\n let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Array.from({\n length\n }, (v, k) => start + k);\n}\nexport function getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = +window.getComputedStyle(el).getPropertyValue('z-index');\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nexport function convertToUnit(str) {\n let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';\n if (str == null || str === '') {\n return undefined;\n } else if (isNaN(+str)) {\n return String(str);\n } else if (!isFinite(+str)) {\n return undefined;\n } else {\n return `${Number(str)}${unit}`;\n }\n}\nexport function isObject(obj) {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport function isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nexport function refElement(obj) {\n if (obj && '$el' in obj) {\n const el = obj.$el;\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift'\n});\nexport function keys(o) {\n return Object.keys(o);\n}\nexport function has(obj, key) {\n return key.every(k => obj.hasOwnProperty(k));\n}\n// Array of keys\nexport function pick(obj, paths) {\n const found = {};\n const keys = new Set(Object.keys(obj));\n for (const path of paths) {\n if (keys.has(path)) {\n found[path] = obj[path];\n }\n }\n return found;\n}\n\n// Array of keys\n\n// Array of keys or RegExp to test keys against\n\nexport function pickWithRest(obj, paths, exclude) {\n const found = Object.create(null);\n const rest = Object.create(null);\n for (const key in obj) {\n if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nexport function omit(obj, exclude) {\n const clone = {\n ...obj\n };\n exclude.forEach(prop => delete clone[prop]);\n return clone;\n}\nexport function only(obj, include) {\n const clone = {};\n include.forEach(prop => clone[prop] = obj[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nexport const isOn = key => onRE.test(key);\nconst bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];\nconst compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];\nexport function isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the element inside.\n */\nexport function filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nexport function wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nexport function defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== 'boolean' && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nexport function debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nexport function throttle(fn, limit) {\n let throttling = false;\n return function () {\n if (!throttling) {\n throttling = true;\n setTimeout(() => throttling = false, limit);\n return fn(...arguments);\n }\n };\n}\nexport function clamp(value) {\n let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return Math.max(min, Math.min(max, value));\n}\nexport function getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;\n}\nexport function padEnd(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return str + char.repeat(Math.max(0, length - str.length));\n}\nexport function padStart(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nexport function chunk(str) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nexport function chunkArray(array) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Array.from({\n length: Math.ceil(array.length / size)\n }, (v, i) => array.slice(i * size, i * size + size));\n}\nexport function humanReadableFileSize(bytes) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G'];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nexport function mergeDeep() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let arrayFn = arguments.length > 2 ? arguments[2] : undefined;\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nexport function flattenFragments(nodes) {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nexport function toKebabCase() {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, '-').replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = new Map();\nexport function findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== 'object') return [];\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nvar _arr = /*#__PURE__*/new WeakMap();\nvar _pointer = /*#__PURE__*/new WeakMap();\nexport class CircularBuffer {\n constructor(size) {\n _classPrivateFieldInitSpec(this, _arr, []);\n _classPrivateFieldInitSpec(this, _pointer, 0);\n this.size = size;\n }\n push(val) {\n _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;\n _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);\n }\n values() {\n return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));\n }\n}\nexport function getEventCoordinates(e) {\n if ('touches' in e) {\n return {\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY\n };\n }\n return {\n clientX: e.clientX,\n clientY: e.clientY\n };\n}\n\n// Only allow a single return type\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\n\nexport function destructComputed(getter) {\n const refs = reactive({});\n const base = computed(getter);\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key];\n }\n }, {\n flush: 'sync'\n });\n return toRefs(refs);\n}\n\n/** Array.includes but value can be any type */\nexport function includes(arr, val) {\n return arr.includes(val);\n}\nexport function eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\nexport const EventProp = () => [Function, Array];\nexport function hasEvent(props, name) {\n name = 'on' + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nexport function callEvent(handler) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === 'function') {\n handler(...args);\n }\n}\nexport function focusableChildren(el) {\n let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`).join(', ');\n return [...el.querySelectorAll(targets)];\n}\nexport function getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === 'next' ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nexport function focusChild(el, location) {\n const focusable = focusableChildren(el);\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus();\n }\n } else if (location === 'first') {\n focusable[0]?.focus();\n } else if (location === 'last') {\n focusable.at(-1)?.focus();\n } else if (typeof location === 'number') {\n focusable[location]?.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');\n }\n}\nexport function isEmpty(val) {\n return val === null || val === undefined || typeof val === 'string' && val.trim() === '';\n}\nexport function noop() {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nexport function ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nexport function defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {};\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nexport function eagerComputed(fn, options) {\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n flush: 'sync',\n ...options\n });\n return readonly(result);\n}\nexport function isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nexport function templateRef() {\n const el = shallowRef();\n const fn = target => {\n el.value = target;\n };\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val\n });\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nexport function checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\n//# sourceMappingURL=helpers.mjs.map","// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n ToRefs,\n VNode,\n VNodeArrayChildren,\n VNodeChild,\n WatchOptions,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path?: string | null, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey> =\n | boolean | null | undefined // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | readonly (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: T, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property === true) return item === undefined ? fallback : item\n\n if (property == null || typeof property === 'boolean') return fallback\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is Record {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isPlainObject (obj: any): obj is Record {\n let proto\n return obj !== null && typeof obj === 'object' && (\n (proto = Object.getPrototypeOf(obj)) === Object.prototype ||\n proto === null\n )\n}\n\nexport function refElement (obj?: ComponentPublicInstance | HTMLElement): HTMLElement | undefined {\n if (obj && '$el' in obj) {\n const el = obj.$el as HTMLElement\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling as HTMLElement\n }\n return el\n }\n return obj as HTMLElement\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues: Record = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\nexport function has (obj: object, key: T[]): obj is Record {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract\n> = Record extends T ? Partial> : Pick\n\n// Array of keys\nexport function pick<\n T extends object,\n U extends Extract\n> (obj: T, paths: U[]): MaybePick {\n const found: any = {}\n\n const keys = new Set(Object.keys(obj))\n for (const path of paths) {\n if (keys.has(path)) {\n found[path] = obj[path]\n }\n }\n\n return found\n}\n\n// Array of keys\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: U[], exclude?: E[]): [yes: MaybePick>, no: Omit>]\n// Array of keys or RegExp to test keys against\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial]\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n ) && !exclude?.some(path => path === key)\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\nexport function omit<\n T extends object,\n U extends Extract\n> (obj: T, exclude: U[]): Omit {\n const clone = { ...obj }\n\n exclude.forEach(prop => delete clone[prop])\n\n return clone\n}\n\nexport function only<\n T extends object,\n U extends Extract\n> (obj: T, include: U[]): Pick {\n const clone = {} as T\n\n include.forEach(prop => clone[prop] = obj[prop])\n\n return clone\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nconst bubblingEvents = [\n 'onAfterscriptexecute',\n 'onAnimationcancel',\n 'onAnimationend',\n 'onAnimationiteration',\n 'onAnimationstart',\n 'onAuxclick',\n 'onBeforeinput',\n 'onBeforescriptexecute',\n 'onChange',\n 'onClick',\n 'onCompositionend',\n 'onCompositionstart',\n 'onCompositionupdate',\n 'onContextmenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onFocusin',\n 'onFocusout',\n 'onFullscreenchange',\n 'onFullscreenerror',\n 'onGesturechange',\n 'onGestureend',\n 'onGesturestart',\n 'onGotpointercapture',\n 'onInput',\n 'onKeydown',\n 'onKeypress',\n 'onKeyup',\n 'onLostpointercapture',\n 'onMousedown',\n 'onMousemove',\n 'onMouseout',\n 'onMouseover',\n 'onMouseup',\n 'onMousewheel',\n 'onPaste',\n 'onPointercancel',\n 'onPointerdown',\n 'onPointerenter',\n 'onPointerleave',\n 'onPointermove',\n 'onPointerout',\n 'onPointerover',\n 'onPointerup',\n 'onReset',\n 'onSelect',\n 'onSubmit',\n 'onTouchcancel',\n 'onTouchend',\n 'onTouchmove',\n 'onTouchstart',\n 'onTransitioncancel',\n 'onTransitionend',\n 'onTransitionrun',\n 'onTransitionstart',\n 'onWheel',\n]\n\nconst compositionIgnoreKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowLeft',\n 'Enter',\n 'Escape',\n 'Tab',\n ' ',\n]\n\nexport function isComposingIgnoreKey (e: KeyboardEvent): boolean {\n return e.isComposing && compositionIgnoreKeys.includes(e.key)\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the element inside.\n */\nexport function filterInputAttrs (attrs: Record) {\n const [events, props] = pickWithRest(attrs, [onRE])\n const inputEvents = omit(events, bubblingEvents)\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/])\n Object.assign(rootAttrs, events)\n Object.assign(inputAttrs, inputEvents)\n return [rootAttrs, inputAttrs]\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ntype IfAny = 0 extends (1 & T) ? Y : N;\nexport function wrapInArray (\n v: T | null | undefined\n): T extends readonly any[]\n ? IfAny\n : NonNullable[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v as any : [v]\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function debounce (fn: Function, delay: MaybeRef) {\n let timeoutId = 0 as any\n const wrap = (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), unref(delay))\n }\n wrap.clear = () => {\n clearTimeout(timeoutId)\n }\n wrap.immediate = fn\n return wrap\n}\n\nexport function throttle any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters): void | ReturnType => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function getDecimals (value: number) {\n const trimmedStr = value.toString().trim()\n return trimmedStr.includes('.')\n ? (trimmedStr.length - trimmedStr.indexOf('.') - 1)\n : 0\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function padStart (str: string, length: number, char = '0') {\n return char.repeat(Math.max(0, length - str.length)) + str\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function chunkArray (array: any[], size = 1) {\n return Array.from({ length: Math.ceil(array.length / size) }, (v, i) =>\n array.slice(i * size, i * size + size)\n )\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function mergeDeep (\n source: Record = {},\n target: Record = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport function toKebabCase (str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map()\n\nexport type MaybeRef = T | Ref\n\nexport function findChildrenWithProvide (\n key: InjectionKey | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent!)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer {\n readonly #arr: Array = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion = [T] extends [infer U] ? _NotAUnion : never\ntype _NotAUnion = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed (getter: ComputedGetter>): ToRefs\nexport function destructComputed (getter: ComputedGetter) {\n const refs = reactive({}) as T\n const base = computed(getter)\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key]\n }\n }, { flush: 'sync' })\n return toRefs(refs)\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nexport function eventName (propName: string) {\n return propName[2].toLowerCase() + propName.slice(3)\n}\n\nexport type EventProp void> = F\nexport const EventProp = () => [Function, Array] as PropType>\n\nexport function hasEvent (props: Record, name: string) {\n name = 'on' + capitalize(name)\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`])\n}\n\nexport function callEvent (handler: EventProp | undefined, ...args: T) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n\nexport function focusableChildren (el: Element, filterByTabIndex = true) {\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]']\n .map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`)\n .join(', ')\n return [...el.querySelectorAll(targets)] as HTMLElement[]\n}\n\nexport function getNextElement (elements: HTMLElement[], location?: 'next' | 'prev', condition?: (el: HTMLElement) => boolean) {\n let _el\n let idx = elements.indexOf(document.activeElement as HTMLElement)\n const inc = location === 'next' ? 1 : -1\n do {\n idx += inc\n _el = elements[idx]\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0)\n return _el\n}\n\nexport function focusChild (el: Element, location?: 'next' | 'prev' | 'first' | 'last' | number) {\n const focusable = focusableChildren(el)\n\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus()\n }\n } else if (location === 'first') {\n focusable[0]?.focus()\n } else if (location === 'last') {\n focusable.at(-1)?.focus()\n } else if (typeof location === 'number') {\n focusable[location]?.focus()\n } else {\n const _el = getNextElement(focusable, location)\n if (_el) _el.focus()\n else focusChild(el, location === 'next' ? 'first' : 'last')\n }\n}\n\nexport function isEmpty (val: any): boolean {\n return val === null || val === undefined || (typeof val === 'string' && val.trim() === '')\n}\n\nexport function noop () {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector (el: Element | undefined, selector: string): boolean | null {\n const supportsSelector = IN_BROWSER &&\n typeof CSS !== 'undefined' &&\n typeof CSS.supports !== 'undefined' &&\n CSS.supports(`selector(${selector})`)\n\n if (!supportsSelector) return null\n\n try {\n return !!el && el.matches(selector)\n } catch (err) {\n return null\n }\n}\n\nexport function ensureValidVNode (vnodes: VNodeArrayChildren): VNodeArrayChildren | null {\n return vnodes.some(child => {\n if (!isVNode(child)) return true\n if (child.type === Comment) return false\n return child.type !== Fragment ||\n ensureValidVNode(child.children as VNodeArrayChildren)\n })\n ? vnodes\n : null\n}\n\nexport function defer (timeout: number, cb: () => void) {\n if (!IN_BROWSER || timeout === 0) {\n cb()\n\n return () => {}\n }\n\n const timeoutId = window.setTimeout(cb, timeout)\n\n return () => window.clearTimeout(timeoutId)\n}\n\nexport function eagerComputed (fn: () => T, options?: WatchOptions): Readonly> {\n const result = shallowRef()\n\n watchEffect(() => {\n result.value = fn()\n }, {\n flush: 'sync',\n ...options,\n })\n\n return readonly(result)\n}\n\nexport function isClickInsideElement (event: MouseEvent, targetDiv: HTMLElement) {\n const mouseX = event.clientX\n const mouseY = event.clientY\n\n const divRect = targetDiv.getBoundingClientRect()\n const divLeft = divRect.left\n const divTop = divRect.top\n const divRight = divRect.right\n const divBottom = divRect.bottom\n\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom\n}\n\nexport type TemplateRef = {\n (target: Element | ComponentPublicInstance | null): void\n value: HTMLElement | ComponentPublicInstance | null | undefined\n readonly el: HTMLElement | undefined\n}\nexport function templateRef () {\n const el = shallowRef()\n const fn = (target: HTMLElement | ComponentPublicInstance | null) => {\n el.value = target\n }\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val,\n })\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value),\n })\n\n return fn as TemplateRef\n}\n\nexport function checkPrintable (e: KeyboardEvent) {\n const isPrintableChar = e.key.length === 1\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey\n return isPrintableChar && noModifier\n}\n","export const IN_BROWSER = typeof window !== 'undefined';\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;\n//# sourceMappingURL=globals.mjs.map","export const IN_BROWSER = typeof window !== 'undefined'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window\n","// Utilities\nimport { Box } from \"./box.mjs\";\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms(el) {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n const tx = style.transform;\n if (tx) {\n let ta, sx, sy, dx, dy;\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[5];\n dx = +ta[12];\n dy = +ta[13];\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[3];\n dx = +ta[4];\n dy = +ta[5];\n } else {\n return new Box(rect);\n }\n const to = style.transformOrigin;\n const x = rect.x - dx - (1 - sx) * parseFloat(to);\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1));\n const w = sx ? rect.width / sx : el.offsetWidth + 1;\n const h = sy ? rect.height / sy : el.offsetHeight + 1;\n return new Box({\n x,\n y,\n width: w,\n height: h\n });\n } else {\n return new Box(rect);\n }\n}\nexport function animate(el, keyframes, options) {\n if (typeof el.animate === 'undefined') return {\n finished: Promise.resolve()\n };\n let animation;\n try {\n animation = el.animate(keyframes, options);\n } catch (err) {\n return {\n finished: Promise.resolve()\n };\n }\n if (typeof animation.finished === 'undefined') {\n animation.finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation);\n };\n });\n }\n return animation;\n}\n//# sourceMappingURL=animation.mjs.map","// Utilities\nimport { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n","export class Box {\n constructor(_ref) {\n let {\n x,\n y,\n width,\n height\n } = _ref;\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n get top() {\n return this.y;\n }\n get bottom() {\n return this.y + this.height;\n }\n get left() {\n return this.x;\n }\n get right() {\n return this.x + this.width;\n }\n}\nexport function getOverflow(a, b) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right)\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom)\n }\n };\n}\nexport function getTargetBox(target) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n });\n } else {\n return target.getBoundingClientRect();\n }\n}\n//# sourceMappingURL=box.mjs.map","export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n\nexport function getTargetBox (target: HTMLElement | [x: number, y: number]) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0,\n })\n } else {\n return target.getBoundingClientRect()\n }\n}\n","// Utilities\nimport { eventName, isOn } from \"./helpers.mjs\";\nconst handlers = new WeakMap();\nexport function bindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k]);\n const _handler = handler || new Set();\n _handler.add([name, props[k]]);\n if (!handlers.has(el)) handlers.set(el, _handler);\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k);\n } else {\n el.setAttribute(k, props[k]);\n }\n }\n });\n}\nexport function unbindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else {\n el.removeAttribute(k);\n }\n });\n}\n//# sourceMappingURL=bindProps.mjs.map","// Utilities\nimport { eventName, isOn } from '@/util/helpers'\n\nconst handlers = new WeakMap void]>>()\n\nexport function bindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k])\n const _handler = handler || new Set()\n _handler.add([name, props[k]])\n if (!handlers.has(el)) handlers.set(el, _handler)\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, props[k])\n }\n }\n })\n}\n\nexport function unbindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else {\n el.removeAttribute(k)\n }\n })\n}\n","// Utilities\nimport { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, has, padEnd } from \"./helpers.mjs\";\nimport * as CIELAB from \"./color/transformCIELAB.mjs\";\nimport * as sRGB from \"./color/transformSRGB.mjs\"; // Types\nexport function isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nexport function isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n rgba: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n hsl: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsla: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsv: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n }),\n hsva: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n })\n};\nexport function parseColor(color) {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) {\n // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: color & 0xFF\n };\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const {\n groups\n } = color.match(cssColorRe);\n const {\n fn,\n values\n } = groups;\n const realValues = values.split(/,\\s*/).map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('');\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color;\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);\n}\nexport function RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nexport function classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);\n let hexColor = '';\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const f = n => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255));\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n a\n };\n}\nexport function HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV(rgba) {\n if (!rgba) return {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return {\n h: hsv[0],\n s: hsv[1],\n v: hsv[2],\n a: rgba.a\n };\n}\nexport function HSVtoHSL(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h,\n s: sprime,\n l,\n a\n };\n}\nexport function HSLtoHSV(hsl) {\n const {\n h,\n s,\n l,\n a\n } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return {\n h,\n s: sprime,\n v,\n a\n };\n}\nexport function RGBtoCSS(_ref) {\n let {\n r,\n g,\n b,\n a\n } = _ref;\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nexport function HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase();\n}\nexport function RGBtoHex(_ref2) {\n let {\n r,\n g,\n b,\n a\n } = _ref2;\n return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;\n}\nexport function HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));\n a = a === undefined ? a : a / 255;\n return {\n r,\n g,\n b,\n a\n };\n}\nexport function HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nexport function HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nexport function parseHex(hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, 'F');\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('');\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F');\n }\n return hex;\n}\nexport function parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',');\n });\n}\nexport function lighten(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\nexport function darken(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma(color) {\n const rgb = parseColor(color);\n return sRGB.toXYZ(rgb)[1];\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nexport function getForeground(color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';\n}\n//# sourceMappingURL=colorUtils.mjs.map","// Utilities\nimport { APCAcontrast } from './color/APCA'\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function isParsableColor (color: string): boolean {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color)\n}\n\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record>,\n currentTheme: Partial,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record>,\n currentTheme: Partial,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n\nexport function getForeground (color: Color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)))\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)))\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n}\n","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4;\nconst Rco = 0.2126729; // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522; // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750; // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03; // Level that triggers the soft black clamp\nconst blkClmp = 1.45; // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005; // Lint trap\nconst scaleBoW = 1.25; // Scaling for dark text on light\nconst scaleWoB = 1.25; // Scaling for light text on dark\nconst loConThresh = 0.078; // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282; // = 1/0.078,\nconst loConOffset = 0.06; // The simple offset\nconst loClip = 0.001; // Output clip (lint trap #2)\n\nexport function APCAcontrast(text, background) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0;\n\n // SAPC CONTRAST\n\n let outputContrast; // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast = SAPC < loClip ? 0.0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\n//# sourceMappingURL=APCA.mjs.map","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\nimport type { RGB } from '@/util'\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: RGB, background: RGB) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC\n const Gtxt = (text.g / 255) ** mainTRC\n const Btxt = (text.b / 255) ** mainTRC\n\n const Rbg = (background.r / 255) ** mainTRC\n const Gbg = (background.g / 255) ** mainTRC\n const Bbg = (background.b / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue';\nexport function consoleWarn(message) {\n warn(`Vuetify: ${message}`);\n}\nexport function consoleError(message) {\n warn(`Vuetify error: ${message}`);\n}\nexport function deprecate(original, replacement) {\n replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);\n}\nexport function breaking(original, replacement) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed(original) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n//# sourceMappingURL=console.mjs.map","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue'\n\nexport function consoleWarn (message: string): void {\n warn(`Vuetify: ${message}`)\n}\n\nexport function consoleError (message: string): void {\n warn(`Vuetify error: ${message}`)\n}\n\nexport function deprecate (original: string, replacement: string | string[]) {\n replacement = Array.isArray(replacement)\n ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'`\n : `'${replacement}'`\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`)\n}\nexport function breaking (original: string, replacement: string) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed (original: string) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n","// Types\n\nconst delta = 0.20689655172413793; // 6÷29\n\nconst cielabForwardTransform = t => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;\nconst cielabReverseTransform = t => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);\nexport function fromXYZ(xyz) {\n const transform = cielabForwardTransform;\n const transformedY = transform(xyz[1]);\n return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))];\n}\nexport function toXYZ(lab) {\n const transform = cielabReverseTransform;\n const Ln = (lab[0] + 16) / 116;\n return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883];\n}\n//# sourceMappingURL=transformCIELAB.mjs.map","// Types\nimport type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { clamp } from \"../helpers.mjs\"; // Types\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]];\n\n// Forward gamma adjust\nconst srgbForwardTransform = C => C <= 0.0031308 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]];\n\n// Reverse gamma adjust\nconst srgbReverseTransform = C => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;\nexport function fromXYZ(xyz) {\n const rgb = Array(3);\n const transform = srgbForwardTransform;\n const matrix = srgbForwardMatrix;\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);\n }\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n}\nexport function toXYZ(_ref) {\n let {\n r,\n g,\n b\n } = _ref;\n const xyz = [0, 0, 0];\n const transform = srgbReverseTransform;\n const matrix = srgbReverseMatrix;\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255);\n g = transform(g / 255);\n b = transform(b / 255);\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;\n }\n return xyz;\n}\n//# sourceMappingURL=transformSRGB.mjs.map","// Utilities\nimport { clamp } from '@/util/helpers'\n\n// Types\nimport type { RGB, XYZ } from '../colorUtils'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): RGB {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n }\n}\n\nexport function toXYZ ({ r, g, b }: RGB): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255)\n g = transform(g / 255)\n b = transform(b / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","// Composables\nimport { makeComponentProps } from \"../composables/component.mjs\"; // Utilities\nimport { camelize, capitalize, h } from 'vue';\nimport { genericComponent } from \"./defineComponent.mjs\";\nexport function createSimpleFunctional(klass) {\n let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';\n let name = arguments.length > 2 ? arguments[2] : undefined;\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n props: {\n tag: {\n type: String,\n default: tag\n },\n ...makeComponentProps()\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style\n }, slots.default?.());\n };\n }\n });\n}\n//# sourceMappingURL=createSimpleFunctional.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { camelize, capitalize, h } from 'vue'\nimport { genericComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style,\n }, slots.default?.())\n }\n },\n })\n}\n","// Utilities\nimport { propsFactory } from \"../util/propsFactory.mjs\"; // Types\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object],\n style: {\n type: [String, Array, Object],\n default: null\n }\n}, 'component');\n//# sourceMappingURL=component.mjs.map","// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object] as PropType,\n style: {\n type: [String, Array, Object] as PropType,\n default: null,\n },\n}, 'component')\n","// Types\n// eslint-disable-line vue/prefer-import-from-vue\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory(props, source) {\n return defaults => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : {\n type: props[prop]\n };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\n\n/**\n * Like `Partial` but doesn't care what the value is\n */\n\n// Copied from Vue\n//# sourceMappingURL=propsFactory.mjs.map","// Types\nimport type { IfAny } from '@vue/shared' // eslint-disable-line vue/prefer-import-from-vue\nimport type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source: string) {\n return = {}>(\n defaults?: Defaults\n ): AppendDefault => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source && !obj[prop].source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record\n ? Omit & {\n type: PropType>\n default: MergeDefault\n }\n : {\n type: PropType>\n default: MergeDefault\n }\n}\n\ntype MergeTypeDefault> = unknown extends D\n ? P\n : (P | D)\ntype MergeDefault> = unknown extends D\n ? P\n : (NonNullable

| D)\n\n/**\n * Like `Partial` but doesn't care what the value is\n */\ntype PartialKeys = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n ? any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType\n : InferPropType\n : [T] extends [Prop]\n ? unknown extends V\n ? IfAny\n : V\n : T\n","// Composables\nimport { injectDefaults, internalUseDefaults } from \"../composables/defaults.mjs\"; // Utilities\nimport { defineComponent as _defineComponent // eslint-disable-line no-restricted-imports\n} from 'vue';\nimport { consoleWarn } from \"./console.mjs\";\nimport { pick } from \"./helpers.mjs\";\nimport { propsFactory } from \"./propsFactory.mjs\"; // Types\n// No props\n// Object Props\n// Implementation\nexport function defineComponent(options) {\n options._setup = options._setup ?? options.setup;\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value');\n return options;\n }\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)();\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style');\n options.filterProps = function filterProps(props) {\n return pick(props, propKeys);\n };\n options.props._as = String;\n options.setup = function setup(props, ctx) {\n const defaults = injectDefaults();\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, props._as ?? options.name, defaults);\n const setupBindings = options._setup(_props, ctx);\n provideSubDefaults();\n return setupBindings;\n };\n }\n return options;\n}\n\n// No argument - simple default slot\n\n// Generic constructor argument - generic props and slots\n\n// Slots argument - simple slots\n\n// Implementation\nexport function genericComponent() {\n let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options);\n}\nexport function defineFunctionalComponent(props, render) {\n render.props = props;\n return render;\n}\n\n// Adds a filterProps method to the component options\n\n// https://github.com/vuejs/core/pull/10557\n\n// not a vue Component\n//# sourceMappingURL=defineComponent.mjs.map","// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n Component,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComponentPublicInstance,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent & FilterPropsOptions\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners = { [K in T]: K extends `on${infer U}` ? Uncapitalize : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record\ntype Slot = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots = {\n [K in keyof T]: Slot\n}\ntype MakeSlots = {\n [K in keyof T]: VueSlot\n}\n\nexport type GenericProps> = {\n $props: Props & SlotsToProps\n $slots: MakeSlots\n}\n\ntype DefineComponentWithGenericProps, slots: RawSlots) => {\n $props?: Record\n})> = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters extends [any, infer SS extends RawSlots | undefined] ? Exclude : {},\n Slots extends RawSlots = ConstructorParameters[1],\n S extends SlotsType = SlotsType>>,\n III = InstanceType,\n P = III extends Record<'$props', any>\n ? Omit\n : PropsOptions,\n EEE extends EmitsOptions = E extends any[]\n ? E\n : III extends Record<'$props', any>\n ? Omit>\n : E,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n EEE,\n EE,\n PublicProps,\n ExtractPropTypes

& ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes

,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps\n) => Base & T & FilterPropsOptions\n\ntype DefineComponentWithSlots = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType>>,\n>(\n options: ComponentOptionsWithObjectProps\n) => DefineComponent<\n ExtractPropTypes & SlotsToProps,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes & SlotsToProps & ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes,\n S\n> & FilterPropsOptions\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent, slots: any) => {\n $props?: Record\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes,\n Props = Readonly>,\n> (props: PropsOptions, render: T): FunctionalComponent & Omit> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps = T extends string[]\n ? {\n [K in string & `on${Capitalize}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize}`]?: K extends `on${infer C}`\n ? T[Uncapitalize] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions, Props = ExtractPropTypes> {\n filterProps<\n T extends Partial,\n U extends Exclude>\n > (props: T): Partial>\n}\n\n// https://github.com/vuejs/core/pull/10557\nexport type ComponentInstance = T extends { new (): ComponentPublicInstance }\n ? InstanceType\n : T extends FunctionalComponent\n ? ComponentPublicInstance>\n : T extends Component<\n infer Props,\n infer RawBindings,\n infer D,\n infer C,\n infer M\n >\n ? // NOTE we override Props/RawBindings/D to make sure is not `unknown`\n ComponentPublicInstance<\n unknown extends Props ? {} : Props,\n unknown extends RawBindings ? {} : RawBindings,\n unknown extends D ? {} : D,\n C,\n M\n >\n : never // not a vue Component\n\ntype ShortEmitsToObject = E extends Record ? {\n [K in keyof E]: (...args: E[K]) => any;\n} : E;\n","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/getCurrentInstance.mjs\";\nimport { mergeDeep, toKebabCase } from \"../util/helpers.mjs\";\nimport { injectSelf } from \"../util/injectSelf.mjs\"; // Types\nexport const DefaultsSymbol = Symbol.for('vuetify:defaults');\nexport function createDefaults(options) {\n return ref(options);\n}\nexport function injectDefaults() {\n const defaults = inject(DefaultsSymbol);\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');\n return defaults;\n}\nexport function provideDefaults(defaults, options) {\n const injectedDefaults = injectDefaults();\n const providedDefaults = ref(defaults);\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled);\n if (disabled) return injectedDefaults.value;\n const scoped = unref(options?.scoped);\n const reset = unref(options?.reset);\n const root = unref(options?.root);\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;\n let properties = mergeDeep(providedDefaults.value, {\n prev: injectedDefaults.value\n });\n if (scoped) return properties;\n if (reset || root) {\n const len = Number(reset || Infinity);\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break;\n }\n properties = properties.prev;\n }\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, {\n prev: properties\n }), properties[root]);\n }\n return properties;\n }\n return properties.prev ? mergeDeep(properties.prev, properties) : properties;\n });\n provide(DefaultsSymbol, newDefaults);\n return newDefaults;\n}\nfunction propIsDefined(vnode, prop) {\n return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';\n}\nexport function internalUseDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();\n const vm = getCurrentInstance('useDefaults');\n name = name ?? vm.type.name ?? vm.type.__name;\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name');\n }\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null);\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;\n }\n return propValue;\n }\n });\n const _subcomponentDefaults = shallowRef();\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(_ref => {\n let [key] = _ref;\n return key.startsWith(key[0].toUpperCase());\n });\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n function provideSubDefaults() {\n const injected = injectSelf(DefaultsSymbol, vm);\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;\n }));\n }\n return {\n props: _props,\n provideSubDefaults\n };\n}\nexport function useDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, name);\n provideSubDefaults();\n return _props;\n}\n//# sourceMappingURL=defaults.mjs.map","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record\n global?: Record\n}\n\nexport type DefaultsOptions = Partial\n\nexport const DefaultsSymbol: InjectionKey> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef,\n options?: {\n disabled?: MaybeRef\n reset?: MaybeRef\n root?: MaybeRef\n scoped?: MaybeRef\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop]\n : propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults () {\n const injected = injectSelf(DefaultsSymbol, vm)\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(\n injected?.value ?? {},\n _subcomponentDefaults.value\n ) : injected?.value\n }))\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record\nexport function useDefaults (\n props: Record = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue';\nimport { toKebabCase } from \"./helpers.mjs\"; // Types\nexport function getCurrentInstance(name, message) {\n const vm = _getCurrentInstance();\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);\n }\n return vm;\n}\nexport function getCurrentInstanceName() {\n let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';\n const vm = getCurrentInstance(name).type;\n return toKebabCase(vm?.aliasName || vm?.name);\n}\nlet _uid = 0;\nlet _map = new WeakMap();\nexport function getUid() {\n const vm = getCurrentInstance('getUid');\n if (_map.has(vm)) return _map.get(vm);else {\n const uid = _uid++;\n _map.set(vm, uid);\n return uid;\n }\n}\ngetUid.reset = () => {\n _uid = 0;\n _map = new WeakMap();\n};\n//# sourceMappingURL=getCurrentInstance.mjs.map","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\n// Types\nimport type { ComponentInternalInstance } from 'vue'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n const vm = getCurrentInstance(name).type\n\n return toKebabCase(vm?.aliasName || vm?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function injectSelf(key) {\n let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');\n const {\n provides\n } = vm;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n return undefined;\n}\n//# sourceMappingURL=injectSelf.mjs.map","// Utilities\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\n\n// Types\nimport type { ComponentInternalInstance, InjectionKey } from 'vue'\n\nexport function injectSelf(key: InjectionKey | string, vm?: ComponentInternalInstance): T | undefined\nexport function injectSelf (key: InjectionKey | string, vm = getCurrentInstance('injectSelf')) {\n const { provides } = vm\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n return undefined\n}\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot(node) {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode;\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null;\n return document;\n }\n const root = node.getRootNode();\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({\n composed: true\n }) !== document) return null;\n return root;\n}\n//# sourceMappingURL=dom.mjs.map","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n//# sourceMappingURL=easing.mjs.map","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)'\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving\n","// Utilities\nimport { isOn } from \"./helpers.mjs\";\nexport function getPrefixedEventHandlers(attrs, suffix, getData) {\n return Object.keys(attrs).filter(key => isOn(key) && key.endsWith(suffix)).reduce((acc, key) => {\n acc[key.slice(0, -suffix.length)] = event => attrs[key](event, getData(event));\n return acc;\n }, {});\n}\n//# sourceMappingURL=events.mjs.map","// Utilities\nimport { isOn } from '@/util/helpers'\n\ntype EventHandler = (event: Event) => any\n\nexport function getPrefixedEventHandlers (\n attrs: Record,\n suffix: T,\n getData: EventHandler\n): Record<`${string}${T}`, EventHandler> {\n return Object.keys(attrs)\n .filter(key => isOn(key) && key.endsWith(suffix))\n .reduce((acc: any, key) => {\n acc[key.slice(0, -suffix.length)] = (event: Event) => attrs[key](event, getData(event))\n return acc\n }, {} as Record<`${string}${T}`, EventHandler>)\n}\n","export function getScrollParent(el) {\n let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el;\n el = el.parentElement;\n }\n return document.scrollingElement;\n}\nexport function getScrollParents(el, stopAt) {\n const elements = [];\n if (stopAt && el && !stopAt.contains(el)) return elements;\n while (el) {\n if (hasScrollbar(el)) elements.push(el);\n if (el === stopAt) break;\n el = el.parentElement;\n }\n return elements;\n}\nexport function hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;\n}\nfunction isPotentiallyScrollable(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return ['scroll', 'auto'].includes(style.overflowY);\n}\n//# sourceMappingURL=getScrollParent.mjs.map","export function getScrollParent (el?: HTMLElement, includeHidden = false) {\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el\n el = el.parentElement!\n }\n\n return document.scrollingElement as HTMLElement\n}\n\nexport function getScrollParents (el?: Element | null, stopAt?: Element | null) {\n const elements: HTMLElement[] = []\n\n if (stopAt && el && !stopAt.contains(el)) return elements\n\n while (el) {\n if (hasScrollbar(el)) elements.push(el as HTMLElement)\n if (el === stopAt) break\n el = el.parentElement!\n }\n\n return elements\n}\n\nexport function hasScrollbar (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return style.overflowY === 'scroll' || (style.overflowY === 'auto' && el.scrollHeight > el.clientHeight)\n}\n\nfunction isPotentiallyScrollable (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['scroll', 'auto'].includes(style.overflowY)\n}\n","export function isFixedPosition(el) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true;\n }\n el = el.offsetParent;\n }\n return false;\n}\n//# sourceMappingURL=isFixedPosition.mjs.map","export function isFixedPosition (el?: HTMLElement) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true\n }\n el = el.offsetParent as HTMLElement\n }\n return false\n}\n","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function useRender(render) {\n const vm = getCurrentInstance('useRender');\n vm.render = render;\n}\n//# sourceMappingURL=useRender.mjs.map","// Utilities\nimport { getCurrentInstance } from './getCurrentInstance'\n\n// Types\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance('useRender') as any\n vm.render = render\n}\n","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel'\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...'\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.'\n },\n sortBy: 'Sort by'\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}'\n },\n dateRangeInput: {\n divider: 'to'\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates'\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date'\n }\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}'\n }\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today'\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}'\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)'\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time'\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page'\n }\n },\n stepper: {\n next: 'Next',\n prev: 'Previous'\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}'\n }\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more'\n }\n};\n//# sourceMappingURL=en.mjs.map","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel',\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n dateRangeInput: {\n divider: 'to',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates',\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date',\n },\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time',\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page',\n },\n },\n stepper: {\n next: 'Next',\n prev: 'Previous',\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more',\n },\n}\n","// Utilities\nimport { createRange, padStart } from \"../../../util/index.mjs\"; // Types\nconst firstDay = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0\n};\nfunction getWeekArray(date, locale, firstDayOfWeek) {\n const weeks = [];\n let currentWeek = [];\n const firstDayOfMonth = startOfMonth(date);\n const lastDayOfMonth = endOfMonth(date);\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\n currentWeek.push(adjacentDay);\n }\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i);\n\n // Add the day to the current week\n currentWeek.push(day);\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() + i);\n currentWeek.push(adjacentDay);\n }\n if (currentWeek.length > 0) {\n weeks.push(currentWeek);\n }\n return weeks;\n}\nfunction startOfWeek(date, locale, firstDayOfWeek) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const d = new Date(date);\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1);\n }\n return d;\n}\nfunction endOfWeek(date, locale) {\n const d = new Date(date);\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1);\n }\n return d;\n}\nfunction startOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\nfunction endOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\nfunction parseLocalDate(value) {\n const parts = value.split('-').map(Number);\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2]);\n}\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\nfunction date(value) {\n if (value == null) return new Date();\n if (value instanceof Date) return value;\n if (typeof value === 'string') {\n let parsed;\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value);\n } else {\n parsed = Date.parse(value);\n }\n if (!isNaN(parsed)) return new Date(parsed);\n }\n return null;\n}\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2);\nfunction getWeekdays(locale, firstDayOfWeek) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000);\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);\n return new Intl.DateTimeFormat(locale, {\n weekday: 'narrow'\n }).format(weekday);\n });\n}\nfunction format(value, formatString, locale, formats) {\n const newDate = date(value) ?? new Date();\n const customFormat = formats?.[formatString];\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale);\n }\n let options = {};\n switch (formatString) {\n case 'fullDate':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'fullDateWithWeekday':\n options = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'normalDate':\n const day = newDate.getDate();\n const month = new Intl.DateTimeFormat(locale, {\n month: 'long'\n }).format(newDate);\n return `${day} ${month}`;\n case 'normalDateWithWeekday':\n options = {\n weekday: 'short',\n day: 'numeric',\n month: 'short'\n };\n break;\n case 'shortDate':\n options = {\n month: 'short',\n day: 'numeric'\n };\n break;\n case 'year':\n options = {\n year: 'numeric'\n };\n break;\n case 'month':\n options = {\n month: 'long'\n };\n break;\n case 'monthShort':\n options = {\n month: 'short'\n };\n break;\n case 'monthAndYear':\n options = {\n month: 'long',\n year: 'numeric'\n };\n break;\n case 'monthAndDate':\n options = {\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'weekday':\n options = {\n weekday: 'long'\n };\n break;\n case 'weekdayShort':\n options = {\n weekday: 'short'\n };\n break;\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate());\n case 'hours12h':\n options = {\n hour: 'numeric',\n hour12: true\n };\n break;\n case 'hours24h':\n options = {\n hour: 'numeric',\n hour12: false\n };\n break;\n case 'minutes':\n options = {\n minute: 'numeric'\n };\n break;\n case 'seconds':\n options = {\n second: 'numeric'\n };\n break;\n case 'fullTime':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime12h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime24h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'fullDateTime':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime12h':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime24h':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDate':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n };\n break;\n case 'keyboardDateTime':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDateTime12h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'keyboardDateTime24h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n default:\n options = customFormat ?? {\n timeZone: 'UTC',\n timeZoneName: 'short'\n };\n }\n return new Intl.DateTimeFormat(locale, options).format(newDate);\n}\nfunction toISO(adapter, value) {\n const date = adapter.toJsDate(value);\n const year = date.getFullYear();\n const month = padStart(String(date.getMonth() + 1), 2, '0');\n const day = padStart(String(date.getDate()), 2, '0');\n return `${year}-${month}-${day}`;\n}\nfunction parseISO(value) {\n const [year, month, day] = value.split('-').map(Number);\n return new Date(year, month - 1, day);\n}\nfunction addMinutes(date, amount) {\n const d = new Date(date);\n d.setMinutes(d.getMinutes() + amount);\n return d;\n}\nfunction addHours(date, amount) {\n const d = new Date(date);\n d.setHours(d.getHours() + amount);\n return d;\n}\nfunction addDays(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount);\n return d;\n}\nfunction addWeeks(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount * 7);\n return d;\n}\nfunction addMonths(date, amount) {\n const d = new Date(date);\n d.setDate(1);\n d.setMonth(d.getMonth() + amount);\n return d;\n}\nfunction getYear(date) {\n return date.getFullYear();\n}\nfunction getMonth(date) {\n return date.getMonth();\n}\nfunction getDate(date) {\n return date.getDate();\n}\nfunction getNextMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\n}\nfunction getPreviousMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1);\n}\nfunction getHours(date) {\n return date.getHours();\n}\nfunction getMinutes(date) {\n return date.getMinutes();\n}\nfunction startOfYear(date) {\n return new Date(date.getFullYear(), 0, 1);\n}\nfunction endOfYear(date) {\n return new Date(date.getFullYear(), 11, 31);\n}\nfunction isWithinRange(date, range) {\n return isAfter(date, range[0]) && isBefore(date, range[1]);\n}\nfunction isValid(date) {\n const d = new Date(date);\n return d instanceof Date && !isNaN(d.getTime());\n}\nfunction isAfter(date, comparing) {\n return date.getTime() > comparing.getTime();\n}\nfunction isAfterDay(date, comparing) {\n return isAfter(startOfDay(date), startOfDay(comparing));\n}\nfunction isBefore(date, comparing) {\n return date.getTime() < comparing.getTime();\n}\nfunction isEqual(date, comparing) {\n return date.getTime() === comparing.getTime();\n}\nfunction isSameDay(date, comparing) {\n return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameMonth(date, comparing) {\n return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameYear(date, comparing) {\n return date.getFullYear() === comparing.getFullYear();\n}\nfunction getDiff(date, comparing, unit) {\n const d = new Date(date);\n const c = new Date(comparing);\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear();\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000);\n default:\n {\n return d.getTime() - c.getTime();\n }\n }\n}\nfunction setHours(date, count) {\n const d = new Date(date);\n d.setHours(count);\n return d;\n}\nfunction setMinutes(date, count) {\n const d = new Date(date);\n d.setMinutes(count);\n return d;\n}\nfunction setMonth(date, count) {\n const d = new Date(date);\n d.setMonth(count);\n return d;\n}\nfunction setDate(date, day) {\n const d = new Date(date);\n d.setDate(day);\n return d;\n}\nfunction setYear(date, year) {\n const d = new Date(date);\n d.setFullYear(year);\n return d;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n}\nfunction endOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n}\nexport class VuetifyDateAdapter {\n constructor(options) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n date(value) {\n return date(value);\n }\n toJsDate(date) {\n return date;\n }\n toISO(date) {\n return toISO(this, date);\n }\n parseISO(date) {\n return parseISO(date);\n }\n addMinutes(date, amount) {\n return addMinutes(date, amount);\n }\n addHours(date, amount) {\n return addHours(date, amount);\n }\n addDays(date, amount) {\n return addDays(date, amount);\n }\n addWeeks(date, amount) {\n return addWeeks(date, amount);\n }\n addMonths(date, amount) {\n return addMonths(date, amount);\n }\n getWeekArray(date, firstDayOfWeek) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n startOfWeek(date, firstDayOfWeek) {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n endOfWeek(date) {\n return endOfWeek(date, this.locale);\n }\n startOfMonth(date) {\n return startOfMonth(date);\n }\n endOfMonth(date) {\n return endOfMonth(date);\n }\n format(date, formatString) {\n return format(date, formatString, this.locale, this.formats);\n }\n isEqual(date, comparing) {\n return isEqual(date, comparing);\n }\n isValid(date) {\n return isValid(date);\n }\n isWithinRange(date, range) {\n return isWithinRange(date, range);\n }\n isAfter(date, comparing) {\n return isAfter(date, comparing);\n }\n isAfterDay(date, comparing) {\n return isAfterDay(date, comparing);\n }\n isBefore(date, comparing) {\n return !isAfter(date, comparing) && !isEqual(date, comparing);\n }\n isSameDay(date, comparing) {\n return isSameDay(date, comparing);\n }\n isSameMonth(date, comparing) {\n return isSameMonth(date, comparing);\n }\n isSameYear(date, comparing) {\n return isSameYear(date, comparing);\n }\n setMinutes(date, count) {\n return setMinutes(date, count);\n }\n setHours(date, count) {\n return setHours(date, count);\n }\n setMonth(date, count) {\n return setMonth(date, count);\n }\n setDate(date, day) {\n return setDate(date, day);\n }\n setYear(date, year) {\n return setYear(date, year);\n }\n getDiff(date, comparing, unit) {\n return getDiff(date, comparing, unit);\n }\n getWeekdays(firstDayOfWeek) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n getYear(date) {\n return getYear(date);\n }\n getMonth(date) {\n return getMonth(date);\n }\n getDate(date) {\n return getDate(date);\n }\n getNextMonth(date) {\n return getNextMonth(date);\n }\n getPreviousMonth(date) {\n return getPreviousMonth(date);\n }\n getHours(date) {\n return getHours(date);\n }\n getMinutes(date) {\n return getMinutes(date);\n }\n startOfDay(date) {\n return startOfDay(date);\n }\n endOfDay(date) {\n return endOfDay(date);\n }\n startOfYear(date) {\n return startOfYear(date);\n }\n endOfYear(date) {\n return endOfYear(date);\n }\n}\n//# sourceMappingURL=vuetify.mjs.map","// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nconst firstDay: Record = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0,\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7\n\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i))\n currentWeek.push(adjacentDay)\n }\n\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i)\n\n // Add the day to the current week\n currentWeek.push(day)\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek)\n currentWeek = []\n }\n }\n\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() + i)\n currentWeek.push(adjacentDay)\n }\n\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\n const d = new Date(date)\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1)\n }\n return d\n}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\n const parts = value.split('-').map(Number)\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2])\n}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000)\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i)\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter, value: Date) {\n const date = adapter.toJsDate(value)\n const year = date.getFullYear()\n const month = padStart(String(date.getMonth() + 1), 2, '0')\n const day = padStart(String(date.getDate()), 2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear()\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4)\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7))\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60))\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60))\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000)\n default: {\n return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter {\n locale: string\n formats?: Record\n\n constructor (options: { locale: string, formats?: Record }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue';\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from \"../util/index.mjs\";\nimport { IN_BROWSER, SUPPORTS_TOUCH } from \"../util/globals.mjs\"; // Types\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs\n\nexport const DisplaySymbol = Symbol.for('vuetify:display');\nconst defaultDisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n }\n};\nconst parseDisplayOptions = function () {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;\n return mergeDeep(defaultDisplayOptions, options);\n};\nfunction getClientWidth(ssr) {\n return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;\n}\nfunction getClientHeight(ssr) {\n return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;\n}\nfunction getPlatform(ssr) {\n const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';\n function match(regexp) {\n return Boolean(userAgent.match(regexp));\n }\n const android = match(/android/i);\n const ios = match(/iphone|ipad|ipod/i);\n const cordova = match(/cordova/i);\n const electron = match(/electron/i);\n const chrome = match(/chrome/i);\n const edge = match(/edge/i);\n const firefox = match(/firefox/i);\n const opera = match(/opera/i);\n const win = match(/win/i);\n const mac = match(/mac/i);\n const linux = match(/linux/i);\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr'\n };\n}\nexport function createDisplay(options, ssr) {\n const {\n thresholds,\n mobileBreakpoint\n } = parseDisplayOptions(options);\n const height = shallowRef(getClientHeight(ssr));\n const platform = shallowRef(getPlatform(ssr));\n const state = reactive({});\n const width = shallowRef(getClientWidth(ssr));\n function updateSize() {\n height.value = getClientHeight();\n width.value = getClientWidth();\n }\n function update() {\n updateSize();\n platform.value = getPlatform();\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm;\n const sm = width.value < thresholds.md && !xs;\n const md = width.value < thresholds.lg && !(sm || xs);\n const lg = width.value < thresholds.xl && !(md || sm || xs);\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);\n const xxl = width.value >= thresholds.xxl;\n const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];\n const mobile = width.value < breakpointValue;\n state.xs = xs;\n state.sm = sm;\n state.md = md;\n state.lg = lg;\n state.xl = xl;\n state.xxl = xxl;\n state.smAndUp = !xs;\n state.mdAndUp = !(xs || sm);\n state.lgAndUp = !(xs || sm || md);\n state.xlAndUp = !(xs || sm || md || lg);\n state.smAndDown = !(md || lg || xl || xxl);\n state.mdAndDown = !(lg || xl || xxl);\n state.lgAndDown = !(xl || xxl);\n state.xlAndDown = !xxl;\n state.name = name;\n state.height = height.value;\n state.width = width.value;\n state.mobile = mobile;\n state.mobileBreakpoint = mobileBreakpoint;\n state.platform = platform.value;\n state.thresholds = thresholds;\n });\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, {\n passive: true\n });\n }\n return {\n ...toRefs(state),\n update,\n ssr: !!ssr\n };\n}\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean,\n default: false\n },\n mobileBreakpoint: [Number, String]\n}, 'display');\nexport function useDisplay() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const display = inject(DisplaySymbol);\n if (!display) throw new Error('Could not find Vuetify display injection');\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile;\n if (!props.mobileBreakpoint) return display.mobile.value;\n const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];\n return display.width.value < breakpointValue;\n });\n const displayClasses = computed(() => {\n if (!name) return {};\n return {\n [`${name}--mobile`]: mobile.value\n };\n });\n return {\n ...display,\n displayClasses,\n mobile\n };\n}\n//# sourceMappingURL=display.mjs.map","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from '@/util'\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayProps {\n mobile?: boolean | null\n mobileBreakpoint?: number | DisplayBreakpoint\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport type SSROptions = boolean | {\n clientWidth: number\n clientHeight?: number\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref\n sm: Ref\n md: Ref\n lg: Ref\n xl: Ref\n xxl: Ref\n smAndUp: Ref\n mdAndUp: Ref\n lgAndUp: Ref\n xlAndUp: Ref\n smAndDown: Ref\n mdAndDown: Ref\n lgAndDown: Ref\n xlAndDown: Ref\n name: Ref\n height: Ref\n width: Ref\n mobile: Ref\n mobileBreakpoint: Ref\n platform: Ref\n thresholds: Ref\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerWidth\n : (typeof ssr === 'object' && ssr.clientWidth) || 0\n}\n\nfunction getClientHeight (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerHeight\n : (typeof ssr === 'object' && ssr.clientHeight) || 0\n}\n\nfunction getPlatform (ssr?: SSROptions): DisplayPlatform {\n const userAgent = IN_BROWSER && !ssr\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: SSROptions): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean as PropType,\n default: false,\n },\n mobileBreakpoint: [Number, String] as PropType,\n}, 'display')\n\nexport function useDisplay (\n props: DisplayProps = {},\n name = getCurrentInstanceName(),\n) {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile\n if (!props.mobileBreakpoint) return display.mobile.value\n\n const breakpointValue = typeof props.mobileBreakpoint === 'number'\n ? props.mobileBreakpoint\n : display.thresholds.value[props.mobileBreakpoint]\n\n return display.width.value < breakpointValue\n })\n\n const displayClasses = computed(() => {\n if (!name) return {}\n\n return { [`${name}--mobile`]: mobile.value }\n })\n\n return { ...display, displayClasses, mobile }\n}\n","// Utilities\nimport { computed, inject } from 'vue';\nimport { useRtl } from \"./locale.mjs\";\nimport { clamp, consoleWarn, mergeDeep, refElement } from \"../util/index.mjs\"; // Types\nexport const GoToSymbol = Symbol.for('vuetify:goto');\nfunction genDefaults() {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: t => t,\n easeInQuad: t => t ** 2,\n easeOutQuad: t => t * (2 - t),\n easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,\n easeInCubic: t => t ** 3,\n easeOutCubic: t => --t ** 3 + 1,\n easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: t => t ** 4,\n easeOutQuart: t => 1 - --t ** 4,\n easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,\n easeInQuint: t => t ** 5,\n easeOutQuint: t => 1 + --t ** 5,\n easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5\n }\n };\n}\nfunction getContainer(el) {\n return getTarget(el) ?? (document.scrollingElement || document.body);\n}\nfunction getTarget(el) {\n return typeof el === 'string' ? document.querySelector(el) : refElement(el);\n}\nfunction getOffset(target, horizontal, rtl) {\n if (typeof target === 'number') return horizontal && rtl ? -target : target;\n let el = getTarget(target);\n let totalOffset = 0;\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop;\n el = el.offsetParent;\n }\n return totalOffset;\n}\nexport function createGoTo(options, locale) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options)\n };\n}\nexport async function scrollTo(_target, _options, horizontal, goTo) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop';\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options);\n const rtl = goTo?.rtl.value;\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;\n const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`);\n let targetLocation;\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl);\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);\n if (options.layout) {\n const styles = window.getComputedStyle(target);\n const layoutOffset = styles.getPropertyValue('--v-layout-top');\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);\n }\n }\n targetLocation += options.offset;\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);\n const startLocation = container[property] ?? 0;\n if (targetLocation === startLocation) return Promise.resolve(targetLocation);\n const startTime = performance.now();\n return new Promise(resolve => requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));\n container[property] = location;\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation);\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable');\n return resolve(container[property]);\n }\n requestAnimationFrame(step);\n }));\n}\nexport function useGoTo() {\n let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const goToInstance = inject(GoToSymbol);\n const {\n isRtl\n } = useRtl();\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value)\n };\n async function go(target, options) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo);\n }\n go.horizontal = async (target, options) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo);\n };\n return go;\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget(container, value, rtl, horizontal) {\n const {\n scrollWidth,\n scrollHeight\n } = container;\n const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];\n let min;\n let max;\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth);\n max = 0;\n } else {\n min = 0;\n max = scrollWidth - containerWidth;\n }\n } else {\n min = 0;\n max = scrollHeight + -containerHeight;\n }\n return Math.max(Math.min(value, max), min);\n}\n//# sourceMappingURL=goto.mjs.map","// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record number>\n}\n\nexport type GoToOptions = Partial\n\nexport const GoToSymbol: InjectionKey = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Icons\nimport { aliases, mdi } from \"../iconsets/mdi.mjs\"; // Utilities\nimport { computed, inject, unref } from 'vue';\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from \"../util/index.mjs\"; // Types\nexport const IconValue = [String, Function, Object, Array];\nexport const IconSymbol = Symbol.for('vuetify:icons');\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true\n }\n}, 'icon');\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n props: makeIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n const Icon = props.icon;\n return _createVNode(props.tag, null, {\n default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]\n });\n };\n }\n});\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n inheritAttrs: false,\n props: makeIconProps(),\n setup(props, _ref2) {\n let {\n attrs\n } = _ref2;\n return () => {\n return _createVNode(props.tag, _mergeProps(attrs, {\n \"style\": null\n }), {\n default: () => [_createVNode(\"svg\", {\n \"class\": \"v-icon__svg\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"role\": \"img\",\n \"aria-hidden\": \"true\"\n }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createVNode(\"path\", {\n \"d\": path[0],\n \"fill-opacity\": path[1]\n }, null) : _createVNode(\"path\", {\n \"d\": path\n }, null)) : _createVNode(\"path\", {\n \"d\": props.icon\n }, null)])]\n });\n };\n }\n});\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, null, {\n default: () => [props.icon]\n });\n };\n }\n});\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, {\n \"class\": props.icon\n }, null);\n };\n }\n});\nfunction genDefaults() {\n return {\n svg: {\n component: VSvgIcon\n },\n class: {\n component: VClassIcon\n }\n };\n}\n\n// Composables\nexport function createIcons(options) {\n const sets = genDefaults();\n const defaultSet = options?.defaultSet ?? 'mdi';\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi;\n }\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]\n /* eslint-enable max-len */\n }\n }, options);\n}\nexport const useIcon = props => {\n const icons = inject(IconSymbol);\n if (!icons) throw new Error('Missing Vuetify Icons provide!');\n const iconData = computed(() => {\n const iconAlias = unref(props);\n if (!iconAlias) return {\n component: VComponentIcon\n };\n let icon = iconAlias;\n if (typeof icon === 'string') {\n icon = icon.trim();\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)];\n }\n }\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`);\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon\n };\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon\n };\n }\n const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet];\n return {\n component: iconSet.component,\n icon: iconName\n };\n });\n return {\n iconData\n };\n};\n//# sourceMappingURL=icons.mjs.map","// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, unref } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, FunctionalComponent, InjectionKey, PropType, Ref } from 'vue'\n\nexport type JSXComponent =\n | { new (): ComponentPublicInstance }\n | FunctionalComponent\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial\n sets: Record\n}\n\nexport type IconOptions = Partial\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n \n { props.icon ? : slots.default?.() }\n \n )\n }\n },\n})\nexport type VComponentIcon = InstanceType\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n \n \n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? \n : \n ))\n : \n }\n \n \n )\n }\n },\n})\nexport type VSvgIcon = InstanceType\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return { props.icon }\n }\n },\n})\nexport type VLigatureIcon = InstanceType\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return \n }\n },\n})\nexport type VClassIcon = InstanceType\n\nfunction genDefaults (): Record {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: Ref) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed(() => {\n const iconAlias = unref(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","// Composables\nimport { VClassIcon } from \"../composables/icons.mjs\"; // Utilities\nimport { h } from 'vue';\n\n// Types\n\nconst aliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle',\n // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle',\n // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper'\n};\nconst mdi = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: props => h(VClassIcon, {\n ...props,\n class: 'mdi'\n })\n};\nexport { aliases, mdi };\n//# sourceMappingURL=mdi.mjs.map","// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","// Utilities\nimport { computed, inject, provide, ref, watch, watchEffect } from 'vue';\nimport { createRange, darken, getCurrentInstance, getForeground, getLuma, IN_BROWSER, lighten, mergeDeep, parseColor, propsFactory, RGBtoHex } from \"../util/index.mjs\"; // Types\nexport const ThemeSymbol = Symbol.for('vuetify:theme');\nexport const makeThemeProps = propsFactory({\n theme: String\n}, 'theme');\nfunction genDefaults() {\n return {\n defaultTheme: 'light',\n variations: {\n colors: [],\n lighten: 0,\n darken: 0\n },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000'\n }\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#a3a3a3',\n 'on-surface-variant': '#424242',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC'\n }\n }\n }\n };\n}\nfunction parseThemeOptions() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();\n const defaults = genDefaults();\n if (!options) return {\n ...defaults,\n isDisabled: true\n };\n const themes = {};\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;\n themes[key] = mergeDeep(defaultTheme, theme);\n }\n return mergeDeep(defaults, {\n ...options,\n themes\n });\n}\n\n// Composables\nexport function createTheme(options) {\n const parsedOptions = parseThemeOptions(options);\n const name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const computedThemes = computed(() => {\n const acc = {};\n for (const [name, original] of Object.entries(themes.value)) {\n const theme = acc[name] = {\n ...original,\n colors: {\n ...original.colors\n }\n };\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name];\n if (!color) continue;\n for (const variation of ['lighten', 'darken']) {\n const fn = variation === 'lighten' ? lighten : darken;\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));\n }\n }\n }\n }\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;\n const onColor = `on-${color}`;\n const colorVal = parseColor(theme.colors[color]);\n theme.colors[onColor] = getForeground(colorVal);\n }\n }\n return acc;\n });\n const current = computed(() => computedThemes.value[name.value]);\n const styles = computed(() => {\n const lines = [];\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark']);\n }\n createCssClass(lines, ':root', genCssVariables(current.value));\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);\n }\n const bgLines = [];\n const fgLines = [];\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n } else {\n createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);\n }\n }\n lines.push(...bgLines, ...fgLines);\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');\n });\n function getHead() {\n return {\n style: [{\n children: styles.value,\n id: 'vuetify-theme-stylesheet',\n nonce: parsedOptions.cspNonce || false\n }]\n };\n }\n function install(app) {\n if (parsedOptions.isDisabled) return;\n const head = app._context.provides.usehead;\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n if (IN_BROWSER) {\n watch(styles, () => {\n entry.patch(getHead);\n });\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;\n if (IN_BROWSER) {\n watch(styles, updateStyles, {\n immediate: true\n });\n } else {\n updateStyles();\n }\n function updateStyles() {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style');\n el.type = 'text/css';\n el.id = 'vuetify-theme-stylesheet';\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);\n styleEl = el;\n document.head.appendChild(styleEl);\n }\n if (styleEl) styleEl.innerHTML = styles.value;\n }\n }\n }\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\nexport function provideTheme(props) {\n getCurrentInstance('provideTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n const name = computed(() => {\n return props.theme ?? theme.name.value;\n });\n const current = computed(() => theme.themes.value[name.value]);\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);\n const newTheme = {\n ...theme,\n name,\n current,\n themeClasses\n };\n provide(ThemeSymbol, newTheme);\n return newTheme;\n}\nexport function useTheme() {\n getCurrentInstance('useTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n return theme;\n}\nfunction createCssClass(lines, selector, content) {\n lines.push(`${selector} {\\n`, ...content.map(line => ` ${line};\\n`), '}\\n');\n}\nfunction genCssVariables(theme) {\n const lightOverlay = theme.dark ? 2 : 1;\n const darkOverlay = theme.dark ? 1 : 2;\n const variables = [];\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value);\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);\n }\n }\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;\n variables.push(`--v-${key}: ${rgb ?? value}`);\n }\n return variables;\n}\n//# sourceMappingURL=theme.mjs.map","// Utilities\nimport {\n computed,\n inject,\n provide,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n createRange,\n darken,\n getCurrentInstance,\n getForeground,\n getLuma,\n IN_BROWSER,\n lighten,\n mergeDeep,\n parseColor,\n propsFactory,\n RGBtoHex,\n} from '@/util'\n\n// Types\nimport type { VueHeadClient } from '@unhead/vue'\nimport type { HeadClient } from '@vueuse/head'\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\n\ntype DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial } : T\n\nexport type ThemeOptions = false | {\n cspNonce?: string\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record\n}\nexport type ThemeDefinition = DeepPartial\n\ninterface InternalThemeOptions {\n cspNonce?: string\n isDisabled: boolean\n defaultTheme: string\n variations: false | VariationsOptions\n themes: Record\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface ThemeInstance {\n readonly isDisabled: boolean\n readonly themes: Ref>\n\n readonly name: Readonly>\n readonly current: DeepReadonly>\n readonly computedThemes: DeepReadonly>>\n\n readonly themeClasses: Readonly>\n readonly styles: Readonly>\n\n readonly global: {\n readonly name: Ref\n readonly current: DeepReadonly>\n }\n}\n\nexport const ThemeSymbol: InjectionKey = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nfunction genDefaults () {\n return {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#a3a3a3',\n 'on-surface-variant': '#424242',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC',\n },\n },\n },\n }\n}\n\nfunction parseThemeOptions (options: ThemeOptions = genDefaults()): InternalThemeOptions {\n const defaults = genDefaults()\n\n if (!options) return { ...defaults, isDisabled: true } as any\n\n const themes: Record = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark'\n ? defaults.themes?.dark\n : defaults.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\n\n return mergeDeep(\n defaults,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options)\n const name = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n\n const computedThemes = computed(() => {\n const acc: Record = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const theme: InternalThemeDefinition = acc[name] = {\n ...original,\n colors: {\n ...original.colors,\n },\n }\n\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name]\n\n if (!color) continue\n\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount))\n }\n }\n }\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = parseColor(theme.colors[color]!)\n\n theme.colors[onColor] = getForeground(colorVal)\n }\n }\n\n return acc\n })\n const current = computed(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'])\n }\n\n createCssClass(lines, ':root', genCssVariables(current.value))\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.v-theme--${themeName}`, [\n `color-scheme: ${theme.dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme),\n ])\n }\n\n const bgLines: string[] = []\n const fgLines: string[] = []\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n } else {\n createCssClass(bgLines, `.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--v-theme-${key})) !important`,\n `color: rgb(var(--v-theme-on-${key})) !important`,\n ])\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`])\n }\n }\n\n lines.push(...bgLines, ...fgLines)\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n function getHead () {\n return {\n style: [{\n children: styles.value,\n id: 'vuetify-theme-stylesheet',\n nonce: parsedOptions.cspNonce || false as never,\n }],\n }\n }\n\n function install (app: App) {\n if (parsedOptions.isDisabled) return\n\n const head = app._context.provides.usehead as HeadClient & VueHeadClient | undefined\n if (head) {\n if (head.push) {\n const entry = head.push(getHead)\n if (IN_BROWSER) {\n watch(styles, () => { entry.patch(getHead) })\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead))\n watchEffect(() => head.updateDOM())\n } else {\n head.addHeadObjs(getHead())\n }\n }\n } else {\n let styleEl = IN_BROWSER\n ? document.getElementById('vuetify-theme-stylesheet')\n : null\n\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true })\n } else {\n updateStyles()\n }\n\n function updateStyles () {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce)\n\n styleEl = el\n document.head.appendChild(styleEl)\n }\n\n if (styleEl) styleEl.innerHTML = styles.value\n }\n }\n }\n\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`)\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current,\n },\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const name = computed(() => {\n return props.theme ?? theme.name.value\n })\n const current = computed(() => theme.themes.value[name.value])\n\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[]) {\n lines.push(\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition) {\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n variables.push(`--v-${key}: ${rgb ?? value}`)\n }\n\n return variables\n}\n","/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\nexport { useDate } from \"./date/index.mjs\";\nexport { useDefaults } from \"./defaults.mjs\";\nexport { useDisplay } from \"./display.mjs\";\nexport { useGoTo } from \"./goto.mjs\";\nexport { useLayout } from \"./layout.mjs\";\nexport { useLocale, useRtl } from \"./locale.mjs\";\nexport { useTheme } from \"./theme.mjs\";\n//# sourceMappingURL=index.mjs.map","/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDefaults } from './defaults'\nexport { useDisplay } from './display'\nexport { useGoTo } from './goto'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { GoToInstance } from './goto'\nexport type { IconAliases, IconProps, IconSet, IconOptions, JSXComponent } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n","export { createDate, useDate, DateAdapterSymbol } from \"./date.mjs\";\n//# sourceMappingURL=index.mjs.map","export { createDate, useDate, DateAdapterSymbol } from './date'\nexport type { DateAdapter } from './DateAdapter'\nexport type { DateOptions, DateInstance, DateModule } from './date'\n","// Composables\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef } from 'vue';\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from \"../util/index.mjs\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${getUid()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = computed(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map((_ref, index) => {\n let {\n id\n } = _ref;\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, _ref2) => {\n let {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n } = _ref2;\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = computed(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.mjs.map","// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref\n position: Ref\n layoutSize: Ref\n elementSize: Ref\n active: Ref\n disableTransitions?: Ref\n absolute: Ref\n }\n ) => {\n layoutItemStyles: Ref\n layoutItemScrimStyles: Ref\n zIndex: Ref\n }\n unregister: (id: string) => void\n mainRect: Ref\n mainStyles: Ref\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref\n layoutRect: Ref\n rootZIndex: Ref\n}\n\nexport const VuetifyLayoutKey: InjectionKey = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref\n position: Ref\n layoutSize: Ref\n elementSize: Ref\n active: Ref\n disableTransitions?: Ref\n absolute: Ref\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map>,\n layoutSizes: Map>,\n activeItems: Map>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref([])\n const positions = reactive(new Map>())\n const layoutSizes = reactive(new Map>())\n const priorities = reactive(new Map>())\n const activeItems = reactive(new Map>())\n const disabledTransitions = reactive(new Map>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n const size = elementSize.value ?? layoutSize.value\n const unit = size === 0 ? '%' : 'px'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.mjs\";\nimport { IN_BROWSER } from \"../util/globals.mjs\"; // Types\nexport function useResizeObserver(callback) {\n let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.mjs.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { templateRef } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\nimport type { TemplateRef } from '@/util'\n\ninterface ResizeState {\n resizeRef: TemplateRef\n contentRect: DeepReadonly>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = templateRef()\n const contentRect = ref()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n","export * from \"./VApp/index.mjs\";\nexport * from \"./VAppBar/index.mjs\";\nexport * from \"./VAlert/index.mjs\";\nexport * from \"./VAutocomplete/index.mjs\";\nexport * from \"./VAvatar/index.mjs\";\nexport * from \"./VBadge/index.mjs\";\nexport * from \"./VBanner/index.mjs\";\nexport * from \"./VBottomNavigation/index.mjs\";\nexport * from \"./VBottomSheet/index.mjs\";\nexport * from \"./VBreadcrumbs/index.mjs\";\nexport * from \"./VBtn/index.mjs\";\nexport * from \"./VBtnGroup/index.mjs\";\nexport * from \"./VBtnToggle/index.mjs\"; // export * from './VCalendar'\nexport * from \"./VCard/index.mjs\";\nexport * from \"./VCarousel/index.mjs\";\nexport * from \"./VCheckbox/index.mjs\";\nexport * from \"./VChip/index.mjs\";\nexport * from \"./VChipGroup/index.mjs\";\nexport * from \"./VCode/index.mjs\";\nexport * from \"./VColorPicker/index.mjs\";\nexport * from \"./VCombobox/index.mjs\";\nexport * from \"./VConfirmEdit/index.mjs\";\nexport * from \"./VCounter/index.mjs\";\nexport * from \"./VDataIterator/index.mjs\";\nexport * from \"./VDataTable/index.mjs\";\nexport * from \"./VDatePicker/index.mjs\";\nexport * from \"./VDefaultsProvider/index.mjs\";\nexport * from \"./VDialog/index.mjs\";\nexport * from \"./VDivider/index.mjs\";\nexport * from \"./VEmptyState/index.mjs\";\nexport * from \"./VExpansionPanel/index.mjs\";\nexport * from \"./VFab/index.mjs\";\nexport * from \"./VField/index.mjs\";\nexport * from \"./VFileInput/index.mjs\";\nexport * from \"./VFooter/index.mjs\";\nexport * from \"./VForm/index.mjs\";\nexport * from \"./VGrid/index.mjs\";\nexport * from \"./VHover/index.mjs\";\nexport * from \"./VIcon/index.mjs\";\nexport * from \"./VImg/index.mjs\";\nexport * from \"./VInfiniteScroll/index.mjs\";\nexport * from \"./VInput/index.mjs\";\nexport * from \"./VItemGroup/index.mjs\";\nexport * from \"./VKbd/index.mjs\";\nexport * from \"./VLabel/index.mjs\";\nexport * from \"./VLayout/index.mjs\";\nexport * from \"./VLazy/index.mjs\";\nexport * from \"./VList/index.mjs\";\nexport * from \"./VLocaleProvider/index.mjs\";\nexport * from \"./VMain/index.mjs\";\nexport * from \"./VMenu/index.mjs\";\nexport * from \"./VMessages/index.mjs\";\nexport * from \"./VNavigationDrawer/index.mjs\";\nexport * from \"./VNoSsr/index.mjs\";\nexport * from \"./VOtpInput/index.mjs\"; // export * from './VOverflowBtn'\nexport * from \"./VOverlay/index.mjs\";\nexport * from \"./VPagination/index.mjs\";\nexport * from \"./VParallax/index.mjs\";\nexport * from \"./VProgressCircular/index.mjs\";\nexport * from \"./VProgressLinear/index.mjs\";\nexport * from \"./VRadio/index.mjs\";\nexport * from \"./VRadioGroup/index.mjs\";\nexport * from \"./VRangeSlider/index.mjs\";\nexport * from \"./VRating/index.mjs\";\nexport * from \"./VResponsive/index.mjs\";\nexport * from \"./VSelect/index.mjs\";\nexport * from \"./VSelectionControl/index.mjs\";\nexport * from \"./VSelectionControlGroup/index.mjs\";\nexport * from \"./VSheet/index.mjs\";\nexport * from \"./VSkeletonLoader/index.mjs\";\nexport * from \"./VSlideGroup/index.mjs\";\nexport * from \"./VSlider/index.mjs\";\nexport * from \"./VSnackbar/index.mjs\";\nexport * from \"./VSparkline/index.mjs\";\nexport * from \"./VSpeedDial/index.mjs\";\nexport * from \"./VStepper/index.mjs\";\nexport * from \"./VSwitch/index.mjs\";\nexport * from \"./VSystemBar/index.mjs\";\nexport * from \"./VTabs/index.mjs\";\nexport * from \"./VTable/index.mjs\";\nexport * from \"./VTextarea/index.mjs\";\nexport * from \"./VTextField/index.mjs\";\nexport * from \"./VThemeProvider/index.mjs\";\nexport * from \"./VTimeline/index.mjs\"; // export * from './VTimePicker'\nexport * from \"./VToolbar/index.mjs\";\nexport * from \"./VTooltip/index.mjs\"; // export * from './VTreeview'\nexport * from \"./VValidation/index.mjs\";\nexport * from \"./VVirtualScroll/index.mjs\";\nexport * from \"./VWindow/index.mjs\";\nexport * from \"./transitions/index.mjs\";\n//# sourceMappingURL=index.mjs.map","export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnGroup'\nexport * from './VBtnToggle'\n// export * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VCode'\nexport * from './VColorPicker'\nexport * from './VCombobox'\nexport * from './VConfirmEdit'\nexport * from './VCounter'\nexport * from './VDataIterator'\nexport * from './VDataTable'\nexport * from './VDatePicker'\nexport * from './VDefaultsProvider'\nexport * from './VDialog'\nexport * from './VDivider'\nexport * from './VEmptyState'\nexport * from './VExpansionPanel'\nexport * from './VFab'\nexport * from './VField'\nexport * from './VFileInput'\nexport * from './VFooter'\nexport * from './VForm'\nexport * from './VGrid'\nexport * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\nexport * from './VInfiniteScroll'\nexport * from './VInput'\nexport * from './VItemGroup'\nexport * from './VKbd'\nexport * from './VLabel'\nexport * from './VLayout'\nexport * from './VLazy'\nexport * from './VList'\nexport * from './VLocaleProvider'\nexport * from './VMain'\nexport * from './VMenu'\nexport * from './VMessages'\nexport * from './VNavigationDrawer'\nexport * from './VNoSsr'\nexport * from './VOtpInput'\n// export * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VParallax'\nexport * from './VProgressCircular'\nexport * from './VProgressLinear'\nexport * from './VRadio'\nexport * from './VRadioGroup'\nexport * from './VRangeSlider'\nexport * from './VRating'\nexport * from './VResponsive'\nexport * from './VSelect'\nexport * from './VSelectionControl'\nexport * from './VSelectionControlGroup'\nexport * from './VSheet'\nexport * from './VSkeletonLoader'\nexport * from './VSlideGroup'\nexport * from './VSlider'\nexport * from './VSnackbar'\nexport * from './VSparkline'\nexport * from './VSpeedDial'\nexport * from './VStepper'\nexport * from './VSwitch'\nexport * from './VSystemBar'\nexport * from './VTabs'\nexport * from './VTable'\nexport * from './VTextarea'\nexport * from './VTextField'\nexport * from './VThemeProvider'\nexport * from './VTimeline'\n// export * from './VTimePicker'\nexport * from './VToolbar'\nexport * from './VTooltip'\n// export * from './VTreeview'\nexport * from './VValidation'\nexport * from './VVirtualScroll'\nexport * from './VWindow'\nexport * from './transitions'\n","export { VApp } from \"./VApp.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VApp } from './VApp'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VApp.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({\n fullHeight: true\n }),\n ...makeThemeProps()\n}, 'VApp');\nexport const VApp = genericComponent()({\n name: 'VApp',\n props: makeVAppProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const theme = provideTheme(props);\n const {\n layoutClasses,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n rtlClasses\n } = useRtl();\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],\n \"style\": [props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-application__wrap\"\n }, [slots.default?.()])]));\n return {\n getLayoutItem,\n items,\n theme\n };\n }\n});\n//# sourceMappingURL=VApp.mjs.map","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n}, 'VApp')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n \n

\n { slots.default?.() }\n
\n \n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType\n","export { VAppBar } from \"./VAppBar.mjs\";\nexport { VAppBarNavIcon } from \"./VAppBarNavIcon.mjs\";\nexport { VAppBarTitle } from \"./VAppBarTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAppBar } from './VAppBar'\nexport { VAppBarNavIcon } from './VAppBarNavIcon'\nexport { VAppBarTitle } from './VAppBarTitle'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VAppBar.css\";\n\n// Components\nimport { makeVToolbarProps, VToolbar } from \"../VToolbar/VToolbar.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeScrollProps, useScroll } from \"../../composables/scroll.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n location: {\n type: String,\n default: 'top',\n validator: value => ['top', 'bottom'].includes(value)\n },\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n height: {\n type: [Number, String],\n default: 64\n }\n}, 'VAppBar');\nexport const VAppBar = genericComponent()({\n name: 'VAppBar',\n props: makeVAppBarProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vToolbarRef = ref();\n const isActive = useProxiedModel(props, 'modelValue');\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);\n return {\n hide: behavior.has('hide'),\n fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image')\n // shrink: behavior.has('shrink'),\n };\n });\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value;\n return behavior.hide || behavior.fullyHide || behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value;\n });\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio\n } = useScroll(props, {\n canScroll\n });\n const canHide = computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);\n const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));\n const isFlat = computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));\n const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;\n const height = vToolbarRef.value?.contentHeight ?? 0;\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;\n if (!canHide.value) return height + extensionHeight;\n return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;\n });\n useToggleScope(computed(() => !!props.scrollBehavior), () => {\n watchEffect(() => {\n if (canHide.value) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value;\n } else {\n isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;\n }\n } else {\n isActive.value = true;\n }\n });\n });\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useRender(() => {\n const toolbarProps = VToolbar.filterProps(props);\n return _createVNode(VToolbar, _mergeProps({\n \"ref\": vToolbarRef,\n \"class\": ['v-app-bar', {\n 'v-app-bar--bottom': props.location === 'bottom'\n }, props.class],\n \"style\": [{\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value\n }, props.style]\n }, toolbarProps, {\n \"collapse\": isCollapsed.value,\n \"flat\": isFlat.value\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VAppBar.mjs.map","// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String as PropType<'hide' | 'fully-hide' | 'inverted' | 'collapse' | 'elevate' | 'fade-image' | (string & {})>,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n}, 'VAppBar')\n\nexport const VAppBar = genericComponent()({\n name: 'VAppBar',\n\n props: makeVAppBarProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const canHide = computed(() => (\n scrollBehavior.value.hide ||\n scrollBehavior.value.fullyHide\n ))\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.fullyHide &&\n !isActive.value\n ) || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n if (!canHide.value) return (height + extensionHeight)\n\n return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide\n ? (height + extensionHeight)\n : height\n })\n\n useToggleScope(computed(() => !!props.scrollBehavior), () => {\n watchEffect(() => {\n if (canHide.value) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n })\n })\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const toolbarProps = VToolbar.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VToolbar.css\";\n\n// Components\nimport { VToolbarTitle } from \"./VToolbarTitle.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'];\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64\n },\n image: String,\n title: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeThemeProps()\n}, 'VToolbar');\nexport const VToolbar = genericComponent()({\n name: 'VToolbar',\n props: makeVToolbarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()));\n const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));\n const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);\n provideDefaults({\n VBtn: {\n variant: 'text'\n }\n });\n useRender(() => {\n const hasTitle = !!(props.title || slots.title);\n const hasImage = !!(slots.image || props.image);\n const extension = slots.extension?.();\n isExtended.value = !!(props.extended || extension);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar', {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true\n }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-toolbar__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(contentHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-toolbar__content\",\n \"style\": {\n height: convertToUnit(contentHeight.value)\n }\n }, [slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-toolbar__prepend\"\n }, [slots.prepend?.()]), hasTitle && _createVNode(VToolbarTitle, {\n \"key\": \"title\",\n \"text\": props.title\n }, {\n text: slots.title\n }), slots.default?.(), slots.append && _createVNode(\"div\", {\n \"class\": \"v-toolbar__append\"\n }, [slots.append?.()])])]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(extensionHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(VExpandTransition, null, {\n default: () => [isExtended.value && _createVNode(\"div\", {\n \"class\": \"v-toolbar__extension\",\n \"style\": {\n height: convertToUnit(extensionHeight.value)\n }\n }, [extension])]\n })]\n })]\n });\n });\n return {\n contentHeight,\n extensionHeight\n };\n }\n});\n//# sourceMappingURL=VToolbar.mjs.map","// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VToolbarTitle } from './VToolbarTitle'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport type Density = null | 'prominent' | 'default' | 'comfortable' | 'compact'\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'VToolbar')\n\nexport type VToolbarSlots = {\n default: never\n image: never\n prepend: never\n append: never\n title: never\n extension: never\n}\n\nexport const VToolbar = genericComponent()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n \n { hasImage && (\n
\n { !slots.image ? (\n \n ) : (\n \n )}\n
\n )}\n\n \n \n { slots.prepend && (\n
\n { slots.prepend?.() }\n
\n )}\n\n { hasTitle && (\n \n {{ text: slots.title }}\n \n )}\n\n { slots.default?.() }\n\n { slots.append && (\n
\n { slots.append?.() }\n
\n )}\n \n \n\n \n \n { isExtended.value && (\n \n { extension }\n \n )}\n \n \n \n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarTitleProps = propsFactory({\n text: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VToolbarTitle');\nexport const VToolbarTitle = genericComponent()({\n name: 'VToolbarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar-title', props.class],\n \"style\": props.style\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-toolbar-title__placeholder\"\n }, [slots.text ? slots.text() : props.text, slots.default?.()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VToolbarTitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVToolbarTitleProps = propsFactory({\n text: String,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VToolbarTitle')\n\nexport type VToolbarTitleSlots = {\n default: never\n text: never\n}\n\nexport const VToolbarTitle = genericComponent()({\n name: 'VToolbarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text)\n\n return (\n \n { hasText && (\n
\n { slots.text ? slots.text() : props.text }\n\n { slots.default?.() }\n
\n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VToolbarTitle = InstanceType\n","// Utilities\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.mjs.map","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","import { createCssTransition, createJavascriptTransition } from \"./createTransition.mjs\";\nimport ExpandTransitionGenerator from \"./expand-transition.mjs\"; // Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition');\nexport const VFadeTransition = createCssTransition('fade-transition');\nexport const VScaleTransition = createCssTransition('scale-transition');\nexport const VScrollXTransition = createCssTransition('scroll-x-transition');\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');\nexport const VScrollYTransition = createCssTransition('scroll-y-transition');\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');\nexport const VSlideXTransition = createCssTransition('slide-x-transition');\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');\nexport const VSlideYTransition = createCssTransition('slide-y-transition');\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport { VDialogTransition } from \"./dialog-transition.mjs\";\n//# sourceMappingURL=index.mjs.map","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport { VDialogTransition } from './dialog-transition'\n\nexport type VFabTransition = InstanceType\nexport type VDialogBottomTransition = InstanceType\nexport type VDialogTopTransition = InstanceType\nexport type VFadeTransition = InstanceType\nexport type VScaleTransition = InstanceType\nexport type VScrollXTransition = InstanceType\nexport type VScrollXReverseTransition = InstanceType\nexport type VScrollYTransition = InstanceType\nexport type VScrollYReverseTransition = InstanceType\nexport type VSlideXTransition = InstanceType\nexport type VSlideXReverseTransition = InstanceType\nexport type VSlideYTransition = InstanceType\nexport type VSlideYReverseTransition = InstanceType\nexport type VExpandTransition = InstanceType\nexport type VExpandXTransition = InstanceType\n","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String\n}, 'transition');\nexport function createCssTransition(name, origin, mode) {\n return genericComponent()({\n name,\n props: makeTransitionProps({\n mode,\n origin\n }),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n if (props.origin) {\n el.style.transformOrigin = props.origin;\n }\n },\n onLeave(el) {\n if (props.leaveAbsolute) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = el;\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height\n };\n el.style.position = 'absolute';\n el.style.top = `${offsetTop}px`;\n el.style.left = `${offsetLeft}px`;\n el.style.width = `${offsetWidth}px`;\n el.style.height = `${offsetHeight}px`;\n }\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important');\n }\n },\n onAfterLeave(el) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const {\n position,\n top,\n left,\n width,\n height\n } = el._transitionInitialStyles;\n delete el._transitionInitialStyles;\n el.style.position = position || '';\n el.style.top = top || '';\n el.style.left = left || '';\n el.style.width = width || '';\n el.style.height = height || '';\n }\n }\n };\n return () => {\n const tag = props.group ? TransitionGroup : Transition;\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : {\n mode: props.mode\n }),\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\nexport function createJavascriptTransition(name, functions) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';\n return genericComponent()({\n name,\n props: {\n mode: {\n type: String,\n default: mode\n },\n disabled: Boolean,\n group: Boolean\n },\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const tag = props.group ? TransitionGroup : Transition;\n return () => {\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\n//# sourceMappingURL=createTransition.mjs.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { FunctionalComponent, PropType } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String,\n}, 'transition')\n\nexport function createCssTransition (\n name: string,\n origin?: string,\n mode?: string\n) {\n return genericComponent()({\n name,\n\n props: makeTransitionProps({\n mode,\n origin,\n }),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: HTMLElement) {\n if (props.origin) {\n el.style.transformOrigin = props.origin\n }\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }\n\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : { mode: props.mode }),\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n) {\n return genericComponent()({\n name,\n\n props: {\n mode: {\n type: String as PropType<'in-out' | 'out-in' | 'default'>,\n default: mode,\n },\n disabled: Boolean,\n group: Boolean,\n },\n\n setup (props, { slots }) {\n const tag = props.group ? TransitionGroup : Transition\n\n return () => {\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue';\nexport default function () {\n let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const sizeProperty = x ? 'width' : 'height';\n const offsetProperty = camelize(`offset-${sizeProperty}`);\n return {\n onBeforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n onEnter(el) {\n const initialStyle = el._initialStyle;\n el.style.setProperty('transition', 'none', 'important');\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden';\n const offset = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n onLeave(el) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => el.style[sizeProperty] = '0');\n },\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n function onAfterLeave(el) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n function resetStyles(el) {\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.mjs.map","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Utilities\nimport { Transition } from 'vue';\nimport { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, propsFactory, standardEasing } from \"../../util/index.mjs\";\nimport { getTargetBox } from \"../../util/box.mjs\"; // Types\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array]\n}, 'v-dialog-transition');\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n props: makeVDialogTransitionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n el.style.pointerEvents = 'none';\n el.style.visibility = 'hidden';\n },\n async onEnter(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n el.style.visibility = '';\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }, {}], {\n duration: 225 * speed,\n easing: deceleratedEasing\n });\n getChildren(el)?.forEach(el => {\n animate(el, [{\n opacity: 0\n }, {\n opacity: 0,\n offset: 0.33\n }, {}], {\n duration: 225 * 2 * speed,\n easing: standardEasing\n });\n });\n animation.finished.then(() => done());\n },\n onAfterEnter(el) {\n el.style.removeProperty('pointer-events');\n },\n onBeforeLeave(el) {\n el.style.pointerEvents = 'none';\n },\n async onLeave(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{}, {\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }], {\n duration: 125 * speed,\n easing: acceleratedEasing\n });\n animation.finished.then(() => done());\n getChildren(el)?.forEach(el => {\n animate(el, [{}, {\n opacity: 0,\n offset: 0.2\n }, {\n opacity: 0\n }], {\n duration: 125 * 2 * speed,\n easing: standardEasing\n });\n });\n },\n onAfterLeave(el) {\n el.style.removeProperty('pointer-events');\n }\n };\n return () => {\n return props.target ? _createVNode(Transition, _mergeProps({\n \"name\": \"dialog-transition\"\n }, functions, {\n \"css\": false\n }), slots) : _createVNode(Transition, {\n \"name\": \"dialog-transition\"\n }, slots);\n };\n }\n});\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren(el) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;\n return els && [...els];\n}\nfunction getDimensions(target, el) {\n const targetBox = getTargetBox(target);\n const elBox = nullifyTransforms(el);\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');\n let offsetX = targetBox.left + targetBox.width / 2;\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2;\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2;\n }\n let offsetY = targetBox.top + targetBox.height / 2;\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2;\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2;\n }\n const tsx = targetBox.width / elBox.width;\n const tsy = targetBox.height / elBox.height;\n const maxs = Math.max(1, tsx, tsy);\n const sx = tsx / maxs || 0;\n const sy = tsy / maxs || 0;\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);\n const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed\n };\n}\n//# sourceMappingURL=dialog-transition.mjs.map","// Utilities\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n genericComponent,\n nullifyTransforms,\n propsFactory,\n standardEasing,\n} from '@/util'\nimport { getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array] as PropType,\n}, 'v-dialog-transition')\n\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n\n props: makeVDialogTransitionProps(),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n {},\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n {},\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n {},\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n \n )\n : \n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\nfunction getDimensions (target: HTMLElement | [x: number, y: number], el: HTMLElement) {\n const targetBox = getTargetBox(target)\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType\n","export { VDefaultsProvider } from \"./VDefaultsProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDefaultsProvider } from './VDefaultsProvider'\n","// Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean\n}, 'VDefaultsProvider');\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n props: makeVDefaultsProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n defaults,\n disabled,\n reset,\n root,\n scoped\n } = toRefs(props);\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled\n });\n return () => slots.default?.();\n }\n});\n//# sourceMappingURL=VDefaultsProvider.mjs.map","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { toRefs } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\n\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object as PropType,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean,\n}, 'VDefaultsProvider')\n\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n\n props: makeVDefaultsProviderProps(),\n\n setup (props, { slots }) {\n const { defaults, disabled, reset, root, scoped } = toRefs(props)\n\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled,\n })\n\n return () => slots.default?.()\n },\n})\n\nexport type VDefaultsProvider = InstanceType\n","export { VImg } from \"./VImg.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VImg } from './VImg'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VImg.css\";\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from \"../VResponsive/VResponsive.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, ref, shallowRef, toRef, vShow, watch, withDirectives } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, propsFactory, SUPPORTS_INTERSECTION, useRender } from \"../../util/index.mjs\"; // Types\n// not intended for public use, this is passed in by vuetify-loader\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String],\n default: undefined\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: ''\n },\n crossorigin: String,\n referrerpolicy: String,\n srcset: String,\n position: String,\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps()\n}, 'VImg');\nexport const VImg = genericComponent()({\n name: 'VImg',\n directives: {\n intersect\n },\n props: makeVImgProps(),\n emits: {\n loadstart: value => true,\n load: value => true,\n error: value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const vm = getCurrentInstance('VImg');\n const currentSrc = shallowRef(''); // Set from srcset\n const image = ref();\n const state = shallowRef(props.eager ? 'loading' : 'idle');\n const naturalWidth = shallowRef();\n const naturalHeight = shallowRef();\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object' ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0)\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0)\n };\n });\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value / naturalHeight.value || 0;\n });\n watch(() => props.src, () => {\n init(state.value !== 'idle');\n });\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value);\n }\n });\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init());\n function init(isIntersecting) {\n if (props.eager && isIntersecting) return;\n if (SUPPORTS_INTERSECTION && !isIntersecting && !props.eager) return;\n state.value = 'loading';\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image();\n lazyImg.src = normalisedSrc.value.lazySrc;\n pollForSize(lazyImg, null);\n }\n if (!normalisedSrc.value.src) return;\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError();\n }\n if (state.value === 'error') return;\n if (!aspectRatio.value) pollForSize(image.value, null);\n if (state.value === 'loading') onLoad();\n } else {\n if (!aspectRatio.value) pollForSize(image.value);\n getSrc();\n }\n });\n });\n }\n function onLoad() {\n if (vm.isUnmounted) return;\n getSrc();\n pollForSize(image.value);\n state.value = 'loaded';\n emit('load', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function onError() {\n if (vm.isUnmounted) return;\n state.value = 'error';\n emit('error', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function getSrc() {\n const img = image.value;\n if (img) currentSrc.value = img.currentSrc || img.src;\n }\n let timer = -1;\n onBeforeUnmount(() => {\n clearTimeout(timer);\n });\n function pollForSize(img) {\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n const poll = () => {\n clearTimeout(timer);\n if (vm.isUnmounted) return;\n const {\n naturalHeight: imgHeight,\n naturalWidth: imgWidth\n } = img;\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth;\n naturalHeight.value = imgHeight;\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout);\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n };\n poll();\n }\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover\n }));\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null;\n const img = _createVNode(\"img\", {\n \"class\": ['v-img__img', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"src\": normalisedSrc.value.src,\n \"srcset\": normalisedSrc.value.srcset,\n \"alt\": props.alt,\n \"crossorigin\": props.crossorigin,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable,\n \"sizes\": props.sizes,\n \"ref\": image,\n \"onLoad\": onLoad,\n \"onError\": onError\n }, null);\n const sources = slots.sources?.();\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [withDirectives(sources ? _createVNode(\"picture\", {\n \"class\": \"v-img__picture\"\n }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]\n });\n };\n const __preloadImage = () => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && _createVNode(\"img\", {\n \"class\": ['v-img__img', 'v-img__img--preload', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"src\": normalisedSrc.value.lazySrc,\n \"alt\": props.alt,\n \"crossorigin\": props.crossorigin,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable\n }, null)]\n });\n const __placeholder = () => {\n if (!slots.placeholder) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && _createVNode(\"div\", {\n \"class\": \"v-img__placeholder\"\n }, [slots.placeholder()])]\n });\n };\n const __error = () => {\n if (!slots.error) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [state.value === 'error' && _createVNode(\"div\", {\n \"class\": \"v-img__error\"\n }, [slots.error()])]\n });\n };\n const __gradient = () => {\n if (!props.gradient) return null;\n return _createVNode(\"div\", {\n \"class\": \"v-img__gradient\",\n \"style\": {\n backgroundImage: `linear-gradient(${props.gradient})`\n }\n }, null);\n };\n const isBooted = shallowRef(false);\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n stop();\n }\n });\n }\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props);\n return _withDirectives(_createVNode(VResponsive, _mergeProps({\n \"class\": ['v-img', {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value\n }, backgroundColorClasses.value, roundedClasses.value, props.class],\n \"style\": [{\n width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)\n }, backgroundColorStyles.value, props.style]\n }, responsiveProps, {\n \"aspectRatio\": aspectRatio.value,\n \"aria-label\": props.alt,\n \"role\": props.alt ? 'img' : undefined\n }), {\n additional: () => _createVNode(_Fragment, null, [_createVNode(__image, null, null), _createVNode(__preloadImage, null, null), _createVNode(__gradient, null, null), _createVNode(__placeholder, null, null), _createVNode(__error, null, null)]),\n default: slots.default\n }), [[_resolveDirective(\"intersect\"), {\n handler: init,\n options: props.options\n }, null, {\n once: true\n }]]);\n });\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight\n };\n }\n});\n//# sourceMappingURL=VImg.mjs.map","// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const vm = getCurrentInstance('VImg')\n\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef()\n const naturalHeight = shallowRef()\n\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (vm.isUnmounted) return\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n \n )\n\n const sources = slots.sources?.()\n\n return (\n \n {\n withDirectives(\n sources\n ? { sources }{ img }\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n \n )\n }\n\n const __preloadImage = () => (\n \n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n \n )}\n \n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n \n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n
{ slots.placeholder() }
\n }\n
\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n \n { state.value === 'error' &&\n
{ slots.error() }
\n }\n
\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return
\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n {{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n \n ),\n default: slots.default,\n }}\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VResponsive.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport function useAspectStyles(props) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio);\n return ratio ? {\n paddingBottom: String(1 / ratio * 100) + '%'\n } : undefined;\n })\n };\n}\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VResponsive');\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n props: makeVResponsiveProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n aspectStyles\n } = useAspectStyles(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-responsive', {\n 'v-responsive--inline': props.inline\n }, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-responsive__sizer\",\n \"style\": aspectStyles.value\n }, null), slots.additional?.(), slots.default && _createVNode(\"div\", {\n \"class\": ['v-responsive__content', props.contentClass]\n }, [slots.default()])]));\n return {};\n }\n});\n//# sourceMappingURL=VResponsive.mjs.map","// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VResponsiveSlots = {\n default: never\n additional: never\n}\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VResponsive')\n\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n\n props: makeVResponsiveProps(),\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n
\n\n { slots.additional?.() }\n\n { slots.default && (\n
{ slots.default() }
\n )}\n
\n ))\n\n return {}\n },\n})\n\nexport type VResponsive = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String]\n}, 'dimension');\nexport function useDimension(props) {\n const dimensionStyles = computed(() => {\n const styles = {};\n const height = convertToUnit(props.height);\n const maxHeight = convertToUnit(props.maxHeight);\n const maxWidth = convertToUnit(props.maxWidth);\n const minHeight = convertToUnit(props.minHeight);\n const minWidth = convertToUnit(props.minWidth);\n const width = convertToUnit(props.width);\n if (height != null) styles.height = height;\n if (maxHeight != null) styles.maxHeight = maxHeight;\n if (maxWidth != null) styles.maxWidth = maxWidth;\n if (minHeight != null) styles.minHeight = minHeight;\n if (minWidth != null) styles.minWidth = minWidth;\n if (width != null) styles.width = width;\n return styles;\n });\n return {\n dimensionStyles\n };\n}\n//# sourceMappingURL=dimensions.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => {\n const styles: Record = {}\n\n const height = convertToUnit(props.height)\n const maxHeight = convertToUnit(props.maxHeight)\n const maxWidth = convertToUnit(props.maxWidth)\n const minHeight = convertToUnit(props.minHeight)\n const minWidth = convertToUnit(props.minWidth)\n const width = convertToUnit(props.width)\n\n if (height != null) styles.height = height\n if (maxHeight != null) styles.maxHeight = maxHeight\n if (maxWidth != null) styles.maxWidth = maxWidth\n if (minHeight != null) styles.minHeight = minHeight\n if (minWidth != null) styles.minWidth = minWidth\n if (width != null) styles.width = width\n\n return styles\n })\n\n return { dimensionStyles }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const classes = [];\n const styles = {};\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background;\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor);\n styles.color = textColor;\n styles.caretColor = textColor;\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`);\n }\n }\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text;\n styles.caretColor = colors.value.text;\n } else {\n classes.push(`text-${colors.value.text}`);\n }\n }\n return {\n colorClasses: classes,\n colorStyles: styles\n };\n });\n}\nexport function useTextColor(props, name) {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(colors);\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(props, name) {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(colors);\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\n//# sourceMappingURL=color.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref\n textColorStyles: Ref\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n return destructComputed(() => {\n const classes: string[] = []\n const styles: CSSProperties = {}\n\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background\n\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background)\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor)\n\n styles.color = textColor\n styles.caretColor = textColor\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`)\n }\n }\n\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n } else {\n classes.push(`text-${colors.value.text}`)\n }\n }\n\n return { colorClasses: classes, colorStyles: styles }\n })\n}\n\nexport function useTextColor (color: Ref): TextColorData\nexport function useTextColor , K extends string> (props: T, name: K): TextColorData\nexport function useTextColor , K extends string> (\n props: T | Ref,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref): BackgroundColorData\nexport function useBackgroundColor , K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor , K extends string> (\n props: T | Ref,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined\n },\n tile: Boolean\n}, 'rounded');\nexport function useRounded(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded;\n const tile = isRef(props) ? props.value : props.tile;\n const classes = [];\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`);\n } else if (typeof rounded === 'string' || rounded === 0) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`);\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0');\n }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const tile = isRef(props) ? props.value : props.tile\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0')\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object],\n default: 'fade-transition',\n validator: val => val !== true\n }\n}, 'transition');\nexport const MaybeTransition = (props, _ref) => {\n let {\n slots\n } = _ref;\n const {\n transition,\n disabled,\n group,\n ...rest\n } = props;\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {};\n return h(component, mergeProps(typeof transition === 'string' ? {\n name: disabled ? '' : transition\n } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({\n disabled,\n group\n }).filter(_ref2 => {\n let [_, v] = _ref2;\n return v !== undefined;\n })), rest), slots);\n};\n//# sourceMappingURL=transition.mjs.map","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(\n typeof transition === 'string'\n ? { name: disabled ? '' : transition }\n : customProps as any,\n typeof transition === 'string'\n ? {}\n : Object.fromEntries(Object.entries({ disabled, group }).filter(([_, v]) => v !== undefined)),\n rest as any,\n ),\n slots\n )\n}\n","// Utilities\nimport { SUPPORTS_INTERSECTION } from \"../../util/index.mjs\"; // Types\nfunction mounted(el, binding) {\n if (!SUPPORTS_INTERSECTION) return;\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {}\n };\n const observer = new IntersectionObserver(function () {\n let entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n const _observe = el._observe?.[binding.instance.$.uid];\n if (!_observe) return; // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting);\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {\n handler(isIntersecting, entries, observer);\n }\n if (isIntersecting && modifiers.once) unmounted(el, binding);else _observe.init = true;\n }, options);\n el._observe = Object(el._observe);\n el._observe[binding.instance.$.uid] = {\n init: false,\n observer\n };\n observer.observe(el);\n}\nfunction unmounted(el, binding) {\n const observe = el._observe?.[binding.instance.$.uid];\n if (!observe) return;\n observe.observer.unobserve(el);\n delete el._observe[binding.instance.$.uid];\n}\nexport const Intersect = {\n mounted,\n unmounted\n};\nexport default Intersect;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border;\n const classes = [];\n if (border === true || border === '') {\n classes.push(`${name}--border`);\n } else if (typeof border === 'string' || border === 0) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`);\n }\n }\n return classes;\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border\n const classes: string[] = []\n\n if (border === true || border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof border === 'string' ||\n border === 0\n ) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator(v) {\n const value = parseInt(v);\n return !isNaN(value) && value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24;\n }\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n const classes = [];\n if (elevation == null) return classes;\n classes.push(`elevation-${elevation}`);\n return classes;\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref\n}\n\nexport function useElevation (props: ElevationProps | Ref): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300\n }\n}, 'scroll');\nexport function useScroll(props) {\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n canScroll\n } = args;\n let previousScroll = 0;\n let previousScrollHeight = 0;\n const target = ref(null);\n const currentScroll = shallowRef(0);\n const savedScroll = shallowRef(0);\n const currentThreshold = shallowRef(0);\n const isScrollActive = shallowRef(false);\n const isScrollingUp = shallowRef(false);\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold);\n });\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);\n });\n const onScroll = () => {\n const targetEl = target.value;\n if (!targetEl || canScroll && !canScroll.value) return;\n previousScroll = currentScroll.value;\n currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight;\n return;\n }\n isScrollingUp.value = currentScroll.value < previousScroll;\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);\n };\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value;\n });\n watch(isScrollActive, () => {\n savedScroll.value = 0;\n });\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);\n return;\n }\n if (newTarget === target.value) return;\n target.value?.removeEventListener('scroll', onScroll);\n target.value = newTarget;\n target.value.addEventListener('scroll', onScroll, {\n passive: true\n });\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll);\n });\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, {\n immediate: true\n });\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll\n };\n}\n//# sourceMappingURL=scroll.mjs.map","// Utilities\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { clamp, consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300,\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n canScroll?: Readonly>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { canScroll } = args\n let previousScroll = 0\n let previousScrollHeight = 0\n const target = ref(null)\n const currentScroll = shallowRef(0)\n const savedScroll = shallowRef(0)\n const currentThreshold = shallowRef(0)\n const isScrollActive = shallowRef(false)\n const isScrollingUp = shallowRef(false)\n\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold)\n })\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp(((scrollThreshold.value - currentScroll.value) / scrollThreshold.value) || 0)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight\n return\n }\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`)\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = computed(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.mjs.map","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = shallowRef(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles, isBooted: readonly(isBooted) }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text'\n })\n}, 'VAppBarNavIcon');\nexport const VAppBarNavIcon = genericComponent()({\n name: 'VAppBarNavIcon',\n props: makeVAppBarNavIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VBtn, _mergeProps(props, {\n \"class\": ['v-app-bar-nav-icon']\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarNavIcon.mjs.map","// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text' as const,\n }),\n}, 'VAppBarNavIcon')\n\nexport const VAppBarNavIcon = genericComponent()({\n name: 'VAppBarNavIcon',\n\n props: makeVAppBarNavIconProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VAppBarNavIcon = InstanceType\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtn.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { useSelectLink } from \"../../composables/selectLink.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, withDirectives } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object],\n prependIcon: IconValue,\n appendIcon: IconValue,\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'button'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VBtn');\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n props: makeVBtnProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const group = useGroupItem(props, props.symbol, false);\n const link = useLink(props, attrs);\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active;\n }\n if (link.isLink.value) {\n return link.isActive?.value;\n }\n return group?.isSelected.value;\n });\n const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);\n const variantProps = computed(() => {\n const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;\n return {\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n };\n });\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const isDisabled = computed(() => group?.disabled.value || props.disabled);\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);\n });\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined;\n return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;\n });\n function onClick(e) {\n if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === '_blank')) return;\n link.navigate?.(e);\n group?.toggle();\n }\n useSelectLink(link, group?.select);\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasPrepend = !!(props.prependIcon || slots.prepend);\n const hasAppend = !!(props.appendIcon || slots.append);\n const hasIcon = !!(props.icon && props.icon !== true);\n return withDirectives(_createVNode(Tag, _mergeProps({\n \"type\": Tag === 'a' ? undefined : 'button',\n \"class\": ['v-btn', group?.selectedClass.value, {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--readonly': props.readonly,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],\n \"aria-busy\": props.loading ? true : undefined,\n \"disabled\": isDisabled.value || undefined,\n \"tabindex\": props.loading || props.readonly ? -1 : undefined,\n \"onClick\": onClick,\n \"value\": valueAttr.value\n }, link.linkProps), {\n default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && _createVNode(\"span\", {\n \"key\": \"prepend\",\n \"class\": \"v-btn__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.prependIcon,\n \"defaults\": {\n VIcon: {\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"span\", {\n \"class\": \"v-btn__content\",\n \"data-no-activator\": \"\"\n }, [!slots.default && hasIcon ? _createVNode(VIcon, {\n \"key\": \"content-icon\",\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"disabled\": !hasIcon,\n \"defaults\": {\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default?.() ?? props.text]\n })]), !props.icon && hasAppend && _createVNode(\"span\", {\n \"key\": \"append\",\n \"class\": \"v-btn__append\"\n }, [!slots.append ? _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"icon\": props.appendIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VIcon: {\n icon: props.appendIcon\n }\n }\n }, slots.append)]), !!props.loading && _createVNode(\"span\", {\n \"key\": \"loader\",\n \"class\": \"v-btn__loader\"\n }, [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"width\": \"2\"\n }, null)])]\n }), [[Ripple, !isDisabled.value && props.ripple, '', {\n center: !!props.icon\n }]]);\n });\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VBtn.mjs.map","// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { useSelectLink } from '@/composables/selectLink'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, withDirectives } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VBtnSlots = {\n default: never\n prepend: never\n append: never\n loader: never\n}\n\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VBtn')\n\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n\n props: makeVBtnProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n\n const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color)\n const variantProps = computed(() => {\n const showColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n return ({\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n })\n })\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0)\n : props.value\n })\n\n function onClick (e: MouseEvent) {\n if (\n isDisabled.value ||\n (link.isLink.value && (\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n (e.button !== 0) ||\n attrs.target === '_blank'\n ))\n ) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n\n return withDirectives(\n \n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n \n { !slots.prepend ? (\n \n ) : (\n \n )}\n \n )}\n\n \n { (!slots.default && hasIcon) ? (\n \n ) : (\n \n { slots.default?.() ?? props.text }\n \n )}\n \n\n { !props.icon && hasAppend && (\n \n { !slots.append ? (\n \n ) : (\n \n )}\n \n )}\n\n { !!props.loading && (\n \n { slots.loader?.() ?? (\n \n )}\n \n )}\n ,\n [[\n Ripple,\n !isDisabled.value && props.ripple,\n '',\n { center: !!props.icon },\n ]]\n )\n })\n\n return { group }\n },\n})\n\nexport type VBtn = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VBtnToggle.css\";\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from \"../VBtnGroup/VBtnGroup.mjs\"; // Composables\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps()\n}, 'VBtnToggle');\nexport const VBtnToggle = genericComponent()({\n name: 'VBtnToggle',\n props: makeVBtnToggleProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n next,\n prev,\n select,\n selected\n } = useGroup(props, VBtnToggleSymbol);\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props);\n return _createVNode(VBtnGroup, _mergeProps({\n \"class\": ['v-btn-toggle', props.class]\n }, btnGroupProps, {\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected\n })]\n });\n });\n return {\n next,\n prev,\n select\n };\n }\n});\n//# sourceMappingURL=VBtnToggle.mjs.map","// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick {}\n\nexport const VBtnToggleSymbol: InjectionKey = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: DefaultBtnToggleSlot\n}\n\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n}, 'VBtnToggle')\n\nexport const VBtnToggle = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VBtnToggleSlots,\n) => GenericProps>()({\n name: 'VBtnToggle',\n\n props: makeVBtnToggleProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n })}\n \n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VBtnGroup.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps()\n}, 'VBtnGroup');\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n props: makeVBtnGroupProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-btn-group', {\n 'v-btn-group--divided': props.divided\n }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": props.style\n }, slots);\n });\n }\n});\n//# sourceMappingURL=VBtnGroup.mjs.map","// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n}, 'VBtnGroup')\n\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n\n props: makeVBtnGroupProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n \n )\n })\n },\n})\n\nexport type VBtnGroup = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\nexport type Density = null | 'default' | 'comfortable' | 'compact'\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Composables\nimport { useColor } from \"./color.mjs\"; // Utilities\nimport { computed, unref } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nexport const allowedVariants = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];\nexport function genOverlays(isClickable, name) {\n return _createVNode(_Fragment, null, [isClickable && _createVNode(\"span\", {\n \"key\": \"overlay\",\n \"class\": `${name}__overlay`\n }, null), _createVNode(\"span\", {\n \"key\": \"underlay\",\n \"class\": `${name}__underlay`\n }, null)]);\n}\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String,\n default: 'elevated',\n validator: v => allowedVariants.includes(v)\n }\n}, 'variant');\nexport function useVariant(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const variantClasses = computed(() => {\n const {\n variant\n } = unref(props);\n return `${name}--variant-${variant}`;\n });\n const {\n colorClasses,\n colorStyles\n } = useColor(computed(() => {\n const {\n variant,\n color\n } = unref(props);\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color\n };\n }));\n return {\n colorClasses,\n colorStyles,\n variantClasses\n };\n}\n//# sourceMappingURL=variant.mjs.map","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport const allowedVariants = [\n 'elevated',\n 'flat',\n 'tonal',\n 'outlined',\n 'text',\n 'plain',\n] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n variant: Variant\n}\n\nexport function genOverlays (isClickable: boolean, name: string) {\n return (\n <>\n { isClickable && }\n\n \n \n )\n}\n\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String as PropType,\n default: 'elevated',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'variant')\n\nexport function useVariant (\n props: MaybeRef,\n name = getCurrentInstanceName(),\n) {\n const variantClasses = computed(() => {\n const { variant } = unref(props)\n return `${name}--variant-${variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => {\n const { variant, color } = unref(props)\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color,\n }\n }))\n\n return { colorClasses, colorStyles, variantClasses }\n}\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined\n },\n multiple: Boolean,\n mandatory: [Boolean, String],\n max: Number,\n selectedClass: String,\n disabled: Boolean\n}, 'group');\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String\n}, 'group-item');\n\n// Composables\n\nexport function useGroupItem(props, injectKey) {\n let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const vm = getCurrentInstance('useGroupItem');\n if (!vm) {\n throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');\n }\n const id = getUid();\n provide(Symbol.for(`${injectKey.description}:id`), id);\n const group = inject(injectKey, null);\n if (!group) {\n if (!required) return group;\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);\n }\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n group.register({\n id,\n value,\n disabled\n }, vm);\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n const isFirst = computed(() => {\n return group.items.value[0].id === id;\n });\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id;\n });\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);\n watch(isSelected, value => {\n vm.emit('group:selected', {\n value\n });\n }, {\n flush: 'sync'\n });\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: value => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group\n };\n}\nexport function useGroup(props, injectKey) {\n let isUnmounted = false;\n const items = reactive([]);\n const selected = useProxiedModel(props, 'modelValue', [], v => {\n if (v == null) return [];\n return getIds(items, wrapInArray(v));\n }, v => {\n const arr = getValues(items, v);\n return props.multiple ? arr : arr[0];\n });\n const groupVm = getCurrentInstance('useGroup');\n function register(item, vm) {\n // Is there a better way to fix this typing?\n const unwrapped = item;\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index;\n unwrapped.useIndexAsValue = true;\n }\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n function unregister(id) {\n if (isUnmounted) return;\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue();\n const index = items.findIndex(item => item.id === id);\n items.splice(index, 1);\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue() {\n const item = items.find(item => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n onMounted(() => {\n forceMandatoryValue();\n });\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i;\n }\n }\n });\n function select(id, value) {\n const item = items.find(item => item.id === id);\n if (value && item?.disabled) return;\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex(v => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;\n if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n function step(offset) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop');\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex(i => i.id === currentId);\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n if (newItem.disabled) return;\n selected.value = [items[newIndex].id];\n }\n }\n const state = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: id => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: value => getItemIndex(items, value)\n };\n provide(injectKey, state);\n return state;\n}\nfunction getItemIndex(items, value) {\n const ids = getIds(items, [value]);\n if (!ids.length) return -1;\n return items.findIndex(item => item.id === ids[0]);\n}\nfunction getIds(items, modelValue) {\n const ids = [];\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value));\n const itemByIndex = items[value];\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n return ids;\n}\nfunction getValues(items, ids) {\n const values = [];\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.mjs.map","// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref\n disabled: Ref\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref\n isFirst: Ref\n isLast: Ref\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref\n disabled: Ref\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey\n) {\n let isUnmounted = false\n const items = reactive([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n","export { VIcon } from \"./VIcon.mjs\";\nexport { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from \"../../composables/icons.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VIcon } from './VIcon'\nexport { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from '@/composables/icons'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce);\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": hasClick ? 'button' : undefined,\n \"aria-hidden\": !hasClick,\n \"tabindex\": hasClick ? props.disabled ? -1 : 0 : undefined\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce)\n\n return (\n \n { slotValue }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType\n","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n","export { VProgressCircular } from \"./VProgressCircular.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VProgressCircular } from './VProgressCircular'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressCircular.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String],\n modelValue: {\n type: [Number, String],\n default: 0\n },\n rotate: {\n type: [Number, String],\n default: 0\n },\n width: {\n type: [Number, String],\n default: 4\n },\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'div'\n }),\n ...makeThemeProps()\n}, 'VProgressCircular');\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n props: makeVProgressCircularProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const MAGIC_RADIUS_CONSTANT = 20;\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT;\n const root = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const {\n textColorClasses: underlayColorClasses,\n textColorStyles: underlayColorStyles\n } = useTextColor(toRef(props, 'bgColor'));\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));\n const width = computed(() => Number(props.width));\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);\n });\n const diameter = computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);\n const strokeWidth = computed(() => width.value / size.value * diameter.value);\n const strokeDashOffset = computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));\n watchEffect(() => {\n intersectionRef.value = root.value;\n resizeRef.value = root.value;\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": root,\n \"class\": ['v-progress-circular', {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'\n }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],\n \"style\": [sizeStyles.value, textColorStyles.value, props.style],\n \"role\": \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value\n }, {\n default: () => [_createVNode(\"svg\", {\n \"style\": {\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`\n },\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": `0 0 ${diameter.value} ${diameter.value}`\n }, [_createVNode(\"circle\", {\n \"class\": ['v-progress-circular__underlay', underlayColorClasses.value],\n \"style\": underlayColorStyles.value,\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": 0\n }, null), _createVNode(\"circle\", {\n \"class\": \"v-progress-circular__overlay\",\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": strokeDashOffset.value\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-circular__content\"\n }, [slots.default({\n value: normalizedValue.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressCircular.mjs.map","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n}, 'VProgressCircular')\n\ntype VProgressCircularSlots = {\n default: { value: number }\n}\n\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n\n props: makeVProgressCircularProps(),\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n \n \n \n\n \n \n\n { slots.default && (\n
\n { slots.default({ value: normalizedValue.value }) }\n
\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressCircular = InstanceType\n","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue';\nimport { SUPPORTS_INTERSECTION } from \"../util/index.mjs\";\nexport function useIntersectionObserver(callback, options) {\n const intersectionRef = ref();\n const isIntersecting = shallowRef(false);\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver(entries => {\n callback?.(entries, observer);\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting);\n }, options);\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n isIntersecting.value = false;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n intersectionRef,\n isIntersecting\n };\n}\n//# sourceMappingURL=intersectionObserver.mjs.map","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref()\n const isIntersecting = shallowRef(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String]\n}, 'loader');\nexport function useLoader(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading\n }));\n return {\n loaderClasses\n };\n}\nexport function LoaderSlot(props, _ref) {\n let {\n slots\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": `${props.name}__loader`\n }, [slots.default?.({\n color: props.color,\n isActive: props.active\n }) || _createVNode(VProgressLinear, {\n \"absolute\": props.absolute,\n \"active\": props.active,\n \"color\": props.color,\n \"height\": \"2\",\n \"indeterminate\": true\n }, null)]);\n}\n//# sourceMappingURL=loader.mjs.map","// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes>,\n { slots }: SetupContext,\n) {\n return (\n
\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n \n )}\n
\n )\n}\n","export { VProgressLinear } from \"./VProgressLinear.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VProgressLinear } from './VProgressLinear'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressLinear.css\";\n\n// Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, Transition } from 'vue';\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100\n },\n modelValue: {\n type: [Number, String],\n default: 0\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VProgressLinear');\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n props: makeVProgressLinearProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const progress = useProxiedModel(props, 'modelValue');\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(props, 'color');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => props.bgColor || props.color));\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color));\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n roundedClasses\n } = useRounded(props);\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const max = computed(() => parseFloat(props.max));\n const height = computed(() => parseFloat(props.height));\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100));\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100));\n const isReversed = computed(() => isRtl.value !== props.reverse);\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;\n function handleClick(e) {\n if (!intersectionRef.value) return;\n const {\n left,\n right,\n width\n } = intersectionRef.value.getBoundingClientRect();\n const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;\n progress.value = Math.round(value / width * max.value);\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": intersectionRef,\n \"class\": ['v-progress-linear', {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped\n }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {})\n }, props.style],\n \"role\": \"progressbar\",\n \"aria-hidden\": props.active ? 'false' : 'true',\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value,\n \"onClick\": props.clickable && handleClick\n }, {\n default: () => [props.stream && _createVNode(\"div\", {\n \"key\": \"stream\",\n \"class\": ['v-progress-linear__stream', textColorClasses.value],\n \"style\": {\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": [backgroundColorStyles.value, {\n opacity: parseFloat(props.bgOpacity),\n width: props.stream ? 0 : undefined\n }]\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],\n \"style\": [bufferColorStyles.value, {\n opacity: parseFloat(props.bufferOpacity),\n width: convertToUnit(normalizedBuffer.value, '%')\n }]\n }, null), _createVNode(Transition, {\n \"name\": transition.value\n }, {\n default: () => [!props.indeterminate ? _createVNode(\"div\", {\n \"class\": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": [barColorStyles.value, {\n width: convertToUnit(normalizedValue.value, '%')\n }]\n }, null) : _createVNode(\"div\", {\n \"class\": \"v-progress-linear__indeterminate\"\n }, [['long', 'short'].map(bar => _createVNode(\"div\", {\n \"key\": bar,\n \"class\": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": barColorStyles.value\n }, null))])]\n }), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-linear__content\"\n }, [slots.default({\n value: normalizedValue.value,\n buffer: normalizedBuffer.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressLinear.mjs.map","// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useRtl } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\ntype VProgressLinearSlots = {\n default: { value: number, buffer: number }\n}\n\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VProgressLinear')\n\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n\n props: makeVProgressLinearProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl, rtlClasses } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { locationStyles } = useLocation(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const {\n backgroundColorClasses,\n backgroundColorStyles,\n } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles,\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color))\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles,\n } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseFloat(props.max))\n const height = computed(() => parseFloat(props.height))\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100))\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100))\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n \n { props.stream && (\n \n )}\n\n \n\n \n\n \n { !props.indeterminate ? (\n \n ) : (\n
\n {['long', 'short'].map(bar => (\n \n ))}\n
\n )}\n
\n\n { slots.default && (\n
\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n
\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressLinear = InstanceType\n","// Composables\nimport { useRtl } from \"./locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.mjs\"; // Types\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const makeLocationProps = propsFactory({\n location: String\n}, 'location');\nexport function useLocation(props) {\n let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let offset = arguments.length > 2 ? arguments[2] : undefined;\n const {\n isRtl\n } = useRtl();\n const locationStyles = computed(() => {\n if (!props.location) return {};\n const {\n side,\n align\n } = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);\n function getOffset(side) {\n return offset ? offset(side) : 0;\n }\n const styles = {};\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;\n } else {\n if (side === 'center') styles.top = styles.left = '50%';else {\n styles[{\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top'\n }[side]] = '50%';\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)'\n }[side];\n }\n return styles;\n });\n return {\n locationStyles\n };\n}\n//# sourceMappingURL=location.mjs.map","// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | null | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String,\n validator: /* istanbul ignore next */v => positionValues.includes(v)\n }\n}, 'position');\nexport function usePosition(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n return {\n positionClasses\n };\n}\n//# sourceMappingURL=position.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n","// Utilities\nimport { computed, nextTick, onScopeDispose, reactive, resolveDynamicComponent, toRef } from 'vue';\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nexport function useRoute() {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\nexport function useRouter() {\n return getCurrentInstance('useRouter')?.proxy?.$router;\n}\nexport function useLink(props, attrs) {\n const RouterLink = resolveDynamicComponent('RouterLink');\n const isLink = computed(() => !!(props.href || props.to));\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');\n });\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href');\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({\n href\n })\n };\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || '')\n }));\n const routerLink = RouterLink.useLink(linkProps.value);\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined);\n const route = useRoute();\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n const href = computed(() => props.to ? link.value?.route.value.href : props.href);\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined)\n })\n };\n}\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object],\n exact: Boolean\n}, 'router');\nlet inTransition = false;\nexport function useBackButton(router, cb) {\n let popped = false;\n let removeBefore;\n let removeAfter;\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next());\n } else {\n popped ? cb(next) : next();\n }\n inTransition = true;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n function onPopstate(e) {\n if (e.state?.replaced) return;\n popped = true;\n setTimeout(() => popped = false);\n }\n}\n//# sourceMappingURL=router.mjs.map","// Utilities\nimport {\n computed,\n nextTick,\n onScopeDispose, reactive,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit>, 'href'> {\n isLink: ComputedRef\n isClickable: ComputedRef\n href: Ref\n linkProps: Record\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href')\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({ href }),\n }\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || ''),\n }))\n\n const routerLink = RouterLink.useLink(linkProps.value as UseLinkOptions)\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined)\n const route = useRoute()\n const isActive = computed(() => {\n if (!link.value) return false\n if (!props.exact) return link.value.isActive?.value ?? false\n if (!route.value) return link.value.isExactActive?.value ?? false\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query)\n })\n const href = computed(() => props.to ? link.value?.route.value.href : props.href)\n\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined),\n }),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Utilities\nimport { nextTick, watch } from 'vue';\n\n// Types\n\nexport function useSelectLink(link, select) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true);\n });\n }\n }, {\n immediate: true\n });\n}\n//# sourceMappingURL=selectLink.mjs.map","// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n","// Styles\nimport \"./VRipple.css\";\n\n// Utilities\nimport { isObject, keyCodes } from \"../../util/index.mjs\"; // Types\nconst stopSymbol = Symbol('rippleStop');\nconst DELAY_RIPPLE = 80;\nfunction transform(el, value) {\n el.style.transform = value;\n el.style.webkitTransform = value;\n}\nfunction isTouchEvent(e) {\n return e.constructor.name === 'TouchEvent';\n}\nfunction isKeyboardEvent(e) {\n return e.constructor.name === 'KeyboardEvent';\n}\nconst calculate = function (e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let localX = 0;\n let localY = 0;\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect();\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;\n localX = target.clientX - offset.left;\n localY = target.clientY - offset.top;\n }\n let radius = 0;\n let scale = 0.3;\n if (el._ripple?.circle) {\n scale = 0.15;\n radius = el.clientWidth / 2;\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;\n }\n const centerX = `${(el.clientWidth - radius * 2) / 2}px`;\n const centerY = `${(el.clientHeight - radius * 2) / 2}px`;\n const x = value.center ? centerX : `${localX - radius}px`;\n const y = value.center ? centerY : `${localY - radius}px`;\n return {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n };\n};\nconst ripples = {\n /* eslint-disable max-statements */\n show(e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!el?._ripple?.enabled) {\n return;\n }\n const container = document.createElement('span');\n const animation = document.createElement('span');\n container.appendChild(animation);\n container.className = 'v-ripple__container';\n if (value.class) {\n container.className += ` ${value.class}`;\n }\n const {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n } = calculate(e, el, value);\n const size = `${radius * 2}px`;\n animation.className = 'v-ripple__animation';\n animation.style.width = size;\n animation.style.height = size;\n el.appendChild(container);\n const computed = window.getComputedStyle(el);\n if (computed && computed.position === 'static') {\n el.style.position = 'relative';\n el.dataset.previousPosition = 'static';\n }\n animation.classList.add('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--visible');\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);\n animation.dataset.activated = String(performance.now());\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--in');\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);\n }, 0);\n },\n hide(el) {\n if (!el?._ripple?.enabled) return;\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 0) return;\n const animation = ripples[ripples.length - 1];\n if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in');\n animation.classList.add('v-ripple__animation--out');\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition;\n delete el.dataset.previousPosition;\n }\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode);\n }, 300);\n }, delay);\n }\n};\nfunction isRippleEnabled(value) {\n return typeof value === 'undefined' || !!value;\n}\nfunction rippleShow(e) {\n const value = {};\n const element = e.currentTarget;\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return;\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true;\n if (isTouchEvent(e)) {\n element._ripple.touched = true;\n element._ripple.isTouch = true;\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return;\n }\n value.center = element._ripple.centered || isKeyboardEvent(e);\n if (element._ripple.class) {\n value.class = element._ripple.class;\n }\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return;\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value);\n };\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n }\n }, DELAY_RIPPLE);\n } else {\n ripples.show(e, element, value);\n }\n}\nfunction rippleStop(e) {\n e[stopSymbol] = true;\n}\nfunction rippleHide(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n window.clearTimeout(element._ripple.showTimer);\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e);\n });\n return;\n }\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false;\n }\n });\n ripples.hide(element);\n}\nfunction rippleCancelShow(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null;\n }\n window.clearTimeout(element._ripple.showTimer);\n}\nlet keyboardRipple = false;\nfunction keyboardRippleShow(e) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true;\n rippleShow(e);\n }\n}\nfunction keyboardRippleHide(e) {\n keyboardRipple = false;\n rippleHide(e);\n}\nfunction focusRippleHide(e) {\n if (keyboardRipple) {\n keyboardRipple = false;\n rippleHide(e);\n }\n}\nfunction updateRipple(el, binding, wasEnabled) {\n const {\n value,\n modifiers\n } = binding;\n const enabled = isRippleEnabled(value);\n if (!enabled) {\n ripples.hide(el);\n }\n el._ripple = el._ripple ?? {};\n el._ripple.enabled = enabled;\n el._ripple.centered = modifiers.center;\n el._ripple.circle = modifiers.circle;\n if (isObject(value) && value.class) {\n el._ripple.class = value.class;\n }\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, {\n passive: true\n });\n el.addEventListener('mousedown', rippleStop);\n return;\n }\n el.addEventListener('touchstart', rippleShow, {\n passive: true\n });\n el.addEventListener('touchend', rippleHide, {\n passive: true\n });\n el.addEventListener('touchmove', rippleCancelShow, {\n passive: true\n });\n el.addEventListener('touchcancel', rippleHide);\n el.addEventListener('mousedown', rippleShow);\n el.addEventListener('mouseup', rippleHide);\n el.addEventListener('mouseleave', rippleHide);\n el.addEventListener('keydown', keyboardRippleShow);\n el.addEventListener('keyup', keyboardRippleHide);\n el.addEventListener('blur', focusRippleHide);\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, {\n passive: true\n });\n } else if (!enabled && wasEnabled) {\n removeListeners(el);\n }\n}\nfunction removeListeners(el) {\n el.removeEventListener('mousedown', rippleShow);\n el.removeEventListener('touchstart', rippleShow);\n el.removeEventListener('touchend', rippleHide);\n el.removeEventListener('touchmove', rippleCancelShow);\n el.removeEventListener('touchcancel', rippleHide);\n el.removeEventListener('mouseup', rippleHide);\n el.removeEventListener('mouseleave', rippleHide);\n el.removeEventListener('keydown', keyboardRippleShow);\n el.removeEventListener('keyup', keyboardRippleHide);\n el.removeEventListener('dragstart', rippleHide);\n el.removeEventListener('blur', focusRippleHide);\n}\nfunction mounted(el, binding) {\n updateRipple(el, binding, false);\n}\nfunction unmounted(el) {\n delete el._ripple;\n removeListeners(el);\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n const wasEnabled = isRippleEnabled(binding.oldValue);\n updateRipple(el, binding, wasEnabled);\n}\nexport const Ripple = {\n mounted,\n unmounted,\n updated\n};\nexport default Ripple;\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from \"../VToolbar/VToolbarTitle.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\"; // Types\nexport const VAppBarTitle = genericComponent()({\n name: 'VAppBarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VToolbarTitle, _mergeProps(props, {\n \"class\": \"v-app-bar-title\"\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarTitle.mjs.map","// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from '@/components/VToolbar/VToolbarTitle'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { VToolbarTitleSlots } from '@/components/VToolbar/VToolbarTitle'\n\nexport const VAppBarTitle = genericComponent()({\n name: 'VAppBarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VAppBarTitle = InstanceType\n","export { VAlert } from \"./VAlert.mjs\";\nexport { VAlertTitle } from \"./VAlertTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAlert } from './VAlert'\nexport { VAlertTitle } from './VAlertTitle'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAlert.css\";\n\n// Components\nimport { VAlertTitle } from \"./VAlertTitle.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst allowedTypes = ['success', 'info', 'warning', 'error'];\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String],\n validator: val => {\n return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);\n }\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n icon: {\n type: [Boolean, String, Function, Object],\n default: null\n },\n modelValue: {\n type: Boolean,\n default: true\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String,\n validator: val => allowedTypes.includes(val)\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAlert');\nexport const VAlert = genericComponent()({\n name: 'VAlert',\n props: makeVAlertProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const icon = computed(() => {\n if (props.icon === false) return undefined;\n if (!props.type) return props.icon;\n return props.icon ?? `$${props.type}`;\n });\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant\n }));\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'borderColor'));\n const {\n t\n } = useLocale();\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value);\n const hasTitle = !!(slots.title || props.title);\n const hasClose = !!(slots.close || props.closable);\n return isActive.value && _createVNode(props.tag, {\n \"class\": ['v-alert', props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true\n }, {\n 'v-alert--prominent': props.prominent\n }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"alert\"\n }, {\n default: () => [genOverlays(false, 'v-alert'), props.border && _createVNode(\"div\", {\n \"key\": \"border\",\n \"class\": ['v-alert__border', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-alert__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": icon.value,\n \"size\": props.prominent ? 44 : 28\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !icon.value,\n \"defaults\": {\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-alert__content\"\n }, [hasTitle && _createVNode(VAlertTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-alert__append\"\n }, [slots.append()]), hasClose && _createVNode(\"div\", {\n \"key\": \"close\",\n \"class\": \"v-alert__close\"\n }, [!slots.close ? _createVNode(VBtn, _mergeProps({\n \"key\": \"close-btn\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\",\n \"variant\": \"text\"\n }, closeProps.value), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.close?.({\n props: closeProps.value\n })]\n })])]\n });\n };\n }\n});\n//# sourceMappingURL=VAlert.mjs.map","// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String] as PropType,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VAlert')\n\nexport type VAlertSlots = {\n default: never\n prepend: never\n title: never\n text: never\n append: never\n close: { props: Record }\n}\n\nexport const VAlert = genericComponent()({\n name: 'VAlert',\n\n props: makeVAlertProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n \n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n \n )}\n\n { hasPrepend && (\n
\n { !slots.prepend ? (\n \n ) : (\n \n )}\n
\n )}\n\n
\n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n
\n\n { slots.append && (\n
\n { slots.append() }\n
\n )}\n\n { hasClose && (\n
\n { !slots.close ? (\n \n ) : (\n \n { slots.close?.({ props: closeProps.value }) }\n \n )}\n
\n )}\n \n )\n }\n },\n})\n\nexport type VAlert = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VAlertTitle = createSimpleFunctional('v-alert-title');\n//# sourceMappingURL=VAlertTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlertTitle = InstanceType\n","export { VBtn } from \"./VBtn.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtn } from './VBtn'\n","export { VAutocomplete } from \"./VAutocomplete.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAutocomplete } from './VAutocomplete'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VAutocomplete.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: Boolean,\n search: String,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VAutocomplete');\nexport const VAutocomplete = genericComponent()({\n name: 'VAutocomplete',\n props: makeVAutocompleteProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:search': value => true,\n 'update:modelValue': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const search = useProxiedModel(props, 'search', '');\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm();\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const selectedValues = computed(() => model.value.map(selection => selection.props.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n search.value = '';\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n function onKeydown(e) {\n if (props.readonly || form?.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(displayItems.value[0]);\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);\n }\n }\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n }\n }\n function onChange(e) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === e.target.value);\n if (item) {\n select(item);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n const isSelecting = shallowRef(false);\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return;\n if (val) {\n isSelecting.value = true;\n search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');\n isPristine.value = true;\n nextTick(() => isSelecting.value = false);\n } else {\n if (!props.multiple && search.value == null) model.value = [];\n menu.value = false;\n if (!model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) search.value = '';\n selectionIndex.value = -1;\n }\n });\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return;\n if (val) menu.value = true;\n isPristine.value = !val;\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"onChange\": onChange,\n \"class\": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1\n }, props.class],\n \"style\": props.style,\n \"readonly\": props.readonly,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-autocomplete__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-autocomplete__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VAutocomplete.mjs.map","// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n { text.substr(0, matches) }\n { text.substr(matches, length) }\n { text.substr(matches + length) }\n \n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType,\n },\n clearOnSelect: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VAutocomplete')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VAutocomplete = genericComponent,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VAutocomplete',\n\n props: makeVAutocompleteProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:search': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm()\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const selectedValues = computed(() => model.value.map(selection => selection.props.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus()\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n }\n\n function onChange (e: Event) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === (e.target as HTMLInputElement).value)\n if (item) {\n select(item)\n }\n }\n }\n\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return\n\n if (val) {\n isSelecting.value = true\n search.value = (props.multiple || hasSelectionSlot.value) ? '' : String(model.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n if (!props.multiple && search.value == null) model.value = []\n menu.value = false\n if (!model.value.some(({ title }) => title === search.value)) search.value = ''\n selectionIndex.value = -1\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => item.value === s.value)\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n \n { hasChips.value ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n
\n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType\n","export { VAvatar } from \"./VAvatar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAvatar } from './VAvatar'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAvatar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAvatar');\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n props: makeVAvatarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-avatar', {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, sizeStyles.value, props.style]\n }, {\n default: () => [!slots.default ? props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"alt\": \"\",\n \"cover\": true\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": props.icon\n }, null) : props.text : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n },\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default()]\n }), genOverlays(false, 'v-avatar')]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VAvatar.mjs.map","// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VAvatar')\n\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n \n { !slots.default ? (\n props.image\n ? ()\n : props.icon\n ? ()\n : props.text\n ) : (\n \n { slots.default() }\n \n )}\n\n { genOverlays(false, 'v-avatar') }\n \n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType\n","export { VCheckbox } from \"./VCheckbox.mjs\";\nexport { VCheckboxBtn } from \"./VCheckboxBtn.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCheckbox } from './VCheckbox'\nexport { VCheckboxBtn } from './VCheckboxBtn'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VCheckbox.css\";\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from \"./VCheckboxBtn.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline'])\n}, 'VCheckbox');\nexport const VCheckbox = genericComponent()({\n name: 'VCheckbox',\n inheritAttrs: false,\n props: makeVCheckboxProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:focused': focused => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const uid = getUid();\n const id = computed(() => props.id || `checkbox-${uid}`);\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const checkboxProps = VCheckboxBtn.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-checkbox', props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VCheckboxBtn, _mergeProps(checkboxProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value\n }, controlAttrs, {\n \"error\": isValid.value === false,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"onFocus\": focus,\n \"onBlur\": blur\n }), slots);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckbox.mjs.map","// Styles\nimport './VCheckbox.sass'\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from './VCheckboxBtn'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '../VSelectionControl/VSelectionControl'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { GenericProps } from '@/util'\n\nexport type VCheckboxSlots = Omit & VSelectionControlSlots\n\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline']),\n}, 'VCheckbox')\n\nexport const VCheckbox = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VCheckboxSlots,\n) => GenericProps>()({\n name: 'VCheckbox',\n\n inheritAttrs: false,\n\n props: makeVCheckboxProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:focused': (focused: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `checkbox-${uid}`)\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const checkboxProps = VCheckboxBtn.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCheckbox = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate'\n },\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn'\n })\n}, 'VCheckboxBtn');\nexport const VCheckboxBtn = genericComponent()({\n name: 'VCheckboxBtn',\n props: makeVCheckboxBtnProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n function onChange(v) {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n const falseIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.falseIcon;\n });\n const trueIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.trueIcon;\n });\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue']);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"class\": ['v-checkbox-btn', props.class],\n \"style\": props.style,\n \"type\": \"checkbox\",\n \"falseIcon\": falseIcon.value,\n \"trueIcon\": trueIcon.value,\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckboxBtn.mjs.map","// Components\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\nimport type { GenericProps } from '@/util'\n\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn',\n }),\n}, 'VCheckboxBtn')\n\nexport const VCheckboxBtn = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSelectionControlSlots,\n) => GenericProps>()({\n name: 'VCheckboxBtn',\n\n props: makeVCheckboxBtnProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n\n function onChange (v: any) {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n const falseIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.falseIcon\n })\n\n const trueIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue'])\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCheckboxBtn = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSelectionControl.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, matchesSelector, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps()\n}, 'VSelectionControl');\nexport function useSelectionControl(props) {\n const group = inject(VSelectionControlGroupSymbol, undefined);\n const {\n densityClasses\n } = useDensity(props);\n const modelValue = useProxiedModel(props, 'modelValue');\n const trueValue = computed(() => props.trueValue !== undefined ? props.trueValue : props.value !== undefined ? props.value : true);\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false);\n const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));\n const model = computed({\n get() {\n const val = group ? group.modelValue.value : modelValue.value;\n return isMultiple.value ? wrapInArray(val).some(v => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);\n },\n set(val) {\n if (props.readonly) return;\n const currentValue = val ? trueValue.value : falseValue.value;\n let newVal = currentValue;\n if (isMultiple.value) {\n newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter(item => !props.valueComparator(item, trueValue.value));\n }\n if (group) {\n group.modelValue.value = newVal;\n } else {\n modelValue.value = newVal;\n }\n }\n });\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined;\n return model.value ? props.color : props.baseColor;\n }));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => {\n return model.value && !props.error && !props.disabled ? props.color : props.baseColor;\n }));\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon\n };\n}\nexport const VSelectionControl = genericComponent()({\n name: 'VSelectionControl',\n directives: {\n Ripple\n },\n inheritAttrs: false,\n props: makeVSelectionControlProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue\n } = useSelectionControl(props);\n const uid = getUid();\n const isFocused = shallowRef(false);\n const isFocusVisible = shallowRef(false);\n const input = ref();\n const id = computed(() => props.id || `input-${uid}`);\n const isInteractive = computed(() => !props.disabled && !props.readonly);\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value;\n }\n });\n function onFocus(e) {\n if (!isInteractive.value) return;\n isFocused.value = true;\n if (matchesSelector(e.target, ':focus-visible') !== false) {\n isFocusVisible.value = true;\n }\n }\n function onBlur() {\n isFocused.value = false;\n isFocusVisible.value = false;\n }\n function onClickLabel(e) {\n e.stopPropagation();\n }\n function onInput(e) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value;\n }\n return;\n }\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate());\n }\n model.value = e.target.checked;\n }\n useRender(() => {\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const inputNode = _createVNode(\"input\", _mergeProps({\n \"ref\": input,\n \"checked\": model.value,\n \"disabled\": !!props.disabled,\n \"id\": id.value,\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onInput\": onInput,\n \"aria-disabled\": !!props.disabled,\n \"aria-label\": props.label,\n \"type\": props.type,\n \"value\": trueValue.value,\n \"name\": props.name,\n \"aria-checked\": props.type === 'checkbox' ? model.value : undefined\n }, inputAttrs), null);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-selection-control', {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': props.inline\n }, densityClasses.value, props.class]\n }, rootAttrs, {\n \"style\": props.style\n }), [_createVNode(\"div\", {\n \"class\": ['v-selection-control__wrapper', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles\n }), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-selection-control__input']\n }, [slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value\n }\n }) ?? _createVNode(_Fragment, null, [icon.value && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": icon.value\n }, null), inputNode])]), [[_resolveDirective(\"ripple\"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && _createVNode(VLabel, {\n \"for\": id.value,\n \"onClick\": onClickLabel\n }, {\n default: () => [label]\n })]);\n });\n return {\n isFocused,\n input\n };\n }\n});\n//# sourceMappingURL=VSelectionControl.mjs.map","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue'\nimport {\n filterInputAttrs,\n genericComponent,\n getUid,\n matchesSelector,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { CSSProperties, ExtractPropTypes, Ref, VNode, WritableComputedRef } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { EventProp, GenericProps } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef\n textColorClasses: Ref\n textColorStyles: Ref\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n inputNode: VNode\n icon: IconValue | undefined\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport type VSelectionControlSlots = {\n default: {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n }\n label: { label: string | undefined, props: Record }\n input: SelectionControlSlot\n}\n\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps(),\n}, 'VSelectionControl')\n\nexport function useSelectionControl (\n props: ExtractPropTypes> & {\n 'onUpdate:modelValue': EventProp | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? wrapInArray(val).some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined\n\n return model.value ? props.color : props.baseColor\n }))\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : props.baseColor\n }))\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon)\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSelectionControlSlots,\n) => GenericProps>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeVSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const isFocused = shallowRef(false)\n const isFocusVisible = shallowRef(false)\n const input = ref()\n const id = computed(() => props.id || `input-${uid}`)\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value\n }\n })\n\n function onFocus (e: FocusEvent) {\n if (!isInteractive.value) return\n\n isFocused.value = true\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') !== false) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n function onClickLabel (e: Event) {\n e.stopPropagation()\n }\n\n function onInput (e: Event) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value\n }\n\n return\n }\n\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate())\n }\n model.value = (e.target as HTMLInputElement).checked\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n \n )\n\n return (\n \n \n { slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles,\n })}\n\n \n { slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n } satisfies SelectionControlSlot) ?? (\n <>\n { icon.value && }\n\n { inputNode }\n \n )}\n \n \n\n { label && (\n \n { label }\n \n )}\n \n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType\n","export { VLabel } from \"./VLabel.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLabel } from './VLabel'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLabel.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLabelProps = propsFactory({\n text: String,\n onClick: EventProp(),\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VLabel');\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n props: makeVLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"label\", {\n \"class\": ['v-label', {\n 'v-label--clickable': !!props.onClick\n }, props.class],\n \"style\": props.style,\n \"onClick\": props.onClick\n }, [props.text, slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLabel.mjs.map","// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLabelProps = propsFactory({\n text: String,\n\n onClick: EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VLabel')\n\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n\n props: makeVLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n { props.text }\n\n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSelectionControlGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue';\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group');\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean,\n default: null\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n multiple: {\n type: Boolean,\n default: null\n },\n name: String,\n readonly: {\n type: Boolean,\n default: null\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps()\n}, 'SelectionControlGroup');\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl'\n })\n}, 'VSelectionControlGroup');\nexport const VSelectionControlGroup = genericComponent()({\n name: 'VSelectionControlGroup',\n props: makeVSelectionControlGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const modelValue = useProxiedModel(props, 'modelValue');\n const uid = getUid();\n const id = computed(() => props.id || `v-selection-control-group-${uid}`);\n const name = computed(() => props.name || id.value);\n const updateHandlers = new Set();\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn());\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb);\n onScopeDispose(() => {\n updateHandlers.delete(cb);\n });\n }\n });\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-selection-control-group', {\n 'v-selection-control-group--inline': props.inline\n }, props.class],\n \"style\": props.style,\n \"role\": props.type === 'radio' ? 'radiogroup' : undefined\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VSelectionControlGroup.mjs.map","// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue'\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\nimport type { GenericProps } from '@/util'\n\nexport interface VSelectionGroupContext {\n modelValue: Ref\n forceUpdate: () => void\n onForceUpdate: (fn: () => void) => void\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey = Symbol.for('vuetify:selection-control-group')\n\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n multiple: {\n type: Boolean as PropType,\n default: null,\n },\n name: String,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps(),\n}, 'SelectionControlGroup')\n\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl',\n }),\n}, 'VSelectionControlGroup')\n\nexport const VSelectionControlGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: { default: never },\n) => GenericProps>()({\n name: 'VSelectionControlGroup',\n\n props: makeVSelectionControlGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n const updateHandlers = new Set<() => void>()\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn())\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb)\n onScopeDispose(() => {\n updateHandlers.delete(cb)\n })\n },\n })\n\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VInput.css\";\n\n// Components\nimport { useInputIcon } from \"./InputIcon.mjs\";\nimport { VMessages } from \"../VMessages/VMessages.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String],\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String],\n default: () => []\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical'].includes(v)\n },\n 'onClick:prepend': EventProp(),\n 'onClick:append': EventProp(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),\n ...makeThemeProps(),\n ...makeValidationProps()\n}, 'VInput');\nexport const VInput = genericComponent()({\n name: 'VInput',\n props: {\n ...makeVInputProps()\n },\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const {\n InputIcon\n } = useInputIcon(props);\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n } = useValidation(props, 'v-input', id);\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate\n }));\n const messages = computed(() => {\n if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {\n return errorMessages.value;\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint;\n } else {\n return props.messages;\n }\n });\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon);\n const hasAppend = !!(slots.append || props.appendIcon);\n const hasMessages = messages.value.length > 0;\n const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);\n return _createVNode(\"div\", {\n \"class\": ['v-input', `v-input--${props.direction}`, {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons\n }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-input__prepend\"\n }, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prepend\"\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-input__control\"\n }, [slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-input__append\"\n }, [props.appendIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"append\"\n }, null), slots.append?.(slotProps.value)]), hasDetails && _createVNode(\"div\", {\n \"class\": \"v-input__details\"\n }, [_createVNode(VMessages, {\n \"id\": messagesId.value,\n \"active\": hasMessages,\n \"messages\": messages.value\n }, {\n message: slots.message\n }), slots.details?.(slotProps.value)])]);\n });\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages\n };\n }\n});\n//# sourceMappingURL=VInput.mjs.map","// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef\n messagesId: ComputedRef\n isDirty: ComputedRef\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isPristine: Ref\n isValid: ComputedRef\n isValidating: Ref\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), [\n 'maxWidth',\n 'minWidth',\n 'width',\n ]),\n ...makeThemeProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n \n { hasPrepend && (\n
\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n \n )}\n
\n )}\n\n { slots.default && (\n
\n { slots.default?.(slotProps.value) }\n
\n )}\n\n { hasAppend && (\n
\n { props.appendIcon && (\n \n )}\n\n { slots.append?.(slotProps.value) }\n
\n )}\n\n { hasDetails && (\n
\n \n\n { slots.details?.(slotProps.value) }\n
\n )}\n \n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Types\nexport function useInputIcon(props) {\n const {\n t\n } = useLocale();\n function InputIcon(_ref) {\n let {\n name\n } = _ref;\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear'\n }[name];\n const listener = props[`onClick:${name}`];\n const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;\n return _createVNode(VIcon, {\n \"icon\": props[`${name}Icon`],\n \"aria-label\": label,\n \"onClick\": listener\n }, null);\n }\n return {\n InputIcon\n };\n}\n//# sourceMappingURL=InputIcon.mjs.map","// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp any> = T | T[]\ntype InputIconProps = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon> (props: T & InputIconProps) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n \n )\n }\n\n return { InputIcon }\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMessages.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String],\n default: () => []\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true\n }\n })\n}, 'VMessages');\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n props: makeVMessagesProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const messages = computed(() => wrapInArray(props.messages));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => props.color));\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"tag\": \"div\",\n \"class\": ['v-messages', textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style],\n \"role\": \"alert\",\n \"aria-live\": \"polite\"\n }, {\n default: () => [props.active && messages.value.map((message, i) => _createVNode(\"div\", {\n \"class\": \"v-messages__message\",\n \"key\": `${i}-${messages.value}`\n }, [slots.message ? slots.message({\n message\n }) : message]))]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMessages.mjs.map","// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: VMessageSlot\n}\n\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition as Component,\n leaveAbsolute: true,\n group: true,\n },\n }),\n}, 'VMessages')\n\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n\n props: makeVMessagesProps(),\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n \n { props.active && (\n messages.value.map((message, i) => (\n \n { slots.message ? slots.message({ message }) : message }\n \n ))\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType\n","// Composables\nimport { makeFocusProps } from \"./focus.mjs\";\nimport { useForm } from \"./form.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\";\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue';\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String],\n default: () => []\n },\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean,\n default: null\n },\n rules: {\n type: Array,\n default: () => []\n },\n modelValue: null,\n validateOn: String,\n validationValue: null,\n ...makeFocusProps()\n}, 'validation');\nexport function useValidation(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();\n const model = useProxiedModel(props, 'modelValue');\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);\n const form = useForm();\n const internalErrorMessages = ref([]);\n const isPristine = shallowRef(true);\n const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value));\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value));\n const errorMessages = computed(() => {\n return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;\n });\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules.length) return true;\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;\n } else {\n return !internalErrorMessages.value.length;\n }\n });\n const isValidating = shallowRef(false);\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value\n };\n });\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n onBeforeUnmount(() => {\n form?.unregister(uid.value);\n });\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n }\n form?.update(uid.value, isValid.value, errorMessages.value);\n });\n useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate();\n unwatch();\n });\n }\n });\n });\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate();\n });\n });\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value);\n });\n async function reset() {\n model.value = null;\n await nextTick();\n await resetValidation();\n }\n async function resetValidation() {\n isPristine.value = true;\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n async function validate() {\n let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const results = [];\n isValidating.value = true;\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break;\n }\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n if (result === true) continue;\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);\n continue;\n }\n results.push(result || '');\n }\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPristine.value = silent;\n return internalErrorMessages.value;\n }\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n//# sourceMappingURL=validation.mjs.map","// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'\ntype ValidateOn =\n | ValidateOnValue\n | `${ValidateOnValue} lazy`\n | `${ValidateOnValue} eager`\n | `lazy ${ValidateOnValue}`\n | `eager ${ValidateOnValue}`\n | 'lazy'\n | 'eager'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOn\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n if (value === 'eager') value = 'input eager'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input || (validateOn.value.invalidInput && isValid.value === false), () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n async function reset () {\n model.value = null\n await nextTick()\n await resetValidation()\n }\n\n async function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n","export { __values as _ } from \"tslib\";\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp()\n}, 'focus');\nexport function useFocus(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const isFocused = useProxiedModel(props, 'focused');\n const focusClasses = computed(() => {\n return {\n [`${name}--focused`]: isFocused.value\n };\n });\n function focus() {\n isFocused.value = true;\n }\n function blur() {\n isFocused.value = false;\n }\n return {\n focusClasses,\n isFocused,\n focus,\n blur\n };\n}\n//# sourceMappingURL=focus.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[boolean]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue';\nimport { consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\nexport const FormKey = Symbol.for('vuetify:form');\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n validateOn: {\n type: String,\n default: 'input'\n }\n}, 'form');\nexport function createForm(props) {\n const model = useProxiedModel(props, 'modelValue');\n const isDisabled = computed(() => props.disabled);\n const isReadonly = computed(() => props.readonly);\n const isValidating = shallowRef(false);\n const items = ref([]);\n const errors = ref([]);\n async function validate() {\n const results = [];\n let valid = true;\n errors.value = [];\n isValidating.value = true;\n for (const item of items.value) {\n const itemErrorMessages = await item.validate();\n if (itemErrorMessages.length > 0) {\n valid = false;\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages\n });\n }\n if (!valid && props.fastFail) break;\n }\n errors.value = results;\n isValidating.value = false;\n return {\n valid,\n errors: errors.value\n };\n }\n function reset() {\n items.value.forEach(item => item.reset());\n }\n function resetValidation() {\n items.value.forEach(item => item.resetValidation());\n }\n watch(items, () => {\n let valid = 0;\n let invalid = 0;\n const results = [];\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++;\n results.push({\n id: item.id,\n errorMessages: item.errorMessages\n });\n } else if (item.isValid === true) valid++;\n }\n errors.value = results;\n model.value = invalid > 0 ? false : valid === items.value.length ? true : null;\n }, {\n deep: true,\n flush: 'post'\n });\n provide(FormKey, {\n register: _ref => {\n let {\n id,\n vm,\n validate,\n reset,\n resetValidation\n } = _ref;\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`);\n }\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: []\n });\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id;\n });\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id);\n if (!found) return;\n found.isValid = isValid;\n found.errorMessages = errorMessages;\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn')\n });\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation\n };\n}\nexport function useForm() {\n return inject(FormKey, null);\n}\n//# sourceMappingURL=form.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, InjectionKey, PropType, Raw, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\nimport type { EventProp } from '@/util'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n vm: ComponentInternalInstance\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isValidating: Ref\n isValid: Ref\n validateOn: Ref\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n vm: Raw\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise {}\n\nexport const FormKey: InjectionKey = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType,\n default: null,\n },\n validateOn: {\n type: String as PropType,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref([])\n const errors = ref([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true, flush: 'post' })\n\n provide(FormKey, {\n register: ({ id, vm, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n","export { VChip } from \"./VChip.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VChip } from './VChip'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _withDirectives, vShow as _vShow, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n/* eslint-disable complexity */\n// Styles\nimport \"./VChip.css\";\n\n// Components\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VChipGroupSymbol } from \"../VChipGroup/VChipGroup.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete'\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'span'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChip');\nexport const VChip = genericComponent()({\n name: 'VChip',\n directives: {\n Ripple\n },\n props: makeVChipProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true,\n 'group:selected': val => true,\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses\n } = useSize(props);\n const {\n themeClasses\n } = provideTheme(props);\n const isActive = useProxiedModel(props, 'modelValue');\n const group = useGroupItem(props, VChipGroupSymbol, false);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n group?.toggle();\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e);\n }\n }\n return () => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasClose = !!(slots.close || props.closable);\n const hasFilter = !!(slots.filter || props.filter) && group;\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasColor = !group || group.isSelected.value;\n return isActive.value && _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-chip', {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill\n }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],\n \"style\": [hasColor ? colorStyles.value : undefined, props.style],\n \"disabled\": props.disabled || undefined,\n \"draggable\": props.draggable,\n \"tabindex\": isClickable.value ? 0 : undefined,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && _createVNode(VExpandXTransition, {\n \"key\": \"filter\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-chip__filter\"\n }, [!slots.filter ? _createVNode(VIcon, {\n \"key\": \"filter-icon\",\n \"icon\": props.filterIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"filter-defaults\",\n \"disabled\": !props.filterIcon,\n \"defaults\": {\n VIcon: {\n icon: props.filterIcon\n }\n }\n }, slots.filter)]), [[_vShow, group.isSelected.value]])]\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-chip__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon,\n \"start\": true\n }, null), props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"image\": props.prependAvatar,\n \"start\": true\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n image: props.prependAvatar,\n start: true\n },\n VIcon: {\n icon: props.prependIcon,\n start: true\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-chip__content\",\n \"data-no-activator\": \"\"\n }, [slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled\n }) ?? props.text]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-chip__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"end\": true,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"end\": true,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n end: true,\n image: props.appendAvatar\n },\n VIcon: {\n end: true,\n icon: props.appendIcon\n }\n }\n }, slots.append)]), hasClose && _createVNode(\"button\", _mergeProps({\n \"key\": \"close\",\n \"class\": \"v-chip__close\",\n \"type\": \"button\",\n \"data-testid\": \"close-chip\"\n }, closeProps.value), [!slots.close ? _createVNode(VIcon, {\n \"key\": \"close-icon\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\"\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small'\n }\n }\n }, slots.close)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple, null]]);\n };\n }\n});\n//# sourceMappingURL=VChip.mjs.map","/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VChipSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean\n }\n label: never\n prepend: never\n append: never\n close: never\n filter: never\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChip')\n\nexport const VChip = genericComponent()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n \n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n \n \n { !slots.filter ? (\n \n ) : (\n \n )}\n \n \n )}\n\n { hasPrepend && (\n
\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n \n )}\n\n { props.prependAvatar && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n\n
\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n
\n\n { hasAppend && (\n
\n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n\n { hasClose && (\n \n { !slots.close ? (\n \n ) : (\n \n )}\n \n )}\n \n )\n }\n },\n})\n\nexport type VChip = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VChipGroup.css\";\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-chip--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChipGroup');\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n props: makeVChipGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VChipGroupSymbol);\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n return _createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"class\": ['v-chip-group', {\n 'v-chip-group--column': props.column\n }, themeClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VChipGroup.mjs.map","// Styles\nimport './VChipGroup.sass'\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChipGroup')\n\ntype VChipGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VChipGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VChipGroupSlots,\n) => GenericProps>()({\n name: 'VChipGroup',\n\n props: makeVChipGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useGoTo } from \"../../composables/goto.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.mjs\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active'\n })\n}, 'VSlideGroup');\nexport const VSlideGroup = genericComponent()({\n name: 'VSlideGroup',\n props: makeVSlideGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const group = useGroup(props, props.symbol);\n const isOverflowing = shallowRef(false);\n const scrollOffset = shallowRef(0);\n const containerSize = shallowRef(0);\n const contentSize = shallowRef(0);\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const {\n resizeRef: containerRef,\n contentRect: containerRect\n } = useResizeObserver();\n const {\n resizeRef: contentRef,\n contentRect\n } = useResizeObserver();\n const goTo = useGoTo();\n const goToOptions = computed(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart'\n };\n });\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[0]);\n });\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);\n });\n if (IN_BROWSER) {\n let frame = -1;\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height';\n containerSize.value = containerRect.value[sizeProperty];\n contentSize.value = contentRect.value[sizeProperty];\n isOverflowing.value = containerSize.value + 1 < contentSize.value;\n }\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value];\n scrollToChildren(selectedElement, props.centerActive);\n }\n });\n });\n }\n const isFocused = shallowRef(false);\n function scrollToChildren(children, center) {\n let target = 0;\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n selectedElement: children\n });\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children\n });\n }\n scrollToPosition(target);\n }\n function scrollToPosition(newPosition) {\n if (!IN_BROWSER || !containerRef.el) return;\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n if (scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16) return;\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition = scrollWidth - containerWidth - newPosition;\n }\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value);\n } else {\n goTo(newPosition, goToOptions.value);\n }\n }\n function onScroll(e) {\n const {\n scrollTop,\n scrollLeft\n } = e.target;\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;\n }\n function onFocusin(e) {\n isFocused.value = true;\n if (!isOverflowing.value || !contentRef.el) return;\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item);\n return;\n }\n }\n }\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false;\n function onFocus(e) {\n if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();\n ignoreFocusEvent = false;\n }\n function onFocusAffixes() {\n ignoreFocusEvent = true;\n }\n function onKeydown(e) {\n if (!contentRef.el) return;\n function toFocus(location) {\n e.preventDefault();\n focus(location);\n }\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next');\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev');\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next');\n } else if (e.key === 'ArrowUp') {\n toFocus('prev');\n }\n }\n if (e.key === 'Home') {\n toFocus('first');\n } else if (e.key === 'End') {\n toFocus('last');\n }\n }\n function focus(location) {\n if (!contentRef.el) return;\n let el;\n if (!location) {\n const focusable = focusableChildren(contentRef.el);\n el = focusable[0];\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling;\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling;\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n }\n if (el) {\n el.focus({\n preventScroll: true\n });\n }\n }\n function scrollTo(location) {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1;\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;\n let newPosition = scrollOffset.value + offsetStep;\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition += scrollWidth - containerWidth;\n }\n scrollToPosition(newPosition);\n }\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected\n }));\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n\n // Always show arrows on desktop\n case 'desktop':\n return !mobile.value;\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true:\n return isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && (isOverflowing.value || Math.abs(scrollOffset.value) > 0);\n }\n });\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1;\n });\n const hasNext = computed(() => {\n if (!containerRef.value) return false;\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n const clientSize = getClientSize(isHorizontal.value, containerRef.el);\n const scrollSizeMax = scrollSize - clientSize;\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1;\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-slide-group', {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value\n }, displayClasses.value, props.class],\n \"style\": props.style,\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": ['v-slide-group__prev', {\n 'v-slide-group__prev--disabled': !hasPrev.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasPrev.value && scrollTo('prev')\n }, [slots.prev?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.nextIcon : props.prevIcon\n }, null)]\n })]), _createVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": \"v-slide-group__container\",\n \"onScroll\": onScroll\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-slide-group__content\",\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onKeydown\": onKeydown\n }, [slots.default?.(slotProps.value)])]), hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"next\",\n \"class\": ['v-slide-group__next', {\n 'v-slide-group__next--disabled': !hasNext.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasNext.value && scrollTo('next')\n }, [slots.next?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.prevIcon : props.nextIcon\n }, null)]\n })])]\n }));\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.mjs.map","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const goTo = useGoTo()\n const goToOptions = computed>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\n }\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\n })\n\n useRender(() => (\n \n { hasAffixes.value && (\n hasPrev.value && scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n\n \n \n { slots.default?.(slotProps.value) }\n \n \n\n { hasAffixes.value && (\n hasNext.value && scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n \n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType\n","export function calculateUpdatedTarget(_ref) {\n let {\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal\n } = _ref;\n const containerSize = getOffsetSize(isHorizontal, containerElement);\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);\n const childrenSize = getOffsetSize(isHorizontal, selectedElement);\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);\n const additionalOffset = childrenSize * 0.4;\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset;\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset;\n }\n return scrollPosition;\n}\nexport function calculateCenteredTarget(_ref2) {\n let {\n selectedElement,\n containerElement,\n isHorizontal\n } = _ref2;\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);\n return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;\n}\nexport function getScrollSize(isHorizontal, element) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';\n return element?.[key] || 0;\n}\nexport function getClientSize(isHorizontal, element) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight';\n return element?.[key] || 0;\n}\nexport function getScrollPosition(isHorizontal, rtl, element) {\n if (!element) {\n return 0;\n }\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = element;\n if (isHorizontal) {\n return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;\n }\n return element.scrollTop;\n}\nexport function getOffsetSize(isHorizontal, element) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n return element?.[key] || 0;\n}\nexport function getOffsetPosition(isHorizontal, element) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop';\n return element?.[key] || 0;\n}\n//# sourceMappingURL=helpers.mjs.map","export function calculateUpdatedTarget ({\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const containerSize = getOffsetSize(isHorizontal, containerElement)\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement)\n\n const childrenSize = getOffsetSize(isHorizontal, selectedElement)\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement)\n\n const additionalOffset = childrenSize * 0.4\n\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset\n }\n\n return scrollPosition\n}\n\nexport function calculateCenteredTarget ({\n selectedElement,\n containerElement,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isHorizontal: boolean\n}): number {\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement)\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement)\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement)\n\n return childrenOffsetPosition - (containerOffsetSize / 2) + (childrenOffsetSize / 2)\n}\n\nexport function getScrollSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight'\n return element?.[key] || 0\n}\n\nexport function getClientSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight'\n return element?.[key] || 0\n}\n\nexport function getScrollPosition (isHorizontal: boolean, rtl: boolean, element?: HTMLElement) {\n if (!element) {\n return 0\n }\n\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth,\n } = element\n\n if (isHorizontal) {\n return rtl\n ? scrollWidth - offsetWidth + scrollLeft\n : scrollLeft\n }\n\n return element.scrollTop\n}\n\nexport function getOffsetSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight'\n return element?.[key] || 0\n}\n\nexport function getOffsetPosition (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop'\n return element?.[key] || 0\n}\n","export { VList } from \"./VList.mjs\";\nexport { VListGroup } from \"./VListGroup.mjs\";\nexport { VListImg } from \"./VListImg.mjs\";\nexport { VListItem } from \"./VListItem.mjs\";\nexport { VListItemAction } from \"./VListItemAction.mjs\";\nexport { VListItemMedia } from \"./VListItemMedia.mjs\";\nexport { VListItemSubtitle } from \"./VListItemSubtitle.mjs\";\nexport { VListItemTitle } from \"./VListItemTitle.mjs\";\nexport { VListSubheader } from \"./VListSubheader.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VList } from './VList'\nexport { VListGroup } from './VListGroup'\nexport { VListImg } from './VListImg'\nexport { VListItem } from './VListItem'\nexport { VListItemAction } from './VListItemAction'\nexport { VListItemMedia } from './VListItemMedia'\nexport { VListItemSubtitle } from './VListItemSubtitle'\nexport { VListItemTitle } from './VListItemTitle'\nexport { VListSubheader } from './VListSubheader'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VList.css\";\n\n// Components\nimport { VListChildren } from \"./VListChildren.mjs\"; // Composables\nimport { createList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeItemsProps } from \"../../composables/list-items.mjs\";\nimport { makeNestedProps, useNested } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\nfunction transformItem(props, item) {\n const type = getPropertyFromItem(item, props.itemType, 'item');\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);\n const value = getPropertyFromItem(item, props.itemValue, undefined);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nfunction transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useListItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: String,\n collapseIcon: String,\n lines: {\n type: [Boolean, String],\n default: 'one'\n },\n slim: Boolean,\n nav: Boolean,\n 'onClick:open': EventProp(),\n 'onClick:select': EventProp(),\n 'onUpdate:opened': EventProp(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf',\n openStrategy: 'list'\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type'\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VList');\nexport const VList = genericComponent()({\n name: 'VList',\n props: makeVListProps(),\n emits: {\n 'update:selected': value => true,\n 'update:activated': value => true,\n 'update:opened': value => true,\n 'click:open': value => true,\n 'click:activate': value => true,\n 'click:select': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items\n } = useListItems(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n children,\n open,\n parents,\n select,\n getPath\n } = useNested(props);\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);\n const activeColor = toRef(props, 'activeColor');\n const baseColor = toRef(props, 'baseColor');\n const color = toRef(props, 'color');\n createList();\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon')\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant')\n }\n });\n const isFocused = shallowRef(false);\n const contentRef = ref();\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n function onFocus(e) {\n if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();\n }\n function onKeydown(e) {\n const target = e.target;\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return;\n if (e.key === 'ArrowDown') {\n focus('next');\n } else if (e.key === 'ArrowUp') {\n focus('prev');\n } else if (e.key === 'Home') {\n focus('first');\n } else if (e.key === 'End') {\n focus('last');\n } else {\n return;\n }\n e.preventDefault();\n }\n function onMousedown(e) {\n isFocused.value = true;\n }\n function focus(location) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location);\n }\n }\n useRender(() => {\n return _createVNode(props.tag, {\n \"ref\": contentRef,\n \"class\": ['v-list', {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": props.disabled || isFocused.value ? -1 : 0,\n \"role\": \"listbox\",\n \"aria-activedescendant\": undefined,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onFocus\": onFocus,\n \"onKeydown\": onKeydown,\n \"onMousedown\": onMousedown\n }, {\n default: () => [_createVNode(VListChildren, {\n \"items\": items.value,\n \"returnObject\": props.returnObject\n }, slots)]\n });\n });\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath\n };\n }\n});\n//# sourceMappingURL=VList.mjs.map","// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem extends ListItem {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction isPrimitive (value: unknown): value is string | number | boolean {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: String,\n collapseIcon: String,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemChildren?: SelectItemKey>\n itemProps?: SelectItemKey>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots>\n) => GenericProps>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon'),\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n \n \n \n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VListGroup } from \"./VListGroup.mjs\";\nimport { VListItem } from \"./VListItem.mjs\";\nimport { VListSubheader } from \"./VListSubheader.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\"; // Utilities\nimport { createList } from \"./list.mjs\";\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVListChildrenProps = propsFactory({\n items: Array,\n returnObject: Boolean\n}, 'VListChildren');\nexport const VListChildren = genericComponent()({\n name: 'VListChildren',\n props: makeVListChildrenProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n createList();\n return () => slots.default?.() ?? props.items?.map(_ref2 => {\n let {\n children,\n props: itemProps,\n type,\n raw: item\n } = _ref2;\n if (type === 'divider') {\n return slots.divider?.({\n props: itemProps\n }) ?? _createVNode(VDivider, itemProps, null);\n }\n if (type === 'subheader') {\n return slots.subheader?.({\n props: itemProps\n }) ?? _createVNode(VListSubheader, itemProps, null);\n }\n const slotsWithItem = {\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({\n ...slotProps,\n item\n }) : undefined,\n prepend: slots.prepend ? slotProps => slots.prepend?.({\n ...slotProps,\n item\n }) : undefined,\n append: slots.append ? slotProps => slots.append?.({\n ...slotProps,\n item\n }) : undefined,\n title: slots.title ? slotProps => slots.title?.({\n ...slotProps,\n item\n }) : undefined\n };\n const listGroupProps = VListGroup.filterProps(itemProps);\n return children ? _createVNode(VListGroup, _mergeProps({\n \"value\": itemProps?.value\n }, listGroupProps), {\n activator: _ref3 => {\n let {\n props: activatorProps\n } = _ref3;\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value\n };\n return slots.header ? slots.header({\n props: listItemProps\n }) : _createVNode(VListItem, listItemProps, slotsWithItem);\n },\n default: () => _createVNode(VListChildren, {\n \"items\": children,\n \"returnObject\": props.returnObject\n }, slots)\n }) : slots.item ? slots.item({\n props: itemProps\n }) : _createVNode(VListItem, _mergeProps(itemProps, {\n \"value\": props.returnObject ? item : itemProps.value\n }), slotsWithItem);\n });\n }\n});\n//# sourceMappingURL=VListChildren.mjs.map","// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '../VDivider'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots = {\n [K in keyof Omit]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots\n) => GenericProps>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n \n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n \n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n \n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value,\n }\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n \n )\n },\n default: () => (\n \n ),\n }}\n \n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n \n )\n )\n })\n },\n})\n","import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedGroupActivator, useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n useNestedGroupActivator();\n return () => slots.default?.();\n }\n});\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListGroup');\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n props: makeVListGroupProps(),\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const {\n isOpen,\n open,\n id: _id\n } = useNestedItem(toRef(props, 'value'), true);\n const id = computed(() => `v-list-group--id-${String(_id.value)}`);\n const list = useList();\n const {\n isBooted\n } = useSsrBoot();\n function onClick(e) {\n e.stopPropagation();\n open(!isOpen.value, e);\n }\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value\n }));\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon);\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,\n appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,\n title: props.title,\n value: props.value\n }\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-group', {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.activator && _createVNode(VDefaultsProvider, {\n \"defaults\": activatorDefaults.value\n }, {\n default: () => [_createVNode(VListGroupActivator, null, {\n default: () => [slots.activator({\n props: activatorProps.value,\n isOpen: isOpen.value\n })]\n })]\n }), _createVNode(MaybeTransition, {\n \"transition\": {\n component: VExpandTransition\n },\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-list-group__items\",\n \"role\": \"group\",\n \"aria-labelledby\": id.value\n }, [slots.default?.()]), [[_vShow, isOpen.value]])]\n })]\n }));\n return {\n isOpen\n };\n }\n});\n//# sourceMappingURL=VListGroup.mjs.map","// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useList } from './list'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VListGroupSlots = {\n default: never\n activator: { isOpen: boolean, props: Record }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListGroup')\n\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n\n props: makeVListGroupProps(),\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n const { isBooted } = useSsrBoot()\n\n function onClick (e: Event) {\n e.stopPropagation()\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }))\n\n useRender(() => (\n \n { slots.activator && (\n \n \n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n \n \n )}\n\n \n
\n { slots.default?.() }\n
\n
\n \n ))\n\n return {\n isOpen,\n }\n },\n})\n\nexport type VListGroup = InstanceType\n","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue';\n\n// Types\n\n// Depth\nexport const DepthKey = Symbol.for('vuetify:depth');\nexport function useDepth(hasPrepend) {\n const parent = inject(DepthKey, shallowRef(-1));\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0));\n provide(DepthKey, depth);\n return depth;\n}\n\n// List\nexport const ListKey = Symbol.for('vuetify:list');\nexport function createList() {\n const parent = inject(ListKey, {\n hasPrepend: shallowRef(false),\n updateHasPrepend: () => null\n });\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: value => {\n if (value) data.hasPrepend.value = value;\n }\n };\n provide(ListKey, data);\n return parent;\n}\nexport function useList() {\n return inject(ListKey, null);\n}\n//# sourceMappingURL=list.mjs.map","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref) {\n const parent = inject(DepthKey, shallowRef(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: shallowRef(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n","// Composables\nimport { useProxiedModel } from \"../proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue';\nimport { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from \"./activeStrategies.mjs\";\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from \"./openStrategies.mjs\";\nimport { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from \"./selectStrategies.mjs\";\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VNestedSymbol = Symbol.for('vuetify:nested');\nexport const emptyNested = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => []\n }\n};\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object],\n selectStrategy: [String, Function, Object],\n openStrategy: [String, Object],\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean\n}, 'nested');\nexport const useNested = props => {\n let isUnmounted = false;\n const children = ref(new Map());\n const parents = ref(new Map());\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));\n const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n function getPath(id) {\n const path = [];\n let parent = id;\n while (parent != null) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n return path;\n }\n const vm = getCurrentInstance('nested');\n const nodeIds = new Set();\n const nested = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n parentId && id !== parentId && parents.value.set(id, parentId);\n isGroup && children.value.set(id, []);\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n },\n unregister: id => {\n if (isUnmounted) return;\n nodeIds.delete(id);\n children.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(parent, list.filter(child => child !== id));\n }\n parents.value.delete(id);\n },\n open: (id, value, event) => {\n vm.emit('click:open', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newSelected && (selected.value = newSelected);\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n vm.emit('click:activate', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newActivated && (activated.value = newActivated);\n },\n children,\n parents,\n getPath\n }\n };\n provide(VNestedSymbol, nested);\n return nested.root;\n};\nexport const useNestedItem = (id, isGroup) => {\n const parent = inject(VNestedSymbol, emptyNested);\n const uidSymbol = Symbol(getUid());\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);\n const item = {\n ...parent,\n id: computedId,\n open: (open, e) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated, e) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected, e) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value);\n });\n isGroup && provide(VNestedSymbol, item);\n return item;\n};\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested);\n provide(VNestedSymbol, {\n ...parent,\n isGroupActivator: true\n });\n};\n//# sourceMappingURL=nested.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref\n isGroupActivator?: boolean\n root: {\n children: Ref>\n parents: Ref>\n activatable: Ref\n selectable: Ref\n opened: Ref>\n activated: Ref>\n selected: Ref>\n selectedValues: Ref\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType,\n selectStrategy: [String, Function, Object] as PropType,\n openStrategy: [String, Object] as PropType,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map())\n const parents = ref(new Map())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nimport { wrapInArray } from \"../../util/index.mjs\";\nexport const independentActiveStrategy = mandatory => {\n const strategy = {\n activate: _ref => {\n let {\n id,\n value,\n activated\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated;\n if (value) {\n activated.add(id);\n } else {\n activated.delete(id);\n }\n return activated;\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents\n });\n }\n }\n return set;\n },\n out: v => {\n return Array.from(v);\n }\n };\n return strategy;\n};\nexport const independentSingleActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref2 => {\n let {\n activated,\n id,\n ...rest\n } = _ref2;\n id = toRaw(id);\n const singleSelected = activated.has(id) ? new Set([id]) : new Set();\n return parentStrategy.activate({\n ...rest,\n id,\n activated: singleSelected\n });\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n const arr = wrapInArray(v);\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents);\n }\n }\n return set;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref3 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref3;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleActiveStrategy = mandatory => {\n const parentStrategy = independentSingleActiveStrategy(mandatory);\n const strategy = {\n activate: _ref4 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\n//# sourceMappingURL=activeStrategies.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\nimport { wrapInArray } from '@/util'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type ActiveStrategyTransformInFn = (\n v: unknown | undefined,\n children: Map,\n parents: Map,\n) => Set\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set,\n children: Map,\n parents: Map,\n) => unknown\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n const arr = wrapInArray(v)\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents)\n }\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n","export const singleOpenStrategy = {\n open: _ref => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref;\n if (value) {\n const newOpened = new Set();\n newOpened.add(id);\n let parent = parents.get(id);\n while (parent != null) {\n newOpened.add(parent);\n parent = parents.get(parent);\n }\n return newOpened;\n } else {\n opened.delete(id);\n return opened;\n }\n },\n select: () => null\n};\nexport const multipleOpenStrategy = {\n open: _ref2 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref2;\n if (value) {\n let parent = parents.get(id);\n opened.add(id);\n while (parent != null && parent !== id) {\n opened.add(parent);\n parent = parents.get(parent);\n }\n return opened;\n } else {\n opened.delete(id);\n }\n return opened;\n },\n select: () => null\n};\nexport const listOpenStrategy = {\n open: multipleOpenStrategy.open,\n select: _ref3 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref3;\n if (!value) return opened;\n const path = [];\n let parent = parents.get(id);\n while (parent != null) {\n path.push(parent);\n parent = parents.get(parent);\n }\n return new Set(path);\n }\n};\n//# sourceMappingURL=openStrategies.mjs.map","export type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Set | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nexport const independentSelectStrategy = mandatory => {\n const strategy = {\n select: _ref => {\n let {\n id,\n value,\n selected\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref2) => {\n let [key, value] = _ref2;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 1 && on[0] === id) return selected;\n }\n selected.set(id, value ? 'on' : 'off');\n return selected;\n },\n in: (v, children, parents) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents\n });\n }\n return map;\n },\n out: v => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\nexport const independentSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref3 => {\n let {\n selected,\n id,\n ...rest\n } = _ref3;\n id = toRaw(id);\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();\n return parentStrategy.select({\n ...rest,\n id,\n selected: singleSelected\n });\n },\n in: (v, children, parents) => {\n let map = new Map();\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents);\n }\n return map;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref4 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSingleSelectStrategy(mandatory);\n const strategy = {\n select: _ref5 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref5;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const classicSelectStrategy = mandatory => {\n const strategy = {\n select: _ref6 => {\n let {\n id,\n value,\n selected,\n children,\n parents\n } = _ref6;\n id = toRaw(id);\n const original = new Map(selected);\n const items = [id];\n while (items.length) {\n const item = items.shift();\n selected.set(toRaw(item), value ? 'on' : 'off');\n if (children.has(item)) {\n items.push(...children.get(item));\n }\n }\n let parent = toRaw(parents.get(id));\n while (parent) {\n const childrenIds = children.get(parent);\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');\n parent = toRaw(parents.get(parent));\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref7) => {\n let [key, value] = _ref7;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 0) return original;\n }\n return selected;\n },\n in: (v, children, parents) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents\n });\n }\n return map;\n },\n out: (v, children) => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\n//# sourceMappingURL=selectStrategies.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Map\n\nexport type SelectStrategyTransformInFn = (\n v: readonly unknown[] | undefined,\n children: Map,\n parents: Map,\n) => Map\n\nexport type SelectStrategyTransformOutFn = (\n v: Map,\n children: Map,\n parents: Map,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n id = toRaw(id)\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(toRaw(item), value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = toRaw(parents.get(id))\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = toRaw(parents.get(parent))\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VListItem.css\";\n\n// Components\nimport { VListItemSubtitle } from \"./VListItemSubtitle.mjs\";\nimport { VListItemTitle } from \"./VListItemTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, watch } from 'vue';\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String],\n link: {\n type: Boolean,\n default: undefined\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VListItem');\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n directives: {\n Ripple\n },\n props: makeVListItemProps(),\n emits: {\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const link = useLink(props, attrs);\n const id = computed(() => props.value === undefined ? link.href.value : props.value);\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid\n } = useNestedItem(id, false);\n const list = useList();\n const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));\n const roundedProps = computed(() => props.rounded || props.nav);\n const color = computed(() => props.color ?? props.activeColor);\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n }));\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true);\n }\n if (val) {\n openOnSelect(val);\n }\n }, {\n immediate: true\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(roundedProps);\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n if (isGroupActivator) return;\n if (root.activatable.value) {\n activate(!isActivated.value, e);\n } else if (root.selectable.value) {\n select(!isSelected.value, e);\n } else if (props.value != null) {\n select(!isSelected.value, e);\n }\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.target.dispatchEvent(new MouseEvent('click', e));\n }\n }\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = slots.title || props.title != null;\n const hasSubtitle = slots.subtitle || props.subtitle != null;\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n list?.updateHasPrepend(hasPrepend);\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color']);\n }\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-list-item', {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": isClickable.value ? list ? -2 : 0 : undefined,\n \"aria-selected\": root.activatable.value ? isActivated.value : isSelected.value,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-list-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n },\n VListItemAction: {\n start: true\n }\n }\n }, {\n default: () => [slots.prepend?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-list-item__content\",\n \"data-no-activator\": \"\"\n }, [hasTitle && _createVNode(VListItemTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.({\n title: props.title\n }) ?? props.title]\n }), hasSubtitle && _createVNode(VListItemSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.({\n subtitle: props.subtitle\n }) ?? props.subtitle]\n }), slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-list-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n },\n VListItemAction: {\n end: true\n }\n }\n }, {\n default: () => [slots.append?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid\n };\n }\n});\n//# sourceMappingURL=VListItem.mjs.map","// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n \n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n
\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n { slots.prepend?.(slotProps.value) }\n \n )}\n\n
\n
\n )}\n\n
\n { hasTitle && (\n \n { slots.title?.({ title: props.title }) ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n
\n\n { hasAppend && (\n
\n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n { slots.append?.(slotProps.value) }\n \n )}\n\n
\n
\n )}\n \n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n }\n },\n})\n\nexport type VListItem = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemSubtitle');\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n props: makeVListItemSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-subtitle', props.class],\n \"style\": [{\n '--v-list-item-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemSubtitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemSubtitle')\n\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n\n props: makeVListItemSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VListItemSubtitle = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title');\n//# sourceMappingURL=VListItemTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title')\n\nexport type VListItemTitle = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListSubheader');\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n props: makeVListSubheaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const hasText = !!(slots.default || props.title);\n return _createVNode(props.tag, {\n \"class\": ['v-list-subheader', {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky\n }, textColorClasses.value, props.class],\n \"style\": [{\n textColorStyles\n }, props.style]\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-list-subheader__text\"\n }, [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VListSubheader.mjs.map","// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListSubheader')\n\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n\n props: makeVListSubheaderProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n \n { hasText && (\n
\n { slots.default?.() ?? props.title }\n
\n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VListSubheader = InstanceType\n","export { VDivider } from \"./VDivider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDivider } from './VDivider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDivider.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VDivider');\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n props: makeVDividerProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const dividerStyles = computed(() => {\n const styles = {};\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);\n }\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);\n }\n return styles;\n });\n useRender(() => {\n const divider = _createVNode(\"hr\", {\n \"class\": [{\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical\n }, themeClasses.value, textColorClasses.value, props.class],\n \"style\": [dividerStyles.value, textColorStyles.value, {\n '--v-border-opacity': props.opacity\n }, props.style],\n \"aria-orientation\": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,\n \"role\": `${attrs.role || 'separator'}`\n }, null);\n if (!slots.default) return divider;\n return _createVNode(\"div\", {\n \"class\": ['v-divider__wrapper', {\n 'v-divider__wrapper--vertical': props.vertical,\n 'v-divider__wrapper--inset': props.inset\n }]\n }, [divider, _createVNode(\"div\", {\n \"class\": \"v-divider__content\"\n }, [slots.default()]), divider]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDivider.mjs.map","// Styles\nimport './VDivider.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'height' | 'width'\ntype DividerStyles = Partial>\n\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VDivider')\n\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n\n props: makeVDividerProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n useRender(() => {\n const divider = (\n \n )\n\n if (!slots.default) return divider\n\n return (\n \n { divider }\n\n
\n { slots.default() }\n
\n\n { divider }\n
\n )\n })\n\n return {}\n },\n})\n\nexport type VDivider = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { deepEqual, getPropertyFromItem, omit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: [String, Array, Function],\n default: 'title'\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'value'\n },\n itemChildren: {\n type: [Boolean, String, Array, Function],\n default: 'children'\n },\n itemProps: {\n type: [Boolean, String, Array, Function],\n default: 'props'\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n }\n}, 'list-items');\nexport function transformItem(props, item) {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, title);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useItems(props) {\n const items = computed(() => transformItems(props, props.items));\n const hasNullItem = computed(() => items.value.some(item => item.value === null));\n function transformIn(value) {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null);\n }\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v);\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v);\n });\n }\n function transformOut(value) {\n return props.returnObject ? value.map(_ref => {\n let {\n raw\n } = _ref;\n return raw;\n }) : value.map(_ref2 => {\n let {\n value\n } = _ref2;\n return value;\n });\n }\n return {\n items,\n transformIn,\n transformOut\n };\n}\n//# sourceMappingURL=list-items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, omit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport interface ListItem extends InternalItem {\n title: string\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: ListItem[]\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n valueComparator: typeof deepEqual\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'props',\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n}, 'list-items')\n\nexport function transformItem (props: Omit, item: any): ListItem {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? omit(item, ['children'])\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit, items: ItemProps['items']) {\n const array: ListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n const hasNullItem = computed(() => items.value.some(item => item.value === null))\n\n function transformIn (value: any[]): ListItem[] {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null)\n }\n\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v)\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v)\n })\n }\n\n function transformOut (value: ListItem[]): any[] {\n return props.returnObject\n ? value.map(({ raw }) => raw)\n : value.map(({ value }) => value)\n }\n\n return { items, transformIn, transformOut }\n}\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListImg = createSimpleFunctional('v-list-img');\n//# sourceMappingURL=VListImg.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VListImg = createSimpleFunctional('v-list-img')\n\nexport type VListImg = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemActionProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemAction');\nexport const VListItemAction = genericComponent()({\n name: 'VListItemAction',\n props: makeVListItemActionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-action', {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemAction.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemActionProps = propsFactory({\n start: Boolean,\n end: Boolean,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemAction')\n\nexport const VListItemAction = genericComponent()({\n name: 'VListItemAction',\n\n props: makeVListItemActionProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VListItemAction = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemMediaProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemMedia');\nexport const VListItemMedia = genericComponent()({\n name: 'VListItemMedia',\n props: makeVListItemMediaProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-list-item-media', {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VListItemMedia.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemMediaProps = propsFactory({\n start: Boolean,\n end: Boolean,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemMedia')\n\nexport const VListItemMedia = genericComponent()({\n name: 'VListItemMedia',\n\n props: makeVListItemMediaProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VListItemMedia = InstanceType\n","export { VMenu } from \"./VMenu.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMenu } from './VMenu'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMenu.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, watch } from 'vue';\nimport { VMenuSymbol } from \"./shared.mjs\";\nimport { focusableChildren, focusChild, genericComponent, getNextElement, getUid, isClickInsideElement, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected',\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition',\n transition: {\n component: VDialogTransition\n }\n }), ['absolute'])\n}, 'VMenu');\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n props: makeVMenuProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const {\n isRtl\n } = useRtl();\n const uid = getUid();\n const id = computed(() => props.id || `v-menu-${uid}`);\n const overlay = ref();\n const parent = inject(VMenuSymbol, null);\n const openChildren = shallowRef(new Set());\n provide(VMenuSymbol, {\n register() {\n openChildren.value.add(uid);\n },\n unregister() {\n openChildren.value.delete(uid);\n },\n closeParents(e) {\n setTimeout(() => {\n if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {\n isActive.value = false;\n parent?.closeParents();\n }\n }, 40);\n }\n });\n onBeforeUnmount(() => parent?.unregister());\n onDeactivated(() => isActive.value = false);\n async function onFocusIn(e) {\n const before = e.relatedTarget;\n const after = e.target;\n await nextTick();\n if (isActive.value && before !== after && overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n focusable[0]?.focus();\n }\n }\n watch(isActive, val => {\n if (val) {\n parent?.register();\n document.addEventListener('focusin', onFocusIn, {\n once: true\n });\n } else {\n parent?.unregister();\n document.removeEventListener('focusin', onFocusIn);\n }\n });\n function onClickOutside(e) {\n parent?.closeParents(e);\n }\n function onKeydown(e) {\n if (props.disabled) return;\n if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {\n if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;\n if (e.key === 'Enter') e.preventDefault();\n const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);\n if (!nextElement) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n }\n function onActivatorKeydown(e) {\n if (props.disabled) return;\n const el = overlay.value?.contentEl;\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'next');\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'prev');\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault();\n focusChild(el, 'first');\n }\n }\n } else if (props.submenu ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight') : ['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true;\n e.preventDefault();\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)));\n }\n }\n const activatorProps = computed(() => mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"id\": id.value,\n \"class\": ['v-menu', props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"absolute\": true,\n \"activatorProps\": activatorProps.value,\n \"location\": props.location ?? (props.submenu ? 'end' : 'bottom'),\n \"onClick:outside\": onClickOutside,\n \"onKeydown\": onKeydown\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VMenu\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({\n id,\n ΨopenChildren: openChildren\n }, overlay);\n }\n});\n//# sourceMappingURL=VMenu.mjs.map","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => parent?.unregister())\n onDeactivated(() => isActive.value = false)\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => (\n \n { slots.default?.(...args) }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType\n","export { VOverlay } from \"./VOverlay.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VOverlay } from './VOverlay'\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, vShow as _vShow, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VOverlay.css\";\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from \"./locationStrategies.mjs\";\nimport { makeScrollStrategyProps, useScrollStrategies } from \"./scrollStrategies.mjs\";\nimport { makeActivatorProps, useActivator } from \"./useActivator.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useHydration } from \"../../composables/hydration.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useBackButton, useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useStack } from \"../../composables/stack.mjs\";\nimport { useTeleport } from \"../../composables/teleport.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport { ClickOutside } from \"../../directives/click-outside/index.mjs\"; // Utilities\nimport { computed, mergeProps, onBeforeUnmount, ref, Teleport, toRef, Transition, watch } from 'vue';\nimport { animate, convertToUnit, genericComponent, getCurrentInstance, getScrollParent, IN_BROWSER, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nfunction Scrim(props) {\n const {\n modelValue,\n color,\n ...rest\n } = props;\n return _createVNode(Transition, {\n \"name\": \"fade-transition\",\n \"appear\": true\n }, {\n default: () => [props.modelValue && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay__scrim', props.color.backgroundColorClasses.value],\n \"style\": props.color.backgroundColorStyles.value\n }, rest), null)]\n });\n}\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object],\n closeOnBack: {\n type: Boolean,\n default: true\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true\n },\n zIndex: {\n type: [Number, String],\n default: 2000\n },\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps()\n}, 'VOverlay');\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n directives: {\n ClickOutside\n },\n inheritAttrs: false,\n props: {\n _disableGlobalStack: Boolean,\n ...makeVOverlayProps()\n },\n emits: {\n 'click:outside': e => true,\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n slots,\n attrs,\n emit\n } = _ref;\n const vm = getCurrentInstance('VOverlay');\n const root = ref();\n const scrimEl = ref();\n const contentEl = ref();\n const model = useProxiedModel(props, 'modelValue');\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v;\n }\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses,\n isRtl\n } = useRtl();\n const {\n hasContent,\n onAfterLeave: _onAfterLeave\n } = useLazy(props, isActive);\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const {\n globalTop,\n localTop,\n stackStyles\n } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack);\n const {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n } = useActivator(props, {\n isActive,\n isTop: localTop,\n contentEl\n });\n const {\n teleportTarget\n } = useTeleport(() => {\n const target = props.attach || props.contained;\n if (target) return target;\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode();\n if (rootNode instanceof ShadowRoot) return rootNode;\n return false;\n });\n const {\n dimensionStyles\n } = useDimension(props);\n const isMounted = useHydration();\n const {\n scopeId\n } = useScopeId();\n watch(() => props.disabled, v => {\n if (v) isActive.value = false;\n });\n const {\n contentStyles,\n updateLocation\n } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive\n });\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation\n });\n function onClickOutside(e) {\n emit('click:outside', e);\n if (!props.persistent) isActive.value = false;else animateClick();\n }\n function closeConditional(e) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || e instanceof MouseEvent && e.shadowTarget === scrimEl.value);\n }\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown);\n } else {\n window.removeEventListener('keydown', onKeydown);\n }\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return;\n window.removeEventListener('keydown', onKeydown);\n });\n function onKeydown(e) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false;\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus();\n }\n } else animateClick();\n }\n }\n const router = useRouter();\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false);\n if (!props.persistent) isActive.value = false;else animateClick();\n } else {\n next();\n }\n });\n });\n const top = ref();\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value);\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop;\n }\n }\n });\n\n // Add a quick \"bounce\" animation to the content\n function animateClick() {\n if (props.noClickAnimation) return;\n contentEl.value && animate(contentEl.value, [{\n transformOrigin: 'center'\n }, {\n transform: 'scale(1.03)'\n }, {\n transformOrigin: 'center'\n }], {\n duration: 150,\n easing: standardEasing\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n }\n function onAfterLeave() {\n _onAfterLeave();\n emit('afterLeave');\n }\n useRender(() => _createVNode(_Fragment, null, [slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef\n }, activatorEvents.value, props.activatorProps)\n }), isMounted.value && hasContent.value && _createVNode(Teleport, {\n \"disabled\": !teleportTarget.value,\n \"to\": teleportTarget.value\n }, {\n default: () => [_createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay', {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained\n }, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [stackStyles.value, {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value)\n }, props.style],\n \"ref\": root\n }, scopeId, attrs), [_createVNode(Scrim, _mergeProps({\n \"color\": scrimColor,\n \"modelValue\": isActive.value && !!props.scrim,\n \"ref\": scrimEl\n }, scrimEvents.value), null), _createVNode(MaybeTransition, {\n \"appear\": true,\n \"persisted\": true,\n \"transition\": props.transition,\n \"target\": target.value,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": contentEl,\n \"class\": ['v-overlay__content', props.contentClass],\n \"style\": [dimensionStyles.value, contentStyles.value]\n }, contentEvents.value, props.contentProps), [slots.default?.({\n isActive\n })]), [[_vShow, isActive.value], [_resolveDirective(\"click-outside\"), {\n handler: onClickOutside,\n closeConditional,\n include: () => [activatorEl.value]\n }]])]\n })])]\n })]));\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation\n };\n }\n});\n//# sourceMappingURL=VOverlay.mjs.map","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n \n { props.modelValue && (\n \n )}\n \n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref }\n activator: { isActive: boolean, props: Record, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const vm = getCurrentInstance('VOverlay')\n const root = ref()\n const scrimEl = ref()\n const contentEl = ref()\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop, contentEl })\n const { teleportTarget } = useTeleport(() => {\n const target = props.attach || props.contained\n if (target) return target\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode()\n if (rootNode instanceof ShadowRoot) return rootNode\n return false\n })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || (e instanceof MouseEvent && e.shadowTarget === scrimEl.value)\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus()\n }\n } else animateClick()\n }\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n \n \n \n \n [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n
\n \n \n \n )}\n \n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType\n","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\nimport { anchorToPoint, getOffset } from \"./util/point.mjs\";\nimport { clamp, consoleError, convertToUnit, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from \"../../util/index.mjs\";\nimport { Box, getOverflow, getTargetBox } from \"../../util/box.mjs\"; // Types\nconst locationStrategies = {\n static: staticLocationStrategy,\n // specific viewport position, usually centered\n connected: connectedLocationStrategy // connected to a certain element\n};\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function],\n default: 'static',\n validator: val => typeof val === 'function' || val in locationStrategies\n },\n location: {\n type: String,\n default: 'bottom'\n },\n origin: {\n type: String,\n default: 'auto'\n },\n offset: [Number, String, Array]\n}, 'VOverlay-location-strategies');\nexport function useLocationStrategies(props, data) {\n const contentStyles = ref({});\n const updateLocation = ref();\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset);\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n updateLocation.value = undefined;\n });\n window.addEventListener('resize', onResize, {\n passive: true\n });\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation;\n }\n });\n }\n function onResize(e) {\n updateLocation.value?.(e);\n }\n return {\n contentStyles,\n updateLocation\n };\n}\nfunction staticLocationStrategy() {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize(el, isRtl) {\n // const scrollables = new Map()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el);\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0);\n } else {\n contentBox.x -= parseFloat(el.style.left || 0);\n }\n contentBox.y -= parseFloat(el.style.top || 0);\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox;\n}\nfunction connectedLocationStrategy(data, props, contentStyles) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0\n });\n }\n const {\n preferredAnchor,\n preferredOrigin\n } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value);\n const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value);\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin)\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin\n };\n }\n });\n const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {\n return computed(() => {\n const val = parseFloat(props[key]);\n return isNaN(val) ? Infinity : val;\n });\n });\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n let observe = false;\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation();\n });\n watch([data.target, data.contentEl], (_ref, _ref2) => {\n let [newTarget, newContentEl] = _ref;\n let [oldTarget, oldContentEl] = _ref2;\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);\n if (oldContentEl) observer.unobserve(oldContentEl);\n if (newContentEl) observer.observe(newContentEl);\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n observer.disconnect();\n });\n\n // eslint-disable-next-line max-statements\n function updateLocation() {\n observe = false;\n requestAnimationFrame(() => observe = true);\n if (!data.target.value || !data.contentEl.value) return;\n const targetBox = getTargetBox(data.target.value);\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);\n const scrollParents = getScrollParents(data.contentEl.value);\n const viewportMargin = 12;\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement);\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);\n }\n }\n const viewport = scrollParents.reduce((box, el) => {\n const rect = el.getBoundingClientRect();\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight\n });\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)\n });\n }\n return scrollBox;\n }, undefined);\n viewport.x += viewportMargin;\n viewport.y += viewportMargin;\n viewport.width -= viewportMargin * 2;\n viewport.height -= viewportMargin * 2;\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value\n };\n function checkOverflow(_placement) {\n const box = new Box(contentBox);\n const targetPoint = anchorToPoint(_placement.anchor, targetBox);\n const contentPoint = anchorToPoint(_placement.origin, box);\n let {\n x,\n y\n } = getOffset(targetPoint, contentPoint);\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n box.x += x;\n box.y += y;\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n const overflows = getOverflow(box, viewport);\n return {\n overflows,\n x,\n y\n };\n }\n let x = 0;\n let y = 0;\n const available = {\n x: 0,\n y: 0\n };\n const flipped = {\n x: false,\n y: false\n };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy');\n break;\n }\n const {\n x: _x,\n y: _y,\n overflows\n } = checkOverflow(placement);\n x += _x;\n y += _y;\n contentBox.x += _x;\n contentBox.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n let reset = false;\n ['x', 'y'].forEach(key => {\n if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {\n const newPlacement = {\n anchor: {\n ...placement.anchor\n },\n origin: {\n ...placement.origin\n }\n };\n const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const {\n overflows: newOverflows\n } = checkOverflow(newPlacement);\n if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentBox.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentBox.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n break;\n }\n const axis = getAxis(placement.anchor);\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))\n });\n return {\n available,\n contentBox\n };\n }\n watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());\n nextTick(() => {\n const result = updateLocation();\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return;\n const {\n available,\n contentBox\n } = result;\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation();\n requestAnimationFrame(() => {\n updateLocation();\n });\n });\n }\n });\n return {\n updateLocation\n };\n}\nfunction pixelRound(val) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio;\n}\nfunction pixelCeil(val) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio;\n}\n//# sourceMappingURL=locationStrategies.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref\n target: Ref\n isActive: Ref\n isRtl: Ref\n}\n\ntype LocationStrategyFn = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFn\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType,\n default: 'bottom',\n },\n origin: {\n type: String as PropType,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n\n watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n const targetBox = getTargetBox(data.target.value)\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n","// Types\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(point, offset) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y\n };\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(point, offset) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y\n };\n}\n\n/** Get the difference between two points */\nexport function getOffset(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(anchor, box) {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const {\n side,\n align\n } = anchor;\n const x = align === 'left' ? 0 : align === 'center' ? box.width / 2 : align === 'right' ? box.width : align;\n const y = side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n return elementToViewport({\n x,\n y\n }, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const {\n side,\n align\n } = anchor;\n const x = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y = align === 'top' ? 0 : align === 'center' ? box.height / 2 : align === 'bottom' ? box.height : align;\n return elementToViewport({\n x,\n y\n }, box);\n }\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2\n }, box);\n}\n//# sourceMappingURL=point.mjs.map","// Types\nimport type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue';\nimport { requestNewFrame } from \"./requestNewFrame.mjs\";\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from \"../../util/index.mjs\"; // Types\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy\n};\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function],\n default: 'block',\n validator: val => typeof val === 'function' || val in scrollStrategies\n }\n}, 'VOverlay-scroll-strategies');\nexport function useScrollStrategies(props, data) {\n if (!IN_BROWSER) return;\n let scope;\n watchEffect(async () => {\n scope?.stop();\n if (!(data.isActive.value && props.scrollStrategy)) return;\n scope = effectScope();\n await new Promise(resolve => setTimeout(resolve));\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope);\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope);\n }\n });\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\nfunction closeScrollStrategy(data) {\n function onScroll(e) {\n data.isActive.value = false;\n }\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);\n}\nfunction blockScrollStrategy(data, props) {\n const offsetParent = data.root.value?.offsetParent;\n const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);\n if (scrollableParent) {\n data.root.value.classList.add('v-overlay--scroll-blocked');\n }\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));\n }\n el.classList.add('v-overlay-scroll-blocked');\n });\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));\n const scrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.style.removeProperty('--v-body-scroll-x');\n el.style.removeProperty('--v-body-scroll-y');\n el.style.removeProperty('--v-scrollbar-offset');\n el.classList.remove('v-overlay-scroll-blocked');\n el.scrollLeft = -x;\n el.scrollTop = -y;\n el.style.scrollBehavior = scrollBehavior;\n });\n if (scrollableParent) {\n data.root.value.classList.remove('v-overlay--scroll-blocked');\n }\n });\n}\nfunction repositionScrollStrategy(data, props, scope) {\n let slow = false;\n let raf = -1;\n let ric = -1;\n function update(e) {\n requestNewFrame(() => {\n const start = performance.now();\n data.updateLocation.value?.(e);\n const time = performance.now() - start;\n slow = time / (1000 / 60) > 2;\n });\n }\n ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e);\n });\n });\n } else {\n update(e);\n }\n });\n });\n });\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);\n cancelAnimationFrame(raf);\n });\n}\n\n/** @private */\nfunction bindScroll(el, onScroll) {\n const scrollElements = [document, ...getScrollParents(el)];\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll);\n });\n });\n}\n//# sourceMappingURL=scrollStrategies.mjs.map","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref\n contentEl: Ref\n targetEl: Ref\n isActive: Ref\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await new Promise(resolve => setTimeout(resolve))\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n","let clean = true;\nconst frames = [];\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame(cb) {\n if (!clean || frames.length) {\n frames.push(cb);\n run();\n } else {\n clean = false;\n cb();\n run();\n }\n}\nlet raf = -1;\nfunction run() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n const frame = frames.shift();\n if (frame) frame();\n if (frames.length) run();else clean = true;\n });\n}\n//# sourceMappingURL=requestNewFrame.mjs.map","let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n","// Components\nimport { VMenuSymbol } from \"../VMenu/shared.mjs\"; // Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\"; // Utilities\nimport { computed, effectScope, inject, mergeProps, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';\nimport { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, templateRef, unbindProps } from \"../../util/index.mjs\"; // Types\nexport const makeActivatorProps = propsFactory({\n target: [String, Object],\n activator: [String, Object],\n activatorProps: {\n type: Object,\n default: () => ({})\n },\n openOnClick: {\n type: Boolean,\n default: undefined\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined\n },\n closeOnContentClick: Boolean,\n ...makeDelayProps()\n}, 'VOverlay-activator');\nexport function useActivator(props, _ref) {\n let {\n isActive,\n isTop,\n contentEl\n } = _ref;\n const vm = getCurrentInstance('useActivator');\n const activatorEl = ref();\n let isHovered = false;\n let isFocused = false;\n let firstEnter = true;\n const openOnFocus = computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);\n const openOnClick = computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {\n if (isActive.value !== value) {\n firstEnter = true;\n }\n isActive.value = value;\n }\n });\n const cursorTarget = ref();\n const availableEvents = {\n onClick: e => {\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY];\n }\n isActive.value = !isActive.value;\n },\n onMouseenter: e => {\n if (e.sourceCapabilities?.firesTouchEvents) return;\n isHovered = true;\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onMouseleave: e => {\n isHovered = false;\n runCloseDelay();\n },\n onFocus: e => {\n if (matchesSelector(e.target, ':focus-visible') === false) return;\n isFocused = true;\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onBlur: e => {\n isFocused = false;\n e.stopPropagation();\n runCloseDelay();\n }\n };\n const activatorEvents = computed(() => {\n const events = {};\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick;\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter;\n events.onMouseleave = availableEvents.onMouseleave;\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus;\n events.onBlur = availableEvents.onBlur;\n }\n return events;\n });\n const contentEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true;\n runOpenDelay();\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true;\n runOpenDelay();\n };\n events.onFocusout = () => {\n isFocused = false;\n runCloseDelay();\n };\n }\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null);\n events.onClick = () => {\n isActive.value = false;\n menu?.closeParents();\n };\n }\n return events;\n });\n const scrimEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true;\n firstEnter = false;\n runOpenDelay();\n }\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n return events;\n });\n watch(isTop, val => {\n if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false;\n }\n });\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined;\n });\n }\n }, {\n flush: 'post'\n });\n const activatorRef = templateRef();\n watchEffect(() => {\n if (!activatorRef.value) return;\n nextTick(() => {\n activatorEl.value = activatorRef.el;\n });\n });\n const targetRef = templateRef();\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;\n if (targetRef.value) return targetRef.el;\n return getTarget(props.target, vm) || activatorEl.value;\n });\n const targetEl = computed(() => {\n return Array.isArray(target.value) ? undefined : target.value;\n });\n let scope;\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope();\n scope.run(() => {\n _useActivator(props, vm, {\n activatorEl,\n activatorEvents\n });\n });\n } else if (scope) {\n scope.stop();\n }\n }, {\n flush: 'post',\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n return {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n };\n}\nfunction _useActivator(props, vm, _ref2) {\n let {\n activatorEl,\n activatorEvents\n } = _ref2;\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal);\n activator && unbindActivatorProps(activator);\n }\n if (val) {\n nextTick(() => bindActivatorProps());\n }\n }, {\n immediate: true\n });\n watch(() => props.activatorProps, () => {\n bindActivatorProps();\n });\n onScopeDispose(() => {\n unbindActivatorProps();\n });\n function bindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n bindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function unbindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n unbindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function getActivator() {\n let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;\n const activator = getTarget(selector, vm);\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;\n return activatorEl.value;\n }\n}\nfunction getTarget(selector, vm) {\n if (!selector) return;\n let target;\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode;\n }\n target = el;\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector);\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el;\n } else {\n // HTMLElement | Element | [x, y]\n target = selector;\n }\n return target;\n}\n//# sourceMappingURL=useActivator.mjs.map","// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType,\n activator: [String, Object] as PropType,\n activatorProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop, contentEl }: {\n isActive: Ref\n isTop: Ref\n contentEl: Ref\n }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial = {}\n\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter\n events.onMouseleave = availableEvents.onMouseleave\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus\n events.onBlur = availableEvents.onBlur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.onClick = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n ) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\n })\n\n const targetRef = templateRef()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return targetRef.el\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n const activator = getTarget(selector, vm)\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined\n\n return activatorEl.value\n }\n}\n\nfunction getTarget (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\n let target\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n target = el\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el\n } else {\n // HTMLElement | Element | [x, y]\n target = selector\n }\n\n return target\n}\n","// Types\n\nexport const VMenuSymbol = Symbol.for('vuetify:v-menu');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (e?: MouseEvent): void\n}\n\nexport const VMenuSymbol: InjectionKey = Symbol.for('vuetify:v-menu')\n","// Utilities\nimport { defer, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String]\n}, 'delay');\nexport function useDelay(props, cb) {\n let clearDelay = () => {};\n function runDelay(isOpening) {\n clearDelay?.();\n const delay = Number(isOpening ? props.openDelay : props.closeDelay);\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening);\n resolve(isOpening);\n });\n });\n }\n function runOpenDelay() {\n return runDelay(true);\n }\n function runCloseDelay() {\n return runDelay(false);\n }\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay\n };\n}\n//# sourceMappingURL=delay.mjs.map","// Utilities\nimport { defer, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n let clearDelay: (() => void) = () => {}\n\n function runDelay (isOpening: boolean) {\n clearDelay?.()\n\n const delay = Number(isOpening ? props.openDelay : props.closeDelay)\n\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening)\n resolve(isOpening)\n })\n })\n }\n\n function runOpenDelay () {\n return runDelay(true)\n }\n\n function runCloseDelay () {\n return runDelay(false)\n }\n\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay,\n }\n}\n","// Composables\nimport { useDisplay } from \"./display.mjs\"; // Utilities\nimport { onMounted, shallowRef } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useHydration() {\n if (!IN_BROWSER) return shallowRef(false);\n const {\n ssr\n } = useDisplay();\n if (ssr) {\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n } else {\n return shallowRef(true);\n }\n}\n//# sourceMappingURL=hydration.mjs.map","// Composables\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { onMounted, shallowRef } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useHydration () {\n if (!IN_BROWSER) return shallowRef(false)\n\n const { ssr } = useDisplay()\n\n if (ssr) {\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n return isMounted\n } else {\n return shallowRef(true)\n }\n}\n","// Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = computed(() => isBooted.value || props.eager || active.value);\n watch(active, () => isBooted.value = true);\n function onAfterLeave() {\n if (!props.eager) isBooted.value = false;\n }\n return {\n isBooted,\n hasContent,\n onAfterLeave\n };\n}\n//# sourceMappingURL=lazy.mjs.map","// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref) {\n const isBooted = shallowRef(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n","// Utilities\nimport { getCurrentInstance } from \"../util/index.mjs\";\nexport function useScopeId() {\n const vm = getCurrentInstance('useScopeId');\n const scopeId = vm.vnode.scopeId;\n return {\n scopeId: scopeId ? {\n [scopeId]: ''\n } : undefined\n };\n}\n//# sourceMappingURL=scopeId.mjs.map","// Utilities\nimport { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\n","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/index.mjs\"; // Types\nconst StackSymbol = Symbol.for('vuetify:stack');\nconst globalStack = reactive([]);\nexport function useStack(isActive, zIndex, disableGlobalStack) {\n const vm = getCurrentInstance('useStack');\n const createStackEntry = !disableGlobalStack;\n const parent = inject(StackSymbol, undefined);\n const stack = reactive({\n activeChildren: new Set()\n });\n provide(StackSymbol, stack);\n const _zIndex = shallowRef(+zIndex.value);\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1];\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value]);\n }\n parent?.activeChildren.add(vm.uid);\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);\n globalStack.splice(idx, 1);\n }\n parent?.activeChildren.delete(vm.uid);\n });\n });\n const globalTop = shallowRef(true);\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid;\n setTimeout(() => globalTop.value = _isTop);\n });\n }\n const localTop = computed(() => !stack.activeChildren.size);\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({\n zIndex: _zIndex.value\n }))\n };\n}\n//# sourceMappingURL=stack.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly>,\n zIndex: Readonly>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = shallowRef(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = shallowRef(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n","// Utilities\nimport { computed, warn } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useTeleport(target) {\n const teleportTarget = computed(() => {\n const _target = target();\n if (_target === true || !IN_BROWSER) return undefined;\n const targetElement = _target === false ? document.body : typeof _target === 'string' ? document.querySelector(_target) : _target;\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`);\n return undefined;\n }\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'));\n if (!container) {\n container = document.createElement('div');\n container.className = 'v-overlay-container';\n targetElement.appendChild(container);\n }\n return container;\n });\n return {\n teleportTarget\n };\n}\n//# sourceMappingURL=teleport.mjs.map","// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useTeleport (target: () => (boolean | string | ParentNode)) {\n const teleportTarget = computed(() => {\n const _target = target()\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'))\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n","// Utilities\nimport { attachedRoot } from \"../../util/index.mjs\"; // Types\nfunction defaultConditional() {\n return true;\n}\nfunction checkEvent(e, el, binding) {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false;\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot && root.host === e.target) return false;\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = (typeof binding.value === 'object' && binding.value.include || (() => []))();\n // Add the root element for the component this directive was defined on\n elements.push(el);\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target));\n}\nfunction checkIsActive(e, binding) {\n const isActive = typeof binding.value === 'object' && binding.value.closeConditional || defaultConditional;\n return isActive(e);\n}\nfunction directive(e, el, binding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target;\n el._clickOutside.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e);\n }, 0);\n}\nfunction handleShadow(el, callback) {\n const root = attachedRoot(el);\n callback(document);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root);\n }\n}\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted(el, binding) {\n const onClick = e => directive(e, el, binding);\n const onMousedown = e => {\n el._clickOutside.lastMousedownWasOutside = checkEvent(e, el, binding);\n };\n handleShadow(el, app => {\n app.addEventListener('click', onClick, true);\n app.addEventListener('mousedown', onMousedown, true);\n });\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false\n };\n }\n el._clickOutside[binding.instance.$.uid] = {\n onClick,\n onMousedown\n };\n },\n beforeUnmount(el, binding) {\n if (!el._clickOutside) return;\n handleShadow(el, app => {\n if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;\n const {\n onClick,\n onMousedown\n } = el._clickOutside[binding.instance.$.uid];\n app.removeEventListener('click', onClick, true);\n app.removeEventListener('mousedown', onMousedown, true);\n });\n delete el._clickOutside[binding.instance.$.uid];\n }\n};\nexport default ClickOutside;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { attachedRoot } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n beforeUnmount (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n","// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\n/** Omit keyof $props from T */\n\nfunction getDescriptor(obj, key) {\n let currentObj = obj;\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);\n if (descriptor) return descriptor;\n currentObj = Object.getPrototypeOf(currentObj);\n }\n return undefined;\n}\nexport function forwardRefs(target) {\n for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n refs[_key - 1] = arguments[_key];\n }\n target[Refs] = refs;\n return new Proxy(target, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key);\n return typeof val === 'function' ? val.bind(ref.value) : val;\n }\n }\n },\n has(target, key) {\n if (Reflect.has(target, key)) {\n return true;\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true;\n }\n }\n return false;\n },\n set(target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value);\n }\n }\n return false;\n },\n getOwnPropertyDescriptor(target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key);\n if (descriptor) return descriptor;\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue;\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);\n if (descriptor) return descriptor;\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && ref.value[Refs];\n if (!childRefs) continue;\n const queue = childRefs.slice();\n while (queue.length) {\n const ref = queue.shift();\n const descriptor = getDescriptor(ref.value, key);\n if (descriptor) return descriptor;\n const childRefs = ref.value && ref.value[Refs];\n if (childRefs) queue.push(...childRefs);\n }\n }\n return undefined;\n }\n });\n}\n//# sourceMappingURL=forwardRefs.mjs.map","// Types\nimport type { ComponentOptionsBase, ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<\n T,\n P extends string,\n E = Extract,\n> = [E] extends [never] ? T : Omit\ntype OmitPrivate = OmitPrefix\n\n/** Omit keyof $props from T */\ntype OmitProps = T extends { $props: any } ? Omit : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<\n T extends {},\n U extends Ref | undefined>[],\n UU = { [K in keyof U]: NonNullable> }[number],\n UC = { [K in keyof U]: OmitPrivate>>> }[number],\n R = T & UnionToIntersection & {\n _allExposed: T | (\n UU extends { $options: infer O }\n ? O extends ComponentOptionsBase\n ? E\n : never\n : never\n )\n }\n> (target: T, ...refs: U): R {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n set (target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value)\n }\n }\n\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VSelect.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"./useScrolling.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeItemsProps, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n closeText: {\n type: String,\n default: '$vuetify.close'\n },\n openText: {\n type: String,\n default: '$vuetify.open'\n },\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown'\n },\n menuProps: {\n type: Object\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n openOnClear: Boolean,\n itemColor: String,\n ...makeItemsProps({\n itemChildren: false\n })\n}, 'Select');\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: {\n component: VDialogTransition\n }\n })\n}, 'VSelect');\nexport const VSelect = genericComponent()({\n name: 'VSelect',\n props: makeVSelectProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:menu': ue => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm();\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const isFocused = shallowRef(false);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n let keyboardLookupPrefix = '';\n let keyboardLookupLastTime;\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));\n }\n return items.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox' // Set aria-haspopup to 'listbox'\n }\n };\n });\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n onKeydown(e);\n }\n }\n function onKeydown(e) {\n if (!e.key || props.readonly || form?.isReadonly.value) return;\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false;\n }\n if (e.key === 'Home') {\n listRef.value?.focus('first');\n } else if (e.key === 'End') {\n listRef.value?.focus('last');\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds\n\n if (props.multiple || !checkPrintable(e)) return;\n const now = performance.now();\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = '';\n }\n keyboardLookupPrefix += e.key.toLowerCase();\n keyboardLookupLastTime = now;\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));\n if (item !== undefined) {\n model.value = [item];\n const index = displayItems.value.indexOf(item);\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n }\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n nextTick(() => {\n menu.value = false;\n });\n }\n }\n function onBlur(e) {\n if (!listRef.value?.$el.contains(e.relatedTarget)) {\n menu.value = false;\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onModelUpdate(v) {\n if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v);\n if (item) {\n select(item);\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = '';\n }\n }\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip);\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": model.value.map(v => v.props.value).join(', '),\n \"onUpdate:modelValue\": onModelUpdate,\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-select', {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection\n }, props.class],\n \"style\": props.style,\n \"inputmode\": \"none\",\n \"placeholder\": placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"aria-label\": t(label.value),\n \"title\": t(label.value)\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-select__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, computedMenuProps.value), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref2 => {\n let {\n item,\n index,\n itemRef\n } = _ref2;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref3 => {\n let {\n isSelected\n } = _ref3;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": \"v-select__selection\"\n }, [hasChips ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-select__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-select__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-select__menu-icon\",\n \"icon\": props.menuIcon\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n menu,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VSelect.mjs.map","// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from './useScrolling'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n closeText: {\n type: String,\n default: '$vuetify.close',\n },\n openText: {\n type: String,\n default: '$vuetify.open',\n },\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object as PropType,\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n itemColor: String,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'Select')\n\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition as Component } }),\n}, 'VSelect')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VSelect = genericComponent,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VSelect',\n\n props: makeVSelectProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (ue: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm()\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n const isFocused = shallowRef(false)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)))\n }\n return items.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox', // Set aria-haspopup to 'listbox'\n },\n }\n })\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n onKeydown(e)\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (!e.key || props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n if (props.multiple || !checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix))\n if (item !== undefined) {\n model.value = [item]\n const index = displayItems.value.indexOf(item)\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n }\n\n /** @param set - null means toggle */\n function select (item: ListItem, set: boolean | null = true) {\n if (item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n\n nextTick(() => {\n menu.value = false\n })\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n vTextFieldRef.value?.focus()\n }\n }\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n function onModelUpdate (v: any) {\n if (v == null) model.value = []\n else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v)\n if (item) {\n select(item)\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = ''\n }\n }\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n v.props.value).join(', ') }\n onUpdate:modelValue={ onModelUpdate }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection,\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"none\"\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n aria-label={ t(label.value) }\n title={ t(label.value) }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n
\n { hasChips ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n
\n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType\n","import { Fragment as _Fragment, withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { filterFieldProps, makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function],\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text'\n },\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextField');\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextFieldProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n if (e.target === inputRef.value) return;\n onFocus();\n e.preventDefault();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = null;\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-text-field', {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner'],\n \"role\": props.role\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n const inputNode = _withDirectives(_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"name\": props.name,\n \"placeholder\": props.placeholder,\n \"size\": 1,\n \"type\": props.type,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]);\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__prefix__text\"\n }, [props.prefix])]), slots.default ? _createVNode(\"div\", {\n \"class\": fieldClass,\n \"data-no-activator\": \"\"\n }, [slots.default(), inputNode]) : cloneVNode(inputNode, {\n class: fieldClass\n }), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__suffix__text\"\n }, [props.suffix])])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VTextField.mjs.map","// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref()\n const vFieldRef = ref()\n const inputRef = ref()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n \n )\n\n return (\n <>\n { props.prefix && (\n \n \n { props.prefix }\n \n \n )}\n\n { slots.default ? (\n \n { slots.default() }\n { inputNode }\n \n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n \n \n { props.suffix }\n \n \n )}\n \n )\n },\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType\n","import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from \"vue\";\n// Styles\nimport \"./VCounter.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition\n }\n })\n}, 'VCounter');\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n functional: true,\n props: makeVCounterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value);\n });\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-counter', {\n 'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)\n }, props.class],\n \"style\": props.style\n }, [slots.default ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value\n }) : counter.value]), [[_vShow, props.active]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VCounter.mjs.map","// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\n\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: { component: VSlideYTransition as Component },\n }),\n}, 'VCounter')\n\nexport type VCounterSlot = {\n counter: string\n max: string | number | undefined\n value: string | number | undefined\n}\n\ntype VCounterSlots = {\n default: VCounterSlot\n}\n\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n\n functional: true,\n\n props: makeVCounterProps(),\n\n setup (props, { slots }) {\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n useRender(() => (\n \n parseFloat(props.max),\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n \n \n ))\n\n return {}\n },\n})\n\nexport type VCounter = InstanceType\n","import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _withDirectives, vShow as _vShow, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VField.css\";\n\n// Components\nimport { VFieldLabel } from \"./VFieldLabel.mjs\";\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { useInputIcon } from \"../VInput/InputIcon.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watch } from 'vue';\nimport { animate, convertToUnit, EventProp, genericComponent, getUid, isOn, nullifyTransforms, pick, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear'\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String,\n default: 'filled',\n validator: v => allowedVariants.includes(v)\n },\n 'onClick:clear': EventProp(),\n 'onClick:appendInner': EventProp(),\n 'onClick:prependInner': EventProp(),\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps()\n}, 'VField');\nexport const VField = genericComponent()({\n name: 'VField',\n inheritAttrs: false,\n props: {\n id: String,\n ...makeFocusProps(),\n ...makeVFieldProps()\n },\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n focusClasses,\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const {\n InputIcon\n } = useInputIcon(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n rtlClasses\n } = useRtl();\n const isActive = computed(() => props.dirty || props.active);\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const labelRef = ref();\n const floatingLabelRef = ref();\n const controlRef = ref();\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;\n }));\n watch(isActive, val => {\n if (hasLabel.value) {\n const el = labelRef.value.$el;\n const targetEl = floatingLabelRef.value.$el;\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el);\n const targetRect = targetEl.getBoundingClientRect();\n const x = targetRect.x - rect.x;\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);\n const targetWidth = targetRect.width / 0.75;\n const width = Math.abs(targetWidth - rect.width) > 1 ? {\n maxWidth: convertToUnit(targetWidth)\n } : undefined;\n const style = getComputedStyle(el);\n const targetStyle = getComputedStyle(targetEl);\n const duration = parseFloat(style.transitionDuration) * 1000 || 150;\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));\n const color = targetStyle.getPropertyValue('color');\n el.style.visibility = 'visible';\n targetEl.style.visibility = 'hidden';\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse'\n }).finished.then(() => {\n el.style.removeProperty('visibility');\n targetEl.style.removeProperty('visibility');\n });\n });\n }\n }, {\n flush: 'post'\n });\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus\n }));\n function onClick(e) {\n if (e.target !== document.activeElement) {\n e.preventDefault();\n }\n }\n function onKeydownClear(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n props['onClick:clear']?.(new MouseEvent('click'));\n }\n useRender(() => {\n const isOutlined = props.variant === 'outlined';\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);\n const hasClear = !!(props.clearable || slots.clear);\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);\n const label = () => slots.label ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-field', {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true\n }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style],\n \"onClick\": onClick\n }, attrs), [_createVNode(\"div\", {\n \"class\": \"v-field__overlay\"\n }, null), _createVNode(LoaderSlot, {\n \"name\": \"v-field\",\n \"active\": !!props.loading,\n \"color\": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color\n }, {\n default: slots.loader\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-field__prepend-inner\"\n }, [props.prependInnerIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prependInner\"\n }, null), slots['prepend-inner']?.(slotProps.value)]), _createVNode(\"div\", {\n \"class\": \"v-field__field\",\n \"data-no-activator\": \"\"\n }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"floating-label\",\n \"ref\": floatingLabelRef,\n \"class\": [textColorClasses.value],\n \"floating\": true,\n \"for\": id.value,\n \"style\": textColorStyles.value\n }, {\n default: () => [label()]\n }), _createVNode(VFieldLabel, {\n \"ref\": labelRef,\n \"for\": id.value\n }, {\n default: () => [label()]\n }), slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value\n },\n focus,\n blur\n })]), hasClear && _createVNode(VExpandXTransition, {\n \"key\": \"clear\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-field__clearable\",\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: props.clearIcon\n }\n }\n }, {\n default: () => [slots.clear ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear']\n }\n }) : _createVNode(InputIcon, {\n \"name\": \"clear\",\n \"onKeydown\": onKeydownClear,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, null)]\n })]), [[_vShow, props.dirty]])]\n }), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-field__append-inner\"\n }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"appendInner\"\n }, null)]), _createVNode(\"div\", {\n \"class\": ['v-field__outline', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [isOutlined && _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-field__outline__start\"\n }, null), hasLabel.value && _createVNode(\"div\", {\n \"class\": \"v-field__outline__notch\"\n }, [_createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })]), _createVNode(\"div\", {\n \"class\": \"v-field__outline__end\"\n }, null)]), isPlainOrUnderlined.value && hasLabel.value && _createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })])]);\n });\n return {\n controlRef\n };\n }\n});\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps(attrs) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');\n return pick(attrs, keys);\n}\n//# sourceMappingURL=VField.mjs.map","// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref\n isFocused: Ref\n controlRef: Ref\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref()\n const floatingLabelRef = ref()\n const controlRef = ref()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n function onKeydownClear (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n props['onClick:clear']?.(new MouseEvent('click'))\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n \n
\n\n \n\n { hasPrepend && (\n
\n { props.prependInnerIcon && (\n \n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n
\n )}\n\n
\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n \n { label() }\n \n )}\n\n \n { label() }\n \n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n
\n\n { hasClear && (\n \n {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n \n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n },\n })\n : (\n \n )}\n \n
\n \n )}\n\n { hasAppend && (\n
\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n \n )}\n
\n )}\n\n \n { isOutlined && (\n <>\n
\n\n { hasLabel.value && (\n
\n \n { label() }\n \n
\n )}\n\n
\n \n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n \n { label() }\n \n )}\n
\n
\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n ...makeComponentProps()\n}, 'VFieldLabel');\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n props: makeVFieldLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VLabel, {\n \"class\": ['v-field-label', {\n 'v-field-label--floating': props.floating\n }, props.class],\n \"style\": props.style,\n \"aria-hidden\": props.floating || undefined\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFieldLabel.mjs.map","// Components\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n\n ...makeComponentProps(),\n}, 'VFieldLabel')\n\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n\n props: makeVFieldLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VFieldLabel = InstanceType\n","export { VVirtualScroll } from \"./VVirtualScroll.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VVirtualScroll } from './VVirtualScroll'\n","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VVirtualScroll.css\";\n\n// Components\nimport { VVirtualScrollItem } from \"./VVirtualScrollItem.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n renderless: Boolean,\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VVirtualScroll');\nexport const VVirtualScroll = genericComponent()({\n name: 'VVirtualScroll',\n props: makeVVirtualScrollProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vm = getCurrentInstance('VVirtualScroll');\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems\n } = useVirtual(props, toRef(props, 'items'));\n useToggleScope(() => props.renderless, () => {\n function handleListeners() {\n let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const method = add ? 'addEventListener' : 'removeEventListener';\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, {\n passive: true\n });\n document[method]('scrollend', handleScrollend);\n } else {\n containerRef.value?.[method]('scroll', handleScroll, {\n passive: true\n });\n containerRef.value?.[method]('scrollend', handleScrollend);\n }\n }\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el, true);\n handleListeners(true);\n });\n onScopeDispose(handleListeners);\n });\n useRender(() => {\n const children = computedItems.value.map(item => _createVNode(VVirtualScrollItem, {\n \"key\": item.index,\n \"renderless\": props.renderless,\n \"onUpdate:height\": height => handleItemResize(item.index, height)\n }, {\n default: slotProps => slots.default?.({\n item: item.raw,\n index: item.index,\n ...slotProps\n })\n }));\n return props.renderless ? _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value)\n }\n }, null), children, _createVNode(\"div\", {\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, null)]) : _createVNode(\"div\", {\n \"ref\": containerRef,\n \"class\": ['v-virtual-scroll', props.class],\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__container\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, [children])]);\n });\n return {\n calculateVisibleItems,\n scrollToIndex\n };\n }\n});\n//# sourceMappingURL=VVirtualScroll.mjs.map","// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport interface VVirtualScrollSlot {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n renderless: Boolean,\n\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VVirtualScroll')\n\nexport const VVirtualScroll = genericComponent(\n props: {\n items?: readonly T[]\n renderless?: Renderless\n },\n slots: {\n default: VVirtualScrollSlot & (Renderless extends true ? {\n itemRef: Ref\n } : {})\n }\n) => GenericProps>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const vm = getCurrentInstance('VVirtualScroll')\n const { dimensionStyles } = useDimension(props)\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems,\n } = useVirtual(props, toRef(props, 'items'))\n\n useToggleScope(() => props.renderless, () => {\n function handleListeners (add = false) {\n const method = add ? 'addEventListener' : 'removeEventListener'\n\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, { passive: true })\n document[method]('scrollend', handleScrollend)\n } else {\n containerRef.value?.[method]('scroll', handleScroll, { passive: true })\n containerRef.value?.[method]('scrollend', handleScrollend)\n }\n }\n\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el as HTMLElement, true)\n handleListeners(true)\n })\n onScopeDispose(handleListeners)\n })\n\n useRender(() => {\n const children = computedItems.value.map(item => (\n handleItemResize(item.index, height) }\n >\n { slotProps => slots.default?.({ item: item.raw, index: item.index, ...slotProps }) }\n \n ))\n\n return props.renderless ? (\n <>\n
\n { children }\n
\n \n ) : (\n \n \n { children }\n
\n
\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n ...makeComponentProps()\n}, 'VVirtualScrollItem');\nexport const VVirtualScrollItem = genericComponent()({\n name: 'VVirtualScrollItem',\n inheritAttrs: false,\n props: makeVVirtualScrollItemProps(),\n emits: {\n 'update:height': height => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver(undefined, 'border');\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height);\n });\n useRender(() => props.renderless ? _createVNode(_Fragment, null, [slots.default?.({\n itemRef: resizeRef\n })]) : _createVNode(\"div\", _mergeProps({\n \"ref\": resizeRef,\n \"class\": ['v-virtual-scroll__item', props.class],\n \"style\": props.style\n }, attrs), [slots.default?.()]));\n }\n});\n//# sourceMappingURL=VVirtualScrollItem.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps, TemplateRef } from '@/util'\n\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n\n ...makeComponentProps(),\n}, 'VVirtualScrollItem')\n\nexport const VVirtualScrollItem = genericComponent(\n props: {\n renderless?: Renderless\n },\n slots: {\n default: Renderless extends true ? {\n itemRef: TemplateRef\n } : never\n }\n) => GenericProps>()({\n name: 'VVirtualScrollItem',\n\n inheritAttrs: false,\n\n props: makeVVirtualScrollItemProps(),\n\n emits: {\n 'update:height': (height: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { resizeRef, contentRect } = useResizeObserver(undefined, 'border')\n\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height)\n })\n\n useRender(() => props.renderless ? (\n <>\n { slots.default?.({ itemRef: resizeRef }) }\n \n ) : (\n \n { (slots.default as any)?.() }\n \n ))\n },\n})\n","// Composables\nimport { useDisplay } from \"./display.mjs\";\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { clamp, debounce, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nconst UP = -1;\nconst DOWN = 1;\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100;\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null\n },\n height: [Number, String]\n}, 'virtual');\nexport function useVirtual(props, items) {\n const display = useDisplay();\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height) || display.height.value) / (itemHeight.value || 16)) || 1);\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n\n /** The scrollable element */\n const containerRef = ref();\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref();\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n watchEffect(() => {\n resizeRef.value = containerRef.value;\n });\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement ? display.height.value : contentRect.value?.height || parseInt(props.height) || 0;\n });\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);\n });\n let sizes = Array.from({\n length: items.value.length\n });\n let offsets = Array.from({\n length: items.value.length\n });\n const updateTime = shallowRef(0);\n let targetScrollIndex = -1;\n function getSize(index) {\n return sizes[index] || itemHeight.value;\n }\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return;\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch();\n markerOffset = markerRef.value.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n if (!~targetScrollIndex) return;\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n function handleItemResize(index, height) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n function calculateOffset(index) {\n index = clamp(index, 0, items.value.length - 1);\n return offsets[index] || 0;\n }\n function calculateIndex(scrollTop) {\n return binaryClosest(offsets, scrollTop);\n }\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n }\n });\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n calculateVisibleItems();\n }\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n scrollVelocity = 0;\n lastScrollTime = 0;\n calculateVisibleItems();\n }\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) && (direction !== DOWN || end > last.value)) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n function scrollToIndex(index) {\n const offset = calculateOffset(index);\n if (!containerRef.value || index && !offset) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value\n }));\n });\n watch(items, () => {\n sizes = Array.from({\n length: items.value.length\n });\n offsets = Array.from({\n length: items.value.length\n });\n updateOffsets.immediate();\n calculateVisibleItems();\n }, {\n deep: true\n });\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest(arr, val) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n if (arr[high] < val) {\n return high;\n }\n while (low <= high) {\n mid = low + high >> 1;\n item = arr[mid];\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n return target;\n}\n//# sourceMappingURL=virtual.mjs.map","// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight?: number | string\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual (props: VirtualProps, items: Ref) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from({ length: items.value.length })\n let offsets = Array.from({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value,\n }))\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: true })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n","// Utilities\nimport { shallowRef, watch } from 'vue';\n\n// Types\n\nexport function useScrolling(listRef, textFieldRef) {\n const isScrolling = shallowRef(false);\n let scrollTimeout;\n function onListScroll(e) {\n cancelAnimationFrame(scrollTimeout);\n isScrolling.value = true;\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false;\n });\n });\n }\n async function finishScrolling() {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop();\n resolve();\n });\n } else resolve();\n });\n }\n async function onListKeydown(e) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus();\n }\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return;\n const el = listRef.value?.$el;\n if (!el) return;\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth'\n });\n }\n await finishScrolling();\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)');\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top;\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n child.focus();\n break;\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom;\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n child.focus();\n break;\n }\n }\n }\n }\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown\n }; // typescript doesn't know about vue's event merging\n}\n//# sourceMappingURL=useScrolling.mjs.map","// Utilities\nimport { shallowRef, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { VList } from '@/components/VList'\nimport type { VTextField } from '@/components/VTextField'\n\nexport function useScrolling (listRef: Ref, textFieldRef: Ref) {\n const isScrolling = shallowRef(false)\n let scrollTimeout: number\n function onListScroll (e: Event) {\n cancelAnimationFrame(scrollTimeout)\n isScrolling.value = true\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false\n })\n })\n }\n async function finishScrolling () {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop()\n resolve()\n })\n } else resolve()\n })\n }\n async function onListKeydown (e: KeyboardEvent) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus()\n }\n\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return\n const el: HTMLElement = listRef.value?.$el\n if (!el) return\n\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n await finishScrolling()\n\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)')\n\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n (child as HTMLElement).focus()\n break\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n (child as HTMLElement).focus()\n break\n }\n }\n }\n }\n\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown,\n } as Record // typescript doesn't know about vue's event merging\n}\n","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue';\nimport { getPropertyFromItem, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\n// Composables\nexport const defaultFilter = (value, query, item) => {\n if (value == null || query == null) return -1;\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());\n};\nexport const makeFilterProps = propsFactory({\n customFilter: Function,\n customKeyFilter: Object,\n filterKeys: [Array, String],\n filterMode: {\n type: String,\n default: 'intersection'\n },\n noFilter: Boolean\n}, 'filter');\nexport function filterItems(items, query, options) {\n const array = [];\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter;\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;\n if (!items?.length) return array;\n loop: for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]);\n const customMatches = {};\n const defaultMatches = {};\n let match = -1;\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed);\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key);\n const keyFilter = options?.customKeyFilter?.[key];\n match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;\n } else if (options?.filterMode === 'every') {\n continue loop;\n }\n }\n } else {\n match = filter(item, query, item);\n if (match !== -1 && match !== false) {\n defaultMatches.title = match;\n }\n }\n const defaultMatchesLength = Object.keys(defaultMatches).length;\n const customMatchesLength = Object.keys(customMatches).length;\n if (!defaultMatchesLength && !customMatchesLength) continue;\n if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;\n if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength)) continue;\n }\n array.push({\n index: i,\n matches: {\n ...defaultMatches,\n ...customMatches\n }\n });\n }\n return array;\n}\nexport function useFilter(props, items, query, options) {\n const filteredItems = ref([]);\n const filteredMatches = ref(new Map());\n const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query);\n const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);\n const results = filterItems(transformedItems.value, strQuery, {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter)\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter\n });\n const originalItems = unref(items);\n const _filteredItems = [];\n const _filteredMatches = new Map();\n results.forEach(_ref => {\n let {\n index,\n matches\n } = _ref;\n const item = originalItems[index];\n _filteredItems.push(item);\n _filteredMatches.set(item.value, matches);\n });\n filteredItems.value = _filteredItems;\n filteredMatches.value = _filteredMatches;\n });\n function getMatches(item) {\n return filteredMatches.value.get(item.value);\n }\n return {\n filteredItems,\n filteredMatches,\n getMatches\n };\n}\n//# sourceMappingURL=filter.mjs.map","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType,\n customKeyFilter: Object as PropType,\n filterKeys: [Array, String] as PropType,\n filterMode: {\n type: String as PropType,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record = {}\n const defaultMatches: Record = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter (\n props: FilterProps,\n items: MaybeRef,\n query: Ref | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef\n }\n) {\n const filteredItems: Ref = ref([])\n const filteredMatches: Ref>> = ref(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n","export { VBadge } from \"./VBadge.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBadge } from './VBadge'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBadge.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, pickWithRest, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBadgeProps = propsFactory({\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge'\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top end'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({\n transition: 'scale-rotate-transition'\n })\n}, 'VBadge');\nexport const VBadge = genericComponent()({\n name: 'VBadge',\n inheritAttrs: false,\n props: makeVBadgeProps(),\n setup(props, ctx) {\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const {\n t\n } = useLocale();\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'textColor'));\n const {\n themeClasses\n } = useTheme();\n const {\n locationStyles\n } = useLocation(props, true, side => {\n const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;\n return base + (['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0) : 0);\n });\n useRender(() => {\n const value = Number(props.content);\n const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;\n const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);\n return _createVNode(props.tag, _mergeProps({\n \"class\": ['v-badge', {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline\n }, props.class]\n }, attrs, {\n \"style\": props.style\n }), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-badge__wrapper\"\n }, [ctx.slots.default?.(), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"span\", _mergeProps({\n \"class\": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],\n \"style\": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],\n \"aria-atomic\": \"true\",\n \"aria-label\": t(props.label, value),\n \"aria-live\": \"polite\",\n \"role\": \"status\"\n }, badgeAttrs), [props.dot ? undefined : ctx.slots.badge ? ctx.slots.badge?.() : props.icon ? _createVNode(VIcon, {\n \"icon\": props.icon\n }, null) : content]), [[_vShow, props.modelValue]])]\n })])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBadge.mjs.map","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, pickWithRest, propsFactory, useRender } from '@/util'\n\nexport type VBadgeSlots = {\n default: never\n badge: never\n}\n\nexport const makeVBadgeProps = propsFactory({\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top end' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n}, 'VBadge')\n\nexport const VBadge = genericComponent()({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: makeVBadgeProps(),\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const { t } = useLocale()\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n const { themeClasses } = useTheme()\n\n const { locationStyles } = useLocation(props, true, side => {\n const base = props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n\n return base + (\n ['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0)\n : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0)\n : 0\n )\n })\n\n useRender(() => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= +props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = pickWithRest(ctx.attrs as Record, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n \n
\n { ctx.slots.default?.() }\n\n \n \n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? \n : content\n }\n \n \n
\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBadge = InstanceType\n","export { VBanner } from \"./VBanner.mjs\";\nexport { VBannerActions } from \"./VBannerActions.mjs\";\nexport { VBannerText } from \"./VBannerText.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBanner } from './VBanner'\nexport { VBannerActions } from './VBannerActions'\nexport { VBannerText } from './VBannerText'\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBanner.css\";\n\n// Components\nimport { VBannerActions } from \"./VBannerActions.mjs\";\nimport { VBannerText } from \"./VBannerText.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VBanner');\nexport const VBanner = genericComponent()({\n name: 'VBanner',\n props: makeVBannerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const color = toRef(props, 'color');\n const density = toRef(props, 'density');\n provideDefaults({\n VBannerActions: {\n color,\n density\n }\n });\n useRender(() => {\n const hasText = !!(props.text || slots.text);\n const hasPrependMedia = !!(props.avatar || props.icon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n return _createVNode(props.tag, {\n \"class\": ['v-banner', {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"banner\"\n }, {\n default: () => [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-banner__prepend\"\n }, [!slots.prepend ? _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"color\": color.value,\n \"density\": density.value,\n \"icon\": props.icon,\n \"image\": props.avatar\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-banner__content\"\n }, [hasText && _createVNode(VBannerText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.()]), slots.actions && _createVNode(VBannerActions, {\n \"key\": \"actions\"\n }, slots.actions)]\n });\n });\n }\n});\n//# sourceMappingURL=VBanner.mjs.map","// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n \n { hasPrepend && (\n
\n { !slots.prepend ? (\n \n ) : (\n \n )}\n
\n )}\n\n
\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default?.() }\n
\n\n { slots.actions && (\n \n )}\n \n )\n })\n },\n})\n\nexport type VBanner = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n ...makeComponentProps()\n}, 'VBannerActions');\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n props: makeVBannerActionsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-banner-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VBannerActions.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n\n ...makeComponentProps(),\n}, 'VBannerActions')\n\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n\n props: makeVBannerActionsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VBannerActions = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VBannerText = createSimpleFunctional('v-banner-text');\n//# sourceMappingURL=VBannerText.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n\nexport type VBannerText = InstanceType\n","export { VBottomNavigation } from \"./VBottomNavigation.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBottomNavigation } from './VBottomNavigation'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBottomNavigation.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomNavigationProps = propsFactory({\n baseColor: String,\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: v => !v || ['horizontal', 'shift'].includes(v)\n },\n height: {\n type: [Number, String],\n default: 56\n },\n active: {\n type: Boolean,\n default: true\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({\n name: 'bottom-navigation'\n }),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeGroupProps({\n selectedClass: 'v-btn--selected'\n }),\n ...makeThemeProps()\n}, 'VBottomNavigation');\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n props: makeVBottomNavigationProps(),\n emits: {\n 'update:active': value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = useTheme();\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));\n const isActive = useProxiedModel(props, 'active', props.active);\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useGroup(props, VBtnToggleSymbol);\n provideDefaults({\n VBtn: {\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text'\n }\n }, {\n scoped: true\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-bottom-navigation', {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift'\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, {\n height: convertToUnit(height.value)\n }, ssrBootStyles.value, props.style]\n }, {\n default: () => [slots.default && _createVNode(\"div\", {\n \"class\": \"v-bottom-navigation__content\"\n }, [slots.default()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomNavigation.mjs.map","// Styles\nimport './VBottomNavigation.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport const makeVBottomNavigationProps = propsFactory({\n baseColor: String,\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n active: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({ selectedClass: 'v-btn--selected' }),\n ...makeThemeProps(),\n}, 'VBottomNavigation')\n\nexport const VBottomNavigation = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: { default: never },\n) => GenericProps>()({\n name: 'VBottomNavigation',\n\n props: makeVBottomNavigationProps(),\n\n emits: {\n 'update:active': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = useProxiedModel(props, 'active', props.active)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n \n { slots.default && (\n
\n { slots.default() }\n
\n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBottomNavigation = InstanceType\n","export { VBottomSheet } from \"./VBottomSheet.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBottomSheet } from './VBottomSheet'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VBottomSheet.css\";\n\n// Components\nimport { makeVDialogProps, VDialog } from \"../VDialog/VDialog.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomSheetProps = propsFactory({\n inset: Boolean,\n ...makeVDialogProps({\n transition: 'bottom-sheet-transition'\n })\n}, 'VBottomSheet');\nexport const VBottomSheet = genericComponent()({\n name: 'VBottomSheet',\n props: makeVBottomSheetProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const dialogProps = VDialog.filterProps(props);\n return _createVNode(VDialog, _mergeProps(dialogProps, {\n \"contentClass\": ['v-bottom-sheet__content', props.contentClass],\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"class\": ['v-bottom-sheet', {\n 'v-bottom-sheet--inset': props.inset\n }, props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomSheet.mjs.map","// Styles\nimport './VBottomSheet.sass'\n\n// Components\nimport { makeVDialogProps, VDialog } from '@/components/VDialog/VDialog'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVBottomSheetProps = propsFactory({\n inset: Boolean,\n\n ...makeVDialogProps({\n transition: 'bottom-sheet-transition',\n }),\n}, 'VBottomSheet')\n\nexport const VBottomSheet = genericComponent()({\n name: 'VBottomSheet',\n\n props: makeVBottomSheetProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const dialogProps = VDialog.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBottomSheet = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDialog.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue';\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true\n },\n scrollable: Boolean,\n ...makeVOverlayProps({\n origin: 'center center',\n scrollStrategy: 'block',\n transition: {\n component: VDialogTransition\n },\n zIndex: 2400\n })\n}, 'VDialog');\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n props: makeVDialogProps(),\n emits: {\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const overlay = ref();\n function onFocusin(e) {\n const before = e.relatedTarget;\n const after = e.target;\n if (before !== after && overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n if (!focusable.length) return;\n const firstElement = focusable[0];\n const lastElement = focusable[focusable.length - 1];\n if (before === firstElement) {\n lastElement.focus();\n } else {\n firstElement.focus();\n }\n }\n }\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);\n }, {\n immediate: true\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({\n preventScroll: true\n });\n }\n }\n function onAfterLeave() {\n emit('afterLeave');\n }\n watch(isActive, async val => {\n if (!val) {\n await nextTick();\n overlay.value.activatorEl?.focus({\n preventScroll: true\n });\n }\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog'\n }, props.activatorProps);\n const contentProps = mergeProps({\n tabindex: -1\n }, props.contentProps);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-dialog', {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable\n }, props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"aria-modal\": \"true\",\n \"activatorProps\": activatorProps,\n \"contentProps\": contentProps,\n \"role\": \"dialog\",\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VDialog\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VDialog.mjs.map","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({ preventScroll: true })\n }\n }\n\n function onAfterLeave () {\n emit('afterLeave')\n }\n\n watch(isActive, async val => {\n if (!val) {\n await nextTick()\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog',\n }, props.activatorProps)\n const contentProps = mergeProps({\n tabindex: -1,\n }, props.contentProps)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => (\n \n { slots.default?.(...args) }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType\n","export { VBreadcrumbs } from \"./VBreadcrumbs.mjs\";\nexport { VBreadcrumbsItem } from \"./VBreadcrumbsItem.mjs\";\nexport { VBreadcrumbsDivider } from \"./VBreadcrumbsDivider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBreadcrumbs } from './VBreadcrumbs'\nexport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nexport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBreadcrumbs.css\";\n\n// Components\nimport { VBreadcrumbsDivider } from \"./VBreadcrumbsDivider.mjs\";\nimport { VBreadcrumbsItem } from \"./VBreadcrumbsItem.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBreadcrumbsProps = propsFactory({\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/'\n },\n icon: IconValue,\n items: {\n type: Array,\n default: () => []\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'ul'\n })\n}, 'VBreadcrumbs');\nexport const VBreadcrumbs = genericComponent()({\n name: 'VBreadcrumbs',\n props: makeVBreadcrumbsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider')\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled')\n }\n });\n const items = computed(() => props.items.map(item => {\n return typeof item === 'string' ? {\n item: {\n title: item\n },\n raw: item\n } : {\n item,\n raw: item\n };\n }));\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon);\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasPrepend && _createVNode(\"li\", {\n \"key\": \"prepend\",\n \"class\": \"v-breadcrumbs__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"start\": true,\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n icon: props.icon,\n start: true\n }\n }\n }, slots.prepend)]), items.value.map((_ref2, index, array) => {\n let {\n item,\n raw\n } = _ref2;\n return _createVNode(_Fragment, null, [slots.item?.({\n item,\n index\n }) ?? _createVNode(VBreadcrumbsItem, _mergeProps({\n \"key\": index,\n \"disabled\": index >= array.length - 1\n }, typeof item === 'string' ? {\n title: item\n } : item), {\n default: slots.title ? () => slots.title?.({\n item,\n index\n }) : undefined\n }), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {\n default: slots.divider ? () => slots.divider?.({\n item: raw,\n index\n }) : undefined\n })]);\n }), slots.default?.()]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbs.mjs.map","// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { LinkProps } from '@/composables/router'\nimport type { GenericProps } from '@/util'\n\nexport type InternalBreadcrumbItem = Partial & {\n title: string\n disabled?: boolean\n}\n\nexport type BreadcrumbItem = string | InternalBreadcrumbItem\n\nexport const makeVBreadcrumbsProps = propsFactory({\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n}, 'VBreadcrumbs')\n\nexport const VBreadcrumbs = genericComponent(\n props: {\n items?: T[]\n },\n slots: {\n prepend: never\n title: { item: InternalBreadcrumbItem, index: number }\n divider: { item: T, index: number }\n item: { item: InternalBreadcrumbItem, index: number }\n default: never\n }\n) => GenericProps>()({\n name: 'VBreadcrumbs',\n\n props: makeVBreadcrumbsProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n const items = computed(() => props.items.map(item => {\n return typeof item === 'string' ? { item: { title: item }, raw: item } : { item, raw: item }\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n \n { hasPrepend && (\n
  • \n { !slots.prepend ? (\n \n ) : (\n \n )}\n
  • \n )}\n\n { items.value.map(({ item, raw }, index, array) => (\n <>\n { slots.item?.({ item, index }) ?? (\n = array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n )}\n\n { index < array.length - 1 && (\n slots.divider?.({ item: raw, index }) : undefined,\n }}\n />\n )}\n \n ))}\n\n { slots.default?.() }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsDividerProps = propsFactory({\n divider: [Number, String],\n ...makeComponentProps()\n}, 'VBreadcrumbsDivider');\nexport const VBreadcrumbsDivider = genericComponent()({\n name: 'VBreadcrumbsDivider',\n props: makeVBreadcrumbsDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"li\", {\n \"class\": ['v-breadcrumbs-divider', props.class],\n \"style\": props.style\n }, [slots?.default?.() ?? props.divider]));\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsDivider.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBreadcrumbsDividerProps = propsFactory({\n divider: [Number, String],\n\n ...makeComponentProps(),\n}, 'VBreadcrumbsDivider')\n\nexport const VBreadcrumbsDivider = genericComponent()({\n name: 'VBreadcrumbsDivider',\n\n props: makeVBreadcrumbsDividerProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n { slots?.default?.() ?? props.divider }\n \n ))\n\n return {}\n },\n})\n\nexport type VBreadcrumbsDivider = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsItemProps = propsFactory({\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeRouterProps(),\n ...makeTagProps({\n tag: 'li'\n })\n}, 'VBreadcrumbsItem');\nexport const VBreadcrumbsItem = genericComponent()({\n name: 'VBreadcrumbsItem',\n props: makeVBreadcrumbsItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const link = useLink(props, attrs);\n const isActive = computed(() => props.active || link.isActive?.value);\n const color = computed(() => isActive.value ? props.activeColor : props.color);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs-item', {\n 'v-breadcrumbs-item--active': isActive.value,\n 'v-breadcrumbs-item--disabled': props.disabled,\n [`${props.activeClass}`]: isActive.value && props.activeClass\n }, textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style],\n \"aria-current\": isActive.value ? 'page' : undefined\n }, {\n default: () => [!link.isLink.value ? slots.default?.() ?? props.title : _createVNode(\"a\", _mergeProps({\n \"class\": \"v-breadcrumbs-item--link\",\n \"onClick\": link.navigate\n }, link.linkProps), [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsItem.mjs.map","// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBreadcrumbsItemProps = propsFactory({\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n\n ...makeComponentProps(),\n ...makeRouterProps(),\n ...makeTagProps({ tag: 'li' }),\n}, 'VBreadcrumbsItem')\n\nexport const VBreadcrumbsItem = genericComponent()({\n name: 'VBreadcrumbsItem',\n\n props: makeVBreadcrumbsItemProps(),\n\n setup (props, { slots, attrs }) {\n const link = useLink(props, attrs)\n const isActive = computed(() => props.active || link.isActive?.value)\n const color = computed(() => isActive.value ? props.activeColor : props.color)\n\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n useRender(() => {\n return (\n \n { !link.isLink.value ? slots.default?.() ?? props.title : (\n \n { slots.default?.() ?? props.title }\n
    \n )}\n \n )\n })\n return {}\n },\n})\n\nexport type VBreadcrumbsItem = InstanceType\n","export { VBtnGroup } from \"./VBtnGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtnGroup } from './VBtnGroup'\n","export { VBtnToggle } from \"./VBtnToggle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtnToggle } from './VBtnToggle'\n","export { VCard } from \"./VCard.mjs\";\nexport { VCardActions } from \"./VCardActions.mjs\";\nexport { VCardItem } from \"./VCardItem.mjs\";\nexport { VCardSubtitle } from \"./VCardSubtitle.mjs\";\nexport { VCardText } from \"./VCardText.mjs\";\nexport { VCardTitle } from \"./VCardTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCard } from './VCard'\nexport { VCardActions } from './VCardActions'\nexport { VCardItem } from './VCardItem'\nexport { VCardSubtitle } from './VCardSubtitle'\nexport { VCardText } from './VCardText'\nexport { VCardTitle } from './VCardTitle'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n/* eslint-disable complexity */\n\n// Styles\nimport \"./VCard.css\";\n\n// Components\nimport { VCardActions } from \"./VCardActions.mjs\";\nimport { VCardItem } from \"./VCardItem.mjs\";\nimport { VCardText } from \"./VCardText.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VCard');\nexport const VCard = genericComponent()({\n name: 'VCard',\n directives: {\n Ripple\n },\n props: makeVCardProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = !!(slots.title || props.title != null);\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null);\n const hasHeader = hasTitle || hasSubtitle;\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);\n const hasImage = !!(slots.image || props.image);\n const hasCardItem = hasHeader || hasPrepend || hasAppend;\n const hasText = !!(slots.text || props.text != null);\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-card', {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"onClick\": isClickable.value && link.navigate,\n \"tabindex\": props.disabled ? -1 : undefined\n }, link.linkProps), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-card__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(LoaderSlot, {\n \"name\": \"v-card\",\n \"active\": !!props.loading,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading\n }, {\n default: slots.loader\n }), hasCardItem && _createVNode(VCardItem, {\n \"key\": \"item\",\n \"prependAvatar\": props.prependAvatar,\n \"prependIcon\": props.prependIcon,\n \"title\": props.title,\n \"subtitle\": props.subtitle,\n \"appendAvatar\": props.appendAvatar,\n \"appendIcon\": props.appendIcon\n }, {\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append\n }), hasText && _createVNode(VCardText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.(), slots.actions && _createVNode(VCardActions, null, {\n default: slots.actions\n }), genOverlays(isClickable.value, 'v-card')]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCard.mjs.map","/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCardItemSlots } from './VCardItem'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VCard')\n\nexport type VCardSlots = VCardItemSlots & {\n default: never\n actions: never\n text: never\n loader: LoaderSlotProps\n image: never\n item: never\n}\n\nexport const VCard = genericComponent()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeVCardProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title != null)\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text != null)\n\n return (\n \n { hasImage && (\n
    \n { !slots.image ? (\n \n ) : (\n \n )}\n
    \n )}\n\n \n\n { hasCardItem && (\n \n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n \n )}\n\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n \n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\";\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n props: makeComponentProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-card-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VCardActions.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeComponentProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VCardSubtitle } from \"./VCardSubtitle.mjs\";\nimport { VCardTitle } from \"./VCardTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n ...makeComponentProps(),\n ...makeDensityProps()\n}, 'VCardItem');\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n props: makeCardItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n return _createVNode(\"div\", {\n \"class\": ['v-card-item', props.class],\n \"style\": props.style\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-card-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-card-item__content\"\n }, [hasTitle && _createVNode(VCardTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), hasSubtitle && _createVNode(VCardSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.() ?? props.subtitle]\n }), slots.default?.()]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-card-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n }\n }\n }, slots.append)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCardItem.mjs.map","// Components\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VCardItemSlots = {\n default: never\n prepend: never\n append: never\n title: never\n subtitle: never\n}\n\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n}, 'VCardItem')\n\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n\n props: makeCardItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n return (\n \n { hasPrepend && (\n
    \n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n\n
    \n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.() ?? props.subtitle }\n \n )}\n\n { slots.default?.() }\n
    \n\n { hasAppend && (\n
    \n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardSubtitle');\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n props: makeVCardSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-subtitle', props.class],\n \"style\": [{\n '--v-card-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardSubtitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardSubtitle')\n\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n\n props: makeVCardSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardSubtitle = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCardTitle = createSimpleFunctional('v-card-title');\n//# sourceMappingURL=VCardTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n\nexport type VCardTitle = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardText');\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n props: makeVCardTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-text', props.class],\n \"style\": [{\n '--v-card-text-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardText.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardText')\n\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n\n props: makeVCardTextProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardText = InstanceType\n","export { VCarousel } from \"./VCarousel.mjs\";\nexport { VCarouselItem } from \"./VCarouselItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCarousel } from './VCarousel'\nexport { VCarouselItem } from './VCarouselItem'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VCarousel.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { onMounted, ref, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter'\n },\n height: {\n type: [Number, String],\n default: 500\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: value => Number(value) > 0\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String],\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force',\n showArrows: true\n })\n}, 'VCarousel');\nexport const VCarousel = genericComponent()({\n name: 'VCarousel',\n props: makeVCarouselProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n t\n } = useLocale();\n const windowRef = ref();\n let slideTimeout = -1;\n watch(model, restartTimeout);\n watch(() => props.interval, restartTimeout);\n watch(() => props.cycle, val => {\n if (val) restartTimeout();else window.clearTimeout(slideTimeout);\n });\n onMounted(startTimeout);\n function startTimeout() {\n if (!props.cycle || !windowRef.value) return;\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);\n }\n function restartTimeout() {\n window.clearTimeout(slideTimeout);\n window.requestAnimationFrame(startTimeout);\n }\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"ref\": windowRef\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-carousel', {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters\n }, props.class],\n \"style\": [{\n height: convertToUnit(props.height)\n }, props.style]\n }), {\n default: slots.default,\n additional: _ref2 => {\n let {\n group\n } = _ref2;\n return _createVNode(_Fragment, null, [!props.hideDelimiters && _createVNode(\"div\", {\n \"class\": \"v-carousel__controls\",\n \"style\": {\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto'\n }\n }, [group.items.value.length > 0 && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text'\n }\n },\n \"scoped\": true\n }, {\n default: () => [group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: ['v-carousel__controls__item', group.isSelected(item.id) && 'v-btn--active'],\n onClick: () => group.select(item.id, true)\n };\n return slots.item ? slots.item({\n props,\n item\n }) : _createVNode(VBtn, _mergeProps(item, props), null);\n })]\n })]), props.progress && _createVNode(VProgressLinear, {\n \"class\": \"v-carousel__progress\",\n \"color\": typeof props.progress === 'string' ? props.progress : undefined,\n \"modelValue\": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100\n }, null)]);\n },\n prev: slots.prev,\n next: slots.next\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCarousel.mjs.map","// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VWindowSlots } from '@/components/VWindow/VWindow'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => Number(value) > 0,\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String] as PropType,\n\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force' as const,\n showArrows: true,\n }),\n}, 'VCarousel')\n\ntype VCarouselSlots = VWindowSlots & {\n item: {\n props: Record\n item: {\n id: number\n value: unknown\n disabled: boolean | undefined\n }\n }\n}\n\nexport const VCarousel = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VCarouselSlots,\n) => GenericProps>()({\n name: 'VCarousel',\n\n props: makeVCarouselProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n \n { group.items.value.length > 0 && (\n \n { group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: [\n 'v-carousel__controls__item',\n group.isSelected(item.id) && 'v-btn--active',\n ],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : ()\n })}\n \n )}\n \n )}\n\n { props.progress && (\n \n )}\n \n ),\n prev: slots.prev,\n next: slots.next,\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCarousel = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VWindow.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useGroup } from \"../../composables/group.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Directives\nimport { Touch } from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VWindowSymbol = Symbol.for('vuetify:v-window');\nexport const VWindowGroupSymbol = Symbol.for('vuetify:v-window-group');\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String, Function, Object],\n default: '$prev'\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || v === 'hover'\n },\n touch: {\n type: [Object, Boolean],\n default: undefined\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active'\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String],\n default: 'force'\n },\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VWindow');\nexport const VWindow = genericComponent()({\n name: 'VWindow',\n directives: {\n Touch\n },\n props: makeVWindowProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isRtl\n } = useRtl();\n const {\n t\n } = useLocale();\n const group = useGroup(props, VWindowGroupSymbol);\n const rootRef = ref();\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);\n const isReversed = shallowRef(false);\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x';\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;\n const direction = reverse ? '-reverse' : '';\n return `v-window-${axis}${direction}-transition`;\n });\n const transitionCount = shallowRef(0);\n const transitionHeight = ref(undefined);\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id));\n });\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length;\n const lastIndex = itemsLength - 1;\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal;\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true;\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false;\n } else {\n isReversed.value = newVal < oldVal;\n }\n });\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef\n });\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0);\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);\n function prev() {\n canMoveBack.value && group.prev();\n }\n function next() {\n canMoveForward.value && group.next();\n }\n const arrows = computed(() => {\n const arrows = [];\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev')\n };\n arrows.push(canMoveBack.value ? slots.prev ? slots.prev({\n props: prevProps\n }) : _createVNode(VBtn, prevProps, null) : _createVNode(\"div\", null, null));\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next')\n };\n arrows.push(canMoveForward.value ? slots.next ? slots.next({\n props: nextProps\n }) : _createVNode(VBtn, nextProps, null) : _createVNode(\"div\", null, null));\n return arrows;\n });\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch;\n const options = {\n left: () => {\n isRtlReverse.value ? prev() : next();\n },\n right: () => {\n isRtlReverse.value ? next() : prev();\n },\n start: _ref2 => {\n let {\n originalEvent\n } = _ref2;\n originalEvent.stopPropagation();\n }\n };\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch)\n };\n });\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"ref\": rootRef,\n \"class\": ['v-window', {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover'\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-window__container\",\n \"style\": {\n height: transitionHeight.value\n }\n }, [slots.default?.({\n group\n }), props.showArrows !== false && _createVNode(\"div\", {\n \"class\": \"v-window__controls\"\n }, [arrows.value])]), slots.additional?.({\n group\n })]\n }), [[_resolveDirective(\"touch\"), touchOptions.value]]));\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VWindow.mjs.map","// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef\n transitionCount: Ref\n transitionHeight: Ref\n isReversed: Ref\n rootRef: Ref\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType,\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : \n :
    \n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : \n :
    \n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n \n \n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n
    \n { arrows.value }\n
    \n )}\n
    \n\n { slots.additional?.({ group }) }\n \n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType\n","// Utilities\nimport { keys } from \"../../util/index.mjs\"; // Types\nconst handleGesture = wrapper => {\n const {\n touchstartX,\n touchendX,\n touchstartY,\n touchendY\n } = wrapper;\n const dirRatio = 0.5;\n const minDistance = 16;\n wrapper.offsetX = touchendX - touchstartX;\n wrapper.offsetY = touchendY - touchstartY;\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);\n wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);\n }\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);\n wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);\n }\n};\nfunction touchstart(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchstartX = touch.clientX;\n wrapper.touchstartY = touch.clientY;\n wrapper.start?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction touchend(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchendX = touch.clientX;\n wrapper.touchendY = touch.clientY;\n wrapper.end?.({\n originalEvent: event,\n ...wrapper\n });\n handleGesture(wrapper);\n}\nfunction touchmove(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchmoveX = touch.clientX;\n wrapper.touchmoveY = touch.clientY;\n wrapper.move?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction createHandlers() {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end\n };\n return {\n touchstart: e => touchstart(e, wrapper),\n touchend: e => touchend(e, wrapper),\n touchmove: e => touchmove(e, wrapper)\n };\n}\nfunction mounted(el, binding) {\n const value = binding.value;\n const target = value?.parent ? el.parentElement : el;\n const options = value?.options ?? {\n passive: true\n };\n const uid = binding.instance?.$.uid; // TODO: use custom uid generator\n\n if (!target || !uid) return;\n const handlers = createHandlers(binding.value);\n target._touchHandlers = target._touchHandlers ?? Object.create(null);\n target._touchHandlers[uid] = handlers;\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options);\n });\n}\nfunction unmounted(el, binding) {\n const target = binding.value?.parent ? el.parentElement : el;\n const uid = binding.instance?.$.uid;\n if (!target?._touchHandlers || !uid) return;\n const handlers = target._touchHandlers[uid];\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName]);\n });\n delete target._touchHandlers[uid];\n}\nexport const Touch = {\n mounted,\n unmounted\n};\nexport default Touch;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { keys } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\nexport interface TouchHandlers {\n start?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n end?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n move?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n left?: (wrapper: TouchData) => void\n right?: (wrapper: TouchData) => void\n up?: (wrapper: TouchData) => void\n down?: (wrapper: TouchData) => void\n}\n\nexport interface TouchData {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n touchendX: number\n touchendY: number\n offsetX: number\n offsetY: number\n}\n\nexport type TouchWrapper = TouchHandlers & TouchData\n\nexport interface TouchValue extends TouchHandlers {\n parent?: boolean\n options?: AddEventListenerOptions\n}\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nexport interface TouchDirectiveBinding extends Omit {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ originalEvent: event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ originalEvent: event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ originalEvent: event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVImgProps, VImg } from \"../VImg/VImg.mjs\";\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps()\n}, 'VCarouselItem');\nexport const VCarouselItem = genericComponent()({\n name: 'VCarouselItem',\n inheritAttrs: false,\n props: makeVCarouselItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n useRender(() => {\n const imgProps = VImg.filterProps(props);\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"class\": ['v-carousel-item', props.class]\n }, windowItemProps), {\n default: () => [_createVNode(VImg, _mergeProps(attrs, imgProps), slots)]\n });\n });\n }\n});\n//# sourceMappingURL=VCarouselItem.mjs.map","// Components\nimport { makeVImgProps, VImg } from '@/components/VImg/VImg'\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps(),\n}, 'VCarouselItem')\n\nexport const VCarouselItem = genericComponent()({\n name: 'VCarouselItem',\n\n inheritAttrs: false,\n\n props: makeVCarouselItemProps(),\n\n setup (props, { slots, attrs }) {\n useRender(() => {\n const imgProps = VImg.filterProps(props)\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n \n \n )\n })\n },\n})\n\nexport type VCarouselItem = InstanceType\n","import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport Touch from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VWindowGroupSymbol, VWindowSymbol } from \"./VWindow.mjs\";\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined\n },\n transition: {\n type: [Boolean, String],\n default: undefined\n },\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps()\n}, 'VWindowItem');\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n directives: {\n Touch\n },\n props: makeVWindowItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const window = inject(VWindowSymbol);\n const groupItem = useGroupItem(props, VWindowGroupSymbol);\n const {\n isBooted\n } = useSsrBoot();\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');\n const isTransitioning = shallowRef(false);\n const hasTransition = computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));\n function onAfterTransition() {\n if (!isTransitioning.value || !window) {\n return;\n }\n\n // Finalize transition state.\n isTransitioning.value = false;\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1;\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined;\n }\n }\n }\n function onBeforeTransition() {\n if (isTransitioning.value || !window) {\n return;\n }\n\n // Initialize transition state here.\n isTransitioning.value = true;\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight);\n }\n window.transitionCount.value += 1;\n }\n function onTransitionCancelled() {\n onAfterTransition(); // This should have the same path as normal transition end.\n }\n function onEnterTransition(el) {\n if (!isTransitioning.value) {\n return;\n }\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return;\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight);\n });\n }\n const transition = computed(() => {\n const name = window.isReversed.value ? props.reverseTransition : props.transition;\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition\n };\n });\n const {\n hasContent\n } = useLazy(props, groupItem.isSelected);\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": transition.value,\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-window-item', groupItem.selectedClass.value, props.class],\n \"style\": props.style\n }, [hasContent.value && slots.default?.()]), [[_vShow, groupItem.isSelected.value]])]\n }));\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VWindowItem.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n}, 'VWindowItem')\n\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = shallowRef(false)\n const hasTransition = computed(() => isBooted.value && (\n window.isReversed.value\n ? props.reverseTransition !== false\n : props.transition !== false\n ))\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n useRender(() => (\n \n \n { hasContent.value && slots.default?.() }\n
    \n \n ))\n\n return { groupItem }\n },\n})\n\nexport type VWindowItem = InstanceType\n","export { VChipGroup } from \"./VChipGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VChipGroup } from './VChipGroup'\n","// Styles\nimport \"./VCode.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCode = createSimpleFunctional('v-code');\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VCode.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCode = createSimpleFunctional('v-code')\n\nexport type VCode = InstanceType\n","export { VColorPicker } from \"./VColorPicker.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VColorPicker } from './VColorPicker'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPicker.css\";\n\n// Components\nimport { VColorPickerCanvas } from \"./VColorPickerCanvas.mjs\";\nimport { VColorPickerEdit } from \"./VColorPickerEdit.mjs\";\nimport { VColorPickerPreview } from \"./VColorPickerPreview.mjs\";\nimport { VColorPickerSwatches } from \"./VColorPickerSwatches.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, onBeforeMount, ref, watch } from 'vue';\nimport { extractColor, modes, nullColor } from \"./util/index.mjs\";\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n showSwatches: Boolean,\n swatches: Array,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150\n },\n modelValue: {\n type: [Object, String]\n },\n ...omit(makeVSheetProps({\n width: 300\n }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])\n}, 'VColorPicker');\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n props: makeVColorPickerProps(),\n emits: {\n 'update:modelValue': color => true,\n 'update:mode': mode => true\n },\n setup(props) {\n const mode = useProxiedModel(props, 'mode');\n const hue = ref(null);\n const model = useProxiedModel(props, 'modelValue', undefined, v => {\n if (v == null || v === '') return null;\n let c;\n try {\n c = RGBtoHSV(parseColor(v));\n } catch (err) {\n consoleWarn(err);\n return null;\n }\n return c;\n }, v => {\n if (!v) return null;\n return extractColor(v, props.modelValue);\n });\n const currentColor = computed(() => {\n return model.value ? {\n ...model.value,\n h: hue.value ?? model.value.h\n } : null;\n });\n const {\n rtlClasses\n } = useRtl();\n let externalChange = true;\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true;\n return;\n }\n if (!v) return;\n hue.value = v.h;\n }, {\n immediate: true\n });\n const updateColor = hsva => {\n externalChange = false;\n hue.value = hsva.h;\n model.value = hsva;\n };\n onBeforeMount(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0];\n });\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n return _createVNode(VSheet, _mergeProps({\n \"rounded\": props.rounded,\n \"elevation\": props.elevation,\n \"theme\": props.theme,\n \"class\": ['v-color-picker', rtlClasses.value, props.class],\n \"style\": [{\n '--v-color-picker-color-hsv': HSVtoCSS({\n ...(currentColor.value ?? nullColor),\n a: 1\n })\n }, props.style]\n }, sheetProps, {\n \"maxWidth\": props.width\n }), {\n default: () => [!props.hideCanvas && _createVNode(VColorPickerCanvas, {\n \"key\": \"canvas\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled,\n \"dotSize\": props.dotSize,\n \"width\": props.width,\n \"height\": props.canvasHeight\n }, null), (!props.hideSliders || !props.hideInputs) && _createVNode(\"div\", {\n \"key\": \"controls\",\n \"class\": \"v-color-picker__controls\"\n }, [!props.hideSliders && _createVNode(VColorPickerPreview, {\n \"key\": \"preview\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"hideAlpha\": !mode.value.endsWith('a'),\n \"disabled\": props.disabled\n }, null), !props.hideInputs && _createVNode(VColorPickerEdit, {\n \"key\": \"edit\",\n \"modes\": props.modes,\n \"mode\": mode.value,\n \"onUpdate:mode\": m => mode.value = m,\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled\n }, null)]), props.showSwatches && _createVNode(VColorPickerSwatches, {\n \"key\": \"swatches\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"maxHeight\": props.swatchesMaxHeight,\n \"swatches\": props.swatches,\n \"disabled\": props.disabled\n }, null)]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VColorPicker.mjs.map","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onBeforeMount, ref, watch } from 'vue'\nimport { extractColor, modes, nullColor } from './util'\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String as PropType,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n}, 'VColorPicker')\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: makeVColorPickerProps(),\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const hue = ref(null)\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n if (v == null || v === '') return null\n\n let c: HSV\n try {\n c = RGBtoHSV(parseColor(v as any))\n } catch (err) {\n consoleWarn(err as any)\n return null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n const currentColor = computed(() => {\n return model.value\n ? { ...model.value, h: hue.value ?? model.value.h }\n : null\n })\n const { rtlClasses } = useRtl()\n\n let externalChange = true\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true\n return\n }\n if (!v) return\n hue.value = v.h\n }, { immediate: true })\n\n const updateColor = (hsva: HSV) => {\n externalChange = false\n hue.value = hsva.h\n model.value = hsva\n }\n\n onBeforeMount(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n return (\n \n { !props.hideCanvas && (\n \n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n
    \n { !props.hideSliders && (\n \n )}\n\n { !props.hideInputs && (\n mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n
    \n )}\n\n { props.showSwatches && (\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerCanvas.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n height: {\n type: [Number, String],\n default: 150\n },\n width: {\n type: [Number, String],\n default: 300\n },\n ...makeComponentProps()\n}, 'VColorPickerCanvas');\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n props: makeVColorPickerCanvasProps(),\n emits: {\n 'update:color': color => true,\n 'update:position': hue => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const isInteracting = shallowRef(false);\n const canvasRef = ref();\n const canvasWidth = shallowRef(parseFloat(props.width));\n const canvasHeight = shallowRef(parseFloat(props.height));\n const _dotPosition = ref({\n x: 0,\n y: 0\n });\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set(val) {\n if (!canvasRef.value) return;\n const {\n x,\n y\n } = val;\n _dotPosition.value = val;\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1\n });\n }\n });\n const dotStyles = computed(() => {\n const {\n x,\n y\n } = dotPosition.value;\n const radius = parseInt(props.dotSize, 10) / 2;\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`\n };\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return;\n const {\n width,\n height\n } = entries[0].contentRect;\n canvasWidth.value = width;\n canvasHeight.value = height;\n });\n function updateDotPosition(x, y, rect) {\n const {\n left,\n top,\n width,\n height\n } = rect;\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height)\n };\n }\n function handleMouseDown(e) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault();\n }\n if (props.disabled) return;\n handleMouseMove(e);\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleMouseMove);\n window.addEventListener('touchend', handleMouseUp);\n }\n function handleMouseMove(e) {\n if (props.disabled || !canvasRef.value) return;\n isInteracting.value = true;\n const coords = getEventCoordinates(e);\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect());\n }\n function handleMouseUp() {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleMouseMove);\n window.removeEventListener('touchend', handleMouseUp);\n }\n function updateCanvas() {\n if (!canvasRef.value) return;\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0);\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)'); // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`);\n ctx.fillStyle = saturationGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black\n ctx.fillStyle = valueGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n watch(() => props.color?.h, updateCanvas, {\n immediate: true\n });\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas();\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1]\n };\n }, {\n flush: 'post'\n });\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false;\n return;\n }\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value\n } : {\n x: 0,\n y: 0\n };\n }, {\n deep: true,\n immediate: true\n });\n onMounted(() => updateCanvas());\n useRender(() => _createVNode(\"div\", {\n \"ref\": resizeRef,\n \"class\": ['v-color-picker-canvas', props.class],\n \"style\": props.style,\n \"onMousedown\": handleMouseDown,\n \"onTouchstartPassive\": handleMouseDown\n }, [_createVNode(\"canvas\", {\n \"ref\": canvasRef,\n \"width\": canvasWidth.value,\n \"height\": canvasHeight.value\n }, null), props.color && _createVNode(\"div\", {\n \"class\": ['v-color-picker-canvas__dot', {\n 'v-color-picker-canvas__dot--disabled': props.disabled\n }],\n \"style\": dotStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerCanvas.mjs.map","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object as PropType,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n },\n })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = width\n canvasHeight.value = height\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n \n \n { props.color && (\n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerEdit.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { modes, nullColor } from \"./util/index.mjs\";\nimport { defineComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst VColorPickerInput = _ref => {\n let {\n label,\n ...rest\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-edit__input\"\n }, [_createVNode(\"input\", rest, null), _createVNode(\"span\", null, [label])]);\n};\nexport const makeVColorPickerEditProps = propsFactory({\n color: Object,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n ...makeComponentProps()\n}, 'VColorPickerEdit');\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n props: makeVColorPickerEditProps(),\n emits: {\n 'update:color': color => true,\n 'update:mode': mode => true\n },\n setup(props, _ref2) {\n let {\n emit\n } = _ref2;\n const enabledModes = computed(() => {\n return props.modes.map(key => ({\n ...modes[key],\n name: key\n }));\n });\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode);\n if (!mode) return [];\n const color = props.color ? mode.to(props.color) : null;\n return mode.inputs?.map(_ref3 => {\n let {\n getValue,\n getColor,\n ...inputProps\n } = _ref3;\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: e => {\n const target = e.target;\n if (!target) return;\n emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));\n }\n };\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-edit', props.class],\n \"style\": props.style\n }, [inputs.value?.map(props => _createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && _createVNode(VBtn, {\n \"icon\": \"$unfold\",\n \"size\": \"x-small\",\n \"variant\": \"plain\",\n \"onClick\": () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode);\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name);\n }\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerEdit.mjs.map","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { computed } from 'vue'\nimport { modes, nullColor } from './util'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n \n \n { label }\n \n )\n}\n\nexport const makeVColorPickerEditProps = propsFactory({\n color: Object as PropType,\n disabled: Boolean,\n mode: {\n type: String as PropType,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerEdit')\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: makeVColorPickerEditProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : null\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n \n { inputs.value?.map(props => (\n \n ))}\n { enabledModes.value.length > 1 && (\n {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n }}\n />\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerEdit = InstanceType\n","// Utilities\nimport { HexToHSV, HSLtoHSV, HSVtoHex, HSVtoHSL, HSVtoRGB, RGBtoHSV } from \"../../../util/colorUtils.mjs\";\nimport { has } from \"../../../util/helpers.mjs\"; // Types\nfunction stripAlpha(color, stripAlpha) {\n if (stripAlpha) {\n const {\n a,\n ...rest\n } = color;\n return rest;\n }\n return color;\n}\nexport function extractColor(color, input) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color);\n if (color.a === 1) return hex.slice(0, 7);else return hex;\n }\n if (typeof input === 'object') {\n let converted;\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1);\n }\n return color;\n}\nexport function hasAlpha(color) {\n if (!color) return false;\n if (typeof color === 'string') {\n return color.length > 7;\n }\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha']);\n }\n return false;\n}\nexport const nullColor = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n};\nconst rgba = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'R',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.r),\n getColor: (c, v) => ({\n ...c,\n r: Number(v)\n })\n }, {\n label: 'G',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.g),\n getColor: (c, v) => ({\n ...c,\n g: Number(v)\n })\n }, {\n label: 'B',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.b),\n getColor: (c, v) => ({\n ...c,\n b: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref => {\n let {\n a\n } = _ref;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoRGB,\n from: RGBtoHSV\n};\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3)\n};\nconst hsla = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'H',\n max: 360,\n step: 1,\n getValue: c => Math.round(c.h),\n getColor: (c, v) => ({\n ...c,\n h: Number(v)\n })\n }, {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.s * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n s: Number(v)\n })\n }, {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.l * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n l: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref2 => {\n let {\n a\n } = _ref2;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoHSL,\n from: HSLtoHSV\n};\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3)\n};\nconst hexa = {\n inputProps: {\n type: 'text'\n },\n inputs: [{\n label: 'HEXA',\n getValue: c => c,\n getColor: (c, v) => v\n }],\n to: HSVtoHex,\n from: HexToHSV\n};\nconst hex = {\n ...hexa,\n inputs: [{\n label: 'HEX',\n getValue: c => c.slice(0, 7),\n getColor: (c, v) => v\n }]\n};\nexport const modes = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa\n};\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport {\n HexToHSV,\n HSLtoHSV,\n HSVtoHex,\n HSVtoHSL,\n HSVtoRGB,\n RGBtoHSV,\n} from '@/util/colorUtils'\nimport { has } from '@/util/helpers'\n\n// Types\nimport type { HSL, HSV, RGB } from '@/util/colorUtils'\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSV, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 0, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSV\n to: (color: HSV) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.r),\n getColor: (c: RGB, v: string): RGB => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.g),\n getColor: (c: RGB, v: string): RGB => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.b),\n getColor: (c: RGB, v: string): RGB => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: RGB) => a != null ? Math.round(a * 100) / 100 : 1,\n getColor: (c: RGB, v: string): RGB => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoRGB,\n from: RGBtoHSV,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSL) => Math.round(c.h),\n getColor: (c: HSL, v: string): HSL => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.s * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.l * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: HSL) => a != null ? Math.round(a * 100) / 100 : 1,\n getColor: (c: HSL, v: string): HSL => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoHSL,\n from: HSLtoHSV,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVtoHex,\n from: HexToHSV,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n} satisfies Record\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerPreview.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSlider } from \"../VSlider/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { onUnmounted } from 'vue';\nimport { nullColor } from \"./util/index.mjs\";\nimport { defineComponent, HexToHSV, HSVtoCSS, propsFactory, SUPPORTS_EYE_DROPPER, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerPreviewProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n ...makeComponentProps()\n}, 'VColorPickerPreview');\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n props: makeVColorPickerPreviewProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const abortController = new AbortController();\n onUnmounted(() => abortController.abort());\n async function openEyeDropper() {\n if (!SUPPORTS_EYE_DROPPER) return;\n const eyeDropper = new window.EyeDropper();\n try {\n const result = await eyeDropper.open({\n signal: abortController.signal\n });\n const colorHexValue = HexToHSV(result.sRGBHex);\n emit('update:color', {\n ...(props.color ?? nullColor),\n ...colorHexValue\n });\n } catch (e) {}\n }\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-preview', {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha\n }, props.class],\n \"style\": props.style\n }, [SUPPORTS_EYE_DROPPER && _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__eye-dropper\",\n \"key\": \"eyeDropper\"\n }, [_createVNode(VBtn, {\n \"onClick\": openEyeDropper,\n \"icon\": \"$eyeDropper\",\n \"variant\": \"plain\",\n \"density\": \"comfortable\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__dot\"\n }, [_createVNode(\"div\", {\n \"style\": {\n background: HSVtoCSS(props.color ?? nullColor)\n }\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__sliders\"\n }, [_createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__hue\",\n \"modelValue\": props.color?.h,\n \"onUpdate:modelValue\": h => emit('update:color', {\n ...(props.color ?? nullColor),\n h\n }),\n \"step\": 0,\n \"min\": 0,\n \"max\": 360,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null), !props.hideAlpha && _createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__alpha\",\n \"modelValue\": props.color?.a ?? 1,\n \"onUpdate:modelValue\": a => emit('update:color', {\n ...(props.color ?? nullColor),\n a\n }),\n \"step\": 1 / 256,\n \"min\": 0,\n \"max\": 1,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null)])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerPreview.mjs.map","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSlider } from '@/components/VSlider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { onUnmounted } from 'vue'\nimport { nullColor } from './util'\nimport {\n defineComponent,\n HexToHSV,\n HSVtoCSS,\n propsFactory,\n SUPPORTS_EYE_DROPPER,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Hex, HSV } from '@/util'\n\nexport const makeVColorPickerPreviewProps = propsFactory({\n color: {\n type: Object as PropType,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n\n ...makeComponentProps(),\n}, 'VColorPickerPreview')\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: makeVColorPickerPreviewProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n const abortController = new AbortController()\n\n onUnmounted(() => abortController.abort())\n\n async function openEyeDropper () {\n if (!SUPPORTS_EYE_DROPPER) return\n\n const eyeDropper = new window.EyeDropper()\n try {\n const result = await eyeDropper.open({ signal: abortController.signal })\n const colorHexValue = HexToHSV(result.sRGBHex as Hex)\n emit('update:color', { ...(props.color ?? nullColor), ...colorHexValue })\n } catch (e) {}\n }\n\n useRender(() => (\n \n { SUPPORTS_EYE_DROPPER && (\n
    \n \n
    \n )}\n\n
    \n
    \n
    \n\n
    \n emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n\n { !props.hideAlpha && (\n emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 1 / 256 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n )}\n
    \n
    \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerPreview = InstanceType\n","export { VSlider } from \"./VSlider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSlider } from './VSlider'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VSlider.css\";\n\n// Components\nimport { VSliderThumb } from \"./VSliderThumb.mjs\";\nimport { VSliderTrack } from \"./VSliderTrack.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeSliderProps, useSlider, useSteps } from \"./slider.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n modelValue: {\n type: [Number, String],\n default: 0\n }\n}, 'VSlider');\nexport const VSlider = genericComponent()({\n name: 'VSlider',\n props: makeVSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': v => true,\n start: value => true,\n end: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const thumbContainerRef = ref();\n const {\n rtlClasses\n } = useRtl();\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, value => {\n return steps.roundValue(value == null ? steps.min.value : value);\n });\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const roundedValue = roundValue(value);\n model.value = roundedValue;\n emit('end', roundedValue);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n return model.value = roundValue(value);\n },\n getActiveThumb: () => thumbContainerRef.value?.$el\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStop = computed(() => position(model.value));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"id\": slotProps.id.value,\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": id.value,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": 0,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": thumbContainerRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused.value,\n \"min\": min.value,\n \"max\": max.value,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": v => model.value = v,\n \"position\": trackStop.value,\n \"elevation\": props.elevation,\n \"onFocus\": focus,\n \"onBlur\": blur,\n \"ripple\": props.ripple,\n \"name\": props.name\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSlider.mjs.map","// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n \n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n \n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n \n ) : undefined,\n default: ({ id, messagesId }) => (\n \n \n\n \n {{ 'tick-label': slots['tick-label'] }}\n \n\n (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType\n","import { vShow as _vShow, withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSliderThumb.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\";\nimport { VScaleTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\"; // Directives\nimport Ripple from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true\n },\n min: {\n type: Number,\n required: true\n },\n modelValue: {\n type: Number,\n required: true\n },\n position: {\n type: Number,\n required: true\n },\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n name: String,\n ...makeComponentProps()\n}, 'VSliderThumb');\nexport const VSliderThumb = genericComponent()({\n name: 'VSliderThumb',\n directives: {\n Ripple\n },\n props: makeVSliderThumbProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const slider = inject(VSliderSymbol);\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd\n } = slider;\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined);\n const {\n elevationClasses\n } = useElevation(elevationProps);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(thumbColor);\n const {\n pageup,\n pagedown,\n end,\n home,\n left,\n right,\n down,\n up\n } = keyValues;\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up];\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3];else return [1, 5, 10];\n });\n function parseKeydown(e, value) {\n if (!relevantKeys.includes(e.key)) return;\n e.preventDefault();\n const _step = step.value || 0.1;\n const steps = (props.max - props.min) / _step;\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];\n const direction = increase.includes(e.key) ? 1 : -1;\n const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;\n value = value + direction * _step * multipliers.value[multiplier];\n } else if (e.key === home) {\n value = props.min;\n } else if (e.key === end) {\n value = props.max;\n } else {\n const direction = e.key === pagedown ? 1 : -1;\n value = value - direction * _step * (steps > 100 ? steps / 10 : 10);\n }\n return Math.max(props.min, Math.min(props.max, value));\n }\n function onKeydown(e) {\n const newValue = parseKeydown(e, props.modelValue);\n newValue != null && emit('update:modelValue', newValue);\n }\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');\n return _createVNode(\"div\", {\n \"class\": ['v-slider-thumb', {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value\n }, props.class, rtlClasses.value],\n \"style\": [{\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value)\n }, props.style],\n \"role\": \"slider\",\n \"tabindex\": disabled.value ? -1 : 0,\n \"aria-label\": props.name,\n \"aria-valuemin\": props.min,\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.modelValue,\n \"aria-readonly\": !!readonly.value,\n \"aria-orientation\": direction.value,\n \"onKeydown\": !readonly.value ? onKeydown : undefined\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],\n \"style\": {\n ...textColorStyles.value\n }\n }, null), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__ripple', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), [[_resolveDirective(\"ripple\"), props.ripple, null, {\n circle: true,\n center: true\n }]]), _createVNode(VScaleTransition, {\n \"origin\": \"bottom center\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-slider-thumb__label-container\"\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__label']\n }, [_createVNode(\"div\", null, [slots['thumb-label']?.({\n modelValue: props.modelValue\n }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderThumb.mjs.map","// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent()({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n \n \n \n \n \n \n
    \n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n
    \n \n \n
    \n \n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType\n","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue';\nimport { clamp, createRange, getDecimals, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VSliderSymbol = Symbol.for('vuetify:v-slider');\nexport function getOffset(e, el, direction) {\n const vertical = direction === 'vertical';\n const rect = el.getBoundingClientRect();\n const touch = 'touches' in e ? e.touches[0] : e;\n return vertical ? touch.clientY - (rect.top + rect.height / 2) : touch.clientX - (rect.left + rect.width / 2);\n}\nfunction getPosition(e, position) {\n if ('touches' in e && e.touches.length) return e.touches[0][position];else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position];else return e[position];\n}\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n readonly: {\n type: Boolean,\n default: null\n },\n max: {\n type: [Number, String],\n default: 100\n },\n min: {\n type: [Number, String],\n default: 0\n },\n step: {\n type: [Number, String],\n default: 0\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String],\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n thumbSize: {\n type: [Number, String],\n default: 20\n },\n showTicks: {\n type: [Boolean, String],\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n ticks: {\n type: [Array, Object]\n },\n tickSize: {\n type: [Number, String],\n default: 2\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n reverse: Boolean,\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2\n }),\n ripple: {\n type: Boolean,\n default: true\n }\n}, 'Slider');\nexport const useSteps = props => {\n const min = computed(() => parseFloat(props.min));\n const max = computed(() => parseFloat(props.max));\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));\n function roundValue(value) {\n value = parseFloat(value);\n if (step.value <= 0) return value;\n const clamped = clamp(value, min.value, max.value);\n const offset = min.value % step.value;\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));\n }\n return {\n min,\n max,\n step,\n decimals,\n roundValue\n };\n};\nexport const useSlider = _ref => {\n let {\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const isReversed = toRef(props, 'reverse');\n const vertical = computed(() => props.direction === 'vertical');\n const indexFromEnd = computed(() => vertical.value !== isReversed.value);\n const {\n min,\n max,\n step,\n decimals,\n roundValue\n } = steps;\n const thumbSize = computed(() => parseInt(props.thumbSize, 10));\n const tickSize = computed(() => parseInt(props.tickSize, 10));\n const trackSize = computed(() => parseInt(props.trackSize, 10));\n const numTicks = computed(() => (max.value - min.value) / step.value);\n const disabled = toRef(props, 'disabled');\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);\n const mousePressed = shallowRef(false);\n const startOffset = shallowRef(0);\n const trackContainerRef = ref();\n const activeThumbRef = ref();\n function parseMouseMove(e) {\n const vertical = props.direction === 'vertical';\n const start = vertical ? 'top' : 'left';\n const length = vertical ? 'height' : 'width';\n const position = vertical ? 'clientY' : 'clientX';\n const {\n [start]: trackStart,\n [length]: trackLength\n } = trackContainerRef.value?.$el.getBoundingClientRect();\n const clickOffset = getPosition(e, position);\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;\n return roundValue(min.value + clickPos * (max.value - min.value));\n }\n const handleStop = e => {\n onSliderEnd({\n value: parseMouseMove(e)\n });\n mousePressed.value = false;\n startOffset.value = 0;\n };\n const handleStart = e => {\n activeThumbRef.value = getActiveThumb(e);\n if (!activeThumbRef.value) return;\n activeThumbRef.value.focus();\n mousePressed.value = true;\n if (activeThumbRef.value.contains(e.target)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction);\n } else {\n startOffset.value = 0;\n onSliderMove({\n value: parseMouseMove(e)\n });\n }\n onSliderStart({\n value: parseMouseMove(e)\n });\n };\n const moveListenerOptions = {\n passive: true,\n capture: true\n };\n function onMouseMove(e) {\n onSliderMove({\n value: parseMouseMove(e)\n });\n }\n function onSliderMouseUp(e) {\n e.stopPropagation();\n e.preventDefault();\n handleStop(e);\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.removeEventListener('mouseup', onSliderMouseUp);\n }\n function onSliderTouchend(e) {\n handleStop(e);\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.removeEventListener('touchend', onSliderTouchend);\n }\n function onSliderTouchstart(e) {\n handleStart(e);\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.addEventListener('touchend', onSliderTouchend, {\n passive: false\n });\n }\n function onSliderMousedown(e) {\n e.preventDefault();\n handleStart(e);\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.addEventListener('mouseup', onSliderMouseUp, {\n passive: false\n });\n }\n const position = val => {\n const percentage = (val - min.value) / (max.value - min.value) * 100;\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);\n };\n const showTicks = toRef(props, 'showTicks');\n const parsedTicks = computed(() => {\n if (!showTicks.value) return [];\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + t * step.value;\n return {\n value,\n position: position(value)\n };\n }) : [];\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({\n value: t,\n position: position(t),\n label: t.toString()\n }));\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: props.ticks[key]\n }));\n });\n const hasLabels = computed(() => parsedTicks.value.some(_ref2 => {\n let {\n label\n } = _ref2;\n return !!label;\n }));\n const data = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical\n };\n provide(VSliderSymbol, data);\n return data;\n};\n//# sourceMappingURL=slider.mjs.map","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref\n color: Ref\n decimals: Ref\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref\n elevation: Ref\n min: Ref\n max: Ref\n mousePressed: Ref\n numTicks: Ref\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref\n rounded: Ref\n roundValue: (value: number) => number\n thumbLabel: Ref\n showTicks: Ref\n startOffset: Ref\n step: Ref\n thumbSize: Ref\n thumbColor: Ref\n trackColor: Ref\n trackFillColor: Ref\n trackSize: Ref\n ticks: Ref | undefined>\n tickSize: Ref\n trackContainerRef: Ref\n vertical: Ref\n parsedTicks: Ref\n hasLabels: Ref\n isReversed: Ref\n indexFromEnd: Ref\n}\n\nexport const VSliderSymbol: InjectionKey = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref()\n const activeThumbRef = ref()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n onSliderEnd({ value: parseMouseMove(e) })\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n onSliderStart({ value: parseMouseMove(e) })\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(props, 'showTicks')\n const parsedTicks = computed(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSliderTrack.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useRounded } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true\n },\n stop: {\n type: Number,\n required: true\n },\n ...makeComponentProps()\n}, 'VSliderTrack');\nexport const VSliderTrack = genericComponent()({\n name: 'VSliderTrack',\n props: makeVSliderTrackProps(),\n emits: {},\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slider = inject(VSliderSymbol);\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider');\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd\n } = slider;\n const {\n roundedClasses\n } = useRounded(rounded);\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles\n } = useBackgroundColor(trackFillColor);\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles\n } = useBackgroundColor(trackColor);\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`);\n const endDir = computed(() => vertical.value ? 'height' : 'width');\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%'\n };\n });\n const trackFillWidth = computed(() => props.stop - props.start);\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%')\n };\n });\n const computedTicks = computed(() => {\n if (!showTicks.value) return [];\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;\n return _createVNode(\"div\", {\n \"key\": tick.value,\n \"class\": ['v-slider-track__tick', {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value\n }],\n \"style\": {\n [startDir.value]: directionValue\n }\n }, [(tick.label || slots['tick-label']) && _createVNode(\"div\", {\n \"class\": \"v-slider-track__tick-label\"\n }, [slots['tick-label']?.({\n tick,\n index\n }) ?? tick.label])]);\n });\n });\n useRender(() => {\n return _createVNode(\"div\", {\n \"class\": ['v-slider-track', roundedClasses.value, props.class],\n \"style\": [{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-track__background', trackColorClasses.value, {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value\n }],\n \"style\": {\n ...backgroundStyles.value,\n ...trackColorStyles.value\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-slider-track__fill', trackFillColorClasses.value],\n \"style\": {\n ...trackFillStyles.value,\n ...trackFillColorStyles.value\n }\n }, null), showTicks.value && _createVNode(\"div\", {\n \"class\": ['v-slider-track__ticks', {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always'\n }]\n }, [computedTicks.value])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderTrack.mjs.map","// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Tick } from './slider'\n\nexport type VSliderTrackSlots = {\n 'tick-label': { tick: Tick, index: number }\n}\n\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n\n ...makeComponentProps(),\n}, 'VSliderTrack')\n\nexport const VSliderTrack = genericComponent()({\n name: 'VSliderTrack',\n\n props: makeVSliderTrackProps(),\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n = props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [startDir.value]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n
    \n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n
    \n )\n }\n \n )\n })\n })\n\n useRender(() => {\n return (\n \n \n \n\n { showTicks.value && (\n \n { computedTicks.value }\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerSwatches.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast, parseColor, propsFactory, RGBtoCSS, RGBtoHSV, useRender } from \"../../util/index.mjs\";\nimport colors from \"../../util/colors.mjs\"; // Types\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array,\n default: () => parseDefaultColors(colors)\n },\n disabled: Boolean,\n color: Object,\n maxHeight: [Number, String],\n ...makeComponentProps()\n}, 'VColorPickerSwatches');\nfunction parseDefaultColors(colors) {\n return Object.keys(colors).map(key => {\n const color = colors[key];\n return color.base ? [color.base, color.darken4, color.darken3, color.darken2, color.darken1, color.lighten1, color.lighten2, color.lighten3, color.lighten4, color.lighten5] : [color.black, color.white, color.transparent];\n });\n}\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n props: makeVColorPickerSwatchesProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-swatches', props.class],\n \"style\": [{\n maxHeight: convertToUnit(props.maxHeight)\n }, props.style]\n }, [_createVNode(\"div\", null, [props.swatches.map(swatch => _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__swatch\"\n }, [swatch.map(color => {\n const rgba = parseColor(color);\n const hsva = RGBtoHSV(rgba);\n const background = RGBtoCSS(rgba);\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__color\",\n \"onClick\": () => hsva && emit('update:color', hsva)\n }, [_createVNode(\"div\", {\n \"style\": {\n background\n }\n }, [props.color && deepEqual(props.color, hsva) ? _createVNode(VIcon, {\n \"size\": \"x-small\",\n \"icon\": \"$success\",\n \"color\": getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black'\n }, null) : undefined])]);\n })]))])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerSwatches.mjs.map","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport {\n convertToUnit,\n deepEqual,\n defineComponent,\n getContrast,\n parseColor,\n propsFactory,\n RGBtoCSS,\n RGBtoHSV,\n useRender,\n} from '@/util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array as PropType>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType,\n maxHeight: [Number, String],\n\n ...makeComponentProps(),\n}, 'VColorPickerSwatches')\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: makeVColorPickerSwatchesProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n \n
    \n { props.swatches.map(swatch => (\n
    \n { swatch.map(color => {\n const rgba = parseColor(color)\n const hsva = RGBtoHSV(rgba)\n const background = RGBtoCSS(rgba)\n\n return (\n hsva && emit('update:color', hsva) }\n >\n
    \n { props.color && deepEqual(props.color, hsva)\n ? 2 ? 'white' : 'black' } />\n : undefined\n }\n
    \n
    \n )\n })}\n
    \n ))}\n \n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType\n","export const red = {\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000'\n};\nexport const pink = {\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162'\n};\nexport const purple = {\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff'\n};\nexport const deepPurple = {\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea'\n};\nexport const indigo = {\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe'\n};\nexport const blue = {\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff'\n};\nexport const lightBlue = {\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea'\n};\nexport const cyan = {\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4'\n};\nexport const teal = {\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5'\n};\nexport const green = {\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853'\n};\nexport const lightGreen = {\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17'\n};\nexport const lime = {\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00'\n};\nexport const yellow = {\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600'\n};\nexport const amber = {\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00'\n};\nexport const orange = {\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00'\n};\nexport const deepOrange = {\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00'\n};\nexport const brown = {\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723'\n};\nexport const blueGrey = {\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238'\n};\nexport const grey = {\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121'\n};\nexport const shades = {\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00'\n};\nexport default {\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades\n};\n//# sourceMappingURL=colors.mjs.map","export const red = {\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n}\n\nexport const pink = {\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n}\n\nexport const purple = {\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n}\n\nexport const deepPurple = {\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n}\n\nexport const indigo = {\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n}\n\nexport const blue = {\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n}\n\nexport const lightBlue = {\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n}\n\nexport const cyan = {\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n}\n\nexport const teal = {\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n}\n\nexport const green = {\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n}\n\nexport const lightGreen = {\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n}\n\nexport const lime = {\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n}\n\nexport const yellow = {\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n}\n\nexport const amber = {\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n}\n\nexport const orange = {\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n}\n\nexport const deepOrange = {\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n}\n\nexport const brown = {\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n}\n\nexport const blueGrey = {\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n}\n\nexport const grey = {\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n}\n\nexport const shades = {\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00',\n}\n\nexport default {\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n}\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VSheet.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSheetProps = propsFactory({\n color: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSheet');\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n props: makeVSheetProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSheet.mjs.map","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVSheetProps = propsFactory({\n color: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VSheet')\n\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n\n props: makeVSheetProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VSheet = InstanceType\n","export { VCombobox } from \"./VCombobox.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCombobox } from './VCombobox'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VCombobox.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { VTextField } from \"../VTextField/index.mjs\";\nimport { makeVTextFieldProps } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { transformItem, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, isComposingIgnoreKey, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n delimiters: Array,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps({\n hideNoData: true,\n returnObject: true\n }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VCombobox');\nexport const VCombobox = genericComponent()({\n name: 'VCombobox',\n props: makeVComboboxProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:search': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n let cleared = false;\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const form = useForm();\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');\n const search = computed({\n get: () => {\n return _search.value;\n },\n set: val => {\n _search.value = val ?? '';\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)];\n }\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim();\n if (v) select(transformItem(props, v));\n });\n _search.value = '';\n }\n }\n if (!val) selectionIndex.value = -1;\n isPristine.value = !val;\n }\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : props.multiple ? model.value.length : search.value.length;\n });\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => cleared = false);\n } else if (isFocused.value && !menu.value) {\n menu.value = true;\n }\n emit('update:search', value);\n });\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? '';\n }\n });\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n cleared = true;\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown(e) {\n if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(filteredItems.value[0]);\n }\n isPristine.value = true;\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value));\n if (hasSelectionSlot.value) _search.value = '';\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length);\n }\n }\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n _search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return;\n selectionIndex.value = -1;\n menu.value = false;\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value));\n return;\n }\n if (!hasSelectionSlot.value) return;\n if (model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) {\n _search.value = '';\n } else {\n select(transformItem(props, search.value));\n }\n }\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-combobox', {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!hasSelectionSlot.value,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true\n }, props.class],\n \"style\": props.style,\n \"readonly\": props.readonly,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-combobox__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-combobox__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VCombobox.mjs.map","// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { transformItem, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n isComposingIgnoreKey,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n { text.substr(0, matches) }\n { text.substr(matches, length) }\n { text.substr(matches + length) }\n \n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = string | ([T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any))\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType,\n },\n clearOnSelect: {\n type: Boolean,\n default: true,\n },\n delimiters: Array as PropType,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VCombobox = genericComponent,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:search': (value: string) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n let cleared = false\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '')\n\n const search = computed({\n get: () => {\n return _search.value\n },\n set: (val: string | null) => {\n _search.value = val ?? ''\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (props.multiple ? model.value.length : search.value.length)\n })\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus()\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown (e: KeyboardEvent) {\n if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n if (hasSelectionSlot.value) _search.value = ''\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n _search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value))\n return\n }\n\n if (!hasSelectionSlot.value) return\n\n if (model.value.some(({ title }) => title === search.value)) {\n _search.value = ''\n } else {\n select(transformItem(props, search.value))\n }\n }\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n \n { hasChips.value ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n \n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { (!props.hideNoData || props.items.length) && props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType\n","export { VTextField } from \"./VTextField.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTextField } from './VTextField'\n","export { VConfirmEdit } from \"./VConfirmEdit.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VConfirmEdit } from './VConfirmEdit'\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel'\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok'\n }\n}, 'VConfirmEdit');\nexport const VConfirmEdit = genericComponent()({\n name: 'VConfirmEdit',\n props: makeVConfirmEditProps(),\n emits: {\n cancel: () => true,\n save: value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const internalModel = ref();\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value));\n });\n const {\n t\n } = useLocale();\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value);\n });\n function save() {\n model.value = internalModel.value;\n emit('save', internalModel.value);\n }\n function cancel() {\n internalModel.value = structuredClone(toRaw(model.value));\n emit('cancel');\n }\n let actionsUsed = false;\n useRender(() => {\n const actions = _createVNode(_Fragment, null, [_createVNode(VBtn, {\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": cancel,\n \"text\": t(props.cancelText)\n }, null), _createVNode(VBtn, {\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": save,\n \"text\": t(props.okText)\n }, null)]);\n return _createVNode(_Fragment, null, [slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions() {\n actionsUsed = true;\n return actions;\n }\n }), !actionsUsed && actions]);\n });\n return {\n save,\n cancel,\n isPristine\n };\n }\n});\n//# sourceMappingURL=VConfirmEdit.mjs.map","// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref, VNode } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VConfirmEditSlots = {\n default: {\n model: Ref\n save: () => void\n cancel: () => void\n isPristine: boolean\n get actions (): VNode\n }\n}\n\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok',\n },\n}, 'VConfirmEdit')\n\nexport const VConfirmEdit = genericComponent (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n 'onSave'?: (value: T) => void\n },\n slots: VConfirmEditSlots\n) => GenericProps>()({\n name: 'VConfirmEdit',\n\n props: makeVConfirmEditProps(),\n\n emits: {\n cancel: () => true,\n save: (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const internalModel = ref()\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value))\n })\n\n const { t } = useLocale()\n\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value)\n })\n\n function save () {\n model.value = internalModel.value\n emit('save', internalModel.value)\n }\n\n function cancel () {\n internalModel.value = structuredClone(toRaw(model.value))\n emit('cancel')\n }\n\n let actionsUsed = false\n useRender(() => {\n const actions = (\n <>\n \n\n \n \n )\n return (\n <>\n {\n slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions () {\n actionsUsed = true\n return actions\n },\n })\n }\n\n { !actionsUsed && actions }\n \n )\n })\n\n return {\n save,\n cancel,\n isPristine,\n }\n },\n})\n\nexport type VConfirmEdit = InstanceType\n","export { VCounter } from \"./VCounter.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCounter } from './VCounter'\n","export { VDataIterator } from \"./VDataIterator.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDataIterator } from './VDataIterator'\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { makeDataTableExpandProps, provideExpanded } from \"../VDataTable/composables/expand.mjs\";\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"../VDataTable/composables/group.mjs\";\nimport { useOptions } from \"../VDataTable/composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"../VDataTable/composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"../VDataTable/composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"../VDataTable/composables/sort.mjs\"; // Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from \"./composables/items.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { LoaderSlot } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({\n itemsPerPage: 5\n }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition,\n hideOnLeave: true\n }\n })\n}, 'VDataIterator');\nexport const VDataIterator = genericComponent()({\n name: 'VDataIterator',\n props: makeVDataIteratorProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:groupBy': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupBy = useProxiedModel(props, 'groupBy');\n const search = toRef(props, 'search');\n const {\n items\n } = useDataIteratorItems(props);\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.raw\n });\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.raw\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-data-iterator', {\n 'v-data-iterator--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.header?.(slotProps.value), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [props.loading ? _createVNode(LoaderSlot, {\n \"key\": \"loader\",\n \"name\": \"v-data-iterator\",\n \"active\": true\n }, {\n default: slotProps => slots.loader?.(slotProps)\n }) : _createVNode(\"div\", {\n \"key\": \"items\"\n }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]\n }), slots.footer?.(slotProps.value)]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VDataIterator.mjs.map","// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { makeDataTableExpandProps, provideExpanded } from '@/components/VDataTable/composables/expand'\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from '@/components/VDataTable/composables/group'\nimport { useOptions } from '@/components/VDataTable/composables/options'\nimport {\n createPagination,\n makeDataTablePaginateProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/VDataTable/composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from '@/components/VDataTable/composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from '@/components/VDataTable/composables/sort'\n\n// Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from './composables/items'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { LoaderSlot } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { DataIteratorItem } from './composables/items'\nimport type { Group } from '@/components/VDataTable/composables/group'\nimport type { SortItem } from '@/components/VDataTable/composables/sort'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\ntype VDataIteratorSlotProps = {\n page: number\n itemsPerPage: number\n sortBy: readonly SortItem[]\n pageCount: number\n toggleSort: ReturnType['toggleSort']\n prevPage: ReturnType['prevPage']\n nextPage: ReturnType['nextPage']\n setPage: ReturnType['setPage']\n setItemsPerPage: ReturnType['setItemsPerPage']\n isSelected: ReturnType['isSelected']\n select: ReturnType['select']\n selectAll: ReturnType['selectAll']\n toggleSelect: ReturnType['toggleSelect']\n isExpanded: ReturnType['isExpanded']\n toggleExpand: ReturnType['toggleExpand']\n isGroupOpen: ReturnType['isGroupOpen']\n toggleGroup: ReturnType['toggleGroup']\n items: readonly DataIteratorItem[]\n groupedItems: readonly (DataIteratorItem | Group>)[]\n}\n\nexport type VDataIteratorSlots = {\n default: VDataIteratorSlotProps\n header: VDataIteratorSlotProps\n footer: VDataIteratorSlotProps\n loader: LoaderSlotProps\n 'no-data': never\n}\n\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({ itemsPerPage: 5 }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition as Component,\n hideOnLeave: true,\n },\n }),\n}, 'VDataIterator')\n\nexport const VDataIterator = genericComponent (\n props: {\n items?: readonly T[]\n },\n slots: VDataIteratorSlots,\n) => GenericProps>()({\n name: 'VDataIterator',\n\n props: makeVDataIteratorProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:groupBy': (value: any) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const search = toRef(props, 'search')\n\n const { items } = useDataIteratorItems(props)\n const { filteredItems } = useFilter(props, items, search, { transform: item => item.raw })\n\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, { transform: item => item.raw })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const itemsLength = computed(() => flatItems.value.length)\n\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage,\n } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n }))\n\n useRender(() => (\n \n { slots.header?.(slotProps.value) }\n\n \n { props.loading ? (\n \n { slotProps => slots.loader?.(slotProps) }\n \n ) : (\n
    \n { !paginatedItems.value.length\n ? slots['no-data']?.()\n : slots.default?.(slotProps.value)\n }\n
    \n )}\n
    \n\n { slots.footer?.(slotProps.value) }\n \n ))\n\n return {}\n },\n})\n\nexport type VDataIterator = InstanceType\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { inject, provide, toRef } from 'vue';\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-expand');\nexport const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');\nexport function provideExpanded(props) {\n const expandOnClick = toRef(props, 'expandOnClick');\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v);\n }, v => {\n return [...v.values()];\n });\n function expand(item, value) {\n const newExpanded = new Set(expanded.value);\n if (!value) {\n newExpanded.delete(item.value);\n } else {\n newExpanded.add(item.value);\n }\n expanded.value = newExpanded;\n }\n function isExpanded(item) {\n return expanded.value.has(item.value);\n }\n function toggleExpand(item) {\n expand(item, !isExpanded(item));\n }\n const data = {\n expand,\n expanded,\n expandOnClick,\n isExpanded,\n toggleExpand\n };\n provide(VDataTableExpandedKey, data);\n return data;\n}\nexport function useExpanded() {\n const data = inject(VDataTableExpandedKey);\n if (!data) throw new Error('foo');\n return data;\n}\n//# sourceMappingURL=expand.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { inject, provide, toRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'DataTable-expand')\n\nexport const VDataTableExpandedKey: InjectionKey<{\n expand: (item: DataTableItem, value: boolean) => void\n expanded: Ref>\n expandOnClick: Ref\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n}> = Symbol.for('vuetify:datatable:expanded')\n\ntype ExpandProps = {\n expandOnClick: boolean\n expanded: readonly string[]\n 'onUpdate:expanded': ((value: any[]) => void) | undefined\n}\n\nexport function provideExpanded (props: ExpandProps) {\n const expandOnClick = toRef(props, 'expandOnClick')\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function expand (item: DataTableItem, value: boolean) {\n const newExpanded = new Set(expanded.value)\n\n if (!value) {\n newExpanded.delete(item.value)\n } else {\n newExpanded.add(item.value)\n }\n\n expanded.value = newExpanded\n }\n\n function isExpanded (item: DataTableItem) {\n return expanded.value.has(item.value)\n }\n\n function toggleExpand (item: DataTableItem) {\n expand(item, !isExpanded(item))\n }\n\n const data = { expand, expanded, expandOnClick, isExpanded, toggleExpand }\n\n provide(VDataTableExpandedKey, data)\n\n return data\n}\n\nexport function useExpanded () {\n const data = inject(VDataTableExpandedKey)\n\n if (!data) throw new Error('foo')\n\n return data\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { getObjectValueByPath, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-group');\nconst VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');\nexport function createGroupBy(props) {\n const groupBy = useProxiedModel(props, 'groupBy');\n return {\n groupBy\n };\n}\nexport function provideGroupBy(options) {\n const {\n disableSort,\n groupBy,\n sortBy\n } = options;\n const opened = ref(new Set());\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false\n })).concat(disableSort?.value ? [] : sortBy.value);\n });\n function isGroupOpen(group) {\n return opened.value.has(group.id);\n }\n function toggleGroup(group) {\n const newOpened = new Set(opened.value);\n if (!isGroupOpen(group)) newOpened.add(group.id);else newOpened.delete(group.id);\n opened.value = newOpened;\n }\n function extractRows(items) {\n function dive(group) {\n const arr = [];\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item));\n } else {\n arr.push(item);\n }\n }\n return arr;\n }\n return dive({\n type: 'group',\n items,\n id: 'dummy',\n key: 'dummy',\n value: 'dummy',\n depth: 0\n });\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = {\n sortByWithGroups,\n toggleGroup,\n opened,\n groupBy,\n extractRows,\n isGroupOpen\n };\n provide(VDataTableGroupSymbol, data);\n return data;\n}\nexport function useGroupBy() {\n const data = inject(VDataTableGroupSymbol);\n if (!data) throw new Error('Missing group!');\n return data;\n}\nfunction groupItemsByProperty(items, groupBy) {\n if (!items.length) return [];\n const groups = new Map();\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy);\n if (!groups.has(value)) {\n groups.set(value, []);\n }\n groups.get(value).push(item);\n }\n return groups;\n}\nfunction groupItems(items, groupBy) {\n let depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n let prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'root';\n if (!groupBy.length) return [];\n const groupedItems = groupItemsByProperty(items, groupBy[0]);\n const groups = [];\n const rest = groupBy.slice(1);\n groupedItems.forEach((items, value) => {\n const key = groupBy[0];\n const id = `${prefix}_${key}_${value}`;\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group'\n });\n });\n return groups;\n}\nfunction flattenItems(items, opened) {\n const flatItems = [];\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item);\n }\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened));\n }\n } else {\n flatItems.push(item);\n }\n }\n return flatItems;\n}\nexport function useGroupedItems(items, groupBy, opened) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value;\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));\n return flattenItems(groupedItems, opened.value);\n });\n return {\n flatItems\n };\n}\n//# sourceMappingURL=group.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableItem } from '../types'\n\nexport interface GroupableItem {\n type: 'item'\n raw: T\n}\n\nexport interface Group {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'DataTable-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref\n groupBy: Ref\n extractRows: (items: (DataTableItem | Group)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: {\n groupBy: Ref\n sortBy: Ref\n disableSort?: Ref\n}) {\n const { disableSort, groupBy, sortBy } = options\n const opened = ref(new Set())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(disableSort?.value ? [] : sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows (items: readonly (T | Group)[]) {\n function dive (group: Group): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return arr\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems (items: readonly (T | Group)[], opened: Set): readonly (T | Group)[] {\n const flatItems: (T | Group)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened))\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems (\n items: Ref,\n groupBy: Ref,\n opened: Ref>\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value)\n })\n\n return { flatItems }\n}\n","// Utilities\nimport { computed, watch } from 'vue';\nimport { deepEqual, getCurrentInstance } from \"../../../util/index.mjs\"; // Types\nexport function useOptions(_ref) {\n let {\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n } = _ref;\n const vm = getCurrentInstance('VDataTable');\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value\n }));\n let oldOptions = null;\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return;\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== options.value.search) {\n page.value = 1;\n }\n vm.emit('update:options', options.value);\n oldOptions = options.value;\n }, {\n deep: true,\n immediate: true\n });\n}\n//# sourceMappingURL=options.mjs.map","// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n}: {\n page: Ref\n itemsPerPage: Ref\n sortBy: Ref\n groupBy: Ref\n search: Ref\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value,\n }))\n\n let oldOptions: typeof options.value | null = null\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== options.value.search) {\n page.value = 1\n }\n\n vm.emit('update:options', options.value)\n oldOptions = options.value\n }, { deep: true, immediate: true })\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, watch } from 'vue';\nimport { clamp, getCurrentInstance, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n }\n}, 'DataTable-paginate');\nconst VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');\nexport function createPagination(props) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));\n return {\n page,\n itemsPerPage\n };\n}\nexport function providePagination(options) {\n const {\n page,\n itemsPerPage,\n itemsLength\n } = options;\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0;\n return itemsPerPage.value * (page.value - 1);\n });\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value;\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);\n });\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;\n return Math.ceil(itemsLength.value / itemsPerPage.value);\n });\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value;\n }\n });\n function setItemsPerPage(value) {\n itemsPerPage.value = value;\n page.value = 1;\n }\n function nextPage() {\n page.value = clamp(page.value + 1, 1, pageCount.value);\n }\n function prevPage() {\n page.value = clamp(page.value - 1, 1, pageCount.value);\n }\n function setPage(value) {\n page.value = clamp(value, 1, pageCount.value);\n }\n const data = {\n page,\n itemsPerPage,\n startIndex,\n stopIndex,\n pageCount,\n itemsLength,\n nextPage,\n prevPage,\n setPage,\n setItemsPerPage\n };\n provide(VDataTablePaginationSymbol, data);\n return data;\n}\nexport function usePagination() {\n const data = inject(VDataTablePaginationSymbol);\n if (!data) throw new Error('Missing pagination!');\n return data;\n}\nexport function usePaginatedItems(options) {\n const vm = getCurrentInstance('usePaginatedItems');\n const {\n items,\n startIndex,\n stopIndex,\n itemsPerPage\n } = options;\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value;\n return items.value.slice(startIndex.value, stopIndex.value);\n });\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val);\n });\n return {\n paginatedItems\n };\n}\n//# sourceMappingURL=paginate.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watch } from 'vue'\nimport { clamp, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group } from './group'\nimport type { EventProp } from '@/util'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'DataTable-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref\n itemsPerPage: Ref\n startIndex: Ref\n stopIndex: Ref\n pageCount: Ref\n itemsLength: Ref\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': EventProp | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': EventProp | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref\n itemsPerPage: Ref\n itemsLength: Ref\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (options: {\n items: Ref)[]>\n startIndex: Ref\n stopIndex: Ref\n itemsPerPage: Ref\n}) {\n const vm = getCurrentInstance('usePaginatedItems')\n\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val)\n })\n\n return { paginatedItems }\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide } from 'vue';\nimport { deepEqual, propsFactory, wrapInArray } from \"../../../util/index.mjs\"; // Types\nconst singleSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: _ref => {\n let {\n items,\n value\n } = _ref;\n return new Set(value ? [items[0]?.value] : []);\n },\n selectAll: _ref2 => {\n let {\n selected\n } = _ref2;\n return selected;\n }\n};\nconst pageSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref3 => {\n let {\n currentPage\n } = _ref3;\n return currentPage;\n },\n select: _ref4 => {\n let {\n items,\n value,\n selected\n } = _ref4;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref5 => {\n let {\n value,\n currentPage,\n selected\n } = _ref5;\n return pageSelectStrategy.select({\n items: currentPage,\n value,\n selected\n });\n }\n};\nconst allSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref6 => {\n let {\n allItems\n } = _ref6;\n return allItems;\n },\n select: _ref7 => {\n let {\n items,\n value,\n selected\n } = _ref7;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref8 => {\n let {\n value,\n allItems,\n selected\n } = _ref8;\n return allSelectStrategy.select({\n items: allItems,\n value,\n selected\n });\n }\n};\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object],\n default: 'page'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n valueComparator: {\n type: Function,\n default: deepEqual\n }\n}, 'DataTable-select');\nexport const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');\nexport function provideSelection(props, _ref9) {\n let {\n allItems,\n currentPage\n } = _ref9;\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v;\n }));\n }, v => {\n return [...v.values()];\n });\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable));\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n switch (props.selectStrategy) {\n case 'single':\n return singleSelectStrategy;\n case 'all':\n return allSelectStrategy;\n case 'page':\n default:\n return pageSelectStrategy;\n }\n });\n function isSelected(items) {\n return wrapInArray(items).every(item => selected.value.has(item.value));\n }\n function isSomeSelected(items) {\n return wrapInArray(items).some(item => selected.value.has(item.value));\n }\n function select(items, value) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n function toggleSelect(item) {\n select([item], !isSelected([item]));\n }\n function selectAll(value) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n const someSelected = computed(() => selected.value.size > 0);\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value\n });\n return !!items.length && isSelected(items);\n });\n const showSelectAll = computed(() => selectStrategy.value.showSelectAll);\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll\n };\n provide(VDataTableSelectionSymbol, data);\n return data;\n}\nexport function useSelection() {\n const data = inject(VDataTableSelectionSymbol);\n if (!data) throw new Error('Missing selection!');\n return data;\n}\n//# sourceMappingURL=select.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set\n }) => Set\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set\n }) => Set\n}\n\ntype SelectionProps = Pick & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref, currentPage: Ref }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = computed(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n","// Composables\nimport { useLocale } from \"../../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, toRef } from 'vue';\nimport { getObjectValueByPath, isEmpty, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array,\n default: () => []\n },\n customKeySort: Object,\n multiSort: Boolean,\n mustSort: Boolean\n}, 'DataTable-sort');\nconst VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');\nexport function createSort(props) {\n const sortBy = useProxiedModel(props, 'sortBy');\n const mustSort = toRef(props, 'mustSort');\n const multiSort = toRef(props, 'multiSort');\n return {\n sortBy,\n mustSort,\n multiSort\n };\n}\nexport function provideSort(options) {\n const {\n sortBy,\n mustSort,\n multiSort,\n page\n } = options;\n const toggleSort = column => {\n if (column.key == null) return;\n let newSortBy = sortBy.value.map(x => ({\n ...x\n })) ?? [];\n const item = newSortBy.find(x => x.key === column.key);\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, {\n key: column.key,\n order: 'asc'\n }];else newSortBy = [{\n key: column.key,\n order: 'asc'\n }];\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc';\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key);\n }\n } else {\n item.order = 'desc';\n }\n sortBy.value = newSortBy;\n if (page) page.value = 1;\n };\n function isSorted(column) {\n return !!sortBy.value.find(item => item.key === column.key);\n }\n const data = {\n sortBy,\n toggleSort,\n isSorted\n };\n provide(VDataTableSortSymbol, data);\n return data;\n}\nexport function useSort() {\n const data = inject(VDataTableSortSymbol);\n if (!data) throw new Error('Missing sort!');\n return data;\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems(props, items, sortBy, options) {\n const locale = useLocale();\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value;\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value\n },\n sortRawFunctions: options?.sortRawFunctions?.value\n });\n });\n return {\n sortedItems\n };\n}\nexport function sortItems(items, sortByItems, locale, options) {\n const stringCollator = new Intl.Collator(locale, {\n sensitivity: 'accent',\n usage: 'sort'\n });\n const transformedItems = items.map(item => [item, options?.transform ? options.transform(item) : item]);\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false;\n const sortKey = sortByItems[i].key;\n const sortOrder = sortByItems[i].order ?? 'asc';\n if (sortOrder === false) continue;\n let sortA = getObjectValueByPath(a[1], sortKey);\n let sortB = getObjectValueByPath(b[1], sortKey);\n let sortARaw = a[0].raw;\n let sortBRaw = b[0].raw;\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA];\n [sortARaw, sortBRaw] = [sortBRaw, sortARaw];\n }\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (hasCustomResult) continue;\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime();\n }\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0;\n if (isEmpty(sortA)) return -1;\n if (isEmpty(sortB)) return 1;\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);\n return stringCollator.compare(sortA, sortB);\n }\n }\n return 0;\n }).map(_ref => {\n let [item] = _ref;\n return item;\n });\n}\n//# sourceMappingURL=sort.mjs.map","// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, isEmpty, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\nimport type { InternalItem } from '@/composables/filter'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType,\n default: () => ([]),\n },\n customKeySort: Object as PropType>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref\n mustSort: Ref\n multiSort: Ref\n page?: Ref\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n if (column.key == null) return\n\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems (\n props: {\n customKeySort: Record | undefined\n },\n items: Ref,\n sortBy: Ref,\n options?: {\n transform?: (item: T) => {}\n sortFunctions?: Ref | undefined>\n sortRawFunctions?: Ref | undefined>\n },\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value,\n },\n sortRawFunctions: options?.sortRawFunctions?.value,\n })\n })\n\n return { sortedItems }\n}\n\nexport function sortItems (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n options?: {\n transform?: (item: T) => Record\n sortFunctions?: Record\n sortRawFunctions?: Record\n },\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n const transformedItems = items.map(item => (\n [item, options?.transform ? options.transform(item) : item as never] as const)\n )\n\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a[1], sortKey)\n let sortB = getObjectValueByPath(b[1], sortKey)\n let sortARaw = a[0].raw\n let sortBRaw = b[0].raw\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n ;[sortARaw, sortBRaw] = [sortBRaw, sortARaw]\n }\n\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (hasCustomResult) continue\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0\n if (isEmpty(sortA)) return -1\n if (isEmpty(sortB)) return 1\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n }).map(([item]) => item)\n}\n","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataIteratorItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n returnObject: Boolean\n}, 'DataIterator-items');\nexport function transformItem(props, item) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n return {\n type: 'item',\n value,\n selectable,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useDataIteratorItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GroupableItem } from '@/components/VDataTable/composables/group'\nimport type { SelectableItem } from '@/components/VDataTable/composables/select'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataIteratorItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\nexport interface DataIteratorItem extends GroupableItem, SelectableItem {\n value: unknown\n}\n\n// Composables\nexport const makeDataIteratorItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType,\n default: null,\n },\n returnObject: Boolean,\n}, 'DataIterator-items')\n\nexport function transformItem (\n props: Omit,\n item: any\n): DataIteratorItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n\n return {\n type: 'item',\n value,\n selectable,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit,\n items: DataIteratorItemProps['items']\n) {\n const array: DataIteratorItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useDataIteratorItems (props: DataIteratorItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n","export { VDataTable } from \"./VDataTable.mjs\";\nexport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nexport { VDataTableFooter } from \"./VDataTableFooter.mjs\";\nexport { VDataTableRows } from \"./VDataTableRows.mjs\";\nexport { VDataTableRow } from \"./VDataTableRow.mjs\";\nexport { VDataTableVirtual } from \"./VDataTableVirtual.mjs\";\nexport { VDataTableServer } from \"./VDataTableServer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDataTable } from './VDataTable'\nexport { VDataTableHeaders } from './VDataTableHeaders'\nexport { VDataTableFooter } from './VDataTableFooter'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VDataTable.css\";\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { makeVDataTableRowsProps, VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVTableProps, VTable } from \"../VTable/VTable.mjs\"; // Composables\nimport { makeDataTableExpandProps, provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders, makeDataTableHeaderProps } from \"./composables/headers.mjs\";\nimport { makeDataTableItemsProps, useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"./composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"./composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\"; // Utilities\nimport { computed, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps()\n}, 'DataTable');\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTable');\nexport const VDataTable = genericComponent()({\n name: 'VDataTable',\n props: makeVDataTableProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": paginatedItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTable.mjs.map","// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef, toRefs } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef['sortBy']>\n pageCount: number\n toggleSort: ReturnType['toggleSort']\n setItemsPerPage: ReturnType['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType['isSelected']\n select: ReturnType['select']\n selectAll: ReturnType['selectAll']\n toggleSelect: ReturnType['toggleSelect']\n isExpanded: ReturnType['isExpanded']\n toggleExpand: ReturnType['toggleExpand']\n isGroupOpen: ReturnType['isGroupOpen']\n toggleGroup: ReturnType['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem | Group>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n default: VDataTableSlotProps\n colgroup: VDataTableSlotProps\n top: VDataTableSlotProps\n body: VDataTableSlotProps\n tbody: VDataTableSlotProps\n thead: VDataTableSlotProps\n tfoot: VDataTableSlotProps\n bottom: VDataTableSlotProps\n 'body.prepend': VDataTableSlotProps\n 'body.append': VDataTableSlotProps\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n headers?: DeepReadonly>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots>,\n) => GenericProps>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n \n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n \n )}\n { slots['body.append']?.(slotProps.value) }\n \n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n \n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n \n\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDataTableFooter.css\";\n\n// Components\nimport { VPagination } from \"../VPagination/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { usePagination } from \"./composables/paginate.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText'\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText'\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage'\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage'\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage'\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage'\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => [{\n value: 10,\n title: '10'\n }, {\n value: 25,\n title: '25'\n }, {\n value: 50,\n title: '50'\n }, {\n value: 100,\n title: '100'\n }, {\n value: -1,\n title: '$vuetify.dataFooter.itemsPerPageAll'\n }]\n },\n showCurrentPage: Boolean\n}, 'VDataTableFooter');\nexport const VDataTableFooter = genericComponent()({\n name: 'VDataTableFooter',\n props: makeVDataTableFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n page,\n pageCount,\n startIndex,\n stopIndex,\n itemsLength,\n itemsPerPage,\n setItemsPerPage\n } = usePagination();\n const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1 ? t('$vuetify.dataFooter.itemsPerPageAll') : String(option)\n };\n }\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title)\n };\n }));\n useRender(() => {\n const paginationProps = VPagination.filterProps(props);\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-footer\"\n }, [slots.prepend?.(), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__items-per-page\"\n }, [_createVNode(\"span\", null, [t(props.itemsPerPageText)]), _createVNode(VSelect, {\n \"items\": itemsPerPageOptions.value,\n \"modelValue\": itemsPerPage.value,\n \"onUpdate:modelValue\": v => setItemsPerPage(Number(v)),\n \"density\": \"compact\",\n \"variant\": \"outlined\",\n \"hide-details\": true\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__info\"\n }, [_createVNode(\"div\", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__pagination\"\n }, [_createVNode(VPagination, _mergeProps({\n \"modelValue\": page.value,\n \"onUpdate:modelValue\": $event => page.value = $event,\n \"density\": \"comfortable\",\n \"first-aria-label\": props.firstPageLabel,\n \"last-aria-label\": props.lastPageLabel,\n \"length\": pageCount.value,\n \"next-aria-label\": props.nextPageLabel,\n \"previous-aria-label\": props.prevPageLabel,\n \"rounded\": true,\n \"show-first-last-page\": true,\n \"total-visible\": props.showCurrentPage ? 1 : 0,\n \"variant\": \"plain\"\n }, paginationProps), null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableFooter.mjs.map","// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n
    \n { slots.prepend?.() }\n\n \n\n \n\n \n
    \n )\n })\n\n return {}\n },\n})\n","export { VPagination } from \"./VPagination.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VPagination } from './VPagination'\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VPagination.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeBorderProps } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useRefs } from \"../../composables/refs.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue';\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1\n },\n modelValue: {\n type: Number,\n default: props => props.start\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: val => val % 1 === 0\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root'\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page'\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage'\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first'\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous'\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next'\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last'\n },\n ellipsis: {\n type: String,\n default: '...'\n },\n showFirstLastPage: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VPagination');\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n props: makeVPaginationProps(),\n emits: {\n 'update:modelValue': value => true,\n first: value => true,\n prev: value => true,\n next: value => true,\n last: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const page = useProxiedModel(props, 'modelValue');\n const {\n t,\n n\n } = useLocale();\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n width\n } = useDisplay();\n const maxButtons = shallowRef(-1);\n provideDefaults(undefined, {\n scoped: true\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n const {\n target,\n contentRect\n } = entries[0];\n const firstItem = target.querySelector('.v-pagination__list > *');\n if (!firstItem) return;\n const totalWidth = contentRect.width;\n const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n maxButtons.value = getMax(totalWidth, itemWidth);\n });\n const length = computed(() => parseInt(props.length, 10));\n const start = computed(() => parseInt(props.start, 10));\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;\n return getMax(width.value, 58);\n });\n function getMax(totalWidth, itemWidth) {\n const minButtons = props.showFirstLastPage ? 5 : 3;\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));\n }\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];\n if (totalVisible.value <= 0) return [];else if (totalVisible.value === 1) return [page.value];\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];\n }\n });\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue(e, value, event) {\n e.preventDefault();\n page.value = value;\n event && emit(event, value);\n }\n const {\n refs,\n updateRef\n } = useRefs();\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation')\n }\n });\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = e => updateRef(e, index);\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true\n }\n };\n } else {\n const isActive = item === page.value;\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: e => setValue(e, item)\n }\n };\n }\n });\n });\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: e => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: e => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: e => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: e => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled\n } : undefined\n };\n });\n function updateFocus() {\n const currentIndex = page.value - start.value;\n refs.value[currentIndex]?.$el.focus();\n }\n function onKeydown(e) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1;\n nextTick(updateFocus);\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1;\n nextTick(updateFocus);\n }\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-pagination', themeClasses.value, props.class],\n \"style\": props.style,\n \"role\": \"navigation\",\n \"aria-label\": t(props.ariaLabel),\n \"onKeydown\": onKeydown,\n \"data-test\": \"v-pagination-root\"\n }, {\n default: () => [_createVNode(\"ul\", {\n \"class\": \"v-pagination__list\"\n }, [props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"first\",\n \"class\": \"v-pagination__first\",\n \"data-test\": \"v-pagination-first\"\n }, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.first), null)]), _createVNode(\"li\", {\n \"key\": \"prev\",\n \"class\": \"v-pagination__prev\",\n \"data-test\": \"v-pagination-prev\"\n }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.prev), null)]), items.value.map((item, index) => _createVNode(\"li\", {\n \"key\": item.key,\n \"class\": ['v-pagination__item', {\n 'v-pagination__item--is-active': item.isActive\n }],\n \"data-test\": \"v-pagination-item\"\n }, [slots.item ? slots.item(item) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, item.props), {\n default: () => [item.page]\n })])), _createVNode(\"li\", {\n \"key\": \"next\",\n \"class\": \"v-pagination__next\",\n \"data-test\": \"v-pagination-next\"\n }, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.next), null)]), props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"last\",\n \"class\": \"v-pagination__last\",\n \"data-test\": \"v-pagination-last\"\n }, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.last), null)])])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VPagination.mjs.map","// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue'\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\ntype ItemSlot = {\n isActive: boolean\n key: string | number\n page: string\n props: Record\n}\n\ntype ControlSlot = {\n icon: IconValue\n onClick: (e: Event) => void\n disabled: boolean\n 'aria-label': string\n 'aria-disabled': boolean\n}\n\nexport type VPaginationSlots = {\n item: ItemSlot\n first: ControlSlot\n prev: ControlSlot\n next: ControlSlot\n last: ControlSlot\n}\n\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VPagination')\n\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n\n props: makeVPaginationProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { width } = useDisplay()\n const maxButtons = shallowRef(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n\n maxButtons.value = getMax(totalWidth, itemWidth)\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return getMax(width.value, 58)\n })\n\n function getMax (totalWidth: number, itemWidth: number) {\n const minButtons = props.showFirstLastPage ? 5 : 3\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n }\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 0) return []\n else if (totalVisible.value === 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n \n
      \n { props.showFirstLastPage && (\n
    • \n { slots.first ? slots.first(controls.value.first!) : (\n \n )}\n
    • \n )}\n\n
    • \n { slots.prev ? slots.prev(controls.value.prev) : (\n \n )}\n
    • \n\n { items.value.map((item, index) => (\n \n { slots.item ? slots.item(item) : (\n { item.page }\n )}\n \n ))}\n\n \n { slots.next ? slots.next(controls.value.next) : (\n \n )}\n \n\n { props.showFirstLastPage && (\n \n { slots.last ? slots.last(controls.value.last!) : (\n \n )}\n \n )}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType\n","// Utilities\nimport { onBeforeUpdate, ref } from 'vue';\n\n// Types\n\nexport function useRefs() {\n const refs = ref([]);\n onBeforeUpdate(() => refs.value = []);\n function updateRef(e, i) {\n refs.value[i] = e;\n }\n return {\n refs,\n updateRef\n };\n}\n//# sourceMappingURL=refs.mjs.map","// Utilities\nimport { onBeforeUpdate, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useRefs () {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>\n\n onBeforeUpdate(() => (refs.value = []))\n\n function updateRef (e: any, i: number) {\n refs.value[i] = e\n }\n\n return { refs, updateRef }\n}\n","export { VSelect } from \"./VSelect.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelect } from './VSelect'\n","import { resolveDirective as _resolveDirective, Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed, mergeProps } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n sticky: Boolean,\n disableSort: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc'\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc'\n },\n headerProps: {\n type: Object\n },\n ...makeDisplayProps(),\n ...makeLoaderProps()\n}, 'VDataTableHeaders');\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n props: makeVDataTableHeadersProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n someSelected,\n allSelected,\n selectAll,\n showSelectAll\n } = useSelection();\n const {\n columns,\n headers\n } = useHeaders();\n const {\n loaderClasses\n } = useLoader(props);\n function getFixedStyles(column, y) {\n if (!props.sticky && !column.fixed) return undefined;\n return {\n position: 'sticky',\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined\n };\n }\n function getSortIcon(column) {\n const item = sortBy.value.find(item => item.key === column.key);\n if (!item) return props.sortAscIcon;\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;\n }\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon\n }));\n const headerCellClasses = computed(() => ['v-data-table__th', {\n 'v-data-table__th--sticky': props.sticky\n }, displayClasses.value, loaderClasses.value]);\n const VDataTableHeaderCell = _ref2 => {\n let {\n column,\n x,\n y\n } = _ref2;\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {});\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"align\": column.align,\n \"class\": [{\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed\n }, ...headerCellClasses.value],\n \"style\": {\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y)\n },\n \"colspan\": column.colspan,\n \"rowspan\": column.rowspan,\n \"onClick\": column.sortable ? () => toggleSort(column) : undefined,\n \"fixed\": column.fixed,\n \"nowrap\": column.nowrap,\n \"lastFixed\": column.lastFixed,\n \"noPadding\": noPadding\n }, headerProps), {\n default: () => {\n const columnSlotName = `header.${column.key}`;\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon\n };\n if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {\n \"modelValue\": allSelected.value,\n \"indeterminate\": someSelected.value && !allSelected.value,\n \"onUpdate:modelValue\": selectAll\n }, null));\n }\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(\"span\", null, [column.title]), column.sortable && !props.disableSort && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"class\": \"v-data-table-header__sort-icon\",\n \"icon\": getSortIcon(column)\n }, null), props.multiSort && isSorted(column) && _createVNode(\"div\", {\n \"key\": \"badge\",\n \"class\": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value\n }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);\n }\n });\n };\n const VDataTableMobileHeaderCell = () => {\n const headerProps = mergeProps(props.headerProps ?? {} ?? {});\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort);\n });\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');\n if (showSelectColumn == null) return;\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';\n });\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"class\": [...headerCellClasses.value],\n \"colspan\": headers.value.length + 1\n }, headerProps), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(VSelect, {\n \"chips\": true,\n \"class\": \"v-data-table__td-sort-select\",\n \"clearable\": true,\n \"density\": \"default\",\n \"items\": displayItems.value,\n \"label\": t('$vuetify.dataTable.sortBy'),\n \"multiple\": props.multiSort,\n \"variant\": \"underlined\",\n \"onClick:clear\": () => sortBy.value = [],\n \"appendIcon\": appendIcon.value,\n \"onClick:append\": () => selectAll(!allSelected.value)\n }, {\n ...slots,\n chip: props => _createVNode(VChip, {\n \"onClick\": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, {\n default: () => [props.item.title, _createVNode(VIcon, {\n \"class\": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],\n \"icon\": getSortIcon(props.item.raw),\n \"size\": \"small\"\n }, null)]\n })\n })])]\n });\n };\n useRender(() => {\n return mobile.value ? _createVNode(\"tr\", null, [_createVNode(VDataTableMobileHeaderCell, null, null)]) : _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode(\"tr\", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {\n \"column\": column,\n \"x\": x,\n \"y\": y\n }, null))])), props.loading && _createVNode(\"tr\", {\n \"class\": \"v-data-table-progress\"\n }, [_createVNode(\"th\", {\n \"colspan\": columns.value.length\n }, [_createVNode(LoaderSlot, {\n \"name\": \"v-data-table-progress\",\n \"absolute\": true,\n \"active\": true,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true\n }, {\n default: slots.loader\n })])])]);\n });\n }\n});\n//# sourceMappingURL=VDataTableHeaders.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef['sortBy']>\n someSelected: UnwrapRef['someSelected']>\n allSelected: UnwrapRef['allSelected']>\n toggleSort: ReturnType['toggleSort']\n selectAll: ReturnType['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType['selectAll']\n isSorted: ReturnType['isSorted']\n toggleSort: ReturnType['toggleSort']\n sortBy: UnwrapRef['sortBy']>\n someSelected: UnwrapRef['someSelected']>\n allSelected: UnwrapRef['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n sticky: Boolean,\n disableSort: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType>,\n },\n\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!props.sticky && !column.fixed) return undefined\n\n return {\n position: 'sticky',\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': props.sticky,\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n toggleSort(column) : undefined }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\n \n ))\n }\n\n return (\n
    \n { column.title }\n { column.sortable && !props.disableSort && (\n \n )}\n { props.multiSort && isSorted(column) && (\n \n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n
    \n )}\n \n )\n },\n }}\n \n )\n }\n\n const VDataTableMobileHeaderCell = () => {\n const headerProps = mergeProps(props.headerProps ?? {} ?? {})\n\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select')\n\n if (showSelectColumn == null) return\n\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff'\n })\n\n return (\n \n
    \n sortBy.value = [] }\n appendIcon={ appendIcon.value }\n onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n ...slots,\n chip: props => (\n toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n \n \n ),\n }}\n \n
    \n \n )\n }\n\n useRender(() => {\n return mobile.value ? (\n \n \n \n ) : (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n \n { row.map((column, x) => (\n \n ))}\n \n ))}\n\n { props.loading && (\n \n \n \n \n \n )}\n \n )\n })\n },\n})\n\nexport type VDataTableHeaders = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { convertToUnit, defineFunctionalComponent } from \"../../util/index.mjs\"; // Types\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String,\n default: 'start'\n },\n fixed: Boolean,\n fixedOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n noPadding: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean\n}, (props, _ref) => {\n let {\n slots\n } = _ref;\n const Tag = props.tag ?? 'td';\n return _createVNode(Tag, {\n \"class\": ['v-data-table__td', {\n 'v-data-table-column--fixed': props.fixed,\n 'v-data-table-column--last-fixed': props.lastFixed,\n 'v-data-table-column--no-padding': props.noPadding,\n 'v-data-table-column--nowrap': props.nowrap\n }, `v-data-table-column--align-${props.align}`],\n \"style\": {\n height: convertToUnit(props.height),\n width: convertToUnit(props.width),\n maxWidth: convertToUnit(props.maxWidth),\n left: convertToUnit(props.fixedOffset || null)\n }\n }, {\n default: () => [slots.default?.()]\n });\n});\n//# sourceMappingURL=VDataTableColumn.mjs.map","// Utilities\nimport { convertToUnit, defineFunctionalComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'start',\n },\n fixed: Boolean,\n fixedOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n noPadding: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean,\n}, (props, { slots }) => {\n const Tag = props.tag ?? 'td'\n return (\n \n { slots.default?.() }\n \n )\n})\n","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue';\nimport { consoleError, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array\n}, 'DataTable-header');\nexport const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');\nconst defaultHeader = {\n title: '',\n sortable: false\n};\nconst defaultActionHeader = {\n ...defaultHeader,\n width: 48\n};\nfunction priorityQueue() {\n let arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n const queue = arr.map(element => ({\n element,\n priority: 0\n }));\n return {\n enqueue: (element, priority) => {\n let added = false;\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n if (item.priority > priority) {\n queue.splice(i, 0, {\n element,\n priority\n });\n added = true;\n break;\n }\n }\n if (!added) queue.push({\n element,\n priority\n });\n },\n size: () => queue.length,\n count: () => {\n let count = 0;\n if (!queue.length) return 0;\n const whole = Math.floor(queue[0].priority);\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1;\n }\n return count;\n },\n dequeue: () => {\n return queue.shift();\n }\n };\n}\nfunction extractLeaves(item) {\n let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (!item.children) {\n columns.push(item);\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns);\n }\n }\n return columns;\n}\nfunction extractKeys(headers) {\n let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n for (const item of headers) {\n if (item.key) keys.add(item.key);\n if (item.children) {\n extractKeys(item.children, keys);\n }\n }\n return keys;\n}\nfunction getDefaultItem(item) {\n if (!item.key) return undefined;\n if (item.key === 'data-table-group') return defaultHeader;\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader;\n return undefined;\n}\nfunction getDepth(item) {\n let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item.children) return depth;\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)));\n}\nfunction parseFixedColumns(items) {\n let seenFixed = false;\n function setFixed(item) {\n let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!item) return;\n if (parentFixed) {\n item.fixed = true;\n }\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true);\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true;\n } else if (isNaN(+item.width)) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);\n }\n seenFixed = true;\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i]);\n }\n } else {\n seenFixed = false;\n }\n }\n }\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i]);\n }\n function setFixedOffset(item) {\n let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item) return fixedOffset;\n if (item.children) {\n item.fixedOffset = fixedOffset;\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset);\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset;\n fixedOffset += parseFloat(item.width || '0') || 0;\n }\n return fixedOffset;\n }\n let fixedOffset = 0;\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset);\n }\n}\nfunction parse(items, maxDepth) {\n const headers = [];\n let currentDepth = 0;\n const queue = priorityQueue(items);\n while (queue.size() > 0) {\n let rowSize = queue.count();\n const row = [];\n let fraction = 1;\n while (rowSize > 0) {\n const {\n element: item,\n priority\n } = queue.dequeue();\n const diff = maxDepth - currentDepth - getDepth(item);\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1\n });\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + fraction / Math.pow(10, currentDepth + 2);\n queue.enqueue(child, currentDepth + diff + sort);\n }\n }\n fraction += 1;\n rowSize -= 1;\n }\n currentDepth += 1;\n headers.push(row);\n }\n const columns = items.map(item => extractLeaves(item)).flat();\n return {\n columns,\n headers\n };\n}\nfunction convertToInternalHeaders(items) {\n const internalHeaders = [];\n for (const item of items) {\n const defaultItem = {\n ...getDefaultItem(item),\n ...item\n };\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null);\n const value = defaultItem.value ?? key ?? null;\n const internalItem = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined\n };\n internalHeaders.push(internalItem);\n }\n return internalHeaders;\n}\nexport function createHeaders(props, options) {\n const headers = ref([]);\n const columns = ref([]);\n const sortFunctions = ref({});\n const sortRawFunctions = ref({});\n const filterFunctions = ref({});\n watchEffect(() => {\n const _headers = props.headers || Object.keys(props.items[0] ?? {}).map(key => ({\n key,\n title: capitalize(key)\n }));\n const items = _headers.slice();\n const keys = extractKeys(items);\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({\n key: 'data-table-group',\n title: 'Group'\n });\n }\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({\n key: 'data-table-select'\n });\n }\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({\n key: 'data-table-expand'\n });\n }\n const internalHeaders = convertToInternalHeaders(items);\n parseFixedColumns(internalHeaders);\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1;\n const parsed = parse(internalHeaders, maxDepth);\n headers.value = parsed.headers;\n columns.value = parsed.columns;\n const flatHeaders = parsed.headers.flat(1);\n for (const header of flatHeaders) {\n if (!header.key) continue;\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort;\n }\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw;\n }\n }\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter;\n }\n }\n });\n const data = {\n headers,\n columns,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n };\n provide(VDataTableHeadersSymbol, data);\n return data;\n}\nexport function useHeaders() {\n const data = inject(VDataTableHeadersSymbol);\n if (!data) throw new Error('Missing headers!');\n return data;\n}\n//# sourceMappingURL=headers.mjs.map","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue'\nimport { consoleError, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableCompareFunction, DataTableHeader, InternalDataTableHeader } from '../types'\nimport type { FilterKeyFunctions } from '@/composables/filter'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array as PropType>,\n}, 'DataTable-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref\n columns: Ref\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly | undefined\n items: any[]\n}\n\nconst defaultHeader = { title: '', sortable: false }\nconst defaultActionHeader = { ...defaultHeader, width: 48 }\n\nfunction priorityQueue (arr: T[] = []) {\n const queue: { element: T, priority: number }[] = arr.map(element => ({ element, priority: 0 }))\n\n return {\n enqueue: (element: T, priority: number) => {\n let added = false\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i]\n if (item.priority > priority) {\n queue.splice(i, 0, { element, priority })\n added = true\n break\n }\n }\n\n if (!added) queue.push({ element, priority })\n },\n size: () => queue.length,\n count: () => {\n let count = 0\n\n if (!queue.length) return 0\n\n const whole = Math.floor(queue[0].priority)\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1\n }\n\n return count\n },\n dequeue: () => {\n return queue.shift()\n },\n }\n}\n\nfunction extractLeaves (item: InternalDataTableHeader, columns: InternalDataTableHeader[] = []) {\n if (!item.children) {\n columns.push(item)\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns)\n }\n }\n\n return columns\n}\n\nfunction extractKeys (headers: DeepReadonly, keys = new Set()) {\n for (const item of headers) {\n if (item.key) keys.add(item.key)\n\n if (item.children) {\n extractKeys(item.children, keys)\n }\n }\n\n return keys\n}\n\nfunction getDefaultItem (item: DeepReadonly) {\n if (!item.key) return undefined\n if (item.key === 'data-table-group') return defaultHeader\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader\n return undefined\n}\n\nfunction getDepth (item: InternalDataTableHeader, depth = 0): number {\n if (!item.children) return depth\n\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)))\n}\n\nfunction parseFixedColumns (items: InternalDataTableHeader[]) {\n let seenFixed = false\n function setFixed (item: InternalDataTableHeader, parentFixed = false) {\n if (!item) return\n\n if (parentFixed) {\n item.fixed = true\n }\n\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true)\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true\n } else if (isNaN(+item.width!)) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`)\n }\n seenFixed = true\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i])\n }\n } else {\n seenFixed = false\n }\n }\n }\n\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i])\n }\n\n function setFixedOffset (item: InternalDataTableHeader, fixedOffset = 0) {\n if (!item) return fixedOffset\n\n if (item.children) {\n item.fixedOffset = fixedOffset\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset)\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset\n fixedOffset += parseFloat(item.width || '0') || 0\n }\n\n return fixedOffset\n }\n\n let fixedOffset = 0\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset)\n }\n}\n\nfunction parse (items: InternalDataTableHeader[], maxDepth: number) {\n const headers: InternalDataTableHeader[][] = []\n let currentDepth = 0\n const queue = priorityQueue(items)\n\n while (queue.size() > 0) {\n let rowSize = queue.count()\n const row: InternalDataTableHeader[] = []\n let fraction = 1\n while (rowSize > 0) {\n const { element: item, priority } = queue.dequeue()!\n const diff = maxDepth - currentDepth - getDepth(item)\n\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1,\n })\n\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + (fraction / Math.pow(10, currentDepth + 2))\n queue.enqueue(child, currentDepth + diff + sort)\n }\n }\n\n fraction += 1\n rowSize -= 1\n }\n currentDepth += 1\n headers.push(row)\n }\n\n const columns = items.map(item => extractLeaves(item)).flat()\n\n return { columns, headers }\n}\n\nfunction convertToInternalHeaders (items: DeepReadonly) {\n const internalHeaders: InternalDataTableHeader[] = []\n for (const item of items) {\n const defaultItem = { ...getDefaultItem(item), ...item }\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null)\n const value = defaultItem.value ?? key ?? null\n const internalItem: InternalDataTableHeader = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined,\n }\n\n internalHeaders.push(internalItem)\n }\n\n return internalHeaders\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref\n showSelect?: Ref\n showExpand?: Ref\n }\n) {\n const headers = ref([])\n const columns = ref([])\n const sortFunctions = ref>({})\n const sortRawFunctions = ref>({})\n const filterFunctions = ref({})\n\n watchEffect(() => {\n const _headers = props.headers ||\n Object.keys(props.items[0] ?? {}).map(key => ({ key, title: capitalize(key) })) as never\n\n const items = _headers.slice()\n const keys = extractKeys(items)\n\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({ key: 'data-table-group', title: 'Group' })\n }\n\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({ key: 'data-table-select' })\n }\n\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({ key: 'data-table-expand' })\n }\n\n const internalHeaders = convertToInternalHeaders(items)\n\n parseFixedColumns(internalHeaders)\n\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1\n const parsed = parse(internalHeaders, maxDepth)\n\n headers.value = parsed.headers\n columns.value = parsed.columns\n\n const flatHeaders = parsed.headers.flat(1)\n\n for (const header of flatHeaders) {\n if (!header.key) continue\n\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort\n }\n\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw\n }\n }\n\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter\n }\n }\n })\n\n const data = { headers, columns, sortFunctions, sortRawFunctions, filterFunctions }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableGroupHeaderRow } from \"./VDataTableGroupHeaderRow.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { Fragment, mergeProps } from 'vue';\nimport { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText'\n },\n hideNoData: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n ...makeDisplayProps()\n}, 'VDataTableRows');\nexport const VDataTableRows = genericComponent()({\n name: 'VDataTableRows',\n inheritAttrs: false,\n props: makeVDataTableRowsProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n columns\n } = useHeaders();\n const {\n expandOnClick,\n toggleExpand,\n isExpanded\n } = useExpanded();\n const {\n isSelected,\n toggleSelect\n } = useSelection();\n const {\n toggleGroup,\n isGroupOpen\n } = useGroupBy();\n const {\n t\n } = useLocale();\n const {\n mobile\n } = useDisplay(props);\n useRender(() => {\n if (props.loading && (!props.items.length || slots.loading)) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-loading\",\n \"key\": \"loading\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots.loading?.() ?? t(props.loadingText)])]);\n }\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-no-data\",\n \"key\": \"no-data\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots['no-data']?.() ?? t(props.noDataText)])]);\n }\n return _createVNode(_Fragment, null, [props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen\n };\n return slots['group-header'] ? slots['group-header'](slotProps) : _createVNode(VDataTableGroupHeaderRow, _mergeProps({\n \"key\": `group-header_${item.id}`,\n \"item\": item\n }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);\n }\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect\n };\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps({\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item);\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n mobile: mobile.value\n }, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem\n }) : props.rowProps)\n };\n return _createVNode(_Fragment, {\n \"key\": itemSlotProps.props.key\n }, [slots.item ? slots.item(itemSlotProps) : _createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableRows.mjs.map","// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots = VDataTableGroupHeaderRowSlots & VDataTableRowSlots & {\n item: ItemSlot & { props: Record }\n loading: never\n 'group-header': GroupHeaderSlot\n 'no-data': never\n 'expanded-row': ItemSlot\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType>,\n cellProps: [Object, Function] as PropType>,\n\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent(\n props: {\n items?: readonly (DataTableItem | Group)[]\n },\n slots: VDataTableRowsSlots,\n) => GenericProps>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n \n \n { slots.loading?.() ?? t(props.loadingText) }\n \n \n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n \n \n { slots['no-data']?.() ?? t(props.noDataText) }\n \n \n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n slotProps) }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n \n { slots.item ? slots.item(itemSlotProps) : (\n \n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n \n )\n })}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType\n","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object,\n required: true\n }\n}, 'VDataTableGroupHeaderRow');\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n props: makeVDataTableGroupHeaderRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isGroupOpen,\n toggleGroup,\n extractRows\n } = useGroupBy();\n const {\n isSelected,\n isSomeSelected,\n select\n } = useSelection();\n const {\n columns\n } = useHeaders();\n const rows = computed(() => {\n return extractRows([props.item]);\n });\n return () => _createVNode(\"tr\", {\n \"class\": \"v-data-table-group-header-row\",\n \"style\": {\n '--v-data-table-group-header-row-depth': props.item.depth\n }\n }, [columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? '$expand' : '$next';\n const onClick = () => toggleGroup(props.item);\n return slots['data-table-group']?.({\n item: props.item,\n count: rows.value.length,\n props: {\n icon,\n onClick\n }\n }) ?? _createVNode(VDataTableColumn, {\n \"class\": \"v-data-table-group-header-row__column\"\n }, {\n default: () => [_createVNode(VBtn, {\n \"size\": \"small\",\n \"variant\": \"text\",\n \"icon\": icon,\n \"onClick\": onClick\n }, null), _createVNode(\"span\", null, [props.item.value]), _createVNode(\"span\", null, [_createTextVNode(\"(\"), rows.value.length, _createTextVNode(\")\")])]\n });\n }\n if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value);\n const indeterminate = isSomeSelected(rows.value) && !modelValue;\n const selectGroup = v => select(rows.value, v);\n return slots['data-table-select']?.({\n props: {\n modelValue,\n indeterminate,\n 'onUpdate:modelValue': selectGroup\n }\n }) ?? _createVNode(\"td\", null, [_createVNode(VCheckboxBtn, {\n \"modelValue\": modelValue,\n \"indeterminate\": indeterminate,\n \"onUpdate:modelValue\": selectGroup\n }, null)]);\n }\n return _createVNode(\"td\", null, null);\n })]);\n }\n});\n//# sourceMappingURL=VDataTableGroupHeaderRow.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\n\nexport type VDataTableGroupHeaderRowSlots = {\n 'data-table-group': { item: Group, count: number, props: Record }\n 'data-table-select': { props: Record }\n}\n\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object as PropType,\n required: true,\n },\n}, 'VDataTableGroupHeaderRow')\n\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n\n props: makeVDataTableGroupHeaderRowProps(),\n\n setup (props, { slots }) {\n const { isGroupOpen, toggleGroup, extractRows } = useGroupBy()\n const { isSelected, isSomeSelected, select } = useSelection()\n const { columns } = useHeaders()\n\n const rows = computed(() => {\n return extractRows([props.item])\n })\n\n return () => (\n \n { columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? '$expand' : '$next'\n const onClick = () => toggleGroup(props.item)\n\n return slots['data-table-group']?.({ item: props.item, count: rows.value.length, props: { icon, onClick } }) ?? (\n \n \n { props.item.value }\n ({ rows.value.length })\n \n )\n }\n\n if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value)\n const indeterminate = isSomeSelected(rows.value) && !modelValue\n const selectGroup = (v: boolean) => select(rows.value, v)\n return slots['data-table-select']?.({ props: { modelValue, indeterminate, 'onUpdate:modelValue': selectGroup } }) ?? (\n \n \n \n )\n }\n\n return \n })}\n \n )\n },\n})\n","import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\"; // Utilities\nimport { toDisplayString, withModifiers } from 'vue';\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object,\n cellProps: [Object, Function],\n onClick: EventProp(),\n onContextmenu: EventProp(),\n onDblclick: EventProp(),\n ...makeDisplayProps()\n}, 'VDataTableRow');\nexport const VDataTableRow = genericComponent()({\n name: 'VDataTableRow',\n props: makeVDataTableRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n displayClasses,\n mobile\n } = useDisplay(props, 'v-data-table__tr');\n const {\n isSelected,\n toggleSelect,\n someSelected,\n allSelected,\n selectAll\n } = useSelection();\n const {\n isExpanded,\n toggleExpand\n } = useExpanded();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n columns\n } = useHeaders();\n useRender(() => _createVNode(\"tr\", {\n \"class\": ['v-data-table__tr', {\n 'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)\n }, displayClasses.value],\n \"onClick\": props.onClick,\n \"onContextmenu\": props.onContextmenu,\n \"onDblclick\": props.onDblclick\n }, [props.item && columns.value.map((column, i) => {\n const item = props.item;\n const slotName = `item.${column.key}`;\n const headerSlotName = `header.${column.key}`;\n const slotProps = {\n index: props.index,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand\n };\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => ''\n };\n const cellProps = typeof props.cellProps === 'function' ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column\n }) : props.cellProps;\n const columnCellProps = typeof column.cellProps === 'function' ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value\n }) : column.cellProps;\n return _createVNode(VDataTableColumn, _mergeProps({\n \"align\": column.align,\n \"class\": {\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select'\n },\n \"fixed\": column.fixed,\n \"fixedOffset\": column.fixedOffset,\n \"lastFixed\": column.lastFixed,\n \"maxWidth\": !mobile.value ? column.maxWidth : undefined,\n \"noPadding\": column.key === 'data-table-select' || column.key === 'data-table-expand',\n \"nowrap\": column.nowrap,\n \"width\": !mobile.value ? column.width : undefined\n }, cellProps, columnCellProps), {\n default: () => {\n if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {\n \"disabled\": !item.selectable,\n \"modelValue\": isSelected([item]),\n \"onClick\": withModifiers(() => toggleSelect(item), ['stop'])\n }, null);\n }\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? _createVNode(VBtn, {\n \"icon\": isExpanded(item) ? '$collapse' : '$expand',\n \"size\": \"small\",\n \"variant\": \"text\",\n \"onClick\": withModifiers(() => toggleExpand(item), ['stop'])\n }, null);\n }\n const displayValue = toDisplayString(slotProps.value);\n return !mobile.value ? displayValue : _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-data-table__td-title\"\n }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), _createVNode(\"div\", {\n \"class\": \"v-data-table__td-value\"\n }, [slots[slotName]?.(slotProps) ?? displayValue])]);\n }\n });\n })]));\n }\n});\n//# sourceMappingURL=VDataTableRow.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\n\n// Utilities\nimport { toDisplayString, withModifiers } from 'vue'\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { CellProps, DataTableItem, ItemKeySlot } from './types'\nimport type { VDataTableHeaderCellColumnSlotProps } from './VDataTableHeaders'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowSlots = {\n 'item.data-table-select': Omit, 'value'>\n 'item.data-table-expand': Omit, 'value'>\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & {\n [key: `item.${string}`]: ItemKeySlot\n [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps\n}\n\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object as PropType,\n cellProps: [Object, Function] as PropType>,\n onClick: EventProp<[MouseEvent]>(),\n onContextmenu: EventProp<[MouseEvent]>(),\n onDblclick: EventProp<[MouseEvent]>(),\n\n ...makeDisplayProps(),\n}, 'VDataTableRow')\n\nexport const VDataTableRow = genericComponent(\n props: {\n item?: DataTableItem\n cellProps?: CellProps\n },\n slots: VDataTableRowSlots,\n) => GenericProps>()({\n name: 'VDataTableRow',\n\n props: makeVDataTableRowProps(),\n\n setup (props, { slots }) {\n const { displayClasses, mobile } = useDisplay(props, 'v-data-table__tr')\n const { isSelected, toggleSelect, someSelected, allSelected, selectAll } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { columns } = useHeaders()\n\n useRender(() => (\n \n { props.item && columns.value.map((column, i) => {\n const item = props.item!\n const slotName = `item.${column.key}` as const\n const headerSlotName = `header.${column.key}` as const\n const slotProps = {\n index: props.index!,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n } satisfies ItemKeySlot\n\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => '',\n }\n\n const cellProps = typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column,\n })\n : props.cellProps\n const columnCellProps = typeof column.cellProps === 'function'\n ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n })\n : column.cellProps\n\n return (\n \n {{\n default: () => {\n if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n toggleExpand(item), ['stop']) }\n />\n )\n }\n\n const displayValue = toDisplayString(slotProps.value)\n\n return !mobile.value ? displayValue : (\n <>\n
    \n { slots[headerSlotName]?.(columnSlotProps) ?? column.title }\n
    \n\n
    \n { slots[slotName]?.(slotProps) ?? displayValue }\n
    \n \n )\n },\n }}\n \n )\n })}\n \n ))\n },\n})\n\nexport type VDataTableRow = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTable.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTable');\nexport const VTable = genericComponent()({\n name: 'VTable',\n props: makeVTableProps(),\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-table', {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover\n }, themeClasses.value, densityClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.top?.(), slots.default ? _createVNode(\"div\", {\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VTable.mjs.map","// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VTableSlots = {\n default: never\n top: never\n bottom: never\n wrapper: never\n}\n\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTable')\n\nexport const VTable = genericComponent()({\n name: 'VTable',\n\n props: makeVTableProps(),\n\n setup (props, { slots, emit }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n \n { slots.top?.() }\n\n { slots.default ? (\n \n \n { slots.default() }\n
    \n \n ) : slots.wrapper?.()}\n\n { slots.bottom?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n returnObject: Boolean\n}, 'DataTable-items');\nexport function transformItem(props, item, index, columns) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value);\n return obj;\n }, {});\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item\n };\n}\nexport function transformItems(props, items, columns) {\n return items.map((item, index) => transformItem(props, item, index, columns));\n}\nexport function useDataTableItems(props, columns) {\n const items = computed(() => transformItems(props, props.items, columns.value));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { CellProps, DataTableItem, InternalDataTableHeader, RowProps } from '../types'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataTableItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType,\n default: null,\n },\n rowProps: [Object, Function] as PropType>,\n cellProps: [Object, Function] as PropType>,\n returnObject: Boolean,\n}, 'DataTable-items')\n\nexport function transformItem (\n props: Omit,\n item: any,\n index: number,\n columns: InternalDataTableHeader[]\n): DataTableItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value!)\n return obj\n }, {} as Record)\n\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit,\n items: DataTableItemProps['items'],\n columns: InternalDataTableHeader[]\n): DataTableItem[] {\n return items.map((item, index) => transformItem(props, item, index, columns))\n}\n\nexport function useDataTableItems (props: DataTableItemProps, columns: Ref) {\n const items = computed(() => transformItems(props, props.items, columns.value))\n\n return { items }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VTable } from \"../VTable/index.mjs\";\nimport { VVirtualScrollItem } from \"../VVirtualScroll/VVirtualScrollItem.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps()\n}, 'VDataTableVirtual');\nexport const VDataTableVirtual = genericComponent()({\n name: 'VDataTableVirtual',\n props: makeVDataTableVirtualProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const allItems = computed(() => extractRows(flatItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems,\n currentPage: allItems\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend\n } = useVirtual(props, flatItems);\n const displayItems = computed(() => computedItems.value.map(item => item.raw));\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n wrapper: () => _createVNode(\"div\", {\n \"ref\": containerRef,\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {\n \"sticky\": props.fixedHeader\n }), slots)]), !props.hideDefaultBody && _createVNode(\"tbody\", null, [_createVNode(\"tr\", {\n \"ref\": markerRef,\n \"style\": {\n height: convertToUnit(paddingTop.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)]), slots['body.prepend']?.(slotProps.value), _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": displayItems.value\n }), {\n ...slots,\n item: itemSlotProps => _createVNode(VVirtualScrollItem, {\n \"key\": itemSlotProps.internalItem.index,\n \"renderless\": true,\n \"onUpdate:height\": height => handleItemResize(itemSlotProps.internalItem.index, height)\n }, {\n default: _ref2 => {\n let {\n itemRef\n } = _ref2;\n return slots.item?.({\n ...itemSlotProps,\n itemRef\n }) ?? _createVNode(VDataTableRow, _mergeProps(itemSlotProps.props, {\n \"ref\": itemRef,\n \"key\": itemSlotProps.internalItem.index,\n \"index\": itemSlotProps.internalItem.index\n }), slots);\n }\n })\n }), slots['body.append']?.(slotProps.value), _createVNode(\"tr\", {\n \"style\": {\n height: convertToUnit(paddingBottom.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)])])])]),\n bottom: () => slots.bottom?.(slotProps.value)\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableVirtual.mjs.map","// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps = Omit<\n VDataTableSlotProps,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps\n top: VDataTableVirtualSlotProps\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps\n 'body.prepend': VDataTableVirtualSlotProps\n 'body.append': VDataTableVirtualSlotProps\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots>,\n) => GenericProps>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n \n \n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { !props.hideDefaultBody && (\n \n \n \n \n\n { slots['body.prepend']?.(slotProps.value) }\n\n \n {{\n ...slots,\n item: itemSlotProps => (\n handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n \n )\n )}\n \n ),\n }}\n \n\n { slots['body.append']?.(slotProps.value) }\n\n \n \n \n \n )}\n
    \n \n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n \n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType\n","export { VTable } from \"./VTable.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTable } from './VTable'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { VTable } from \"../VTable/index.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination } from \"./composables/paginate.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { computed, provide, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true\n },\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTableServer');\nexport const VDataTableServer = genericComponent()({\n name: 'VDataTableServer',\n props: makeVDataTableServerProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': page => true,\n 'update:itemsPerPage': page => true,\n 'update:sortBy': sortBy => true,\n 'update:options': options => true,\n 'update:expanded': options => true,\n 'update:groupBy': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const itemsLength = computed(() => parseInt(props.itemsLength, 10));\n const {\n columns,\n headers\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n opened,\n isGroupOpen,\n toggleGroup,\n extractRows\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n flatItems\n } = useGroupedItems(items, groupBy, opened);\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: items\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const itemsWithoutGroups = computed(() => extractRows(items.value));\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search')\n });\n provide('v-data-table', {\n toggleSort,\n sortBy\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\",\n \"class\": \"v-data-table__thead\",\n \"role\": \"rowgroup\"\n }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {\n \"sticky\": props.fixedHeader\n }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", {\n \"class\": \"v-data-table__tbody\",\n \"role\": \"rowgroup\"\n }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": flatItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableServer.mjs.map","// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef, toRefs } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableServer = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots>,\n) => GenericProps>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n \n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n \n )}\n { slots['body.append']?.(slotProps.value) }\n \n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n \n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n \n\n \n \n ),\n }}\n \n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType\n","export { VDatePicker } from \"./VDatePicker.mjs\";\nexport { VDatePickerControls } from \"./VDatePickerControls.mjs\";\nexport { VDatePickerHeader } from \"./VDatePickerHeader.mjs\";\nexport { VDatePickerMonth } from \"./VDatePickerMonth.mjs\";\nexport { VDatePickerMonths } from \"./VDatePickerMonths.mjs\";\nexport { VDatePickerYears } from \"./VDatePickerYears.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDatePicker } from './VDatePicker'\nexport { VDatePickerControls } from './VDatePickerControls'\nexport { VDatePickerHeader } from './VDatePickerHeader'\nexport { VDatePickerMonth } from './VDatePickerMonth'\nexport { VDatePickerMonths } from './VDatePickerMonths'\nexport { VDatePickerYears } from './VDatePickerYears'\n","import { Fragment as _Fragment, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePicker.css\";\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from \"./VDatePickerControls.mjs\";\nimport { VDatePickerHeader } from \"./VDatePickerHeader.mjs\";\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from \"./VDatePickerMonth.mjs\";\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from \"./VDatePickerMonths.mjs\";\nimport { makeVDatePickerYearsProps, VDatePickerYears } from \"./VDatePickerYears.mjs\";\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVPickerProps, VPicker } from \"../../labs/VPicker/VPicker.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header'\n },\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static'\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({\n title: '$vuetify.datePicker.title'\n }),\n modelValue: null\n}, 'VDatePicker');\nexport const VDatePicker = genericComponent()({\n name: 'VDatePicker',\n props: makeVDatePickerProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);\n const viewMode = useProxiedModel(props, 'viewMode');\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0]);\n return value && adapter.isValid(value) ? value : adapter.date();\n });\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));\n const isReversing = shallowRef(false);\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length);\n }\n return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);\n });\n const text = computed(() => {\n let date = adapter.date();\n date = adapter.setDate(date, 1);\n date = adapter.setMonth(date, month.value);\n date = adapter.setYear(date, year.value);\n return adapter.format(date, 'monthAndYear');\n });\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);\n const minDate = computed(() => {\n const date = adapter.date(props.min);\n return props.min && adapter.isValid(date) ? date : null;\n });\n const maxDate = computed(() => {\n const date = adapter.date(props.max);\n return props.max && adapter.isValid(date) ? date : null;\n });\n const disabled = computed(() => {\n if (props.disabled) return true;\n const targets = [];\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next']);\n } else {\n let _date = adapter.date();\n _date = adapter.setYear(_date, year.value);\n _date = adapter.setMonth(_date, month.value);\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1);\n adapter.isAfter(minDate.value, date) && targets.push('prev');\n }\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1);\n adapter.isAfter(date, maxDate.value) && targets.push('next');\n }\n }\n return targets;\n });\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext() {\n if (month.value < 11) {\n month.value++;\n } else {\n year.value++;\n month.value = 0;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickPrev() {\n if (month.value > 0) {\n month.value--;\n } else {\n year.value--;\n month.value = 11;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickDate() {\n viewMode.value = 'month';\n }\n function onClickMonth() {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months';\n }\n function onClickYear() {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year';\n }\n function onUpdateMonth(value) {\n if (viewMode.value === 'months') onClickMonth();\n emit('update:month', value);\n }\n function onUpdateYear(value) {\n if (viewMode.value === 'year') onClickYear();\n emit('update:year', value);\n }\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal);\n const arrAfter = wrapInArray(val);\n if (!arrAfter.length) return;\n const before = adapter.date(arrBefore[arrBefore.length - 1]);\n const after = adapter.date(arrAfter[arrAfter.length - 1]);\n const newMonth = adapter.getMonth(after);\n const newYear = adapter.getYear(after);\n if (newMonth !== month.value) {\n month.value = newMonth;\n onUpdateMonth(month.value);\n }\n if (newYear !== year.value) {\n year.value = newYear;\n onUpdateYear(year.value);\n }\n isReversing.value = adapter.isBefore(before, after);\n });\n useRender(() => {\n const pickerProps = VPicker.filterProps(props);\n const datePickerControlsProps = VDatePickerControls.filterProps(props);\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props);\n const datePickerMonthProps = VDatePickerMonth.filterProps(props);\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue']);\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue']);\n const headerProps = {\n header: header.value,\n transition: headerTransition.value\n };\n return _createVNode(VPicker, _mergeProps(pickerProps, {\n \"class\": ['v-date-picker', `v-date-picker--${viewMode.value}`, {\n 'v-date-picker--show-week': props.showWeek\n }, props.class],\n \"style\": props.style\n }), {\n title: () => slots.title?.() ?? _createVNode(\"div\", {\n \"class\": \"v-date-picker__title\"\n }, [t(props.title)]),\n header: () => slots.header ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VDatePickerHeader: {\n ...headerProps\n }\n }\n }, {\n default: () => [slots.header?.(headerProps)]\n }) : _createVNode(VDatePickerHeader, _mergeProps({\n \"key\": \"header\"\n }, datePickerHeaderProps, headerProps, {\n \"onClick\": viewMode.value !== 'month' ? onClickDate : undefined\n }), {\n ...slots,\n default: undefined\n }),\n default: () => _createVNode(_Fragment, null, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {\n \"disabled\": disabled.value,\n \"text\": text.value,\n \"onClick:next\": onClickNext,\n \"onClick:prev\": onClickPrev,\n \"onClick:month\": onClickMonth,\n \"onClick:year\": onClickYear\n }), null), _createVNode(VFadeTransition, {\n \"hideOnLeave\": true\n }, {\n default: () => [viewMode.value === 'months' ? _createVNode(VDatePickerMonths, _mergeProps({\n \"key\": \"date-picker-months\"\n }, datePickerMonthsProps, {\n \"modelValue\": month.value,\n \"onUpdate:modelValue\": [$event => month.value = $event, onUpdateMonth],\n \"min\": minDate.value,\n \"max\": maxDate.value,\n \"year\": year.value\n }), null) : viewMode.value === 'year' ? _createVNode(VDatePickerYears, _mergeProps({\n \"key\": \"date-picker-years\"\n }, datePickerYearsProps, {\n \"modelValue\": year.value,\n \"onUpdate:modelValue\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null) : _createVNode(VDatePickerMonth, _mergeProps({\n \"key\": \"date-picker-month\"\n }, datePickerMonthProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"month\": month.value,\n \"onUpdate:month\": [$event => month.value = $event, onUpdateMonth],\n \"year\": year.value,\n \"onUpdate:year\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null)]\n })]),\n actions: slots.actions\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePicker.mjs.map","// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n return (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n let date = adapter.date()\n\n date = adapter.setDate(date, 1)\n date = adapter.setMonth(date, month.value)\n date = adapter.setYear(date, year.value)\n\n return adapter.format(date, 'monthAndYear')\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth (value: number) {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', value)\n }\n\n function onUpdateYear (value: number) {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', value)\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth(month.value)\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear(year.value)\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n slots.title?.() ?? (\n
    \n { t(props.title) }\n
    \n ),\n header: () => slots.header ? (\n \n { slots.header?.(headerProps) }\n \n ) : (\n \n ),\n default: () => (\n <>\n \n\n \n { viewMode.value === 'months' ? (\n \n ) : viewMode.value === 'year' ? (\n \n ) : (\n \n )}\n \n \n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerControls.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSpacer } from \"../VGrid/index.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array],\n default: undefined\n },\n disabled: {\n type: [Boolean, String, Array],\n default: false\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup'\n },\n text: String,\n viewMode: {\n type: String,\n default: 'month'\n }\n}, 'VDatePickerControls');\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n props: makeVDatePickerControlsProps(),\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('text') : !!props.disabled;\n });\n const disableYear = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('mode') : !!props.disabled;\n });\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;\n });\n const disableNext = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;\n });\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n function onClickYear() {\n emit('click:year');\n }\n function onClickMonth() {\n emit('click:month');\n }\n useRender(() => {\n // TODO: add slot support and scope defaults\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-controls']\n }, [_createVNode(VBtn, {\n \"class\": \"v-date-picker-controls__month-btn\",\n \"disabled\": disableMonth.value,\n \"text\": props.text,\n \"variant\": \"text\",\n \"rounded\": true,\n \"onClick\": onClickMonth\n }, null), _createVNode(VBtn, {\n \"key\": \"mode-btn\",\n \"class\": \"v-date-picker-controls__mode-btn\",\n \"disabled\": disableYear.value,\n \"density\": \"comfortable\",\n \"icon\": props.modeIcon,\n \"variant\": \"text\",\n \"onClick\": onClickYear\n }, null), _createVNode(VSpacer, {\n \"key\": \"mode-spacer\"\n }, null), _createVNode(\"div\", {\n \"key\": \"month-buttons\",\n \"class\": \"v-date-picker-controls__month\"\n }, [_createVNode(VBtn, {\n \"disabled\": disablePrev.value,\n \"icon\": props.prevIcon,\n \"variant\": \"text\",\n \"onClick\": onClickPrev\n }, null), _createVNode(VBtn, {\n \"disabled\": disableNext.value,\n \"icon\": props.nextIcon,\n \"variant\": \"text\",\n \"onClick\": onClickNext\n }, null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerControls.mjs.map","// Styles\nimport './VDatePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSpacer } from '@/components/VGrid'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array] as PropType,\n default: undefined,\n },\n disabled: {\n type: [Boolean, String, Array] as PropType,\n default: false,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup',\n },\n text: String,\n viewMode: {\n type: String as PropType<'month' | 'months' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true,\n },\n\n setup (props, { emit }) {\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('text')\n : !!props.disabled\n })\n const disableYear = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : !!props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickYear () {\n emit('click:year')\n }\n\n function onClickMonth () {\n emit('click:month')\n }\n\n useRender(() => {\n // TODO: add slot support and scope defaults\n return (\n \n
    \n\n \n\n \n\n \n \n\n \n \n \n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType\n","export { VContainer } from \"./VContainer.mjs\";\nexport { VCol } from \"./VCol.mjs\";\nexport { VRow } from \"./VRow.mjs\";\nexport { VSpacer } from \"./VSpacer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VContainer } from './VContainer'\nexport { VCol } from './VCol'\nexport { VRow } from './VRow'\nexport { VSpacer } from './VSpacer'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VContainer');\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n props: makeVContainerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = useRtl();\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-container', {\n 'v-container--fluid': props.fluid\n }, rtlClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VContainer.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false,\n },\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VContainer')\n\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n\n props: makeVContainerProps(),\n\n setup (props, { slots }) {\n const { rtlClasses } = useRtl()\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VContainer = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false\n };\n return props;\n }, {});\n})();\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = 'offset' + capitalize(val);\n props[offsetKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = 'order' + capitalize(val);\n props[orderKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps)\n};\nfunction breakpointClass(type, prop, val) {\n let className = type;\n if (val == null || val === false) {\n return undefined;\n }\n if (prop) {\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n if (type === 'col') {\n className = 'v-' + className;\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase();\n }\n // .order-md-6\n className += `-${val}`;\n return className.toLowerCase();\n}\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: str => ALIGN_SELF_VALUES.includes(str)\n },\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCol');\nexport const VCol = genericComponent()({\n name: 'VCol',\n props: makeVColProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n const hasColClasses = classList.some(className => className.startsWith('v-col-'));\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf\n });\n return classList;\n });\n return () => h(props.tag, {\n class: [classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VCol.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\ntype BreakpointOffset = `offset${Capitalize}`\ntype BreakpointOrder = `order${Capitalize}`\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = ('offset' + capitalize(val)) as BreakpointOffset\n props[offsetKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = ('order' + capitalize(val)) as BreakpointOrder\n props[orderKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCol')\n\nexport const VCol = genericComponent()({\n name: 'VCol',\n\n props: makeVColProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst ALIGNMENT = ['start', 'end', 'center'];\nconst SPACE = ['space-between', 'space-around', 'space-evenly'];\nfunction makeRowProps(prefix, def) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val);\n props[prefixKey] = def();\n return props;\n }, {});\n}\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'];\nconst alignValidator = str => ALIGN_VALUES.includes(str);\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator\n}));\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE];\nconst justifyValidator = str => JUSTIFY_VALUES.includes(str);\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator\n}));\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'];\nconst alignContentValidator = str => ALIGN_CONTENT_VALUES.includes(str);\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator\n}));\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps)\n};\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content'\n};\nfunction breakpointClass(type, prop, val) {\n let className = classMap[type];\n if (val == null) {\n return undefined;\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n // .align-items-sm-center\n className += `-${val}`;\n return className.toLowerCase();\n}\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator\n },\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VRow');\nexport const VRow = genericComponent()({\n name: 'VRow',\n props: makeVRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent\n });\n return classList;\n });\n return () => h(props.tag, {\n class: ['v-row', classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VRow.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\ntype BreakpointAlign = `align${Capitalize}`\ntype BreakpointJustify = `justify${Capitalize}`\ntype BreakpointAlignContent = `alignContent${Capitalize}`\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <\n Name extends BreakpointAlign | BreakpointJustify | BreakpointAlignContent,\n Type,\n> (prefix: string, def: () => Prop) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val) as Name\n props[prefixKey] = def()\n return props\n }, {} as Record>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\ntype AlignValue = typeof ALIGN_VALUES[number]\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String as PropType,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\ntype JustifyValue = typeof JUSTIFY_VALUES[number]\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\ntype AlignContentValue = typeof ALIGN_CONTENT_VALUES[number]\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VRow')\n\nexport const VRow = genericComponent()({\n name: 'VRow',\n\n props: makeVRowProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n 'v-row',\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');\n//# sourceMappingURL=VSpacer.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerHeader.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp()\n}, 'VDatePickerHeader');\nexport const VDatePickerHeader = genericComponent()({\n name: 'VDatePickerHeader',\n props: makeVDatePickerHeaderProps(),\n emits: {\n click: () => true,\n 'click:append': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n function onClick() {\n emit('click');\n }\n function onClickAppend() {\n emit('click:append');\n }\n useRender(() => {\n const hasContent = !!(slots.default || props.header);\n const hasAppend = !!(slots.append || props.appendIcon);\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-header', {\n 'v-date-picker-header--clickable': !!props.onClick\n }, backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onClick\n }, [slots.prepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-date-picker-header__prepend\"\n }, [slots.prepend()]), hasContent && _createVNode(MaybeTransition, {\n \"key\": \"content\",\n \"name\": props.transition\n }, {\n default: () => [_createVNode(\"div\", {\n \"key\": props.header,\n \"class\": \"v-date-picker-header__content\"\n }, [slots.default?.() ?? props.header])]\n }), hasAppend && _createVNode(\"div\", {\n \"class\": \"v-date-picker-header__append\"\n }, [!slots.append ? _createVNode(VBtn, {\n \"key\": \"append-btn\",\n \"icon\": props.appendIcon,\n \"variant\": \"text\",\n \"onClick\": onClickAppend\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VBtn: {\n icon: props.appendIcon,\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.append?.()]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerHeader.mjs.map","// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp<[MouseEvent]>(),\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n click: () => true,\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClick () {\n emit('click')\n }\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n \n { slots.prepend && (\n
    \n { slots.prepend() }\n
    \n )}\n\n { hasContent && (\n \n
    \n { slots.default?.() ?? props.header }\n
    \n
    \n )}\n\n { hasAppend && (\n
    \n { !slots.append ? (\n \n ) : (\n \n { slots.append?.() }\n \n )}\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType\n","import { createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerMonth.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeCalendarProps, useCalendar } from \"../../composables/calendar.mjs\";\nimport { useDate } from \"../../composables/date/date.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String],\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition'\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition'\n },\n ...makeCalendarProps()\n}, 'VDatePickerMonth');\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n props: makeVDatePickerMonthProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const daysRef = ref();\n const {\n daysInMonth,\n model,\n weekNumbers\n } = useCalendar(props);\n const adapter = useDate();\n const rangeStart = shallowRef();\n const rangeStop = shallowRef();\n const isReverse = shallowRef(false);\n const transition = computed(() => {\n return !isReverse.value ? props.transition : props.reverseTransition;\n });\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0];\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1];\n }\n }\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;\n return model.value.length >= max;\n });\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return;\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);\n });\n function onRangeClick(value) {\n const _value = adapter.startOfDay(value);\n if (model.value.length === 0) {\n rangeStart.value = undefined;\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0];\n rangeStop.value = undefined;\n }\n if (!rangeStart.value) {\n rangeStart.value = _value;\n model.value = [rangeStart.value];\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined;\n model.value = [];\n return;\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value);\n rangeStart.value = _value;\n } else {\n rangeStop.value = adapter.endOfDay(_value);\n }\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');\n const datesInRange = [rangeStart.value];\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i);\n datesInRange.push(nextDate);\n }\n datesInRange.push(rangeStop.value);\n model.value = datesInRange;\n } else {\n rangeStart.value = value;\n rangeStop.value = undefined;\n model.value = [rangeStart.value];\n }\n }\n function onMultipleClick(value) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value));\n if (index === -1) {\n model.value = [...model.value, value];\n } else {\n const value = [...model.value];\n value.splice(index, 1);\n model.value = value;\n }\n }\n function onClick(value) {\n if (props.multiple === 'range') {\n onRangeClick(value);\n } else if (props.multiple) {\n onMultipleClick(value);\n } else {\n model.value = [value];\n }\n }\n return () => _createVNode(\"div\", {\n \"class\": \"v-date-picker-month\"\n }, [props.showWeek && _createVNode(\"div\", {\n \"key\": \"weeks\",\n \"class\": \"v-date-picker-month__weeks\"\n }, [!props.hideWeekdays && _createVNode(\"div\", {\n \"key\": \"hide-week-days\",\n \"class\": \"v-date-picker-month__day\"\n }, [_createTextVNode(\"\\xA0\")]), weekNumbers.value.map(week => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']\n }, [week]))]), _createVNode(MaybeTransition, {\n \"name\": transition.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"ref\": daysRef,\n \"key\": daysInMonth.value[0].date?.toString(),\n \"class\": \"v-date-picker-month__days\"\n }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__weekday']\n }, [weekDay])), daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date)\n },\n item,\n i\n };\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true;\n }\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart\n }],\n \"data-v-date\": !item.isDisabled ? item.isoDate : undefined\n }, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date)\n }\n }\n }, {\n default: () => [slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null)]\n })]);\n })])]\n })]);\n }\n});\n//# sourceMappingURL=VDatePickerMonth.mjs.map","// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...makeCalendarProps(),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = computed(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n return () => (\n
    \n { props.showWeek && (\n
    \n { !props.hideWeekdays && (\n
     
    \n )}\n { weekNumbers.value.map(week => (\n { week }
    \n ))}\n
    \n )}\n\n \n \n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n { weekDay }\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n \n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n \n )}\n \n )}\n \n )\n })}\n \n \n \n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType\n","// Composables\nimport { getWeek, useDate } from \"./date/date.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n// Types\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function],\n disabled: Boolean,\n displayValue: null,\n modelValue: Array,\n month: [Number, String],\n max: null,\n min: null,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array,\n default: () => [0, 1, 2, 3, 4, 5, 6]\n },\n weeksInMonth: {\n type: String,\n default: 'dynamic'\n },\n firstDayOfWeek: [Number, String]\n}, 'calendar');\nexport function useCalendar(props) {\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue);\n if (model.value.length > 0) return adapter.date(model.value[0]);\n if (props.min) return adapter.date(props.min);\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0]);\n return adapter.date();\n });\n const year = useProxiedModel(props, 'year', undefined, v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value);\n return adapter.startOfYear(adapter.setYear(adapter.date(), value));\n }, v => adapter.getYear(v));\n const month = useProxiedModel(props, 'month', undefined, v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));\n return adapter.setMonth(date, value);\n }, v => adapter.getMonth(v));\n const weekDays = computed(() => {\n const firstDayOfWeek = Number(props.firstDayOfWeek ?? 0);\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7);\n });\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);\n const days = weeks.flat();\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7;\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1];\n let week = [];\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day));\n if (day % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n }\n return weeks;\n });\n function genDays(days, today) {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay());\n }).map((date, index) => {\n const isoDate = adapter.toISO(date);\n const isAdjacent = !adapter.isSameMonth(date, month.value);\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));\n const isSame = adapter.isSameDay(date, month.value);\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth')\n };\n });\n }\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek);\n const week = [];\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day));\n }\n const today = adapter.date();\n return genDays(week, today);\n });\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat();\n const today = adapter.date();\n return genDays(days, today);\n });\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null;\n });\n });\n function isDisabled(value) {\n if (props.disabled) return true;\n const date = adapter.date(value);\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true;\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true;\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));\n }\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date);\n }\n return false;\n }\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers\n };\n}\n//# sourceMappingURL=calendar.mjs.map","// Composables\nimport { getWeek, useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean) | undefined\n disabled: boolean\n displayValue: unknown\n modelValue: unknown[] | undefined\n max: unknown\n min: unknown\n showAdjacentMonths: boolean\n month: number | string | undefined\n weekdays: number[]\n year: number | string | undefined\n weeksInMonth: 'dynamic' | 'static'\n firstDayOfWeek: number | string | undefined\n\n 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined\n 'onUpdate:month': ((value: number) => void) | undefined\n 'onUpdate:year': ((value: number) => void) | undefined\n}\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function] as PropType boolean)>,\n disabled: Boolean,\n displayValue: null as any as PropType,\n modelValue: Array as PropType,\n month: [Number, String],\n max: null as any as PropType,\n min: null as any as PropType,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n weeksInMonth: {\n type: String as PropType<'dynamic' | 'static'>,\n default: 'dynamic',\n },\n firstDayOfWeek: [Number, String],\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weekDays = computed(() => {\n const firstDayOfWeek = Number(props.firstDayOfWeek ?? 0)\n\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7)\n })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n function genDays (days: unknown[], today: unknown) {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek)\n const week = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day))\n }\n\n const today = adapter.date()\n\n return genDays(week, today)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat()\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers,\n }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDatePickerMonths.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number,\n year: Number\n}, 'VDatePickerMonths');\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n props: makeVDatePickerMonthsProps(),\n emits: {\n 'update:modelValue': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date());\n if (props.year) {\n date = adapter.setYear(date, props.year);\n }\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort');\n const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));\n date = adapter.getNextMonth(date);\n return {\n isDisabled,\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date());\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-months\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-months__content\"\n }, [months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n disabled: month.isDisabled,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i)\n };\n function onClick(i) {\n if (model.value === i) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = i;\n }\n return slots.month?.({\n month,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerMonths.mjs.map","// Styles\nimport './VDatePickerMonths.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthsSlots = {\n month: {\n month: {\n text: string\n value: number\n }\n i: number\n props: {\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null as any as PropType,\n max: null as any as PropType,\n modelValue: Number,\n year: Number,\n}, 'VDatePickerMonths')\n\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n\n props: makeVDatePickerMonthsProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date())\n if (props.year) {\n date = adapter.setYear(date, props.year)\n }\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort')\n const isDisabled =\n !!(\n (props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date)) ||\n (props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))))\n )\n date = adapter.getNextMonth(date)\n\n return {\n isDisabled,\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date())\n })\n\n useRender(() => (\n \n
    \n { months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n disabled: month.isDisabled,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i),\n } as const\n\n function onClick (i: number) {\n if (model.value === i) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = i\n }\n\n return slots.month?.({\n month,\n i,\n props: btnProps,\n }) ?? (\n \n )\n })}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VDatePickerMonths = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDatePickerYears.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number\n}, 'VDatePickerYears');\nexport const VDatePickerYears = genericComponent()({\n name: 'VDatePickerYears',\n props: makeVDatePickerYearsProps(),\n emits: {\n 'update:modelValue': year => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const years = computed(() => {\n const year = adapter.getYear(adapter.date());\n let min = year - 100;\n let max = year + 52;\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min));\n }\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max));\n }\n let date = adapter.startOfYear(adapter.date());\n date = adapter.setYear(date, min);\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year');\n date = adapter.setYear(date, adapter.getYear(date) + 1);\n return {\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date());\n });\n const yearRef = templateRef();\n onMounted(async () => {\n await nextTick();\n yearRef.el?.scrollIntoView({\n block: 'center'\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-years\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-years__content\"\n }, [years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = year.value;\n }\n };\n return slots.year?.({\n year,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerYears.mjs.map","// Styles\nimport './VDatePickerYears.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VDatePickerYearsSlots = {\n year: {\n year: {\n text: string\n value: number\n }\n i: number\n props: {\n active: boolean\n color?: string\n rounded: boolean\n text: string\n variant: 'flat' | 'text'\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null as any as PropType,\n max: null as any as PropType,\n modelValue: Number,\n}, 'VDatePickerYears')\n\nexport const VDatePickerYears = genericComponent()({\n name: 'VDatePickerYears',\n\n props: makeVDatePickerYearsProps(),\n\n emits: {\n 'update:modelValue': (year: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n const years = computed(() => {\n const year = adapter.getYear(adapter.date())\n\n let min = year - 100\n let max = year + 52\n\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min))\n }\n\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max))\n }\n\n let date = adapter.startOfYear(adapter.date())\n\n date = adapter.setYear(date, min)\n\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year')\n date = adapter.setYear(date, adapter.getYear(date) + 1)\n\n return {\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date())\n })\n\n const yearRef = templateRef()\n\n onMounted(async () => {\n await nextTick()\n yearRef.el?.scrollIntoView({ block: 'center' })\n })\n\n useRender(() => (\n \n
    \n { years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = year.value\n },\n } as const\n\n return slots.year?.({\n year,\n i,\n props: btnProps,\n }) ?? (\n \n )\n })}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VDatePickerYears = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VPicker.css\";\n\n// Components\nimport { VPickerTitle } from \"./VPickerTitle.mjs\";\nimport { VDefaultsProvider } from \"../../components/VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { makeVSheetProps, VSheet } from \"../../components/VSheet/VSheet.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n ...makeVSheetProps()\n}, 'VPicker');\nexport const VPicker = genericComponent()({\n name: 'VPicker',\n props: makeVPickerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasTitle = !!(props.title || slots.title);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-picker', {\n 'v-picker--landscape': props.landscape,\n 'v-picker--with-actions': !!slots.actions\n }, props.class],\n \"style\": props.style\n }), {\n default: () => [!props.hideHeader && _createVNode(\"div\", {\n \"key\": \"header\",\n \"class\": [backgroundColorClasses.value],\n \"style\": [backgroundColorStyles.value]\n }, [hasTitle && _createVNode(VPickerTitle, {\n \"key\": \"picker-title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.header && _createVNode(\"div\", {\n \"class\": \"v-picker__header\"\n }, [slots.header()])]), _createVNode(\"div\", {\n \"class\": \"v-picker__body\"\n }, [slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n slim: true,\n variant: 'text'\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-picker__actions\"\n }, [slots.actions()])]\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VPicker.mjs.map","// Styles\nimport './VPicker.sass'\n\n// Components\nimport { VPickerTitle } from './VPickerTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VPickerSlots = {\n header: never\n default: never\n actions: never\n title: never\n}\n\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n\n ...makeVSheetProps(),\n}, 'VPicker')\n\nexport const VPicker = genericComponent()({\n name: 'VPicker',\n\n props: makeVPickerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n const hasTitle = !!(props.title || slots.title)\n\n return (\n \n { !props.hideHeader && (\n \n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { slots.header && (\n
    \n { slots.header() }\n
    \n )}\n \n )}\n\n
    \n { slots.default?.() }\n
    \n\n { slots.actions && (\n \n
    \n { slots.actions() }\n
    \n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VPicker = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VPickerTitle = createSimpleFunctional('v-picker-title');\n//# sourceMappingURL=VPickerTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VPickerTitle = createSimpleFunctional('v-picker-title')\n\nexport type VPickerTitle = InstanceType\n","export { VDialog } from \"./VDialog.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDialog } from './VDialog'\n","export { VEmptyState } from \"./VEmptyState.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VEmptyState } from './VEmptyState'\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VEmptyState.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String,\n default: 'center'\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500\n },\n href: String,\n to: String,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({\n size: undefined\n }),\n ...makeThemeProps()\n}, 'VEmptyState');\nexport const VEmptyState = genericComponent()({\n name: 'VEmptyState',\n props: makeVEmptyStateProps(),\n emits: {\n 'click:action': e => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n displayClasses\n } = useDisplay();\n function onClickAction(e) {\n emit('click:action', e);\n }\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText);\n const hasHeadline = !!(slots.headline || props.headline);\n const hasTitle = !!(slots.title || props.title);\n const hasText = !!(slots.text || props.text);\n const hasMedia = !!(slots.media || props.image || props.icon);\n const size = props.size || (props.image ? 200 : 96);\n return _createVNode(\"div\", {\n \"class\": ['v-empty-state', {\n [`v-empty-state--${props.justify}`]: true\n }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style]\n }, [hasMedia && _createVNode(\"div\", {\n \"key\": \"media\",\n \"class\": \"v-empty-state__media\"\n }, [!slots.media ? _createVNode(_Fragment, null, [props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"height\": size\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.color,\n \"size\": size,\n \"icon\": props.icon\n }, null) : undefined]) : _createVNode(VDefaultsProvider, {\n \"key\": \"media-defaults\",\n \"defaults\": {\n VImg: {\n src: props.image,\n height: size\n },\n VIcon: {\n size,\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.media()]\n })]), hasHeadline && _createVNode(\"div\", {\n \"key\": \"headline\",\n \"class\": \"v-empty-state__headline\"\n }, [slots.headline?.() ?? props.headline]), hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-empty-state__title\"\n }, [slots.title?.() ?? props.title]), hasText && _createVNode(\"div\", {\n \"key\": \"text\",\n \"class\": \"v-empty-state__text\",\n \"style\": {\n maxWidth: convertToUnit(props.textWidth)\n }\n }, [slots.text?.() ?? props.text]), slots.default && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-empty-state__content\"\n }, [slots.default()]), hasActions && _createVNode(\"div\", {\n \"key\": \"actions\",\n \"class\": \"v-empty-state__actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-empty-state__action-btn',\n color: props.color ?? 'surface-variant',\n text: props.actionText\n }\n }\n }, {\n default: () => [slots.actions?.({\n props: {\n onClick: onClickAction\n }\n }) ?? _createVNode(VBtn, {\n \"onClick\": onClickAction\n }, null)]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VEmptyState.mjs.map","// Styles\nimport './VEmptyState.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport type VEmptyStateSlots = {\n actions: {\n props: {\n onClick: (e: Event) => void\n }\n }\n default: never\n headline: never\n title: never\n media: never\n text: never\n}\n\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500,\n },\n href: String,\n to: String,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({ size: undefined }),\n ...makeThemeProps(),\n}, 'VEmptyState')\n\nexport const VEmptyState = genericComponent()({\n name: 'VEmptyState',\n\n props: makeVEmptyStateProps(),\n\n emits: {\n 'click:action': (e: Event) => true,\n },\n\n setup (props, { emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { dimensionStyles } = useDimension(props)\n const { displayClasses } = useDisplay()\n\n function onClickAction (e: Event) {\n emit('click:action', e)\n }\n\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText)\n const hasHeadline = !!(slots.headline || props.headline)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(slots.text || props.text)\n const hasMedia = !!(slots.media || props.image || props.icon)\n const size = props.size || (props.image ? 200 : 96)\n\n return (\n \n { hasMedia && (\n
    \n { !slots.media ? (\n <>\n { props.image ? (\n \n ) : props.icon ? (\n \n ) : undefined }\n \n ) : (\n \n { slots.media() }\n \n )}\n
    \n )}\n\n { hasHeadline && (\n
    \n { slots.headline?.() ?? props.headline }\n
    \n )}\n\n { hasTitle && (\n
    \n { slots.title?.() ?? props.title }\n
    \n )}\n\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default && (\n
    \n { slots.default() }\n
    \n )}\n\n { hasActions && (\n
    \n \n {\n slots.actions?.({ props: { onClick: onClickAction } }) ?? (\n \n )\n }\n \n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VEmptyState = InstanceType\n","export { VExpansionPanels } from \"./VExpansionPanels.mjs\";\nexport { VExpansionPanel } from \"./VExpansionPanel.mjs\";\nexport { VExpansionPanelText } from \"./VExpansionPanelText.mjs\";\nexport { VExpansionPanelTitle } from \"./VExpansionPanelTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VExpansionPanels } from './VExpansionPanels'\nexport { VExpansionPanel } from './VExpansionPanel'\nexport { VExpansionPanelText } from './VExpansionPanelText'\nexport { VExpansionPanelTitle } from './VExpansionPanelTitle'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VExpansionPanel.css\";\n\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelProps } from \"./VExpansionPanel.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'];\nexport const makeVExpansionPanelsProps = propsFactory({\n flat: Boolean,\n ...makeGroupProps(),\n ...pick(makeVExpansionPanelProps(), ['bgColor', 'collapseIcon', 'color', 'eager', 'elevation', 'expandIcon', 'focusable', 'hideActions', 'readonly', 'ripple', 'rounded', 'tile', 'static']),\n ...makeThemeProps(),\n ...makeComponentProps(),\n ...makeTagProps(),\n variant: {\n type: String,\n default: 'default',\n validator: v => allowedVariants.includes(v)\n }\n}, 'VExpansionPanels');\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n props: makeVExpansionPanelsProps(),\n emits: {\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n next,\n prev\n } = useGroup(props, VExpansionPanelSymbol);\n const {\n themeClasses\n } = provideTheme(props);\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);\n provideDefaults({\n VExpansionPanel: {\n bgColor: toRef(props, 'bgColor'),\n collapseIcon: toRef(props, 'collapseIcon'),\n color: toRef(props, 'color'),\n eager: toRef(props, 'eager'),\n elevation: toRef(props, 'elevation'),\n expandIcon: toRef(props, 'expandIcon'),\n focusable: toRef(props, 'focusable'),\n hideActions: toRef(props, 'hideActions'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n rounded: toRef(props, 'rounded'),\n static: toRef(props, 'static')\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-expansion-panels', {\n 'v-expansion-panels--flat': props.flat,\n 'v-expansion-panels--tile': props.tile\n }, themeClasses.value, variantClass.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n prev,\n next\n })]\n }));\n return {\n next,\n prev\n };\n }\n});\n//# sourceMappingURL=VExpansionPanels.mjs.map","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { makeVExpansionPanelProps } from './VExpansionPanel'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport type VExpansionPanelSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VExpansionPanelSlots = {\n default: VExpansionPanelSlot\n}\n\nexport const makeVExpansionPanelsProps = propsFactory({\n flat: Boolean,\n\n ...makeGroupProps(),\n ...pick(makeVExpansionPanelProps(), [\n 'bgColor',\n 'collapseIcon',\n 'color',\n 'eager',\n 'elevation',\n 'expandIcon',\n 'focusable',\n 'hideActions',\n 'readonly',\n 'ripple',\n 'rounded',\n 'tile',\n 'static',\n ]),\n ...makeThemeProps(),\n ...makeComponentProps(),\n ...makeTagProps(),\n\n variant: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'VExpansionPanels')\n\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n\n props: makeVExpansionPanelsProps(),\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { next, prev } = useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n bgColor: toRef(props, 'bgColor'),\n collapseIcon: toRef(props, 'collapseIcon'),\n color: toRef(props, 'color'),\n eager: toRef(props, 'eager'),\n elevation: toRef(props, 'elevation'),\n expandIcon: toRef(props, 'expandIcon'),\n focusable: toRef(props, 'focusable'),\n hideActions: toRef(props, 'hideActions'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n rounded: toRef(props, 'rounded'),\n static: toRef(props, 'static'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.({ prev, next }) }\n \n ))\n\n return {\n next,\n prev,\n }\n },\n})\n\nexport type VExpansionPanels = InstanceType\n","// Types\n\nexport const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey = Symbol.for('vuetify:v-expansion-panel')\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelTextProps, VExpansionPanelText } from \"./VExpansionPanelText.mjs\";\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from \"./VExpansionPanelTitle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, provide } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelProps = propsFactory({\n title: String,\n text: String,\n bgColor: String,\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n ...makeVExpansionPanelTextProps()\n}, 'VExpansionPanel');\nexport const VExpansionPanel = genericComponent()({\n name: 'VExpansionPanel',\n props: makeVExpansionPanelProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupItem = useGroupItem(props, VExpansionPanelSymbol);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled);\n const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index);\n return arr;\n }, []));\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === 1);\n });\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);\n });\n provide(VExpansionPanelSymbol, groupItem);\n useRender(() => {\n const hasText = !!(slots.text || props.text);\n const hasTitle = !!(slots.title || props.title);\n const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);\n const expansionPanelTextProps = VExpansionPanelText.filterProps(props);\n return _createVNode(props.tag, {\n \"class\": ['v-expansion-panel', {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value\n }, roundedClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": ['v-expansion-panel__shadow', ...elevationClasses.value]\n }, null), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VExpansionPanelTitle: {\n ...expansionPanelTitleProps\n },\n VExpansionPanelText: {\n ...expansionPanelTextProps\n }\n }\n }, {\n default: () => [hasTitle && _createVNode(VExpansionPanelTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title ? slots.title() : props.title]\n }), hasText && _createVNode(VExpansionPanelText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text ? slots.text() : props.text]\n }), slots.default?.()]\n })]\n });\n });\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VExpansionPanel.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { makeVExpansionPanelTextProps, VExpansionPanelText } from './VExpansionPanelText'\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelProps = propsFactory({\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n ...makeVExpansionPanelTextProps(),\n}, 'VExpansionPanel')\n\nexport type VExpansionPanelSlots = {\n default: never\n title: never\n text: never\n}\n\nexport const VExpansionPanel = genericComponent()({\n name: 'VExpansionPanel',\n\n props: makeVExpansionPanelProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props)\n const expansionPanelTextProps = VExpansionPanelText.filterProps(props)\n\n return (\n \n \n\n \n { hasTitle && (\n \n { slots.title ? slots.title() : props.title }\n \n )}\n\n { hasText && (\n \n { slots.text ? slots.text() : props.text }\n \n )}\n\n { slots.default?.() }\n \n \n )\n })\n\n return {\n groupItem,\n }\n },\n})\n\nexport type VExpansionPanel = InstanceType\n","import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\"; // Utilities\nimport { inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelTextProps = propsFactory({\n ...makeComponentProps(),\n ...makeLazyProps()\n}, 'VExpansionPanelText');\nexport const VExpansionPanelText = genericComponent()({\n name: 'VExpansionPanelText',\n props: makeVExpansionPanelTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel');\n const {\n hasContent,\n onAfterLeave\n } = useLazy(props, expansionPanel.isSelected);\n useRender(() => _createVNode(VExpandTransition, {\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-expansion-panel-text', props.class],\n \"style\": props.style\n }, [slots.default && hasContent.value && _createVNode(\"div\", {\n \"class\": \"v-expansion-panel-text__wrapper\"\n }, [slots.default?.()])]), [[_vShow, expansionPanel.isSelected.value]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelText.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\n\n// Utilities\nimport { inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTextProps = propsFactory({\n ...makeComponentProps(),\n ...makeLazyProps(),\n}, 'VExpansionPanelText')\n\nexport const VExpansionPanelText = genericComponent()({\n name: 'VExpansionPanelText',\n\n props: makeVExpansionPanelTextProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel')\n\n const { hasContent, onAfterLeave } = useLazy(props, expansionPanel.isSelected)\n\n useRender(() => (\n \n \n { slots.default && hasContent.value && (\n
    \n { slots.default?.() }\n
    \n )}\n \n
    \n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelText = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false\n },\n readonly: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VExpansionPanelTitle');\nexport const VExpansionPanelTitle = genericComponent()({\n name: 'VExpansionPanelTitle',\n directives: {\n Ripple\n },\n props: makeVExpansionPanelTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n dimensionStyles\n } = useDimension(props);\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly\n }));\n const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);\n useRender(() => _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-expansion-panel-title', {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n 'v-expansion-panel-title--focusable': props.focusable,\n 'v-expansion-panel-title--static': props.static\n }, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"type\": \"button\",\n \"tabindex\": expansionPanel.disabled.value ? -1 : undefined,\n \"disabled\": expansionPanel.disabled.value,\n \"aria-expanded\": expansionPanel.isSelected.value,\n \"onClick\": !props.readonly ? expansionPanel.toggle : undefined\n }, [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__overlay\"\n }, null), slots.default?.(slotProps.value), !props.hideActions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: icon.value\n }\n }\n }, {\n default: () => [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__icon\"\n }, [slots.actions?.(slotProps.value) ?? _createVNode(VIcon, null, null)])]\n })]), [[_resolveDirective(\"ripple\"), props.ripple]]));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelTitle.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: ExpansionPanelTitleSlot\n actions: ExpansionPanelTitleSlot\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VExpansionPanelTitle')\n\nexport const VExpansionPanelTitle = genericComponent()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: makeVExpansionPanelTitleProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n const { dimensionStyles } = useDimension(props)\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n \n \n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n \n \n { slots.actions?.(slotProps.value) ?? }\n \n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType\n","export { VFab } from \"./VFab.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFab } from './VFab'\n","import { withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, vShow as _vShow } from \"vue\";\n// Styles\nimport \"./VFab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true\n },\n ...omit(makeVBtnProps({\n active: true\n }), ['location']),\n ...makeLayoutItemProps(),\n ...makeLocationProps(),\n ...makeTransitionProps({\n transition: 'fab-transition'\n })\n}, 'VFab');\nexport const VFab = genericComponent()({\n name: 'VFab',\n props: makeVFabProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const height = shallowRef(56);\n const layoutItemStyles = ref();\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n height.value = entries[0].target.clientHeight;\n });\n const hasPosition = computed(() => props.app || props.absolute);\n const position = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ').shift() ?? 'bottom';\n });\n const orientation = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ')[1] ?? 'end';\n });\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n const vFabRef = ref();\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(\"div\", {\n \"ref\": vFabRef,\n \"class\": ['v-fab', {\n 'v-fab--absolute': props.absolute,\n 'v-fab--app': !!props.app,\n 'v-fab--extended': props.extended,\n 'v-fab--offset': props.offset,\n [`v-fab--${position.value}`]: hasPosition.value,\n [`v-fab--${orientation.value}`]: hasPosition.value\n }, props.class],\n \"style\": [props.app ? {\n ...layoutItemStyles.value\n } : {\n height: 'inherit',\n width: undefined\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-fab__container\"\n }, [_createVNode(MaybeTransition, {\n \"appear\": props.appear,\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(VBtn, _mergeProps({\n \"ref\": resizeRef\n }, btnProps, {\n \"active\": undefined,\n \"location\": undefined\n }), slots), [[_vShow, props.active]])]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VFab.mjs.map","// Styles\nimport './VFab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\nimport type { Position } from '@/composables/layout'\n\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...omit(makeVBtnProps({ active: true }), ['location']),\n ...makeLayoutItemProps(),\n ...makeLocationProps(),\n ...makeTransitionProps({ transition: 'fab-transition' }),\n}, 'VFab')\n\nexport const VFab = genericComponent()({\n name: 'VFab',\n\n props: makeVFabProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const height = shallowRef(56)\n const layoutItemStyles = ref()\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n height.value = entries[0].target.clientHeight\n })\n\n const hasPosition = computed(() => props.app || props.absolute)\n\n const position = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location?.split(' ').shift() ?? 'bottom'\n }) as ComputedRef\n\n const orientation = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location?.split(' ')[1] ?? 'end'\n })\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n const vFabRef = ref()\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n \n
    \n \n \n \n
    \n \n )\n })\n\n return {}\n },\n})\n\nexport type VFab = InstanceType\n","export { VField } from \"./VField.mjs\";\nexport { VFieldLabel } from \"./VFieldLabel.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VField } from './VField'\nexport { VFieldLabel } from './VFieldLabel'\n","export { VFileInput } from \"./VFileInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFileInput } from './VFileInput'\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VFileInput.css\";\n\n// Components\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VCounter } from \"../VCounter/index.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize'\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter'\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String],\n default: false,\n validator: v => {\n return typeof v === 'boolean' || [1000, 1024].includes(Number(v));\n }\n },\n ...makeVInputProps({\n prependIcon: '$file'\n }),\n modelValue: {\n type: [Array, Object],\n default: props => props.multiple ? [] : null,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object');\n }\n },\n ...makeVFieldProps({\n clearable: true\n })\n}, 'VFileInput');\nexport const VFileInput = genericComponent()({\n name: 'VFileInput',\n inheritAttrs: false,\n props: makeVFileInputProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': files => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => !props.multiple && Array.isArray(val) ? val[0] : val);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined);\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, _ref2) => {\n let {\n size = 0\n } = _ref2;\n return bytes + size;\n }, 0));\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value));\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const {\n name = '',\n size = 0\n } = file;\n return !props.showSize ? name : `${name} (${humanReadableFileSize(size, base.value)})`;\n }));\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0;\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value);else return t(props.counterString, fileCount);\n });\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => isFocused.value || props.active);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onClickPrepend(e) {\n inputRef.value?.click();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onControlClick(e) {\n inputRef.value?.click();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = [];\n callEvent(props['onClick:clear'], e);\n });\n }\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length;\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = '';\n }\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-file-input', {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style,\n \"onClick:prepend\": onClickPrepend\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref3 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref3;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"prepend-icon\": props.prependIcon,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref4 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref4;\n return _createVNode(_Fragment, null, [_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"type\": \"file\",\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"multiple\": props.multiple,\n \"name\": props.name,\n \"onClick\": e => {\n e.stopPropagation();\n if (isReadonly.value) e.preventDefault();\n onFocus();\n },\n \"onChange\": e => {\n if (!e.target) return;\n const target = e.target;\n model.value = [...(target.files ?? [])];\n },\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), _createVNode(\"div\", {\n \"class\": fieldClass\n }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value\n }) : props.chips ? fileNames.value.map(text => _createVNode(VChip, {\n \"key\": text,\n \"size\": \"small\",\n \"text\": text\n }, null)) : fileNames.value.join(', '))])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": !!model.value?.length,\n \"value\": counterValue.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VFileInput.mjs.map","// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref()\n const vFieldRef = ref()\n const inputRef = ref()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n
    \n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n \n ))\n : fileNames.value.join(', ')\n )}\n
    \n \n ),\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n
    \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType\n","export { VFooter } from \"./VFooter.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFooter } from './VFooter'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VFooter.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'footer'\n }),\n ...makeThemeProps()\n}, 'VFooter');\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n props: makeVFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const layoutItemStyles = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const autoHeight = shallowRef(32);\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n autoHeight.value = entries[0].target.clientHeight;\n });\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {\n height: convertToUnit(props.height)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFooter.mjs.map","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n}, 'VFooter')\n\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n\n props: makeVFooterProps(),\n\n setup (props, { slots }) {\n const layoutItemStyles = ref()\n\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = shallowRef(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VFooter = InstanceType\n","export { VForm } from \"./VForm.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VForm } from './VForm'\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createForm, makeFormProps } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps()\n}, 'VForm');\nexport const VForm = genericComponent()({\n name: 'VForm',\n props: makeVFormProps(),\n emits: {\n 'update:modelValue': val => true,\n submit: e => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const form = createForm(props);\n const formRef = ref();\n function onReset(e) {\n e.preventDefault();\n form.reset();\n }\n function onSubmit(_e) {\n const e = _e;\n const ready = form.validate();\n e.then = ready.then.bind(ready);\n e.catch = ready.catch.bind(ready);\n e.finally = ready.finally.bind(ready);\n emit('submit', e);\n if (!e.defaultPrevented) {\n ready.then(_ref2 => {\n let {\n valid\n } = _ref2;\n if (valid) {\n formRef.value?.submit();\n }\n });\n }\n e.preventDefault();\n }\n useRender(() => _createVNode(\"form\", {\n \"ref\": formRef,\n \"class\": ['v-form', props.class],\n \"style\": props.style,\n \"novalidate\": true,\n \"onReset\": onReset,\n \"onSubmit\": onSubmit\n }, [slots.default?.(form)]));\n return forwardRefs(form, formRef);\n }\n});\n//# sourceMappingURL=VForm.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createForm, makeFormProps } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps(),\n}, 'VForm')\n\ntype VFormSlots = {\n default: ReturnType\n}\n\nexport const VForm = genericComponent()({\n name: 'VForm',\n\n props: makeVFormProps(),\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n \n { slots.default?.(form) }\n \n )))\n\n return forwardRefs(form, formRef)\n },\n})\n\nexport type VForm = InstanceType\n","export { VHover } from \"./VHover.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VHover } from './VHover'\n","// Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVHoverProps = propsFactory({\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n ...makeDelayProps()\n}, 'VHover');\nexport const VHover = genericComponent()({\n name: 'VHover',\n props: makeVHoverProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isHovering = useProxiedModel(props, 'modelValue');\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => !props.disabled && (isHovering.value = value));\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay\n }\n });\n }\n});\n//# sourceMappingURL=VHover.mjs.map","// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\ntype VHoverSlots = {\n default: {\n isHovering: boolean | null\n props: Record\n }\n}\n\nexport const makeVHoverProps = propsFactory({\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: null,\n },\n\n ...makeDelayProps(),\n}, 'VHover')\n\nexport const VHover = genericComponent()({\n name: 'VHover',\n\n props: makeVHoverProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isHovering = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (isHovering.value = value))\n\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n\nexport type VHover = InstanceType\n","export { VInfiniteScroll } from \"./VInfiniteScroll.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VInfiniteScroll } from './VInfiniteScroll'\n","import { createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VInfiniteScroll.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n side: {\n type: String,\n default: 'end',\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n mode: {\n type: String,\n default: 'intersect',\n validator: v => ['intersect', 'manual'].includes(v)\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore'\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty'\n },\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VInfiniteScroll');\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n props: {\n side: {\n type: String,\n required: true\n },\n rootMargin: String\n },\n emits: {\n intersect: (side, isIntersecting) => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val);\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll-intersect\",\n \"style\": {\n '--v-infinite-margin-size': props.rootMargin\n },\n \"ref\": intersectionRef\n }, [_createTextVNode(\"\\xA0\")]));\n return {};\n }\n});\nexport const VInfiniteScroll = genericComponent()({\n name: 'VInfiniteScroll',\n props: makeVInfiniteScrollProps(),\n emits: {\n load: options => true\n },\n setup(props, _ref2) {\n let {\n slots,\n emit\n } = _ref2;\n const rootEl = ref();\n const startStatus = shallowRef('ok');\n const endStatus = shallowRef('ok');\n const margin = computed(() => convertToUnit(props.margin));\n const isIntersecting = shallowRef(false);\n function setScrollAmount(amount) {\n if (!rootEl.value) return;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n rootEl.value[property] = amount;\n }\n function getScrollAmount() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n return rootEl.value[property];\n }\n function getScrollSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';\n return rootEl.value[property];\n }\n function getContainerSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';\n return rootEl.value[property];\n }\n onMounted(() => {\n if (!rootEl.value) return;\n if (props.side === 'start') {\n setScrollAmount(getScrollSize());\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);\n }\n });\n function setStatus(side, status) {\n if (side === 'start') {\n startStatus.value = status;\n } else if (side === 'end') {\n endStatus.value = status;\n }\n }\n function getStatus(side) {\n return side === 'start' ? startStatus.value : endStatus.value;\n }\n let previousScrollSize = 0;\n function handleIntersect(side, _isIntersecting) {\n isIntersecting.value = _isIntersecting;\n if (isIntersecting.value) {\n intersecting(side);\n }\n }\n function intersecting(side) {\n if (props.mode !== 'manual' && !isIntersecting.value) return;\n const status = getStatus(side);\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return;\n previousScrollSize = getScrollSize();\n setStatus(side, 'loading');\n function done(status) {\n setStatus(side, status);\n nextTick(() => {\n if (status === 'empty' || status === 'error') return;\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side);\n });\n });\n });\n });\n }\n });\n }\n emit('load', {\n side,\n done\n });\n }\n const {\n t\n } = useLocale();\n function renderSide(side, status) {\n if (props.side !== side && props.side !== 'both') return;\n const onClick = () => intersecting(side);\n const slotProps = {\n side,\n props: {\n onClick,\n color: props.color\n }\n };\n if (status === 'error') return slots.error?.(slotProps);\n if (status === 'empty') return slots.empty?.(slotProps) ?? _createVNode(\"div\", null, [t(props.emptyText)]);\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n return slots['load-more']?.(slotProps) ?? _createVNode(VBtn, {\n \"variant\": \"outlined\",\n \"color\": props.color,\n \"onClick\": onClick\n }, {\n default: () => [t(props.loadMoreText)]\n });\n }\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => {\n const Tag = props.tag;\n const hasStartIntersect = props.side === 'start' || props.side === 'both';\n const hasEndIntersect = props.side === 'end' || props.side === 'both';\n const intersectMode = props.mode === 'intersect';\n return _createVNode(Tag, {\n \"ref\": rootEl,\n \"class\": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect\n }],\n \"style\": dimensionStyles.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"start\",\n \"side\": \"start\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), slots.default?.(), hasEndIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"end\",\n \"side\": \"end\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('end', endStatus.value)])]\n });\n });\n }\n});\n//# sourceMappingURL=VInfiniteScroll.mjs.map","// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType,\n required: true,\n },\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n  \n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref()\n const startStatus = shallowRef('ok')\n const endStatus = shallowRef('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ??
    { t(props.emptyText) }
    \n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n \n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n \n { t(props.loadMoreText) }\n \n )\n }\n\n return slots.loading?.(slotProps) ?? (\n \n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n \n
    \n { renderSide('start', startStatus.value) }\n
    \n\n { hasStartIntersect && intersectMode && (\n \n )}\n\n { slots.default?.() }\n\n { hasEndIntersect && intersectMode && (\n \n )}\n\n
    \n { renderSide('end', endStatus.value) }\n
    \n \n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType\n","export { VInput } from \"./VInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VInput } from './VInput'\n","export { VItemGroup } from \"./VItemGroup.mjs\";\nexport { VItem } from \"./VItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VItemGroup } from './VItemGroup'\nexport { VItem } from './VItem'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VItemGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VItemGroup');\nexport const VItemGroup = genericComponent()({\n name: 'VItemGroup',\n props: makeVItemGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VItemGroupSymbol);\n return () => _createVNode(props.tag, {\n \"class\": ['v-item-group', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n }\n});\n//# sourceMappingURL=VItemGroup.mjs.map","// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VItemGroup')\n\ntype VItemGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VItemGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VItemGroupSlots,\n) => GenericProps>()({\n name: 'VItemGroup',\n\n props: makeVItemGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n \n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n \n )\n },\n})\n\nexport type VItemGroup = InstanceType\n","// Composables\nimport { VItemGroupSymbol } from \"./VItemGroup.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\";\nexport const VItem = genericComponent()({\n name: 'VItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n select,\n toggle,\n selectedClass,\n value,\n disabled\n } = useGroupItem(props, VItemGroupSymbol);\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value\n });\n }\n});\n//# sourceMappingURL=VItem.mjs.map","// Composables\nimport { VItemGroupSymbol } from './VItemGroup'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\ntype VItemSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean | undefined\n }\n}\n\nexport const VItem = genericComponent()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType\n","// Styles\nimport \"./VKbd.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VKbd = createSimpleFunctional('v-kbd');\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VKbd.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VKbd = createSimpleFunctional('v-kbd')\n\nexport type VKbd = InstanceType\n","export { VLayout } from \"./VLayout.mjs\";\nexport { VLayoutItem } from \"./VLayoutItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLayout } from './VLayout'\nexport { VLayoutItem } from './VLayoutItem'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayout.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLayoutProps = propsFactory({\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLayoutProps()\n}, 'VLayout');\nexport const VLayout = genericComponent()({\n name: 'VLayout',\n props: makeVLayoutProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": [layoutClasses.value, props.class],\n \"style\": [dimensionStyles.value, layoutStyles.value, props.style]\n }, [slots.default?.()]));\n return {\n getLayoutItem,\n items\n };\n }\n});\n//# sourceMappingURL=VLayout.mjs.map","// Styles\nimport './VLayout.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLayoutProps = propsFactory({\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLayoutProps(),\n}, 'VLayout')\n\nexport const VLayout = genericComponent()({\n name: 'VLayout',\n\n props: makeVLayoutProps(),\n\n setup (props, { slots }) {\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n\nexport type VLayout = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayoutItem.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVLayoutItemProps = propsFactory({\n position: {\n type: String,\n required: true\n },\n size: {\n type: [Number, String],\n default: 300\n },\n modelValue: Boolean,\n ...makeComponentProps(),\n ...makeLayoutItemProps()\n}, 'VLayoutItem');\nexport const VLayoutItem = genericComponent()({\n name: 'VLayoutItem',\n props: makeVLayoutItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute')\n });\n return () => _createVNode(\"div\", {\n \"class\": ['v-layout-item', props.class],\n \"style\": [layoutItemStyles.value, props.style]\n }, [slots.default?.()]);\n }\n});\n//# sourceMappingURL=VLayoutItem.mjs.map","// Styles\nimport './VLayoutItem.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVLayoutItemProps = propsFactory({\n position: {\n type: String as PropType<'top' | 'right' | 'bottom' | 'left'>,\n required: true,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n modelValue: Boolean,\n\n ...makeComponentProps(),\n ...makeLayoutItemProps(),\n}, 'VLayoutItem')\n\nexport const VLayoutItem = genericComponent()({\n name: 'VLayoutItem',\n\n props: makeVLayoutItemProps(),\n\n setup (props, { slots }) {\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute'),\n })\n\n return () => (\n \n { slots.default?.() }\n \n )\n },\n})\n\nexport type VLayoutItem = InstanceType\n","export { VLazy } from \"./VLazy.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLazy } from './VLazy'\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVLazyProps = propsFactory({\n modelValue: Boolean,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: 'fade-transition'\n })\n}, 'VLazy');\nexport const VLazy = genericComponent()({\n name: 'VLazy',\n directives: {\n intersect\n },\n props: makeVLazyProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const isActive = useProxiedModel(props, 'modelValue');\n function onIntersect(isIntersecting) {\n if (isActive.value) return;\n isActive.value = isIntersecting;\n }\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"class\": ['v-lazy', props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, {\n default: () => [isActive.value && _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [slots.default?.()]\n })]\n }), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect,\n options: props.options\n }, null]]));\n return {};\n }\n});\n//# sourceMappingURL=VLazy.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVLazyProps = propsFactory({\n modelValue: Boolean,\n options: {\n type: Object as PropType,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'fade-transition' }),\n}, 'VLazy')\n\nexport const VLazy = genericComponent()({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: makeVLazyProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n\n function onIntersect (isIntersecting: boolean) {\n if (isActive.value) return\n\n isActive.value = isIntersecting\n }\n\n useRender(() => (\n \n { isActive.value && (\n \n { slots.default?.() }\n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VLazy = InstanceType\n","export { VLocaleProvider } from \"./VLocaleProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLocaleProvider } from './VLocaleProvider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLocaleProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLocaleProviderProps = propsFactory({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined\n },\n ...makeComponentProps()\n}, 'VLocaleProvider');\nexport const VLocaleProvider = genericComponent()({\n name: 'VLocaleProvider',\n props: makeVLocaleProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = provideLocale(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-locale-provider', rtlClasses.value, props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLocaleProvider.mjs.map","// Styles\nimport './VLocaleProvider.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLocaleProviderProps = propsFactory({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeComponentProps(),\n}, 'VLocaleProvider')\n\nexport const VLocaleProvider = genericComponent()({\n name: 'VLocaleProvider',\n\n props: makeVLocaleProviderProps(),\n\n setup (props, { slots }) {\n const { rtlClasses } = provideLocale(props)\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VLocaleProvider = InstanceType\n","export { VMain } from \"./VMain.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMain } from './VMain'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMain.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useLayout } from \"../../composables/layout.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({\n tag: 'main'\n })\n}, 'VMain');\nexport const VMain = genericComponent()({\n name: 'VMain',\n props: makeVMainProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n mainStyles\n } = useLayout();\n const {\n ssrBootStyles\n } = useSsrBoot();\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-main', {\n 'v-main--scrollable': props.scrollable\n }, props.class],\n \"style\": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]\n }, {\n default: () => [props.scrollable ? _createVNode(\"div\", {\n \"class\": \"v-main__scroller\"\n }, [slots.default?.()]) : slots.default?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMain.mjs.map","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({ tag: 'main' }),\n}, 'VMain')\n\nexport const VMain = genericComponent()({\n name: 'VMain',\n\n props: makeVMainProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n useRender(() => (\n \n { props.scrollable\n ? (\n
    \n { slots.default?.() }\n
    \n )\n : slots.default?.()\n }\n \n ))\n\n return {}\n },\n})\n\nexport type VMain = InstanceType\n","export { VMessages } from \"./VMessages.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMessages } from './VMessages'\n","export { VNavigationDrawer } from \"./VNavigationDrawer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VNavigationDrawer } from './VNavigationDrawer'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VNavigationDrawer.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useSticky } from \"./sticky.mjs\";\nimport { useTouch } from \"./touch.mjs\";\nimport { useRtl } from \"../../composables/index.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, Transition, watch } from 'vue';\nimport { genericComponent, propsFactory, toPhysical, useRender } from \"../../util/index.mjs\"; // Types\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n permanent: Boolean,\n rail: {\n type: Boolean,\n default: null\n },\n railWidth: {\n type: [Number, String],\n default: 56\n },\n scrim: {\n type: [Boolean, String],\n default: true\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256\n },\n location: {\n type: String,\n default: 'start',\n validator: value => locations.includes(value)\n },\n sticky: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps()\n}, 'VNavigationDrawer');\nexport const VNavigationDrawer = genericComponent()({\n name: 'VNavigationDrawer',\n props: makeVNavigationDrawerProps(),\n emits: {\n 'update:modelValue': val => true,\n 'update:rail': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n roundedClasses\n } = useRounded(props);\n const router = useRouter();\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n scopeId\n } = useScopeId();\n const rootEl = ref();\n const isHovering = shallowRef(false);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n isHovering.value = value;\n });\n const width = computed(() => {\n return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);\n });\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value);\n });\n const isPersistent = computed(() => props.persistent);\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));\n const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val));\n });\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && nextTick(() => isActive.value = !val));\n });\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));\n });\n watch(() => props.permanent, val => {\n if (val) isActive.value = true;\n });\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value;\n }\n const {\n isDragging,\n dragProgress\n } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location\n });\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;\n return isDragging.value ? size * dragProgress.value : size;\n });\n const elementSize = computed(() => ['top', 'bottom'].includes(props.location) ? 0 : width.value);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || isSticky.value && typeof isStuck.value !== 'string')\n });\n const {\n isStuck,\n stickyStyles\n } = useSticky({\n rootEl,\n isSticky,\n layoutItemStyles\n });\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const scrimStyles = computed(() => ({\n ...(isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none'\n } : undefined),\n ...layoutItemScrimStyles.value\n }));\n provideDefaults({\n VList: {\n bgColor: 'transparent'\n }\n });\n useRender(() => {\n const hasImage = slots.image || props.image;\n return _createVNode(_Fragment, null, [_createVNode(props.tag, _mergeProps({\n \"ref\": rootEl,\n \"onMouseenter\": runOpenDelay,\n \"onMouseleave\": runCloseDelay,\n \"class\": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--persistent': isPersistent.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style, ['top', 'bottom'].includes(location.value) ? {\n height: 'auto'\n } : {}]\n }, scopeId, attrs), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-navigation-drawer__img\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"alt\": \"\",\n \"cover\": true,\n \"height\": \"inherit\",\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image\n }\n }\n }, slots.image)]), slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__prepend\"\n }, [slots.prepend?.()]), _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__content\"\n }, [slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__append\"\n }, [slots.append?.()])]\n }), _createVNode(Transition, {\n \"name\": \"fade-transition\"\n }, {\n default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],\n \"style\": [scrimStyles.value, scrimColor.backgroundColorStyles.value],\n \"onClick\": () => {\n if (isPersistent.value) return;\n isActive.value = false;\n }\n }, scopeId), null)]\n })]);\n });\n return {\n isStuck\n };\n }\n});\n//# sourceMappingURL=VNavigationDrawer.mjs.map","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref()\n const isHovering = shallowRef(false)\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n isHovering.value = value\n })\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isPersistent = computed(() => props.persistent)\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value\n }\n\n const { isDragging, dragProgress } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const elementSize = computed(() => ['top', 'bottom'].includes(props.location) ? 0 : width.value)\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n \n { hasImage && (\n
    \n { !slots.image ? (\n \n ) : (\n \n )}\n
    \n )}\n\n { slots.prepend && (\n
    \n { slots.prepend?.() }\n
    \n )}\n\n
    \n { slots.default?.() }\n
    \n\n { slots.append && (\n
    \n { slots.append?.() }\n
    \n )}\n \n\n \n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n {\n if (isPersistent.value) return\n isActive.value = false\n }}\n { ...scopeId }\n />\n )}\n \n \n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType\n","// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';\nimport { convertToUnit } from \"../../util/index.mjs\"; // Types\nexport function useSticky(_ref) {\n let {\n rootEl,\n isSticky,\n layoutItemStyles\n } = _ref;\n const isStuck = shallowRef(false);\n const stuckPosition = shallowRef(0);\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;\n return [isSticky.value ? {\n top: 'auto',\n bottom: 'auto',\n height: undefined\n } : undefined, isStuck.value ? {\n [side]: convertToUnit(stuckPosition.value)\n } : {\n top: layoutItemStyles.value.top\n }];\n });\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, {\n passive: true\n });\n } else {\n window.removeEventListener('scroll', onScroll);\n }\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', onScroll);\n });\n let lastScrollTop = 0;\n function onScroll() {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down';\n const rect = rootEl.value.getBoundingClientRect();\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);\n const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue('--v-body-scroll-y')) || 0;\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top';\n stuckPosition.value = layoutTop;\n } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll;\n isStuck.value = true;\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0;\n isStuck.value = 'bottom';\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top;\n isStuck.value = 'top';\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop;\n isStuck.value = 'top';\n }\n }\n lastScrollTop = window.scrollY;\n }\n return {\n isStuck,\n stickyStyles\n };\n}\n//# sourceMappingURL=sticky.mjs.map","// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref, StyleValue } from 'vue'\n\ninterface StickyProps {\n rootEl: Ref\n isSticky: Ref\n layoutItemStyles: Ref\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = shallowRef(false)\n const stuckPosition = shallowRef(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value!).getPropertyValue('--v-body-scroll-y')) || 0\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop\n isStuck.value = 'top'\n }\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { useVelocity } from \"../../composables/touch.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue';\n\n// Types\n\nexport function useTouch(_ref) {\n let {\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position\n } = _ref;\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, {\n passive: true\n });\n window.addEventListener('touchmove', onTouchmove, {\n passive: false\n });\n window.addEventListener('touchend', onTouchend, {\n passive: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart);\n window.removeEventListener('touchmove', onTouchmove);\n window.removeEventListener('touchend', onTouchend);\n });\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value));\n const {\n addMovement,\n endTouch,\n getVelocity\n } = useVelocity();\n let maybeDragging = false;\n const isDragging = shallowRef(false);\n const dragProgress = shallowRef(0);\n const offset = shallowRef(0);\n let start;\n function getOffset(pos, active) {\n return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);\n }\n function getProgress(pos) {\n let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();\n return limit ? Math.max(0, Math.min(1, progress)) : progress;\n }\n function onTouchstart(e) {\n if (touchless.value) return;\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n const touchZone = 25;\n const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();\n const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());\n if (inTouchZone || inElement || isActive.value && isTemporary.value) {\n start = [touchX, touchY];\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value);\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);\n maybeDragging = offset.value > -20 && offset.value < 80;\n endTouch(e);\n addMovement(e);\n }\n }\n function onTouchmove(e) {\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false;\n return;\n }\n const dx = Math.abs(touchX - start[0]);\n const dy = Math.abs(touchY - start[1]);\n const thresholdMet = isHorizontal.value ? dx > dy && dx > 3 : dy > dx && dy > 3;\n if (thresholdMet) {\n isDragging.value = true;\n maybeDragging = false;\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false;\n }\n }\n if (!isDragging.value) return;\n e.preventDefault();\n addMovement(e);\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false);\n dragProgress.value = Math.max(0, Math.min(1, progress));\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true);\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false);\n }\n }\n function onTouchend(e) {\n maybeDragging = false;\n if (!isDragging.value) return;\n addMovement(e);\n isDragging.value = false;\n const velocity = getVelocity(e.changedTouches[0].identifier);\n const vx = Math.abs(velocity.x);\n const vy = Math.abs(velocity.y);\n const thresholdMet = isHorizontal.value ? vx > vy && vx > 400 : vy > vx && vy > 3;\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n }[position.value] || oops());\n } else {\n isActive.value = dragProgress.value > 0.5;\n }\n }\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),\n transition: 'none'\n } : undefined;\n });\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null;\n const transition = el.value?.style.transition ?? null;\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none');\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null);\n });\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform);\n el.value?.style.setProperty('transition', transition);\n });\n });\n return {\n isDragging,\n dragProgress,\n dragStyles\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position,\n}: {\n el: Ref\n isActive: Ref\n isTemporary: Ref\n width: Ref\n touchless: Ref\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = shallowRef(false)\n const dragProgress = shallowRef(0)\n const offset = shallowRef(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n maybeDragging = offset.value > -20 && offset.value < 80\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null\n const transition = el.value?.style.transition ?? null\n\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none')\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null)\n })\n\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform)\n el.value?.style.setProperty('transition', transition)\n })\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","// Utilities\nimport { CircularBuffer } from \"../util/index.mjs\";\nconst HORIZON = 100; // ms\nconst HISTORY = 20; // number of samples to keep\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity(work) {\n const sqrt2 = 1.41421356237;\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity(samples) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0;\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0;\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0;\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue;\n }\n const vprev = kineticEnergyToVelocity(work); // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t); // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr);\n if (i === samples.length - 1) {\n work *= 0.5;\n }\n }\n return kineticEnergyToVelocity(work) * 1000;\n}\nexport function useVelocity() {\n const touches = {};\n function addMovement(e) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));\n samples.push([e.timeStamp, touch]);\n });\n }\n function endTouch(e) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier];\n });\n }\n function getVelocity(id) {\n const samples = touches[id]?.values().reverse();\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`);\n }\n const newest = samples[0];\n const x = [];\n const y = [];\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break;\n x.push({\n t: val[0],\n d: val[1].clientX\n });\n y.push({\n t: val[0],\n d: val[1].clientY\n });\n }\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction() {\n const {\n x,\n y\n } = this;\n const [absX, absY] = [Math.abs(x), Math.abs(y)];\n return absX > absY && x >= 0 ? 'right' : absX > absY && x <= 0 ? 'left' : absY > absX && y >= 0 ? 'down' : absY > absX && y <= 0 ? 'up' : oops();\n }\n };\n }\n return {\n addMovement,\n endTouch,\n getVelocity\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","// Utilities\nimport { CircularBuffer } from '@/util'\n\nconst HORIZON = 100 // ms\nconst HISTORY = 20 // number of samples to keep\n\nexport interface Sample {\n t: number\n d: number\n}\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity (work: number) {\n const sqrt2 = 1.41421356237\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity (samples: Sample[]) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t)\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue\n }\n const vprev = kineticEnergyToVelocity(work) // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t) // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr)\n if (i === samples.length - 1) {\n work *= 0.5\n }\n }\n return kineticEnergyToVelocity(work) * 1000\n}\n\nexport function useVelocity () {\n const touches: Record | undefined> = {}\n\n function addMovement (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY))\n samples.push([e.timeStamp, touch])\n })\n }\n\n function endTouch (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier]\n })\n }\n\n function getVelocity (id: number) {\n const samples = touches[id]?.values().reverse()\n\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`)\n }\n\n const newest = samples[0]\n const x: Sample[] = []\n const y: Sample[] = []\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break\n\n x.push({ t: val[0], d: val[1].clientX })\n y.push({ t: val[0], d: val[1].clientY })\n }\n\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction () {\n const { x, y } = this\n const [absX, absY] = [Math.abs(x), Math.abs(y)]\n\n return absX > absY && x >= 0 ? 'right'\n : absX > absY && x <= 0 ? 'left'\n : absY > absX && y >= 0 ? 'down'\n : absY > absX && y <= 0 ? 'up'\n : oops()\n },\n }\n }\n\n return { addMovement, endTouch, getVelocity }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","export { VNoSsr } from \"./VNoSsr.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VNoSsr } from './VNoSsr'\n","// Composables\nimport { useHydration } from \"../../composables/hydration.mjs\"; // Utilities\nimport { defineComponent } from \"../../util/index.mjs\";\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n const show = useHydration();\n return () => show.value && slots.default?.();\n }\n});\n//# sourceMappingURL=VNoSsr.mjs.map","// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = useHydration()\n\n return () => show.value && slots.default?.()\n },\n})\n\nexport type VNoSsr = InstanceType\n","export { VOtpInput } from \"./VOtpInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VOtpInput } from './VOtpInput'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VOtpInput.css\";\n\n// Components\nimport { makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { VOverlay } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/VProgressCircular.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp'\n },\n length: {\n type: [Number, String],\n default: 6\n },\n modelValue: {\n type: [Number, String],\n default: undefined\n },\n placeholder: String,\n type: {\n type: String,\n default: 'number'\n },\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined'\n }), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'rounded', 'style', 'theme', 'variant'])\n}, 'VOtpInput');\nexport const VOtpInput = genericComponent()({\n name: 'VOtpInput',\n props: makeVOtpInputProps(),\n emits: {\n finish: val => true,\n 'update:focused': val => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));\n const {\n t\n } = useLocale();\n const length = computed(() => Number(props.length));\n const fields = computed(() => Array(length.value).fill(0));\n const focusIndex = ref(-1);\n const contentRef = ref();\n const inputRef = ref([]);\n const current = computed(() => inputRef.value[focusIndex.value]);\n function onInput() {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = '';\n return;\n }\n const array = model.value.slice();\n const value = current.value.value;\n array[focusIndex.value] = value;\n let target = null;\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1;\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next';\n }\n model.value = array;\n if (target) focusChild(contentRef.value, target);\n }\n function onKeydown(e) {\n const array = model.value.slice();\n const index = focusIndex.value;\n let target = null;\n if (!['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].includes(e.key)) return;\n e.preventDefault();\n if (e.key === 'ArrowLeft') {\n target = 'prev';\n } else if (e.key === 'ArrowRight') {\n target = 'next';\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = '';\n model.value = array;\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev';\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select();\n });\n }\n }\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value, target);\n }\n });\n }\n function onPaste(index, e) {\n e.preventDefault();\n e.stopPropagation();\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';\n if (isValidNumber(clipboardText)) return;\n model.value = clipboardText.split('');\n inputRef.value?.[index].blur();\n }\n function reset() {\n model.value = [];\n }\n function onFocus(e, index) {\n focus();\n focusIndex.value = index;\n }\n function onBlur() {\n blur();\n focusIndex.value = -1;\n }\n function isValidNumber(value) {\n return props.type === 'number' && /[^0-9]/g.test(value);\n }\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant)\n }\n }, {\n scoped: true\n });\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''));\n }, {\n deep: true\n });\n watch(focusIndex, val => {\n if (val < 0) return;\n nextTick(() => {\n inputRef.value[val]?.select();\n });\n });\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-otp-input', {\n 'v-otp-input--divided': !!props.divider\n }, props.class],\n \"style\": [props.style]\n }, rootAttrs), [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-otp-input__content\",\n \"style\": [dimensionStyles.value]\n }, [fields.value.map((_, i) => _createVNode(_Fragment, null, [props.divider && i !== 0 && _createVNode(\"span\", {\n \"class\": \"v-otp-input__divider\"\n }, [props.divider]), _createVNode(VField, {\n \"focused\": isFocused.value && props.focusAll || focusIndex.value === i,\n \"key\": i\n }, {\n ...slots,\n loader: undefined,\n default: () => {\n return _createVNode(\"input\", {\n \"ref\": val => inputRef.value[i] = val,\n \"aria-label\": t(props.label, i + 1),\n \"autofocus\": i === 0 && props.autofocus,\n \"autocomplete\": \"one-time-code\",\n \"class\": ['v-otp-input__field'],\n \"disabled\": props.disabled,\n \"inputmode\": props.type === 'number' ? 'numeric' : 'text',\n \"min\": props.type === 'number' ? 0 : undefined,\n \"maxlength\": \"1\",\n \"placeholder\": props.placeholder,\n \"type\": props.type === 'number' ? 'text' : props.type,\n \"value\": model.value[i],\n \"onInput\": onInput,\n \"onFocus\": e => onFocus(e, i),\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"onPaste\": event => onPaste(i, event)\n }, null);\n }\n })])), _createVNode(\"input\", _mergeProps({\n \"class\": \"v-otp-input-input\",\n \"type\": \"hidden\"\n }, inputAttrs, {\n \"value\": model.value.join('')\n }), null), _createVNode(VOverlay, {\n \"contained\": true,\n \"content-class\": \"v-otp-input__loader\",\n \"model-value\": !!props.loading,\n \"persistent\": true\n }, {\n default: () => [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"size\": \"24\",\n \"width\": \"2\"\n }, null)]\n }), slots.default?.()])]);\n });\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur());\n },\n focus: () => {\n inputRef.value?.[0].focus();\n },\n reset,\n isFocused\n };\n }\n});\n//# sourceMappingURL=VOtpInput.mjs.map","// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref()\n const inputRef = ref([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? ''\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n \n \n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n { props.divider }\n )}\n\n \n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n \n \n ))}\n\n \n\n \n { slots.loader?.() ?? (\n \n )}\n \n\n { slots.default?.() }\n \n \n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType\n","export { VParallax } from \"./VParallax.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VParallax } from './VParallax'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VParallax.css\";\n\n// Components\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction floor(val) {\n return Math.floor(Math.abs(val)) * Math.sign(val);\n}\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5\n },\n ...makeComponentProps()\n}, 'VParallax');\nexport const VParallax = genericComponent()({\n name: 'VParallax',\n props: makeVParallaxProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const {\n height: displayHeight\n } = useDisplay();\n const root = ref();\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el;\n });\n let scrollParent;\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value);\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent;\n scrollParent.addEventListener('scroll', onScroll, {\n passive: true\n });\n onScroll();\n } else {\n scrollParent.removeEventListener('scroll', onScroll);\n }\n });\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll);\n });\n watch(displayHeight, onScroll);\n watch(() => contentRect.value?.height, onScroll);\n const scale = computed(() => {\n return 1 - clamp(+props.scale);\n });\n let frame = -1;\n function onScroll() {\n if (!isIntersecting.value) return;\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n const el = (root.value?.$el).querySelector('.v-img__img');\n if (!el) return;\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;\n const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;\n const height = contentRect.value.height;\n const center = top + (height - scrollHeight) / 2;\n const translate = floor((scrollPos - center) * scale.value);\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height);\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`);\n });\n }\n useRender(() => _createVNode(VImg, {\n \"class\": ['v-parallax', {\n 'v-parallax--active': isIntersecting.value\n }, props.class],\n \"style\": props.style,\n \"ref\": root,\n \"cover\": true,\n \"onLoadstart\": onScroll,\n \"onLoad\": onScroll\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VParallax.mjs.map","// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue'\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5,\n },\n\n ...makeComponentProps(),\n}, 'VParallax')\n\nexport const VParallax = genericComponent()({\n name: 'VParallax',\n\n props: makeVParallaxProps(),\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n const { height: displayHeight } = useDisplay()\n\n const root = ref()\n\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el\n })\n\n let scrollParent: Element | Document\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n watch(displayHeight, onScroll)\n watch(() => contentRect.value?.height, onScroll)\n\n const scale = computed(() => {\n return 1 - clamp(+props.scale)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop\n const top = intersectionRef.value!.getBoundingClientRect().top + scrollPos\n const height = contentRect.value!.height\n\n const center = top + (height - scrollHeight) / 2\n const translate = floor((scrollPos - center) * scale.value)\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height)\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`)\n })\n }\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType\n","export { VRadio } from \"./VRadio.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRadio } from './VRadio'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.mjs.map","// Components\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\n\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn',\n }),\n}, 'VRadio')\n\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n\n props: makeVRadioProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType\n","export { VRadioGroup } from \"./VRadioGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRadioGroup } from './VRadioGroup'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { VSelectionControl } from \"../VSelectionControl/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadioGroup.mjs.map","// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControl } from '@/components/VSelectionControl'\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { GenericProps } from '@/util'\n\nexport type VRadioGroupSlots = Omit & {\n default: never\n label: {\n label: string | undefined\n props: Record\n }\n}\n\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n}, 'VRadioGroup')\n\nexport const VRadioGroup = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VRadioGroupSlots,\n) => GenericProps>()({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: makeVRadioGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const controlProps = VSelectionControl.filterProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n \n { label }\n \n )}\n\n \n \n ),\n }}\n
    \n )\n })\n\n return {}\n },\n})\n\nexport type VRadioGroup = InstanceType\n","export { VSelectionControl } from \"./VSelectionControl.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelectionControl } from './VSelectionControl'\n","export { VRangeSlider } from \"./VRangeSlider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRangeSlider } from './VRangeSlider'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"../VSlider/VSlider.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { getOffset, makeSliderProps, useSlider, useSteps } from \"../VSlider/slider.mjs\";\nimport { VSliderThumb } from \"../VSlider/VSliderThumb.mjs\";\nimport { VSliderTrack } from \"../VSlider/VSliderTrack.mjs\"; // Composables\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRangeSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n strict: Boolean,\n modelValue: {\n type: Array,\n default: () => [0, 0]\n }\n}, 'VRangeSlider');\nexport const VRangeSlider = genericComponent()({\n name: 'VRangeSlider',\n props: makeVRangeSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': value => true,\n end: value => true,\n start: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const startThumbRef = ref();\n const stopThumbRef = ref();\n const inputRef = ref();\n const {\n rtlClasses\n } = useRtl();\n function getActiveThumb(e) {\n if (!startThumbRef.value || !stopThumbRef.value) return;\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction);\n const a = Math.abs(startOffset);\n const b = Math.abs(stopOffset);\n return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;\n }\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, arr => {\n if (!arr?.length) return [0, 0];\n return arr.map(value => steps.roundValue(value));\n });\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n trackContainerRef,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];\n if (!props.strict && newValue[0] < newValue[1]) {\n model.value = newValue;\n }\n emit('end', model.value);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n const [start, stop] = model.value;\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;\n activeThumbRef.value?.focus();\n }\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(value, stop), stop];\n } else {\n model.value = [start, Math.max(start, value)];\n }\n },\n getActiveThumb\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStart = computed(() => position(model.value[0]));\n const trackStop = computed(() => position(model.value[1]));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', 'v-range-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style,\n \"ref\": inputRef\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": `${id.value}_start`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[0]\n }, null), _createVNode(\"input\", {\n \"id\": `${id.value}_stop`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[1]\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": trackStart.value,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": startThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === startThumbRef.value?.$el,\n \"modelValue\": model.value[0],\n \"onUpdate:modelValue\": v => model.value = [v, model.value[1]],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = startThumbRef.value?.$el;\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (model.value[0] === model.value[1] && model.value[1] === min.value && e.relatedTarget !== stopThumbRef.value?.$el) {\n startThumbRef.value?.$el.blur();\n stopThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": min.value,\n \"max\": model.value[1],\n \"position\": trackStart.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": stopThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === stopThumbRef.value?.$el,\n \"modelValue\": model.value[1],\n \"onUpdate:modelValue\": v => model.value = [model.value[0], v],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = stopThumbRef.value?.$el;\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (model.value[0] === model.value[1] && model.value[0] === max.value && e.relatedTarget !== startThumbRef.value?.$el) {\n stopThumbRef.value?.$el.blur();\n startThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": model.value[0],\n \"max\": max.value,\n \"position\": trackStop.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRangeSlider.mjs.map","// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { getOffset, makeSliderProps, useSlider, useSteps } from '@/components/VSlider/slider'\nimport { VSliderThumb } from '@/components/VSlider/VSliderThumb'\nimport { VSliderTrack } from '@/components/VSlider/VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport type { VSliderSlots } from '../VSlider/VSlider'\n\nexport const makeVRangeSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType,\n default: () => ([0, 0]),\n },\n}, 'VRangeSlider')\n\nexport const VRangeSlider = genericComponent()({\n name: 'VRangeSlider',\n\n props: makeVRangeSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n end: (value: [number, number]) => true,\n start: (value: [number, number]) => true,\n },\n\n setup (props, { slots, emit }) {\n const startThumbRef = ref()\n const stopThumbRef = ref()\n const inputRef = ref()\n const { rtlClasses } = useRtl()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr?.length) return [0, 0]\n\n return arr.map(value => steps.roundValue(value))\n },\n ) as WritableComputedRef<[number, number]> & { readonly externalValue: number[] }\n\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n trackContainerRef,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const newValue: [number, number] = activeThumbRef.value === startThumbRef.value?.$el\n ? [value, model.value[1]]\n : [model.value[0], value]\n\n if (!props.strict && newValue[0] < newValue[1]) {\n model.value = newValue\n }\n\n emit('end', model.value)\n },\n onSliderMove: ({ value }) => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(value, stop), stop]\n } else {\n model.value = [start, Math.max(start, value)]\n }\n },\n getActiveThumb,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n \n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n \n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n \n ) : undefined,\n default: ({ id, messagesId }) => (\n \n \n\n \n\n \n {{ 'tick-label': slots['tick-label'] }}\n \n\n (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n }}\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n }}\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n ripple={ props.ripple }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n\n (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n }}\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n }}\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n ripple={ props.ripple }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRangeSlider = InstanceType\n","export { VRating } from \"./VRating.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRating } from './VRating'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VRating.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef } from 'vue';\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item'\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty'\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull'\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0\n },\n itemLabels: Array,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: v => ['top', 'bottom'].includes(v)\n },\n ripple: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VRating');\nexport const VRating = genericComponent()({\n name: 'VRating',\n props: makeVRatingProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n themeClasses\n } = provideTheme(props);\n const rating = useProxiedModel(props, 'modelValue');\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));\n const range = computed(() => createRange(Number(props.length), 1));\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));\n const hoverIndex = shallowRef(-1);\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1;\n const isFilled = normalizedValue.value >= value;\n const isHovered = hoverIndex.value >= value;\n const isFullIcon = isHovering ? isHovered : isFilled;\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon;\n const activeColor = props.activeColor ?? props.color;\n const color = isFilled || isHovered ? activeColor : props.color;\n return {\n isFilled,\n isHovered,\n icon,\n color\n };\n }));\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter() {\n hoverIndex.value = value;\n }\n function onMouseleave() {\n hoverIndex.value = -1;\n }\n function onClick() {\n if (props.disabled || props.readonly) return;\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value;\n }\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick\n };\n }));\n const name = computed(() => props.name ?? `v-rating-${getUid()}`);\n function VRatingItem(_ref2) {\n let {\n value,\n index,\n showStar = true\n } = _ref2;\n const {\n onMouseenter,\n onMouseleave,\n onClick\n } = eventState.value[index + 1];\n const id = `${name.value}-${String(value).replace('.', '-')}`;\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain'\n };\n return _createVNode(_Fragment, null, [_createVNode(\"label\", {\n \"for\": id,\n \"class\": {\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0\n },\n \"onMouseenter\": onMouseenter,\n \"onMouseleave\": onMouseleave,\n \"onClick\": onClick\n }, [_createVNode(\"span\", {\n \"class\": \"v-rating__hidden\"\n }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value\n }) : _createVNode(VBtn, _mergeProps({\n \"aria-label\": t(props.itemAriaLabel, value, props.length)\n }, btnProps), null)]), _createVNode(\"input\", {\n \"class\": \"v-rating__hidden\",\n \"name\": name.value,\n \"id\": id,\n \"type\": \"radio\",\n \"value\": value,\n \"checked\": normalizedValue.value === value,\n \"tabindex\": -1,\n \"readonly\": props.readonly,\n \"disabled\": props.disabled\n }, null)]);\n }\n function createLabel(labelProps) {\n if (slots['item-label']) return slots['item-label'](labelProps);\n if (labelProps.label) return _createVNode(\"span\", null, [labelProps.label]);\n return _createVNode(\"span\", null, [_createTextVNode(\"\\xA0\")]);\n }\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label'];\n return _createVNode(props.tag, {\n \"class\": ['v-rating', {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(VRatingItem, {\n \"value\": 0,\n \"index\": -1,\n \"showStar\": false\n }, null), range.value.map((value, i) => _createVNode(\"div\", {\n \"class\": \"v-rating__wrapper\"\n }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined, _createVNode(\"div\", {\n \"class\": \"v-rating__item\"\n }, [props.halfIncrements ? _createVNode(_Fragment, null, [_createVNode(VRatingItem, {\n \"value\": value - 0.5,\n \"index\": i * 2\n }, null), _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i * 2 + 1\n }, null)]) : _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i\n }, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined]))]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRating.mjs.map","// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: VRatingItemSlot\n 'item-label': VRatingItemLabelSlot\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VRating')\n\nexport const VRating = genericComponent()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = shallowRef(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n { t(props.itemAriaLabel, value, props.length) }\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n \n )\n }\n \n\n \n \n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return { labelProps.label }\n\n return  \n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n \n \n\n { range.value.map((value, i) => (\n
    \n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n
    \n { props.halfIncrements ? (\n <>\n \n \n \n ) : (\n \n )}\n
    \n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n
    \n ))}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType\n","export { VResponsive } from \"./VResponsive.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VResponsive } from './VResponsive'\n","export { VSelectionControlGroup } from \"./VSelectionControlGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelectionControlGroup } from './VSelectionControlGroup'\n","export { VSheet } from \"./VSheet.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSheet } from './VSheet'\n","export { VSkeletonLoader } from \"./VSkeletonLoader.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSkeletonLoader } from './VSkeletonLoader'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSkeletonLoader.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text'\n};\nfunction genBone(type) {\n let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return _createVNode(\"div\", {\n \"class\": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]\n }, [children]);\n}\nfunction genBones(bone) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@');\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({\n length\n }).map(() => genStructure(type));\n}\nfunction genStructure(type) {\n let children = [];\n if (!type) return children;\n\n // TODO: figure out a better way to type this\n const bone = rootTypes[type];\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type);\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type);\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone);\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone);\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone));\n return [genBone(type, children)];\n}\nfunction mapBones(bones) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure);\n}\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading'\n },\n type: {\n type: [String, Array],\n default: 'ossein'\n },\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps()\n}, 'VSkeletonLoader');\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n props: makeVSkeletonLoaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n t\n } = useLocale();\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')));\n useRender(() => {\n const isLoading = !slots.default || props.loading;\n const loadingProps = props.boilerplate || !isLoading ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert'\n };\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-skeleton-loader', {\n 'v-skeleton-loader--boilerplate': props.boilerplate\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],\n \"style\": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]\n }, loadingProps), [isLoading ? items.value : slots.default?.()]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSkeletonLoader.mjs.map","// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useLocale } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone = T | VSkeletonBone[]\n\nexport type VSkeletonBones = VSkeletonBone\nexport type VSkeletonLoaderType = keyof typeof rootTypes\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n \n { children }\n \n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<\n | VSkeletonLoaderType | (string & {})\n | ReadonlyArray\n >,\n default: 'ossein',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'VSkeletonLoader')\n\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n const loadingProps = (props.boilerplate || !isLoading) ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert',\n }\n\n return (\n \n { isLoading ? items.value : slots.default?.() }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType\n","export { VSlideGroup } from \"./VSlideGroup.mjs\";\nexport { VSlideGroupItem } from \"./VSlideGroupItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSlideGroup } from './VSlideGroup'\nexport { VSlideGroupItem } from './VSlideGroupItem'\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { VSlideGroupSymbol } from \"./VSlideGroup.mjs\";\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupItem = genericComponent()({\n name: 'VSlideGroupItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol);\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value\n });\n }\n});\n//# sourceMappingURL=VSlideGroupItem.mjs.map","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { VSlideGroupSymbol } from './VSlideGroup'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { UnwrapRef } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\ntype VSlideGroupItemSlots = {\n default: {\n isSelected: UnwrapRef\n select: GroupItemProvide['select']\n toggle: GroupItemProvide['toggle']\n selectedClass: UnwrapRef\n }\n}\n\nexport const VSlideGroupItem = genericComponent()({\n name: 'VSlideGroupItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n\nexport type VSlideGroupItem = InstanceType\n","export { VSnackbar } from \"./VSnackbar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSnackbar } from './VSnackbar'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\"; // Composables\nimport { useLayout } from \"../../composables/index.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.mjs\"; // Types\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds());\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds());\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds() - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(() => Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n function onAfterLeave() {\n if (isHovering.value) onPointerleave();\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"model-value\": countdown.time.value\n }, null)]), hasContent && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions({\n isActive\n })])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.mjs.map","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record }\n default: never\n actions: { isActive: Ref }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref()\n const timerRef = ref()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n function onAfterLeave () {\n if (isHovering.value) onPointerleave()\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n \n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n
    \n \n
    \n )}\n\n { hasContent && (\n \n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n \n )}\n\n { slots.actions && (\n \n
    \n { slots.actions({ isActive }) }\n
    \n \n )}\n
    \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType\n","export { VSparkline } from \"./VSparkline.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSparkline } from './VSparkline'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVBarlineProps, VBarline } from \"./VBarline.mjs\";\nimport { makeVTrendlineProps, VTrendline } from \"./VTrendline.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String,\n default: 'trend'\n },\n ...makeVBarlineProps(),\n ...makeVTrendlineProps()\n}, 'VSparkline');\nexport const VSparkline = genericComponent()({\n name: 'VSparkline',\n props: makeVSparklineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10);\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5;\n return height;\n });\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline;\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props);\n return _createVNode(Tag, _mergeProps({\n \"key\": props.type,\n \"class\": textColorClasses.value,\n \"style\": textColorStyles.value,\n \"viewBox\": `0 0 ${props.width} ${parseInt(totalHeight.value, 10)}`\n }, lineProps), slots);\n });\n }\n});\n//# sourceMappingURL=VSparkline.mjs.map","// Components\nimport { makeVBarlineProps, VBarline } from './VBarline'\nimport { makeVTrendlineProps, VTrendline } from './VTrendline'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String as PropType<'trend' | 'bar'>,\n default: 'trend',\n },\n\n ...makeVBarlineProps(),\n ...makeVTrendlineProps(),\n}, 'VSparkline')\n\nexport type VSparklineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport const VSparkline = genericComponent()({\n name: 'VSparkline',\n\n props: makeVSparklineProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10)\n\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5\n\n return height\n })\n\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props)\n\n return (\n \n )\n })\n },\n})\n\nexport type VSparkline = InstanceType\n","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { computed } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n ...makeLineProps()\n}, 'VBarline');\nexport const VBarline = genericComponent()({\n name: 'VBarline',\n props: makeVBarlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `barline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500);\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4);\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)));\n const boundary = computed(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10)\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n function genBars(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n let minValue = props.min != null ? Number(props.min) : Math.min(...values);\n if (minValue > 0 && props.min == null) minValue = 0;\n if (maxValue < 0 && props.max == null) maxValue = 0;\n const gridX = maxX / totalValues;\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n const horizonY = maxY - Math.abs(minValue * gridY);\n return values.map((value, index) => {\n const height = Math.abs(gridY * value);\n return {\n x: minX + index * gridX,\n y: horizonY - height + +(value < 0) * height,\n height,\n value\n };\n });\n }\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genBars(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n const bars = computed(() => genBars(items.value, boundary.value));\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\"\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), _createVNode(\"clipPath\", {\n \"id\": `${id.value}-clip`\n }, [bars.value.map(item => _createVNode(\"rect\", {\n \"x\": item.x + offsetX.value,\n \"y\": item.y,\n \"width\": lineWidth.value,\n \"height\": item.height,\n \"rx\": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0,\n \"ry\": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0\n }, [props.autoDraw && _createVNode(_Fragment, null, [_createVNode(\"animate\", {\n \"attributeName\": \"y\",\n \"from\": item.y + item.height,\n \"to\": item.y,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null), _createVNode(\"animate\", {\n \"attributeName\": \"height\",\n \"from\": \"0\",\n \"to\": item.height,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null)])]))]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + offsetX.value + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"g\", {\n \"clip-path\": `url(#${id.value}-clip)`,\n \"fill\": `url(#${id.value})`\n }, [_createVNode(\"rect\", {\n \"x\": 0,\n \"y\": 0,\n \"width\": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),\n \"height\": props.height\n }, null)])]);\n });\n }\n});\n//# sourceMappingURL=VBarline.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VBarlineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n\n ...makeLineProps(),\n}, 'VBarline')\n\nexport const VBarline = genericComponent()({\n name: 'VBarline',\n\n props: makeVBarlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `barline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500)\n\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4)\n\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)))\n\n const boundary = computed(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10),\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n\n function genBars (\n values: number[],\n boundary: Boundary\n ): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n let minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n if (minValue > 0 && props.min == null) minValue = 0\n if (maxValue < 0 && props.max == null) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n }\n\n const parsedLabels = computed(() => {\n const labels = []\n const points = genBars(items.value, boundary.value)\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = props.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n })\n\n const bars = computed(() => genBars(items.value, boundary.value))\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2)\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n return (\n \n \n \n {\n gradientData.map((color, index) => (\n \n ))\n }\n \n \n\n \n {\n bars.value.map(item => (\n \n { props.autoDraw && (\n <>\n \n \n \n )}\n \n ))\n }\n \n\n { hasLabels.value && (\n \n {\n parsedLabels.value.map((item, i) => (\n \n { slots.label?.({ index: i, value: item.value }) ?? item.value }\n \n ))\n }\n \n )}\n\n \n \n \n \n )\n })\n },\n})\n\nexport type VBarline = InstanceType\n","// Utilities\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeLineProps = propsFactory({\n autoDraw: Boolean,\n autoDrawDuration: [Number, String],\n autoDrawEasing: {\n type: String,\n default: 'ease'\n },\n color: String,\n gradient: {\n type: Array,\n default: () => []\n },\n gradientDirection: {\n type: String,\n validator: val => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top'\n },\n height: {\n type: [String, Number],\n default: 75\n },\n labels: {\n type: Array,\n default: () => []\n },\n labelSize: {\n type: [Number, String],\n default: 7\n },\n lineWidth: {\n type: [String, Number],\n default: 4\n },\n id: String,\n itemValue: {\n type: String,\n default: 'value'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n min: [String, Number],\n max: [String, Number],\n padding: {\n type: [String, Number],\n default: 8\n },\n showLabels: Boolean,\n smooth: Boolean,\n width: {\n type: [Number, String],\n default: 300\n }\n}, 'Line');\n//# sourceMappingURL=line.mjs.map","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type SparklineItem = number | { value: number }\n\nexport const makeLineProps = propsFactory({\n autoDraw: Boolean,\n autoDrawDuration: [Number, String],\n autoDrawEasing: {\n type: String,\n default: 'ease',\n },\n color: String,\n gradient: {\n type: Array as PropType,\n default: () => ([]),\n },\n gradientDirection: {\n type: String as PropType<'top' | 'bottom' | 'left' | 'right'>,\n validator: (val: string) => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top',\n },\n height: {\n type: [String, Number],\n default: 75,\n },\n labels: {\n type: Array as PropType,\n default: () => ([]),\n },\n labelSize: {\n type: [Number, String],\n default: 7,\n },\n lineWidth: {\n type: [String, Number],\n default: 4,\n },\n id: String,\n itemValue: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: Array as PropType,\n default: () => ([]),\n },\n min: [String, Number],\n max: [String, Number],\n padding: {\n type: [String, Number],\n default: 8,\n },\n showLabels: Boolean,\n smooth: Boolean,\n width: {\n type: [Number, String],\n default: 300,\n },\n}, 'Line')\n","import { createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genPath as _genPath } from \"./util/path.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n ...makeLineProps()\n}, 'VTrendline');\nexport const VTrendline = genericComponent()({\n name: 'VTrendline',\n props: makeVTrendlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `trendline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000));\n const lastLength = ref(0);\n const path = ref(null);\n function genPoints(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n const minValue = props.min != null ? Number(props.min) : Math.min(...values);\n const gridX = (maxX - minX) / (totalValues - 1);\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value\n };\n });\n }\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4;\n });\n const totalWidth = computed(() => Number(props.width));\n const boundary = computed(() => {\n const padding = Number(props.padding);\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genPoints(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n watch(() => props.modelValue, async () => {\n await nextTick();\n if (!props.autoDraw || !path.value) return;\n const pathRef = path.value;\n const length = pathRef.getTotalLength();\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`;\n pathRef.style.strokeDashoffset = `${length}`;\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect();\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.strokeDashoffset = '0';\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center';\n pathRef.style.transition = 'none';\n pathRef.style.transform = `scaleY(0)`;\n pathRef.getBoundingClientRect();\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.transform = `scaleY(1)`;\n }\n lastLength.value = length;\n }, {\n immediate: true\n });\n function genPath(fill) {\n return _genPath(genPoints(items.value, boundary.value), props.smooth ? 8 : Number(props.smooth), fill, parseInt(props.height, 10));\n }\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\",\n \"stroke-width\": parseFloat(props.lineWidth) ?? 4\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + lineWidth.value / 2 + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"path\", {\n \"ref\": path,\n \"d\": genPath(props.fill),\n \"fill\": props.fill ? `url(#${id.value})` : 'none',\n \"stroke\": props.fill ? 'none' : `url(#${id.value})`\n }, null), props.fill && _createVNode(\"path\", {\n \"d\": genPath(false),\n \"fill\": \"none\",\n \"stroke\": props.color ?? props.gradient?.[0]\n }, null)]);\n });\n }\n});\n//# sourceMappingURL=VTrendline.mjs.map","// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genPath as _genPath } from './util/path'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VTrendlineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Point {\n x: number\n y: number\n value: number\n}\n\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n\n ...makeLineProps(),\n}, 'VTrendline')\n\nexport const VTrendline = genericComponent()({\n name: 'VTrendline',\n\n props: makeVTrendlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `trendline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000))\n\n const lastLength = ref(0)\n const path = ref(null)\n\n function genPoints (\n values: number[],\n boundary: Boundary\n ): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n const minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n }\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4\n })\n const totalWidth = computed(() => Number(props.width))\n\n const boundary = computed(() => {\n const padding = Number(props.padding)\n\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding,\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n const parsedLabels = computed(() => {\n const labels = []\n const points = genPoints(items.value, boundary.value)\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = props.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n })\n\n watch(() => props.modelValue, async () => {\n await nextTick()\n\n if (!props.autoDraw || !path.value) return\n\n const pathRef = path.value\n const length = pathRef.getTotalLength()\n\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`\n pathRef.style.strokeDashoffset = `${length}`\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect()\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.strokeDashoffset = '0'\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center'\n pathRef.style.transition = 'none'\n pathRef.style.transform = `scaleY(0)`\n pathRef.getBoundingClientRect()\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.transform = `scaleY(1)`\n }\n\n lastLength.value = length\n }, { immediate: true })\n\n function genPath (fill: boolean) {\n return _genPath(\n genPoints(items.value, boundary.value),\n props.smooth ? 8 : Number(props.smooth),\n fill,\n parseInt(props.height, 10)\n )\n }\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n\n return (\n \n \n \n {\n gradientData.map((color, index) => (\n \n ))\n }\n \n \n\n { hasLabels.value && (\n \n {\n parsedLabels.value.map((item, i) => (\n \n { slots.label?.({ index: i, value: item.value }) ?? item.value }\n \n ))\n }\n \n )}\n\n \n\n { props.fill && (\n \n )}\n \n )\n })\n },\n})\n\nexport type VTrendline = InstanceType\n","// @ts-nocheck\n/* eslint-disable */\n\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath(points, radius) {\n let fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 75;\n if (points.length === 0) return '';\n const start = points.shift();\n const end = points[points.length - 1];\n return (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) + points.map((point, index) => {\n const next = points[index + 1];\n const prev = points[index - 1] || start;\n const isCollinear = next && checkCollinear(next, point, prev);\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`;\n }\n const threshold = Math.min(getDistance(prev, point), getDistance(next, point));\n const isTooCloseForRadius = threshold / 2 < radius;\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius;\n const before = moveTo(prev, point, radiusForPoint);\n const after = moveTo(next, point, radiusForPoint);\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`;\n }).join('') + (fill ? `L${end.x} ${height - start.x + 2} Z` : '');\n}\nfunction int(value) {\n return parseInt(value, 10);\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear(p0, p1, p2) {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y);\n}\nexport function getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nexport function moveTo(to, from, radius) {\n const vector = {\n x: to.x - from.x,\n y: to.y - from.y\n };\n const length = Math.sqrt(vector.x * vector.x + vector.y * vector.y);\n const unitVector = {\n x: vector.x / length,\n y: vector.y / length\n };\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius\n };\n}\n//# sourceMappingURL=path.mjs.map","// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n if (points.length === 0) return ''\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n","export { VSpeedDial } from \"./VSpeedDial.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSpeedDial } from './VSpeedDial'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSpeedDial.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVMenuProps, VMenu } from \"../VMenu/VMenu.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center',\n transition: 'scale-transition'\n })\n}, 'VSpeedDial');\nexport const VSpeedDial = genericComponent()({\n name: 'VSpeedDial',\n props: makeVSpeedDialProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const menuRef = ref();\n const location = computed(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? [];\n return `${y} ${x}`;\n });\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true\n }));\n useRender(() => {\n const menuProps = VMenu.filterProps(props);\n return _createVNode(VMenu, _mergeProps(menuProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": props.class,\n \"style\": props.style,\n \"contentClass\": ['v-speed-dial__content', locationClasses.value, props.contentClass],\n \"location\": location.value,\n \"ref\": menuRef,\n \"transition\": \"fade-transition\"\n }), {\n ...slots,\n default: slotProps => _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n size: 'small'\n }\n }\n }, {\n default: () => [_createVNode(MaybeTransition, {\n \"appear\": true,\n \"group\": true,\n \"transition\": props.transition\n }, {\n default: () => [slots.default?.(slotProps)]\n })]\n })\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSpeedDial.mjs.map","// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref()\n\n const location = computed(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? []\n\n return `${y} ${x}` as Anchor\n })\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: slotProps => (\n \n \n { slots.default?.(slotProps) }\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType\n","export { VStepper } from \"./VStepper.mjs\";\nexport { VStepperActions } from \"./VStepperActions.mjs\";\nexport { VStepperHeader } from \"./VStepperHeader.mjs\";\nexport { VStepperItem } from \"./VStepperItem.mjs\";\nexport { VStepperWindow } from \"./VStepperWindow.mjs\";\nexport { VStepperWindowItem } from \"./VStepperWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VStepper } from './VStepper'\nexport { VStepperActions } from './VStepperActions'\nexport { VStepperHeader } from './VStepperHeader'\nexport { VStepperItem } from './VStepperItem'\nexport { VStepperWindow } from './VStepperWindow'\nexport { VStepperWindowItem } from './VStepperWindowItem'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VStepper.css\";\n\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVStepperActionsProps, VStepperActions } from \"./VStepperActions.mjs\";\nimport { VStepperHeader } from \"./VStepperHeader.mjs\";\nimport { VStepperItem } from \"./VStepperItem.mjs\";\nimport { VStepperWindow } from \"./VStepperWindow.mjs\";\nimport { VStepperWindowItem } from \"./VStepperWindowItem.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\"; // Utilities\nimport { computed, toRefs } from 'vue';\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: String,\n default: 'title'\n },\n itemValue: {\n type: String,\n default: 'value'\n },\n nonLinear: Boolean,\n flat: Boolean,\n ...makeDisplayProps()\n}, 'Stepper');\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force',\n selectedClass: 'v-stepper-item--selected'\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText'])\n}, 'VStepper');\nexport const VStepper = genericComponent()({\n name: 'VStepper',\n props: makeVStepperProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items: _items,\n next,\n prev,\n selected\n } = useGroup(props, VStepperSymbol);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n completeIcon,\n editIcon,\n errorIcon,\n color,\n editable,\n prevText,\n nextText\n } = toRefs(props);\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, index + 1);\n return {\n title,\n value,\n raw: item\n };\n }));\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id));\n });\n const disabled = computed(() => {\n if (props.disabled) return props.disabled;\n if (activeIndex.value === 0) return 'prev';\n if (activeIndex.value === _items.value.length - 1) return 'next';\n return false;\n });\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasHeader = !!(slots.header || props.items.length);\n const hasWindow = props.items.length > 0;\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-stepper', {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value\n }, displayClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [hasHeader && _createVNode(VStepperHeader, {\n \"key\": \"stepper-header\"\n }, {\n default: () => [items.value.map((_ref2, index) => {\n let {\n raw,\n ...item\n } = _ref2;\n return _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle\n })]);\n })]\n }), hasWindow && _createVNode(VStepperWindow, {\n \"key\": \"stepper-window\"\n }, {\n default: () => [items.value.map(item => _createVNode(VStepperWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item)\n }))]\n }), slots.default?.({\n prev,\n next\n }), hasActions && (slots.actions?.({\n next,\n prev\n }) ?? _createVNode(VStepperActions, {\n \"key\": \"stepper-actions\",\n \"onClick:prev\": prev,\n \"onClick:next\": next\n }, slots))]\n });\n });\n return {\n prev,\n next\n };\n }\n});\n//# sourceMappingURL=VStepper.mjs.map","// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n \n { hasHeader && (\n \n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && () }\n\n \n \n ))}\n \n )}\n\n { hasWindow && (\n \n { items.value.map(item => (\n slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n \n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n \n )\n )}\n \n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType\n","// Types\n\nexport const VStepperSymbol = Symbol.for('vuetify:v-stepper');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey = Symbol.for('vuetify:v-stepper')\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/VBtn.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String],\n default: false\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev'\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next'\n }\n}, 'VStepperActions');\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n props: makeVStepperActionsProps(),\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev\n };\n const nextSlotProps = {\n onClick: onClickNext\n };\n return _createVNode(\"div\", {\n \"class\": \"v-stepper-actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n disabled: ['prev', true].includes(props.disabled),\n text: t(props.prevText),\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.prev?.({\n props: prevSlotProps\n }) ?? _createVNode(VBtn, prevSlotProps, null)]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n disabled: ['next', true].includes(props.disabled),\n text: t(props.nextText),\n variant: 'tonal'\n }\n }\n }, {\n default: () => [slots.next?.({\n props: nextSlotProps\n }) ?? _createVNode(VBtn, nextSlotProps, null)]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperActions.mjs.map","// Components\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VStepperActionsSlots = {\n prev: {\n props: { onClick: () => void }\n }\n next: {\n props: { onClick: () => void }\n }\n}\n\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String] as PropType,\n default: false,\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n}, 'VStepperActions')\n\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n\n props: makeVStepperActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev,\n }\n const nextSlotProps = {\n onClick: onClickNext,\n }\n\n return (\n
    \n \n { slots.prev?.({ props: prevSlotProps }) ?? (\n \n )}\n \n\n \n { slots.next?.({ props: nextSlotProps }) ?? (\n \n )}\n \n
    \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperActions = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header');\n//# sourceMappingURL=VStepperHeader.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header')\n\nexport type VStepperHeader = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VStepperItem.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/VAvatar.mjs\";\nimport { VIcon } from \"../VIcon/VIcon.mjs\"; // Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { genOverlays } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete'\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit'\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error'\n },\n icon: String,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n rules: {\n type: Array,\n default: () => []\n }\n}, 'StepperItem');\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps()\n}, 'VStepperItem');\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n directives: {\n Ripple\n },\n props: makeVStepperItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = useGroupItem(props, VStepperSymbol, true);\n const step = computed(() => group?.value.value ?? props.value);\n const isValid = computed(() => props.rules.every(handler => handler() === true));\n const isClickable = computed(() => !props.disabled && props.editable);\n const canEdit = computed(() => !props.disabled && props.editable);\n const hasError = computed(() => props.error || !isValid.value);\n const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon;\n if (hasCompleted.value) return props.completeIcon;\n if (group.isSelected.value && props.editable) return props.editIcon;\n return props.icon;\n });\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value\n }));\n useRender(() => {\n const hasColor = (!group || group.isSelected.value || hasCompleted.value || canEdit.value) && !hasError.value && !props.disabled;\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n function onClick() {\n group?.toggle();\n }\n return _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-stepper-item', {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value\n }, group?.selectedClass.value],\n \"disabled\": !props.editable,\n \"onClick\": onClick\n }, [isClickable.value && genOverlays(true, 'v-stepper-item'), _createVNode(VAvatar, {\n \"key\": \"stepper-avatar\",\n \"class\": \"v-stepper-item__avatar\",\n \"color\": hasColor ? props.color : undefined,\n \"size\": 24\n }, {\n default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {\n \"icon\": icon.value\n }, null) : step.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-stepper-item__content\"\n }, [hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-stepper-item__title\"\n }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && _createVNode(\"div\", {\n \"key\": \"subtitle\",\n \"class\": \"v-stepper-item__subtitle\"\n }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[_resolveDirective(\"ripple\"), props.ripple && props.editable, null]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperItem.mjs.map","// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { genOverlays } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './shared'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItem = string | Record\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string | number\n subtitle?: string | number\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'StepperItem')\n\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const isClickable = computed(() => !props.disabled && props.editable)\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (group.isSelected.value && props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n \n { isClickable.value && genOverlays(true, 'v-stepper-item') }\n\n \n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n \n ) : step.value\n )}\n \n\n
    \n { hasTitle && (\n \n { slots.title?.(slotProps.value) ?? props.title }\n
    \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n \n \n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VStepperWindow');\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n props: makeVStepperWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VStepperSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VStepperWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-stepper-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindow.mjs.map","// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VStepperWindowItem');\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n props: makeVStepperWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VStepperWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-stepper-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindowItem.mjs.map","// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VStepperWindowItem')\n\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n\n props: makeVStepperWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindowItem = InstanceType\n","export { VSwitch } from \"./VSwitch.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSwitch } from './VSwitch'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSwitch.css\";\n\n// Components\nimport { VScaleTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\";\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { LoaderSlot, useLoader } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false\n },\n ...makeVInputProps(),\n ...makeVSelectionControlProps()\n}, 'VSwitch');\nexport const VSwitch = genericComponent()({\n name: 'VSwitch',\n inheritAttrs: false,\n props: makeVSwitchProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n const {\n loaderClasses\n } = useLoader(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const control = ref();\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;\n });\n const uid = getUid();\n const id = computed(() => props.id || `switch-${uid}`);\n function onChange() {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n function onTrackClick(e) {\n e.stopPropagation();\n e.preventDefault();\n control.value?.input?.click();\n }\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-switch', {\n 'v-switch--flat': props.flat\n }, {\n 'v-switch--inset': props.inset\n }, {\n 'v-switch--indeterminate': indeterminate.value\n }, loaderClasses.value, props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n const slotProps = {\n model,\n isValid\n };\n return _createVNode(VSelectionControl, _mergeProps({\n \"ref\": control\n }, controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"type\": \"checkbox\",\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, controlAttrs), {\n ...slots,\n default: _ref3 => {\n let {\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref3;\n return _createVNode(\"div\", {\n \"class\": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onTrackClick\n }, [slots['track-true'] && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-switch__track-true\"\n }, [slots['track-true'](slotProps)]), slots['track-false'] && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-switch__track-false\"\n }, [slots['track-false'](slotProps)])]);\n },\n input: _ref4 => {\n let {\n inputNode,\n icon,\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref4;\n return _createVNode(_Fragment, null, [inputNode, _createVNode(\"div\", {\n \"class\": ['v-switch__thumb', {\n 'v-switch__thumb--filled': icon || props.loading\n }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],\n \"style\": props.inset ? undefined : backgroundColorStyles.value\n }, [slots.thumb ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon,\n size: 'x-small'\n }\n }\n }, {\n default: () => [slots.thumb({\n ...slotProps,\n icon\n })]\n }) : _createVNode(VScaleTransition, null, {\n default: () => [!props.loading ? icon && _createVNode(VIcon, {\n \"key\": String(icon),\n \"icon\": icon,\n \"size\": \"x-small\"\n }, null) : _createVNode(LoaderSlot, {\n \"name\": \"v-switch\",\n \"active\": true,\n \"color\": isValid.value === false ? undefined : loaderColor.value\n }, {\n default: slotProps => slots.loader ? slots.loader(slotProps) : _createVNode(VProgressCircular, {\n \"active\": slotProps.isActive,\n \"color\": slotProps.color,\n \"indeterminate\": true,\n \"size\": \"16\",\n \"width\": \"2\"\n }, null)\n })]\n })])]);\n }\n });\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSwitch.mjs.map","// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { VScaleTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, Ref } from 'vue'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\nimport type { IconValue } from '@/composables/icons'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nexport type VSwitchSlot = {\n model: Ref\n isValid: ComputedRef\n}\n\nexport type VSwitchSlots =\n & VInputSlots\n & VSelectionControlSlots\n & {\n loader: LoaderSlotProps\n thumb: { icon: IconValue | undefined } & VSwitchSlot\n 'track-false': VSwitchSlot\n 'track-true': VSwitchSlot\n }\n\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeVSelectionControlProps(),\n}, 'VSwitch')\n\nexport const VSwitch = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VSwitchSlots,\n) => GenericProps>()({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: makeVSwitchProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n const { loaderClasses } = useLoader(props)\n const { isFocused, focus, blur } = useFocus(props)\n const control = ref()\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n function onTrackClick (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n control.value?.input?.click()\n }\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const controlProps = VSelectionControl.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => {\n const slotProps = {\n model,\n isValid,\n }\n\n return (\n \n {{\n ...slots,\n default: ({ backgroundColorClasses, backgroundColorStyles }) => (\n \n { slots['track-true'] && (\n
    \n { slots['track-true'](slotProps) }\n
    \n )}\n\n { slots['track-false'] && (\n
    \n { slots['track-false'](slotProps) }\n
    \n )}\n \n ),\n input: ({ inputNode, icon, backgroundColorClasses, backgroundColorStyles }) => (\n <>\n { inputNode }\n \n { slots.thumb ? (\n \n { slots.thumb({ ...slotProps, icon }) }\n \n ) : (\n \n { !props.loading ? (\n (icon && (\n \n ))) : (\n \n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n \n )\n )}\n \n )}\n \n )}\n \n \n ),\n }}\n
    \n )\n },\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType\n","export { VSystemBar } from \"./VSystemBar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSystemBar } from './VSystemBar'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VSystemBar.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSystemBarProps = propsFactory({\n color: String,\n height: [Number, String],\n window: Boolean,\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSystemBar');\nexport const VSystemBar = genericComponent()({\n name: 'VSystemBar',\n props: makeVSystemBarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => props.height ?? (props.window ? 32 : 24));\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: shallowRef('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute')\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-system-bar', {\n 'v-system-bar--window': props.window\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSystemBar.mjs.map","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVSystemBarProps = propsFactory({\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VSystemBar')\n\nexport const VSystemBar = genericComponent()({\n name: 'VSystemBar',\n\n props: makeVSystemBarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => props.height ?? (props.window ? 32 : 24))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: shallowRef('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VSystemBar = InstanceType\n","export { VTab } from \"./VTab.mjs\";\nexport { VTabs } from \"./VTabs.mjs\";\nexport { VTabsWindow } from \"./VTabsWindow.mjs\";\nexport { VTabsWindowItem } from \"./VTabsWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTab } from './VTab'\nexport { VTabs } from './VTabs'\nexport { VTabsWindow } from './VTabsWindow'\nexport { VTabsWindowItem } from './VTabsWindowItem'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { VTabsSymbol } from \"./shared.mjs\";\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n sliderColor: String,\n hideSlider: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text'\n }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])\n}, 'VTab');\nexport const VTab = genericComponent()({\n name: 'VTab',\n props: makeVTabProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n textColorClasses: sliderColorClasses,\n textColorStyles: sliderColorStyles\n } = useTextColor(props, 'sliderColor');\n const rootEl = ref();\n const sliderEl = ref();\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false);\n function updateSlider(_ref2) {\n let {\n value\n } = _ref2;\n if (value) {\n const prevEl = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider');\n const nextEl = sliderEl.value;\n if (!prevEl || !nextEl) return;\n const color = getComputedStyle(prevEl).color;\n const prevBox = prevEl.getBoundingClientRect();\n const nextBox = nextEl.getBoundingClientRect();\n const xy = isHorizontal.value ? 'x' : 'y';\n const XY = isHorizontal.value ? 'X' : 'Y';\n const rightBottom = isHorizontal.value ? 'right' : 'bottom';\n const widthHeight = isHorizontal.value ? 'width' : 'height';\n const prevPos = prevBox[xy];\n const nextPos = nextBox[xy];\n const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];\n const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;\n const sigma = 1.5;\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],\n transformOrigin: Array(3).fill(origin)\n }, {\n duration: 225,\n easing: standardEasing\n });\n }\n }\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(VBtn, _mergeProps({\n \"symbol\": VTabsSymbol,\n \"ref\": rootEl,\n \"class\": ['v-tab', props.class],\n \"style\": props.style,\n \"tabindex\": isSelected.value ? 0 : -1,\n \"role\": \"tab\",\n \"aria-selected\": String(isSelected.value),\n \"active\": false\n }, btnProps, attrs, {\n \"block\": props.fixed,\n \"maxWidth\": props.fixed ? 300 : undefined,\n \"onGroup:selected\": updateSlider\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && _createVNode(\"div\", {\n \"ref\": sliderEl,\n \"class\": ['v-tab__slider', sliderColorClasses.value],\n \"style\": sliderColorStyles.value\n }, null)])\n });\n });\n return forwardRefs({}, rootEl);\n }\n});\n//# sourceMappingURL=VTab.mjs.map","// Styles\nimport './VTab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { VTabsSymbol } from './shared'\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text' as const,\n }), [\n 'active',\n 'block',\n 'flat',\n 'location',\n 'position',\n 'symbol',\n ]),\n}, 'VTab')\n\nexport const VTab = genericComponent()({\n name: 'VTab',\n\n props: makeVTabProps(),\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n\n const rootEl = ref()\n const sliderEl = ref()\n\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false)\n\n function updateSlider ({ value }: { value: boolean }) {\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0\n\n const sigma = 1.5\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n 'none',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: () => (\n <>\n { slots.default?.() ?? props.text }\n\n { !props.hideSlider && (\n \n )}\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({}, rootEl)\n },\n})\n\nexport type VTab = InstanceType\n","// Types\n\nexport const VTabsSymbol = Symbol.for('vuetify:v-tabs');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VTabsSymbol: InjectionKey = Symbol.for('vuetify:v-tabs')\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTabs.css\";\n\n// Components\nimport { VTab } from \"./VTab.mjs\";\nimport { VTabsWindow } from \"./VTabsWindow.mjs\";\nimport { VTabsWindowItem } from \"./VTabsWindowItem.mjs\";\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nfunction parseItems(items) {\n if (!items) return [];\n return items.map(item => {\n if (!isObject(item)) return {\n text: item,\n value: item\n };\n return item;\n });\n}\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String,\n default: 'start'\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined\n },\n hideSlider: Boolean,\n sliderColor: String,\n ...makeVSlideGroupProps({\n mandatory: 'force',\n selectedClass: 'v-tab-item--selected'\n }),\n ...makeDensityProps(),\n ...makeTagProps()\n}, 'VTabs');\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n props: makeVTabsProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const items = computed(() => parseItems(props.items));\n const {\n densityClasses\n } = useDensity(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n scopeId\n } = useScopeId();\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n const hasWindow = !!(slots.window || props.items.length > 0);\n return _createVNode(_Fragment, null, [_createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked\n }, densityClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [{\n '--v-tabs-height': convertToUnit(props.height)\n }, backgroundColorStyles.value, props.style],\n \"role\": \"tablist\",\n \"symbol\": VTabsSymbol\n }, scopeId, attrs), {\n default: () => [slots.default?.() ?? items.value.map(item => slots.tab?.({\n item\n }) ?? _createVNode(VTab, _mergeProps(item, {\n \"key\": item.text,\n \"value\": item.value\n }), {\n default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({\n item\n }) : undefined\n }))]\n }), hasWindow && _createVNode(VTabsWindow, _mergeProps({\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"key\": \"tabs-window\"\n }, scopeId), {\n default: () => [items.value.map(item => slots.item?.({\n item\n }) ?? _createVNode(VTabsWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.({\n item\n })\n })), slots.window?.()]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabs.mjs.map","// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VTab } from './VTab'\nimport { VTabsWindow } from './VTabsWindow'\nimport { VTabsWindowItem } from './VTabsWindowItem'\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport type TabItem = string | number | Record\n\nexport type VTabsSlot = {\n item: TabItem\n}\n\nexport type VTabsSlots = {\n default: never\n tab: VTabsSlot\n item: VTabsSlot\n window: never\n} & {\n [key: `tab.${string}`]: VTabsSlot\n [key: `item.${string}`]: VTabsSlot\n}\n\nfunction parseItems (items: readonly TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (!isObject(item)) return { text: item, value: item }\n\n return item\n })\n}\n\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n sliderColor: String,\n\n ...makeVSlideGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-tab-item--selected',\n }),\n ...makeDensityProps(),\n ...makeTagProps(),\n}, 'VTabs')\n\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n\n props: makeVTabsProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { scopeId } = useScopeId()\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n const hasWindow = !!(slots.window || props.items.length > 0)\n\n return (\n <>\n \n { slots.default?.() ?? items.value.map(item => (\n slots.tab?.({ item }) ?? (\n slots[`tab.${item.value}`]?.({ item }) : undefined,\n }}\n />\n )\n ))}\n \n\n { hasWindow && (\n \n { items.value.map(item => slots.item?.({ item }) ?? (\n slots[`item.${item.value}`]?.({ item }),\n }}\n />\n ))}\n\n { slots.window?.() }\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VTabsWindow');\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n props: makeVTabsWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VTabsSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VTabsWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindow.mjs.map","// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\n\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VTabsWindow')\n\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n\n props: makeVTabsWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VTabsSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindow = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTabsWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VTabsWindowItem');\nexport const VTabsWindowItem = genericComponent()({\n name: 'VTabsWindowItem',\n props: makeVTabsWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VTabsWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-tabs-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindowItem.mjs.map","// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVTabsWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VTabsWindowItem')\n\nexport const VTabsWindowItem = genericComponent()({\n name: 'VTabsWindowItem',\n\n props: makeVTabsWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindowItem = InstanceType\n","export { VTextarea } from \"./VTextarea.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTextarea } from './VTextarea'\n","import { vModelText as _vModelText, withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTextarea.css\";\nimport \"../VTextField/VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: Function,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: v => !isNaN(parseFloat(v))\n },\n maxRows: {\n type: [Number, String],\n validator: v => !isNaN(parseFloat(v))\n },\n suffix: String,\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextarea');\nexport const VTextarea = genericComponent()({\n name: 'VTextarea',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextareaProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const controlHeight = shallowRef('');\n const textareaRef = ref();\n const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = '';\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n const sizerRef = ref();\n const rows = ref(+props.rows);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows;\n });\n function calculateInputHeight() {\n if (!props.autoGrow) return;\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return;\n const style = getComputedStyle(sizerRef.value);\n const fieldStyle = getComputedStyle(vFieldRef.value.$el);\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) + parseFloat(style.getPropertyValue('--v-input-padding-top')) + parseFloat(style.getPropertyValue('--v-field-padding-bottom'));\n const height = sizerRef.value.scrollHeight;\n const lineHeight = parseFloat(style.lineHeight);\n const minHeight = Math.max(parseFloat(props.rows) * lineHeight + padding, parseFloat(fieldStyle.getPropertyValue('--v-input-control-height')));\n const maxHeight = parseFloat(props.maxRows) * lineHeight + padding || Infinity;\n const newHeight = clamp(height ?? 0, minHeight, maxHeight);\n rows.value = Math.floor((newHeight - padding) / lineHeight);\n controlHeight.value = convertToUnit(newHeight);\n });\n }\n onMounted(calculateInputHeight);\n watch(model, calculateInputHeight);\n watch(() => props.rows, calculateInputHeight);\n watch(() => props.maxRows, calculateInputHeight);\n watch(() => props.density, calculateInputHeight);\n let observer;\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight);\n observer.observe(sizerRef.value);\n } else {\n observer?.disconnect();\n }\n });\n onBeforeUnmount(() => {\n observer?.disconnect();\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-textarea v-text-field', {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"style\": {\n '--v-textarea-control-height': controlHeight.value\n },\n \"onClick\": onControlClick,\n \"onMousedown\": onControlMousedown,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [props.prefix]), _withDirectives(_createVNode(\"textarea\", _mergeProps({\n \"ref\": textareaRef,\n \"class\": fieldClass,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"placeholder\": props.placeholder,\n \"rows\": props.rows,\n \"name\": props.name,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]), props.autoGrow && _withDirectives(_createVNode(\"textarea\", {\n \"class\": [fieldClass, 'v-textarea__sizer'],\n \"id\": `${slotProps.id}-sizer`,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"ref\": sizerRef,\n \"readonly\": true,\n \"aria-hidden\": \"true\"\n }, null), [[_vModelText, model.value]]), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [props.suffix])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef);\n }\n});\n//# sourceMappingURL=VTextarea.mjs.map","// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref()\n const vFieldRef = ref()\n const controlHeight = shallowRef('')\n const textareaRef = ref()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref()\n const rows = ref(+props.rows)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows\n })\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n \n { props.prefix }\n \n )}\n\n \n\n { props.autoGrow && (\n \n )}\n\n { props.suffix && (\n \n { props.suffix }\n \n )}\n \n ),\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType\n","export { VThemeProvider } from \"./VThemeProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VThemeProvider } from './VThemeProvider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VThemeProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVThemeProviderProps = propsFactory({\n withBackground: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeTagProps()\n}, 'VThemeProvider');\nexport const VThemeProvider = genericComponent()({\n name: 'VThemeProvider',\n props: makeVThemeProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n return () => {\n if (!props.withBackground) return slots.default?.();\n return _createVNode(props.tag, {\n \"class\": ['v-theme-provider', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.()]\n });\n };\n }\n});\n//# sourceMappingURL=VThemeProvider.mjs.map","// Styles\nimport './VThemeProvider.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\nexport const makeVThemeProviderProps = propsFactory({\n withBackground: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeTagProps(),\n}, 'VThemeProvider')\n\nexport const VThemeProvider = genericComponent()({\n name: 'VThemeProvider',\n\n props: makeVThemeProviderProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n\n return () => {\n if (!props.withBackground) return slots.default?.()\n\n return (\n \n { slots.default?.() }\n \n )\n }\n },\n})\n\nexport type VThemeProvider = InstanceType\n","export { VTimeline } from \"./VTimeline.mjs\";\nexport { VTimelineItem } from \"./VTimelineItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTimeline } from './VTimeline'\nexport { VTimelineItem } from './VTimelineItem'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VTimeline.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { makeVTimelineItemProps } from \"./VTimelineItem.mjs\";\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: v => ['center', 'start'].includes(v)\n },\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n justify: {\n type: String,\n default: 'auto',\n validator: v => ['auto', 'center'].includes(v)\n },\n side: {\n type: String,\n validator: v => v == null || ['start', 'end'].includes(v)\n },\n lineThickness: {\n type: [String, Number],\n default: 2\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n ...only(makeVTimelineItemProps({\n lineInset: 0\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTimeline');\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n props: makeVTimelineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n rtlClasses\n } = useRtl();\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor')\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'dotColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size')\n }\n });\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;\n return side && `v-timeline--side-${side}`;\n });\n const truncateClasses = computed(() => {\n const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];\n switch (props.truncateLine) {\n case 'both':\n return classes;\n case 'start':\n return classes[0];\n case 'end':\n return classes[1];\n default:\n return null;\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {\n 'v-timeline--inset-line': !!props.lineInset\n }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VTimeline.mjs.map","// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport { makeVTimelineItemProps } from './VTimelineItem'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop,\n justify: {\n type: String,\n default: 'auto',\n validator: (v: any) => ['auto', 'center'].includes(v),\n },\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop,\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop,\n\n ...only(makeVTimelineItemProps({\n lineInset: 0,\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTimeline')\n\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n\n props: makeVTimelineProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'dotColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VTimeline = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VTimelineDivider } from \"./VTimelineDivider.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVTimelineItemProps = propsFactory({\n density: String,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps()\n}, 'VTimelineItem');\nexport const VTimelineItem = genericComponent()({\n name: 'VTimelineItem',\n props: makeVTimelineItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const dotSize = shallowRef(0);\n const dotRef = ref();\n watch(dotRef, newValue => {\n if (!newValue) return;\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0;\n }, {\n flush: 'post'\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-item', {\n 'v-timeline-item--fill-dot': props.fillDot\n }, props.class],\n \"style\": [{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-timeline-item__body\",\n \"style\": dimensionStyles.value\n }, [slots.default?.()]), _createVNode(VTimelineDivider, {\n \"ref\": dotRef,\n \"hideDot\": props.hideDot,\n \"icon\": props.icon,\n \"iconColor\": props.iconColor,\n \"size\": props.size,\n \"elevation\": props.elevation,\n \"dotColor\": props.dotColor,\n \"fillDot\": props.fillDot,\n \"rounded\": props.rounded\n }, {\n default: slots.icon\n }), props.density !== 'compact' && _createVNode(\"div\", {\n \"class\": \"v-timeline-item__opposite\"\n }, [!props.hideOpposite && slots.opposite?.()])]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineItem.mjs.map","// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VTimelineItemSlots = {\n default: never\n icon: never\n opposite: never\n}\n\nexport const makeVTimelineItemProps = propsFactory({\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n}, 'VTimelineItem')\n\nexport const VTimelineItem = genericComponent()({\n name: 'VTimelineItem',\n\n props: makeVTimelineItemProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = shallowRef(0)\n const dotRef = ref()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n \n \n { slots.default?.() }\n \n\n \n\n { props.density !== 'compact' && (\n
    \n { !props.hideOpposite && slots.opposite?.() }\n
    \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VTimelineItem = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTimelineDividerProps = propsFactory({\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps()\n}, 'VTimelineDivider');\nexport const VTimelineDivider = genericComponent()({\n name: 'VTimelineDivider',\n props: makeVTimelineDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props, 'v-timeline-divider__dot');\n const {\n backgroundColorStyles,\n backgroundColorClasses\n } = useBackgroundColor(toRef(props, 'dotColor'));\n const {\n roundedClasses\n } = useRounded(props, 'v-timeline-divider__dot');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles\n } = useBackgroundColor(toRef(props, 'lineColor'));\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-divider', {\n 'v-timeline-divider--fill-dot': props.fillDot\n }, props.class],\n \"style\": props.style\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__before', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null), !props.hideDot && _createVNode(\"div\", {\n \"key\": \"dot\",\n \"class\": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],\n \"style\": sizeStyles.value\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],\n \"style\": backgroundColorStyles.value\n }, [!slots.default ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.iconColor,\n \"icon\": props.icon,\n \"size\": props.size\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"icon-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n color: props.iconColor,\n icon: props.icon,\n size: props.size\n }\n }\n }, slots.default)])]), _createVNode(\"div\", {\n \"class\": ['v-timeline-divider__after', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineDivider.mjs.map","// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVTimelineDividerProps = propsFactory({\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n}, 'VTimelineDivider')\n\nexport const VTimelineDivider = genericComponent()({\n name: 'VTimelineDivider',\n\n props: makeVTimelineDividerProps(),\n\n setup (props, { slots }) {\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles,\n } = useBackgroundColor(toRef(props, 'lineColor'))\n\n useRender(() => (\n \n \n\n { !props.hideDot && (\n \n \n { !slots.default ? (\n \n ) : (\n \n )}\n \n \n )}\n\n \n \n ))\n\n return {}\n },\n})\n\nexport type VTimelineDivider = InstanceType\n","export { VToolbar } from \"./VToolbar.mjs\";\nexport { VToolbarTitle } from \"./VToolbarTitle.mjs\";\nexport { VToolbarItems } from \"./VToolbarItems.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VToolbar } from './VToolbar'\nexport { VToolbarTitle } from './VToolbarTitle'\nexport { VToolbarItems } from './VToolbarItems'\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarItemsProps = propsFactory({\n ...makeComponentProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VToolbarItems');\nexport const VToolbarItems = genericComponent()({\n name: 'VToolbarItems',\n props: makeVToolbarItemsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-toolbar-items', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VToolbarItems.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVToolbarItemsProps = propsFactory({\n ...makeComponentProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VToolbarItems')\n\nexport const VToolbarItems = genericComponent()({\n name: 'VToolbarItems',\n\n props: makeVToolbarItemsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VToolbarItems = InstanceType\n","export { VTooltip } from \"./VTooltip.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTooltip } from './VTooltip'\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, mergeProps, ref } from 'vue';\nimport { genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: false\n }), ['absolute', 'persistent'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = getUid();\n const id = computed(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = computed(() => {\n if (props.transition) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"persistent\": true,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.mjs.map","// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end' as const,\n locationStrategy: 'connected' as const,\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto' as const,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: false,\n }), [\n 'absolute',\n 'persistent',\n ]),\n}, 'VTooltip')\n\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n\n props: makeVTooltipProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const overlay = ref()\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-describedby': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VTooltip = InstanceType\n","export { VValidation } from \"./VValidation.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VValidation } from './VValidation'\n","// Composables\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VValidation = genericComponent()({\n name: 'VValidation',\n props: makeValidationProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const validation = useValidation(props, 'validation');\n return () => slots.default?.(validation);\n }\n});\n//# sourceMappingURL=VValidation.mjs.map","// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport type VValidationSlots = {\n default: ReturnType\n}\n\nexport const VValidation = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VValidationSlots,\n) => GenericProps>()({\n name: 'VValidation',\n\n props: makeValidationProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const validation = useValidation(props, 'validation')\n\n return () => slots.default?.(validation)\n },\n})\n\nexport type VValidation = InstanceType\n","export { VWindow } from \"./VWindow.mjs\";\nexport { VWindowItem } from \"./VWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VWindow } from './VWindow'\nexport { VWindowItem } from './VWindowItem'\n","export { ClickOutside } from \"./click-outside/index.mjs\"; // export { Color } from './color'\nexport { Intersect } from \"./intersect/index.mjs\";\nexport { Mutate } from \"./mutate/index.mjs\";\nexport { Resize } from \"./resize/index.mjs\";\nexport { Ripple } from \"./ripple/index.mjs\";\nexport { Scroll } from \"./scroll/index.mjs\";\nexport { Touch } from \"./touch/index.mjs\";\nexport { Tooltip } from \"./tooltip/index.mjs\";\n//# sourceMappingURL=index.mjs.map","export { ClickOutside } from './click-outside'\n// export { Color } from './color'\nexport { Intersect } from './intersect'\nexport { Mutate } from './mutate'\nexport { Resize } from './resize'\nexport { Ripple } from './ripple'\nexport { Scroll } from './scroll'\nexport { Touch } from './touch'\nexport { Tooltip } from './tooltip'\n","// Types\n\nfunction mounted(el, binding) {\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n once,\n immediate,\n ...modifierKeys\n } = modifiers;\n const defaultValue = !Object.keys(modifierKeys).length;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue\n }\n };\n const observer = new MutationObserver(function () {\n let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n handler?.(mutations, observer);\n if (once) unmounted(el, binding);\n });\n if (immediate) handler?.([], observer);\n el._mutate = Object(el._mutate);\n el._mutate[binding.instance.$.uid] = {\n observer\n };\n observer.observe(el, options);\n}\nfunction unmounted(el, binding) {\n if (!el._mutate?.[binding.instance.$.uid]) return;\n el._mutate[binding.instance.$.uid].observer.disconnect();\n delete el._mutate[binding.instance.$.uid];\n}\nexport const Mutate = {\n mounted,\n unmounted\n};\nexport default Mutate;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { MutationOptions } from '@/composables/mutationObserver'\n\nexport interface MutationDirectiveBinding extends Omit {\n value: MutationCallback | { handler: MutationCallback, options?: MutationObserverInit }\n modifiers: MutationOptions\n}\n\nfunction mounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { once, immediate, ...modifierKeys } = modifiers\n const defaultValue = !Object.keys(modifierKeys).length\n\n const { handler, options } = typeof value === 'object'\n ? value\n : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue,\n },\n }\n\n const observer = new MutationObserver((\n mutations: MutationRecord[] = [],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (once) unmounted(el, binding)\n })\n\n if (immediate) handler?.([], observer)\n\n el._mutate = Object(el._mutate)\n el._mutate![binding.instance!.$.uid] = { observer }\n\n observer.observe(el, options)\n}\n\nfunction unmounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n if (!el._mutate?.[binding.instance!.$.uid]) return\n\n el._mutate[binding.instance!.$.uid]!.observer.disconnect()\n delete el._mutate[binding.instance!.$.uid]\n}\n\nexport const Mutate = {\n mounted,\n unmounted,\n}\n\nexport default Mutate\n","// Types\n\nfunction mounted(el, binding) {\n const handler = binding.value;\n const options = {\n passive: !binding.modifiers?.active\n };\n window.addEventListener('resize', handler, options);\n el._onResize = Object(el._onResize);\n el._onResize[binding.instance.$.uid] = {\n handler,\n options\n };\n if (!binding.modifiers?.quiet) {\n handler();\n }\n}\nfunction unmounted(el, binding) {\n if (!el._onResize?.[binding.instance.$.uid]) return;\n const {\n handler,\n options\n } = el._onResize[binding.instance.$.uid];\n window.removeEventListener('resize', handler, options);\n delete el._onResize[binding.instance.$.uid];\n}\nexport const Resize = {\n mounted,\n unmounted\n};\nexport default Resize;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit {\n value: () => void\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![binding.instance!.$.uid] = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n if (!el._onResize?.[binding.instance!.$.uid]) return\n\n const { handler, options } = el._onResize[binding.instance!.$.uid]!\n\n window.removeEventListener('resize', handler, options)\n\n delete el._onResize[binding.instance!.$.uid]\n}\n\nexport const Resize = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","// Types\n\nfunction mounted(el, binding) {\n const {\n self = false\n } = binding.modifiers ?? {};\n const value = binding.value;\n const options = typeof value === 'object' && value.options || {\n passive: true\n };\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;\n const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;\n if (!target) return;\n target.addEventListener('scroll', handler, options);\n el._onScroll = Object(el._onScroll);\n el._onScroll[binding.instance.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target\n };\n}\nfunction unmounted(el, binding) {\n if (!el._onScroll?.[binding.instance.$.uid]) return;\n const {\n handler,\n options,\n target = el\n } = el._onScroll[binding.instance.$.uid];\n target.removeEventListener('scroll', handler, options);\n delete el._onScroll[binding.instance.$.uid];\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) return;\n unmounted(el, binding);\n mounted(el, binding);\n}\nexport const Scroll = {\n mounted,\n unmounted,\n updated\n};\nexport default Scroll;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![binding.instance!.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (!el._onScroll?.[binding.instance!.$.uid]) return\n\n const { handler, options, target = el } = el._onScroll[binding.instance!.$.uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[binding.instance!.$.uid]\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el, binding)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Components\nimport { VTooltip } from \"../../components/VTooltip/index.mjs\"; // Composables\nimport { useDirectiveComponent } from \"../../composables/directiveComponent.mjs\"; // Types\nexport const Tooltip = useDirectiveComponent(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value\n };\n});\nexport default Tooltip;\n//# sourceMappingURL=index.mjs.map","// Components\nimport { VTooltip } from '@/components/VTooltip'\n\n// Composables\nimport { useDirectiveComponent } from '@/composables/directiveComponent'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface TooltipDirectiveBinding extends Omit, 'arg' | 'value'> {\n arg?: { [T in Anchor]: T extends `${infer A} ${infer B}` ? `${A}-${B}` : T }[Anchor]\n value: boolean | string | Record\n}\n\nexport const Tooltip = useDirectiveComponent(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value,\n }\n})\n\nexport default Tooltip\n","// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue';\nimport { consoleError, isObject } from \"../util/index.mjs\"; // Types\nexport function useDirectiveComponent(component, props) {\n const concreteComponent = typeof component === 'string' ? resolveComponent(component) : component;\n const hook = mountComponent(concreteComponent, props);\n return {\n mounted: hook,\n updated: hook,\n unmounted(el) {\n render(null, el);\n }\n };\n}\nfunction mountComponent(component, props) {\n return function (el, binding, vnode) {\n const _props = typeof props === 'function' ? props(binding) : props;\n const text = binding.value?.text ?? binding.value ?? _props?.text;\n const value = isObject(binding.value) ? binding.value : {};\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent;\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance.$ ? findComponentParent(vnode, binding.instance.$)?.provides : vnode.ctx?.provides) ?? binding.instance.$.provides;\n const node = h(component, mergeProps(_props, value), children);\n node.appContext = Object.assign(Object.create(null), binding.instance.$.appContext, {\n provides\n });\n render(node, el);\n };\n}\nfunction findComponentParent(vnode, root) {\n // Walk the tree from root until we find the child vnode\n const stack = new Set();\n const walk = children => {\n for (const child of children) {\n if (!child) continue;\n if (child === vnode || child.el && vnode.el && child.el === vnode.el) {\n return true;\n }\n stack.add(child);\n let result;\n if (child.suspense) {\n result = walk([child.ssContent]);\n } else if (Array.isArray(child.children)) {\n result = walk(child.children);\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree]);\n }\n if (result) {\n return result;\n }\n stack.delete(child);\n }\n return false;\n };\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides');\n return root;\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse();\n for (const child of result) {\n if (child.component) {\n return child.component;\n }\n }\n return root;\n}\n//# sourceMappingURL=directiveComponent.mjs.map","// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue'\nimport { consoleError, isObject } from '@/util'\n\n// Types\nimport type {\n Component,\n ComponentInternalInstance,\n ComponentPublicInstance,\n ConcreteComponent,\n DirectiveBinding,\n ObjectDirective,\n VNode,\n} from 'vue'\nimport type { ComponentInstance } from '@/util'\n\ntype ExcludeProps =\n | 'v-slots'\n | `v-slot:${string}`\n | `on${Uppercase}${string}`\n | 'key'\n | 'ref'\n | 'ref_for'\n | 'ref_key'\n | '$children'\n\ndeclare const CustomDirectiveSymbol: unique symbol\ntype DirectiveHook = (el: any, binding: B, vnode: VNode, prevVNode: VNode) => void\nexport interface CustomDirective {\n created?: DirectiveHook\n beforeMount?: DirectiveHook\n mounted?: DirectiveHook\n beforeUpdate?: DirectiveHook\n updated?: DirectiveHook\n beforeUnmount?: DirectiveHook\n unmounted?: DirectiveHook\n [CustomDirectiveSymbol]: true\n}\n\nexport function useDirectiveComponent <\n Binding extends DirectiveBinding,\n> (component: string | Component, props?: (binding: Binding) => Record): CustomDirective\nexport function useDirectiveComponent <\n C extends Component,\n Props = Omit['$props'], ExcludeProps>\n> (component: string | C, props?: Record): ObjectDirective\nexport function useDirectiveComponent (\n component: string | Component,\n props?: Record | ((binding: DirectiveBinding) => Record)\n): ObjectDirective | CustomDirective {\n const concreteComponent = (typeof component === 'string'\n ? resolveComponent(component)\n : component) as ConcreteComponent\n\n const hook = mountComponent(concreteComponent, props)\n\n return {\n mounted: hook,\n updated: hook,\n unmounted (el: HTMLElement) {\n render(null, el)\n },\n }\n}\n\nfunction mountComponent (component: ConcreteComponent, props?: Record | ((binding: DirectiveBinding) => Record)) {\n return function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n const _props = typeof props === 'function' ? props(binding) : props\n const text = binding.value?.text ?? binding.value ?? _props?.text\n const value = isObject(binding.value) ? binding.value : {}\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance!.$\n ? findComponentParent(vnode, binding.instance!.$)?.provides\n : vnode.ctx?.provides) ?? binding.instance!.$.provides\n\n const node = h(component, mergeProps(_props, value), children)\n node.appContext = Object.assign(\n Object.create(null),\n (binding.instance as ComponentPublicInstance).$.appContext,\n { provides }\n )\n\n render(node, el)\n }\n}\n\nfunction findComponentParent (vnode: VNode, root: ComponentInternalInstance): ComponentInternalInstance | null {\n // Walk the tree from root until we find the child vnode\n const stack = new Set()\n const walk = (children: VNode[]): boolean => {\n for (const child of children) {\n if (!child) continue\n\n if (child === vnode || (child.el && vnode.el && child.el === vnode.el)) {\n return true\n }\n\n stack.add(child)\n let result\n if (child.suspense) {\n result = walk([child.ssContent!])\n } else if (Array.isArray(child.children)) {\n result = walk(child.children as VNode[])\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree])\n }\n if (result) {\n return result\n }\n stack.delete(child)\n }\n\n return false\n }\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides')\n return root\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse()\n for (const child of result) {\n if (child.component) {\n return child.component\n }\n }\n return root\n}\n"],"names":["modules","entry","mainEntry","parcelRequireName","globalName","globalObject","globalThis","self","window","global","previousRequire","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","i","length","mainExports","define","amd","_ref","app","parcelHelpers","defineInteropFlag","export","navigateTo","_asyncToGenerator","_objectSpread","_tsGenerator","_vue","_indexVue","_indexVueDefault","interopDefault","_classroomVue","_classroomVueDefault","_deployVue","_deployVueDefault","_vuetify","_mdiMjs","_components","_directives","vuetify","createVuetify","components","directives","icons","defaultSet","aliases","sets","mdi","getParams","match","values","result","slice","params","fromEntries","keys","Array","from","route","path","matchAll","map","key","_","url","replace","history","replaceState","pushState","router","routes","view","_state","potentialMatches","default","station","location","search","RegExp","redirect","find","unmount","createApp","use","mount","document","body","apply","arguments","addEventListener","e","target","matches","preventDefault","href","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","value","error","done","Promise","then","_async_to_generator","fn","args","undefined","a","__esModule","exportAll","source","dest","forEach","prototype","hasOwnProperty","enumerable","destName","_object_spread","_definePropertyJs","ownKeys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","_define_property","obj","configurable","writable","_tslib","__generator","__extends","__assign","__rest","__decorate","__param","__esDecorate","__runInitializers","__propKey","__setFunctionName","__metadata","__awaiter","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__spreadArray","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","__disposeResources","__rewriteRelativeImportExtension","_typeOf","extendStatics","d","b","setPrototypeOf","__proto__","p","TypeError","String","__","constructor","create","assign","t","s","n","indexOf","propertyIsEnumerable","decorators","desc","c","r","Reflect","decorate","paramIndex","decorator","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","kind","descriptor","context","access","addInitializer","push","set","init","unshift","thisArg","useValue","prefix","description","metadataKey","metadataValue","metadata","_arguments","P","generator","fulfilled","step","next","rejected","adopt","y","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","v","op","pop","o","m","k","k2","ar","il","j","jl","to","pack","l","asyncIterator","q","AsyncIterator","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","receiver","state","has","env","async","dispose","inner","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","fail","hasError","preserveJsx","test","tsx","ext","cm","toLowerCase","_type_of","compile","_runtimeDom","renderer","Transition","TransitionGroup","VueElement","createSSRApp","defineCustomElement","defineSSRCustomElement","hydrate","initDirectivesForSSR","render","useCssModule","useCssVars","useHost","useShadowRoot","vModelCheckbox","vModelDynamic","vModelRadio","vModelSelect","vModelText","vShow","withKeys","withModifiers","_assertThisInitialized","_classCallCheck","_createClass","_inherits","_slicedToArray","_toConsumableArray","_createSuper","_runtimeCore","_shared","policy","tt","trustedTypes","createPolicy","createHTML","val","unsafeToTrustedHTML","doc","templateContainer","createElement","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","type","css","Boolean","duration","Number","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","extend","BaseTransitionPropsValidators","props","param","slots","h","BaseTransition","resolveTransitionProps","displayName","callHook","hook","isArray","h2","hasExplicitCallback","some","rawProps","baseProps","_rawProps_name","_rawProps_enterFromClass","_rawProps_enterActiveClass","_rawProps_enterToClass","_rawProps_appearFromClass","_rawProps_appearActiveClass","_rawProps_appearToClass","_rawProps_leaveFromClass","_rawProps_leaveActiveClass","_rawProps_leaveToClass","durations","normalizeDuration","isObject","NumberOf","enter","leave","enterDuration","leaveDuration","onBeforeEnter","onEnter","onEnterCancelled","onLeave","onLeaveCancelled","_baseProps_onBeforeAppear","onBeforeAppear","_baseProps_onAppear","onAppear","_baseProps_onAppearCancelled","onAppearCancelled","finishEnter","el","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","toNumber","cls","split","classList","add","Set","remove","_vtc","size","cb","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","setTimeout","_getTransitionInfo","getTransitionInfo","timeout","propCount","endEvent","ended","end","removeEventListener","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","Math","max","hasTransform","toString","delays","_Math","toMs","offsetHeight","vShowOriginalDisplay","vShowHidden","beforeMount","param1","transition","style","display","beforeEnter","setDisplay","mounted","updated","oldValue","beforeUnmount","CSS_VAR_TEXT","getter","instance","getCurrentInstance","updateTeleports","ut","vars","proxy","querySelectorAll","uid","node","setVarsOnNode","setVars","ce","setVarsOnVNode","vnode","shapeFlag","suspense","activeBranch","pendingBranch","isHydrating","effects","component","subTree","Fragment","children","Static","anchor","nextSibling","onBeforeMount","watchPostEffect","onMounted","ob","MutationObserver","observe","parentNode","childList","onUnmounted","disconnect","nodeType","cssText","setProperty","displayRE","importantRE","setStyle","startsWith","prefixed","autoPrefix","rawName","cached","prefixCache","camelize","capitalize","prefixes","hyphenate","xlinkNS","patchAttr","isSVG","isBoolean","isSpecialBooleanAttr","removeAttributeNS","setAttributeNS","includeBooleanAttr","removeAttribute","setAttribute","isSymbol","patchDOMProp","parentComponent","attrName","tag","tagName","includes","getAttribute","newValue","_value","needRemove","event","handler","options","veiKey","optionsModifierRE","cachedNow","isNativeOn","charCodeAt","REMOVAL","extraOptions","_createApp","Comp","defineComponent","isPlainObject","VueCustomElement","_super","initialProps","def","BaseClass","_def","_this","_props","_isVueCE","_instance","_app","_nonce","nonce","_connected","_resolved","_numberProps","_styleChildren","WeakSet","_ob","shadowRoot","_root","attachShadow","mode","__asyncLoader","_resolveProps","isConnected","_parseSlots","host","_parent","_setParent","_update","_pendingResolve","_resolveDef","provides","nextTick","_this1","attributes","_setAttr","mutations","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","attributeName","numberProps","isAsync","opt","_applyStyles","_mount","asyncDef","_loop","hasOwn","unref","exposed","__VUE_PROD_DEVTOOLS__","configureApp","_ceVNode","_createVNode","declaredPropKeys","_setProp","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_step1","_iterator1","_getProp","hasAttribute","camelKey","shouldReflect","shouldUpdate","onVnodeMounted","onVnodeUpdated","_renderSlots","createVNode","isCE","dispatch","dispatchEvent","CustomEvent","detail","emit","_len","_key","owner","textContent","prepend","_slots","firstChild","slotName","removeChild","outlets","_teleportTarget","scopeId","__scopeId","content","walker","createTreeWalker","child","nextNode","insertBefore","comp","HTMLElement","_class","caller","EMPTY_OBJ","__cssModules","positionMap","WeakMap","newPositionMap","moveCbKey","enterCbKey","moveClass","setup","prevChildren","useTransitionState","onUpdated","root","clone","container","cloneNode","appendChild","callPendingCbs","recordPosition","movedChildren","applyTranslation","transform","webkitTransform","transitionDuration","propertyName","toRaw","cssTransitionProps","Element","setTransitionHooks","resolveTransitionHooks","getBoundingClientRect","getTransitionRawChildren","i1","child1","oldPos","newPos","dx","left","dy","top","getModelAssigner","invokeArrayFns","onCompositionStart","composing","onCompositionEnd","Event","assignKey","created","_param_modifiers","modifiers","lazy","trim","number","castToNumber","domValue","looseToNumber","beforeUpdate","elValue","activeElement","deep","modelValue","_modelValue","elementValue","getValue","checked","index","looseIndexOf","found","filtered","splice","isSet","cloned","getCheckboxValue","setChecked","binding","looseEqual","isSetModel","selectedVal","selected","multiple","_assigning","setSelected","_binding","isMultiple","isArrayValue","_ret","option","optionValue","optionType","selectedIndex","callModelHook","prevVNode","resolveDynamicModel","modelToUse","systemModifiers","modifierGuards","stop","stopPropagation","prevent","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","button","middle","right","exact","_withMods","cacheKey","join","guard","keyNames","esc","space","up","down","_withKeys","eventKey","rendererOptions","patchProp","prevValue","nextValue","namespace","transitionClasses","className","patchStyle","prev","isCssString","isString","hasControlledDisplay","prevStyle","key1","key2","cssVarText","isOn","isModelListener","patchEvent","invokers","existingInvoker","invoker","_parseName","parseName","_vts","attached","Date","now","callWithAsyncErrorHandling","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","e2","shouldSetAsProp","isFunction","_trueValue","_falseValue","insert","is","createElementNS","createText","text","createTextNode","createComment","setText","nodeValue","setElementText","querySelector","selector","setScopeId","insertStaticContent","start","before","previousSibling","lastChild","innerHTML","template","wrapper","enabledHydration","ensureRenderer","createRenderer","ensureHydrationRenderer","createHydrationRenderer","_ensureRenderer","_ensureHydrationRenderer","containerOrSelector","normalizeContainer","_component","resolveRootNamespace","SVGElement","MathMLElement","ssrDirectiveInitialized","getSSRProps","toUpperCase","_assert_this_initialized","ReferenceError","_class_call_check","Constructor","_defineProperties","_create_class","protoProps","staticProps","_setPrototypeOfJs","subClass","superClass","_set_prototype_of","_sliced_to_array","_arrayWithHolesJs","_iterableToArrayLimitJs","_nonIterableRestJs","_unsupportedIterableToArrayJs","arr","_array_with_holes","_iterable_to_array_limit","_s","_e","_i","_arr","_n","_d","_non_iterable_rest","_unsupported_iterable_to_array","_arrayLikeToArrayJs","minLen","_array_like_to_array","len","arr2","_to_consumable_array","_arrayWithoutHolesJs","_iterableToArrayJs","_nonIterableSpreadJs","_array_without_holes","_iterable_to_array","iter","_non_iterable_spread","_create_super","_getPrototypeOfJs","_isNativeReflectConstructJs","_possibleConstructorReturnJs","Derived","hasNativeReflectConstruct","Super","construct","_get_prototype_of","getPrototypeOf","_is_native_reflect_construct","valueOf","_possible_constructor_return","_assertThisInitializedJs","_typeOfJs","_obj","devtools$1","_obj1","internalSetCurrentInstance","setInSSRSetupState","installWithProxy","_reactivity","EffectScope","ReactiveEffect","TrackOpTypes","TriggerOpTypes","customRef","effect","effectScope","getCurrentScope","getCurrentWatcher","isProxy","isReactive","isReadonly","isRef","isShallow","markRaw","onScopeDispose","onWatcherCleanup","proxyRefs","reactive","readonly","ref","shallowReactive","shallowReadonly","shallowRef","toRef","toRefs","toValue","triggerRef","normalizeClass","normalizeProps","normalizeStyle","toDisplayString","toHandlerKey","Comment","DeprecationTypes","ErrorCodes","ErrorTypeStrings","KeepAlive","Suspense","Teleport","Text","assertNumber","callWithErrorHandling","cloneVNode","compatUtils","computed","createBlock","createCommentVNode","createElementBlock","createBaseVNode","createPropsRestProxy","createSlots","createStaticVNode","createTextVNode","defineAsyncComponent","defineEmits","defineExpose","defineModel","defineOptions","defineProps","defineSlots","devtools","guardReactiveProps","handleError","hasInjectionContext","hydrateOnIdle","hydrateOnInteraction","hydrateOnMediaQuery","hydrateOnVisible","initCustomFormatter","inject","isMemoSame","isRuntimeOnly","isVNode","mergeDefaults","mergeModels","mergeProps","onActivated","onBeforeUnmount","onBeforeUpdate","onDeactivated","onErrorCaptured","onRenderTracked","onRenderTriggered","onServerPrefetch","openBlock","popScopeId","provide","pushScopeId","queuePostFlushCb","registerRuntimeCompiler","renderList","renderSlot","resolveComponent","resolveDirective","resolveDynamicComponent","resolveFilter","setBlockTracking","setDevtoolsHook","ssrContextKey","ssrUtils","toHandlers","transformVNodeArgs","useAttrs","useId","useModel","useSSRContext","useSlots","useTemplateRef","version","warn","watch","watchEffect","watchSyncEffect","withAsyncContext","withCtx","withDefaults","withDirectives","withMemo","withScopeId","_defineProperty","isWarning","warn$1","msg","pauseTracking","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","_a","_b","JSON","stringify","formatComponentName","logs","_console","warnArgs","isRoot","open","close","formatProp","console","resetTracking","SETUP_FUNCTION","RENDER_FUNCTION","NATIVE_EVENT_HANDLER","COMPONENT_EVENT_HANDLER","VNODE_HOOK","DIRECTIVE_HOOK","TRANSITION_HOOK","APP_ERROR_HANDLER","APP_WARN_HANDLER","FUNCTION_REF","ASYNC_COMPONENT_LOADER","SCHEDULER","COMPONENT_UPDATE","APP_UNMOUNT_CLEANUP","ErrorTypeStrings$1","isPromise","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","flags","jobId","getId","lastJob","findInsertionIndex","middleJob","middleJobId","queueFlush","flushJobs","seen","NOOP","job1","flushPostFlushCbs","flushPreFlushCbs","_activePostFlushCbs","deduped","sort","Infinity","buffer","devtoolsNotInstalled","emit$1","_devtools$1","setDevtoolsHook$1","enabled","navigator","userAgent","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","devtoolsComponentAdded","createDevtoolsComponentHook","devtoolsComponentUpdated","_devtoolsComponentRemoved","devtoolsComponentRemoved","cleanupBuffer","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","_id","ctx","renderFnWithContext","prevInstance","_c","getComponentPublicInstance","bindings","dirs","_directives_i","dir","tmp","traverse","invokeDirectiveHook","oldBindings","TeleportEndKey","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","moveTeleport","parentAnchor","move","moveType","targetAnchor","isReorder","process","n1","n2","parentSuspense","slotScopeIds","optimized","internals","mountChildren","mc","patchChildren","pc","patchBlockChildren","pbc","_internals_o","dynamicChildren","placeholder","mainAnchor","container2","anchor2","mountToTarget","prepareAnchor","updateCssVars","defer","queuePostRenderEffect","targetStart","mainAnchor1","wasDisabled","currentContainer","traverseStaticChildren","nextTarget","doRemove","um","hostRemove","_param_o","shouldRemove","hydrateChildren","targetNode","_lpa","data","isDisabled","leaveCbKey","isMounted","isLeaving","isUnmounting","leavingVNodes","Map","TransitionHookValidator","Function","appear","persisted","onAfterEnter","onBeforeLeave","onAfterLeave","onAfterAppear","recursiveGetSubtree","findNonCommentChild","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","hooks","oldChild","oldInnerChild","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","postClone","_props_persisted","callAsyncHook","every","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","vnode2","hooks2","isKeepAlive","ssContent","ssFallback","keepComment","parentKey","ret","keyedFragmentCount","patchFlag","idPrefix","ids","markAsyncBoundary","refs","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","hasLoggedMismatchError","logMismatchError","getContainerType","namespaceURI","isComment","createHydrationFunctions","rendererInternals","mountComponent","mt","patch","_rendererInternals_o","hydrateNode","isFragmentStart","onMismatch","handleMismatch","domType","__VUE_PROD_HYDRATION_MISMATCH_DETAILS__","isTemplateNode","replaceNode","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAnchor","forcePatch","vnodeHooks","needCallTransitionHooks","needTransition","hasWarned","isMismatchAllowed","clientText","isCustomElement","propHasMismatch","clientValue","actual","expected","isSetEqual","toClassSet","mismatchType","mismatchKey","stringifyStyle","actualMap","toStyleMap","expectedMap","_step_value","resolveCssVars","getCssVars","cssVars","getEscapedCssVarName","isMapEqual","isKnownSvgAttr","isBooleanAttr","isKnownHtmlAttr","isRenderableAttrValue","format","v1","MismatchTypeString","endsWith","isReservedProp","onClick","onVnodeBeforeMount","invokeVNodeHook","queueEffectWithSuspense","parentVNode","normalizeVNode","isText","fragmentSlotScopeIds","isFragment","parentElement","next2","newNode","oldNode","parentNode2","replaceChild","hasChildNodes","_vnode","str","styleMap","item","_item_split","allowMismatchAttr","allowedType","allowedAttr","list","requestIdleCallback","getGlobalThis","cancelIdleCallback","clearTimeout","opts","IntersectionObserver","entries","isIntersecting","_el_getBoundingClientRect","bottom","innerHeight","innerWidth","query","mql","matchMedia","once","interactions","hasHydrated","doHydrate","teardown","loader","resolvedComp","loadingComponent","errorComponent","_source_delay","delay","hydrateStrategy","_source_suspensible","suspensible","userOnError","onError","pendingRequest","retries","load","thisRequest","toStringTag","__asyncHydrate","forEachElement","depth","bum","isUnmounted","__asyncResolved","currentInstance","createInnerComp","isInSSRComponentSetup","loaded","delayed","_parent_vnode","ref2","__isKeepAlive","include","exclude","sharedContext","current","__v_cache","_sharedContext_renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","instance2","isDeactivated","vnodeHook","deactivate","invalidateMount","da","onVnodeUnmounted","doWatch","_param","flush","pendingCacheKey","cacheSubtree","isSuspense","getInnerChild","rawVNode","cachedVNode","parseInt","pattern","isRegExp","lastIndex","registerKeepAliveHook","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","__weh","reset","setCurrentInstance","createHook","lifecycle","COMPONENTS","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","Component","selfName","registry","renderItem","sourceIsArray","sourceIsReactiveArray","needsWrap","shallowReadArray","toReactive","i2","l1","dynamicSlots","slot","fallback","noSlotted","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","$refs","$parent","$root","$host","$emit","$options","__VUE_OPTIONS_API__","resolveMergedOptions","$forceUpdate","$nextTick","$watch","instanceWatch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","normalizedProps","cssModule","globalProperties","accessCache","propsOptions","shouldCacheAccess","publicGetter","track","_param__","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","isGloballyAllowed","defaults","getContext","setupContext","createSetupContext","normalizePropsOrEmits","reduce","normalized","skipFactory","excludedKeys","getAwaitable","awaitable","unsetCurrentInstance","resolved","base","mixins","extendsOptions","_instance_appContext","globalMixins","optionsCache","optionMergeStrategies","mergeOptions","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","beforeDestroy","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","merged","normalizeInject","createAppContext","isNativeTag","NO","performance","compilerOptions","propsCache","emitsCache","uid$1","currentApp","parentProvides","defaultValue","treatDefaultAsFactory","_context","internalObjectProto","createInternalObject","isInternalObject","setFullProps","rawCastValues","_instance_propsOptions","needCastKeys","hasAttrsChanged","isEmitListener","emitsOptions","rawCurrentProps","castValues","resolvePropValue","isAbsent","hasDefault","propsDefaults","mixinPropsCache","validatePropName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","$stable","baseCreateRenderer","createHydrationFns","__VUE__","__VUE_DEVTOOLS_GLOBAL_HOOK__","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","patchElement","resolveChildrenNamespace","cloneIfMounted","__vnode","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchProps","propsToUpdate","dynamicProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","updateComponent","initialVNode","createComponentInstance","setupComponent","asyncDep","registerDep","setupRenderEffect","shouldUpdateComponent","nextVNode","prevProps","nextProps","nextChildren","hasPropsChanged","asyncResolved","updateComponentPreRender","componentUpdateFn","vnodeHook1","bu","u","parent1","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","subComponent","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","bm","isAsyncWrapperVNode","hydrateSubTree","_injectChildStyle","scopedInitialVNode","scope","on","off","run","runIfDirty","scheduler","updateProps","rawPrevProps","kebabKey","camelizedKey","trigger","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","EMPTY_ARR","oldLength","newLength","commonLength","min","nextChild","l2","e1","n11","n21","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","arrI","nextIndex","nextChild1","anchor1","remove2","performLeave","cacheIndex","renderCache","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","removeFragment","performRemove","suspenseId","pendingId","deps","teleportEnd","isFlushing","rootComponent","rootProps","installedPlugins","pluginCleanupFns","_uid","_container","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","onUnmount","cleanupFn","runWithContext","lastApp","currentNamespace","encoding","allowed","shallow","ch1","ch2","ssrCleanup","immediate","baseWatchOptions","runsImmediately","__watcherHandles","watchStopHandle","pause","isPre","isFirstRun","augmentJob","watchHandle","publicThis","createPathGetter","segments","camelizedName","hyphenatedName","getModelModifiers","localValue","prevEmittedValue","prevSetValue","propValue","hasChanged","emittedValue","modelName","modelModifiers","handlerName","rawArgs","onceHandler","emitted","fallthroughAttrs","withProxy","inheritAttrs","proxyToUse","render2","getFunctionalFallthrough","blockStack","filterModelListeners","nextKeys","__isSuspense","mountSuspense","hiddenContainer","createSuspenseBoundary","triggerEvent","setActiveBranch","isInFallback","patchSuspense","newBranch","newFallback","normalize","isSlotChildren","normalizeSuspenseSlot","eventListener","parentSuspenseId","isSuspensible","initialAnchor","_parent_effects","sync","parentComponent2","delayEnter","hasUnresolvedAncestor","fallbackVNode","namespace2","mountFallback","optimized2","isInPendingSuspense","hydratedEl","asyncSetupResult","handleSetupResult","parentSuspense2","block","trackBlock","isBlockTreeEnabled","currentBlock","closeBlock","filterSingleRoot","singleRoot","_suspense_effects","branch","disableTracking","setupBlock","__v_isVNode","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","__vccOpts","klass","extraProps","mergeRef","cloneTransition","mergedProps","flag","numberOfNodes","asBlock","memo","slotFlag","toMerge","incoming","emptyAppContext","exposeProxy","normalizePropsOptions","hasExtends","extendProps","raw2","_normalizePropsOptions","normalizedKey","normalizedKey1","prop","propType","shouldCast","shouldCastTrue","typeName","normalizeEmitsOptions","extendEmits","normalizedFromExtend","bc","rtg","rtc","sp","registerGlobalSetter","setter","setters","isSSR","_instance_vnode","isStateful","initProps","setupResult","setupStatefulComponent","Proxy","isAsyncSetup","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","devtoolsRawSetupState","_compile","_rc","skipOptions","_instance_appContext_config","delimiters","componentCompilerOptions","finalCompilerOptions","applyOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","expose","filters","resolveInjections","methodHandler","createWatcher","handler1","registerLifecycleHook","_hook","attrsProxyHandlers","classifyRE","includeInferred","__name","__file","inferFromRegistry","getterOrOptions","debugOptions","propsOrChildren","pushWarningContext","popWarningContext","activeEffectScope","activeSub","batchedSub","batchedComputed","ARRAY_ITERATE_KEY","EffectFlags","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveFlags","WatchErrorCodes","enableTracking","onEffectCleanup","reactiveReadArray","toReadonly","detached","_active","cleanups","_isPaused","scopes","currentEffectScope","fromParent","ACTIVE","RUNNING","TRACKING","NOTIFIED","DIRTY","ALLOW_RECURSE","PAUSED","pausedQueueEffects","depsTail","cleanup","active","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","isDirty","batchDepth","sub","isComputed","endBatch","next1","prevActiveLink","dep","activeLink","head","tail","prevDep","removeDep","refreshComputed","_dirty","globalVersion","prevSub","soft","nextSub","subs","sc","runner","trackStack","Link","Dep","debugInfo","addSub","currentTail","notify","targetMap","depsMap","oldTarget","targetIsArray","isArrayIndex","isIntegerKey","isMap","array","arrayInstrumentations","_reactiveReadArray","searchProxy","separator","noTracking","toReversed","comparer","toSorted","toSpliced","method","wrapValue","arrayProto","wrappedRetFn","methodFn","result2","wrappedFn","acc","isNonTrackableKeys","makeMap","builtInSymbols","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","MutableReactiveHandler","isOldValueReadonly","hadKey","deleteProperty","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","proto","_getProto","hadItems","iteratorMethods","targetIsMap","isPair","innerIterator","isKeyOnly","_innerIterator_next","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","targetTypeMap","rawType","toRawType","createRef","rawValue","RefImpl","_rawValue","useDirectValue","shallowUnwrapHandlers","objectWithRefs","CustomRefImpl","factory","_factory","_get","_set","newVal","object","propertyToRef","ObjectRefImpl","_object","_defaultValue","depMap","GetterRefImpl","_getter","ComputedRefImpl","__v_isRef","GET","HAS","ITERATE","SET","ADD","DELETE","CLEAR","SKIP","IS_REACTIVE","IS_READONLY","IS_SHALLOW","RAW","IS_REF","WATCH_GETTER","WATCH_CALLBACK","WATCH_CLEANUP","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","boundCleanup","reactiveGetter","source2","forceTrigger","isMultiSource","currentEffect","baseGetter","_cb","fill","immediateFirstRun","dirty","currentWatcher","cleanup2","_globalThis","PatchFlagNames","PatchFlags","ShapeFlags","SlotFlags","cssVarNameEscapeSymbolsRE","escapeHtml","escapeHtmlComment","genCacheKey","genPropsAccessExp","generateCodeFrame","isBuiltInDirective","isDate","isGloballyWhitelisted","isHTMLTag","isKnownMathMLAttr","isMathMLTag","isSSRSafeAttrName","isSVGTag","isVoidTag","objectToString","parseStringStyle","propsToAttrMap","slotFlagsText","toTypeString","cacheStringFunction","hit","camelizeRE","hyphenateRE","charAt","fns","parseFloat","isNaN","NaN","identRE","TEXT","CLASS","STYLE","PROPS","FULL_PROPS","NEED_HYDRATION","STABLE_FRAGMENT","KEYED_FRAGMENT","UNKEYED_FRAGMENT","NEED_PATCH","DYNAMIC_SLOTS","DEV_ROOT_FRAGMENT","CACHED","BAIL","ELEMENT","FUNCTIONAL_COMPONENT","STATEFUL_COMPONENT","TEXT_CHILDREN","ARRAY_CHILDREN","SLOTS_CHILDREN","TELEPORT","SUSPENSE","COMPONENT_SHOULD_KEEP_ALIVE","COMPONENT_KEPT_ALIVE","COMPONENT","STABLE","DYNAMIC","FORWARDED","lines","newlineSequences","idx","count","line","repeat","lineLength","newLineSeqLength","pad","length1","listDelimiterRE","propertyDelimiterRE","styleCommentRE","specialBooleanAttrs","unsafeAttrCharRE","attrValidationCache","isUnsafe","acceptCharset","htmlFor","httpEquiv","escapeRE","string","escaped","exec","html","commentStripRE","src","doubleEscape","aValidType","bValidType","getTime","looseCompareArrays","equal","aKeysCount","aHasKey","bHasKey","findIndex","replacer","val2","stringifySymbol","script","_database","_utils","_footerVue","_footerVueDefault","Footer","database","Database","setObservable","rooms","classrooms","peerID","getPeerID","copyPeerID","copyToClipboard","switchClassroomProtection","setProtection","deleteClass","drop","forkClass","classroom","infoHash","createdBy","removeKeysStartingWithSecret","members","teacher","student","put","timestamp","createClass","dateCreated","logo","selfAssign","defaultNumberOfRooms","studentConfig","teacherConfig","stationConfig","width","height","_dexie","deleteDatabase","observables","db","Dexie","stores","log","indexedDB","orderBy","toArray","withTimestamp","_tmp","hashJsonObject","hash","unsubscribe","observable","liveQuery","where","equals","first","subscribe","domDeps","Dexie$1","RangeSet","mergeRanges","rangesOverlap","_global","extension","_hasOwn","setProp","functionOrGetSet","derive","Child","Parent","getPropertyDescriptor","pd","_slice","override","origFunc","overridedFactory","assert","asap$1","setImmediate","arrayToObject","extractor","nameAndValue","getByKeyPath","keyPath","rv","period","innerObj","substr","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","shallowClone","flatten","intrinsicTypeNames","num","intrinsicTypes","circularRefs","deepClone","any","innerDeepClone","iteratorSymbol","getIteratorOf","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","isAsyncFunction","debug","libraryFilter","NEEDS_THROW_FOR_STACK","getErrorWithStack","prettyStack","exception","numIgnoredFrames","frame","idbDomErrorNames","errorList","dexieErrorNames","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","DexieError","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","pos","failuresByPos","_stack","errnames","exceptions","fullName","msgOrInner","Syntax","SyntaxError","Type","Range","RangeError","exceptionMap","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","onsuccess","onerror","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","thiz","INTERNAL","_a$1","globalP","crypto","subtle","nativeP","digest","Uint8Array","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","stack_being_generated","schedulePhysicalTick","physicalTick","hiddenDiv","asap","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","currentFulfiller","rejectionMapper","globalPSD","unhandleds","onunhandled","globalError","pgp","finalize","uh","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","onuncatched","_lib","psd","_PSD","_stackHolder","_prev","_numPrev","handleRejection","executePromiseTask","promise","shouldExecuteTick","beginMicroTickScope","_then","propagateAllListeners","endMicroTickScope","ex","thenProp","microTaskId","totalEchoes","onFulfilled","onRejected","possibleAwait","decrementExpectedAwaits","propagateToListener","Listener","nativeAwaitCompatibleWrap","linkToPreviousPromise","zone","reason","_promise","tryCatch","origProp","listeners","finalizePhysicalTick","listener","callListener","markErrorAsHandled","numPrev","wasRootExec","callbacks","unhandledErrs","finalizers","PromiseReject","errorCatcher","outerScope","switchToZone","onFinally","stacks","getStack","limit","errorName","failure","ms","handle","Timeout","snapShot","all","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","follow","zoneProps","finalizer","allSettled","possiblePromises","results","status","AggregateError","task","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","globalEnv","PromiseProp","nthen","getPatchedPromiseThen","gthen","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","GlobalPromise_1","targetEnv","GlobalPromise","a3","outerZone","origThen","onResolved","UNHANDLEDREJECTION","eventData","createEvent","initEvent","PromiseRejectionEvent","onunhandledrejection","defaultPrevented","DEXIE_VERSION","maxString","fromCharCode","minKey","INVALID_KEY_ARGUMENT","STRING_EXPECTED","connections","isIEOrEdge","dexieStackFrameFilter","DBNAMES_DB","READONLY","READWRITE","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Table","_trans","writeLocked","trans","_tx","tableName","checkTableInTransaction","schema","NotFound","idbtrans","transless","tempTransaction","storeNames","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","isOpen","_close","_completion","dbOpenError","isBeingOpened","_options","autoOpen","dbReadyPromise","keyOrCrit","core","reading","fire","indexOrCrit","WhereClause","keyPaths","compoundIndex","indexes","primKey","ix","compound","_maxKey","keyPathsInValidOrder","kp","idxByName","idb","_deps","cmp","prevIndex","prevFilterFn","multi","filterFunction","toCollection","and","thenShortcut","offset","numRows","each","Collection","reverse","mapToClass","mappedClass","readHook","defineClass","auto","objToAdd","mutate","numFailures","lastResult","keyOrObject","modify","InvalidArgument","range","bulkGet","getMany","bulkAdd","objects","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","bulkPut","objectsToPut","bulkDelete","numKeys","Events","evs","eventName","subscriber","addEventType","chainFunction","defaultFunction","addConfiguredEvents","cfg","subscribers","makeClassConstructor","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","isLimitFilter","curr","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","coreTable","keysOnly","unique","coreTrans","iterate","valueMapper","set_1","union","cursor","advance","_iterate","cursorPromise","advancer","ta","tb","compareUint8Arrays","al","bl","getUint8Array","compareArrays","ArrayBuffer","isView","tsTag","byteOffset","byteLength","_read","table","_write","_addAlgorithm","sortBy","parts","lastPart","getval","order","sorter","aVal","bVal","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","isMatch","indexName","_ondirectionchange","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","changes","modifyer","anythingModified","outbound","extractKey","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","criteria","deleteCallback","changeSpec","simpleCompare","simpleCompareReverse","collectionOrWhereClause","T","collection","emptyCollection","whereClause","rangeEqual","addIgnoreCaseAlgorithm","needles","suffix","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowerKey","lowestPossibleCasing","casing","nextCasing","upperNeedle","lowerNeedle","llp","lwrKeyChar","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","_$cmp","ascending","descending","_min","_max","sortDirection","rangeSorter","newRange","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","checkKey","startsWithAnyOf","eventRejectHandler","DEXIE_STORAGE_MUTATED_EVENT_NAME","STORAGE_MUTATED_DOM_EVENT_NAME","globalEvents","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","OpenFailed","transaction","durability","chromeTransactionDurability","ev","_reject","onabort","oncomplete","_resolve","storagemutated","bWriteLock","ReadOnly","waitFor","promiseLike","_waitingFor","_waitingQueue","store","objectStore","spin","_spinCount","currentWaitPromise","abort","memoizedTables","_memoizedTables","tableSchema","transactionBoundTable","createIndexSpec","nameFromKeyPath","createTableSchema","getMaxKey","IdbKeyRange","only","getKeyExtractor","arrayify","_id_counter","getKeyPathAlias","generateMiddlewareStacks","tmpTrans","middlewares","IDBKeyRange","stackImpl","_novip","_middlewares","dbcore","createDBCore","makeIDBKeyRange","upperBound","lowerBound","bound","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","req","isAddOrPut","reqs","_$_a","args1","args2","keyCount","callbackCount","successHandler","_pos","request","_$query","nonInfinitLimit","idbKeyRange","getAll","getAllKeys","count_1","req_1","openKeyCursor","result_1","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","tableMap","MIN_KEY","MAX_KEY","tbl","setApiOnPlace","objs","tableNames","dbschema","propDesc","removeTablesApi","lowerVersionFirst","_cfg","getSchemaDiff","oldSchema","newSchema","diff","del","change","oldDef","newDef","recreate","oldIndexes","newIndexes","idxName","oldIdx","newIdx","createTable","createObjectStore","addIndex","createIndex","buildGlobalSchema","globalSchema","dbStoreNames","storeName","idbindex","adjustToExistingIndexNames","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","Version","_parseStoresSpec","outSchema","primKeyAndIndexes","indexNum","storesSource","versions","_versions","storesSpec","_allTables","_storeNames","upgrade","upgradeFunction","contentUpgrade","getDbNamesTable","indexedDB1","dbNamesDB","addons","dbnames","hasDatabasesNative","databases","vip","awaitIterator","callNext","onSuccess","getNext","extractTransactionArgs","_tableArgs_","scopeFunc","virtualIndexMiddleware","level","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","translateRequest","getObjectDiff","prfx","ap","bp","apTypeName","hooksMiddleware","downCore","downTable","dxTrans","deleting","creating","updating","addPutOrDelete","deleteNextChunk","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","getFromTransactionCache","cacheExistingValuesMiddleware","cachedResult","isEmptyRange","fromOrTree","addRange","rebalance","rightWasCutOff","newSet","_addRangeSet","rangeSet1","rangeSet2","getRangeSetIterator","nextResult1","nextResult2","keyProvided","rootClone","oldRootRight","computeDepth","rangeSet","addKey","addKeys","observabilityMiddleware","dbName","FULL_RANGE","tableClone","mutatedParts","getRangeSet","part","pkRangeSet","delsRangeSet","newObjs","oldCache","oldObjs","trackAffectedIndexes","addKeyOrKeys","oldKey","newKey","getRange","readSubscribers","subscr","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","wantValues_1","cursor_1","pkey","verno","dependencies","onReadyBeingFired","dbReadyResolve","cancelOpen","openCanceller","autoSchema","ready","bSticky","db_1","keyRangeGenerator","keyRange","whereCtx","readingHook","complete","wasActive","versionNumber","orCollection","_IDBKeyRange","newVersion","oldVersion","parentTransaction","_fireOnBlocked","vcFired","addon","round","versionInstance","_whenReady","unuse","mw","dexieOpen","intervalId","throwIfCancelled","resolveDbReady","upgradeTransaction","wasCreated","tryOpenDB","onblocked","onupgradeneeded","allowEmptyDB","delreq","NoSuchDatabase","idbUpgradeTrans","rejectTransaction","oldVer","anyContentUpgraderHasRun","populate","updateTablesAndIndexes","versToRun","tuple","Upgrade","store_1","deleteIndex","returnValue_1","upgradeSchema_1","contentUpgradeIsAsync_1","promiseFollowed","decrementor","deleteRemovedTables","deleteObjectStore","runQueue","createMissingTables","contains","ch","onversionchange","onclose","userAgentData","tryIdb","setInterval","clearInterval","fireRemainders","remainders_1","hasArguments","doDelete","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","idbMode","onlyIfCompatible","SubTransaction","enterTransaction","enterTransactionScope","returnValue","scopeFuncIsAsync","PrematureCommit","InvalidTable","symbolObservable","Observable","_subscribe","extendObservabilitySet","querier","hasValue","currentValue","observer","closed","accumMuts","currentObs","subscription","mutationListener","querying","startedListening","shouldNotify","doQuery","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","propagateLocally","updateParts","wasMe","propagatingLocally","databaseName","exists","getDatabaseNames","infos","ignoreTransaction","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","delByKeyPath","semVer","pow","maxKey","updatedParts","event_1","initCustomEvent","BroadcastChannel","bc_1","changedParts","postMessage","onmessage","localStorage","setItem","trig","random","includeUncontrolled","client","parse","swContainer","serviceWorker","domError","parseClassroom","scrapeModule","download","debounce","setToValue","validateUrl","getShortPeerID","toLocaleLowerCase","deepEqual","object1","object2","keys1","keys2","val1","areObjects","_objectSpreadProps","_jsYaml","_secureLs","_secureLsDefault","loadResource","absoluteURL","URL","clipboard","writeText","showInCustom","showIn","dump","_scrapeModule","_yaml_load","_yaml_load1","yaml","links","scripts","moduleEl","fetch","response","main","icon","shownIn","srcdoc","escape","origin","getElementsByTagName","innerText","baseURL","pat","filename","element","encodeURIComponent","click","func","wait","callNow","pathArr","protocols","protocol","chars","floor","SessionID","ls","encodingType","withSession","jsonObject","_hashJsonObject","msgUint8","TextEncoder","encode","hashArray","padStart","_object_spread_props","getOwnPropertyDescriptors","defineProperties","enumerableOnly","symbols","CORE_SCHEMA","DEFAULT_SCHEMA","FAILSAFE_SCHEMA","JSON_SCHEMA","YAMLException","loadAll","safeDump","safeLoad","safeLoadAll","types","common","isNothing","subject","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","compact","mark","column","snippet","YAMLException$1","captureStackTrace","getLine","lineStart","lineEnd","position","maxLineLength","maxHalfLength","maxLength","indent","linesBefore","linesAfter","re","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","instanceOf","predicate","represent","representName","defaultStyle","styleAliases","alias","compileList","currentType","previousType","previousIndex","Schema$1","definition","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","compileMap","scalar","sequence","mapping","collectType","seq","failsafe","_null","canonical","lowercase","uppercase","camelcase","empty","bool","_int","hasDigits","sign","binary","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","_float","POSITIVE_INFINITY","json","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","year","month","day","hour","minute","second","date","fraction","delta","UTC","tz_hour","setTime","toISOString","merge","BASE64_MAP","bitlen","tailbits","input","bits","_hasOwnProperty$3","_toString$2","omap","pair","pairKey","pairHasKey","objectKeys","_toString$1","pairs","_hasOwnProperty$2","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","simpleEscapeSequence","simpleEscapeCheck","simpleEscapeMap","State$1","onWarning","legacy","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","tagMap","decodeURIComponent","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","sourceKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_tag","_anchor","detected","anchorMap","composeNode","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","CONTEXT_BLOCK_OUT","CONTEXT_BLOCK_IN","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","readBlockMapping","following","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readFlowCollection","_lineStart","terminator","isExplicitPair","isMapping","readNext","readBlockScalar","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","CHOMPING_CLIP","readSingleQuotedScalar","captureEnd","readDoubleQuotedScalar","hexLength","hexResult","fromHexCode","lc","readAlias","readPlainScalar","withinFlowCollection","hasPendingContent","_lineIndent","_kind","loadDocuments","nullpos","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","_toString","_hasOwnProperty","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","State","noArrayIndent","skipInvalid","flowLevel","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","codePointAt","needIndentIndicator","leadingSpaceRe","blockHeader","indentPerLevel","indentIndicator","clip","keep","dropEndingNewline","foldLine","breakRe","writeBlockSequence","writeNode","CHAR_LINE_FEED","detectType","iskey","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","writeBlockMapping","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","writeFlowMapping","writeFlowSequence","chooseScalarStyle","singleLineOnly","testAmbiguousType","_char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafeFirst","testImplicitResolving","foldString","nextLF","moreIndented","lineRe","prevMoreIndented","escapeString","escapeSeq","encodeHex","character","encodeURI","renamed","getDuplicateReferences","duplicatesIndexes","inspectNode","float","int","__WEBPACK_DEFAULT_EXPORT__","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","Base64","_keyStr","_utf8Encode","decode","_utf8Decode","c3","SecureLS","_constants__WEBPACK_IMPORTED_MODULE_0__","_enc_utf8__WEBPACK_IMPORTED_MODULE_1__","_utils__WEBPACK_IMPORTED_MODULE_2__","crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__","crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default","crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__","crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default","crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__","crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default","crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__","crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default","lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__","_Base64__WEBPACK_IMPORTED_MODULE_8__","encryptors","EncrytionTypes","AES","DES","RABBIT","RC4","_ref_encryptionSecret","encryptionSecret","_ref_encryptionNamespace","encryptionNamespace","_ref_isCompression","isCompression","_ref_encodingType","BASE64","_ref_storage","storage","_ref_metaKey","_name","LZString","compressToUTF16","decompressFromUTF16","enc","metaData","getMetaData","_isBase64","_isBase64EncryptionType","_isAES","_isAESEncryptionType","_isDES","_isDESEncryptionType","_isRabbit","_isRabbitEncryptionType","_isRC4","_isRC4EncryptionType","_isCompression","_isDataCompressionEnabled","resetAllKeys","getObjectFromKey","generateSecretKey","setMetaData","getItem","dataToStore","processData","setDataToLocalStorage","getMetaKey","isAllKeysData","jsonData","encodedData","encryptor","getEncryptionType","encrypt","compressedData","extractKeyNames","decodedData","WarningEnum","KEY_NOT_PROVIDED","getDataFromLocalStorage","deCompressedData","getEncryptionSecret","bytes","decrypt","_Utf8","isKeyPresent","META_KEY_REMOVE","removeFromKeysList","removeItem","CryptoJSWordArray","nBytes","rcache","words","mz","_r","sigBytes","DEFAULT_TEXT","WarningTypes","secretPhrase","Latin1","wordArray","latin1Chars","crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__","crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default","_constants__WEBPACK_IMPORTED_MODULE_1__","_WordArray__WEBPACK_IMPORTED_MODULE_2__","salt","key128Bits","keySize","_ref_keys","module1","CryptoJS","BlockCipher","C_algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","RCON","C_lib","C","lib","algo","xi","sx","x2","x4","x8","_doReset","_nRounds","_keyPriorReset","keyWords","ksRows","nRounds","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","M","_doCryptBlock","decryptBlock","s0","s3","t0","t1","t2","t3","_createHelper","Base","WordArray","BufferedBlockAlgorithm","C_enc","EvpKDF","Cipher","C_mode","BlockCipherMode","CBC","Pkcs7","CipherParams","OpenSSLFormatter","SerializableCipher","OpenSSLKdf","PasswordBasedCipher","Utf8","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","_append","_process","_doFinalize","ivSize","selectCipherStrategy","cipher","ciphertext","StreamCipher","blockSize","iv","Encryptor","Decryptor","_cipher","_iv","xorBlock","undefined1","_prevBlock","processBlock","thisBlock","C_pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","modeCreator","_minBufferSize","_mode","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","C_format","OpenSSL","openSSLStr","ciphertextWords","cipherCfg","_parse","C_kdf","kdf","execute","password","hasher","compute","derivedParams","Math1","msCrypto","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","F","subtype","overrides","$super","properties","encoder","Hex","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","ceil","hexChars","bite","hexStr","hexStrLength","latin1Str","latin1StrLength","utf8Str","unescape","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","_createHmacHelper","HMAC","_map","base64Chars","triplet","byte1","byte2","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","parseLoop","bitsCombined","bits1","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","abs","sin","_hash","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","SHA256","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","S","C_","G","Rabbit","K","X","_X","_C","nextState","IV","IV_0","IV_1","i0","i3","gx","ga","gb","gh","gl","keySigBytes","_S","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","W","SHA1","HmacSHA1","getFractionalBits","nPrime","isPrime","sqrtN","sqrt","factor","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key3","_des1","_des2","_des3","__WEBPACK_AMD_DEFINE_RESULT__","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","compressToBase64","_compress","decompressFromBase64","_decompress","compressed","compressToUint8Array","uncompressed","compress","buf","TotalLen","current_value","decompressFromUint8Array","decompress","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","resetValue","getNextValue","w","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","__webpack_module_cache__","moduleId","cachedModule","_SecureLS__WEBPACK_IMPORTED_MODULE_0__","_cache","$setup","_component_v_btn","_component_v_tooltip","_component_v_row","_component_v_footer","color","elevation","justify","activator","density","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_component_v_list_item_title","_component_v_list_item_subtitle","_component_v_list_item","_component_v_list","_component_v_menu","_component_v_app_bar","_component_v_switch","_component_v_chip","_component_v_img","_component_v_card_title","_component_v_card_subtitle","_component_v_card_text","_component_v_icon","_component_v_spacer","_component_v_card_actions","_component_v_card","_component_v_col","_component_v_container","_component_v_main","_component_Footer","_component_v_app","title","append","variant","$event","fluid","cols","sm","md","lg","_classroom_data_meta","_classroom_data","onChange","cover","_classroom_data_members","createElementVNode","depressed","_settingsVue","_settingsVueDefault","_chat","_chatDefault","_checks","_checksDefault","_modulesVue","_modulesVueDefault","_peer","_peerDefault","_navigator_mediaDevices","_navigator","webRTCSupport","mediaDevices","getUserMedia","stationName","sessionStorage","states","receivedConfiguration","connectedToNetwork","configuration","communication","isOwner","showSideMenu","showSettings","scrapedModules","liveClassProxy","isStation","userName","componentKey","chat","messages","truncated","stationNameInput","stationNameRules","isNameTaken","getPeer_ID","_this_configuration","_self_communication","_self_communication1","newSetup","getRole","scrapeModules","getRooms","sortedKeys","_this_configuration_data_members_teacher","_this_configuration_data_members","_this_configuration_data","saveClass","Settings","usersInRoom","users","room","gotoRoom","_this_communication","addRoom","updateClass","sendMessage","setStationName","rule","reload","Chat","Checks","Modules","_mainVue","_mainVueDefault","_membersVue","_membersVueDefault","_stationsVue","_stationsVueDefault","_shareVue","_shareVueDefault","required","writeProtection","tab","configClone","configChanged","updateModules","updateMembers","Main","Members","Stations","Share","_component_v_text_field","_component_v_textarea","_component_v_checkbox","counter","outlined","filled","copyUrl","_component_v_alert","_component_v_divider","dense","rows","shaped","_vuedraggable","_vuedraggableDefault","_moduleVue","_moduleVueDefault","errors","moduleImportUrl","oldIndex","validate_config","validate_url","deleteModule","loadURL","scrapedModule","draggable","__WEBPACK_EXTERNAL_MODULE__8bbf__","__WEBPACK_EXTERNAL_MODULE_a352__","installedModules","ns","property","TO_STRING_TAG","wellKnownSymbol","aFunction","that","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getWindowNames","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","O","fails","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","classof","regexpExec","R","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","CollectionPrototype","$forEach","getBuiltIn","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","V8_VERSION","SPECIES","METHOD_NAME","foo","toInteger","integer","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","hiddenKeys","enumBugKeys","anObject","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","searchString","v8","Iterators","definePropertyModule","Properties","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","point","UNSCOPABLES","ArrayPrototype","MATCH","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","argumentsLength","mapfn","iteratorMethod","$entries","argument","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","regexp","rx","functionalReplace","fullUnicode","unicode","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","capture","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","bitmap","flattenIntoArray","arraySpeciesCreate","flatMap","A","sourceLen","CONVERT_TO_STRING","codeAt","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","wmget","wmhas","wmset","STATE","enforce","TYPE","inspectSource","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","addToUnscopables","wrappedWellKnownSymbolModule","NAME","Symbol1","activeXDocument","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","contentWindow","NullProtoObject","domain","ActiveXObject","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","propertyKey","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","getCurrentScript","currentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","stackDetails","ieStackRegExp","ffStackRegExp","scriptLocation","currentLocation","documentElement","readyState","functionToString","postfix","re1","re2","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","sticky","charsAdded","strCopy","multiline","feature","detection","POLYFILL","NATIVE","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","returnMethod","nativeDefineProperty","Attributes","a2bf","original","mapper","targetIndex","sourceIndex","mapFn","a352","a434","ACCESSORS","deleteCount","insertCount","actualDeleteCount","actualStart","a4d3","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","shared","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","symbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","$replacer","a630","checkCorrectnessOfIteration","iterable","a640","a691","ab13","ac1f","ad6d","ignoreCase","dotAll","ae40","thrower","argument0","argument1","ae93","PrototypeOfArrayIteratorPrototype","arrayIterator","b041","TO_STRING_TAG_SUPPORT","b0c0","FunctionPrototype","FunctionPrototypeToString","nameRE","b622","createWellKnownSymbol","withoutSetter","b64b","nativeKeys","b727","IndexedObject","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","_$self","boundFunction","c04e","PREFERRED_STRING","c430","c6b6","c6cd","SHARED","c740","$findIndex","FIND_INDEX","SKIPS_HOLES","c8ba","c975","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","ca84","caad","$includes","cc12","document1","EXISTS","ce4e","d012","d039","d066","variable","d1e7","NASHORN_BUG","d28b","d2bb","aPossiblePrototype","CORRECT_SETTER","d3b7","d44e","d58f","IS_RIGHT","d784","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","d81d","$map","da84","check","dbb4","dbf1","ddb0","ArrayIteratorMethods","ArrayValues","df75","e01a","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","_native","e163","CORRECT_PROTOTYPE_GETTER","e177","e260","ARRAY_ITERATOR","Arguments","e439","FAILS_ON_PRIMITIVES","e538","e893","e8b5","e95a","f5df","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","f772","fb15","_objectSpread2","_arrayLikeToArray","_unsupportedIterableToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","removeNode","insertNodeAt","fatherNode","refNode","regex","manageAndEmit","manage","eventHandlerNames","events","evt","tags","isHtmlAttribute","project","_ref2","getValidSortableEntries","_ref9","_ref10","_ref11","_ref12","_$value","_ref13","_ref14","getHtmlElementFromNode","domElement","__draggable_context","componentStructure_ComponentStructure","ComponentStructure","_ref2$nodes","nodes","header","defaultNodes","footer","realList","externalComponent","rootTransition","_isRootComponent","domIndex","domChildren","firstDomListElement","external_commonjs_vue_commonjs2_vue_root_Vue_","_emit","evtName","evtData","_manage","_this2","originalElement","_manageAndEmit","_this3","delegateCallBack","draggingElement","draggableComponent","itemKey","componentData","_ref3","_ref3$componentData","getKey","componentStructure","computeNodes","normalizedList","_map2","slotValue","_ref4","_ref5","_this4","_ref6","callBackBuilder","sortableOptions","_ref7","_ref8","eventType","eventBuilder","targetDomElement","_sortable","__draggable_component__","destroy","newOptionValue","getUnderlyingVm","getUnderlyingPotencialDraggableComponent","htmElement","emitChanges","_this5","alterList","onList","newList","spliceList","updatePosition","getRelatedContextFromMoveEvent","related","getVmIndexFromDomIndex","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","pullMode","_this$context","removed","onDragUpdate","computeFutureIndex","relatedContext","currentDomIndex","currentIndex","draggedInList","willInsertAfter","onDragMove","originalEvent","futureIndex","draggedContext","onDragEnd","fb6a","nativeSlice","fin","fc6a","fdbc","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","fdbf","_typeof","_extends","MultiDragPlugin","Sortable","SwapPlugin","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","substring","msMatchesSelector","webkitMatchesSelector","closest","includeCTX","R_SPACE","toggleClass","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","ghost","dragged","lastElementChild","previousElementSibling","_$index","nodeName","getRelativeScrollOffset","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","throttle","_throttleTimeout","scrollBy","Polymer","jQuery","Zepto","dom","setRect","rect","unsetRect","expando","plugins","initializeByDefault","PluginManager","pluginName","pluginEvent","sortable","eventCanceled","cancel","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","bubbles","cancelable","lastPutMode","allEventProperties","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","nearest","touches","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","animate","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","offsetWidth","animated","_onMove","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","composedPath","_saveInputCheckedState","inputs","isContentEditable","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","selection","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","PositionGhostAbsolutely","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","sibling","targetBeforeFirstSwap","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","save","handleEvent","dropEffect","_generateId","sum","useAnimation","items","utils","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","Swap","swapClass","dragStart","lastSwapEl","dragOverValid","swap","prevSwapEl","p1","p2","isEqualNode","nulling","swapItem","startIndex","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","dragStartGlobal","multiDrag","removeMultiDragElements","dragOver","clonesInserted","dragOverCompleted","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","dragMatrix","dragOverAnimationComplete","originalEvt","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","elementsInserted","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","_editorVue","_editorVueDefault","Editor","_vuePrismEditor","_prismCore","errorMessage","highlighter","highlight","languages","PrismEditor","isWindows","platform","isMacLike","lineNumbers","autoStyleLineNumbers","tabSize","insertSpaces","ignoreTabKey","lineNumbersHeight","codeData","setLineNumbersHeight","styleLineNumbers","isEmpty","lineNumbersCount","_recordCurrentState","pre","$editor","$lineNumbers","editorStyles","btlr","bblr","stylesList","textarea","selectionStart","selectionEnd","_recordChange","_getLines","_applyEdits","record","_updateInput","overwrite","_this$history","extras","_this$_getLines$pop","_this$_getLines$pop2","previous","handleChange","_e$target","_undoEdit","_this$history2","_redoEdit","_this$history3","handleKeyDown","keyCode","blur","_e$target2","tabCharacter","linesBeforeCaret","endLine","startLineText","_linesBeforeCaret","_startLine","_endLine","_startLineText","updatedSelection","hasSelection","textBeforeCaret","_updatedSelection","_updatedSelection2","lineNumberWidthCalculator","onInput","onKeydown","onKeyup","onFocus","onBlur","spellCheck","autocapitalize","autocomplete","autocorrect","preview","editorContainer","Prism","_self","lang","uniqueId","plainTextGrammar","manual","disableWorkerMessageHandler","util","tokens","Token","objId","visited","getLanguage","setLanguage","language","isActive","defaultActivation","no","plaintext","txt","redef","inside","grammar","token","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","elements","highlightElement","insertHighlightedCode","highlightedCode","Worker","worker","immediateClose","tokenize","rest","tokenList","LinkedList","addAfter","matchGrammar","startNode","rematch","patterns","cause","patternObj","lookbehind","greedy","currentNode","reach","removeCount","matchPattern","matchStr","removeFrom","removeRange","nestedRematch","matchedStr","lookbehindLength","classes","highlightAutomaticallyCallback","comment","punctuation","operator","boolean","webmanifest","Prism1","anchorOrAlias","plainKey","createValuePattern","datetime","important","yml","_component_v_expansion_panel_title","_component_prism_editor","_component_v_expansion_panel_text","_component_v_expansion_panel","actions","_component_v_radio","_component_v_radio_group","_component_Editor","_component_v_expansion_panels","_component_Module","_component_draggable","_$props_scrapedModules_index","selectedURL","selectedFile","showTemplate","restoreSuccess","saveError","restoreFileRules","updateConfig","newConfig","downloadClass","blob","Blob","createObjectURL","revokeObjectURL","restoreURL","newClass","ok","restoreFile","reader","FileReader","readAsText","onload","_reader_result","selectedURLIcon","selectedFileIcon","_component_v_file_input","onMouseover","onMouseleave","_component_v_toolbar_title","_component_v_tab","_component_v_tabs","_component_v_toolbar","_component_Main","_component_v_window_item","_component_Members","_component_Modules","_component_Stations","_component_Share","_component_v_window","_component_v_badge","dark","flat","onUpdateMembers","overlap","dot","_markdownIt","_markdownItDefault","_highlightJs","_highlightJsDefault","linkify","typographer","ignoreIllegals","show","deletedMessages","permanent","send","toDate","toLocaleString","_indexMjsDefault","_indexMjs","_utilsMjs","_rendererMjs","_rendererMjsDefault","_parserCoreMjs","_parserCoreMjsDefault","_parserBlockMjs","_parserBlockMjsDefault","_parserInlineMjs","_parserInlineMjsDefault","_linkifyIt","_linkifyItDefault","_mdurl","_punycodeJs","_punycodeJsDefault","_defaultMjs","_defaultMjsDefault","_zeroMjs","_zeroMjsDefault","_commonmarkMjs","_commonmarkMjsDefault","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","parsed","hostname","toASCII","er","normalizeLinkText","toUnicode","defaultChars","MarkdownIt","presetName","inline","helpers","configure","presets","rules","ruler","enableOnly","rules2","ruler2","enable","ignoreInvalid","chain","missed","disable","parseInline","inlineMode","renderInline","unescapeMd","unescapeAll","isValidEntityCode","fromCodePoint","arrayReplaceAt","isSpace","isWhiteSpace","isMdAsciiPunct","isPunctChar","normalizeReference","_ucMicro","_entities","sources","newElements","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","ENTITY_RE","DIGITAL_ENTITY_TEST_RE","entity","replaceEntityPattern","decoded","decodeHTML","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","REGEXP_ESCAPE_RE","mdurl","ucmicro","_decodeMjsDefault","_encodeMjsDefault","_formatMjsDefault","_parseMjsDefault","_decodeMjs","_encodeMjs","_formatMjs","_parseMjs","decodeCache","getDecodeCache","b1","b2","chr","b21","b3","chr1","b22","b31","b4","chr2","componentChars","encodeCache","keepEscaped","getEncodeCache","nextCode","slashes","auth","port","pathname","Url","protocolPattern","portPattern","simplePathPattern","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","hostlessProtocol","javascript","slashedProtocol","http","https","ftp","gopher","file","slashesDenoteHost","simplePath","lowerProto","hec","atSign","hostEnd","lastIndexOf","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","qm","_regexMjsDefault","_regexMjsDefault1","_regexMjsDefault2","_regexMjsDefault3","_regexMjsDefault4","_regexMjsDefault5","_regexMjs","_regexMjs1","_regexMjs2","_regexMjs3","_regexMjs4","_regexMjs5","EntityLevel","EncodingMode","_escapeJs","encodeXML","escapeUTF8","escapeAttribute","escapeText","_encodeJs","encodeHTML","encodeNonAsciiHTML","_decodeJs","EntityDecoder","DecodingMode","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeStrict","XML","HTML","Strict","UTF8","Attribute","ASCII","CharCodes","BinTrieFlags","EntityDecoderState","_decodeCodepointJs","replaceCodePoint","_decodeDataHtmlJsDefault","_decodeDataXmlJsDefault","_decodeCodepointJsDefault","determineBranch","_decodeDataHtmlJs","_decodeDataXmlJs","isNumber","ZERO","NINE","decodeTree","emitCodePoint","EntityStart","consumed","treeIndex","excess","decodeMode","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","digitCount","startIdx","char","UPPER_A","UPPER_F","LOWER_A","LOWER_F","addToNumericResult","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","isEntityInAttributeInvalidEnd","EQUALS","UPPER_Z","LOWER_Z","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","decoder","startEntity","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","Legacy","Uint16Array","decodeCodePoint","decodeMap","codePoint","output","_encodeHtmlJs","_encodeHtmlJsDefault","htmlReplacer","encodeHTMLTrieRe","xmlReplacer","regExp","lastIdx","nextChar","cp","getCodePoint","restoreDiff","xmlCodeMap","getEscaper","_parseLinkLabelMjsDefault","_parseLinkDestinationMjsDefault","_parseLinkTitleMjsDefault","_parseLinkLabelMjs","_parseLinkDestinationMjs","_parseLinkTitleMjs","parseLinkLabel","disableNested","marker","prevPos","posMax","skipToken","labelEnd","parseLinkDestination","parseLinkTitle","prev_state","can_continue","default_rules","Renderer","code_inline","slf","renderAttrs","code_block","fence","highlighted","langName","langAttrs","attrIndex","tmpAttrs","langPrefix","image","renderInlineAsText","renderToken","hardbreak","xhtmlOut","softbreak","breaks","html_block","html_inline","hidden","nesting","needLf","nextToken","_rulerMjs","_rulerMjsDefault","_stateCoreMjs","_stateCoreMjsDefault","_normalizeMjs","_normalizeMjsDefault","_blockMjs","_blockMjsDefault","_inlineMjs","_inlineMjsDefault","_linkifyMjs","_linkifyMjsDefault","_replacementsMjs","_replacementsMjsDefault","_smartquotesMjs","_smartquotesMjsDefault","_textJoinMjs","_textJoinMjsDefault","_rules","Core","getRules","Ruler","__rules__","__cache__","__find__","__compile__","chains","altName","at","beforeName","ruleName","afterName","chainName","_tokenMjs","_tokenMjsDefault","StateCore","markup","attrPush","attrData","attrSet","attrGet","attrJoin","NEWLINES_RE","NULL_RE","tok","blockTokens","pretest","htmlLinkLevel","currentToken","isLinkOpen","lastPos","ln","fullUrl","urlText","token_o","token_t","token_c","token1","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","blkIdx","replace_scoped","inlineTokens","inside_autolink","replace_rare","smartquotes","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","thisLevel","OUTER","canOpen","canClose","isSingle","lastChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","single","openQuote","closeQuote","quotes","text_join","_stateBlockMjs","_stateBlockMjsDefault","_tableMjs","_tableMjsDefault","_codeMjs","_codeMjsDefault","_fenceMjs","_fenceMjsDefault","_blockquoteMjs","_blockquoteMjsDefault","_hrMjs","_hrMjsDefault","_listMjs","_listMjsDefault","_referenceMjs","_referenceMjsDefault","_htmlBlockMjs","_htmlBlockMjsDefault","_headingMjs","_headingMjsDefault","_lheadingMjs","_lheadingMjsDefault","_paragraphMjs","_paragraphMjsDefault","ParserBlock","maxNesting","hasEmptyLines","skipEmptyLines","sCount","blkIndent","prevLine","tight","outTokens","lineMax","StateBlock","bMarks","eMarks","tShift","bsCount","ddIndent","listIndent","parentType","indent_found","skipSpaces","skipSpacesBack","skipChars","skipCharsBack","getLines","begin","keepLastLF","escapedSplit","isEscaped","silent","tbodyLines","nextLine","firstCh","secondCh","lineText","columns","aligns","columnCount","oldParentType","terminatorRules","token_to","tableLines","token_tho","token_htro","token_ho","token_il","autocompletedCells","terminate","token_tbo","token_tro","token_tdo","token_il1","mem","haveEndMarker","blockquote","oldLineMax","oldBMarks","oldBSCount","oldSCount","oldTShift","lastLineEmpty","isOutdented","initial","spaceAfterMarker","adjustTab","oldIndent","hr","cnt","skipBulletListMarker","skipOrderedListMarker","isOrdered","markerValue","posAfterMarker","isTerminatingParagraph","markerCharCode","listTokIdx","listLines","prevEmptyEnd","contentStart","indentAfterMarker","itemLines","oldTight","oldListIndent","markTightParagraphs","reference","getNextLine","isContinuation","lineContent","lineContent1","lineContent2","destRes","destEndPos","destEndLineNo","lineContent3","titleRes","lineContent4","ch3","ch4","references","_htmlBlocksMjs","_htmlBlocksMjsDefault","_htmlReMjs","HTML_SEQUENCES","HTML_OPEN_CLOSE_TAG_RE","HTML_TAG_RE","open_tag","close_tag","heading","token_i","lheading","paragraph","_stateInlineMjs","_stateInlineMjsDefault","_textMjs","_textMjsDefault","_newlineMjs","_newlineMjsDefault","_escapeMjs","_escapeMjsDefault","_backticksMjs","_backticksMjsDefault","_strikethroughMjs","_strikethroughMjsDefault","_emphasisMjs","_emphasisMjsDefault","_linkMjs","_linkMjsDefault","_imageMjs","_imageMjsDefault","_autolinkMjs","_autolinkMjsDefault","_htmlInlineMjs","_htmlInlineMjsDefault","_entityMjs","_entityMjsDefault","_balancePairsMjs","_balancePairsMjsDefault","_fragmentsJoinMjs","_fragmentsJoinMjsDefault","_rules2","postProcess","ParserInline","pending","pushPending","StateInline","tokens_meta","pendingLevel","_prev_delimiters","backticks","backticksScanned","linkLevel","token_meta","scanDelims","canSplitWord","left_flanking","right_flanking","can_open","can_close","isTerminatorChar","SCHEME_RE","matchAtStart","newline","pmax","ws","ESCAPED","escapedStr","origStr","backtick","matchStart","openerLength","matchEnd","closerLength","loneMarkers","startDelim","endDelim","scanned","isStrong","parseReference","labelStart","autolink","EMAIL_RE","AUTOLINK_RE","fullUrl1","token_o1","token_t1","token_c1","DIGITAL_RE","NAMED_RE","match1","processDelimiters","openersBottom","headerIdx","lastTokenIdx","jumps","closerIdx","closer","minOpenerIdx","openerIdx","newMinOpenerIdx","opener","isOddMatch","lastJump","link_pairs","fragments_join","_reMjs","_reMjsDefault","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","createNormalizer","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","slist","schema_test","src_ZPCc","schema_search","schema_at_start","__index__","__text_cache__","Match","__last_index__","__schema__","createMatch","LinkifyIt","schemas","ml","me","tld_pos","testSchemaAt","at_pos","keepOld","src_Any","Any","src_Cc","Cc","src_Z","Z","src_P","src_ZCc","text_separators","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","_String","ucs2decode","ucs2encode","regexPunycode","regexNonASCII","regexSeparators","overflow","stringFromCharCode","mapDomain","codePoints","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","inputLength","bias","basic","oldi","maxInt","baseMinusT","out","basicLength","handledCPCount","currentValue1","handledCPCountPlusOne","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue2","qMinusT","ucs2","hljs","registerLanguage","HighlightJS","_wrapNativeSuper","Response","isMatchIgnored","escapeHTML","inherit$1","emitsWrappingTags","scopeToCSSClass","pieces","HTMLRenderer","parseTree","classPrefix","walk","span","TokenTreeEmitter","TokenTree","openNode","closeNode","emitter","closeAllNodes","rootNode","builder","_walk","addText","_collapse","lookahead","anyNumberOfTimes","optional","either","countMatchGroups","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","relevance","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","MODES","freeze","APOS_STRING_MODE","illegal","BINARY_NUMBER_MODE","C_NUMBER_MODE","END_SAME_AS_BEGIN","resp","_beginMatch","ignoreMatch","MATCH_NOTHING_RE","METHOD_GUARD","NUMBER_MODE","PHRASAL_WORDS_MODE","QUOTE_STRING_MODE","REGEXP_MODE","RE_STARTERS_RE","SHEBANG","beginShebang","TITLE_MODE","UNDERSCORE_TITLE_MODE","skipIfHasPrecedingDot","scopeClassName","beginKeywords","__beforeBegin","keywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","endsParent","COMMON_KEYWORDS","seenDeprecations","deprecated","MultiClassError","remapScopeNames","regexes","scopeNames","positions","_multi","MultiClass","beginScope","_wrap","endScope","beginMultiClass","skip","returnBegin","endMultiClass","excludeEnd","returnEnd","HTMLInjectionError","Error1","NO_MATCH","HLJS","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","codeOrLanguageName","optionsOrCode","_highlight","codeToHighlight","continuation","keywordHits","processKeywords","modeBuffer","keywordPatternRe","word","case_insensitive","keywordRelevance","cssClass","classNameAliases","emitKeyword","processBuffer","subLanguage","processSubLanguage","continuations","_top","highlightAuto","__addSublanguage","_emitter","keyword","startScope","emitMultiClass","startNewMode","lastMatch","processLexeme","textBeforeMatch","lexeme","_$err","badRule","doBeginMatch","newMode","beforeCallbacks","matcher","regexIndex","resumeScanAtSamePosition","processed","doEndMatch","matchPlusRemainder","endMode","endOfMode","endRe","endsWithParent","_$err1","compileLanguage","langRe","unicodeRegex","MultiRegex","matchIndexes","matchAt","terminators","matcherRe","matchData","ResumableMultiRegex","multiRegexes","addRule","getMatcher","resumingScanAtSamePosition","m2","considerAll","compilerExtensions","compileMode","isCompiled","mm","keywordPattern","$pattern","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","keywordList","providedScore","commonKeyword","cmode","beginRe","terminatorEnd","illegalRe","variants","cachedVariants","dependencyOnParent","term","processContinuations","__emitTokens","processedCount","toHTML","_illegalBy","resultSoFar","errorRaised","languageSubset","autoDetection","sorted","supersetOf","_sorted","best","secondBest","blockLanguage","dataset","resultLang","currentLang","wantsHighlight","blocks","registerAliases","aliasList","highlightBlock","userOptions","inherit","initHighlighting","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","unregisterLanguage","listLanguages","addPlugin","removePlugin","debugMode","safeMode","versionString","deepFreeze","newInstance","_wrap_native_super","_constructJs","_isNativeFunctionJs","Class","Wrapper","_construct","_is_native_function","KEYWORD","v7_keywords","LITERAL","NUMBERS","STRINGS","DATE","COMMENTS","FUNCTION","literal","built_in","v7_system_constants","v8_system_sets_of_values","v8_shared_object","HTTP_VERBS","PKG_NAME_RE","INTEGER_RE","EXPONENT_RE","ID_REGEX","BAD_CHARS","VAR_DECLS","builtInTypeMode","objectHandleMode","genericMode","IP_ADDRESS","STRING","PARAMS","COMMENT_MODE_1","COMMENT_MODE_2","KEYWORDS","NUMBER","SUBST","TEMPLATE_STRING","PARAMS_CONTAINS","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","ARDUINO","_type_hints","_hint","kws","_hints","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","STRONG","EMPHASIS","SHORTKEYS","BACKTICK_ESCAPE","VARIABLE","VAR","HERE_DOC","QUOTE_STRING","ARITHMETIC","KNOWN_SHEBANG","SH_LIKE_SHELLS","TYPES","preprocessor","strings","COMMENT_MODES","CHAR_STRING","PROCEDURE","OBJECT","CLASS_DEFINITION","EXPRESSIONS","SYMBOLSTART","SYMBOL_RE","globals","CHARACTER","REGEX","COMMA","COLLECTION","LIST","BODY","DEFAULT_CONTAINS","LITERALS","BUILT_INS","KEYWORDS$1","kw","JS_IDENT_RE","TITLE","POSSIBLE_PARAMS_RE","COMMANDS","INT_SUFFIX","CRYSTAL_METHOD_RE","CRYSTAL_PATH_RE","CRYSTAL_KEYWORDS","EXPANSION","recursiveParen","Q_STRING","REGEXP","CRYSTAL_DEFAULT_CONTAINS","NORMAL_KEYWORDS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","FUNCTION_MODIFIERS","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","IMPORTANT","BLOCK_COMMENT","HEXCOLOR","ATTRIBUTE_SELECTOR_MODE","CSS_NUMBER_MODE","CSS_VARIABLE","keyframePosition","attribute","D_KEYWORDS","decimal_integer_re","decimal_integer_nosus_re","hexadecimal_digits_re","decimal_exponent_re","integer_re","escape_sequence_re","D_NESTING_COMMENT_MODE","INLINE_HTML","LINK","BOLD","ITALIC","BOLD_WITHOUT_ITALIC","ITALIC_WITHOUT_BOLD","CONTAINABLE","BRACED_SUBST","BUILT_IN_TYPES","NULLABLE_BUILT_IN_TYPES","DIRECTIVE","FILTER","REFERENCE","commentMode","ruleBodyMode","ELIXIR_IDENT_RE","KWS","SIGIL_DELIMITERS","SIGIL_DELIMITER_MODES","escapeSigilEnd","LOWERCASE_SIGIL","UPCASE_SIGIL","REGEX_SIGIL","ELIXIR_DEFAULT_CONTAINS","CONSTRUCTOR","RECORD","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","digits","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","CHAR_LITERAL","BLOCK_STATEMENTS","BASIC_MODES","DIRECTIVES","OPTIONAL_NUMBER_SUFFIX","OPTIONAL_NUMBER_EXP","FUNCTION_DEF","BANG_KEYWORD_MODE","KNOWN_TYPES","ALL_KEYWORDS","QUOTED_IDENTIFIER","BEGIN_GENERIC_TYPE_SYMBOL_RE","GENERIC_TYPE_SYMBOL","makeOperatorMode","OPERATOR_CHARS","includeEqual","OPERATOR_CHAR_RE","OPERATOR_CHAR_OR_DOT_RE","OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE","SYMBOLIC_OPERATOR_RE","OPERATOR","OPERATOR_WITHOUT_EQUAL","makeTypeAnnotationMode","prefixScope","TYPE_ANNOTATION","DISCRIMINATED_UNION_TYPE_ANNOTATION","TYPE_DECLARATION","COMPUTATION_EXPRESSION","QUOTED_STRING","TRIPLE_QUOTED_STRING","SYMBOLS","QSTR","ASSIGNMENT","COMMENT_WORD","DESCTEXT","AT_COMMENT_MODE","STRUCT_TYPE","PARSE_PARAMS","DEFINITION","inherits","BUILT_IN_REF","STRING_REF","FUNCTION_REF_PARAMS","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","ANY_ID","IDENTIFIER_REGEX","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","HELPER_PARAMETER","SUB_EXPRESSION","HASH","HELPER_PARAMETERS","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","decimalDigits","hexDigits","PRAGMA","VERSION","HEADER","HEADERS_AND_BODY","HINT","HINT_COL","VARIABLES","ANY_KEY","DOCTAGS","CONSTANTS","METHODS","interfaces","FUNCTION_NAME_IDENT_RE","frac","NUMERIC","JAVA_IDENT_RE","GENERIC_IDENT_RE","recurRegex","substitution","ANNOTATION","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","hasClosingTag","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","GRAPHQL_TEMPLATE","IDENT_RE$1","SUBST_INTERNALS","SUBST_AND_COMMENTS","CLASS_OR_EXTENDS","CLASS_REFERENCE","PROPERTY_ACCESS","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","afterMatchIndex","afterMatch","LITERALS_MODE","VARIABLE_NAME_RE","INTERPOLATION","INTERPOLATED_VARIABLE","COMMAND","LABEL","ANNOTATION_USE_SITE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","LASSO_IDENT_RE","LASSO_ANGLE_RE","LASSO_CLOSE_RE","LASSO_KEYWORDS","HTML_COMMENT","LASSO_NOPROCESS","LASSO_START","LASSO_CODE","KNOWN_CONTROL_WORDS","L3_REGEX","DOUBLE_CARET_VARIANTS","EVERYTHING_BUT_VERBATIM","BRACE_GROUP_NO_VERBATIM","ARGUMENT_BRACES","ARGUMENT_BRACKETS","SPACE_GOBBLER","ARGUMENT_M","ARGUMENT_O","ARGUMENT_AND_THEN","starts_mode","CSNAME","csname","BEGIN_ENV","envname","VERBATIM_DELIMITED_EQUAL","innerName","VERBATIM_DELIMITED_ENV","VERBATIM_DELIMITED_BRACES","VERBATIM","IDENT","PSEUDO_SELECTORS","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","AT_KEYWORDS","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","PSEUDO_SELECTORS$1","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","QUOTED","QUOTED_ATOM","TITLE1","TITLE2","SUBST_SIMPLE","LSL_NUMBERS","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","SYSTEM_SYMBOLS","BASE_NUMBER_RE","APPROXIMATE_NUMBER_RE","MATHEMATICA_NUMBER_RE","SYSTEM_SYMBOLS_SET","MESSAGES","brace","TRANSPOSE_RE","TRANSPOSE","ATOM","REGEX_MODIFIERS","PERL_KEYWORDS","METHOD","ATTR","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","PAIRED_RE","PERL_DEFAULT_CONTAINS","FUNC_DEFINITION","section","ANTIQUOTE","DEFINES","LANGUAGES","PARAMETERS","COMPILER","FUNCTION_DEFINITION","IDENTIFIER_RE","CLASS_KEYWORDS","SPECIAL_VARS","FUNCTIONS","OXYGENE_KEYWORDS","CURLY_COMMENT","PAREN_COMMENT","CURLY_SUBCOMMENT","COMMENT_MODE","DOLLAR_STRING","TYPES_RE","FUNCTIONS_RE","SQL_KW","SQL_BI","NOT_PERL_ETC","PASCAL_CASE_CLASS_NAME_RE","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","NOWDOC","WHITESPACE","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","APOS_STRING","PS_COMMENT","PS_CLASS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","FUNC_NAME","PARENTED","LINE_COMMENT","BACKTICK_STRING","WS0","EQUAL_DELIM","WS_DELIM","RESERVED_WORDS","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","QML_IDENT_RE","QML_OBJECT","NUMBER_TYPES_RE","OPERATORS_RE","PUNCTUATION_RE","IDENTIFIER","PROPERTY","STATEMENTS","GLOBAL_COMMANDS","COMMON_COMMANDS","OBJECTS","RAW_IDENTIFIER","NUMBER_SUFFIX","BUILTINS","SCHEME_IDENT_RE","SCHEME_SIMPLE_NUMBER_RE","QUOTED_IDENT","QUOTED_LIST","COMMON_CONTAINS","PSEUDO_CLASSES$1","PSEUDO_ELEMENTS$1","smali_instr_low_prio","VAR_IDENT_RE","CHAR","RESERVED_FUNCTIONS","COMBOS","reduceRelevancy","when","qualifyFn","DISTRIBUTIONS","INCLUDE","RANGE_CONSTRAINTS","LOOKAHEAD_TAG_END","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","identifier","typeIdentifier","keywordAttributes","availabilityKeywords","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","REGEX_KEYWORDS","KEYWORD_MODES","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","MULTILINE_STRING","SINGLE_LINE_STRING","REGEXP_CONTENTS","EXTENDED_REGEXP_LITERAL","IDENTIFIERS","GENERIC_ARGUMENTS","GENERIC_PARAMETERS","FUNCTION_PARAMETERS","FUNCTION_OR_MACRO","PRECEDENCEGROUP","interpolation","submodes","URI_CHARACTERS","CONTAINER_STRING","VALUE_CONTAINER","TCL_IDENT","TPID","TPLABEL","TPIO","FUNCTION_NAMES","TAG_NAMES","tagNamed","tagnames","CUSTOM_TAG","tsLanguage","NAMESPACE","INTERFACE","DECORATOR","swapMode","indx","ATTRIBUTE_HIGHLIGHT","functionDeclaration","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DOC_COMMENT","BUILT_IN_FUNCTIONS","LANGUAGE_VARS","FIELD","COMMENT_DOCS","ALL_KWS","DOUBLE_QUOTE_TEXT","_hljs","_component_v_navigation_drawer","maxlength","align","user","model","_component_v_progress_circular","_component_v_overlay","indeterminate","_muuri","_muuriDefault","username","username_","grid","roomName","_this_liveClassProxy_users_this_username","modulesType","scrapedModulesFilter","gridUpdate","scrapedModules_","messageHandler","iframes","_iframes_i_contentWindow","dragEnabled","layoutOnInit","layoutDuration","layoutEasing","layout","fillGaps","horizontal","alignRight","alignBottom","rounding","updateState","module_url","broadcast","_yjs","role","class_id","iframeOrigin","updateIframe","encodedFullState","encodeStateAsUpdate","btoa","liveClass","AbsolutePosition","AbstractConnector","AbstractStruct","AbstractType","YArray","ContentAny","ContentBinary","ContentDeleted","ContentDoc","ContentEmbed","ContentFormat","ContentJSON","ContentString","ContentType","Doc","GC","ID","Item","YMap","PermanentUserData","RelativePosition","Skip","Snapshot","YText","UndoManager","UpdateDecoderV1","UpdateDecoderV2","UpdateEncoderV1","UpdateEncoderV2","YXmlElement","YXmlFragment","YXmlHook","YXmlText","YArrayEvent","YEvent","YMapEvent","YTextEvent","YXmlEvent","applyUpdate","applyUpdateV2","cleanupYTextFormatting","compareIDs","compareRelativePositions","convertUpdateFormatV1ToV2","convertUpdateFormatV2ToV1","createAbsolutePositionFromRelativePosition","createDeleteSet","createDeleteSetFromStructStore","createDocFromSnapshot","createID","createRelativePositionFromJSON","createRelativePositionFromTypeIndex","createSnapshot","decodeRelativePosition","decodeSnapshot","decodeSnapshotV2","decodeStateVector","decodeUpdate","decodeUpdateV2","diffUpdate","diffUpdateV2","emptySnapshot","encodeRelativePosition","encodeSnapshot","encodeSnapshotV2","encodeStateAsUpdateV2","encodeStateVector","encodeStateVectorFromUpdate","encodeStateVectorFromUpdateV2","equalDeleteSets","equalSnapshots","findIndexSS","findRootTypeKey","getState","getTypeChildren","isDeleted","isParentOf","iterateDeletedStructs","logType","logUpdate","logUpdateV2","mergeDeleteSets","mergeUpdates","mergeUpdatesV2","obfuscateUpdate","obfuscateUpdateV2","parseUpdateMeta","parseUpdateMetaV2","readUpdate","readUpdateV2","relativePositionToJSON","snapshot","snapshotContainsUpdate","transact","tryGc","typeListToArraySnapshot","typeMapGetAllSnapshot","typeMapGetSnapshot","_getPrototypeOf","_observable","_array","_math","_encoding","_decoding","_random","_buffer","_error","_binary","_function","_logging","_time","_string","_environment","ObservableV2","ydoc","awareness","DeleteItem","clock","DeleteSet","clients","ds","deletes","clientid","structs","iterateStructs","findIndexDS","dis","midindex","midclock","sortAndMergeDeleteSet","dels","dss","dssI","delsLeft","appendTo","addToDeleteSet","setIfUndefined","ss","dsitems","struct","deleted","writeDeleteSet","writeVarUint","restEncoder","resetDsCurVal","writeDsClock","writeDsLen","readDeleteSet","numClients","readVarUint","restDecoder","numberOfDeletes","dsField","readDsClock","readDsLen","readAndApplyDeleteSet","unappliedDS","clockEnd","splitItem","toUint8Array","ds1","ds2","deleteItems1","deleteItems2","di1","di2","generateNewClientId","uint32","_ref_guid","guid","uuidv4","_ref_collectionid","collectionid","_ref_gc","gc","_ref_gcFilter","gcFilter","_ref_meta","_ref_autoLoad","autoLoad","_ref_shouldLoad","shouldLoad","clientID","share","StructStore","_transactionCleanups","subdocs","_item","isLoaded","isSynced","isDestroyed","whenLoaded","provideSyncedPromise","eventHandler","whenSynced","subdocsLoaded","TypeConstructor","_integrate","Constr","_start","toJSON","subdoc","subdocsAdded","subdocsRemoved","DSDecoderV1","readUint8","readVarString","readAny","copyUint8Array","readVarUint8Array","DSDecoderV2","dsCurrVal","keyClockDecoder","IntDiffOptRleDecoder","clientDecoder","UintOptRleDecoder","leftClockDecoder","rightClockDecoder","infoDecoder","RleDecoder","stringDecoder","StringDecoder","parentInfoDecoder","typeRefDecoder","lenDecoder","read","keyClock","DSEncoderV1","createEncoder","writeUint8","writeVarString","isYKey","writeAny","writeVarUint8Array","embed","DSEncoderV2","unexpectedCase","keyMap","keyClockEncoder","IntDiffOptRleEncoder","clientEncoder","UintOptRleEncoder","leftClockEncoder","rightClockEncoder","infoEncoder","RleEncoder","stringEncoder","StringEncoder","parentInfoEncoder","typeRefEncoder","lenEncoder","writeUint8Array","writeStructs","startNewStructs","writeClient","firstStruct","writeClientsStructs","_sm","getStateVector","_clock","readClientsStructRefs","clientRefs","numOfStateUpdates","numberOfStructs","readClient","readInfo","BITS5","readLen","len1","cantCopyParentInfo","BIT7","BIT8","readLeftID","readRightID","readParentInfo","readString","BIT6","readItemContent","integrateStructs","clientsStructRefs","clientsStructRefsIds","getNextStructTarget","nextStructsTarget","curStructsTarget","restStructs","missingSV","updateMissingSv","mclock","stackHead","addStackToRestSS","unapplicableItems","localClock","missing","getMissing","structRefs","integrate","transactionOrigin","structDecoder","local","retry","pendingStructs","_step_value1","client1","clock1","dsRest","pendingDs","pendingDSUpdate","createDecoder","dsRest2","YDecoder","writeStateAsUpdate","targetStateVector","encodedTargetStateVector","updates","readStateVector","ssLength","decodedState","writeStateVector","sv","encodeStateVectorV2","EventHandler","createEventHandler","addEventHandlerListener","removeEventHandlerListener","callEventHandlerListeners","arg0","arg1","callAll","writeID","readID","storeType","getMap","yusers","initUser","userDescription","addClientId","getContent","encodedDs","keysChanged","_ref_filter","_event","userOverwrite","_userDescription","yds","deleteSet","tname","assoc","rpos","_json_tname","createAbsolutePosition","createRelativePosition","typeid","countable","lastId","writeRelativePosition","writeVarInt","readRelativePosition","itemID","readVarInt","uint8Array","followUndoneDeletions","rightID","typeID","followRedone","snap1","snap2","sv1","sv2","dsitems1","dsitems2","dsitem1","dsitem2","isVisible","splitSnapshotAffectedStructs","getItemCleanStart","originDoc","newDoc","lastStructIndex","snapshotContainsUpdateV2","updateDecoder","lazyDecoder","LazyStructReader","mergedDS","lastStruct","addStruct","findIndexCleanStart","getItemCleanEnd","replaceStruct","newStruct","clockStart","beforeState","afterState","changedParentTypes","_mergeStructs","_needFormattingCleanup","writeUpdateMessageFromTransaction","addChangedTypeToTransaction","parentSub","tryToMergeWithLefts","mergeWith","tryGcDeleteSet","deleteItems","di","deleteItem","endDeleteItemClock","si","struct1","tryMergeDeleteSet","mostRightIndexToCheck","cleanupTransactions","transactionCleanups","mergeStructs","fs","itemtype","_callObserver","_dEH","_path","event1","event2","cleanupYTextAfterTransaction","beforeClock","firstChangePos","_$i","_mergeStructs_i_id","replacedStructPos","print","ORANGE","UNBOLD","RED","_observers","encoder1","initialCall","finishCleanup","StackItem","deletions","insertions","clearUndoManagerStackItem","tr","stackItem","keepItem","popStackItem","undoManager","_tr","currStackItem","itemsToRedo","itemsToDelete","performedChange","redone","_followRedone","redoItem","ignoreRemoteMapChanges","deleteFilter","subProps","_searchMarker","typeScope","_ref_captureTimeout","captureTimeout","_ref_captureTransaction","captureTransaction","_ref_deleteFilter","_ref_trackedOrigins","trackedOrigins","_ref_ignoreRemoteMapChanges","_ref_doc","addToScope","undoStack","redoStack","undoing","redoing","lastChange","afterTransactionHandler","stopCapturing","endClock","startClock","getUnixTime","didAdd","lastOp","changeEvent","ytypes","ytype","yt","clearUndoStack","clearRedoStack","canUndo","canRedo","undoStackCleared","redoStackCleared","filterSkips","lazyStructReaderGenerator","LazyStructWriter","currClient","written","clientStructs","YEncoder","stopCounting","currClock","writeBinaryEncoder","sliceStruct","_left_id","_left_id1","_leftItem_id","leftItem","client2","clock2","rightOrigin","updateDecoders","lazyStructDecoders","currWrite","updateEncoder","lazyStructEncoder","dec","dec1","dec2","clockDiff","currDecoder","firstClient","writeStructToLazyStructWriter","diff1","finishLazyStructWriting","lazyStructWriter","svClock","flushLazyStructWriter","lazyWriter","partStructs","convertUpdateFormat","blockTransformer","createObfuscator","_ref_formatting","formatting","_ref_subdocs","_ref_yxml","yxml","mapKeyCache","nodeNameCache","formattingKeyCache","formattingValueCache","hookName","c4","c5","c6","errorComputeChanges","_changes","_keys","_delta","getPathTo","action","adds","packOp","retain","warnPrematureAccess","globalSearchMarkerTimestamp","ArraySearchMarker","refreshMarkerTimestamp","overwriteMarker","markPosition","searchMarker","pm","findMarker","yarray","pindex","updateMarkerChanges","_t_doc","callTypeObservers","changedType","_eH","methodUnimplemented","_encoder","_parentSubs","typeListSlice","_type_doc","cs","typeListToArray","typeListForEach","typeListMap","typeListCreateIterator","currentContent","currentContentIndex","typeListGet","typeListInsertGenericsAfter","referenceItem","ownClientId","jsonContent","packJsonContent","lengthExceeded","typeListInsertGenerics","typeListPushGenerics","maxMarker","currMarker","typeListDelete","startLength","typeMapDelete","typeMapSet","typeMapGet","_parent_doc","typeMapGetAll","typeMapHas","createMapIterator","iteratorFilter","AbstractType1","_prelimContent","_this_doc","parentSubs","_this__prelimContent","writeTypeRef","YArrayRefID","ymap","iteratorMap","YMapRefID","equalAttrs","equalFlat","ItemTextListPosition","currentAttributes","updateCurrentAttributes","findNextPosition","findPosition","useSearchMarker","insertNegatedAttributes","currPos","negatedAttributes","forward","nextFormat","minimizeAttributeChanges","_attributes_currPos_right_content_key","insertAttributes","_currPos_currentAttributes_get","currentVal","insertText","_val","getLength","formatText","_currPos_right_content","attr","newlines","cleanupFormattingGap","startAttributes","currAttributes","endFormats","cf","reachedCurr","_startAttributes_get","_currAttributes_get","startAttrValue","cleanupContextlessFormattingGap","copy","needFullCleanup","afterClock","_hasFormatting","yText","deleteText","startAttrs","ytext","childListChanged","oldAttributes","deleteLen","addOp","_item_content","_currentAttributes_get","_oldAttributes_get","_currentAttributes_get1","curVal1","_pending","applyDelta","toDelta","_ref_sanitize","sanitize","ins","prevSnapshot","computeYChange","packStr","addAttributes","computeDelta","insertEmbed","attributeValue","YTextRefID","YXmlTreeWalker","_root_doc","_filter","_currentNode","_firstCall","_first","xml","_document","fragment","createDocumentFragment","_createAssociation","xmlType","toDOM","YXmlFragmentRefID","_prelimAttrs","getAttributes","stringBuilder","keysLen","attrsString","YXmlElementRefID","writeKey","attributesChanged","createDom","YXmlHookRefID","nestedNodes","YXmlTextRefID","encodingRef","writeInfo","writeLen","writeBuf","markDeleted","createDocFromOpts","writeString","writeJSON","_offset","_right","isDevMode","getVariable","firstCharCode","typeRefs","_decoder","readKey","_copy","nextID","rightItem","isDeletedByUndoStack","redoitems","ownClientID","parentItem","leftTrace","rightTrace","nextClock","nextId","redoneItem","isCountable","BIT2","BIT4","isMarked","BIT1","doKeep","BIT3","conflictingItems","itemsBeforeOrigin","parentGCd","getRef","writeLeftID","writeRightID","ykey","writeParentInfo","contentRefs","readBuf","readJSON","readTypeRef","glo","importIdentifier","_superPropBaseJs","_super_prop_base","_mapJs","_setJs","_arrayJs","_f","observers","createT","_set_values_next_value","unfold","fold","uniqueBy","seed","folder","happened","mapped","imul","log10","log2","exp10","exp","Encoder","verifyLen","setUint8","writeUint16","setUint16","writeUint32","writeUint32BigEndian","setUint32","_writeVarStringNative","_writeVarStringPolyfill","writeTerminatedString","writeTerminatedUint8Array","writeOnDataView","writeFloat32","writeFloat64","writeBigInt64","writeBigUint64","IntDiffEncoder","RleIntDiffEncoder","IncUintOptRleEncoder","_mathJs","_numberJs","_binaryJs","_stringJs","cpos","cbuf","bufs","uint8arr","curPos","bufferLen","BITS8","BITS7","isNegative","BITS6","_strBuffer","_maxStrBSize","utf8TextEncoder","encodeInto","encodeUtf8","encodedString","leftCopyLen","rightCopyLen","subarray","dview","DataView","setFloat32","setFloat64","setBigInt64","setBigUint64","floatTestBed","isInteger","BITS31","getFloat32","writer","flushUintOptRleEncoder","flushIntDiffOptRleEncoder","encodedDiff","sarr","lensE","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","LOWEST_INT32","HIGHEST_INT32","HIGHEST_UINT32","countBits","BITS32","isFinite","BIT5","BIT9","BIT10","BIT11","BIT12","BIT13","BIT14","BIT15","BIT16","BIT17","BIT18","BIT19","BIT20","BIT21","BIT22","BIT23","BIT24","BIT25","BIT26","BIT27","BIT28","BIT29","BIT30","BIT31","BIT32","BITS0","BITS1","BITS2","BITS3","BITS4","BITS9","BITS10","BITS11","BITS12","BITS13","BITS14","BITS15","BITS16","BITS17","BITS18","BITS19","BITS20","BITS21","BITS22","BITS23","BITS24","BITS25","BITS26","BITS27","BITS28","BITS29","BITS30","MAX_UTF16_CHARACTER","trimLeft","fromCamelCase","utf8ByteLength","_encodeUtf8Polyfill","_encodeUtf8Native","_decodeUtf8Polyfill","utf8TextDecoder","_decodeUtf8Native","decodeUtf8","trimLeftRegex","fromCamelCaseRegex","remainingLen","bufPos","nextLen","TextDecoder","fatal","ignoreBOM","Decoder","readUint8Array","readTailAsUint8Array","skip8","readUint16","readUint32","readUint32BigEndian","peekUint8","peekUint16","peekUint32","peekVarUint","peekVarInt","_readVarStringPolyfill","_readVarStringNative","readTerminatedUint8Array","readTerminatedString","peekVarString","readFromDataView","readFloat32","readFloat64","readBigInt64","readBigUint64","IntDiffDecoder","RleIntDiffDecoder","IncUintOptRleDecoder","_errorJs","_encodingJs","errorUnexpectedEndOfArray","errorIntegerOutOfRange","uint","mult","dv","getFloat64","getBigInt64","getBigUint64","readAnyLookupTable","spos","rand","uint53","oneOf","_webcrypto","uuidv4Template","createEmpty","resolveWith","untilAsync","_timeJs","intervalResolution","startTime","hasTimeout","intervalHandle","noTimeout","getDate","humanizeDuration","_metricJs","seconds","minutes","hours","days","yotta","zetta","exa","peta","tera","giga","mega","kilo","hecto","deca","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","prefixUp","prefixDown","baseMultiplier","nPow","createUint8ArrayFromLen","createUint8ArrayViewFromArrayBuffer","createUint8ArrayFromArrayBuffer","toBase64","fromBase64","toBase64UrlEncoded","fromBase64UrlEncoded","toHexString","fromHexString","encodeAny","decodeAny","shiftNBitsLeft","_environmentJs","_decodingJs","Buffer","isBrowser","atob","replaceAll","base64","hex","hlen","newBuf","bs","N","ieee754","customInspectSymbol","createBuffer","encodingOrOffset","allocUnsafe","fromString","isEncoding","fromArrayView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","SharedArrayBuffer","fromObject","isBuffer","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","hexSliceLookupTable","utf8Slice","asciiSlice","latin1Slice","fromByteArray","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","checkOffset","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","SlowBuffer","alloc","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","hexWrite","strLen","blitBuffer","asciiToBytes","byteArray","utf16leToBytes","units","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","maxBytes","writeUintBE","writeUIntBE","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","getMessage","NodeError","addNumericalSeparator","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","i16","BufferBigIntNotDefined","b64","lens","getLens","validLen","placeHoldersLen","Arr","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","eLen","eMax","eBias","nBits","rt","LN2","isNode","isMac","hasParam","getParam","getConf","ensureConf","hasConf","production","supportsColor","_conditionsJs","_storageJs","_functionJs","release","computeParams","pargs","argv","currParamName","parg","kv","_kv_split","defaultVal","undefinedToNull","varStorage","forceColor","isOneOf","stdout","isTTY","cachedSetTimeout","cachedClearTimeout","currentQueue","defaultSetTimout","defaultClearTimeout","runTimeout","fun","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","noop","browser","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","offChange","_localStorage","VarStoragePolyfill","usePolyfill","equalityStrict","equalityFlat","equalityDeep","isTemplate","_objectJs","hasProperty","_k","_loggingCommonJs","BLUE","GREY","GREEN","PURPLE","UNCOLOR","printError","printImg","printImgBase64","groupCollapsed","groupEnd","printDom","printCanvas","vconsoles","VConsole","createVConsole","createModuleLogger","_pairJs","_domJs","_jsonJs","_eventloopJs","_browserStyleMap","computeLoggingArgs","_args_","strBuilder","logArgs","style1","mapToStyleString","computeNoColorLoggingArgs","vc","createNode","canvas","toDataURL","_computeLineSpans","spans","lineStyle","ccontainer","collapsed","enqueue","triangleDown","triangleRight","nextContainer","toggleAttribute","Pair","createReversed","domParser","emitCustomEvent","setAttributes","setAttributesMap","addEventListeners","removeEventListeners","pairToStyleString","pairsToStyleString","getElementById","parseFragment","parseElement","replaceWith","ELEMENT_NODE","TEXT_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","checkNodeType","DOMParser","parseFromString","childNodes","firstElementChild","oldEl","newEl","interval","Animation","animationFrame","idleCallback","createDebouncer","_runQueue","createTimeoutClass","clearFunction","TT","timeoutId","Interval","cancelAnimationFrame","Idle","timer","_symbolJs","loggingColors","nextColor","lastLoggingTime","_print","debugRegexVar","doLogging","timeNow","timeDiff","mapIterator","createIterator","fmap","_iterator_next","_$options","allow","onLoad","frameborder","itemRect","returnData","gridsArray","feat","itemsToLayout","GRID_INSTANCES","ITEM_ELEMENT_MAP","ACTION_SWAP","ACTION_MOVE","EVENT_LAYOUT_START","EVENT_LAYOUT_END","EVENT_LAYOUT_ABORT","EVENT_REMOVE","EVENT_HIDE_START","EVENT_FILTER","EVENT_SORT","EVENT_MOVE","EVENT_SEND","EVENT_BEFORE_SEND","EVENT_RECEIVE","EVENT_BEFORE_RECEIVE","EVENT_DRAG_RELEASE_END","HAS_TOUCH_EVENTS","HAS_POINTER_EVENTS","PointerEvent","HAS_MS_POINTER_EVENTS","msPointerEnabled","Emitter","_events","_queue","_counter","_clearOnEmit","argsLength","endIndex","burst","countListeners","pointerout","EdgeHack","dragger","_dragger","_timeout","_outEvent","_isActive","_addBehaviour","_removeBehaviour","_onTimeout","_resetData","_onStart","_onOut","_getTrackedTouch","_onCancel","vendorPrefixes","cache$2","getPrefixedPropName","prefixedProp","camelProp","hasPassiveEvents","isPassiveEventsSupported","passiveOpts","ua","isEdge","isIE","isFirefox","isAndroid","listenerOptions","taProp","taPropPrefixed","Dragger","element1","cssProps","_element","_isDestroyed","_cssProps","_touchAction","_pointerId","_startTime","_startX","_startY","_currentX","_currentY","_onEnd","_edgeHack","setCssProps","setTouchAction","_preventDefault","_inputEvents","_pointerEvents","_msPointerEvents","_touchEvents","_mouseEvents","_emitterEvents","_activeInstances","_activateInstance","_bindListeners","_deactivateInstance","_unbindListeners","_getEventPointerId","pointerId","_getTouchById","_reset","_createEvent","srcEvent","distance","getDistance","deltaX","getDeltaX","deltaY","getDeltaY","deltaTime","getDeltaTime","isFirst","isFinal","screenX","screenY","pageX","pageY","currentProps1","dt","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","Ticker","numLanes","_nextStep","_lanes","_stepQueue","_stepCallbacks","TickerLane","indices","laneQueue","laneCallbacks","laneIndices","lanes","stepQueue","stepCallbacks","laneIndex","LAYOUT_READ","LAYOUT_WRITE","VISIBILITY_READ","VISIBILITY_WRITE","DRAG_START_READ","DRAG_START_WRITE","DRAG_MOVE_READ","DRAG_MOVE_WRITE","DRAG_SCROLL_READ","DRAG_SCROLL_WRITE","DRAG_SORT_READ","PLACEHOLDER_LAYOUT_READ","PLACEHOLDER_LAYOUT_WRITE","PLACEHOLDER_RESIZE_WRITE","AUTO_SCROLL_READ","AUTO_SCROLL_WRITE","DEBOUNCE_READ","ticker","cancelLayoutTick","itemId","cancelVisibilityTick","cancelDragStartTick","cancelDragMoveTick","cancelDragScrollTick","addDragSortTick","cancelPlaceholderLayoutTick","addAutoScrollTick","cache$1","getStyle","getPropertyValue","getStyleAsFloat","DOC_ELEM","THRESHOLD_DATA","getScrollElement","getScrollLeft","pageXOffset","getScrollTop","pageYOffset","getScrollLeftMax","getScrollTopMax","getContentRect","bcr","borderLeft","clientLeft","borderTop","clientTop","getItemAutoScrollSettings","_drag","_getGrid","_settings","dragAutoScroll","computeThreshold","safeZone","itemSize","targetSize","ScrollRequest","ScrollAction","requestX","requestY","Pool","createItem","releaseItem","pool","getIntersectionScore","area","isEnding","maxValue","hasReachedEnd","FORWARD","computeCurrentScrollValue","AXIS_X","computeNextScrollValue","computeSpeed","tick","onStart","addRequest","removeRequest","computeScrollValues","scrollTo","pick","RECT_1","RECT_2","AutoScroller","_isTicking","_tickTime","_tickDeltaTime","_items","_actions","_requests","_requestOverlapCheck","_dragPositions","_dragDirections","_overlapCheckInterval","_requestPool","_actionPool","_readTick","_writeTick","AXIS_Y","BACKWARD","LEFT","RIGHT","UP","DOWN","smoothSpeed","maxSpeed","acceleration","deceleration","targetSpeed","currentSpeed","nextSpeed","pointerHandle","pointerSize","pX","pY","_updateRequests","_updateActions","_applyActions","_startTicking","_stopTicking","_getItemHandleRect","itemDrag","_dragMoveEvent","_dragStartEvent","_clientX","_clientY","_width","_height","_requestItemScroll","reqMap","_cancelItemScroll","_checkItemOverlap","checkX","checkY","settings","targets","dragDirections","dragDirectionX","dragDirectionY","testRect","testElement","testAxisX","testAxisY","testScore","testPriority","testThreshold","testDirection","testDistance","testMaxScrollX","testMaxScrollY","xElement","xPriority","xThreshold","xScore","xDirection","xDistance","xMaxScroll","yElement","yPriority","yThreshold","yScore","yDirection","yDistance","yMaxScroll","priority","_updateScrollRequest","scrollRequest","targetCount","testIsAxisX","testScroll","testMaxScroll","smoothStop","reqX","reqY","checkTime","needsCheck","requestsX","requestsY","_requestAction","isAxisX","requests","_prepareScroll","applyItemScrollSync","drag","_scrollDiffX","_scrollDiffY","_setTranslate","_left","_updateDragDirection","dragPositions","x1","y1","y2","addItem","updateItem","isItemScrollingX","isItemScrollingY","isItemScrolling","ElProto","matchesFn","matchesSelector","mozMatchesSelector","oMatchesSelector","elementMatches","addClass","tempArray","arrayInsert","normalizeArrayIndex","sizeOffset","maxIndex","arrayMove","toIndex","arraySwap","withIndex","indexA","indexB","transformProp","styleNameRegEx","prefixRegex","msPrefixRegex","getStyleName","styleName","transformStyle","getContainingBlock","isTransformed","offsetA","offsetB","offsetDiff","getOffset","offsetData","getOffsetDiff","elemA","elemB","compareContainingBlocks","isScrollableOverflow","getScrollableAncestors","getRootNode","DocumentFragment","translateValue","rxMat3d","rxMatTx","rxMat3dTx","rxNextItem","getTranslate","isMat3d","tX","tY","removeClass","IS_IOS","maxTouchPoints","SCROLL_LISTENER_OPTIONS","ItemDrag","getGrid","_gridId","_isMigrating","_startPredicate","dragStartPredicate","defaultStartPredicate","_startPredicateState","_startPredicateResult","_isSortNeeded","_sortTimer","_blockedSortIndex","_sortX1","_sortX2","_sortY1","_sortY2","_preStartCheck","_preEndCheck","_onScroll","_prepareStart","_applyStart","_prepareMove","_applyMove","_applyScroll","_handleSort","_handleSortDelayed","_handle","dragHandle","dragCssProps","getCurrentStyles","autoScroller","isTrusted","_finishStartPredicate","_startPredicateData","delayTimer","_resolveStartPredicate","_forceResolveStartPredicate","_resetStartPredicate","defaultSortPredicate","score","rootGrid","sortThreshold","sortAction","migrateAction","getTargetGrid","gridScore","grids","dragSort","bestScore","_updateBoundingRect","_bottom","isMigration","gridOffsetLeft","gridOffsetTop","matchScore","matchIndex","hasValidTargets","_gridX","_marginLeft","_gridY","_marginTop","_updateBorders","_borderLeft","_borderTop","_finishMigration","_cancelSort","_isStarted","_unbindScrollListeners","draggingClass","itemDraggingClass","force","_containingBlock","_dragPrevMoveEvent","_scrollEvent","_scrollers","_moveDiffX","_moveDiffY","_containerDiffX","_containerDiffY","_bindScrollListeners","gridScrollers","gridContainer","dragContainer","scrollers","isClick","openAnchorHref","_resetHeuristics","_checkHeuristics","dragSortHeuristics","minDist","minDragDistance","diffX","diffY","canCheckBounceBack","minBounceBackAngle","angle","atan2","prevAngle","cos","sortDuringScroll","shouldSort","sortInterval","_checkOverlap","_finishSort","needsFinalCheck","isSortEnabled","currentGrid","targetGrid","targetItem","dragSortPredicate","_hasListeners","fromGrid","toGrid","_sortData","layoutSender","layoutReceiver","translate","_dragRelease","targetGridElement","targetSettings","targetContainer","currentSettings","currentVisClass","itemVisibleClass","itemHiddenClass","nextVisClass","itemClass","_refreshDimensions","_visibility","setStyles","visibleStyles","hiddenStyles","isResolved","containingBlock","elementRect","hasDragContainer","migrate","_migrate","isPositioning","_layout","isReleasing","dragPlaceholder","_dragPlaceholder","dragAxis","nextEvent","prevEvent","moveDiffX","moveDiffY","scrollDiffX","scrollDiffY","unprefixRegEx","HAS_WEB_ANIMATIONS","HAS_NATIVE_WEB_ANIMATIONS","Animator","_animation","_duration","_easing","_callback","_values","_onFinish","createFrame","getUnprefixedPropName","getTranslateString","ItemDragPlaceholder","_className","_didMigrate","_resetAfterLayout","_transX","_transY","_nextTransX","_nextTransY","_setupAnimation","_startAnimation","_updateDimensions","_onLayoutStart","_onLayoutEnd","_onReleaseEnd","_onMigrate","_onHide","ItemDragRelease","_isPositioningStarted","ItemLayout","elementStyle","_isInterrupted","_currentStyles","_targetStyles","_nextLeft","_nextTop","_offsetLeft","_offsetTop","_skipNextAnimation","_animOptions","onFinish","_finish","ItemMigrate","ItemVisibility","childElement","_isHidden","_isHiding","_isShowing","_childElement","_currentStyleProps","_finishShow","_finishHide","propsFrom","propsTo","propName","propIndex","currentValues","cancelAnimation","onfinish","currentProps","isAnimating","isInstant","nextLeft","nextTop","currentLeft","currentTop","nextX","nextY","getElement","currentX","currentY","currentStyles","targetStyles","nextGrid","itemPlaceholderClass","onCreate","onRemove","updateDimensions","addPlaceholderResizeTick","itemReleasingClass","dragRelease","useDragContainer","_placeToGrid","_nextLayoutData","didReparent","isJustReleased","needsReflow","releasingClass","instant","gridSettings","animDuration","animEasing","animEnabled","_updateOffsets","processCallbackQueue","itemPositioningClass","_tX","_tY","xDiff","yDiff","containerDiff","targetElement","targetItems","gridElement","hide","currentStyleProps","_removeCurrentStyles","toVisible","showDuration","hideDuration","showEasing","hideEasing","_marginRight","_marginBottom","createPackerProcessor","isWorker","roundNumber","PackerProcessor","currentRects","nextRects","rectTarget","rectStore","slotSizes","rectId","slotIndex","slotData","sortRectsLeftTop","sortRectsTopLeft","computeLayout","bump","slotWidth","slotHeight","isPreProcessed","computeNextSlot","shards","ignoreCurrentRects","addRect","splitRect","purgeRects","hole","isRectAWithinRectB","rectA","rectB","rectIds","aId","bId","processor","Float32Array","getWidth","getHeight","getMargin","getPosition","isShowing","isHiding","isDragging","_refreshSortData","getters","sortData","_addToLayout","_removeFromLayout","_canSkipLayout","_destroy","removeElement","blobUrl","activeWorkers","Packer","numWorkers","_processor","_layoutQueue","_layouts","_layoutCallbacks","_layoutWorkers","_layoutWorkerData","_workers","_onWorkerMessage","setOptions","createWorkerProcessors","amount","workers","_sendToWorker","layoutId","_finalizeLayout","_grid","isHorizontal","isBorderBox","_boxSizing","_borderRight","_borderBottom","createLayout","PACKET_HEADER_SLOTS","cancelLayout","destroyWorkerProcessors","onmessageerror","debounceId","isNodeList","NUMBER_TYPE","STRING_TYPE","INSTANT_LAYOUT","Grid","composed","defaultSettings","mergeObjects","userSettings","normalizeStyles","_isLayoutFinished","_onLayoutDataReceived","containerClass","bindLayoutOnResize","durationMs","lastTime","isCanceled","_resizeHandler","refreshItems","addDebounceTick","layoutOnResize","getInitialGridElements","isSourceObject","docElemStyle","createIndexMap","compareIndexMap","indexMap","itemA","itemB","defaultPacker","opacity","touchAction","userSelect","userDrag","tapHighlightColor","touchCallout","contentZooming","getItems","hiddenItemStyles","visibility","refreshSortData","synchronize","unfinishedLayout","nextLayoutId","layoutItems","gridWidth","gridHeight","layoutSettings","newItems","needsLayout","allItems","removeElements","_setItemsVisibility","itemsToShow","itemsToHide","isPredicateString","isPredicateFn","syncWithLayout","tryFinishCounter","tryFinish","sortComparer","isDescending","origItems","defaultComparer","criteriaName","criteriaOrder","valA","valB","customComparer","isSwap","fromItem","toItem","layoutStyles","numItems","hasLayoutChanged","startEvent","completedItems","hiddenItems","triggerVisibilityChange","interrupted","heartbeatID","Peer","_trysteroProvider","_torrent","_trystero","LOG","LOBBY","stationID","connected","callbackUpdate","getArray","lab","STATION","provider","TrysteroProvider","appId","joinRoom","peerOpts","initSetup","_this_provider_room","onPeerLeave","removePeers","initPubSub","peerId","selfIds","peers","selfId","_this_provider_room_trysteroRoom_makeAction","trysteroRoom","makeAction","tx","withObserver","observeDeep","defaultRooms","roomIDs","newRoomID","decodedUint8Array","transactionId","initRooms","initChat","awaitTransact","transactFn","isTransactionDone","_protocols","_cryptoutils","_room","_messagesSend","_connectionMaps","_ref_appId","_ref_password","_ref_awareness","awarenessProtocol","Awareness","_ref_maxConns","maxConns","_ref_filterBcConns","filterBcConns","_ref_peerOpts","_ref_joinRoom","deriveKey","shouldConnect","Room","connect","emitStatus","_auth","_awareness","_sync","messagePermissionDenied","writePermissionDenied","readAuthMessage","permissionDeniedHandler","outdatedTimeout","removeAwarenessStates","encodeAwarenessUpdate","modifyAwarenessUpdate","applyAwarenessUpdate","_checkInterval","getLocalState","lastUpdated","setLocalState","currLocalMeta","prevState","filteredUpdated","field","curMeta","modifiedState","clientMeta","SyncMessageType","writeSyncStep1","writeSyncStep2","readSyncStep1","readSyncStep2","writeUpdate","readSyncMessage","encodedStateVector","messageType","encryptJson","decryptJson","secret","secretBuffer","importKey","keyMaterial","encryptedDataEncoder","dataEncoder","dataDecoder","decryptedValue","_broadcastchannel","_mutex","_types","_messagesRead","synced","bcConns","mux","createMutex","bcconnected","_this_trysteroRoom_makeAction","sendYjsMessage","getYjsMessage","readMessage","broadcastRoomMessage","trysteroConns","getPeers","onPeerJoin","MessageType","Sync","syncProtocol","sendTrysteroConn","awarenessStates","getStates","_callbackPeerJoin","trysteroPeers","bcPeers","checkIsSynced","_callbackPeerLeave","_bcSubscriber","reply","broadcastBcMessage","_docUpdateHandler","_origin","_awarenessUpdateHandler","changedClients","encoderAwareness","_beforeUnloadHandler","broadcastBcPeerId","encoderSync","encoderState","encoderAwarenessQuery","QueryAwareness","encoderAwarenessState","encoderPeerIdBc","BcPeerId","publish","_bufferJs","channels","LocalStoragePolyfill","_onChange","BC","getChannel","channel","unsubscribed","_messageType","sendReply","syncMessageType","Step2","Step1","peerName","peer","broadcastTrysteroConn","trysteroPeer","_nostrJs","getRelaySockets","_utilsJs","defaultRelayUrls","_secp256K1","_strategyJs","_strategyJsDefault","eventMsgType","privateKey","schnorr","randomPrivateKey","publicKey","toHex","getPublicKey","subIdToTopic","msgHandlers","topic","payload","_tmp1","_tmp2","pubkey","created_at","encodeBytes","toJson","sig","subId","kinds","since","getRelays","makeSocket","_msgHandlers_subId","_fromJson","fromJson","msgType","relayMsg","libName","rootTopic","selfTopic","onMessage","rootSubId","genId","selfSubId","peerTopic","signal","announce","socketGetter","encodeToCurve","hashToCurve","secp256k1","sha256_1","utils_1","_shortw_utils_js_1","hash_to_curve_js_1","modular_js_1","utils_js_1","weierstrass_js_1","secp256k1P","secp256k1N","_1n","_2n","divNearest","sqrtMod","_3n","_6n","_11n","_22n","_23n","_44n","_88n","b6","pow2","b9","b11","b44","b88","b176","b220","b223","Fp","eql","sqr","Field","createCurve","Gx","Gy","lowS","endo","beta","splitScalar","POW_2_128","k1","k1neg","k2neg","sha256","_0n","TAGGED_HASH_PREFIXES","taggedHash","tagP","tagH","concatBytes","pointToBytes","toRawBytes","numTo32b","numberToBytesBE","modP","modN","Point","ProjectivePoint","schnorrGetExtPubKey","priv","d_","normPrivateKeyToScalar","fromPrivateKey","hasEvenY","lift_x","aInRange","xx","assertValidity","bytesToNumberBE","challenge","schnorrVerify","signature","ensureBytes","pub","inRange","BASE","multiplyAndAddUnsafe","toAffine","auxRand","_schnorrGetExtPubKey","px","k_","_schnorrGetExtPubKey1","verify","isoMap","isogenyMap","mapSWU","mapToCurveSimpleSWU","B","htf","createHasher","scalars","_mapSWU","DST","encodeDST","ORDER","expand","sha224","_md_js_1","SHA256_K","SHA256_IV","SHA256_W","_md_js_1_HashMD","D","getUint32","W15","W2","rotr","T1","Chi","T2","Maj","HashMD","SHA224","outputLen","wrapConstructor","_assert_js_1","_utils_js_1_Hash","blockLen","padOffset","finished","createView","toBytes","take","dataView","roundClean","_32n","_u32_max","wh","wl","oview","outLen","digestInto","_to","Hash","isSafeInteger","isBytes","lengths","checkFinished","byteSwapIfBE","byteSwap","rotl","u32","u8","byteSwap32","bytesToHex","hexes","hexToBytes","hl","ai","asciiToBase16","asyncLoop","iters","_asyncLoop","arrays","checkOpts","toStr","hashCons","hashC","wrapConstructorWithOpts","wrapXOFConstructorWithOpts","bytesLength","crypto_1","asciis","_0","_9","_A","_F","ts","_cloneInto","getHash","curveDef","defHash","weierstrass","hmac_1","msgs","iHash","oHash","DER","weierstrassPoints","CURVE","curve_js_1","validateBasic","validateObject","bits2int","bits2int_modN","CURVE_ORDER","compressedLen","BYTES","uncompressedLen","invN","_weierstrassPoints","isCompressed","cat","abool","fromBytes","weierstrassEquation","sqrtError","neg","isWithinCurveOrder","numToNByteStr","nByteLength","slcNum","Signature","recovery","msgHash","rec","radj","fromHex","ir","u1","u2","Q","hasHighS","toDERHex","hexFromSig","toCompactHex","_exports_DER_toSig","toSig","isProbPub","nBitLength","ORDER_MASK","bitMask","int2octets","defaultSigOpts","prehash","defaultVerOpts","_setWindowSize","getSharedSecret","privateA","publicB","multiply","privKey","_prepSig","prepSig","ent","extraEntropy","validateSigVerOpts","h1int","seedArgs","k2sig","kBytes","ik","normS","isBiggerThanHalfOrder","drbg","createHmacDrbg","_Point_BASE_multiplyAndAddUnsafe","_sig","fromDER","derError","Err","fromCompact","sg","r1","isValidPrivateKey","getMinHashLength","mapHashToField","precompute","windowSize","SWUFpSqrtRatio","validateField","isValid","sqrtRatio","isOdd","tv1","tv2","tv3","ONE","tv4","cmov","tv6","tv5","_sqrtRatio","div","b2n","h2b","DERErr","_tlv","_exports_DER","dataLen","numberToHexUnpadded","lenLen","lengthBytes","tlv","abytes","_tlv_decode","seqBytes","seqLeftBytes","_tlv_decode1","rBytes","rLeftBytes","_tlv_decode2","sBytes","sLeftBytes","_4n","validatePointOpts","curve","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","clearCofactor","allowInfinityPoint","Fn","_isCompressed","x3","assertPrjPoint","other","toAffineMemo","memoized","iz","py","z","pz","is0","inv","ax","ay","zz","assertValidMemo","_p_toAffine","wnaf","setWindowSize","X1","Y1","Z1","X2","Y2","Z2","U1","U2","X3","Y3","Z3","t4","t5","negate","wNAFCached","normalizeZ","I","unsafeLadder","_endo_splitScalar","k1p","k2p","fake","_this_wNAF","wNAF","f1p","_this_wNAF1","f2p","constTimeNegate","_this_wNAF2","multiplyUnsafe","cofactor","points","toInv","invertBatch","fromAffine","pippenger","_bits","_2n_pow_c1_1","_2n_pow_c1","c7","isQR","tv51","tvv5","c11","c21","condition","validateW","windows","elm","precomputeWindow","_opts","precomputes","maxNumber","shiftBy","wbits","offset2","cond1","cond2","pointWindowSizes","pointPrecomputes","bitLen","MASK","buckets","lastBits","BITS","wbits1","resI","j1","sumI","j2","nLength","isNegativeLE","modulo","tonelliShanks","FpSqrt","FIELD_FIELDS","FpPow","FpInvertBatch","FpDiv","lhs","rhs","FpLegendre","FpIsSquare","legendre","_nLength","sqrtP","sqrN","addN","subN","mulN","lst","numberToBytesLE","bytesToNumberLE","FpSqrtOdd","FpSqrtEven","hashToPrivateScalar","groupOrder","hashLen","getFieldBytesLength","fieldOrder","fieldLen","reduced","_5n","_8n","gcd","legendreC","p1div4","Q1div2","ge","nv","nums","lastMultiplied","inverted","reduceRight","legendreConst","_nBitLength","bitLength","notImplemented","hexToNumber","numberToVarBytesBE","equalBytes","bitGet","bitSet","qByteLen","hmacFn","u8n","reseed","u8fr","sl","pred","validators","optValidators","checkField","fieldName","isOptional","checkVal","validatorFns","fieldName1","type1","isPosBig","bigint","stringOrUint8Array","expand_message_xmd","expand_message_xof","hash_to_field","COEFF","_COEFF_map","xNum","xDen","yNum","yDen","mapToCurve","u0","os2ip","i2osp","anum","lenInBytes","b_in_bytes","r_in_bytes","ell","DST_prime","Z_pad","l_i_b_str","b_0","strxor","pseudo_random_bytes","dkLen","prb","_DST","L","log2p","len_in_bytes","elm_offset","tv","_cryptoJs","_peerJs","_peerJsDefault","_roomJs","_roomJsDefault","initPromises","offerPool","offerCleanupTimer","occupiedRooms","didInit","roomId","onJoinError","_occupiedRooms_appId","pendingOffers","connectedPeers","rootTopicPlaintext","topicPath","rootTopicP","sha1","selfTopicP","genKey","withKey","sdp","toPlain","toCipher","makeOffer","rtcConfig","connectPeer","clientId","_pendingOffers_peerId","onPeerConnect","disconnectPeer","prunePendingOffer","offer","getOffers","_offerPool","offerPromise","handleJoinError","sdpType","handleMessage","signalPeer","_ref1","answer","_pendingOffers","_peerId","_ref__","peer1","offer1","_$topic","_pendingOffers_peerId1","peer2","plainOffer","_$topic1","answer1","plainAnswer","_pendingOffers_peerId2","peer3","_ref_","announceIntervals","setHandlers","myOffer","isDead","mkErr","firebaseApp","initRes","shouldLive","offerTtl","announceTimeouts","unsubFns","clientP","queueAnnounce","didSub","noOp","_occupiedRooms","strToSha1","buff","unpack","packed","_1","keyP","_2","_raw_split","decodeBytes","charSet","defaultN","relayUrls","relayRedundancy","socketRetryPeriods","socket","WebSocket","_socketRetryPeriods","onopen","clientMap","defaultIceServers","_simplePeer","_simplePeerDefault","dataEvent","signalEvent","initiator","iceServers","urls","trickle","onData","earlyDataBuffer","connection","_pc","_channel","sendData","handlers","addStream","stream","removeStream","addTrack","removeTrack","replaceTrack","oldTrack","newTrack","drainEarlyData","_possibleConstructorReturn","_liteJs","_liteJsDefault","_errCode","_errCodeDefault","Lite","streams","_senderMap","ontrack","_onTrack","_destroying","_debug","addTransceiver","_needsNegotiation","__destroy","transceiverRequest","getTracks","submap","sender","_sendersAwaitingStable","getTransceivers","transceiver","requested","eventStream","_remoteTracks","_remoteStreams","remoteStream","queueMicrotask","_debugDefault","_webrtcPolyfill","_streamx","_uint8Util","Debug","filterTrickle","Duplex","allowHalfOpen","__objectMode","objectMode","arr2hex","channelName","channelConfig","channelNegotiated","negotiated","offerOptions","answerOptions","sdpTransform","allowHalfTrickle","iceCompleteTimeout","remoteAddress","remoteFamily","remotePort","localAddress","localFamily","localPort","RTCPeerConnection","_pcReady","_channelReady","_iceComplete","_iceCompleteTimer","_pendingCandidates","_isNegotiating","_firstNegotiation","_batchedNegotiation","_queuedNegotiation","_closingInterval","_chunk","_interval","_isReactNativeWebrtc","_peerConnectionId","oniceconnectionstatechange","_onIceStateChange","onicegatheringstatechange","onconnectionstatechange","_onConnectionStateChange","onsignalingstatechange","_onSignalingStateChange","onicecandidate","_onIceCandidate","peerIdentity","_setupData","createDataChannel","ondatachannel","_onFinishBound","bufferedAmount","family","address","renegotiate","candidate","remoteDescription","_addIceCandidate","setRemoteDescription","RTCSessionDescription","_createAnswer","iceCandidateObj","RTCIceCandidate","addIceCandidate","chunk","negotiate","_createOffer","_readableState","binaryType","bufferedAmountLowThreshold","_onChannelMessage","onbufferedamountlow","_onChannelBufferedAmountLow","_onChannelOpen","_onChannelClose","lineno","colno","isClosing","destroySoon","createOffer","sendOffer","localDescription","setLocalDescription","createAnswer","sendAnswer","_this__requestMissingTransceivers","_requestMissingTransceivers","connectionState","iceConnectionState","iceGatheringState","_maybeReady","flattenValues","report","getStats","reports","_connecting","findCandidatePair","remoteCandidates","localCandidates","candidatePairs","foundSelectedCandidatePair","setSelectedCandidatePair","selectedCandidatePair","localCandidateId","ip","ipAddress","portNumber","googLocalAddress","remote","remoteCandidateId","googRemoteAddress","selectedCandidatePairId","googActiveConnection","_onInterval","signalingState","sdpMLineIndex","sdpMid","_startIceCompleteTimeout","text2arr","WEBRTC_SUPPORT","sdpSemantics","warned","formatArgs","useColors","humanize","lastC","namespaces","__nwjs","WebkitAppearance","firebug","localstorage","colors","formatters","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","coerce","logFn","selectColor","delimiter","newDebug","toNamespace","skips","plural","msAbs","isPlural","RTCIceTransport","RTCDataChannel","RTCSctpTransport","RTCDtlsTransport","RTCCertificate","MediaStream","MediaStreamTrack","MediaStreamTrackEvent","RTCPeerConnectionIceEvent","RTCDataChannelEvent","RTCTrackEvent","RTCError","RTCErrorEvent","RTCRtpTransceiver","RTCRtpReceiver","RTCRtpSender","_browserJs","mozRTCPeerConnection","webkitRTCPeerConnection","mozRTCSessionDescription","webkitRTCSessionDescription","mozRTCIceCandidate","webkitRTCIceCandidate","EventEmitter","STREAM_DESTROYED","PREMATURE_CLOSE","queueTick","FIFO","WritableState","_ref_highWaterMark","highWaterMark","_ref_map","mapWritable","byteLengthWritable","buffered","pipeline","drains","defaultByteLength","afterWrite","afterUpdateNextTick","updateWriteNT","_duplexState","WRITE_QUEUED","MAX","OPEN_STATUS","_writableState","DESTROY_STATUS","_writev","WRITE_ACTIVE","WRITE_PRIMARY","updateNonPrimary","continueUpdate","_final","afterFinal","DESTROYING","WRITE_NEXT_TICK","READ_ACTIVE","afterDestroy","_open","afterOpen","WRITE_UPDATING","updateNextTick","ReadableState","mapReadable","byteLengthReadable","readAhead","pipeTo","afterRead","updateReadNT","Pipeline","isStreamx","afterDrain","_$data","READ_RESUMED","drain","READ_EMIT_READABLE","READ_PRIMARY","READ_DONE","READ_UPDATING","TransformState","afterTransform","afterPipe","pipeToFinished","updateCallback","rs","tickDrains","writes","newListener","READ_EMIT_DATA","Stream","predestroy","_predestroy","WRITE_NON_PRIMARY","Readable","OPENING","eagerOpen","setEncoding","echo","pipe","promiseResolve","promiseReject","ondata","ite","readable","_fromAsyncIterator","Writable","writev","autoBatch","WRITE_UNDRAINED","isWritev","Transform","_transformState","_transform","_flush","transformAfterFlush","PassThrough","errorHandle","rd","wr","autoDestroy","isStream","isTypedArray","pipelinePromise","isEnded","isFinished","getStreamError","ReflectOwnKeys","ReflectApply","NumberIsNaN","errorListener","resolver","eventTargetAgnosticAddListener","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","originalListener","spliceOne","rawListeners","eventNames","FixedFIFO","FastFIFO","hwm","peek","btm","PassThroughDecoder","UTF8Decoder","normalizeEncoding","BrowserDecoder","ErrClass","arr2text","arr2base","base2arr","bin2hex","hex2bin","_utilJs","_base64Arraybuffer","_String1","hex2arr","webkitSubtle","formatMap","encodeLookup","decodeLookup","sizeof","chunks","arraybuffer","encoded1","encoded2","encoded3","encoded4","bufferLength","TypedArray","buffLowEvent","internalNs","onPeer","onSelfLeave","peerMap","actionsCache","pendingTransmissions","pendingPongs","pendingStreamMetas","pendingTrackMetas","onPeerStream","onPeerTrack","exitPeer","typeBytes","typeBytesPadded","onComplete","onProgress","setOnComplete","setOnProgress","dataType","isJson","isBlob","isBinary","metaEncoded","chunkTotal","arrayBuffer","isLast","isMeta","payloadIndex","progressIndex","chunkSize","nonceIndex","tagIndex","chunkN","_actionsCache","handleData","_pendingTransmissions_id","_pendingTransmissions_id_type","_buffer_subarray","_buffer_subarray1","progress","_buffer_subarray2","_pendingTransmissions","full","sendLeave","_makeAction","sendPing","getPing","_makeAction1","sendPong","getPong","_makeAction2","sendSignal","getSignal","_makeAction3","sendStreamMeta","getStreamMeta","_makeAction4","sendTrackMeta","getTrackMeta","_makeAction5","getLeave","_peer_drainEarlyData","_pendingPongs_id","_peerMap_id","ping","topicToInfoHash","infoHashToTopic","announceFns","trackerAnnounceMs","handledOffers","getInfoHash","info_hash","peer_id","didFail","rawUrl","rawData","_msgHandlers_url_topic","_msgHandlers_url","errMsg","warnMsg","offer_id","offers","peerAndOffer","to_peer_id","numwant","_announceFns","_announceIntervals","_component_Checks","_component_v_app_bar_nav_icon","_component_v_app_bar_title","_component_v_form","_component_Chat","_component_v_layout","_component_Settings","_component_v_dialog","temporary","nav","_$data_configuration_data","_$data_configuration","_$data_liveClassProxy","tile","onSubmit","onSendMessage","scrollable","persistent","onClose","onSaveClass","onDeleteClass","onUpdateClass","checkboxValue","_dateMjs","_defaultsMjs","_displayMjs","_gotoMjs","_iconsMjs","_localeMjs","_themeMjs","_indexMjs1","blueprint","mergeDeep","_options_aliases","_options_components","_options_directives","createDefaults","createDisplay","ssr","theme","createTheme","createIcons","locale","createLocale","createDate","goTo","createGoTo","aliasName","DefaultsSymbol","DisplaySymbol","ThemeSymbol","IconSymbol","LocaleSymbol","DateOptionsSymbol","DateAdapterSymbol","GoToSymbol","IN_BROWSER","$nuxt","vm","getUid","$vuetify","_vm_parent","_vm_vnode_appContext","_vm_parent_provides","_object_without_properties","_objectWithoutPropertiesLooseJs","_object_without_properties_loose","DateModule","useDate","getWeek","_vuetifyMjs","adapter","VuetifyDateAdapter","af","bg","ca","ckb","de","en","et","fa","fi","hu","he","ja","ko","lv","lt","nl","pl","pt","ro","ru","sk","srCyrl","srLatn","th","az","uk","vi","zhHans","zhHant","createInstance","_options_locale_locale_current_value","formats","_options_locale_value","useLocale","toJsDate","getFullYear","d1w1","diffDays","diffTime","provideLocale","RtlSymbol","createRtl","provideRtl","useRtl","i18n","createVuetifyAdapter","rtl","_options_rtl","es","fr","km","isRtl","_rtl_value_i18n_current_value","rtlClasses","_props_rtl","_proxiedModelMjs","_enMjs","_enMjsDefault","LANG_PREFIX","createTranslateFunction","shortKey","currentLocale","fallbackLocale","getObjectValueByPath","consoleWarn","consoleError","createNumberFunction","numberFormat","Intl","NumberFormat","useProvided","provided","_props_prop","_props_prop1","internal","useProxiedModel","_options_locale","_options_fallback","createProvideFunction","_toggleScopeMjs","transformIn","transformOut","kebabProp","toKebabCase","isControlled","checkKebab","_vm_vnode_props","_vm_vnode_props1","_vm_vnode_props2","_vm_vnode_props3","useToggleScope","externalValue","internalValue","_anchorMjs","_animationMjs","_bindPropsMjs","_colorUtilsMjs","_consoleMjs","_createSimpleFunctionalMjs","_defineComponentMjs","_domMjs","_easingMjs","_eventsMjs","_getCurrentInstanceMjs","_getScrollParentMjs","_globalsMjs","_helpersMjs","_injectSelfMjs","_isFixedPositionMjs","_propsFactoryMjs","_useRenderMjs","parseAnchor","toPhysical","flipSide","flipAlign","flipCorner","getAxis","_anchor_split","side","center","getNestedValue","getPropertyFromItem","getZIndex","Node","convertToUnit","refElement","keyCodes","keyValues","pickWithRest","omit","isComposingIgnoreKey","filterInputAttrs","arrayDiff","wrapInArray","defaultFilter","getDecimals","padEnd","chunkArray","humanReadableFileSize","arrayFn","flattenFragments","findChildrenWithProvide","CircularBuffer","getEventCoordinates","destructComputed","EventProp","hasEvent","callEvent","focusableChildren","getNextElement","focusChild","_focusable_","_focusable_1","_focusable_at","_focusable_location","focusable","focus","_el","eagerComputed","isClickInsideElement","templateRef","checkPrintable","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldGet","_assertClassBrand","value1","unit","home","backspace","pageup","pagedown","paths","onRE","bubblingEvents","compositionIgnoreKeys","isComposing","_pickWithRest","inputEvents","_pickWithRest1","rootAttrs","inputAttrs","throttling","trimmedStr","chunked","toFixed","kebab","_pointer","_len2","_key2","filterByTabIndex","_condition","inc","offsetParent","CSS","supports","targetDiv","mouseX","mouseY","divRect","divLeft","divTop","divRight","divBottom","isPrintableChar","noModifier","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","SUPPORTS_EYE_DROPPER","nullifyTransforms","_boxMjs","Box","sy","transformOrigin","keyframes","getOverflow","getTargetBox","bindProps","unbindProps","_v","_handler","isCssColor","isParsableColor","parseColor","RGBToInt","classToHex","HSVtoRGB","HSLtoRGB","RGBtoHSV","HSVtoHSL","HSLtoHSV","RGBtoCSS","HSVtoCSS","RGBtoHex","HexToRGB","HexToHSV","HSVtoHex","parseHex","parseGradient","lighten","darken","getLuma","getContrast","getForeground","_apcaMjs","_transformCIELABMjs","_transformSRGBMjs","cssColorRe","mappers","rgb","rgba","hsl","hsla","hsv","hsva","realValues","currentTheme","_color_toString_trim_replace_split","colorName","colorModifier","hexColor","_chunk_map","gradient","fromXYZ","toXYZ","light","blackContrast","APCAcontrast","whiteContrast","background","outputContrast","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","blkThrs","SAPC","SAPC1","deprecate","breaking","cielabForwardTransform","cbrt","cielabReverseTransform","xyz","transformedY","Ln","srgbForwardMatrix","srgbReverseMatrix","srgbReverseTransform","createSimpleFunctional","_componentMjs","genericComponent","makeComponentProps","_slots_default","propsFactory","isObjectDefinition","defineFunctionalComponent","_options__setup","_setup","_options_props","propKeys","filterProps","_as","_props__as","injectDefaults","_internalUseDefaults","internalUseDefaults","provideSubDefaults","setupBindings","exposeDefaults","provideDefaults","useDefaults","injectedDefaults","providedDefaults","newDefaults","scoped","componentDefaults","_defaults_value","_vnode_props","_vnode_props1","_componentDefaults_value","_componentDefaults_value1","_componentDefaults_value2","_defaults_value_global","_defaults_value_global1","_defaults_value1","_subcomponentDefaults","subComponents","_$_ref","injectSelf","_injected_value","getCurrentInstanceName","attachedRoot","standardEasing","deceleratedEasing","acceleratedEasing","getPrefixedEventHandlers","getData","getScrollParent","includeHidden","hasScrollbar","getScrollParents","stopAt","isFixedPosition","useRender","badge","dismiss","confirmEdit","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","itemsSelected","noDataText","carousel","calendar","moreEvents","today","prependAction","appendAction","otp","fileInput","counterSize","timePicker","am","pagination","page","currentPage","stepper","rating","loading","infiniteScroll","loadMore","firstDay","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","startOfMonth","getMonth","endOfMonth","_YYYMMDD","sundayJanuarySecond2000","isAfter","comparing","isEqual","startOfDay","_value_split_map","setMinutes","getMinutes","setHours","getHours","setDate","setMonth","firstDayOfWeek","getWeekArray","weeks","currentWeek","firstDayOfMonth","lastDayOfMonth","firstDayWeekIndex","getDay","lastDayWeekIndex","adjacentDay","adjacentDay1","startOfWeek","endOfWeek","_firstDay_locale_slice_toUpperCase","lastDay","formatString","_date","newDate","customFormat","weekday","DateTimeFormat","hour12","timeZone","timeZoneName","setFullYear","getDiff","daysFromSunday","breakpoints","makeDisplayProps","useDisplay","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","xl","xxl","parseDisplayOptions","getClientWidth","getClientHeight","getPlatform","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","_parseDisplayOptions","updateSize","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","displayClasses","useGoTo","genDefaults","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getTarget","totalOffset","_target","_scrollTo","_goTo_options","ease","targetLocation","layoutOffset","_container_property","startLocation","_getTarget","containerWidth","containerHeight","currentTime","timeElapsed","goToInstance","go","_go","IconValue","makeIconProps","VComponentIcon","VSvgIcon","VLigatureIcon","VClassIcon","useIcon","Icon","xmlns","viewBox","_options_defaultSet","svg","iconData","_icons_aliases","iconAlias","iconSetName","setName","iconName","iconSet","collapse","success","warning","checkboxOn","checkboxOff","checkboxIndeterminate","sortAsc","sortDesc","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","plus","minus","treeviewCollapse","treeviewExpand","eyeDropper","makeThemeProps","provideTheme","useTheme","defaultTheme","variations","themes","surface","primary","secondary","variables","parsedOptions","parseThemeOptions","_options_themes","_defaults_themes","_defaults_themes1","computedThemes","name1","_iter","variation","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","color1","onColor","colorVal","_current_value","createCssClass","genCssVariables","themeName","bgLines","fgLines","getHead","cspNonce","themeClasses","usehead","addHeadObjs","updateDOM","updateStyles","styleEl","_props_theme","newTheme","lightOverlay","darkOverlay","rgb1","_layoutMjs","useLayout","VuetifyLayoutKey","VuetifyLayoutItemKey","makeLayoutProps","makeLayoutItemProps","useLayoutItem","_resizeObserverMjs","overlaps","fullHeight","absolute","getLayoutItem","mainRect","mainStyles","_options_id","isKeptAlive","_layout_register","layoutItemStyles","layoutItemScrimStyles","unregister","layoutRect","generateLayers","layoutSizes","activeItems","previousLayer","layers","parentLayout","rootZIndex","registered","priorities","disabledTransitions","_useResizeObserver","useResizeObserver","resizeRef","contentRect","computedOverlaps","_props_overlaps","_overlap_split","topPosition","bottomPosition","topAmount","bottomAmount","uniquePriorities","_priorities_get","transitionsEnabled","rootVm","layoutSize","elementSize","disableTransitions","instanceIndex","instances","zIndex","_elementSize_value","isOppositeHorizontal","isOppositeVertical","layoutClasses","layoutRef","box","ResizeObserver","unobserve","_indexMjs2","_indexMjs3","_indexMjs4","_indexMjs5","_indexMjs6","_indexMjs7","_indexMjs8","_indexMjs9","_indexMjs10","_indexMjs11","_indexMjs12","_indexMjs13","_indexMjs14","_indexMjs15","_indexMjs16","_indexMjs17","_indexMjs18","_indexMjs19","_indexMjs20","_indexMjs21","_indexMjs22","_indexMjs23","_indexMjs24","_indexMjs25","_indexMjs26","_indexMjs27","_indexMjs28","_indexMjs29","_indexMjs30","_indexMjs31","_indexMjs32","_indexMjs33","_indexMjs34","_indexMjs35","_indexMjs36","_indexMjs37","_indexMjs38","_indexMjs39","_indexMjs40","_indexMjs41","_indexMjs42","_indexMjs43","_indexMjs44","_indexMjs45","_indexMjs46","_indexMjs47","_indexMjs48","_indexMjs49","_indexMjs50","_indexMjs51","_indexMjs52","_indexMjs53","_indexMjs54","_indexMjs55","_indexMjs56","_indexMjs57","_indexMjs58","_indexMjs59","_indexMjs60","_indexMjs61","_indexMjs62","_indexMjs63","_indexMjs64","_indexMjs65","_indexMjs66","_indexMjs67","_indexMjs68","_indexMjs69","_indexMjs70","_indexMjs71","_indexMjs72","_indexMjs73","_indexMjs74","_indexMjs75","_indexMjs76","_indexMjs77","_indexMjs78","_indexMjs79","_indexMjs80","_indexMjs81","_indexMjs82","_indexMjs83","_indexMjs84","_indexMjs85","_indexMjs86","_indexMjs87","_indexMjs88","_indexMjs89","_vappMjs","VApp","makeVAppProps","_createLayout","_vappBarMjs","VAppBar","_vappBarNavIconMjs","VAppBarNavIcon","_vappBarTitleMjs","VAppBarTitle","makeVAppBarProps","_vtoolbarMjs","_scrollMjs","_ssrBootMjs","scrollBehavior","validator","makeVToolbarProps","makeScrollProps","vToolbarRef","_props_scrollBehavior","_props_scrollBehavior_split","behavior","fullyHide","elevate","fadeImage","canScroll","_useScroll","useScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","canHide","isCollapsed","isFlat","_vToolbarRef_value","_vToolbarRef_value1","_vToolbarRef_value_contentHeight","_vToolbarRef_value_extensionHeight","contentHeight","extensionHeight","ssrBootStyles","useSsrBoot","toolbarProps","VToolbar","_vtoolbarTitleMjs","_borderMjs","_colorMjs","_elevationMjs","_roundedMjs","_tagMjs","allowedDensities","extended","floating","makeBorderProps","makeElevationProps","makeRoundedProps","makeTagProps","_slots_extension","_useBackgroundColor","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","borderClasses","useBorder","elevationClasses","useElevation","roundedClasses","useRounded","isExtended","VBtn","hasTitle","hasImage","VDefaultsProvider","VImg","VTabs","_slots_prepend","_slots_append","VToolbarTitle","VExpandTransition","makeVToolbarTitleProps","hasText","_dialogTransitionMjs","VDialogTransition","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandXTransition","_createTransitionMjs","_expandTransitionMjs","_expandTransitionMjsDefault","createCssTransition","createJavascriptTransition","makeTransitionProps","hideOnLeave","leaveAbsolute","functions","_transitionInitialStyles","_el__transitionInitialStyles","expandedParentClass","sizeProperty","offsetProperty","_initialStyle","initialStyle","resetStyles","makeVDialogTransitionProps","_getChildren","_getDimensions","getDimensions","getChildren","removeProperty","_el_querySelector","els","targetBox","elBox","_getComputedStyle_transformOrigin_split_map","originX","originY","_getComputedStyle_getPropertyValue_split","anchorSide","anchorOffset","offsetX","offsetY","tsy","maxs","asa","_vdefaultsProviderMjs","makeVDefaultsProviderProps","_toRefs","_vimgMjs","makeVImgProps","_vresponsiveMjs","_transitionMjs","eager","lazySrc","rootMargin","sizes","crossorigin","referrerpolicy","srcset","makeVResponsiveProps","intersect","loadstart","currentSrc","naturalWidth","naturalHeight","normalisedSrc","aspect","aspectRatio","lazyImg","Image","pollForSize","_image_value","getSrc","img","oldVal","poll","imgHeight","imgWidth","containClasses","__image","_slots_sources","objectPosition","MaybeTransition","__preloadImage","__placeholder","__error","__gradient","backgroundImage","isBooted","responsiveProps","VResponsive","additional","useAspectStyles","_dimensionsMjs","aspectStyles","ratio","paddingBottom","contentClass","makeDimensionProps","dimensionStyles","useDimension","_slots_additional","maxHeight","maxWidth","minHeight","minWidth","useColor","useTextColor","backgroundColor","textColor","caretColor","colorClasses","colorStyles","_useColor","textColorClasses","textColorStyles","rounded","_ref_component","customProps","_$_ref2","Intersect","_el__observe","_observe","quiet","border","scrollTarget","previousScroll","previousScrollHeight","savedScroll","currentThreshold","isScrollActive","onScroll","currentScrollHeight","Window","_target_value","newTarget","makeVAppBarNavIconProps","_vbtnMjs","makeVBtnProps","_vbtnToggleMjs","_densityMjs","_groupMjs","_loaderMjs","_locationMjs","_positionMjs","_routerMjs","_selectLinkMjs","_sizeMjs","_variantMjs","activeColor","baseColor","VBtnToggleSymbol","prependIcon","appendIcon","slim","stacked","ripple","makeDensityProps","makeGroupItemProps","makeLoaderProps","makeLocationProps","makePositionProps","makeRouterProps","makeSizeProps","makeVariantProps","densityClasses","useDensity","loaderClasses","useLoader","locationStyles","useLocation","positionClasses","usePosition","_useSize","useSize","sizeClasses","sizeStyles","useGroupItem","useLink","_link_isActive","isLink","isSelected","_props_activeColor","variantProps","_link_isActive1","_color_value","_useVariant","useVariant","variantClasses","isElevated","valueAttr","_link_navigate","navigate","toggle","useSelectLink","Tag","hasPrepend","hasAppend","hasIcon","tabindex","linkProps","_slots_loader","_slots_loader1","genOverlays","VIcon","_slots_default1","VProgressCircular","Ripple","makeVBtnToggleProps","VBtnToggle","_vbtnGroupMjs","makeVBtnGroupProps","makeGroupProps","_useGroup","useGroup","btnGroupProps","VBtnGroup","divided","allowedVariants","isClickable","_unref","mandatory","injectKey","getIds","itemIndex","groupVm","forceMandatoryValue","currentId","newItem","useIndexAsValue","unwrapped","isSelected1","getItemIndex","itemByIndex","_viconMjs","makeVIconProps","slotIcon","_useTextColor","_flattenFragments_filter_","hasClick","onClickOnce","fontSize","predefinedSizes","_vprogressCircularMjs","makeVProgressCircularProps","_intersectionObserverMjs","bgColor","rotate","CIRCUMFERENCE","PI","_useTextColor1","underlayColorClasses","underlayColorStyles","_useIntersectionObserver","useIntersectionObserver","intersectionRef","normalizedValue","diameter","MAGIC_RADIUS_CONSTANT","strokeWidth","strokeDashOffset","cx","cy","LoaderSlot","VProgressLinear","_vprogressLinearMjs","makeVProgressLinearProps","bgOpacity","bufferValue","bufferColor","bufferOpacity","clickable","striped","roundedBar","_window_matchMedia","_window","_useRtl","_useBackgroundColor1","bufferColorClasses","bufferColorStyles","_useBackgroundColor2","barColorClasses","barColorStyles","normalizedBuffer","isReversed","isForcedColorsModeActive","handleClick","_intersectionRef_value_getBoundingClientRect","bar","oppositeMap","opposite","_parseAnchor","positionValues","useRoute","useRouter","useBackButton","_vm_proxy","$route","_getCurrentInstance_proxy","_getCurrentInstance","$router","_link_value","_link_value1","RouterLink","routerLink","_link_value_isActive","_link_value_isExactActive","_link_value_isExactActive1","_link_value_isActive_value","_link_value_isExactActive_value","isExactActive","href1","inTransition","removeBefore","removeAfter","popped","onPopstate","_e_state","replaced","beforeEach","afterEach","stopSymbol","isTouchEvent","isKeyboardEvent","calculate","_el__ripple","localX","localY","radius","scale","_ripple","circle","centerX","centerY","ripples","_calculate","previousPosition","getElementsByClassName","_animation_parentNode","isRippleEnabled","rippleShow","touched","isTouch","centered","showTimerCommit","showTimer","_element__ripple","rippleStop","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","wasEnabled","removeListeners","_valertMjs","VAlert","_valertTitleMjs","VAlertTitle","makeVAlertProps","allowedTypes","borderColor","closable","closeIcon","closeLabel","prominent","_props_icon","_props_color","closeProps","hasClose","_slots_text","_slots_text1","_slots_title","_slots_title1","_slots_close","_vautocompleteMjs","VAutocomplete","makeVAutocompleteProps","_vselectMjs","_vtextFieldMjs","_useScrollingMjs","_filterMjs","_formMjs","_forwardRefsMjs","_listItemsMjs","autoSelectFirst","clearOnSelect","makeFilterProps","filterKeys","makeSelectProps","makeVTextFieldProps","focused","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","_vMenuRef_value","ΨopenChildren","selectionIndex","_vTextFieldRef_value","closeText","openText","_useItems","useItems","_transformed_","transformed","counterValue","form","useForm","_useFilter","useFilter","filteredItems","getMatches","displayItems","hideSelected","filteredItem","hasChips","chips","chip","hasSelectionSlot","selectedValues","highlightFirst","_displayItems_value_","selectFirst","menuDisabled","hideNoData","listRef","listEvents","useScrolling","onClear","openOnClear","onMousedownControl","onMousedownMenuIcon","onListKeydown","_listRef_value","originalSelectionIndex","_search_value","_search_value1","setSelectionRange","_vVirtualScrollRef_value","calculateVisibleItems","onFocusin","onFocusout","onUpdateModelValue","isSelecting","valueComparator","add1","_model_value_at","_model_value_at_props_title","scrollToIndex","hasList","textFieldProps","VTextField","validationValue","VMenu","openOnClick","closeOnContentClick","menuProps","_props_itemColor","VList","selectStrategy","onMousedown","itemColor","listProps","_slots_prependitem","_slots_nodata","_slots_appenditem","_slots_nodata1","VListItem","VVirtualScroll","renderless","_slots_item","_slots_item1","itemRef","itemProps","VCheckboxBtn","prependAvatar","VAvatar","_getMatches","_search_value_length","highlightResult","onChipClose","slotProps","hasSlot","slotContent","VChip","closableChips","_slots_appendinner1","menuIcon","forwardRefs","_vavatarMjs","makeVAvatarProps","_vcheckboxMjs","VCheckbox","_vcheckboxBtnMjs","makeVCheckboxProps","_vinputMjs","_focusMjs","makeVInputProps","makeVCheckboxBtnProps","_useFocus","useFocus","_filterInputAttrs","controlAttrs","inputProps","VInput","checkboxProps","messagesId","_vselectionControlMjs","indeterminateIcon","makeVSelectionControlProps","falseIcon","trueIcon","controlProps","VSelectionControl","useSelectionControl","_vselectionControlGroupMjs","trueValue","falseValue","makeSelectionControlGroupProps","VSelectionControlGroupSymbol","_useSelectionControl","isFocusVisible","isInteractive","onClickLabel","forceUpdate","onForceUpdate","_slots_input","_slots_input1","inputNode","VLabel","_vlabelMjs","makeVLabelProps","makeVSelectionControlGroupProps","VSelectionControlGroup","defaultsTarget","updateHandlers","_inputIconMjs","_vmessagesMjs","_validationMjs","centerAffix","hideDetails","hideSpinButtons","hint","persistentHint","makeValidationProps","InputIcon","useInputIcon","_useValidation","useValidation","errorMessages","isValidating","resetValidation","validationClasses","_props_errorMessages","_slots_details","hasMessages","hasDetails","details","VMessages","_props_label","localeKey","prependInner","appendInner","makeVMessagesProps","_tsValues","maxErrors","validateOn","makeFocusProps","validationModel","internalErrorMessages","_props_disabled","_props_readonly","_props_validateOn","_value_split","invalidInput","_props_name","_resetValidation","_validate","_props_maxErrors","unwatch","focusClasses","FormKey","makeFormProps","createForm","fastFail","valid","itemErrorMessages","invalid","_$validate","_$reset","_$resetValidation","_vchipMjs","makeVChipProps","_vchipGroupMjs","activeClass","appendAvatar","filterIcon","pill","VChipGroupSymbol","onKeyDown","hasAppendMedia","hasFilter","hasPrependMedia","hasColor","makeVChipGroupProps","VChipGroup","_vslideGroupMjs","makeVSlideGroupProps","slideGroupProps","VSlideGroup","VSlideGroupSymbol","centerActive","nextIcon","prevIcon","showArrows","_useDisplay","isOverflowing","scrollOffset","containerSize","contentSize","containerRef","_useResizeObserver1","contentRef","goToOptions","firstSelectedIndex","lastSelectedIndex","scrollToChildren","scrollToPosition","calculateCenteredTarget","containerElement","selectedElement","calculateUpdatedTarget","newPosition","offsetSize","getOffsetSize","scrollPosition","getScrollPosition","scrollSize","getScrollSize","_containerRef_el","_e_target","ignoreFocusEvent","_contentRef_el","relatedTarget","onFocusAffixes","toFocus","_contentRef_el_querySelector","_contentRef_el_querySelector1","preventScroll","offsetStep","hasAffixes","hasPrev","hasNext","scrollSizeMax","getClientSize","_slots_prev","_slots_next","_slots_prev1","_slots_next1","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","_vlistMjs","_vlistGroupMjs","VListGroup","_vlistImgMjs","VListImg","_vlistItemMjs","_vlistItemActionMjs","VListItemAction","_vlistItemMediaMjs","VListItemMedia","_vlistItemSubtitleMjs","VListItemSubtitle","_vlistItemTitleMjs","VListItemTitle","_vlistSubheaderMjs","VListSubheader","useListItems","makeVListProps","_vlistChildrenMjs","_nestedMjs","transformItems","transformItem","itemType","isPrimitive","itemTitle","itemValue","itemChildren","expandIcon","collapseIcon","makeNestedProps","openStrategy","makeItemsProps","_useNested","useNested","parents","getPath","lineClasses","createList","_contentRef_value","VListChildren","returnObject","makeVListChildrenProps","_props_items","_slots_divider","_slots_subheader","_slots_divider1","_slots_subheader1","VDivider","subheader","slotsWithItem","subtitle","_slots_subtitle","listGroupProps","activatorProps","listItemProps","makeVListGroupProps","VListGroupActivator","useNestedGroupActivator","_useNestedItem","useNestedItem","useList","toggleIcon","activatorDefaults","DepthKey","useDepth","ListKey","updateHasPrepend","VNestedSymbol","emptyNested","_activeStrategiesMjs","_openStrategiesMjs","_selectStrategiesMjs","openOnSelect","activatable","selectable","opened","activeStrategy","leafActiveStrategy","leafSingleActiveStrategy","independentActiveStrategy","independentSingleActiveStrategy","leafSingleSelectStrategy","leafSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","classicSelectStrategy","listOpenStrategy","singleOpenStrategy","multipleOpenStrategy","nodeIds","nested","parentId","isGroup","newPath","_children_value_get","newOpened","newSelected","newActivated","uidSymbol","computedId","isActivated","isIndeterminate","isLeaf","isGroupActivator","strategy","parentStrategy","singleSelected","childrenIds","everySelected","cid","noneSelected","_$_ref7","makeVListItemProps","roundedProps","MouseEvent","hasSubtitle","_slots_subtitle1","makeVListItemSubtitleProps","makeVListSubheaderProps","inset","_vdividerMjs","makeVDividerProps","thickness","dividerStyles","_props_title","hasNullItem","makeVListItemActionProps","makeVListItemMediaProps","_vmenuMjs","makeVMenuProps","_voverlayMjs","_scopeIdMjs","_sharedMjs","submenu","makeVOverlayProps","closeDelay","locationStrategy","openDelay","scrim","scrollStrategy","useScopeId","overlay","VMenuSymbol","openChildren","onFocusIn","_onFocusIn","_overlay_value","_overlay_value1","contentEl","globalTop","onClickOutside","closeParents","_overlay_value2","_overlay_value_activatorEl1","activatorEl","_overlay_value_activatorEl","HTMLTextAreaElement","HTMLInputElement","tabIndex","onActivatorKeydown","_props_location","overlayProps","VOverlay","_locationStrategiesMjs","_scrollStrategiesMjs","_useActivatorMjs","_hydrationMjs","_lazyMjs","_stackMjs","_teleportMjs","Scrim","attach","closeOnBack","contained","contentProps","noClickAnimation","makeActivatorProps","makeLazyProps","makeLocationStrategyProps","makeScrollStrategyProps","ClickOutside","_disableGlobalStack","afterEnter","scrimEl","_useLazy","useLazy","_onAfterLeave","scrimColor","_useStack","useStack","localTop","stackStyles","_useActivator","useActivator","isTop","activatorRef","targetRef","activatorEvents","contentEvents","scrimEvents","teleportTarget","useTeleport","_activatorEl_value","_vm_proxy_$el","ShadowRoot","useHydration","_useLocationStrategies","useLocationStrategies","contentStyles","updateLocation","animateClick","closeConditional","shadowTarget","_contentEl_value","useScrollStrategies","scrollParent","_slots_activator","_pointMjs","locationStrategies","static","_destructComputed","parsedAnchor","parsedOrigin","preferredAnchor","preferredOrigin","contentBox","scrollParents","viewport","scrollBox","viewportMargin","placement","available","flipped","resets","_checkOverflow","checkOverflow","_x","_y","overflows","hasOverflowX","hasOverflowY","newPlacement","flip","newOverflows","overflows1","pixelRound","pixelCeil","_placement","targetPoint","anchorToPoint","contentPoint","_getOffset","newContentEl","oldContentEl","onResize","_updateLocation_value","_props_locationStrategy","_locationStrategies_props_locationStrategy","elementToViewport","viewportToElement","align1","_requestNewFrameMjs","scrollStrategies","none","_data_targetEl_value","bindScroll","_data_root_value","scrollElements","scrollbarWidth","scrollableParent","reposition","slow","ric","requestNewFrame","_data_updateLocation_value","_data_updateLocation","_scrollStrategies_props_scrollStrategy","clean","frames","_delayMjs","openOnHover","openOnFocus","makeDelayProps","isHovered","firstEnter","_useDelay","useDelay","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onMouseenter","_e_sourceCapabilities","sourceCapabilities","firesTouchEvents","bindActivatorProps","getActivator","unbindActivatorProps","clearDelay","runDelay","isOpening","StackSymbol","globalStack","disableGlobalStack","createStackEntry","activeChildren","_zIndex","_globalStack_at","lastZIndex","_isTop","checkEvent","checkIsActive","handleShadow","_clickOutside","lastMousedownWasOutside","_el__clickOutside","_el__clickOutside_binding_instance_$_uid","Refs","getDescriptor","currentObj","_ref_value__","_getDescriptor","descriptor1","ref1","childRefs","descriptor2","childRefs1","makeVSelectProps","VSelect","ue","keyboardLookupLastTime","keyboardLookupPrefix","computedMenuProps","_props_menuProps","_listRef_value1","onModelUpdate","persistentPlaceholder","inputmode","_vcounterMjs","_vfieldMjs","activeTypes","autofocus","persistentCounter","makeVFieldProps","_model_value","isPlainOrUnderlined","onIntersect","_entries__target_focus","_entries__target","vInputRef","vFieldRef","inputRef","_inputRef_value","onControlMousedown","onControlClick","_props_modelModifiers","caretPosition","hasCounter","_VInput_filterProps","fieldProps","filterFieldProps","VField","fieldClass","_ref3_props","VCounter","makeVCounterProps","functional","_vfieldLabelMjs","appendInnerIcon","clearable","clearIcon","persistentClear","prependInnerIcon","singleLine","hasLabel","labelRef","floatingLabelRef","controlRef","targetWidth","targetStyle","onKeydownClear","_props_onClickclear","_slots_prependinner","_slots_appendinner","_props_centerAffix","isOutlined","hasClear","VFieldLabel","makeVFieldLabelProps","_vvirtualScrollMjs","makeVVirtualScrollProps","_vvirtualScrollItemMjs","_virtualMjs","makeVirtualProps","_useVirtual","useVirtual","markerRef","handleScroll","handleScrollend","handleItemResize","paddingTop","computedItems","handleListeners","_containerRef_value","_containerRef_value1","VVirtualScrollItem","onScrollPassive","onScrollend","makeVVirtualScrollItemProps","_contentRect_value","itemHeight","markerOffset","viewportHeight","hasInitialRender","offsets","updateTime","targetScrollIndex","updateOffsets","calculateOffset","lastScrollTop","scrollVelocity","lastScrollTime","_calculateVisibleItems","startPx","binaryClosest","endPx","calculateIndex","bufferOverflow","scrollTime","scrollDeltaT","prevHeight","prevMinHeight","high","low","textFieldRef","scrollTimeout","isScrolling","_finishScrolling","_onListKeydown","_textFieldRef_value","finishScrolling","filterItems","customFilter","customKeyFilter","filterMode","noFilter","_options_default","customFiltersLength","_options_customKeyFilter","loop","_wrapInArray","customMatches","defaultMatches","_options_customKeyFilter1","keyFilter","defaultMatchesLength","customMatchesLength","filteredMatches","transformedItems","_query","strQuery","originalItems","_filteredItems","_filteredMatches","_vbadgeMjs","VBadge","makeVBadgeProps","bordered","_props_offsetY","_props_offsetX","badgeAttrs","_ctx_slots_default","_ctx_slots","_ctx_slots_badge","_vbannerMjs","VBanner","_vbannerActionsMjs","VBannerActions","_vbannerTextMjs","VBannerText","makeVBannerProps","avatar","makeVBannerActionsProps","_vbottomNavigationMjs","VBottomNavigation","makeVBottomNavigationProps","grow","_vbottomSheetMjs","VBottomSheet","makeVBottomSheetProps","_vdialogMjs","makeVDialogProps","dialogProps","VDialog","fullscreen","retainFocus","firstElement","lastElement","_vbreadcrumbsMjs","VBreadcrumbs","_vbreadcrumbsItemMjs","VBreadcrumbsItem","_vbreadcrumbsDividerMjs","VBreadcrumbsDivider","makeVBreadcrumbsProps","makeVBreadcrumbsDividerProps","makeVBreadcrumbsItemProps","_slots_default2","_slots_default3","_vcardMjs","VCard","_vcardActionsMjs","VCardActions","_vcardItemMjs","VCardItem","_vcardSubtitleMjs","VCardSubtitle","_vcardTextMjs","VCardText","_vcardTitleMjs","VCardTitle","makeVCardProps","hover","hasCardItem","hasHeader","makeCardItemProps","makeVCardSubtitleProps","makeVCardTextProps","_vcarouselMjs","VCarousel","_vcarouselItemMjs","VCarouselItem","makeVCarouselProps","_vwindowMjs","delimiterIcon","hideDelimiters","hideDelimiterBackground","verticalDelimiters","makeVWindowProps","continuous","windowRef","slideTimeout","startTimeout","restartTimeout","windowProps","VWindow","_$props","VWindowSymbol","VWindowGroupSymbol","Touch","rootRef","isRtlReverse","transitionCount","transitionHeight","activeIndex","itemsLength","canMoveBack","canMoveForward","arrows","touchOptions","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","_binding_instance","_value_options","_target__touchHandlers","createHandlers","touchmoveX","touchmoveY","touchstart","_wrapper_start","touchend","_wrapper_end","touchmove","_wrapper_move","_touchHandlers","_binding_value","makeVCarouselItemProps","_vwindowItemMjs","makeVWindowItemProps","imgProps","windowItemProps","VWindowItem","reverseTransition","groupItem","isTransitioning","hasTransition","onAfterTransition","onBeforeTransition","_window_rootRef_value","onTransitionCancelled","onEnterTransition","VCode","_vcolorPickerMjs","VColorPicker","makeVColorPickerProps","_vcolorPickerCanvasMjs","_vcolorPickerEditMjs","_vcolorPickerPreviewMjs","_vcolorPickerSwatchesMjs","_vsheetMjs","canvasHeight","dotSize","hideCanvas","hideSliders","hideInputs","showSwatches","swatches","swatchesMaxHeight","makeVSheetProps","hue","extractColor","currentColor","_hue_value","externalChange","updateColor","VSlider","trackColor","trackFillColor","_currentColor_value","sheetProps","VSheet","nullColor","VColorPickerCanvas","VColorPickerPreview","hideAlpha","VColorPickerEdit","VColorPickerSwatches","makeVColorPickerCanvasProps","isInteracting","canvasRef","canvasWidth","_dotPosition","dotPosition","_props_color1","_props_color_h","_props_color_a","dotStyles","_dotPosition_value","_resizeRef_el","_entries__contentRect","handleMouseDown","handleMouseMove","handleMouseUp","coords","updateCanvas","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","onTouchstartPassive","makeVColorPickerEditProps","VColorPickerInput","enabledModes","_mode_inputs","getColor","_inputs_value","mi","_rgba_inputs","hasAlpha","converted","hexa","makeVColorPickerPreviewProps","abortController","AbortController","openEyeDropper","_openEyeDropper","colorHexValue","EyeDropper","sRGBHex","_props_color2","thumbSize","trackSize","_vsliderMjs","makeVSliderProps","_vsliderThumbMjs","_vsliderTrackMjs","_sliderMjs","makeSliderProps","thumbContainerRef","steps","useSteps","roundValue","_useSlider","useSlider","onSliderStart","onSliderEnd","roundedValue","onSliderMove","getActiveThumb","_thumbContainerRef_value","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","hasLabels","trackStop","_slots_label","_slots_label1","VSliderTrack","VSliderThumb","makeVSliderThumbProps","slider","VSliderSymbol","thumbColor","thumbLabel","decimals","indexFromEnd","elevationProps","relevantKeys","multipliers","parseKeydown","increase","multiplier","direction1","positionPercentage","_slots_thumblabel","_slots_thumblabel1","showTicks","ticks","tickSize","clamped","parseMouseMove","_trackContainerRef_value","trackStart","trackLength","clickPos","clickOffset","startOffset","onMouseMove","numTicks","_props_thumbColor","_props_trackColor","_props_trackFillColor","activeThumbRef","handleStop","handleStart","moveListenerOptions","onSliderMouseUp","onSliderTouchend","percentage","parsedTicks","makeVSliderTrackProps","trackFillColorClasses","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","_slots_ticklabel","_slots_ticklabel1","directionValue","makeVColorPickerSwatchesProps","_colorsMjs","_colorsMjsDefault","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","swatch","red","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","accent1","accent2","accent3","accent4","_vcomboboxMjs","VCombobox","makeVComboboxProps","_model_value_","_model_value__title","cleared","_search","_props_delimiters","_value_","_value__title","_vconfirmEditMjs","VConfirmEdit","makeVConfirmEditProps","cancelText","okText","internalModel","structuredClone","actionsUsed","_vdataIteratorMjs","VDataIterator","makeVDataIteratorProps","_expandMjs","_optionsMjs","_paginateMjs","_selectMjs","_sortMjs","_itemsMjs","makeDataIteratorItemsProps","makeDataTableSelectProps","makeDataTableSortProps","makeDataTablePaginateProps","itemsPerPage","makeDataTableExpandProps","makeDataTableGroupProps","groupBy","useDataIteratorItems","_createSort","createSort","multiSort","mustSort","_createPagination","createPagination","toggleSort","provideSort","_provideGroupBy","provideGroupBy","sortByWithGroups","extractRows","isGroupOpen","toggleGroup","sortedItems","useSortedItems","flatItems","useGroupedItems","_providePagination","providePagination","stopIndex","pageCount","setItemsPerPage","setPage","paginatedItems","usePaginatedItems","paginatedItemsWithoutGroups","_provideSelection","provideSelection","selectAll","toggleSelect","_provideExpanded","provideExpanded","isExpanded","toggleExpand","useOptions","groupedItems","_slots_header","_slots_footer","VDataTableExpandedKey","useExpanded","expandOnClick","showExpand","expanded","newExpanded","createGroupBy","useGroupBy","VDataTableGroupSymbol","disableSort","_val_order","dive","flattenItems","groupItems","groupItemsByProperty","oldOptions","usePagination","VDataTablePaginationSymbol","VDataTableSelectionSymbol","useSelection","singleSelectStrategy","showSelectAll","allSelected","_items_","pageSelectStrategy","allSelectStrategy","showSelect","_allItems_value_find","_allItems_value_find_value","allSelectable","currentPageSelectable","someSelected","isSomeSelected","useSort","sortItems","customKeySort","VDataTableSortSymbol","_sortBy_value_map","newSortBy","isSorted","_options_sortFunctions","_options_sortRawFunctions","sortFunctions","sortRawFunctions","sortByItems","stringCollator","Collator","sensitivity","usage","_sortByItems_i_order","hasCustomResult","sortKey","sortOrder","sortA","sortB","sortARaw","sortBRaw","customResult","customResult1","itemSelectable","_vdataTableMjs","VDataTable","_vdataTableHeadersMjs","VDataTableHeaders","_vdataTableFooterMjs","VDataTableFooter","_vdataTableRowsMjs","VDataTableRows","_vdataTableRowMjs","VDataTableRow","_vdataTableVirtualMjs","VDataTableVirtual","_vdataTableServerMjs","VDataTableServer","makeDataTableProps","makeVDataTableProps","_vtableMjs","_headersMjs","makeVDataTableRowsProps","hideDefaultBody","hideDefaultFooter","hideDefaultHeader","makeDataTableHeaderProps","makeDataTableItemsProps","makeVDataTableHeadersProps","makeVTableProps","makeVDataTableFooterProps","_createHeaders","createHeaders","headers","filterFunctions","useDataTableItems","internalItems","dataTableFooterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","VTable","_slots_top","_slots_colgroup","_slots_thead","_slots_bodyprepend","_slots_bodyappend","_slots_tbody","_slots_tfoot","colgroup","thead","tbody","tfoot","firstIcon","lastIcon","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","showCurrentPage","_usePagination","paginationProps","VPagination","_vpaginationMjs","makeVPaginationProps","_refsMjs","totalVisible","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","_useLocale","maxButtons","_entries_","firstItem","totalWidth","itemWidth","getMax","even","rangeLength","rangeStart","rangeLength1","rangeStart1","setValue","_useRefs","useRefs","updateRef","VPaginationBtn","controls","prevDisabled","nextDisabled","updateFocus","_refs_value_currentIndex","_vdataTableColumnMjs","sortAscIcon","sortDescIcon","headerProps","_useSort","_useSelection","_useHeaders","useHeaders","getSortIcon","headerCellClasses","VDataTableHeaderCell","_props_headerProps","_column_headerProps","noPadding","VDataTableColumn","fixed","getFixedStyles","fixedOffset","colspan","rowspan","nowrap","lastFixed","_slots_headerdatatableselect","_slots_headerdatatableselect1","columnSlotName","columnSlotProps","VDataTableMobileHeaderCell","showSelectColumn","_props_item_raw","row","_props_tag","VDataTableHeadersSymbol","defaultHeader","defaultActionHeader","extractLeaves","getDepth","_headers","_props_items_","extractKeys","_options_groupBy","_options_showSelect","_options_showExpand","internalHeaders","convertToInternalHeaders","_defaultItem_key","_defaultItem_value","_defaultItem_sortable","defaultItem","getDefaultItem","internalItem","parseFixedColumns","seenFixed","setFixed","parentFixed","setFixedOffset","maxDepth","currentDepth","priorityQueue","whole","dequeue","rowSize","_queue_dequeue","flatHeaders","sortRaw","_vdataTableGroupHeaderRowMjs","rowProps","cellProps","_useExpanded","_useGroupBy","_slots_loading","_slots_loading1","_slots_expandedrow","_item_key","VDataTableGroupHeaderRow","slotProps1","itemSlotProps","makeVDataTableGroupHeaderRowProps","_slots_datatablegroup","_slots_datatablegroup1","_slots_datatableselect","_slots_datatableselect1","selectGroup","makeVDataTableRowProps","onContextmenu","onDblclick","headerSlotName","columnCellProps","_slots_slotName","_slots_itemdatatableselect1","_slots_itemdatatableselect","_slots_itemdatatableexpand1","_slots_itemdatatableexpand","_slots_headerSlotName","_slots_slotName1","_slots_headerSlotName1","_slots_slotName2","displayValue","fixedHeader","fixedFooter","_slots_wrapper","_slots_bottom","itemColumns","makeVDataTableVirtualProps","makeVDataTableServerProps","itemsWithoutGroups","_vdatePickerMjs","VDatePicker","_vdatePickerControlsMjs","VDatePickerControls","_vdatePickerHeaderMjs","VDatePickerHeader","_vdatePickerMonthMjs","VDatePickerMonth","_vdatePickerMonthsMjs","VDatePickerMonths","_vdatePickerYearsMjs","VDatePickerYears","makeVDatePickerProps","_vpickerMjs","makeVDatePickerControlsProps","makeVDatePickerMonthProps","weeksInMonth","makeVDatePickerMonthsProps","makeVDatePickerYearsProps","makeVPickerProps","_props_month","_props_year","viewMode","getYear","startOfYear","isReversing","setYear","headerTransition","minDate","maxDate","addDays","date1","onClickNext","onUpdateYear","onUpdateMonth","onClickPrev","onClickDate","onClickMonth","onClickYear","arrBefore","arrAfter","newMonth","newYear","isBefore","pickerProps","VPicker","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","showWeek","modeIcon","disableMonth","disableYear","disablePrev","disableNext","VSpacer","_vcontainerMjs","VContainer","_vcolMjs","VCol","_vrowMjs","VRow","_vspacerMjs","makeVContainerProps","makeVColProps","breakpointProps","offsetProps","orderProps","propMap","col","ALIGN_SELF_VALUES","alignSelf","breakpointClass","breakpoint","hasColClasses","makeVRowProps","ALIGNMENT","SPACE","makeRowProps","ALIGN_VALUES","alignValidator","alignProps","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","alignContent","classMap","noGutters","makeVDatePickerHeaderProps","onClickAppend","_calendarMjs","hideWeekdays","makeCalendarProps","daysRef","_useCalendar","useCalendar","daysInMonth","weekNumbers","rangeStop","isReverse","atMax","onRangeClick","isSameDay","endOfDay","datesInRange","nextDate","onMultipleClick","week","_daysInMonth_value__date","getWeekdays","weekDay","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","isToday","localized","_slots_day","_slots_day1","allowedDates","weekdays","weekDays","_props_firstDayOfWeek","genDays","toISO","isSameMonth","isStart","isEnd","isSame","formatted","daysInWeek","months","getNextMonth","_slots_month","_slots_month1","btnProps","years","yearRef","_yearRef_el","scrollIntoView","_slots_year","_slots_year1","_vpickerTitleMjs","landscape","hideHeader","VPickerTitle","_vemptyStateMjs","VEmptyState","makeVEmptyStateProps","actionText","headline","textWidth","onClickAction","_slots_headline","_slots_headline1","hasActions","hasHeadline","hasMedia","media","_slots_actions","_slots_actions1","_vexpansionPanelsMjs","VExpansionPanels","_vexpansionPanelMjs","VExpansionPanel","_vexpansionPanelTextMjs","VExpansionPanelText","_vexpansionPanelTitleMjs","VExpansionPanelTitle","makeVExpansionPanelsProps","makeVExpansionPanelProps","VExpansionPanelSymbol","variantClass","hideActions","makeVExpansionPanelTitleProps","makeVExpansionPanelTextProps","selectedIndices","isBeforeSelected","isAfterSelected","expansionPanelTitleProps","expansionPanelTextProps","expansionPanel","_vfabMjs","VFab","makeVFabProps","hasPosition","_props_location_split_shift","orientation","_props_location_split_","vFabRef","_vfileInputMjs","VFileInput","makeVFileInputProps","counterSizeString","counterString","hideInput","showSize","files","totalBytes","_ref2_size","totalBytesReadable","fileNames","_file_name","_file_size","_model_value_length","fileCount","onClickPrepend","_ref4_props","_target_files","_vfooterMjs","VFooter","makeVFooterProps","autoHeight","_vformMjs","VForm","makeVFormProps","submit","formRef","onReset","_formRef_value","novalidate","_vhoverMjs","VHover","makeVHoverProps","isHovering","_vinfiniteScrollMjs","VInfiniteScroll","makeVInfiniteScrollProps","VInfiniteScrollIntersect","margin","loadMoreText","emptyText","startStatus","endStatus","setScrollAmount","setStatus","getContainerSize","previousScrollSize","handleIntersect","_isIntersecting","intersecting","getScrollAmount","renderSide","_slots_error","_slots_empty","_slots_empty1","_slots_loadmore","_slots_loading2","_slots_loadmore1","_slots_loading3","hasStartIntersect","hasEndIntersect","intersectMode","_vitemGroupMjs","VItemGroup","_vitemMjs","VItem","VItemGroupSymbol","makeVItemGroupProps","_useGroupItem","VKbd","_vlayoutMjs","VLayout","_vlayoutItemMjs","VLayoutItem","makeVLayoutProps","makeVLayoutItemProps","_vlazyMjs","VLazy","makeVLazyProps","_vlocaleProviderMjs","VLocaleProvider","makeVLocaleProviderProps","_vmainMjs","VMain","makeVMainProps","_vnavigationDrawerMjs","VNavigationDrawer","makeVNavigationDrawerProps","_stickyMjs","_touchMjs","locations","disableResizeWatcher","disableRouteWatcher","expandOnHover","rail","railWidth","touchless","isPersistent","isTemporary","isSticky","currentRoute","_useTouch","useTouch","dragProgress","_useLayoutItem","isStuck","_useSticky","useSticky","stickyStyles","scrimStyles","stuckPosition","_layoutItemStyles_value_top","scrollY","layoutTop","bodyScroll","onTouchstart","onTouchmove","onTouchend","_useVelocity","useVelocity","addMovement","endTouch","getVelocity","maybeDragging","oops","getProgress","touchX","touchY","inTouchZone","inElement","velocity","dragStyles","_el_value","_el_value1","_el_value_style_transform","_el_value_style_transition","_dragStyles_value","_dragStyles_value1","calculateImpulseVelocity","kineticEnergyToVelocity","work","samples","vprev","vcurr","_touches_touch_identifier","timeStamp","_touches_id","newest","absX","absY","_vnoSsrMjs","VNoSsr","_votpInputMjs","VOtpInput","makeVOtpInputProps","focusAll","finish","fields","focusIndex","isValidNumber","_inputRef_value_index","_inputRef_value_val","onPaste","_e_clipboardData","_e_clipboardData_getData_slice","clipboardText","clipboardData","_vparallaxMjs","VParallax","makeVParallaxProps","displayHeight","_root_value","Document","scrollPos","sizeScale","onLoadstart","_vradioMjs","VRadio","makeVRadioProps","_vradioGroupMjs","VRadioGroup","makeVRadioGroupProps","_vrangeSliderMjs","VRangeSlider","makeVRangeSliderProps","strict","startThumbRef","stopThumbRef","_startThumbRef_value","_stopThumbRef_value","_startThumbRef_value1","_activeThumbRef_value","stopOffset","_stopThumbRef_value1","_vratingMjs","VRating","makeVRatingProps","itemAriaLabel","emptyIcon","fullIcon","halfIncrements","itemLabels","itemLabelPosition","increments","hoverIndex","itemState","isFilled","isFullIcon","eventState","VRatingItem","_itemState_value_index","_itemState_value_index1","_ref2_showStar","showStar","_eventState_value_","createLabel","labelProps","_props_itemLabels","_props_itemLabels1","_vskeletonLoaderMjs","VSkeletonLoader","rootTypes","makeVSkeletonLoaderProps","article","card","ossein","sentences","genBones","bone","_bone_split","genStructure","mapBones","genBone","bones","boilerplate","isLoading","loadingProps","ariaLive","_vslideGroupItemMjs","VSlideGroupItem","slideGroupItem","_vsnackbarMjs","VSnackbar","makeVSnackbarProps","multiLine","countdown","useCountdown","milliseconds","elapsed","timerRef","startY","hasLayout","activeTimeout","onPointerenter","onPointerleave","locationClasses","loc","_vsparklineMjs","VSparkline","makeVSparklineProps","_vbarlineMjs","_vtrendlineMjs","makeVBarlineProps","makeVTrendlineProps","showLabels","labels","totalHeight","labelSize","VTrendline","VBarline","lineProps","_lineMjs","autoLineWidth","makeLineProps","autoDrawDuration","boundary","minX","maxX","minY","maxY","genBars","_Math1","totalValues","minValue","gridX","gridY","horizonY","parsedLabels","bars","gradientData","gradientUnits","gradientDirection","smooth","ry","autoDraw","dur","textAnchor","dominantBaseline","autoDrawEasing","_pathMjs","lastLength","genPoints","genPath","pathRef","getTotalLength","strokeDasharray","strokeDashoffset","_props_gradient","_parseFloat","stroke","isCollinear","checkCollinear","radiusForPoint","isTooCloseForRadius","moveTo","p0","vector","unitVector","_vspeedDialMjs","VSpeedDial","makeVSpeedDialProps","menuRef","_props_location_split","_vstepperMjs","VStepper","_vstepperActionsMjs","VStepperActions","_vstepperHeaderMjs","VStepperHeader","_vstepperItemMjs","VStepperItem","_vstepperWindowMjs","VStepperWindow","_vstepperWindowItemMjs","VStepperWindowItem","makeStepperProps","makeVStepperProps","altLabels","completeIcon","editIcon","editable","errorIcon","nonLinear","makeVStepperActionsProps","VStepperSymbol","prevText","nextText","hasWindow","_slots_","_slots_1","prevSlotProps","nextSlotProps","makeStepperItemProps","makeVStepperItemProps","_group_value_value","canEdit","hasCompleted","_slots_icon","_slots_icon1","makeVStepperWindowProps","_model","_group_items_value_find","makeVStepperWindowItemProps","_vswitchMjs","VSwitch","makeVSwitchProps","control","loaderColor","onTrackClick","_control_value_input","_control_value","thumb","_vsystemBarMjs","VSystemBar","makeVSystemBarProps","_props_height","_vtabMjs","VTab","_vtabsMjs","_vtabsWindowMjs","VTabsWindow","_vtabsWindowItemMjs","VTabsWindowItem","makeVTabProps","sliderColor","hideSlider","sliderColorClasses","sliderColorStyles","sliderEl","_rootEl_value_group","_rootEl_value","_rootEl_value_group_isSelected_value","updateSlider","_rootEl_value_$el_parentElement","prevEl","prevBox","nextBox","xy","XY","rightBottom","widthHeight","initialScale","VTabsSymbol","makeVTabsProps","alignTabs","fixedTabs","_slots_tab","_slots_tab1","_slots_window","makeVTabsWindowProps","makeVTabsWindowItemProps","_vtextareaMjs","VTextarea","makeVTextareaProps","autoGrow","noResize","maxRows","controlHeight","textareaRef","_textareaRef_value","sizerRef","calculateInputHeight","fieldStyle","lineHeight","newHeight","_vthemeProviderMjs","VThemeProvider","makeVThemeProviderProps","withBackground","_vtimelineMjs","VTimeline","_vtimelineItemMjs","VTimelineItem","makeVTimelineProps","lineThickness","lineColor","truncateLine","makeVTimelineItemProps","lineInset","VTimelineDivider","dotColor","fillDot","hideOpposite","iconColor","sideClasses","truncateClasses","_vtimelineDividerMjs","hideDot","dotRef","_newValue_$el_querySelector","_newValue_$el_querySelector_getBoundingClientRect_width","_slots_opposite","makeVTimelineDividerProps","lineColorClasses","lineColorStyles","_vtoolbarItemsMjs","VToolbarItems","makeVToolbarItemsProps","_vtooltipMjs","VTooltip","makeVTooltipProps","_vvalidationMjs","VValidation","validation","Mutate","Resize","Scroll","Tooltip","_el__mutate","_mutate","_modifierKeys_attr","_modifierKeys_char","_modifierKeys_child","_modifierKeys_sub","modifierKeys","characterData","subtree","_binding_modifiers","_binding_modifiers1","_onResize","_el__onResize","_el__onResize_binding_instance_$_uid","_ref_self","_el__onScroll","_el__onScroll_binding_instance_$_uid","_el__onScroll_binding_instance_$_uid_target","_directiveComponentMjs","useDirectiveComponent","_binding_arg","_findComponentParent","_vnode_ctx","_binding_value_text","findComponentParent","_child_component","_child_component1","Debug.debug","Debug.getErrorWithStack","safari14Workaround","_Dexie","Debug.setDebug","constants","removeAll","getConsole","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","cachedFn","isReadOnly","isHtmlTag","isTransition","getComponentAttributes","createSortableOption","addContext","indexFirstDomListElement","getSlot","getRootInformation","computeComponentStructure","sendEvent","KEYCODE_ENTER","KEYCODE_TAB","KEYCODE_BACKSPACE","KEYCODE_Y","KEYCODE_Z","KEYCODE_M","KEYCODE_PARENS","KEYCODE_BRACKETS","KEYCODE_QUOTE","KEYCODE_BACK_QUOTE","KEYCODE_ESCAPE","HISTORY_LIMIT","HISTORY_TIME_GAP","totalLines","for","isLocaleInstance","delete","_classPrivateFieldSet","supportsSelector","CIELAB","sRGB","sprime","mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","srgbForwardTransform","class","_defineComponent","propIsDefined","isPotentiallyScrollable","parseLocalDate","parseISO","addMinutes","addHours","addWeeks","addMonths","getPreviousMonth","endOfYear","isWithinRange","isAfterDay","isSameYear","getContainer","clampTarget","_mergeProps","ROOT_ZINDEX","ExpandTransitionGenerator","_withDirectives","_Fragment","_resolveDirective","showColor","getValues","DELAY_RIPPLE","_createTextVNode","append-inner","_vShow","clientSize","in","nextElement","staticLocationStrategy","connectedLocationStrategy","getIntrinsicSize","activatorFixed","closeScrollStrategy","blockScrollStrategy","repositionScrollStrategy","defaultConditional","KEYBOARD_LOOKUP_THRESHOLD","BUFFER_PX","getSize","topOverflow","bottomOverflow","onListScroll","minDistance","updateDotPosition","stripAlpha","parseDefaultColors","minButtons","onClick:clear","onClick:append","click:year","click:month","click:prev","click:next","click:text","offsetKey","orderKey","prefixKey","click:append","hasModelReset","catch","finally","getStatus","touchZone","thresholdMet","HORIZON","HISTORY","sqrt2","_genPath","sigma","parseItems","_vModelText","concreteComponent"],"version":3,"file":"index.27c14863.js.map"} \ No newline at end of file +{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,I,C,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,E,IC0De,EA7CX,E,E,E,kD,E,iB,C,G,E,M,C,E,a,WAoCS,OAAA,C,G,I,E,E,sC,E,E,iC,E,E,gCAjDb,EAAA,EAAA,OACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,sB,E,E,c,C,GAGA,EAAA,gCACA,IAAA,EAAA,EAAA,WACA,EAAA,EAAA,gDACA,EAAA,EAAA,0CACA,EAAA,EAAA,0CACA,EAAA,2BAIA,IAAM,EAAU,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,CAC5B,WAAA,EACA,WAAA,EACA,MAAO,CACL,WAAY,MACZ,QAAA,EAAA,OAAM,CACN,KAAM,CACJ,IAAA,EAAA,GAAE,AACJ,CACF,CACF,GAKM,EAAY,SAAC,CAAnB,EACE,IAAM,EAA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OACA,UAAA,WACA,UAAA,MACA,WAAA,EACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,GACA,WAAA,OACA,WAAA,MACA,WAAA,MACA,WAAA,OACA,WAAA,OACA,WAAA,WACA,WAAA,OACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,OACA,WAAA,OACA,WAAA,WACA,WAAA,MACA,WAAA,WACA,WAAA,WACA,WAAA,GACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,WACA,WAAA,OACA,WAAA,EACA,WAAA,MACA,WAAA,WACA,WAAA,MACA,EACA,CACA,EAAA,IACA,QAAA,EACA,QAAA,UACA,QAAA,MACA,QAAA,MACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,QAAA,UACA,SAAA,MACA,SAAA,UACA,SAAA,UACA,SAAA,MACA,SAAA,EACA,SAAA,IACA,OAAA,UACA,QAAA,UACA,QAAA,EACA,QAAA,UACA,QAAA,UACA,QAAA,MACA,QAAA,MACA,QAAA,IACA,QAAA,EACA,QAAA,IACA,SAAA,UACA,SAAA,MACA,SAAA,MACA,SAAA,UACA,SAAA,UACA,SAAA,UACA,UAAA,UACA,UAAA,MACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,MACA,UAAA,UACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,EACA,UAAA,MACA,UAAA,UACA,UAAA,IACA,UAAA,UACA,UAAA,MACA,UAAA,UACA,UAAA,MACA,UAAA,UACA,UAAA,UACA,UAAA,UACA,UAAA,EACA,UAAA,KACA,EACA,CACA,EAAA,WACA,MAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,EACA,OAAA,QACA,OAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,QACA,OAAA,GACA,OAAA,WACA,OAAA,WACA,OAAA,KACA,OAAA,KACA,OAAA,WACA,MAAA,WACA,MAAA,GACA,OAAA,WACA,OAAA,WACA,OAAA,QACA,OAAA,WACA,OAAA,EACA,OAAA,WACA,OAAA,KACA,OAAA,WACA,OAAA,QACA,OAAA,KACA,OAAA,WACA,OAAA,QACA,OAAA,QACA,QAAA,WACA,QAAA,QACA,QAAA,QACA,QAAA,WACA,QAAA,EACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,WACA,QAAA,QACA,QAAA,WACA,QAAA,QACA,QAAA,GACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,EACA,QAAA,QACA,QAAA,QACA,QAAA,WACA,QAAA,WACA,QAAA,GACA,QAAA,WACA,QAAA,KACA,QAAA,WACA,QAAA,WACA,QAAA,KACA,QAAA,WACA,QAAA,QACA,QAAA,OACA,EACA,CACA,EAAA,IACA,KAAA,UACA,KAAA,OACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,OACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,EACA,MAAA,UACA,MAAA,WACA,KAAA,UACA,KAAA,WACA,MAAA,IACA,MAAA,UACA,MAAA,OACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,WACA,MAAA,EACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,OACA,MAAA,OACA,MAAA,IACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,WACA,OAAA,WACA,OAAA,UACA,OAAA,WACA,OAAA,OACA,OAAA,WACA,OAAA,EACA,OAAA,UACA,MAAA,WACA,MAAA,UACA,MAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA,UACA,MAAA,IACA,MAAA,WACA,OAAA,OACA,OAAA,WACA,OAAA,EACA,OAAA,WACA,OAAA,UACA,OAAA,OACA,OAAA,WACA,OAAA,UACA,EACA,CACA,EAAA,WACA,IAAA,KACA,IAAA,WACA,IAAA,WACA,KAAA,WACA,KAAA,QACA,KAAA,QACA,KAAA,WACA,KAAA,EACA,KAAA,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A,C,IACA,CAAA,CAAA,EAAA,CAAA,E,E,E,E,I,C,K,C,G,E,K,C,ECPA,MAAA,GAMA,IAHA,EAAA,EACA,EAAA,KAAA,GAAA,CAAA,EAAA,GACA,EAAA,EACA,GAAA,GACA,EAAA,EAAA,GAAA,CAAA,EAAA,QAAA,C,E,Q,G,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,KCNA,GAAA,AAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,EACA,IAAA,EAGA,OAAA,EAAA,GACA,KAAA,E,IACA,EAAA,E,E,I,E,E,G,G,E,E,G,C,E,Q,CCPA,EAAA,QAAA,GAAA,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,KCAA,GAAA,AAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,EACA,IAAA,CAGA,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,GACA,EAAA,EAAA,EACA,I,K,M,E,I,E,E,E,M,E,E,G,G,E,E,G,C,E,Q,C,E,Q,G,E,G,E,Q,G,E,Q,C,E,E,G,C,E,E,K,K,G,A,C,E,E,E,C,E,E,I,CCNsC,CAAA,CAAA,CAAA,IAAA,CAAA,EAAA,GAEtC,EAAA,EAAA,E,I,K,M,E,O,E,I,C,G,C,G,G,I,E,K,G,C,E,G,K,C,C,E,C,E,C,C,E,K,C,G,I,E,O,K,E,E,E,M,C,E,C,E,I,C,G,C,C,I,C,E,E,M,C,G,I,E,E,G,I,E,K,G,C,E,G,I,C,C,E,O,C,G,A,M,I,C,E,A,C,W,O,C,C,E,I,C,E,E,E,E,G,C,E,O,C,C,C,E,Q;;0B,E,W,C,E,E,C,E,S,E,C,E,I,E,C,C,E,C,G,A,K,I,E,O,E,O,C,I,E,C,C,E,C,C,Q,C,C,E,O,C,C,E,C,I,C,E,O,C,E,E,O,C,G,E,O,A,C,E,C,C,S,C,E,I,E,G,E,U,C,W,O,E,O,A,E,W,O,C,E,O,E,C,C,E,C,E,C,G,C,E,E,C,C,S,C,C,C,E,I,I,K,E,E,C,C,E,I,C,E,C,C,E,I,O,c,C,E,E,C,W,C,E,I,C,C,E,A,E,E,E,C,C,W,G,A,U,O,W,O,W,G,C,O,I,E,A,S,gB,C,M,E,C,G,A,U,O,O,O,M,C,I,E,C,C,S,C,C,C,E,O,O,S,C,c,C,I,C,E,E,E,E,C,C,S,C,E,a,O,Q,O,W,E,O,c,C,E,O,W,C,C,M,Q,G,O,c,C,E,a,C,M,C,C,E,E,I,E,C,E,O;;wB,E,E,C,C,G,E,C,C,E,C,Q,W,O,C,C,G,E,A,E,e,E,qB,Q,C,E,G,E3BGI,EAAA,OAAA,CAAA,G,E,C,mC,Q,+B,Q,kC,O,E,C,M,C,S,C,C,C,C,C,E,I4BJA,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAyB,MAAM,CAEvD,EAAQ,oBAAuB,OAAO,CAAC,GACvC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,aAIH,EAAA,OAAA,CAAA,C,E,C,mB,Q,mB,Q,mB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAZA,EAAA,OAAA,CAAA,CACb,KAAM,SACN,KAAA,WACE,MAAO,CAAC,CACV,CACF,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,YAIE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA4CW,EA5CX,CAAU,MAAM,kBAAmB,IAAK,CAAA,EAAM,UAAU,I,E,CACtD,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EA0CQ,EA1CR,CAAO,QAAQ,SAAS,aAAA,E,E,CACtB,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,uBAAuB,SAAS,K,E,CAC7B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,aACL,KAAK,4CACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,GAMd,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,yBAAyB,SAAS,K,E,CAC/B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,kBACL,KAAK,8CACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,GAMd,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAYY,EAZZ,CAAW,KAAK,qBAAqB,SAAS,K,E,CAC3B,UAAS,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACxB,SADe,CAAA,EAAa,IAAA,EAAA,EAAA,KAAA,CAAb,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAQQ,EARR,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAQQ,CAPN,QAAQ,UACR,KAAK,mBACL,KAAK,sCACL,OAAO,IACP,MAAM,MACE,EAAA,GAAA,KAAA,I,A,G,E,C,G,A,G,E,C,G,A,G,E,C,E,C,E,C,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GA7CL,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,I,C,E,E,C,I,C,E,E,C,I,C,E,E,C,Y,C,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,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A,EAAA,OAAI,AAAE,CACxD,C,E,C,sB,Q,yB,Q,yB,Q,0B,Q,uB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,ICrEI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAAuB,MAAM,CAErD,EAAQ,oBAAqB,OAAO,CAAC,GACrC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,WAIH,EAAA,OAAA,CAAA,C,E,C,iB,Q,mB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GA8BA,EAAA,OAAA,CAAA,CACb,KAAM,gBAEN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,SAAU,CAAA,CACZ,EAEA,gBAAiB,CACf,KAAM,QACN,SAAU,CAAA,CACZ,CACF,EAEA,KAAA,WACE,MAAO,CAAC,CACV,CACF,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,gB,E,A,C,E,E,gB,A,E,c,E,A,C,E,E,gB,A,E,c,M,A,C,E,E,S,A,I,A,C,E,E,kB,A,E,E,Q,C,K,CA5DE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAOgB,EAPhB,CACW,WAAA,EAAA,MAAM,CAAC,IAAI,CAAX,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,MAAM,CAAC,IAAI,CAAX,CAAA,CAAA,EACR,QAAS,GACV,MAAM,aACN,SAAA,GACA,SAAA,GACC,SAAU,EAAA,eAAe,A,E,K,E,C,a,W,EAG5B,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAMgB,EANhB,CACW,WAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAhB,sBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAhB,CAAA,C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EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,IAAI,CAAJ,CAAA,CAAA,EACR,UAAW,EAAA,WAAW,CACvB,eAAA,GACC,SAAU,EAAA,eAAe,A,E,K,E,C,a,Y,W,E,A,G,E,C,G,A,G,E,C,E,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAnBnB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,2B,E,A,C,E,E,gB,A,E,gB,E,A,C,E,E,gB,A,E,0B,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,W,E,A,C,E,E,gB,A,E,iB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,sBDJE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAuGqB,EAvGrB,CAAoB,QAAQ,YAAY,MAAA,CAAA,YAAA,OAAA,C,E,CACtC,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAgBoB,EAhBpB,KAAA,CACE,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAM0B,EAN1B,KAAA,CAGmB,QAAO,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EACtB,WADe,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAA2B,EAA3B,KAAA,CAAQ,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,c,A,C,G,E,C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AA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,gB,A,C,G,E,C,GAAqB,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,sBAAA,E,A,G,E,C,G,C,G,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAnGvB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IyKJI,E,A,E,kD,iB,C,GAGE,AADJ,CAAA,EAAS,EAAQ,mBAAjB,EACW,UAAU,EAAE,CAAA,EAAS,EAAO,OAAO,AAAP,EACvC,EAAO,MAAM,CAAG,EAAQ,oBAA2B,MAAM,CAEzD,EAAQ,oBAAyB,OAAO,CAAC,GACzC,EAAO,SAAS,CAAG,gBACnB,EAAO,MAAM,CAAG,eAIH,EAAA,OAAA,CAAA,C,E,C,mB,Q,iB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GAKf,IAAA,EAAA,EAAA,iBAEe,CAAA,EAAA,OAAA,CAAA,CACb,KAAM,oBAEN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,SAAU,CAAA,CACZ,CACF,EAEA,KAAA,WACE,MAAO,CACL,IAAK,OAAO,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAa,UACvD,CACF,EAEA,QAAS,CACP,QAAA,WACE,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,EAAgB,IAAI,CAAC,GAAG,CAC1B,CACF,CACF,C,E,C,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,WAxCE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAA,AAAA,IAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAaU,EAbV,CACE,SAAA,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AA,SAAA,CAAL,EAAO,OAAA,EAAA,WAAW,CAAlB,EAAA,CAAA,C,E,CACA,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,oB,A,C,G,E,C,E,E,A,C,E,E,kB,A,E,G,C,G,A,G,E,C,E,E,C,a,c,iB,W,E,A,G,E,C,G,A,G,E,C,GAOX,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAoC,EAAA,CAAzB,MAAM,MAAjB,GACA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAGQ,EAHR,CAAO,KAAK,sCAAsC,OAAO,Q,E,CACvD,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,MAAA,CAAA,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAkC,EAAA,CAA1B,KAAA,EAAR,EAAA,CAAa,QAAA,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAA,WAAA,OAAA,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,gB,A,C,G,E,C,GAAqB,CAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAA,sBAAA,E,A,G,E,C,G,C,G,C,E,C,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GApDvB,EAAA,OAAA,CAAA,SAAA,CAAA,EAEf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O7KyEY,EAAA,CAAA,MAAM,gDAAN,E,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,mB,E,A,C,E,E,gB,A,E,Y,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,Q,E,A,C,E,E,gB,A,E,iB,E,A,C,E,E,gB,A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iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCrGA,EAAA,MAAA,CAAA,EAAA,MAAA,WAAS,OAAA,EAAA,OAAG,A,GAAZ,EAAA,MAAA,CAAA,EAAA,KAAA,WAAc,OAAA,EAAA,OAAE,A,GAAhB,EAAA,MAAA,CAAA,EAAA,KAAA,WAAkB,OAAA,EAAA,OAAE,A,GAApB,EAAA,MAAA,CAAA,EAAA,IAAA,WAAsB,OAAA,EAAA,OAAC,A,GAAvB,EAAA,MAAA,CAAA,EAAA,IAAA,WAAyB,OAAA,EAAA,OAAC,A,GAA1B,EAAA,MAAA,CAAA,EAAA,IAAA,WAA4B,OAAA,EAAA,OAAC,A,GAP7B,IAAA,EAAA,EAAA,8B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,E,E,C,6B,Q,4B,Q,4B,Q,2B,Q,2B,Q,2B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCLe,EAAA,OAAA,CAAA,kI,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,oB,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,yP,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,2+D,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,w+E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,A,E,kD,iB,C,GCAA,EAAA,OAAA,CAAA,0D,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IEUH,EAOA,EAPA,EAOA,E,E,E,kD,E,iB,C,GAmIZ,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GAAA,EAAA,MAAA,CAAA,EAAA,aAAA,W,O,E,U,A,GAAA,EAAA,MAAA,CAAA,EAAA,kBAAA,W,O,E,e,A,GAAA,EAAA,MAAA,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CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EA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,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW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AAQ,qBACrC,EAAK,gBAAgB,CAAC,OAAQ,EAAQ,qBACtC,EAAK,gBAAgB,CAAC,OAAQ,EAAQ,qBACtC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBACxC,EAAK,gBAAgB,CAAC,KAAM,EAAQ,qBACpC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBACxC,EAAK,gBAAgB,CAAC,SAAU,EAAQ,qBAExC,EAAK,WAAW,CAAG,EACnB,EAAK,OAAO,CAAG,EACf,EAAO,OAAO,CAAG,C,E,C,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,iB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,kB,Q,iB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,kB,Q,mB,Q,iB,Q,mB,Q,gB,Q,iB,Q,kB,Q,gB,Q,gB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,kB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,e,Q,mB,Q,iB,Q,mB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,kB,Q,iB,Q,mB,Q,mB,Q,iB,Q,kB,Q,mB,Q,mB,Q,mB,Q,gB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,gB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,iB,Q,iB,Q,kB,Q,iB,Q,iB,Q,iB,Q,mB,Q,mB,Q,iB,Q,mB,Q,kB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,kB,Q,mB,Q,kB,Q,mB,Q,mB,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,gB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,mB,Q,iB,Q,gB,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,e,Q,iB,Q,mB,Q,mB,Q,mB,Q,iB,Q,iB,Q,mB,Q,gB,Q,mB,Q,iB,Q,mB,Q,iB,Q,mB,Q,iB,Q,iB,Q,iB,Q,iB,Q,mB,Q,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,QAAS,KACT,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,QAAS,KACT,UAAW,CACb,EAEA,CACE,UAAW,SACX,MAAO,sBACP,IAAK,IACL,QAAS,KACT,UAAW,CACb,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACT,UAAW,CACb,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC+DA,EAAO,OAAO,CAhJd,SAAsB,CAAI,EACxB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,2BACX,EAAc,EAAM,MAAM,CAC9B,EACA,EAAM,MAAM,CAAC,OAAQ,EAAU,OAsEjC,MAAO,CACL,KAAM,eACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,QA/Da,CACf,KACA,QACA,OACA,QACA,QACA,QACA,WACA,UACA,SACA,KACA,UACA,OACA,OACA,UACA,QACA,UACA,MACA,WACA,MACA,KACA,aACA,SACA,KACA,UACA,aACA,YACA,WACA,KACA,YACA,SACA,MACA,WACA,UACA,UACA,YACA,SACA,SACA,MACA,SACA,QACA,SACA,OACA,QACA,MACA,SACA,MACA,MACA,OACA,QACA,OACD,CAaG,QAZa,CACf,OACA,QACA,OACA,YACD,AAQC,EACA,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,aAAa,CAClB,CACE,MAAO,CACL,YACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,CACL,2CACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,UAAW,OACX,cAAe,iBACf,IAAK,IACL,SAAU,CAAE,QAAS,gBAAiB,CACxC,EACA,CACE,cAAe,WACf,IAAK,OACL,WAAY,CAAA,EACZ,QAAS,KACT,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,UAAW,gBAAiB,GAC5D,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA1HX,CACxB,UAAW,WACX,MAAO,SACP,IAAK,EACL,UAAW,EACb,EAuHW,AACH,EACA,CAAE,MAAO,EAAM,MAAM,CAAC,OAhII,iCAgI+B,EAC1D,AACH,EACA,EAAK,YAAY,CAClB,CACD,QAAS,GACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkHA,EAAO,OAAO,CApPd,SAAa,CAAI,EAKf,IAAM,EAAa,cACb,EAAc,YAAc,EAU5B,EAAW,4BAGX,EAAa,gBAGb,EAAW,EAAK,OAAO,CAAC,KAAM,KAK9B,EAAY,CAIhB,MAAO,YACP,IAAK,sBAGL,QAAS,EACT,SAAU,CACR,CAGE,cAAe,0BACf,WAAY,CAAA,CACd,EACA,CAEE,UAAW,UACX,cAAe,sEACjB,EACA,CACE,UAAW,OACX,MAAO,EACP,WAAY,CAAA,EACZ,UAAW,CACb,EACD,AACH,EA4EA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QA9Ea,CACf,QACA,OACA,MACA,SACA,MACA,QACA,MACA,UACA,WACA,MACA,SACA,QACA,SACA,SACA,YACA,KACA,WACA,UACA,OACA,KACA,OACA,MACA,SACA,UACA,MACA,MACA,MACA,eACA,QACA,WACA,aACA,KACA,SACA,UACA,UACA,OACA,QACA,OACA,SACA,YACA,OACA,UACA,OACA,KACA,YACA,OACA,OACA,KACA,YACA,WACA,YACA,KACA,QACA,MACA,UACA,QACA,QACA,UACA,SACA,OACA,QACA,OACA,MACA,QACA,SACA,UACA,OACA,KACA,MACA,UACA,MACD,CAOG,QAAS,CACP,OACA,QACD,AACH,EACA,SAAU,CACR,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EAEA,CAEE,UAAW,SACX,MAAO,KACT,EACA,CAEE,UAAW,SACX,MAvJY,OAFO,EAAA,oBAAqF,EAE5F,MANS,CAAA,EAAa,OAAS,CAAA,EAAtB,MAAgD,EAMzD,MAwJZ,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,IAAM,CACf,EACA,CAEE,UAAW,QACX,MAAO,8DACP,IAAK,SACL,SAAU,eACV,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,CACX,EACA,CAGE,MAAO,yDACP,IAAK,sCACL,SAAU,uDAGV,YAAa,CAAA,EACb,SACQ,CACE,EACA,CAEE,UAAW,QACX,MAAO,4CACP,IAAK,eACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,CACX,EAGA,EACA,CAEE,UAAW,OACX,MAAO,gBACP,IAAK,aACL,SAAU,SACV,aAAc,CAAA,EACd,WAAY,CAAA,EAEZ,WAAY,CAAA,EACZ,QAAS,CAEX,EACD,AACX,EACA,CAGE,UAAW,OACX,MAAO,oBACP,IAAK,OACL,SAAU,OACV,aAAc,CAAA,EACd,QAAS,CACX,EAGA,EAOD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECrFA,EAAO,OAAO,CAzKd,SAAqB,CAAI,EACvB,IAAM,EAAkB,CACtB,UAAW,WACX,MAAO,yHACT,EAEM,EAAmB,CACvB,UAAW,SACX,MAAO,gBACT,EAEM,EAAc,CAClB,UAAW,UACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EACA,EACD,AACH,SAEA,EAAgB,QAAQ,CAAG,CAAE,EAAa,CAC1C,EAAiB,QAAQ,CAAG,CAAE,EAAa,CAmDpC,CACL,KAAM,cACN,QAAS,CAAE,MAAO,CAElB,SArDe,CACf,MACA,OACA,QACA,WACA,QACA,OACA,SACA,KACA,OACA,OACA,SACA,YACA,KACA,OACA,KACA,MACA,MACA,MACA,QACA,KACA,WACA,MACA,WACA,QACA,UACA,SACA,QACA,YACA,QACA,SACA,WACA,WACA,OACA,UACA,UACA,OACA,QACA,SACA,OACA,YACA,aACA,MACA,QACA,YACA,WACA,WACD,CASC,QAAS,uDAET,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,UAAW,CACb,EAGA,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EAEA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,UAAW,CACb,EAEA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAEzB,CACE,UAAW,SACX,MAAO,WACP,IAAK,KACP,EAEA,CACE,cAAe,sBACf,IAAK,KACL,QAAS,UACT,SAAU,CACR,CACE,UAAW,SACX,MAAO,eACT,EACD,AACH,EAEA,CACE,cAAe,QACf,IAAK,KACL,QAAS,UACT,SAAU,CACR,CACE,UAAW,SACX,MAAO,gBACP,SAAU,CACR,CACE,MAAO,WACP,SAAU,CACR,CACE,UAAW,SACX,MAAO,eACT,EACD,AACH,EACD,AACH,EACD,AACH,EAEA,EACA,EAEA,CACE,UAAW,UACX,MAAO,sBACT,EAEA,CACE,UAAW,SACX,UAAW,EACX,MAAO,oFACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3EA,EAAO,OAAO,CAzFd,SAAgB,CAAI,EASlB,IAAM,EAAa,CACjB,UAAW,SACX,MAAO,+CACT,EAKA,MAAO,CACL,KAAM,gBACN,QAAS,CAAE,aAAc,CACzB,iBAAkB,CAAA,EAClB,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,UAAW,UACX,MAAO,OACP,IAAK,IACL,SAAU,CACR,EAfY,CAClB,UAAW,SACX,MAAO,UACT,EAgBQ,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,CAAE,GACrD,AACH,EACA,CACE,UAAW,YACX,MAAO,MACP,UAAW,EAGX,SAAU,CAAE,EAAG,CACb,QACA,OACA,QACA,SACA,cACA,gBACA,cACA,eACA,aACA,gBACA,aACA,UACA,SACA,SACA,aACA,aACD,AAAC,EACF,OAAQ,CACN,IAAK,IACL,UAAW,EACX,SAAU,CAAE,QAAS,uBAAwB,EAC7C,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,IAAK,KACP,EACA,CACE,UAAW,WACX,MAAO,UACP,IAAK,KACL,SAAU,CACR,OAzEK,CACjB,UAAW,SACX,MAAO,SACT,EAwEa,AACH,EACA,EAzEK,CACb,UAAW,SACX,MAAO,OACT,EAwEU,EAAK,iBAAiB,CACvB,AACH,CACF,EACD,CACD,QAAS,IACX,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC5FA,IAAA,EAAA,EAAA,sCA8IA,CAAA,EAAO,OAAO,CA3Id,SAAqB,CAAI,EACvB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAS,EAAK,OAAO,CACzB,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GACpC,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACR,OACA,EAAK,aAAa,CAClB,EACD,AACH,EACM,EAAiB,EAAK,OAAO,CAAC,KAAM,KACpC,EAAiB,EAAK,OAAO,CACjC,OACA,OACA,CAAE,SAAU,CACV,OACA,EACD,AAAC,GAEE,EAAW,CACf,EACA,EACA,EAAK,iBAAiB,CACvB,CA4CD,MAAO,CACL,KAAM,cACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,QACE,0iBAUF,QACE,mEACF,SACE,sUAOJ,EACA,SAAU,CACR,EACA,EAAK,aAAa,CAClB,CACE,UAAW,WACX,MAAO,EAAM,MAAM,CACjB,KACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1DK,CACxB,iBACA,gBACA,WACA,sBACA,eACA,UACA,0BACA,gBACA,eACA,kBACA,sBACA,gBACA,aACA,mBACA,cACA,cACA,0BACA,uBACA,2BACA,mBACA,oFACA,yBACD,GAoCO,KAEJ,EACA,CACE,UAAW,WACX,MAAO,cACT,EACA,CACE,UAAW,UACX,MACE,8DACJ,EACA,CACE,UAAW,UACX,MAAO,EAAM,MAAM,CACjB,KACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA5FI,CACvB,aACA,aACA,aACA,SACA,eACA,kEACA,kCACA,8BACA,eACA,uBACA,oBACA,oBACA,qBACA,cACD,GA8EO,KAEJ,EACA,CACE,cAAe,KACf,QAAS,WACT,SAAU,CACR,EAAK,qBAAqB,CAC1B,EACD,AACH,EAED,CArCS,MAAA,CAoCR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAEL,QAAS,iBACX,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5IA,IAAA,EAAA,EAAA,sCA0ZA,CAAA,EAAO,OAAO,CAvZd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,yBACX,EAAW,CACf,QAAS,CACP,QACA,OACA,QACA,WACA,WACA,KACA,OACA,SACA,MACA,WACA,KACA,SACA,KACA,MACA,SACA,SACA,MACA,MACA,OACA,QACD,CACD,QAAS,CACP,YACA,cACA,eACA,WACA,MACA,UACA,KACA,cACA,MACA,iBACA,QACA,OACA,OACA,YACD,CACD,SAAU,CACR,MACA,OACA,MACA,QACA,MACA,OACA,eACA,QACA,OACA,OACA,QACA,cACA,UACA,OACA,UACA,UACA,SACA,iBACA,OACA,WACA,iBACA,OACA,cACA,UACA,YACA,WACA,mBACA,aACA,MACA,QACA,UACA,MACA,SACA,UACA,WACA,WACA,MACA,SACA,eACA,UACA,kBACA,aACA,aACA,WACA,WACA,mBACA,WACA,SACA,aACA,aACA,qBACA,SACA,QACA,MACA,UACA,SACA,UACA,aACA,0BACA,iBACA,mBACA,yBACA,gCACA,+BACA,SACA,OACA,UACA,QACA,eACA,gBACA,WACA,QACA,aACA,aACA,WACA,iBACA,gBACA,oBACA,UACA,UACA,OACA,SACA,WACA,OACA,OACA,MACA,WACA,UACA,aACA,UACA,WACA,UACA,SACA,eACA,aACA,UACA,QACA,qBACA,WACA,SACA,SACA,WACA,iBACA,MACA,QACA,MACA,MACA,OACA,MACA,cACA,MACA,SACA,QACA,wBACA,aACA,oBACA,gBACA,oBACA,OACA,MACA,SACA,SACA,UACA,WACA,QACA,UACA,WACA,MACA,SACA,MACA,SACA,OACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,kBACA,SACA,QACA,SACA,SACA,cACA,WACA,MACA,QACA,OACA,SACA,QACA,OACA,kBACA,QACA,cACA,cACA,WACA,MACA,sBACA,MACA,OACA,OACA,WACA,iBACA,YACA,aACA,cACA,QACA,UACA,QACA,QACA,QACA,UACA,sBACA,0BACA,2BACA,uBACA,oBACA,mBACA,kBACA,sBACA,gBACA,mBACA,sBACA,aACA,eACA,mBACA,iBACA,cACA,OACA,SACA,QACA,QACA,YACA,WACA,OACA,UACA,SACA,SACA,SACD,AACH,EAiCM,EAAS,CACb,UAAW,SACX,MAAO,MAAQ,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAlCT,CACnB,qBACA,WACA,SACA,YACA,YACA,cACA,UACA,aACA,cACA,eACA,wBACA,OACA,QACA,iBACA,MACA,UACA,UACA,kBACA,SACA,YACA,WACA,kBACA,gBACA,cACA,SACA,kBACA,gBACA,cACA,QACA,OACD,EAID,EACM,EAAS,CACb,UAAW,SACX,SAAU,CACR,CAAE,MAAO,iBAAkB,EAC3B,CAAE,MAAO,kBAAmB,EAC5B,CAAE,MAAO,EAAK,WAAW,AAAC,EAC3B,CACD,UAAW,CACb,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,SACP,IAAK,MACL,SAAU,EACV,SAAU,EAAE,AACd,EACM,EAAkB,CACtB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,CACA,CAAA,EAAM,QAAQ,CAAG,CACf,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EACA,EAAK,WAAW,CACjB,CACD,IAAM,EAAkB,EAAM,QAAQ,CAAC,MAAM,CAAC,CAC5C,EAAK,oBAAoB,CACzB,EAAK,mBAAmB,CACzB,EAED,MAAO,CACL,KAAM,gBACN,iBAAkB,CAAA,EAClB,SAAU,EACV,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EACA,EACA,CACE,MAAO,UACP,UAAW,EACX,SAAU,CACR,CACE,MAAO,EAAW,QAClB,YAAa,CAAA,EACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACA,CACE,MAAO,IAAM,EAAK,cAAc,CAAG,uBACnC,SAAU,SACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,WAAW,CAChB,CACE,UAAW,WACX,MAAO,cAAgB,EAAW,UAClC,YAAa,CAAA,EACb,IAAK,SACL,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,CAAS,EAClB,CAAE,MAAO,SAAU,EACnB,CACE,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,EACV,SAAU,CACZ,EACD,AACH,EACD,AACH,EACD,CACD,UAAW,CACb,EACA,CACE,cAAe,WACf,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,UAAW,iBACX,MAAO,CACT,GACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACZ,EACD,CACD,QAAS,MACX,EACA,CAAE,MAAO,QAAS,EACnB,CACD,QAAS,QACX,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC1ZA,IAAA,EAAA,EAAA,sCAy+BA,CAAA,EAAO,OAAO,CAzYd,SAAiB,CAAI,EAgXnB,IA58BM,EAIA,EACA,EACA,EAEA,EAMA,EAQA,EAqBA,EA6CA,EAsBA,EAMA,EA6RA,EAQA,EAiBA,EAUA,EA+BA,EAyfA,GA58BA,EAAQ,AA48BY,EA58BP,KAAK,CAIlB,EAAsB,AAw8BF,EAx8BO,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAEhF,EAAe,kBAEf,EAAmB,eAHnB,EAAmB,sBAIF,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAEI,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACT,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,AA+6BQ,EA/6BH,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,AAw6BsB,EAx6BjB,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBF,EAEA,CAAE,MACA,6JAcF,EACD,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACwC,EAC5C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,AAw2BsB,EAx2BjB,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,AAk2BsB,EAl2BjB,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,AA41Bd,EA51BmB,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,AAw1B5B,EAx1BiC,QAAQ,CAAG,UAgUhE,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,QAAA,CArDI,EAAe,CACnB,KAhMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,SACD,CAgLC,QA5RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,SACD,CAqMC,QAde,CACf,OACA,QACA,UACA,UACA,OACD,CASC,SANe,CAAE,UAAW,CAO5B,YAjLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,eACD,AA0HD,EAgDE,SAAU,CA7BN,EAAsB,CAjBtB,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MA/HmB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,WACD,AA0ByB,EACxB,MAAO,EAAM,MAAM,CACjB,KACA,eACA,SACA,UACA,aACA,YACA,AAsiBsB,EAtiBjB,QAAQ,CACb,EAAM,SAAS,CAAC,oBACpB,EAIE,EACA,EACA,EACA,AA6hBwB,EA7hBnB,oBAAoB,CACzB,EACA,EACD,EAqB+B,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAY,CACxB,UAAW,CACb,EAGA,CACE,MAAO,KACP,UAAW,CACb,EAEA,CACE,MAAO,IACP,eAAgB,CAAA,EAChB,SAAU,CACR,EACA,EACD,AACH,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,AAwckB,EAxcb,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,AA2bc,EA3bT,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,AAibsB,EAjbjB,oBAAoB,CACzB,EACD,AACH,EAEO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,MACD,CACD,SAAU,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAW,EACpD,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAU,EACV,SAAU,CACR,OACA,EACD,AACH,EACA,CACE,MAAO,AA6YW,EA7YN,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,MAAO,CAEL,wDACA,MACA,MACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACD,CACL,GA+XM,EAAyC,EAAQ,QAAQ,CAoB/D,OAlBA,EAAI,IAAI,CAAG,AACT,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,IAAI,EAAA,MAAA,CACX,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EApXM,CACJ,UACA,OACA,OACA,SACD,GAiXH,EAAI,OAAO,CAAG,AACZ,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,OAAO,EAAA,MAAA,CACd,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAjCS,CACP,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,WACA,WACA,UACA,SACA,QACA,OACA,MACD,GAeH,EAAI,QAAQ,CAAG,AACb,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAI,QAAQ,EAAA,MAAA,CACf,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtXU,CACR,qBACA,kBACA,iBACA,iBACA,iBACA,gBACA,eACA,eACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,KACD,GAgUH,EAAI,MAAM,CA/TA,CACN,QACA,OACA,gCACA,wBACA,wBACA,uBACA,uBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,iBACA,iBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACD,CA0CH,EAAQ,IAAI,CAAG,UACf,EAAQ,OAAO,CAAG,CAAE,MAAO,CAC3B,EAAQ,UAAU,CAAG,MAEd,CACT,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECh3BA,EAAO,OAAO,CAnHd,SAAgB,CAAI,EAGlB,IAAM,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,gBAAiB,IAAK,CACjC,UAAW,EACX,aAAc,CAAA,CAChB,GACA,EAAK,OAAO,CAAC,OAAQ,IAAK,CAAE,UAAW,CAAE,GACzC,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AAAC,EAEF,MAAO,CACL,KAAM,eACN,iBAAkB,CAAA,EAClB,QAAS,CAAE,MAAO,CAClB,SAAU,CACR,SAAU,OAAS,EAAK,QAAQ,CAChC,KAEE,6tBAGF,SACE,6jCAsBJ,EACA,SAAU,CACR,CACE,UAAW,UACX,MAAO,4tBAkBT,EACA,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,UAAW,CACb,EACA,CACE,UAAW,QACX,MAAO,MACP,IAAK,MACL,QAAS,MACT,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,mBAAoB,EAC7B,CACE,MAAO,eAAgB,EACzB,CACE,MAAO,WAAY,EACrB,CACE,MAAO,SAAU,EACpB,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,uCAAwC,EACjD,CACE,MAAO,+BAAgC,EACzC,CACE,MAAO,UAAW,EACrB,CACD,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuHA,EAAO,OAAO,CAxOd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAQlB,EAAc,EAAM,MAAM,CAAC,OAAA,YAAA,KAAa,EAAM,QAAQ,CAAC,OAAA,mBAAA,MAAqB,OAAlF,kBAAA,MACM,EAAe,OAArB,mBAAA,KACM,EAAe,CACnB,UAAW,SACX,MAAO,kCACT,EACM,EAAoB,CACxB,MAAO,KACP,SAAU,CACR,CACE,UAAW,UACX,MAAO,sBACP,QAAS,IACX,EACD,AACH,EACM,EAAwB,EAAK,OAAO,CAAC,EAAmB,CAC5D,MAAO,KACP,IAAK,IACP,GACM,EAAwB,EAAK,OAAO,CAAC,EAAK,gBAAgB,CAAE,CAAE,UAAW,QAAS,GAClF,EAAyB,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,QAAS,GACpF,EAAgB,CACpB,eAAgB,CAAA,EAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAc,AAC5B,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAc,AAC5B,EACA,CAAE,MAAO,cAAe,EACzB,AACH,EACD,AACH,EACD,AACH,EACA,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,MACD,CACD,iBAAkB,CAAA,EAClB,aAAc,CAAA,EACd,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACR,EACA,EACA,EACA,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,EACD,AACH,EACD,AACH,EACA,EAAK,OAAO,CACV,OACA,MACA,CAAE,UAAW,EAAG,GAElB,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACb,EACA,EAEA,CACE,UAAW,OACX,IAAK,MACL,SAAU,CACR,CACE,MAAO,SACP,UAAW,GACX,SAAU,CACR,EACD,AACH,EACA,CACE,MAAO,mBACT,EACD,AAEH,EACA,CACE,UAAW,MAMX,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,KAAM,OAAQ,EAC1B,SAAU,CAAE,EAAe,CAC3B,OAAQ,CACN,IAAK,YACL,UAAW,CAAA,EACX,YAAa,CACX,MACA,MACD,AACH,CACF,EACA,CACE,UAAW,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CP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,MACP,IAAK,UACL,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACD,CACD,UAAW,EACb,EACD,CACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5BA,EAAO,OAAO,CA5Nd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,CACf,QACA,eACA,MACA,WACA,QACA,UACA,OACA,UACA,SACA,OACA,KACA,QACA,MACA,OACA,QACA,OACA,QACA,WACA,UACA,YACA,SACA,SACA,QACA,SACA,OACA,OACA,OACA,UACA,aACA,QACA,YACA,MACA,QACA,aACA,OACA,QACA,WACA,OACA,SACA,QACA,UACA,UACA,SACA,SACA,MACA,OACA,SACA,WACA,SACA,aACA,WACA,kBACA,UACA,aACA,QACA,iBACA,oBACA,uBACA,aACA,SACA,SACA,YACA,oBACA,UACA,gBACA,0BACA,mCACA,UACA,UACA,UACA,QACA,OACA,aACA,qBACD,CACK,EAAY,CAChB,MACA,MACA,OACA,OACD,CAED,MAAO,CACL,KAAM,UACN,SAAU,EACV,QAAS,QACT,SAAU,CACR,EAAK,OAAO,CACV,SACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAEF,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,QACX,cAAe,SACf,IAAK,QACL,WAAY,CAAA,EACZ,QAAS,YACT,SAAU,CACR,CAAE,cAAe,uFAAwF,EACzG,EAAK,qBAAqB,CAC1B,CACE,MAAO,WACP,IAAK,OACL,SAAU,EAAS,MAAM,CAAC,GAC1B,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,QACX,cAAe,kBACf,IAAK,QACL,WAAY,CAAA,EACZ,UAAW,EACX,S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A7FiB,CACnB,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAjEK,CACjB,YACA,WACA,WACA,aACA,UACA,eACA,aACA,wBACA,SACA,SACA,eACA,WACA,UACA,kBACD,AAkDiC,EAChC,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,CACE,cAAe,UACf,SAAU,CAAE,QAAS,SAAU,EAC/B,IAAK,IACL,SAAU,CACR,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACD,AACH,EACA,EACA,EACD,AACH,EAEiB,CACf,UAAW,SAKX,MAAO,aACT,EAqCI,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EClGA,EAAO,OAAO,CArEd,SAAgB,CAAI,EAClB,MAAO,CACL,KAAM,eACN,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,OAAS,EAAK,QAAQ,CAChC,QAEE,mgBAOF,SAEE,6xBAWF,KACE,oHAEJ,EACA,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EAAK,aAAa,CAClB,EAAK,kBAAkB,CACvB,CACE,UAAW,SACX,MAAO,+BACT,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,QAAS,aACX,EACA,CACE,UAAW,SACX,MAAO,mBACT,EACA,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACA,CACE,UAAW,QACX,MAAO,SACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECRA,EAAO,OAAO,CA1Dd,SAAa,CAAI,EA6Cf,MAAO,CACL,KAAM,MACN,SAAU,CAAE,QAvCG,6FAuCe,EAC9B,SAAU,CA/CK,CACf,UAAW,WACX,SAAU,CACR,CAAE,MAAO,oBAAqB,EAC9B,CAAE,MAAO,aAAc,EACxB,AACH,EAEe,CACb,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACb,EACA,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACb,EACA,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,UACP,IAAK,GACP,EACA,CACE,MAAO,UACP,IAAK,GACP,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EAOI,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC0HA,EAAO,OAAO,CAlLd,SAAgB,CAAI,EAClB,IAAM,EAAW,EAAK,mBAAmB,CAmInC,EAAW,CACf,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,QACD,CAIC,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,MACD,CAmHC,QAjHuB,CACvB,UACA,QACA,OACA,OACD,AA6GD,EAsBA,MAAO,CACL,KAAM,MACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EAlCqB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,uBACA,EACA,6BACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,WACA,EACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAkBG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnLA,IAAA,EAAA,EAAA,sCAgZA,CAAA,EAAO,OAAO,CA7Yd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAM,CAAC,EAYb,OAAO,MAAM,CAAC,EAAK,CACjB,UAAW,WACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CAAC,qBAGnB,sBAAsB,EAjBV,CACjB,MAAO,OACP,IAAK,KACL,SAAU,CACR,OACA,CACE,MAAO,KACP,SAAU,CAAE,EAAK,AACnB,EACD,AACH,EASG,AACH,GAEA,IAAM,EAAQ,CACZ,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAU,EAAK,OAAO,CAC1B,EAAK,OAAO,GACZ,CACE,MAAO,CACL,SACA,OACD,CACD,MAAO,CACL,EAAG,SACL,CACF,GAEI,EAAW,CACf,MAAO,iBACP,OAAQ,CAAE,SAAU,CAClB,EAAK,iBAAiB,CAAC,CACrB,MAAO,QACP,IAAK,QACL,UAAW,QACb,GACD,AAAC,CACJ,EACM,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,EAAM,QAAQ,CAAC,IAAI,CAAC,GAYpB,IAAM,EAAa,CACjB,MAAO,UACP,IAAK,OACL,SAAU,CACR,CACE,MAAO,gBACP,UAAW,QACb,EACA,EAAK,WAAW,CAChB,EACD,AACH,EAYM,EAAgB,EAAK,OAAO,CAAC,CACjC,OAAS,IAA4B,MAAA,CAAzB,0CAAyB,KACrC,UAAW,EACb,GACM,EAAW,CACf,UAAW,WACX,MAAO,4BACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,YAAa,GAAI,CACpE,UAAW,CACb,EA4PA,MAAO,CACL,KAAM,OACN,QAAS,CACP,KACA,MACD,CACD,SAAU,CACR,SAAU,wBACV,QAlQa,CACf,KACA,OACA,OACA,OACA,KACA,MACA,QACA,QACA,KACA,KACA,OACA,OACA,OACA,WACA,SACD,CAmPG,QAjPa,CACf,OACA,QACD,CA+OG,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EA1OkB,CACtB,QACA,KACA,WACA,OACA,OACA,OACA,SACA,UACA,OACA,MACA,WACA,SACA,QACA,OACA,QACA,OACA,QACA,QACD,EAuNQ,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtNiB,CACrB,QACA,OACA,UACA,SACA,UACA,UACA,OACA,SACA,OACA,MACA,QACA,SACA,UACA,SACA,OACA,YACA,SACA,OACA,OACA,UACA,SACA,UACD,EA6La,CAIR,MACA,QAGD,CAFC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAjMgB,CACpB,WACA,KACA,UACA,MACA,MACA,QACA,QACA,gBACA,WACA,UACA,eACA,YACA,aACA,YACA,WACA,UACA,aACA,OACA,UACA,SACA,SACA,SACA,UACA,KACA,KACA,QACA,YACA,SACA,QACA,UACA,UACA,OACA,OACA,QACA,MACA,SACA,OACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,OACA,UACA,SACA,aACA,SACA,UACA,WACA,QACA,OACA,SACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,aACA,QACA,OACA,cACA,UACA,SACA,OACD,EA6HK,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA3HiB,CACrB,QACA,QACA,QACA,QACA,KACA,KACA,KACA,MACA,YACA,KACA,KACA,QACA,SACA,QACA,SACA,KACA,WACA,KACA,QACA,QACA,OACA,QACA,WACA,OACA,QACA,SACA,SACA,MACA,QACA,OACA,SACA,MACA,SACA,MACA,OACA,OACA,OACA,SACA,KACA,SACA,KACA,QACA,MACA,KACA,UACA,YACA,YACA,YACA,YACA,OACA,OACA,QACA,MACA,MACA,OACA,KACA,QACA,WACA,OACA,KACA,OACA,WACA,SACA,OACA,UACA,KACA,OACA,MACA,OACA,SAEA,SACA,SACA,KACA,OACA,UACA,OACA,QACA,QACA,UACA,QACA,WACA,SACA,MACA,WACA,SACA,MACA,QACA,OACA,SACA,OACA,MACA,OACA,UAEA,MACA,QACA,SACA,SACA,QACA,MACA,SACA,MACD,EAqBC,EACA,SAAU,CACR,EACA,EAAK,OAAO,GACZ,EACA,EACA,EACA,EA5Pc,CAAE,MAAO,gBAAiB,EA8PxC,EApUkB,CACpB,MAAO,KACT,EACoB,CAClB,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACqB,CACnB,MAAO,KACT,EA8TI,EACD,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC/KA,EAAO,OAAO,CA5Nd,SAAe,CAAI,EAqLjB,MAAO,CACL,KAAM,QACN,iBAAkB,CAAA,EAClB,QAAS,KAET,SAAU,CACR,SAAU,4BACV,QA3La,CACf,MACA,MACA,MACA,MACA,SACA,OACA,WACA,WACA,OACA,QACA,OACA,QACA,QACA,UACA,OACA,SACA,QACA,QACA,MACA,QACA,MACA,SACA,OACA,MACA,OACA,SACA,MACA,MACA,MACA,OACA,QACA,SACA,SACA,SACA,SACA,QACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,UACA,WACA,MACA,MACA,QACA,QACA,SACA,MACA,MACA,QACA,MACA,QACA,QACA,MACA,QACA,MACA,MACA,WACA,OACA,OACA,KACA,OACA,SACA,SACA,MACA,QACA,SACA,SACA,QACA,MACA,MACA,QACA,SACA,MACA,KACA,MACA,OACA,OACA,QACA,MACA,MACA,OACA,QACA,OACA,MACA,SACA,MACA,MACA,SACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,MACA,OACA,KACA,KACA,MACA,OACA,QACA,OACA,SACA,OACA,MACA,QACA,UACA,QACA,OACA,OACA,QACA,OACA,MACA,QACA,SACA,OACA,SACA,MACA,YACA,OACA,MACA,QACA,UACA,UACA,SACA,WACA,SACA,QACA,MACA,OACA,MACA,OACA,SACA,MACA,QACA,MACA,QACA,SACA,MACA,MACA,OACA,QACA,OACA,OACA,UACA,OACA,SACA,MACA,MACA,QACA,QACA,QACA,OACA,KACA,MACA,MACA,SACA,UACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,MACD,AAUC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,MAAO,IAAK,CAAE,UAAW,EAAG,GACzC,EAAK,OAAO,CAAC,IAAM,IAAK,CAAE,UAAW,CAAE,GACvC,CAEE,UAAW,SACX,MAAO,WACP,UAAW,EACb,EACA,CAEE,UAAW,SACX,MAAO,sCACP,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,yBACT,EACA,CAEE,UAAW,SACX,MAAO,mBACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC7LA,EAAO,OAAO,CA9Bd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,mBACN,SAAU,CAER,CACE,UAAW,YACX,MAAO,IACP,IAAK,GACP,EAEA,CACE,MAAO,MACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EAEA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECiBA,EAAO,OAAO,CA9Cd,SAAmB,CAAI,EACrB,IAAM,EAAU,CACd,UAAW,UACX,MAAO,QACP,UAAW,CACb,EACA,MAAO,CACL,KAAM,YACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,EAAK,OAAO,CACV,wBACA,uBACA,CACE,SAAU,CACR,CACE,MAAO,4BACP,UAAW,CACb,EACD,CACD,UAAW,CAAA,EACX,UAAW,CACb,GAEF,CACE,UAAW,QACX,MAAO,WACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,SACP,UAAW,CACb,EACA,CAIE,MAAO,cACP,SAAU,CAAE,EAAS,AACvB,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECwRA,EAAO,OAAO,CApUd,SAAW,CAAI,EACb,IAAM,EAAQ,EAAK,KAAK,CAIlB,EAAsB,EAAK,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAChF,EAAmB,qBACnB,EAAe,kBAEf,EAAmB,IACrB,EAAmB,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAGI,EAAQ,CACZ,UAAW,OACX,SAAU,CACR,CAAE,MAAO,oBAAqB,EAC9B,CAAE,MAAO,uBAAwB,EAClC,AAEH,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,uFAA2F,EACpG,CAAE,MAAO,qFAA2F,EACrG,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,yGACyD,EAC7D,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,EAAK,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CAAG,UAoFhE,EAAW,CACf,QAnFiB,CACjB,MACA,OACA,QACA,OACA,WACA,UACA,KACA,OACA,OACA,SACA,MACA,UACA,OACA,KACA,SACA,WACA,WACA,SACA,SACA,SACA,gBACA,SACA,SACA,UACA,QACA,WACA,QACA,WACA,WACA,UACA,WACA,YACA,iBACA,gBAEA,UACA,UACA,WACA,gBACA,eAEA,UACD,CAyCC,KAvCc,CACd,QACA,SACA,SACA,WACA,MACA,QACA,OACA,OACA,OACA,QACA,UACA,WACA,aACA,aACA,aACA,aACA,cACA,cACA,eACA,WACA,WACA,WACA,YACA,YACA,YACA,aAEA,QACA,SACA,YAEA,UACA,OACA,YACD,CAKC,QAAS,kBAET,SAAU,kzBASZ,EAEM,EAAsB,CAC1B,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACD,CAEK,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,OAAO,CAAC,EAAY,CAAE,UAAW,gBAAiB,GAAI,CACvE,UAAW,CACb,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACD,AACH,EAEA,MAAO,CACL,KAAM,IACN,QAAS,CAAE,IAAK,CAChB,SAAU,EAGV,kBAAmB,CAAA,EACnB,QAAS,KACT,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EAAK,UAAU,CAChB,AACH,EACD,EACH,QAAS,CACP,aAAc,EACd,QAAS,EACT,SAAU,CACZ,CACF,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECnUA,IAAA,EAAA,EAAA,sCAyJA,CAAA,EAAO,OAAO,CAtJd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,CACf,MACA,MACA,KACA,MACA,KACA,MACA,MACA,cACA,QACA,OACA,KACA,SACA,OACA,MACA,OACA,MACA,QACA,KACA,KACA,SACA,OACA,KACA,QACA,QACA,OACA,MACD,CAEK,EAAgB,CACpB,EAAK,mBAAmB,CACxB,EAAK,OAAO,CACV,KACA,KACA,CAAE,UAAW,CAAE,GAEjB,EAAK,OAAO,CACV,OACA,OACA,CAAE,UAAW,EAAG,GAEnB,CACK,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACM,EAAc,CAClB,UAAW,SACX,MAAO,SACT,EAYM,EAAY,CAChB,MAAO,CACL,YACA,MACA,kBACA,MACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,EACA,EACA,EAAK,WAAW,CACjB,AACH,EAED,CAbS,MAAA,CAYR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAEP,EAaM,EAAS,CACb,MAAO,CACL,SACA,MACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAfI,CACnB,QACA,OACA,SACA,WACA,WACA,UACA,YACA,OACA,QACD,GAMG,MACA,MACA,eACA,KACA,IACD,CACD,UAAW,EACX,MAAO,CACL,EAAG,UACH,EAAG,OACH,EAAG,SACH,EAAG,OACL,CACF,EAQA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAAS,EACT,QAxGa,YAyGf,EACA,QAAS,OACT,SAAU,CAdK,CACf,MAAO,cACP,MAAO,YACP,UAAW,CACb,EAYI,EACA,EAtFS,CACX,UAAW,SACX,MAAO,4BACP,UAAW,CACb,EAC4B,CAC1B,UAAW,SACX,MAAO,IACP,IAAK,GACP,EAgFI,EAAK,WAAW,CAChB,EACA,EACD,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,EC3DA,EAAO,OAAO,CAzFd,SAAmB,CAAI,EA4CrB,IAAM,EAAmB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,0BACA,MACA,EAAK,QAAQ,CACd,AAAC,EACF,CAAE,MAAO,CACP,UACA,QACA,EAAK,QAAQ,CACb,QACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EACA,MAAO,CACL,KAAM,cACN,QAAS,CAAE,QAAS,CACpB,SAAU,CACR,QAlEa,CACf,SACA,OACA,YACA,QACA,QACA,SACA,QACA,QACA,aACA,UACA,KACA,KACA,KACA,KACA,OACA,OACA,QACD,CAiDG,KAhDU,CACZ,OACA,OACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,UACA,UACA,OACA,OACA,aACA,YACA,aACA,OACD,CA8BG,QA7Ba,CACf,OACA,QACD,AA2BC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,iBACP,QAAS,IACX,EACA,CACE,UAAW,SACX,MAAO,QACT,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC2CA,EAAO,OAAO,CAnId,SAAgB,CAAI,EAElB,IAAM,EAAW,CACf,WACA,SACA,UACA,SACA,QACA,QACA,YACA,SACA,QACA,QACA,SACA,OACA,WACA,MACA,KACA,UACA,YACA,YACA,KACA,MACA,SACA,QACA,WACA,QACA,SACA,UACA,KACA,OACA,SACA,OACA,MACA,QACA,MACA,QACA,UACA,OACA,MACA,OACA,QACA,QACA,KACA,SACA,WACD,CA2BK,EAAQ,CACZ,UAAW,QACX,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACb,EACM,EAAc,CAClB,CAEE,UAAW,SACX,MAAO,MACP,IAAK,MACL,UAAW,EACb,EACA,CAEE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAO,AACrB,EACA,CAEE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,CAEE,UAAW,SACX,MAAO,gFACP,UAAW,CACb,EACD,CAGD,OAFA,EAAM,QAAQ,CAAG,EAEV,CACL,KAAM,SACN,SAAU,CACR,QAAS,EAAS,MAAM,CAnEE,CAC5B,SACA,WACA,SACA,UACA,SACA,WACA,OACA,SACA,aACA,QACA,SACA,aACA,mBACA,QACD,EAqDG,KAnDkB,CACpB,MACA,KACA,UACA,MACA,SACA,SACD,AA6CC,EACA,QAAS,yBACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,SAAU,CAAE,OAAQ,AAAC,GACpD,CAEE,UAAW,OACX,MAAO,yBACT,EACD,CAAC,MAAM,CAAC,EACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvEA,EAAO,OAAO,CA1Dd,SAAe,CAAI,EAiCjB,MAAO,CACL,KAAM,QACN,QAAS,CACP,MACA,MACD,CACD,SAAU,CACR,QAvCa,CACf,KACA,MACA,KACA,OACA,QACA,OACA,KACA,QACA,WACA,YACA,iBACA,aACA,SACA,SACA,OACA,SACA,YACA,KACA,UACA,OACA,SACA,UACA,SACA,QACA,UACA,UACA,SACA,QACA,SACA,SACD,CASG,SACE,qBACF,QACE,YACJ,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,MAAO,4CAA6C,EACvD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuHA,EAAO,OAAO,CA9Kd,SAAiB,CAAI,EACnB,IAAM,EAAc,uBACd,EAAY,QAAU,EAAc,KAAO,EAAc,aACzD,EAAU,6FAuCV,EAAS,CACb,MAAO,SACP,UAAW,EACX,SAAU,CACR,CAAE,MAAO,0BAA2B,EACpC,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,oCAAqC,EAC9C,CAAE,MAAO,uBAAwB,EACjC,CAAE,MAAO,mEAAoE,EAC7E,CAAE,MAAO,wBAAyB,EACnC,AACH,EACM,EAAY,CAChB,MAAO,YACP,SAAU,CACR,CAAE,MAAO,qBAAsB,EAC/B,CAAE,MAAO,mBAAoB,EAC7B,CAAE,MAAO,iDAAkD,EAC3D,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACM,EAAQ,CACZ,MAAO,QACP,MAAO,KACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAS,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GAC9D,EAAQ,CACZ,MAAO,cACP,MAAO,IACP,UAAW,CACb,EACM,EAAU,EAAK,OAAO,CAC1B,IACA,IACA,CAAE,UAAW,CAAE,GAEX,EAAU,CACd,UAAW,UACX,MAAO,sBACT,EACM,EAAa,CACjB,MAAO,YAAc,EAAY,QACjC,IAAK,WACL,UAAW,CACb,EACM,EAAM,CACV,UAAW,SACX,MAAO,WAAa,CACtB,EACM,EAAO,CACX,MAAO,MACP,IAAK,KACP,EACM,EAAO,CACX,eAAgB,CAAA,EAChB,UAAW,CACb,EAQM,EAAmB,CACvB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAnFa,CACb,MAAO,EACP,UAAW,CACb,EAkFC,CAEK,EAAS,CACb,cAAe,EACf,SAAU,CACR,SAAU,EACV,QAAS,CACX,EACA,IAAK,gCACL,SAAU,CACR,CACE,UAAW,QACX,MAAO,EACP,UAAW,EACX,WAAY,CAAA,EAEZ,WAAY,CAAA,CACd,EACD,CAAC,MAAM,CAAC,EACX,EAUA,OARA,EAAK,QAAQ,CAAG,CACd,EAzCW,CACX,SArGe,CACf,SAAU,EACV,SAEE,EAAA,2+EA4BJ,EAsEE,UAAW,OACX,MAAO,EACP,UAAW,EACX,OAAQ,CACV,EAqCE,EACD,CACD,EAAK,QAAQ,CAAG,EAChB,EAAW,QAAQ,CAAG,EAEf,CACL,KAAM,UACN,QAAS,CACP,MACA,MACD,CACD,QAAS,KACT,SAAU,CACR,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3JA,EAAO,OAAO,CAhBd,SAAqB,CAAI,EACvB,MAAO,CACL,KAAM,eACN,SAAU,CACR,CACE,UAAW,cACX,MAAO,sBACP,OAAQ,CACN,IAAK,IACL,YAAa,SACf,CACF,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECuCA,EAAO,OAAO,CAtDd,SAAe,CAAI,EACjB,MAAO,CACL,KAAM,QACN,QAAS,CAAE,WAAY,CACvB,iBAAkB,CAAA,EAClB,SAAU,CAAE,QAER,soEAgC2F,EAC/F,SAAU,CACR,CACE,UAAW,WACX,MAAO,OACP,IAAK,IACP,EACA,EAAK,OAAO,CAAC,QAAS,MACtB,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC7DM,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAwFK,EAAY,EAAE,CAAC,MAAM,CAtBF,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAnFa,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEmB,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CA2PD,CAAA,EAAO,OAAO,CAlNd,SAAsB,CAAI,EAiCxB,IAFmB,EAEb,EAAa,CACjB,QAAS,EAAS,MAAM,CAvBF,CACtB,OACA,SACA,QACA,OACA,KACA,OACA,MACA,KACA,KACA,OACA,MACD,EAW2C,MAAM,EAH/B,EAPQ,CACzB,MACA,QACA,MACA,WACA,SACD,CAEC,SAAC,CAAD,EAAQ,MAAA,CAAC,EAAK,QAAQ,CAAC,E,IAGvB,QAAS,EAAS,MAAM,CA9BF,CACtB,MACA,KACA,KACA,MACD,EA0BC,SAAU,EAAU,MAAM,CAnCH,CACvB,MACA,QACD,CAiCD,EACM,EAAc,2BACd,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,kBAAkB,CACvB,EAAK,OAAO,CAAC,EAAK,aAAa,CAAE,CAAE,OAAQ,CACzC,IAAK,WACL,UAAW,CACb,CAAE,GACF,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EACA,EAAK,iBAAiB,CACvB,AACH,EACA,CACE,MAAO,sBACP,UAAW,CACb,EACA,CAGE,MAAO,0CAA2C,EACrD,AACH,EACA,CAAE,MAAO,IAAM,CACf,EACA,CACE,YAAa,aACb,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAqB,0BACrB,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,CAAA,EAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAAE,OAAQ,CAAC,MAAM,CAAC,EAC9B,EACD,AACH,EAsBA,MAAO,CACL,KAAM,eACN,QAAS,CACP,SACA,OACA,OACD,CACD,SAAU,EACV,QAAS,OACT,SACE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADK,CAER,EAAK,OAAO,CAAC,MAAO,OACpB,EAAK,iBAAiB,CACtB,CACE,UAAW,WACX,MAAO,QAAU,EAAc,YAAc,EAC7C,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACD,AACH,EACA,CAEE,MAAO,aACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO,EACP,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EAxDqB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,WACA,EACA,gBACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,WACA,EACD,AAAC,EACH,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAwCI,CACE,MAAO,EAAc,IACrB,IAAK,IACL,YAAa,CAAA,EACb,UAAW,CAAA,EACX,UAAW,CACb,EACD,CACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECiFA,EAAO,OAAO,CApbd,SAAa,CAAI,EA8Zf,MAAO,CACL,KAAM,MACN,SAAU,CACR,QAhaa,CACf,MACA,KACA,KACA,QACA,OACA,MACA,SACA,UACA,MACA,MACA,SACA,MACA,KACA,KACA,KACA,MACA,QACA,MACA,OACA,SACA,MACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,MACA,QACA,WACA,MACA,YACA,cACA,QACA,OACA,SACA,YACA,OACA,YACA,YACA,KACA,QACA,QACA,UACA,QACA,WACA,YACA,aACA,cACA,aACA,WACA,UACA,aACA,cACA,WACA,SACA,aACA,eACA,UACA,YACA,eACA,MACA,UACA,UACA,aACA,UACA,eACA,YACA,SACA,OACA,QACA,MACA,WACA,OACA,UACA,cACA,eACA,WACA,SACA,YACA,SACA,UACA,aACA,OACA,QACA,SACA,OACA,WACA,QACA,MACA,OACA,WACA,aACA,gBACA,SACA,OACA,OACA,UACA,QACA,UACA,OACA,OACA,SACA,QACA,aACA,aACA,QACA,WACA,KACA,YACA,WACA,SACA,UACA,YACA,QACA,OACA,UACA,SACA,UACA,WACA,YACA,QACA,SACA,YACA,kBACA,WACA,OACA,QACA,MACA,YACA,UACA,OACA,WACA,QACA,SACA,OACA,KACA,OACA,SACA,UACA,cACA,WACA,OACA,WACA,WACA,aACA,cACA,SACA,OACA,WACA,UACA,YACA,aACA,aACA,OACA,QACA,UACA,cACA,UACA,QACA,WACA,UACA,cACA,QACA,cACA,MACA,MACA,OACA,MACA,SACA,YACA,WACA,WACA,SACA,SACA,UACA,WACA,QACA,UACA,UACA,UACA,QACA,OACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,cACA,aACA,gBACA,gBACA,UACA,WACA,MACA,SACA,OACA,QACA,SACA,OACA,aACA,WACA,YACA,WACA,QACA,SACA,SACA,OACA,OACA,UACA,OACA,UACA,cACA,OACA,cACA,QACA,YACA,OACA,UACA,YACA,SACA,WACA,YACA,QACA,WACA,QACA,WACA,YACA,UACA,UACA,aACA,QACA,OACD,CAoLG,SAnLc,CAChB,WACA,SACA,QACA,QACA,QACA,KACA,SACA,aACA,KACA,OACA,cACA,aACA,SACA,SACA,SACA,KACA,OACA,UACA,MACA,MACA,SACA,iBACA,kBACA,QACA,YACA,QACA,UACA,UACA,aACA,YACA,cACA,aACA,gBACA,MACA,aACA,QACA,SACA,YACA,YACA,WACA,cACA,aACA,eACA,SACA,KACA,SACA,SACA,SACA,cACA,QACA,QACA,eACA,YACA,gBACA,QACA,SACA,UACA,aACA,aACA,QACA,OACA,WACA,SACA,WACA,WACA,SACA,eACA,SACA,OACA,QACA,eACA,UACA,SACA,UACA,OACA,QACA,iBACA,oBACA,QACA,aACA,MACA,OACA,UACA,aACA,aACA,eACA,QACA,UACA,WACA,MACA,QACA,KACA,YACA,YACA,cACA,QACA,gBACA,SACA,YACA,YACA,kBACA,UACA,SACA,SACA,OACA,OACA,MACA,MACA,OACA,iBACA,MACA,QACA,QACA,OACA,UACA,OACA,WACA,QACA,QACA,QACA,SACA,MACA,SACA,cACA,WACA,SACA,SACA,UACA,SACA,WACA,UACA,gBACA,QACA,OACA,gBACA,SACA,MACA,qBACA,iBACA,iBACA,kBACA,sBACA,SACA,mBACA,QACA,SACA,cACA,QACA,aACA,QACA,aACA,cACA,QACA,QACA,QACA,MACA,OACA,WACA,SACA,QACA,OACA,UACA,MACA,eACA,UACA,MACA,QACA,SACA,QACA,QACA,QACA,aACA,OACD,AAMC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,SAAU,UACvB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,aAAc,CAAA,EACd,MAAO,UACP,IAAK,MACP,EACA,CACE,MAAO,OAAQ,EAClB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC/SA,EAAO,OAAO,CAnId,SAAa,CAAI,EAqEf,MAAO,CACL,KAAM,sBACN,iBAAkB,CAAA,EAClB,QAAS,CAAE,MAAO,CAClB,SAjDA,gbAkDA,SAAU,CAzDI,CACd,UAAW,SACX,MAAO,8BACP,UAAW,CACb,EApBgB,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA8DI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,UACX,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,CACE,UAAW,WACX,MAAO,4BACT,EACA,CACE,UAAW,WACX,MAAO,iBACT,EACA,CACE,UAAW,WACX,MAAO,sBACT,EACA,CACE,UAAW,SACX,MAAO,mBACT,EACA,CACE,UAAW,UACX,MAAO,8BACT,EAGA,CACE,MAAO,SACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,KACf,EACA,CACE,MAAO,4BACP,IAAK,IACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,YACf,EACA,CAEE,MAAO,aACP,IAAK,QACL,YAAa,KACf,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECidA,EAAO,OAAO,CAnlBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAIlB,EAAsB,EAAK,OAAO,CAAC,KAAM,IAAK,CAAE,SAAU,CAAE,CAAE,MAAO,MAAO,EAAG,AAAC,GAChF,EAAmB,qBACnB,EAAe,kBAEf,EAAmB,cACrB,EAAmB,IACnB,EAAM,QAAQ,CAAC,GACf,gBAAkB,EAAM,QAAQ,CAJP,YAK3B,IAEI,EAAsB,CAC1B,UAAW,OACX,MAAO,oBACT,EAKM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,sEACP,IAAK,IACL,QAAS,GACX,EACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,mCACP,IAAK,qBACP,GACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CAER,CAAE,MACA,8UAkBF,EAEA,CAAE,MACA,6JAcF,EACD,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,QACR,wFACwC,EAC5C,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,UAAW,SACX,MAAO,OACT,EACA,EACA,EAAK,oBAAoB,CAC1B,AACH,EAEM,EAAa,CACjB,UAAW,QACX,MAAO,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CACnD,UAAW,CACb,EAEM,EAAiB,EAAM,QAAQ,CAAC,GAAgB,EAAK,QAAQ,CAAG,UA6RhE,EAAe,CACnB,KAhMqB,CACrB,OACA,OACA,WACA,WACA,UACA,SACA,QACA,MACA,OACA,QACA,OACA,UACA,WACA,SACA,QACA,SACD,CAgLC,QA5RwB,CACxB,UACA,UACA,MACA,SACA,MACA,gBACA,gBACA,kBACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,WACA,YACA,WACA,QACA,UACA,gBACA,YACA,YACA,YACA,WACA,WACA,UACA,SACA,KACA,kBACA,OACA,OACA,WACA,SACA,SACA,QACA,QACA,MACA,SACA,OACA,KACA,SACA,SACA,SACA,UACA,YACA,MACA,WACA,MACA,SACA,UACA,WACA,KACA,QACA,WACA,UACA,YACA,SACA,WACA,WACA,sBACA,WACA,SACA,SACA,gBACA,iBACA,SACA,SACA,eACA,WACA,OACA,eACA,QACA,mBACA,2BACA,OACA,MACA,UACA,SACA,WACA,QACA,QACA,UACA,WACA,QACA,MACA,SACD,CAqMC,QAde,CACf,OACA,QACA,UACA,UACA,OACD,CASC,SANe,CAAE,UAAW,CAO5B,YAjLiB,CACjB,MACA,WACA,UACA,mBACA,SACA,UACA,qBACA,yBACA,qBACA,QACA,aACA,SACA,YACA,mBACA,gBACA,UACA,QACA,aACA,WACA,WACA,QACA,WACA,gBACA,gBACA,OACA,UACA,iBACA,QACA,kBACA,wBACA,cACA,MACA,gBACA,cACA,eACA,qBACA,aACA,QACA,cACA,eACA,cACA,SACA,YACA,QACA,cACA,aACA,gBACA,qBACA,qBACA,gBACA,UACA,SACA,WACA,UACA,eACD,AA0HD,EAEM,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAU,CAER,MA/HmB,CACrB,QACA,MACA,OACA,QACA,WACA,OACA,OACA,QACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,UACA,OACA,WACA,OACA,MACA,OACA,QACA,OACA,UACA,UACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,OACA,UACA,QACA,MACA,QACA,YACA,cACA,4BACA,aACA,cACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,MACA,SACA,UACA,OACA,UACA,QACA,MACA,OACA,WACA,UACA,OACA,SACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,OACA,YACA,gBACA,UACA,UACA,WACA,QACA,UACA,WACD,AA0ByB,EACxB,MAAO,EAAM,MAAM,CACjB,KACA,eACA,SACA,UACA,aACA,YACA,EAAK,QAAQ,CACb,EAAM,SAAS,CAAC,oBACpB,EAEM,EAAsB,CAC1B,EACA,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACD,CAEK,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,cAAe,wBACf,IAAK,GACP,EACD,CACD,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,EAAoB,MAAM,CAAC,CAAE,OAAQ,EAC/C,UAAW,CACb,EACD,EACD,UAAW,CACb,EAEM,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAM,EAAmB,eAAiB,EACjD,YAAa,CAAA,EACb,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAO,EACP,SAAU,EACV,UAAW,CACb,EACA,CACE,MAAO,EACP,YAAa,CAAA,EACb,SAAU,CAAE,EAAY,CACxB,UAAW,CACb,EAGA,CACE,MAAO,KACP,UAAW,CACb,EAEA,CACE,MAAO,IACP,eAAgB,CAAA,EAChB,SAAU,CACR,EACA,EACD,AACH,EAGA,CACE,UAAW,EACX,MAAO,GACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,OACA,EACA,EAAK,oBAAoB,CACzB,EACA,EACA,EACD,AACH,EACD,AACH,EACA,EACA,EACA,EAAK,oBAAoB,CACzB,EACD,AACH,EAEA,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,MACD,CACD,SAAU,EACV,QAAS,KACT,iBAAkB,CAAE,oBAAqB,UAAW,EACpD,SAAU,EAAE,CAAC,MAAM,CACjB,EACA,EACA,EACA,EACA,CACE,EACA,CACE,MAAO,4MACP,IAAK,IACL,SAAU,EACV,SAAU,CACR,OACA,EACD,AACH,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACZ,EACA,CACE,MAAO,CAEL,wDACA,MACA,MACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACD,CACL,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECrfA,EAAO,OAAO,CA1Fd,SAAe,CAAI,EAEjB,IAAM,EAAW,qHAWjB,MAAO,CACL,KAAM,QACN,QAAS,CACP,MACA,OACD,CACD,iBAAkB,CAAA,EAClB,SAAU,CACR,QAAS,6MACT,QAXa,2EAYf,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,cAAe,OACf,OAAQ,CACN,IAAK,mBACL,OAAQ,CACN,UAAW,QACX,IAAK,uBACP,CACF,CACF,EACA,CACE,cApCY,yBAqCZ,OAAQ,CACN,UAAW,QACX,IAAK,wBACL,OAAQ,CAAE,IAAK,0BAA2B,CAC5C,CACF,EACA,CACE,MAAO,OAAS,EAAS,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,QAChD,SAAU,EACV,OAAQ,CACN,UAAW,QACX,IAAK,mBACP,CACF,EACA,CACE,cAhDgB,oCAiDhB,OAAQ,CACN,UAAW,QACX,IAAK,kBACP,CACF,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,sCACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,+BACP,UAAW,CACb,EACA,CACE,UAAW,UACX,MAAO,qBACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,wBACP,UAAW,CACb,EACA,CACE,UAAW,MACX,MAAO,MACP,IAAK,MACL,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsNA,EAAO,OAAO,CA/Sd,SAAiB,CAAI,EACnB,IAAM,EAAa,4BAGb,EAAoB,gHACpB,EAAkB,iCAClB,EAAmB,CACvB,SAJuB,sBAKvB,QACE,yYAIF,QAAS,gBACX,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EAQM,EAAY,CAChB,UAAW,oBACX,SAAU,CACR,CACE,MAAO,SACP,IAAK,QACP,EACA,CACE,MAAO,OACP,IAAK,MACP,EACD,CACD,SAAU,CACZ,EAEA,SAAS,EAAe,CAAK,CAAE,CAAG,EAChC,IACI,EAAW,CACT,CACE,MAAO,EACP,IAAK,CACP,EACD,CAEL,OADA,CAAQ,CAAC,EAAE,CAAC,QAAQ,CAAG,EAChB,CACT,CACA,IAAM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,aACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,aACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,aACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,WACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,aACP,IAAK,KACP,EACA,CACE,MAAO,UACP,IAAK,UACP,EACD,CACD,UAAW,CACb,EACM,EAAW,CACf,UAAW,SACX,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,QACP,IAAK,KACP,EACA,CACE,MAAO,YACP,IAAK,UACP,EACD,CACD,UAAW,CACb,EACM,EAAS,CACb,MAAO,YAAc,EAAK,cAAc,CAAG,2DAC3C,SAAU,yCACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,WACP,UAAW,CACb,EACA,CACE,MAAO,WACP,IAAK,SACP,EACD,AACH,EACD,CACD,UAAW,CACb,EAyCM,EAA2B,CAC/B,EACA,EACA,EA3Cc,CACd,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAe,MAAO,MAClC,EACA,CACE,MAAO,QACP,IAAK,KACL,SAAU,EAAe,KAAM,KACjC,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAe,IAAK,IAChC,EACA,CACE,MAAO,QACP,IAAK,KACP,EACD,CACD,UAAW,CACb,EAYE,EAXgB,CAChB,UAAW,OACX,MAAO,OACP,IAAK,MACL,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,UAAW,QAAS,GAAI,AAC7E,EAnLiB,CAGf,UAAW,WACX,MAAO,4DACT,EAuLE,EAAK,iBAAiB,CACtB,CACE,UAAW,QACX,cAAe,sBACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACvD,CACE,MAAO,GAAI,EACd,AACH,EACA,CACE,UAAW,QACX,cAAe,iBACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACxD,AACH,EACA,CACE,cAAe,aACf,IAAK,MACL,QAAS,IACT,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAgB,GACxD,CACD,UAAW,CACb,EACA,CACE,UAAW,WACX,cAAe,MACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,AACH,EACA,CACE,UAAW,WACX,cAAe,YACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,EAAK,mBAAmB,CAAG,YAClC,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,IACP,SAAU,CACR,EACA,CAAE,MAAO,CAAkB,EAC5B,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB,CAAW,EACtC,CAAE,MAAO,iBAAmB,CAAW,EACvC,CAAE,MAAO,uBAAyB,CAAW,EAC7C,CAAE,MAAO,uFAA+F,EACxG,CAAE,MAAO,sBAAwB,CAAW,EAC7C,CACD,UAAW,CACb,EACD,CAID,OAHA,EAAM,QAAQ,CAAG,EACjB,EAAU,QAAQ,CAAG,EAAyB,KAAK,CAAC,GAE7C,CACL,KAAM,UACN,QAAS,CAAE,KAAM,CACjB,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECgGA,EAAO,OAAO,CA5Yd,SAAgB,CAAI,EA8IlB,IAAM,EAAW,CACf,QAAS,AAjGa,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,QACD,CAuC0B,MAAM,CAtCL,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,QACD,EAIC,SA/IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACD,CA2HC,QAzGuB,CACvB,UACA,QACA,OACA,OACD,AAqGD,EACM,EAAa,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,oBAAqB,GACzE,EAAU,CACd,UAAW,SACX,SAAU,CACR,CAAE,MAAO,eAAiB,EAC1B,CAAE,MAAO,iEAAqE,EAC9E,CAAE,MAAO,qFAA2F,EACrG,CACD,UAAW,CACb,EAMM,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACM,EAAwB,EAAK,OAAO,CAAC,EAAiB,CAAE,QAAS,IAAK,GACtE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ACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC1VA,EAAO,OAAO,CA9Cd,SAAa,CAAI,EAuBf,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,yBACV,QA3Ba,CACf,WACA,YACA,cACA,cACA,WACA,cACA,kBACA,YACA,UACA,eACA,YACA,aACA,eACA,aACA,UACA,aACA,YACA,gBACA,gBACA,aACD,AAOC,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,CACE,UAAW,YACX,MAAO,WACP,IAAK,IACL,WAAY,CAAA,CACd,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,uCCkHM,EACJ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7HgB,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EA0IhB,CAAA,EAAO,OAAO,CAhId,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAttBC,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe,AAitBG,EAjtBE,oBAAoB,CACxC,SAAU,CACR,MAAO,SACP,MAAO,iDACT,EACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,AAksBc,EAlsBT,gBAAgB,CACrB,AAisBc,EAjsBT,iBAAiB,CACvB,AACH,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,AA4rBS,EA5rBJ,SAAS,CAAd,kGASP,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF,EAkrBM,EAAU,CACd,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,CAED,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,QAAS,UACT,SAAU,CAAE,iBAAkB,SAAU,EACxC,iBAAkB,CAGhB,iBAAkB,cAAe,EACnC,SAAU,CACR,EAAM,aAAa,CAnBD,CAAE,MAAO,8BAA+B,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CA,EACD,AACH,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACD,AACH,CACA,CAAA,EAAa,QAAQ,CAAG,CACtB,EAAK,aAAa,CAClB,EACD,CAED,IAAM,EAAiB,CAErB,aACA,WACA,WACA,WACA,WACA,WACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,YACA,SACA,eACA,aACA,SACA,OACA,MACA,OACA,SACA,MACA,MAEA,UACA,cACD,CACK,EAA0B,EAAe,GAAG,CAAC,SAAC,CAApD,EAA0D,MAAC,GAAI,MAAA,CAAF,EAAE,I,GA2F/D,MAAO,CACL,KAAM,OACN,SAtBe,CACf,QAtEqB,CACrB,WACA,KACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,WACA,YACA,UACA,WACA,KACA,UACA,OACA,OACA,SACA,UACA,YACA,WACA,UACA,QACA,QACA,UACA,MACA,WACA,MACA,OACA,KACA,aACA,SACA,KACA,YACA,KACA,OACA,UACA,QACA,MACA,OACA,KACA,WACA,OACA,WACA,UACA,SACA,SACA,MACA,OACA,SACA,QACA,SACA,OACA,OACA,QACA,OACA,MACA,UACA,MACA,OACA,OACA,QACA,OACA,QACD,CAIC,SACE,EACG,MAAM,CAAC,GACP,MAAM,CAAC,CAEN,QACA,OACA,UACA,QAEA,WACA,gBACA,mBACA,SACD,EACL,SAAU,0BACZ,EAKE,SAAU,CACR,EACA,EAAK,OAAO,CACV,eACA,OACA,CACE,YAAa,WACb,UAAW,CACb,GAEF,EAAK,OAAO,CACV,WACA,IAAK,CAAE,SAAU,CACf,CACE,YAAa,WACb,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACD,AAAC,GAEJ,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,CACR,CAAE,cAAe,oBAAqB,EACtC,EAAK,qBAAqB,CAC3B,AACH,EACA,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,YACT,EACA,CAAE,MAAO,IACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECdA,EAAO,OAAO,CA9Od,SAAgB,CAAI,EAClB,IAAM,EAAW,CACf,UACA,WACA,OACA,MACA,QACA,SACA,WACA,MACA,MACA,QACA,MACA,OACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,MACA,YACA,KACA,UACA,SACA,OACA,QACA,YACA,KACA,OACA,UACA,WACA,MACA,MACA,MACA,iBACA,eACA,SACA,UACA,MACA,MACA,YACA,UACA,KACA,WACA,OACA,OACA,WACA,MACA,MACA,WACA,SACA,OACA,QACA,SACA,KACA,SACA,SACA,QACA,aACA,QACA,UACA,UACA,OACA,OACA,iBACA,SACA,UACA,MACA,KACA,OACA,QACA,KACA,SACA,YACA,KACA,MACA,SACA,QACA,WACA,cACA,OACA,SACA,OACA,iBACA,UACA,YACA,YACA,WACA,cACA,WACA,KACA,KACA,WACA,QACA,YACA,YACA,QACA,WACA,UACA,OACA,aACA,eACA,WACA,aACA,gBACA,UACA,SACA,QACA,UACA,UACA,SACA,aACA,YACA,WACA,QACA,OACA,YACA,WACA,eACA,aACA,YACA,gBACA,YACA,aACA,SACA,YACA,UACD,CACK,EAAgB,CACpB,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,KAAM,KAAM,CAAE,UAAW,CAAE,GACxC,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,UAAW,EAAG,GAC9C,CACK,EAAY,CAChB,UAAW,OACX,SAAU,CACR,CACE,MAAO,OACP,IAAK,IACP,EACA,CACE,MAAO,SACP,IAAK,MACP,EACD,AACH,EACM,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EA4BM,EAAc,CAClB,UAAW,SACX,SAAU,CACR,CAAE,MAAO,WAAY,EACrB,CAAE,MAAO,2BAA4B,EACrC,CAAE,MAAO,gBAAiB,EAC1B,CAAE,MAAO,cAAe,EACzB,AACH,EACM,EAAQ,CACZ,MAAO,EAAK,QAAQ,CAAG,wBACvB,YAAa,CAAA,EACb,SAAU,CAAE,EAAK,UAAU,CAAE,AAC/B,EACM,EAAW,CACf,UAAW,WACX,cAAe,4CACf,IAAK,OACL,SAAU,qDACV,SAAU,CACR,EAAK,UAAU,CACf,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CACR,EACA,EACA,EACD,CAAC,MAAM,CAAC,EACX,EACA,EACD,CAAC,MAAM,CAAC,EACX,EACA,MAAO,CACL,KAAM,SACN,QAAS,CACP,MACA,MACA,MACA,SACD,CACD,iBAAkB,CAAA,EAClB,SAAU,EACV,QAAS,2BACT,SAAU,CACR,EACA,EA3EW,CACb,UAAW,SACX,UAAW,EAEX,SAAU,CACR,CAEE,MAAO,yBAA0B,EACnC,CAEE,MAAO,gBAAiB,EAC1B,CAEE,MAAO,KACP,UAAW,CAAE,EACf,CAEE,MAAO,eAAgB,EACzB,CAEE,MAAO,SAAU,EACnB,CAEE,MAAO,IACP,UAAW,CAAE,EAChB,AACH,EAmDI,EACA,EACA,EACD,CAAC,MAAM,CAAC,EACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECtLA,EAAO,OAAO,CApDd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CACxB,MAAO,CACL,KAAM,OACN,QAAS,CAAE,QAAS,CACpB,SAAU,CACR,CACE,UAAW,OACX,UAAW,GACX,MAAO,EAAM,MAAM,CACjB,+BACA,8BACA,uBAEJ,EACA,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,EAAM,MAAM,CACjB,UACA,SACA,QACA,QACA,UACA,SACA,eAEF,IAAK,GACP,EACA,CAAE,MAAO,UAAW,EACrB,AACH,EACA,CACE,UAAW,WACX,MAAO,MACP,IAAK,GACP,EACA,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACP,EACA,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACP,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECeA,EAAO,OAAO,CA/Dd,SAAgB,CAAI,EAClB,IAAM,EAAS,CACb,MAAO,gBACP,SAAU,CAAE,KACR,0kBAO2B,EAC/B,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACtB,AACH,EAEA,MAAO,CACL,KAAM,SACN,QAAS,CAAE,QAAS,CACpB,iBAAkB,CAAA,EAClB,YAAa,MACb,SAAU,CACR,EAAK,OAAO,CAAC,sBAAuB,0BACpC,EAAK,OAAO,CAAC,MAAO,OACpB,CACE,UAAW,eACX,MAAO,MACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,SAAU,CAAE,KACR,+lBAQa,EACjB,OAAQ,CACN,eAAgB,CAAA,EAChB,SAAU,WACV,SAAU,CAAE,EAAQ,CACpB,UAAW,CACb,CACF,EACD,AACH,EACA,CACE,UAAW,oBACX,MAAO,OACP,IAAK,OACL,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECKA,EAAO,OAAO,CArEd,SAAa,CAAI,EAyCf,MAAO,CACL,KAAM,WACN,QAAS,CACP,OACA,OACD,CACD,SA9Ce,CACf,KACA,IACA,OACA,QACA,MACA,MACA,UACA,MACA,OACA,QACA,QACA,MACA,QACA,SACA,KACA,MACA,WACA,MACA,KACA,MACA,KACA,QACA,KACA,OACA,QACA,aACA,MACA,QACA,KACA,MACA,MACA,MACA,QACA,KACA,OACA,OACA,OACA,MACD,CAQC,SAAU,CACR,EAAK,OAAO,CAAC,IAAK,IAAK,CAAE,UAAW,CAAE,GACtC,CACE,UAAW,OACX,MAAO,oCACT,EAEA,CACE,UAAW,SACX,MAAO,6mCACT,EAEA,CACE,UAAW,SACX,MAAO,6FACT,EACA,EAAK,OAAO,CAAC,EAAK,WAAW,CAAE,CAAE,MAAO,cAAe,GACxD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EChCA,EAAO,OAAO,CAjCd,SAAoB,CAAI,EAWtB,MAAO,CACL,KAAM,aACN,QAAS,CAAE,SAAU,CACrB,iBAAkB,CAAA,EAClB,SAde,CACf,OACA,aACA,SACA,MACA,MACA,OACA,UACA,aACD,CAMC,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,CACE,cAAe,qEACf,OAAQ,CACN,IAAK,SACL,YAAa,MACf,CACF,EACD,CACD,QAAS,IACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC6HA,EAAO,OAAO,CA7Jd,SAAa,CAAI,EACf,IAAM,EAAU,EAAK,OAAO,CAC1B,cAAe,IACf,CAAE,UAAW,EAAG,GAsHlB,MAAO,CACL,KAAM,mBACN,QAAS,CACP,MACA,MACD,CACD,iBAAkB,CAAA,EAClB,QAAS,OACT,SAAU,CACR,QAxHa,CACf,KACA,OACA,OACA,MACA,KACA,KACA,OACA,OACA,MACA,QACA,aACA,UACA,MACA,MACA,MACA,MACA,MACA,MACD,CAsGG,SArGc,CAChB,MACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,QACA,KACA,MACA,OACA,WACA,WACA,MACA,QACA,OACA,SACA,QACA,KACA,SACA,QACA,QACA,KACA,OACA,QACA,SACA,UACA,MACA,MACA,QACA,OACA,UACA,UACA,OACA,MACA,WACA,WACA,SACA,QACA,KACA,OACA,UACA,SACA,QACA,WACA,OACA,OACA,QACA,KACA,QACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,KACA,UACA,MACA,SACA,UACA,UACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,SACA,MAEA,OACA,MACA,WACA,WACA,QACA,MACA,MACD,AAYC,EACA,SAAU,CACR,CACE,UAAW,WACX,MAAO,0BACT,EACA,CACE,UAAW,WACX,MArIG,mDAsIH,IAAK,WACL,SAAU,CACR,EAAK,OAAO,CAAC,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OACL,SAAU,CACR,EATwB,CAC1B,UAAW,OACX,MAAO,QACT,EAQI,CAEE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACD,AACH,EAEA,MAAO,CACL,KAAM,4BACN,QAAS,KACT,SAAU,CACR,EAnCoB,CACtB,UAAW,YACX,MAAO,mCACT,EAkCI,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECmOA,EAAO,OAAO,CA7Qd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAkB,kCAwClB,EAAM,CACV,SAAU,EACV,QAxCe,CACf,QACA,QACA,MACA,OACA,QACA,OACA,YACA,WACA,KACA,OACA,MACA,KACA,MACA,KACA,SACA,KACA,MACA,KACA,QACA,QACA,UACA,UACA,UACA,SACA,MACA,SACA,UACA,mBACA,MACA,OACA,SACD,CASC,QARe,CACf,QACA,MACA,OACD,AAKD,EACM,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EAaM,EAAmB,CACvB,MAHiB,WAIjB,MAAO,cACP,UAAW,CACb,EACM,EAAmB,cACnB,EAAwB,CAC5B,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,CACK,EAAiB,SAAC,CAAxB,EACE,MAAO,CACL,MAAO,cACP,MAAO,EAAM,MAAM,CAAC,KAAM,GAC1B,UAAW,CACb,CACF,EACM,EAAkB,CACtB,UAAW,SACX,MAAO,YAAmB,EAAmB,IAC7C,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CAAE,SAAU,CACV,EAAe,EAAE,GAAG,EACpB,EACA,EACD,AAAC,E,EAEN,EAEM,EAAe,CACnB,UAAW,SACX,MAAO,YAAmB,EAAmB,IAC7C,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CAAE,SAAU,CAAE,EAAe,EAAE,GAAG,EAAG,AAAC,E,EAE1C,EAEM,EAAc,CAClB,UAAW,QACX,SAAU,CACR,CACE,MAAO,QAAe,EAAmB,IACzC,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CACE,IAAK,EAAM,MAAM,CAAC,EAAE,GAAG,CAAE,kBACzB,SAAU,CACR,EAAe,EAAE,GAAG,EACpB,EACA,EACD,AACH,E,EAEJ,EACA,CACE,MAAO,QAAe,EAAmB,IACzC,SAAU,EAAsB,GAAG,CAAC,SAAA,CAApC,EAAyC,OAAA,EAAK,OAAO,CAAC,EACpD,CACE,IAAK,EAAM,MAAM,CAAC,EAAE,GAAG,CAAE,kBACzB,SAAU,CAAE,EAAe,EAAE,GAAG,EAAG,AACrC,E,EAEJ,EACD,AACH,EAEM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,QACP,IAAK,MACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,MACP,IAAK,IACL,SAAU,EAAE,AACd,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACM,EAAW,CACf,UAAW,WACX,cAAe,8BACf,IAAK,OACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAC5B,MAAO,EACP,WAAY,CAAA,CACd,GACD,AACH,EACM,EAAQ,EAAK,OAAO,CAAC,EAAU,CACnC,UAAW,QACX,cAAe,0CACf,IAAK,YACP,GACM,EAA0B,CAC9B,EACA,EACA,EACA,EACA,EAAK,iBAAiB,CACtB,EACA,EACA,CAAE,MAAO,IAAK,EACd,CACE,UAAW,SACX,MAAO,cACP,SAAU,CACR,EACA,CAAE,MAxOiB,kFAwOO,EAC3B,CACD,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,EAAkB,SACzB,UAAW,CACb,EACA,CACE,UAAW,cACX,MAAO,yBACP,UAAW,CACb,EAnMa,CACb,UAAW,SACX,MAAO,uGACP,UAAW,CACb,EAiME,CACE,UAAW,WACX,MAAO,4BACT,EAED,CAGD,OAFA,EAAM,QAAQ,CAAG,EAEV,CACL,KAAM,SACN,QAAS,CACP,KACA,MACD,CACD,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECtIA,EAAO,OAAO,CAtId,SAAa,CAAI,EACf,IAAM,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,KAAM,KACnB,EAAK,OAAO,CACV,MACA,MACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAE1B,AAAC,EAEI,EAAc,CAClB,UAAW,OACX,MAAO,kBACP,UAAW,CACb,EAEM,EAAO,CACX,MAAO,MACP,IAAK,MACL,QAAS,IACT,SAAU,CACR,CACE,UAAW,OACX,MAAO,wCACT,EACA,EACD,AACH,EAEM,EAAS,CACb,MAAO,KACP,IAAK,KACL,SAAU,EAAK,QAAQ,AACzB,EAiCA,MAAO,CACL,KAAM,MACN,SA1Be,CACf,MACA,KACA,KACA,OACA,OACA,OACA,KACA,QACA,SACA,SACA,WACA,OACA,QACA,KACA,QACA,SACA,SACA,OACA,SACA,UACA,eACD,CAKC,SAAU,CAIR,CACE,cAAe,qBACf,IAAK,WACL,SAAU,yDACV,SAAU,CACR,EACA,EACD,CACD,QAAS,UACX,EACA,CACE,MAAO,SACP,IAAK,IACL,SAAU,qBACV,SAAU,CACR,EACA,EACD,CACD,QAAS,UACX,EACA,CACE,MAAO,OACP,IAAK,IACL,SAAU,aACV,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,EACA,CACE,cAAe,sBACf,IAAK,IACL,SAAU,CACR,EAAK,aAAa,CAClB,EACD,AACH,EACA,CACE,MAAO,OACP,IAAK,IACL,SAAU,OACV,SAAU,CAAE,EAAS,AACvB,EAlFc,CAChB,UAAW,SACX,MAAO,UACP,IAAK,IACL,QAAS,GACX,EAiFI,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,EACA,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,gBAAkB,GACzD,EAEA,CACE,MAAO,OAAQ,EAClB,CACD,QAAS,GACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrIA,IAAA,EAAA,EAAA,sCAwbA,CAAA,EAAO,OAAO,CAtbd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAiB,qFAEjB,EAAgB,EAAM,MAAM,CAChC,uBAEA,8BAGI,EAA+B,EAAM,MAAM,CAAC,EAAe,YAa3D,EAAgB,CACpB,oBAAqB,CACnB,WACA,WACA,eACD,CACD,oBAAqB,CACnB,OACA,QACD,CACD,QAAS,CACP,QACA,MACA,QACA,QACA,QACA,OACA,QACA,UACA,KACA,OACA,QACA,MACA,MACA,SACA,MACA,KACA,KACA,SACA,OACA,MACA,KACA,OACA,UACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,OACA,QACA,QAED,CAnCQ,MAAA,CAkCP,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtDe,CACjB,UACA,SACA,UACA,SACA,UACA,YACA,QACA,QACD,GA+CC,SAAU,CACR,OACA,SACA,gBACA,cACA,cACA,gBACA,mBACA,kBACD,CACD,QAAS,CACP,OACA,QACA,MACD,AACH,EACM,EAAY,CAChB,UAAW,SACX,MAAO,YACT,EACM,EAAa,CACjB,MAAO,KACP,IAAK,GACP,EACM,EAAgB,CACpB,EAAK,OAAO,CACV,IACA,IACA,CAAE,SAAU,CAAE,EAAW,AAAC,GAE5B,EAAK,OAAO,CACV,UACA,QACA,CACE,SAAU,CAAE,EAAW,CACvB,UAAW,EACb,GAEF,EAAK,OAAO,CAAC,WAAY,EAAK,gBAAgB,EAC/C,CACK,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,aACP,IAAK,GACP,EACA,CACE,MAAO,cACP,IAAK,IACP,EAGA,CAAE,MAAO,iBAAkB,EAC3B,CAAE,MAAO,2BAA4B,EACrC,CAAE,MAAO,iCAAkC,EAC3C,CAAE,MAAO,yDAA0D,EACnE,CAAE,MAAO,yBAA0B,EACnC,CAAE,MAAO,WAAY,EAErB,CAGE,MAAO,EAAM,MAAM,CACjB,YACA,EAAM,SAAS,CAAC,6CAElB,SAAU,CACR,EAAK,iBAAiB,CAAC,CACrB,MAAO,QACP,IAAK,QACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,GACD,AACH,EACD,AACH,EAMM,EAAS,kBACT,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAER,CAAE,MAAO,OAAuB,MAAA,CAPpB,oBAOY,UAA+B,MAAA,CAAvB,EAAO,kBAAuB,MAAA,CAAP,EAAO,aAAY,EAI1E,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,gCAAiC,EAC1C,CAAE,MAAO,4CAA6C,EAGtD,CAAE,MAAO,uBAAwB,EAClC,AACH,EAEM,EAAS,CACb,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,SACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACZ,EACD,AACH,EA2EM,EAAwB,CAC5B,EA/DuB,CACvB,SAAU,CACR,CACE,MAAO,CACL,WACA,EACA,UACA,EACD,AACH,EACA,CACE,MAAO,CACL,sBACA,EACD,AACH,EACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,uBACL,EACA,SAAU,CACZ,EAjCuB,CACrB,MAAO,CACL,sBACA,EACD,CACD,MAAO,CACL,EAAG,aACL,EACA,SAAU,CACZ,EA8CwB,CACtB,UAAW,EACX,MAAO,CACL,EACA,aACD,CACD,MAAO,CACL,EAAG,aACL,CACF,EA7B4B,CAC1B,UAAW,EACX,MAAO,sBACP,UAAW,mBACb,EA4BwB,CACtB,UAAW,EACX,MAAO,EACP,MAAO,aACT,EA9B0B,CACxB,MAAO,CACL,MAAO,MACP,EACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,EACA,SAAU,CACR,EACD,AACH,EA4BE,CAEE,MAAO,EAAK,QAAQ,CAAG,IAAK,EAC9B,CACE,UAAW,SACX,MAAO,EAAK,mBAAmB,CAAG,YAClC,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,WACP,SAAU,CACR,EACA,CAAE,MAAO,CAAe,EACzB,CACD,UAAW,CACb,EACA,EACA,CAGE,UAAW,WACX,MAAO,4DACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,EACX,SAAU,CACZ,EACA,CACE,MAAO,IAAM,EAAK,cAAc,CAAG,eACnC,SAAU,SACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,QAAS,KACT,SAAU,CACR,CACE,MAAO,IACP,IAAK,SACP,EACA,CACE,MAAO,OACP,IAAK,UACP,EACA,CACE,MAAO,QACP,IAAK,WACP,EACA,CACE,MAAO,MACP,IAAK,SACP,EACA,CACE,MAAO,QACP,IAAK,WACP,EACD,AACH,EACD,CAAC,MAAM,CAAC,EAAY,GACrB,UAAW,CACb,EACD,CAAC,MAAM,CAAC,EAAY,EAErB,CAAA,EAAM,QAAQ,CAAG,EACjB,EAAO,QAAQ,CAAG,EASlB,IAAM,EAAc,CAClB,CACE,MAAO,SACP,OAAQ,CACN,IAAK,IACL,SAAU,CA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,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAc,GACtD,CACD,OAAQ,CACN,IAAK,QACL,SAAU,EACV,SAAU,CACZ,CACF,EACA,EACA,CACE,MAAO,KACP,IAAK,MACL,UAAW,EACX,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,SAAU,CACR,SAAU,IAAM,EAAK,QAAQ,CAC7B,QAAS,AA9DE,CACjB,UACA,UACA,SACA,UACA,SACA,UACA,UACA,aACA,OACA,OACA,UACA,WACA,eACA,WACA,UACA,QACA,SACA,QACA,aACA,YACA,QACD,CAwC2B,GAAG,CAAC,SAAA,CAAxB,EAA6B,MAAC,GAAI,MAAA,CAAF,EAAE,OAAO,GAAA,IAAI,CAAC,IAChD,EACA,SAAU,CAAE,EAAQ,AACtB,EACA,EACA,EAAK,iBAAiB,CACtB,EACA,EACA,EACA,EACA,EACA,CAAE,MAAO,KAAM,EAChB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC4VA,EAAO,OAAO,CAvhBd,SAAe,CAAI,EAkejB,MAAO,CACL,KAAM,iBACN,QAAS,CACP,OACA,MACD,CACD,iBAAkB,CAAA,EAClB,SAAU,CACR,SAAU,kBACV,SAzec,CAChB,MACA,UACA,WACA,OACA,QACA,OACA,QACA,YACA,UACA,YACA,WACA,MACA,SACA,QACA,MACA,OACA,QACA,OACA,QACA,QACA,SACA,UACA,WACA,YACA,aACA,WACA,OACA,UACA,UACA,UACA,UACA,WACA,YACA,UACA,WACA,UACA,UACA,UACA,YACA,aACA,mBACA,YACA,SACA,YACA,QACA,YACA,SACA,OACA,UACA,eACA,kBACA,OACA,OACA,UACA,SACA,UACA,aACA,gBACA,YACA,eACA,aACA,SACA,QACA,OACA,SACA,UACA,SACA,UACA,UACA,SACA,cACA,aACA,kBACA,eACA,UACA,SACA,MACA,OACA,MACA,OACA,QACA,SACA,aACA,UACA,WACA,YACA,WACA,aACA,UACA,UACA,UACA,QACA,eACA,eACA,YACA,MACA,OACA,gBACA,aACA,qBACA,mBACA,UACA,eACA,YACA,UACA,WACA,OACA,UACA,YACA,WACA,MACA,OACA,UACA,KACA,OACA,SACA,UACA,MACA,UACA,UACA,UACA,UACA,UACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,WACA,WACA,WACA,SACA,UACA,OACA,WACA,OACA,QACA,QACA,SACA,YACA,UACA,MACA,cACA,OACA,eACA,aACA,cACA,OACA,QACA,MACA,aACA,YACA,OACA,aACA,UACA,SACA,QACA,YACA,YACA,OACA,QACA,QACA,WACA,OACA,SACA,YACA,QACA,QACA,aACA,gBACA,WACA,eACA,uBACA,2BACA,oBACA,kBACA,cACA,YACA,SACA,QACA,KACA,aACA,QACA,aACA,YACA,YACA,WACA,UACA,kBACA,QACA,MACA,UACA,SACA,eACA,SACA,UACA,UACA,UACA,UACA,UACA,OACA,YACA,eACA,cACA,KACA,UACA,OACA,MACA,QACA,YACA,aACA,cACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,UACA,SACA,UACA,YACA,SACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,WACA,OACA,MACA,YACA,UACA,OACA,MACA,UACA,QACA,UACA,SACA,YACA,YACA,OACA,YACA,WACA,QACA,QACA,SACA,cACA,aACA,QACA,MACA,OACA,QACA,MACA,OACA,QACA,MACA,OACA,SACA,KACA,MACA,QACA,SACA,SACA,eACA,cACA,cACA,SACA,QACA,QACA,MACA,OACA,SACA,UACA,YACA,SACA,MACA,QACA,MACA,SACA,OACA,SACA,WACA,OACA,QACA,MACA,OACA,YACA,YACA,QACA,SACA,cACA,QACA,IACA,KACA,gBACA,eACA,cACA,mBACA,UACA,YACA,WACA,UACA,WACA,cACA,YACA,aACA,WACA,MACA,MACA,OACA,MACA,cACA,UACA,UACA,UACA,MACA,YACA,YACA,YACA,YACA,SACA,KACA,YACA,UACA,iBACA,iBACA,aACA,kBACA,kBACA,cACA,SACA,eACA,MACA,WACA,KACA,MACA,eACA,UACA,QACA,OACA,QACA,YACA,WACA,OACA,UACA,SACA,KACA,WACA,eACA,eACA,WACA,UACA,OACA,cACA,WACA,UACA,OACA,OACA,WACA,cACA,UACA,WACA,OACA,QACA,SACA,QACA,QACA,YACA,UACA,MACA,OACA,MACA,MACA,MACA,SACA,UACA,MACA,OACA,SACA,YACA,QACA,SACA,OACA,MACA,OACA,OACA,SACA,MACA,QACA,QACA,cACA,OACA,SACA,cACA,QACA,UACA,UACA,SACA,SACA,UACA,QACA,aACA,WACA,MACA,QACA,SACA,aACA,QACA,WACA,WACA,UACA,SACA,MACA,IACA,MACA,OACA,UACA,aACA,aACA,SACA,YACA,YACA,QACA,OACA,WACA,OACA,YACA,QACA,WACA,OACA,QACA,YACA,QACA,OACA,WACA,SACA,QACA,SACA,QACA,OACA,UACA,UACA,QACA,QACA,MACA,QACA,QACA,OACA,OACA,QACA,MACA,UACA,aACA,UACA,UACA,UACA,eACA,UACA,eACA,OACA,OACA,MACA,OACA,WACA,QACA,YACA,WACA,SACA,QACD,AAWC,EACA,SAAU,CACR,CAEE,MAAO,KACP,IAAK,OACL,UAAW,CAAA,EACX,QAAS,IACT,UAAW,EACb,EAEA,CAEE,UAAW,SACX,MAAO,oBACP,IAAK,QACL,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CAEE,UAAW,SACX,MAAO,8BACP,UAAW,CACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,EAAK,SAAS,CAAG,OACxB,UAAW,CACb,EAEA,EAAK,OAAO,CAAC,QAAS,KACpB,CACE,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,QAAS,IACX,GACH,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxfA,EAAO,OAAO,CAhCd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,MACN,SAAU,CACR,CACE,MAAO,mBACP,IAAK,iBACL,WAAY,CAAA,EACZ,YAAa,CAAA,EACb,UAAW,CAAA,EACX,SAAU,CACR,CACE,MAAO,sBACP,IAAK,uBACL,UAAW,CAAA,EACX,YAAa,CAAA,EACb,UAAW,MACb,EACA,CACE,MAAO,IACP,IAAK,mBACL,WAAY,CAAA,EACZ,aAAc,CAAA,EACd,UAAW,QACb,EACD,AACH,EACD,CACD,iBAAkB,CAAA,CACpB,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC0CA,EAAO,OAAO,CAtEd,SAAc,CAAI,EA8BhB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QAAS,CACP,OACA,QACA,MACA,OACA,OACA,KACA,OACA,SACA,KACA,MACA,MACA,QACA,MACA,QACA,YACA,SACA,OACA,QACA,OACD,CACD,QAAS,CACP,OACA,QACD,AACH,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA5DhB,CACX,UAAW,SACX,MAAO,4BACT,EAEe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAQe,CACb,UAAW,WACX,cAAe,MACf,IAAK,cACL,WAAY,CAAA,EACZ,SAAU,CAXC,CACX,UAAW,QACX,UAAW,EACX,MAAO,gFACT,EAOoB,AACpB,EAqCI,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECifA,EAAO,OAAO,CArjBd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAOlB,EAAU,CAAE,SAAU,CAC1B,EAAK,OAAO,CAAC,IAAK,IAAK,CAAE,UAAW,CAAE,GAEtC,EAAK,OAAO,CAAC,QAAS,IAAK,CAAE,UAAW,CAAE,GAC1C,EAAK,OAAO,CAAC,MAAO,IAAK,CAAE,UAAW,CAAE,GACzC,AAAC,EAGI,EAAyB,gBACzB,EAAsB,kBACtB,EAAS,CACb,UAAW,SACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,UAAW,EAAqB,EAAwB,EACvF,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,EAAqB,EAAwB,EAC5E,CAAE,MAAO,EAAM,MAAM,CAAC,QAAS,EAAqB,EAAwB,EAC7E,CACD,UAAW,CACb,EAEM,EAAe,CACnB,UAAW,WACX,cAAe,8BACf,QAAS,WACT,SAAU,CACR,EAAK,qBAAqB,CA/Bf,CACb,UAAW,SACX,MAAO,MACP,IAAK,KACP,EA6BG,AACH,EAofA,MAAO,CACL,KAAM,UACN,iBAAkB,CAAA,EAClB,QAAS,CACP,MACA,MACD,CACD,SAAU,CACR,SAAU,0CACV,QAlfa,CACf,OACA,KACA,aACA,QACA,SACA,QACA,UACA,OACA,YACA,QACA,YACA,OACA,UACA,YACA,YACA,eACA,MACA,QACA,QACA,KACA,SACA,YACA,OACA,WACA,UACA,SACA,OACA,OACA,QACA,WACA,eACA,SACA,gBACA,WACA,UACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,OACA,MACA,OACA,YACA,SACA,OACA,QACA,UACA,SACA,SACA,MACA,OACA,aACA,SACA,cACA,OACA,WACA,SACA,QACA,QACA,OACA,cACA,UACA,cACA,cACA,QACA,OACA,UACA,QACA,QACA,cACA,SACA,kBACA,OACA,YACA,WACA,WACA,UACA,SACA,gBACA,QACA,WACA,UACA,QACA,aACA,QACA,YACA,OACA,OACA,QACA,UACA,SACA,cACA,gBACA,WACA,WACA,YACA,YACA,YACA,iBACA,kBACA,kBACA,kBACA,gBACA,iBACA,iBACA,iBACA,aACA,aACA,UACA,WACA,gBACA,kBACA,mBACA,wBACA,SACA,SACA,aACA,gBACA,aACA,oBACA,mBACA,iBACA,gBACA,QACA,WACA,eACA,cACA,QACA,WACA,kBACA,yBACA,aACA,oBACA,aACA,aACA,aACA,uBACA,cACA,kBACA,kBACA,iCACA,0BACA,0BACA,UACA,aACA,YACA,MACA,WACA,SACA,QACA,YACA,MACA,UACA,MACA,YACA,YACA,WACA,UACA,WACA,YACA,OACA,SACA,UACA,OACA,YACA,UACA,UACA,cACA,YACA,iBACA,YACA,WACA,cACA,OACA,SACA,YACA,SACA,SACA,WACA,UACA,SACA,KACA,MACA,SACA,cACA,OACD,CAySG,QAxSa,CACf,UACA,SACD,CAsSG,SArSc,CAChB,OACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,MACA,OACA,MACA,QACA,QACA,MACA,MACA,QACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,QACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,WACA,aACA,UACA,UACA,MACA,YACA,MACA,aACA,WACA,QACA,UACA,QACA,SACA,gBACA,SACA,cACA,UACA,UACA,WACA,QACA,WACA,OACA,OACA,QACA,QACA,QACA,OACA,MACA,QACA,SACA,SACA,WACA,SACA,cACA,SACA,SACA,QACA,cACA,SACA,SACA,SACA,SACA,UACA,OACA,UACA,UACA,QACA,gBACA,cACA,QACA,SACA,UACA,YACA,QACA,OACA,oBACA,qBACA,eACA,QACA,OACA,UACA,SACA,MACA,eACA,OACA,YACA,OACA,SACA,SACA,SACA,QACA,SACA,WACA,OACA,QACA,QACA,WACA,yBACA,cACA,uBACA,2BACA,gBACA,kBACA,iCACA,0BACA,0BACA,gBACA,aACA,WACA,qBACA,eACA,kBACA,QACA,QACA,QACA,YACA,YACA,YACA,YACA,YACA,YACA,MACA,OACA,cACA,QACA,YACA,QACA,QACA,gBACA,aACA,uBACA,QACA,SACA,eACA,aACA,MACA,MACA,MACA,MACA,UACA,UACA,UACA,OACA,OACA,UACA,cACA,WACA,WACA,QACA,QACA,aACA,SACA,SACA,SACA,SACA,SACA,SACA,aACA,OACA,SACA,OACA,eACA,SACA,SACA,SACA,YACD,AAaC,EACA,QAAS,OACT,SAAU,CAhgBG,CACb,UAAW,SACX,UAAW,EACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EA2fI,EAGA,CACE,MAAO,cACP,UAAW,CACb,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxjBG,IAAA,EAAA,EAAA,uCACH,SAAS,EAAO,CAAK,EACnB,OAAO,AAAI,OAAO,EAAM,OAAO,CAAC,wBAAyB,QAAS,IACpE,CAMA,SAAS,EAAO,CAAE,SAChB,AAAK,EACD,AAAc,UAAd,OAAO,EAAwB,EAE5B,EAAG,MAAM,CAHA,IAIlB,CAMA,SAAS,EAAU,CAAE,EACnB,OAAO,EAAO,MAAO,EAAI,IAC3B,CAMA,SAAS,IAAO,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAErB,OADe,EAAK,GAAG,CAAC,SAAC,CAAzB,EAA+B,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,GAEjD,CA0BA,SAAS,IAAO,IAAA,IAnBR,EAmBQ,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAMrB,MAHe,IACV,CAAA,AArBL,CAAA,AAAI,AAAgB,UAAhB,OAFE,EAAO,AAqBqB,CArBjB,CAAC,AAqBgB,EArBX,MAAM,CAAG,EAAE,GAEF,EAAK,WAAW,GAAK,QACnD,AAkBgC,EAlB3B,MAAM,CAAC,AAkBoB,EAlBf,MAAM,CAAG,EAAG,GACtB,GAEA,CAAC,CADV,EAkBU,OAAO,CAAG,GAAK,IAAA,EACrB,EAAK,GAAG,CAAC,SAAC,CAFd,EAEoB,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,KAAO,GAE7C,CA+iBA,EAAO,OAAO,CAniBd,SAAgB,CAAI,EAoElB,IAAM,EAAoB,CAExB,MAAO,UACP,MAAO,oCACT,EAwCM,EAAc,CAElB,OACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,MACA,OACA,QACA,SACA,YACA,aACA,UACA,QACA,SACA,UACA,SACA,OACA,SACA,OACA,SAEA,SACA,UACA,OACA,QACA,MACA,QACA,MACA,QACA,YACA,MACA,SACA,UAEA,SACD,CA2CK,EAAe,CACnB,QApMe,CACf,WACA,MACA,KACA,SACA,OACA,QACA,QACA,UACA,WACA,KACA,OACA,WACA,SACA,OACA,OACA,MACA,YACA,SAEA,UACA,QACA,MACA,MACA,WACA,SACA,KACA,KACA,UACA,SACA,YACA,WACA,OACA,MACA,QACA,SACA,SACA,UACA,YACA,MAGA,KACA,OACA,KACA,WACA,UACA,SACA,MACA,SACA,SACA,SACA,OACA,KAEA,MACA,OACA,SACA,MACA,MACA,OACA,OACA,QACA,OACA,QACD,CAoIC,QA5Ge,CACf,OACA,QACA,OACA,OACA,OACA,KACA,QACA,WACA,YACA,MACA,OACD,CAiGC,SA5Ce,CAKf,MACA,MACA,QACA,UACA,OACA,eACA,MACA,MACA,OACA,SACA,SACA,YACA,SACA,UACA,aACA,YACA,KACA,MACA,MACA,SACA,OACA,QACA,MACA,QACA,WACA,SACA,UACA,UACA,UACA,WACA,UACA,WACA,WACA,YACD,CAMC,oBAhG0B,CAC1B,WACA,uBACA,kBACD,AA6FD,EAQM,EAAU,CACd,SAAU,CALV,EAAK,OAAO,CAAC,aAAc,OAAQ,CACjC,SAAU,CAAC,OAAO,AACpB,GAKE,EAAK,mBAAmB,CACzB,AACH,EAKM,EAAoB,CACxB,MAAO,WACP,MAAO,KACP,IAAK,IACP,EAGM,EAA+B,WAC/B,EAAsB,CAC1B,MAAO,SACP,SAAU,CAER,CAAE,MAAO,EAAO,EAA8B,UAAW,EAEzD,CAAE,MAAO,EAAO,EAA8B,EAAK,mBAAmB,CAAE,EACzE,CACD,UAAW,CACb,EAEM,EAAmB,SAAS,CAAgB,EAOhD,IAAM,EAAiB,MAAM,IAAI,CAPD,EAAE,YAAF,CAIX,kBAEA,kBAEf,EAAmB,EAAA,KAAA,CAAA,KAAA,EAAA,CAAO,IAAwC,CAA/C,MAAA,CAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAe,GAAG,CAAC,IAAlC,CAA2C,IAAI,GAElE,EAA0B,EAAO,EAAkB,MAEnD,EAAqC,EAAO,EAAyB,EAAU,IAC/E,EAAuB,EAC3B,EAAO,EAAoC,EAAyB,KACpE,EAAO,EAAkB,MAE3B,MAAO,CACL,MAAO,WACP,MAAO,EAEL,EAGA,OACA,MACA,KACA,KACA,MACA,MACF,UAAW,CACb,CACF,EAEM,EAAW,EAAiB,CAAE,aAAc,CAAA,CAAK,GAEjD,EAAyB,EAAiB,CAAE,aAAc,CAAA,CAAM,GAEhE,EAAyB,SAAS,CAAM,CAAE,CAAW,EACzD,MAAO,CACL,MAAO,EACL,EACA,EACE,EACE,MACA,EACE,KACA,IACA,KACA,IACA,KACA,KACA,UAER,WAAY,EAMZ,IAAK,EACH,EACE,KACA,MACJ,UAAW,EAEX,SAAU,EAAK,OAAO,CAAC,EAAc,CAAE,KAAM,CAAY,GACzD,SAAU,CACR,EACA,EACA,EAAK,OAAO,CAAC,EAAmB,CAAE,MAAO,IAAK,GAC9C,EACD,AACH,CACF,EAEM,EAAkB,EAAuB,IAAK,YAC9C,EAAsC,EAAuB,SAAU,WAGvE,EAAmB,CACvB,MAAO,CACL,UACA,OACA,MAzGkB,mBA2GnB,CACD,WAAY,CACV,EAAG,UACH,EAAG,aACL,EACA,IAAK,EAAU,UACf,SAAU,EACV,SAAU,CACR,EACA,EAAK,OAAO,CAAC,EAAmB,CAAE,MAAO,IAAK,GAC9C,EACA,CAEE,MAAO,WACP,MAAO,KACT,EACA,EACD,AACH,EAEM,EAAyB,CAE7B,MAAO,yBAEP,MAAO,sBACT,EAEM,EAAe,CAEnB,MAAO,CACL,OACA,EAAO,IAAK,EAAA,KAAA,CAAA,KAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAzRO,CAC5B,KACA,OACA,QACA,OACA,SACA,QACA,IACA,IACA,IACA,OACA,OACA,OACA,OACD,IA4QG,KACD,CACD,WAAY,CAAE,EAAG,MAAO,EACxB,IAAK,EAAU,OACjB,EAIM,EAAS,CACb,SAAU,CACR,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,AACH,EAMM,EAAgB,CACpB,MAAO,SACP,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACtB,AACH,EAEM,EAAkB,CACtB,MAAO,SACP,MAAO,KACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACT,EACA,EAAK,gBAAgB,CACtB,AACH,EAEM,EAAuB,CAC3B,MAAO,SACP,MAAO,MACP,IAAK,MACL,UAAW,CACb,EACM,EAAQ,CACZ,MAAO,QACP,MAAO,KACP,IAAK,KACL,SAAU,CACZ,EAEM,EAAsB,CAC1B,MAAO,SACP,MAAO,MACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,MAAO,MACT,EACA,EAAK,gBAAgB,CACrB,EACD,AACH,EAEM,EAA+B,CACnC,MAAO,SACP,MAAO,aACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,MACT,EACA,CACE,MAAO,MACT,EACA,CACE,MAAO,IACT,EACA,EAAK,gBAAgB,CACrB,EACD,AACH,EAkBM,EAAe,CACnB,MAAO,SACP,MAAO,EACL,IACA,EACE,SACA,8DAEF,IAEJ,SAIA,EAAM,QAAQ,CAAG,CACf,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CAaM,CACL,KAAM,KACN,QAAS,CACP,KACA,KACD,CACD,SAAU,EACV,QAAS,OACT,iBAAkB,CAChB,yBAA0B,SAC5B,EACA,SAAU,C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ACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,OACL,QAAS,KACX,EACD,AACH,EACD,CAgBD,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC9BA,EAAO,OAAO,CAzCd,SAAiB,CAAI,EACnB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,UAAW,CACtB,SAAU,kIACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,WACT,EACA,CACE,MAAO,MACP,IAAK,WACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,OACT,EACD,AACH,EACA,CACE,UAAW,WACX,MAAO,IACP,IAAK,GACP,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECiFA,EAAO,OAAO,CAvHd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QAEE,igCAaF,KACE,wwCAeF,SAEE,ynLAkEF,QAAS,YACX,EACA,QAAS,IACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC47FA,EAAO,OAAO,CAljGd,SAAa,CAAI,EA+hGf,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAliGa,CACf,aACA,SACA,UACA,MACA,QACA,QACA,OACA,cACA,WACA,UACA,SACA,MACA,KACA,OACA,MACA,OACA,OACA,MACA,WACA,YACA,KACA,MACA,MACA,MACA,KACA,SACA,SACA,SACA,SACA,OACA,QACA,MACA,QACA,OACA,MACD,CA+/FG,SA7/Fc,CAChB,MACA,YACA,YACA,mBACA,6BACA,wBACA,mBACA,oBACA,mBACA,gBACA,wBACA,8BACA,sBACA,YACA,2BACA,kCACA,6BACA,iCACA,SACA,SACA,SACA,UACA,YACA,YACA,eACA,iBACA,qBACA,aACA,mBACA,eACA,mBACA,eACA,eACA,eACA,mBACA,mBACA,cACA,gBACA,YACA,kBACA,eACA,qBACA,aACA,eACA,YACA,gBACA,YACA,aACA,eACA,eACA,gBACA,oBACA,YACA,gBACA,oBACA,aACA,cACA,eACA,mBACA,iBACA,mBACA,gBACA,kBACA,iBACA,iBACA,oBACA,iBACA,oBACA,2BACA,mBACA,yBACA,oBACA,4BACA,0BACA,sBACA,0BACA,cACA,uBACA,2BACA,sBACA,oBACA,uBACA,uBACA,wBACA,qBACA,qBACA,wBACA,yBACA,kCACA,0BACA,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,yBACA,kCACA,yBACA,eACA,0BACA,0BACA,wBACA,2BACA,0BACA,0BACA,wBACA,iBACA,2BACA,0BACA,iBACA,yBACA,uBACA,wBACA,mBACA,4BACA,mBACA,uBACA,uBACA,qBACA,kBACA,mBACA,0BACA,6BACA,0BACA,iCACA,8BACA,8BACA,0BACA,oBACA,kBACA,oBACA,yBACA,2BACA,mBACA,sBACA,uBACA,sBACA,oBACA,mBACA,qBACA,0BACA,0BACA,wBACA,mBACA,8BACA,uBACA,gCACA,uBACA,2BACA,6BACA,wBACA,iCACA,0BACA,qBACA,mBACA,uBACA,yBACA,oBACA,gCACA,iCACA,wBACA,yBACA,iBACA,uBACA,mBACA,wBACA,yBACA,iCACA,6BACA,8BACA,4BACA,8BACA,gBACA,gBACA,OACA,wBACA,2BACA,yBACA,4BACA,uBACA,2BACA,uBACA,kBACA,cACA,iCACA,qBACA,eACA,gBACA,mCACA,uCACA,oBACA,gBACA,gBACA,cACA,qBACA,uBACA,kBACA,qBACA,kBACA,cACA,oBACA,kBACA,sBACA,aACA,cACA,cACA,cACA,gBACA,cACA,oBACA,kBACA,cACA,qBACA,uBACA,cACA,gBACA,cACA,eACA,cACA,aACA,eACA,yBACA,gBACA,qBACA,iBACA,oBACA,0BACA,qBACA,wBACA,sBACA,2BACA,wBACA,2BACA,2BACA,yBACA,sBACA,0BACA,0BACA,yBACA,wBACA,oBACA,oBACA,0BACA,qBACA,wBACA,sBACA,2BACA,wBACA,yBACA,sBACA,sBACA,uBACA,wBACA,yBACA,OACA,SACA,MACA,QACA,gBACA,oBACA,mBACA,uBACA,mBACA,mBACA,sBACA,qBACA,qBACA,qBACA,kBACA,oBACA,oBACA,mBACA,mBACA,wBACA,oBACA,yBACA,iBACA,sBACA,kBACA,uBACA,sBACA,2BACA,iBACA,kBACA,gBACA,gBACA,uBACA,kBACA,kBACA,mBACA,iBACA,iBACA,wBACA,mBACA,MACA,UACA,UACA,UACA,WACA,oBACA,wBACA,oBACA,uBACA,wBACA,eACA,mBACA,uBACA,gBACA,qBACA,oBACA,eACA,uBACA,gBACA,wBACA,kBACA,0BACA,iBACA,kBACA,0BACA,oBACA,gBACA,mBACA,gBACA,iBACA,eACA,gBACA,kBACA,iBACA,kBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,mBACA,oBACA,eACA,mBACA,sBACA,iBACA,iBACA,YACA,sBACA,aACA,eACA,YACA,aACA,gBACA,gBACA,cACA,qBACA,qBACA,aACA,iBACA,aACA,WACA,iBACA,WACA,kBACA,kBACA,YACA,OACA,cACA,sBACA,WACA,oBACA,oBACA,oBACA,wBACA,4BACA,oCACA,qCACA,8BACA,qBACA,qBACA,iBACA,wBACA,iBACA,wBACA,mBACA,oBACA,mBACA,oBACA,oBACA,wBACA,yBACA,wBACA,qBACA,0BACA,2BACA,4BACA,oBACA,sBACA,sBACA,oBACA,gBACA,2BACA,2BACA,uBACA,2BACA,4BACA,4BACA,qBACA,oBACA,cACA,iBACA,4BACA,4BACA,yBACA,yBACA,aACA,cACA,cACA,oBACA,qBACA,aACA,mBACA,eACA,qBACA,sBACA,wBACA,kCACA,qBACA,aACA,iBACA,iBACA,kBACA,sCACA,gBACA,kBACA,oBACA,wBACA,kBACA,gBACA,oBACA,iBACA,iBACA,4BACA,8BACA,0BACA,oBACA,iBACA,yBACA,YACA,kBACA,mBACA,kBACA,wBACA,yBACA,YACA,aACA,mBACA,oBACA,uBACA,+BACA,qBACA,iBACA,uBACA,wBACA,iBACA,uBACA,2BACA,wBACA,4BACA,qBACA,YACA,iBACA,4BACA,iBACA,kBACA,gBACA,kBACA,oBACA,wBACA,kBACA,gBACA,0BACA,yBACA,qBACA,cACA,kBACA,sBACA,mBACA,uBACA,kBACA,wBACA,4BACA,oBACA,wBACA,eACA,mBACA,uBACA,oBACA,wBACA,yBACA,6BACA,qBACA,yBACA,YACA,kBACA,mBACA,gBACA,sBACA,uBACA,4BACA,kCACA,mCACA,wBACA,8BACA,+BACA,qBACA,YACA,eACA,gBACA,sBACA,uBACA,cACA,oBACA,qBACA,sBACA,4BACA,6BACA,YACA,cACA,mBACA,0BACA,qBACA,gBACA,eACA,iBACA,kBACA,cACA,uBACA,wBACA,uBACA,uBACA,kBACA,mBACA,kBACA,kBACA,iBACA,mBACA,wBACA,+BACA,0BACA,eACA,iBACA,cACA,mBACA,0BACA,qBACA,kBACA,eACA,qBACA,4BACA,uBACA,uBACA,uBACA,kBACA,kBACA,gBACA,gBACA,cACA,gBACA,eACA,iBACA,iBACA,kBACA,gBACA,qBACA,qBACA,iBACA,kBACA,iBACA,uBACA,sBACA,eACA,kBACA,cACA,kBACA,eACA,eACA,gBACA,aACA,kBACA,iBACA,eACA,cACA,gBACA,gBACA,iBACA,eACA,gBACA,oBACA,mBACA,mBACA,uBACA,oBACA,iBACA,gBACA,uBACA,cACA,iBACA,sBACA,qBACA,qBACA,4BACA,qBACA,4BACA,aACA,cACA,yBACA,eACA,kBACA,8BACA,oBACA,mBACA,qBACA,yBACA,yBACA,2BACA,sBACA,oBACA,uBACA,uBACA,4BACA,mBACA,mBACA,oBACA,iBACA,gBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,iBACA,gBACA,kBACA,mBACA,iBACA,eACA,gBACA,gBACA,gBACA,eACA,iBACA,OACA,OACA,eACA,sBACA,sBACA,sBACA,sBACA,2BACA,kBACA,gBACA,sBACA,uBACA,aACA,8BACA,MACA,mBACA,6BACA,6BACA,6BACA,wBACA,wBACA,gBACA,kBACA,gBACA,kBACA,iBACA,gBACA,oBACA,qBACA,mBACA,gBACA,gBACA,sBACA,YACA,cACA,cACA,kBACA,kBACA,iBACA,cACA,kBACA,gBACA,iBACA,wBACA,6BACA,sBACA,uBACA,sBACA,wBACA,mBACA,uBACA,yBACA,oBACA,sBACA,eACA,iBACA,eACA,gBACA,gBACA,QACA,WACA,qBACA,yBACA,kBACA,sBACA,mBACA,cACA,sBACA,kBACA,cACA,gBACA,iBACA,oBACA,gBACA,kBACA,gBACA,gBACA,uBACA,sBACA,gBACA,mBACA,eACA,sBACA,0BACA,kBACA,sBACA,OACA,YACA,cACA,mBACA,yBACA,oBACA,sBACA,mBACA,oBACA,sBACA,cACA,WACA,iBACA,YACA,mBACA,eACA,YACA,mBACA,iBACA,qBACA,qBACA,uBACA,+BACA,gCACA,uBACA,uBACA,4BACA,+BACA,0BACA,2BACA,mBACA,sBACA,qBACA,oBACA,oBACA,uBACA,uBACA,yBACA,4BACA,+BACA,oBACA,qBACA,qBACA,wBACA,uBACA,aACA,YACA,eACA,2BACA,gBACA,uBACA,8BACA,0BACA,wBACA,oBACA,sBACA,kCACA,8BACA,4BACA,wBACA,0BACA,+BACA,kCACA,6BACA,2BACA,0BACA,wBACA,2BACA,8BACA,yBACA,uBACA,sBACA,oBACA,cACA,oBACA,kBACA,oBACA,wBACA,oBACA,wBACA,aACA,mBACA,YACA,kBACA,WACA,WACA,kBACA,aACA,mBACA,0BACA,uBACA,sBACA,oBACA,yBACA,8BACA,wBACA,iCACA,wBACA,6BACA,2BACA,4BACA,mBACA,gBACA,cACA,gBACA,qBACA,yBACA,wBACA,4BACA,sBACA,0BACA,sBACA,0BACA,uBACA,2BACA,yBACA,6BACA,yBACA,6BACA,qBACA,yBACA,oBACA,wBACA,oBACA,wBACA,gBACA,sBACA,uBACA,gBACA,iBACA,0BACA,uBACA,sBACA,oBACA,wBACA,iCACA,2BACA,4BACA,mBACA,gBACA,cACA,gBACA,qBACA,yBACA,wBACA,4BACA,sBACA,0BACA,sBACA,0BACA,uBACA,2BACA,yBACA,6BACA,yBACA,6BACA,qBACA,yBACA,oBACA,wBACA,oBACA,wBACA,gBACA,sBACA,uBACA,eACA,gBACA,kBACA,iBACA,kBACA,WACA,gBACA,+BACA,mBACA,eACA,+BACA,cACA,eACA,cACA,yBACA,sBACA,uBACA,kBACA,aACA,YACA,iBACA,iBACA,WACA,uBACA,gBACA,kBACA,qBACA,qBACA,iBACA,mBACA,wBACA,0BACA,2BACA,2BACA,kBACA,gBACA,wBACA,wBACA,0BACA,4BACA,6BACA,6BACA,mBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,iBACA,sBACA,oBACA,yBACA,aACA,QACA,WACA,UACA,gBACA,WACA,UACA,cACA,wBACA,YACA,cACA,gBACA,WACA,WACA,iCACA,YACA,8BACA,SACA,aACA,SACA,UACA,YACA,YACA,eACA,cACA,cACA,aACA,iBACA,iBACA,wBACA,yBACA,0BACA,iBACA,mBACA,uBACA,qBACA,uBACA,mBACA,uBACA,qBACA,0BACA,wBACA,wBACA,0BACA,qBACA,yBACA,yBACA,0BACA,0BACA,2BACA,0BACA,6BACA,6BACA,8BACA,0BACA,6BACA,6BACA,8BACA,+BACA,+BACA,8BACA,8BACA,8BACA,0BACA,yBACA,yBACA,0BACA,2BACA,2BACA,0BACA,0BACA,0BACA,iBACA,eACA,cACA,gBACA,0BACA,qBACA,kBACA,eACA,yBACA,sBACA,gBACA,yBACA,kBACA,0BACA,yBACA,yBACA,eACA,mBACA,eACA,wBACA,iBACA,yBACA,uBACA,mBACA,wBACA,oBACA,mBACA,cACA,cACA,qBACA,eACA,8BACA,6BACA,0BACA,qBACA,mBACA,uBACA,wBACA,yBACA,wBACA,2BACA,6BACA,6BACA,8BACA,4BACA,8BACA,gCACA,uBACA,4BACA,uBACA,4BACA,yBACA,yBACA,6BACA,2BACA,uBACA,sBACA,4BACA,mBACA,wBACA,mBACA,wBACA,eACA,wBACA,oBACA,eACA,qBACA,qBACA,qBACA,sBACA,sBACA,uBACA,sBACA,yBACA,yBACA,yBACA,sBACA,yBACA,yBACA,0BACA,qBACA,0BACA,qBACA,0BACA,qBACA,qBACA,iBACA,sBACA,iBACA,sBACA,mBACA,mBACA,oBACA,oBACA,qBACA,oBACA,uBACA,uBACA,wBACA,wBACA,yBACA,mBACA,wBACA,mBACA,wBACA,oBACA,qBACA,eACA,oBACA,eACA,oBACA,uBACA,wBACA,uBACA,uBACA,eACA,UACA,UACA,cACA,cACA,OACA,YACA,KACA,WACA,QACA,OACA,OACA,iBACA,iBACA,kBACA,kBACA,mBACA,mBACA,eACA,wBACA,sBACA,gCACA,sCACA,0CACA,aACA,kBACA,aACA,qBACA,wBACA,mBACA,oBACA,mBACA,mBACA,0BACA,MACA,WACA,qBACA,kBACA,OACA,SACA,cACA,eACA,SACA,cACA,mBACA,kBACA,MACA,aACA,aACA,qBACA,6BACA,8BACA,cACA,mBACA,iBACA,mBACA,kBACA,oBACA,mBACA,qBACA,mBACA,qBACA,cACA,YACA,qBACA,YACA,mBACA,wBACA,wBACA,oBACA,qBACA,0BACA,iBACA,kBACA,eACA,mBACA,eACA,qBACA,iBACA,wBACA,iBACA,wBACA,oBACA,2BACA,wBACA,oBACA,2BACA,SACA,kBACA,wBACA,sBACA,4BACA,wBACA,4BACA,wBACA,4BACA,kBACA,kBACA,yBACA,sBACA,mBACA,mBACA,uBACA,qBACA,sBACA,gBACA,kBACA,kBACA,oBACA,wBACA,qBACA,mBACA,oBACA,qBACA,qBACA,kBACA,wBACA,mBACA,oBACA,qBACA,MACA,sBACA,gBACA,cACA,kBACA,gBACA,0BACA,eACA,sBACA,sBACA,wBACA,0BACA,kBACA,mBACA,qBACA,qBACA,sBACA,qBACA,uBACA,2BACA,sBACA,sBACA,wBACA,sBACA,wBACA,sBACA,uBACA,uBACA,uBACA,wBACA,8BACA,+BACA,oBACA,6BACA,+BACA,oBACA,oBACA,qBACA,qBACA,2BACA,oBACA,sBACA,yBACA,qBACA,qBACA,uBACA,wBACA,2BACA,oBACA,uBACA,qBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,mBACA,sBACA,sBACA,sBACA,oBACA,oBACA,oBACA,uBACA,uBACA,uBACA,mBACA,kBACA,oBACA,sBACA,mBACA,oBACA,iBACA,wBACA,kBACA,kBACA,iBACA,mBACA,mBACA,kBACA,mBACA,iBACA,qBACA,kBACA,oBACA,WACA,iBACA,cACA,cACA,oBACA,oBACA,cACA,oBACA,iBACA,WACA,cACA,YACA,kBACA,gBACA,kBACA,gBACA,kBACA,uBACA,mBACA,mBACA,qBACA,iBACA,aACA,aACA,oBACA,cACA,eACA,eACA,cACA,kBACA,gBACA,qBACA,aACA,aACA,gCACA,sBACA,wBACA,4BACA,8BACA,uBACA,qBACA,4BACA,uBACA,2BACA,yBACA,yBACA,sCACA,4BACA,gCACA,kCACA,mCACA,sCACA,8BACA,iCACA,+BACA,gCACA,qCACA,oCACA,kCACA,6BACA,sBACA,uBACA,0BACA,uBACA,gCACA,6BACA,gCACA,4BACA,0BACA,iCACA,8BACA,gCACA,4BACA,0BACA,4BACA,6BACA,0BACA,yBACA,0BACA,0BACA,qCACA,wCACA,sCACA,wBACA,4BACA,+BACA,4BACA,qCACA,+BACA,qCACA,mCACA,iCACA,8BACA,mCACA,+BACA,6BACA,gCACA,+BACA,gCACA,6BACA,qCACA,mCACA,sCACA,sCACA,kCACA,qCACA,kCACA,mCACA,mCACA,+BACA,+BACA,8BACA,iCACA,sCACA,+BACA,+BACA,6BACA,qCACA,mCACA,iCACA,8BACA,uBACA,yBACA,sBACA,uBACA,0BACA,uBACA,uBACA,2BACA,wBACA,kCACA,6BACA,cACA,aACA,gBACA,gBACA,kBACA,iBACA,oBACA,kBACA,qBACA,oBACA,kBACA,mBACA,iBACA,mBACA,QACA,MACA,WACA,SACA,kBACA,eACA,kBACA,YACA,YACA,OACA,sBACA,yBACA,wBACA,aACA,gBACA,uBACA,wCACA,wBACA,oCACA,6BACA,yBACA,0BACA,oBACA,qBACA,4BACA,qBACA,sBACA,4BACA,sBACA,yBACA,yBACA,4BACA,4BACA,4BACA,WACA,cACA,iBACA,cACA,kBACA,gBACA,gBACA,oBACA,YACA,iBACA,qBACA,oBACA,sBACA,YACA,gBACA,eACA,kBACA,kBACA,sBACA,wBACA,oBACA,iBACA,QACA,2BACA,2BACA,cACA,mBACA,iBACA,qBACA,gBACA,kBACA,kBACA,mBACA,kBACA,eACA,uBACA,oCACA,wBACA,4BACA,qBACA,YACA,sBACA,mBACA,iBACA,0BACA,kBACA,2BACA,qBACA,qBACA,eACA,aACA,uBACA,6BACA,8BACA,uBACA,6BACA,4BACA,kCACA,wBACA,oBACA,qBACA,yBACA,qBACA,aACA,eACA,qBACA,gBACA,sBACA,OACA,MACA,2BACA,yBACA,kCACA,sCACA,6BACA,+BACA,gCACA,kCACA,iCACA,gCACA,0BACA,yBACA,yBACA,6BACA,+BACA,kCACA,6BACA,mCACA,oCACA,8BACA,6BACA,0BACA,8BACA,oCACA,qCACA,0BACA,yBACA,yBACA,qBACA,0BACA,0BACA,8BACA,qBACA,sBACA,sBACA,0BACA,uBACA,oBACA,qBACA,oBACA,0BACA,0BACA,0BACA,2BACA,2BACA,qBACA,8BACA,qBACA,aACA,iBACA,0BACA,gBACA,wBACA,6BACA,gBACA,mBACA,gBACA,eACA,qBACA,yBACA,uBACA,uBACA,wBACA,sBACA,oBACA,kBACA,kBACA,uBACA,oBACA,mBACA,wBACA,qBACA,iBACA,iBACA,mBACA,qBACA,qBACA,eACA,0BACA,kBACA,wBACA,iBACA,cACA,oBACA,+BACA,kBACA,uBACA,wBACA,4BACA,uBACA,oBACA,mBACA,MACA,OACA,aACA,aACA,SACA,iBACA,qBACA,iBACA,gBACA,oBACA,cACA,eACA,gBACA,gBACA,mBACA,aACA,iBACA,gBACA,yBACA,gBACA,oBACA,gBACA,cACA,kBACA,kBACA,sBACA,gBACA,iBACA,uBACA,eACA,gBACA,aACA,iBACA,gBACA,iBACA,qBACA,qBACA,eACA,mBACA,qBACA,cACA,kBACA,oBACA,eACA,eACA,mBACA,gBACA,iBACA,aACA,uBACA,mBACA,qBACA,gBACA,aACA,uBACA,eACA,oBACA,iBACA,qBACA,wBACA,iBACA,8BACA,eACA,4BACA,qBACA,qBACA,qBACA,yBACA,sBACA,oBACA,mBACA,uBACA,uBACA,iBACA,eACA,oBACA,qBACA,yBACA,oBACA,iBACA,MACA,yBACA,gBACA,qBACA,2BACA,0BACA,kBACA,oBACA,uBACA,mBACA,mBACA,oBACA,yBACA,yBACA,2BACA,0BACA,4BACA,4BACA,oBACA,wBACA,sBACA,iBACA,gBACA,iBACA,kBACA,kBACA,iBACA,gBACA,iBACA,kBACA,kBACA,gBACA,cACA,uBACA,8BACA,8BACA,oBACA,0BACA,qBACA,mBACA,0BACA,yBACA,sBACA,oBACA,gBACA,gBACA,cACA,uBACA,0BACA,qBACA,mBACA,oBACA,kBACA,YACA,YACA,mBACA,mBACA,sBACA,kBACA,sBACA,sBACA,qBACA,sBACA,qBACA,2BACA,yBACA,yBACA,iCACA,iCACA,wBACA,iCACA,wBACA,oBACA,0BACA,oBACA,qBACA,oBACA,mBACA,eACA,iBACA,kBACA,kBACA,oBACA,sBACA,6BACA,wBACA,gBACA,SACA,iBACA,WACA,eACA,gBACA,mCACA,2BACA,kCACA,kCACA,gCACA,mCACA,sCACA,4CACA,gCACA,yCACA,qCACA,4BACA,0BACA,gCACA,uCACA,2BACA,wBACA,+BACA,iBACA,oBACA,yBACA,sBACA,sBACA,2BACA,wBACA,8BACA,gCACA,wBACA,yBACA,sBACA,4BACA,8BACA,yBACA,sBACA,cACA,eACA,eACA,gBACA,uBACA,2BACA,mCACA,uCACA,uBACA,aACA,gBACA,gBACA,gBACA,gBACA,0BACA,2BACA,2BACA,2BACA,6BACA,gCACA,6BACA,sBACA,uBACA,oBACA,yBACA,gBACA,yBACA,oBACA,gBACA,kBACA,qBACA,gBACA,oBACA,kBACA,gBACA,mCACA,mCACA,cACA,aACA,oBACA,qBACA,mBACA,qBACA,mBACA,mBACA,mBACA,aACA,cACA,eACA,gBACA,mBACA,kBACA,iBACA,sBACA,mBACA,iBACA,iBACA,iBACA,kBACA,iBACA,sBACA,mBACA,iBACA,iBACA,iBACA,kBACA,qBACA,mBACA,mBACA,uBACA,8BACA,iBACA,qBACA,kBACA,gBACA,gBACA,sCACA,mCACA,qBACA,mBACA,oBACA,oBACA,wBACA,oBACA,wBACA,2BACA,mBACA,eACA,eACA,gBACA,mBACA,2BACA,2BACA,0BACA,qBACA,qBACA,mBACA,0BACA,qBACA,mBACA,oBACA,oBACA,wBACA,wBACA,uBACA,wBACA,uBACA,sBACA,uBACA,wBACA,kBACA,0BACA,0BACA,2BACA,2BACA,iCACA,kCACA,eACA,aACA,WACA,YACA,kBACD,CAqhCG,OAphCY,CACd,cACA,kBACA,eACA,gBACA,gBACA,kBACA,sBACA,qBACA,aACA,MACA,WACA,eACA,WACA,aACA,aACA,MACA,uBACA,2BACA,uBACA,uBACA,aACA,eACA,aACA,aACA,eACA,iBACA,eACA,cACA,eACA,cACA,iBACA,gBACA,WACA,iBACA,kCACA,0CACA,yCACA,iCACA,yCACA,wCACA,gCACA,wCACA,qBACA,aACA,eACA,mBACA,mBACA,mBACA,uBACA,qBACA,qBACA,kBACA,SACA,gBACA,gBACA,iBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,SACA,YACA,SACA,eACA,mBACA,eACA,gBACA,cACA,UACA,iBACA,eACA,kBACA,aACA,oBACA,wBACA,gBACA,iBACA,wBACA,gBACA,kBACA,wBACA,cACA,aACA,aACA,aACA,cACA,eACA,cACA,aACA,aACA,YACA,kBACA,uBACA,oBACA,gBACA,cACA,aACA,aACA,aACA,YACA,iBACA,cACA,SACA,UACA,SACA,WACA,WACA,YACA,SACA,UACA,SACA,SACA,WACA,WACA,WACA,SACA,UACA,WACA,WACA,QACA,WACA,SACA,UACA,WACA,kBACA,mBACA,iBACA,gBACA,kBACA,uBACA,eACA,oBACA,gBACA,mBACA,YACA,aACA,cACA,WACA,UACA,WACA,aACA,UACA,eACA,eACA,UACA,cACA,eACA,aACA,eACA,aACA,aACA,iBACA,wBACA,iBACA,kBACA,kBACA,yBACA,oBACA,qBACA,qBACA,yBACA,2BACA,qBACA,gBACA,oBACA,4BACA,mBACA,2BACA,YACA,cACA,oBACA,oBACA,eACA,eACA,cACA,mBACA,gBACA,gBACA,WACA,aACA,eACA,cACA,WACA,UACA,UACA,WACA,aACA,UACA,WACA,UACA,iBACA,iBACA,WACA,mBACA,qBACA,sBACA,0BACA,gCACA,2BACA,kBACA,6BACA,qBACA,qBACA,kBACA,wBACA,eACA,qBACA,mBACA,0BACA,0BACA,qBACA,oBACA,0BACA,qBACA,cACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,uBACA,aACA,eACA,YACA,aACA,kBACA,UACA,gBACA,cACA,iBACA,eACA,cACA,iBACA,cACA,gBACA,aACA,wBACA,sBACA,wBACA,sBACA,mBACA,uBACA,sBACA,uBACA,yBACA,wBACA,0BACA,sBACA,iBACA,+BACA,6BACA,+BACA,6BACA,0BACA,8BACA,6BACA,8BACA,gCACA,+BACA,iCACA,6BACA,wBACA,wBACA,uBACA,yBACA,0BACA,yBACA,2BACA,yBACA,wBACA,0BACA,SACA,eACA,aACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,oBACA,oBACA,qBACA,kBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,oBACA,oBACA,qBACA,kBACA,cACA,cACA,gBACA,iBACA,gBACA,kBACA,mBACA,kBACA,oBACA,WACA,iBACA,iBACA,sBACA,oBACA,eACA,oBACA,mBACA,WACA,aACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,gBACA,uBACA,kBACA,iBACA,mBACA,cACA,gBACA,YACA,UACA,gBACA,cACA,iBACA,kBACA,aACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,eACA,eACA,aACA,oBACA,oBACA,oBACA,eACA,aACA,YACA,YACA,eACA,YACA,UACA,YACA,UACA,cACA,WACA,aACA,SACA,cACA,QACA,aACA,aACA,gBACA,yBACA,SACA,YACA,aACA,cACA,cACA,UACA,YACA,yBACA,yBACA,yBACA,6BACA,6BACA,6BACA,wBACA,wBACA,wBACA,wBACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,YACA,eACA,gBACA,eACA,gBACA,WACA,YACA,YACA,gBACA,eACA,iBACA,iBACA,kBACA,iBACA,mBACA,aACA,gBACA,eACA,uBACA,qBACA,wBACA,uBACA,yBACA,2BACA,uBACA,mBACA,kBACA,WACA,gCACA,0BACA,+BACA,2BACA,yBACA,wBACA,qBACA,0BACA,mBACA,uBACA,qBACA,qBACA,sBACA,uBACA,qBACA,sBACA,iBACA,mBACA,iBACA,mBACA,iBACA,sBACA,eACA,8BACA,4BACA,8BACA,kCACA,4BACA,0BACA,wBACA,2BACA,6BACA,0BACA,kCACA,gBACA,kBACA,cACA,UACA,cACA,UACA,cACA,gBACA,cACA,oBACA,cACA,eACA,SACA,UACA,YACA,UACA,WACA,WACA,WACA,iBACA,UACA,SACA,iCACA,iCACA,mCACA,sCACA,kCACA,qCACA,yCACA,oCACA,yBACA,2BACA,8BACA,uBACA,0BACA,sBACA,oBACA,2BACA,qBACA,qBACA,oBACA,qBACA,uBACA,oBACA,0BACA,oBACA,oCACA,kBACA,yBACA,kBACA,mBACA,mBACA,mBACA,iBACA,iBACA,mBACA,mBACA,kBACA,oBACA,gBACA,QACA,oBACA,mBACA,mBACA,aACA,SACA,aACA,SACA,WACA,YACA,aACA,uBACA,oCACA,wBACA,SACA,SACA,SACA,YACA,YACA,UACA,aACA,SACA,gBACA,aACA,cACA,aACA,kBACA,QACA,eACA,gBACA,cACA,iBACA,iBACA,mBACA,uBACA,sBACA,sBACA,mBACA,wBACA,mCACA,wBACA,+BACA,0BACA,uBACA,0BACA,uBACA,uBACA,uBACA,uBACA,kBACA,yBACA,0BACA,sBACA,qBACA,qBACA,8BACA,sBACA,uBACA,4BACA,6BACA,uBACA,wBACA,wBACA,yBACA,6BACA,6BACA,4BACA,kBACA,wBACA,8BACA,kCACA,+BACA,gCACA,kCACA,mCACA,kCACA,gCACA,iCACA,4BACA,2BACA,2BACA,4BACA,4BACA,yBACA,0BACA,2BACA,gCACA,gCACA,KACA,kBACA,eACA,cACA,eACA,eACA,iBACA,kBACA,mBACA,oBACA,uBACA,kBACA,gBACA,iBACA,mBACA,mBACA,gBACA,qBACA,kBACA,iBACA,gBACA,qBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,kBACA,kBACA,gBACA,wBACA,yBACA,wBACA,6BACA,+BACA,kCACA,oBACA,qBACA,qBACA,4BACA,wBACA,wBACA,wBACA,6BACA,kCACA,mCACA,OACA,mBACA,sBACA,cACA,eACA,0BACA,wBACA,eACA,kBACA,mBACA,oBACA,oBACA,qBACA,kBACA,oBACA,mBACA,iBACA,qBACA,oBACA,wBACA,6BACA,gCACA,qBACA,sBACA,qBACA,uBACA,qBACA,wBACA,uBACA,sBACA,8BACA,oBACA,wBACA,4BACA,sBACA,oBACA,cACA,eACA,gBACA,gBACA,iBACA,iCACA,wCACA,kCACA,mCACA,sCACA,+BACA,iCACA,8BACA,mBACA,mBACA,kBACA,mBACA,sBACA,sBACA,qBACA,qBACA,8BACA,6BACA,8BACA,+BACA,iBACA,YACA,WACA,YACA,YACA,kBACA,cACA,cACA,2BACA,6BACA,mBACA,qBACA,2BACA,4BACA,2BACA,4BACA,2BACA,4BACA,iBACA,eACA,iBACA,WACA,kBACA,OACA,UACA,YACA,YACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,wBACA,4BACA,2BACA,qBACA,sBACA,qBACA,mBACA,sBACA,wBACA,qBACA,sBACA,uBACA,wBACA,oBACA,mBACA,sBACA,sBACA,uBACA,yBACA,SACA,SACA,YACA,eACA,aACA,aACA,YACA,YACA,UACA,SACA,WACA,YACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,UACA,YACA,UACA,cACA,UACA,YACA,cACA,WACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,cACA,YACA,WACA,iBACA,UACA,cACA,YACA,WACA,YACA,WACA,WACA,cACA,SACA,QACA,mBACA,8BACA,OACD,CAuMG,oBAtMuB,CACzB,QACA,sBACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,iBACA,aACA,mBACA,oBACA,uBACA,wBACA,cACA,YACA,aACA,WACA,iBACA,gBACA,qBACA,cACA,eACA,iBACA,gBACA,iBACA,eACA,kBACA,eACA,gBACA,aACA,aACA,QACA,YACA,aACA,oBACA,eACA,aACA,eACA,eACA,aACA,yBACA,MACA,WACA,WACA,oBACA,UACA,oBACA,eACA,UACA,oBACA,SACA,SACA,WACA,KACA,cACA,cACA,cACA,cACA,eACA,cACA,eACA,eACA,oBACA,cACA,iBACA,cACA,eACA,oBACA,mBACA,kBACA,QACA,QACA,cACA,UACA,aACA,UACA,eACA,mBACA,UACA,UACA,eACA,aACA,YACA,UACA,aACA,iBACA,aACA,mBACA,gBACA,wBACA,aACA,aACA,aACA,aACA,sBACA,uBACA,aACA,mBACA,mBACA,uBACA,kBACA,kBACA,YACA,YACA,cACA,qBACA,cACA,gBACA,qBACA,wBACA,wBACA,WACA,iBACA,yBACA,iBACA,yBACA,eACA,eACA,YACA,cACA,cACA,uBACA,oBACA,YACA,eACA,cACA,iBACA,oBACA,sBACA,2BACA,yBACA,oBACA,uBACA,wBACA,OACA,aACA,cACA,YACA,kBACA,aACA,aACA,QACA,SACA,oBACA,QACA,QACA,gBACA,eACA,eACA,iBACA,iBACA,aACA,iBACA,iBACA,gBACA,oBACA,mBACA,iBACA,cACA,eACA,eACA,aACA,kBACA,eACA,aACA,aACA,aACA,UACA,SACA,gBACA,oBACA,IACA,YACA,SACA,IACA,YACA,SACD,AASC,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC55FA,EAAO,OAAO,CAlJd,SAAY,CAAI,EAyEd,IAAM,EAAW,CACf,QA5BU,CACV,QACA,OACA,OACA,QACA,WACA,UACA,QACA,OACA,cACA,MACA,OACA,KACA,OACA,KACA,SACA,YACA,MACA,UACA,QACA,SACA,SACA,SACA,SACA,OACA,MACD,CAGC,KAnDY,CACZ,OACA,OACA,YACA,aACA,QACA,UACA,UACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,MACA,OACA,UACA,OACD,CA+BC,QA3Ee,CACf,OACA,QACA,OACA,MACD,CAuEC,SAtEgB,CAChB,SACA,MACA,QACA,UACA,OACA,OACA,MACA,OACA,MACA,QACA,QACA,UACA,OACA,UACA,SACD,AAuDD,EACA,MAAO,CACL,KAAM,KACN,QAAS,CAAE,SAAU,CACrB,SAAU,EACV,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,SACX,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,6DACP,UAAW,CACb,EACA,CACE,MAAO,sFACP,UAAW,CACb,EACA,CACE,MAAO,wBACP,UAAW,CACb,EACA,CACE,MAAO,uCACP,UAAW,CACb,EACA,CACE,MAAO,wDACP,UAAW,CACb,EACD,AACH,EACA,CAAE,MAAO,IACT,EACA,CACE,UAAW,WACX,cAAe,OACf,IAAK,cACL,WAAY,CAAA,EACZ,SAAU,CACR,EAAK,UAAU,CACf,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,WAAY,CAAA,EACZ,SAAU,EACV,QAAS,MACX,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECzEA,EAAO,OAAO,CAxEd,SAAc,CAAI,EAkDhB,MAAO,CACL,KAAM,OACN,SAAU,CACR,QApDa,CACf,UACA,SACA,QACA,SACA,SACA,WACA,QACA,SACA,MACA,MACA,QACA,MACA,UACA,QACA,KACA,OACA,OACA,QACA,OACA,QACA,WACA,UACA,eACA,OACA,OACA,SACA,SACA,KACA,OACA,OACA,YACA,MACA,QACA,UACA,QACA,QACA,WACA,mBACA,kBACA,SACA,aACA,MACA,MACA,SACA,OACA,QACD,CAMG,QAAS,CACP,OACA,QACA,OACD,AACH,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,YACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC+GA,EAAO,OAAO,CArLd,SAAgB,CAAI,EAqKlB,MAAO,CACL,KAAM,SACN,iBAAkB,CAAA,EAClB,SAvKe,CACf,OACA,UACA,cACA,cACA,YACA,cACA,iBACA,eACA,eACA,aACA,cACA,SACA,OACA,OACA,UACA,UACA,SACA,YACA,iBACA,WACA,UACA,sBACA,sBACA,QACA,UACA,SACA,UACA,UACA,QACA,UACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,UACA,KACA,OACA,UACA,QACA,UACA,MACA,KACA,aACA,aACA,SACA,MACA,UACA,YACA,SACA,SACA,SACA,SACA,eACA,QACA,SACA,YACA,MACA,WACA,QACA,WACA,UACA,SACA,QACA,OACA,QACA,OACA,OACA,YACA,aACA,WACA,OACA,UACA,OACA,OACA,QACA,SACA,QACA,MACA,YACA,OACA,QACA,OACA,UACA,UACA,OACA,WACA,MACA,MACA,SACA,SACA,aACA,OACA,UACA,YACA,QACA,MACA,OACA,OACA,WACA,WACA,WACA,QACA,OACA,UACA,UACA,QACA,SACA,QACA,SACA,UACA,OACA,YACA,SACA,UACA,YACA,gBACA,SACA,OACA,YACA,QACA,WACA,iBACA,kBACA,iBACA,YACA,YACA,OACA,OACA,MACA,QACA,WACA,QACA,UACA,OACA,QACA,OACA,YACA,YACA,UACA,cACA,QACA,OACA,OACA,gBACA,OACA,SACA,QACA,YACA,SACA,WACA,OACA,gBACA,kBACA,aACA,aACA,aACA,mBACA,QACA,YACD,CAKC,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,WAAW,CAEjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC9GA,EAAO,OAAO,CArEd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CAExB,MAAO,CACL,KAAM,UACN,QAAS,CAAE,MAAO,CAClB,iBAAkB,CAAA,EAClB,kBAAmB,CAAA,EACnB,SAAU,CACR,QAAS,CACP,QACA,WACA,eACA,OACA,QACA,SACA,YACA,YACA,QACA,SACA,WACA,OACA,KACD,CACD,QAAS,CACP,OACA,QACA,OACD,AACH,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,CACE,MAAO,cACP,MAAO,SACP,UAAW,CACb,EACA,CACE,MAAO,cACP,MAAO,4BACP,UAAW,CACb,EACA,CACE,MAAO,WACP,MAAO,KACP,IAAK,KACL,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CACE,MAAO,OACP,MAAO,OACP,WAAY,CAAA,CACd,EACA,CACE,MAAO,SACP,MAAO,EAAM,MAAM,CAxDR,yBAwDmB,EAAM,SAAS,CAAC,SAC9C,UAAW,CACb,EACD,CACD,QAAS,CACP,QACA,QACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECnEA,SAAS,EAAS,CAAQ,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAM,CAAC,EAEjC,OADA,EAAI,QAAQ,CAAG,EACR,CACT,CAkLA,EAAO,OAAO,CAhLd,SAAgB,CAAI,EAClB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,iBACX,EAAU,EAAS,CACvB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAEH,EACK,EAAS,CACb,UAAW,SACX,MAAO,iBACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACM,EAAS,EAAS,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,EACK,EAAS,EAAS,CACtB,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,MACP,IAAK,KACP,EACA,CACE,MAAO,OACP,IAAK,OACL,UAAW,EACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,CACD,CAAE,UAAW,QAAS,GAGhB,EAAmB,CACvB,MAAO,CACL,yDACA,MACA,EAAK,mBAAmB,CACzB,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EAwDA,MAAO,CACL,KAAM,SACN,SAAU,CACR,oBAAqB,aACrB,QAAS,kBACT,KA5DU,CACZ,OACA,QACA,OACA,MACA,OACA,UACA,QACA,SACA,OACD,CAmDG,QAlDa,CAEf,MACA,KACA,KACA,SACA,QAEA,WACA,SACA,WACA,YACA,SACA,UACA,YACA,eACA,QACA,QACA,YACA,OACA,KACA,OACA,MACA,QACA,SACA,OACA,QACA,UACA,WACA,QACA,SACA,MACA,QACA,UACA,aACA,UACA,MACA,SACA,UACA,SACA,aACA,MACD,AASC,EACA,SAAU,CACR,EAAK,OAAO,CAAC,CACX,OAAQ,SACR,UAAW,EACb,GACA,EACA,EACA,EACA,EACA,EACA,CACE,UAAW,OACX,MAAO,aACP,UAAW,CACb,EACA,CAEE,UAAW,OACX,MAAO,EAAW,SAClB,UAAW,CACb,EACA,CAGE,MAAO,KACP,IAAK,IACL,UAAW,EACX,SAAU,CACR,EACA,EACA,EACA,EACA,OACD,AACH,EACA,CAEE,UAAW,SACX,MAAO,SAAY,EAAM,SAAS,CAAC,EAAW,KAC9C,aAAc,CAAA,EACd,IAAK,EAAW,IAChB,UAAW,CACb,EACD,CACD,QAAS,OACX,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC3EA,EAAO,OAAO,CAvGd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,CACE,UAAW,OACX,MAAO,gEACP,UAAW,EACb,EAEA,EAAK,OAAO,CACV,wBACA,KACA,CAAE,UAAW,CAAE,GAEjB,CACE,MAAO,qBACP,IAAK,IACL,YAAa,OACb,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,MACX,MAAO,SACP,SAAU,CACR,CACE,UAAW,eACX,MAAO,MACT,EACA,CACE,UAAW,cACX,MAAO,UACT,EACA,CACE,UAAW,iBACX,MAAO,YACT,EACA,CACE,MAAO,QACP,IAAK,QACL,SAAU,CACR,CACE,MAAO,cACP,IAAK,QACL,YAAa,CAAA,EACb,eAAgB,CAAA,EAChB,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACT,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACA,CACE,MAAO,UACP,IAAK,UACL,WAAY,CAAA,EACZ,SAAU,CACR,CACE,MAAO,YACP,IAAK,OACL,YAAa,CAAA,EACb,eAAgB,CAAA,EAChB,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,UAAW,CACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,EACD,AACH,EACA,CAAE,MAAO,eAAgB,EACzB,CACE,MAAO,MACP,IAAK,KACL,YAAa,OACb,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECmJA,EAAO,OAAO,CAxPd,SAAoB,CAAI,EACtB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,CAChB,SAAU,WACV,SAAU,CACR,SACA,WACA,aACA,YACA,SACA,WACA,OACA,UACA,MACA,OACA,KACA,KACA,QACA,UACA,MACA,MACA,SACA,MACA,SACA,UACA,eACA,SACA,WACA,WACA,UACA,SACA,OACA,OACA,QACD,AACH,EAkBM,EAA0B,kBAC1B,EAAiB,wCAEjB,EAAS,EAAM,MAAM,CALI,aACA,aAO7B,EACA,GAGI,EAAmB,EAAM,MAAM,CACnC,EAAM,QAAQ,CAAC,cACf,EACA,EAAM,gBAAgB,CAAC,EAAM,MAAM,CAXR,UAazB,KAKE,EAAmB,EAAM,MAAM,CACnC,IACA,EAAyB,IACzB,EACA,UAGI,EAAiC,CAAE,MAAO,CAAiB,EAE3D,EAAmB,EAAK,OAAO,CAAC,EAAgC,CAAE,SA7CvD,CACf,SAAU,WACV,QAAS,CACP,OACA,QACA,YACA,OACD,AACH,CAqC2F,GAErF,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SAIT,SACE,aACF,QACE,mBACJ,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,CACE,UAAW,QACX,MAAO,OACP,IAAK,IACP,EACA,CACE,UAAW,QACX,MAAO,KACP,IAAK,MACP,EACD,AACH,EACA,EAAK,iBAAiB,CACtB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,SACX,MAzCiB,0FA0CjB,UAAW,CACb,EACA,CACE,UAAW,WACX,MAAO,6BACT,EACA,CACE,UAAW,OACX,MAAO,MACP,IAAK,OACL,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,QAAS,0BAA2B,CAClD,EACA,CACE,UAAW,OACX,MAAO,UACP,IAAK,sBACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,UACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,cAAe,MACf,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,cACX,cAAe,OACf,IAAK,KACL,SAAU,CAAE,EAAK,UAAU,CAAE,AAC/B,EACA,CACE,UAAW,cACX,MAAO,wBAA0B,EAAK,QAAQ,CAAG,WACjD,IAAK,QACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,SACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,CACE,UAAW,OACX,MAAO,OACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,CACd,EACA,EAAK,UAAU,CAChB,CACD,SAAU,CAAE,QAAS,kBAAmB,CAC1C,EACA,CACE,UAAW,cACX,MAAO,wBACP,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,kBACV,SAAU,CACR,CACE,UAAW,UACX,MAAO,2BACP,SAAU,qBACV,SAAU,CACR,CACE,UAAW,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WACA,SACA,YACA,SACA,UACA,SACA,WACA,UACA,KACA,SACA,QACA,UACA,OACD,CA0BC,QAnBe,CACf,QACA,OACA,OACD,CAgBC,KAdY,CACZ,OACA,UACA,OACA,QACA,MACA,OACA,QACA,SACD,CAMC,SA1BgB,CAChB,QACA,OACD,AAwBD,EAEM,EAAa,CACjB,UAAW,OACX,MAAO,IAAM,EACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,OAAQ,AACtB,EACD,AACH,EACM,EAAS,CACb,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CAAE,EAAK,oBAAoB,CAAE,CACvC,WAAY,CAAA,CACd,EAEA,MAAO,CACL,KAAM,OACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,QAAS,QACT,SAAU,CACR,EAAK,OAAO,CACV,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,YACT,EACD,AACH,GAGF,CACE,MAAO,wBACP,SAAU,SACV,UAAW,CACb,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,MAAO,MACP,IAAK,MACL,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,MAAO,CACL,oDACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CAEE,MAAO,aACP,MAAO,SACT,EACA,CACE,MAAO,CACL,EAAM,MAAM,CAAC,WAAY,GACzB,MACA,EACA,MACA,SACD,CACD,UAAW,CACT,EAAG,OACH,EAAG,WACH,EAAG,UACL,CACF,EACA,CACE,MAAO,CACL,SACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,EACA,SAAU,CACR,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EACA,CAGE,cAAe,wBACf,UAAW,CACb,EACA,CACE,MAAO,CACL,MAAQ,EAAmB,QAC3B,EAAK,mBAAmB,CACxB,YACD,CACD,UAAW,CAAE,EAAG,gBAAiB,EACjC,SAAU,EACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,UAAW,EACX,SAAU,CACR,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EACA,EAAK,oBAAoB,CAC1B,AACH,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EACA,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC/RM,EAAW,2BACX,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAGK,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEK,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAEK,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAEK,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,SACD,CAEK,EAAY,EAAE,CAAC,MAAM,CACzB,EACA,EACA,EAmmBF,CAAA,EAAO,OAAO,CAvlBd,SAAoB,CAAI,EACtB,IAgXgB,EAhXV,EAAQ,EAAK,KAAK,CAQlB,EAAgB,SAAC,CADtB,CAAA,CAAA,EAC+B,IAAA,EAAA,EAAA,K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SAAU,CA/BM,CAChB,UAAW,OACX,MAAO,8BACP,UAAW,IACb,EACoB,CAClB,MAAO,YACP,UAAW,cACX,UAAW,CACb,EAyBI,EAAK,iBAAiB,CACtB,EACA,EAAK,aAAa,CAClB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,CACD,QAAS,KACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsYA,EAAO,OAAO,CAhbd,SAAe,CAAI,EAOjB,IAAM,EAAmB,uDAoTnB,EAAW,CACf,SAAU,EACV,QA1SmB,CACnB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,QACD,CA0QC,QAzPmB,CACnB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,IACA,IACD,CAkNC,SAjMoB,CACpB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,UACD,AAOD,EAGM,EAAU,CACd,SAAU,EACV,QAAS,KACX,EAqBM,EAAgB,CACpB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CACZ,EAEM,EAAwB,CAC5B,UAAW,WACX,MAAO,MAAQ,CACjB,EAGM,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,CACD,SAAU,CACR,CACE,MAAO,SACP,IAAK,SACL,UAAW,EACb,EACA,CACE,MAAO,OACP,IAAK,MACP,EACD,AACH,EAEM,EAAU,CACd,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,CACD,MAAO,IACP,IAAK,GACP,EAwCA,OAlBA,EAAQ,IAAI,CAAG,QACf,EAAQ,QAAQ,CAAG,CAnFJ,CACb,UAAW,SAQX,MAAO,qIACP,UAAW,CACb,EAEa,CACX,UAAW,SACX,MAAO,4BACT,EAsEE,EACA,EAzBgB,CAChB,UAAW,OACX,MAAO,IAAM,CACf,EAEgB,CACd,UAAW,UACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,UAAW,EACb,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAUE,EAAK,iBAAiB,CACtB,CACE,UAAW,UACX,MACE,6DACJ,EACA,CAAE,MAA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AO,CAClB,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAEP,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECrPA,EAAO,OAAO,CAtBd,SAAc,CAAI,EAChB,MAAO,CACL,KAAM,OACN,SAAU,CACR,CACE,UAAW,YACX,MAAO,WACP,UAAW,EACb,EACA,CACE,UAAW,YACX,MAAO,YACT,EACA,CACE,UAAW,UACX,MAAO,IACT,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECoEA,EAAO,OAAO,CAzFd,SAAc,CAAI,EAChB,IAAM,EAAQ,4BAMR,EAAS,CACb,MAAO,SACP,MAAO,KACP,IAAK,YACL,WAAY,CAAA,EACZ,UAAW,EACX,SAAU,CACR,CACE,MAAO,SACP,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,UACP,MAAO,eACT,EACA,CACE,MAAO,WACP,MAAO,wBACT,EACA,CACE,MAAO,WACP,MAAO,2CACT,EACD,AACH,EAYA,OADA,EAAO,QAAQ,CAAC,OAAO,CAVC,CACtB,MAAO,CACL,EACA,SACD,CACD,MAAO,CACL,EAAG,SACL,EACA,SAAU,CAAE,EAAQ,AACtB,GAEO,CACL,KAAM,OACN,SAAU,CAER,CACE,MAAO,CACL,KACA,EACA,SACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,SACL,EAGA,OAAQ,CACN,SAAU,CACR,CACE,MAAO,KACP,MAAO,aACT,EACD,AACH,EACA,SAAU,CACR,EACD,AACH,EAEA,CACE,MAAO,CACL,KACA,EACA,KACD,CACD,MAAO,CACL,EAAG,cACH,EAAG,UACH,EAAG,aACL,CACF,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCC2EM,EACJ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7HgB,CAChB,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAmB,E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H,EACA,CACE,UAAW,WACX,MAAO,aACP,IAAK,IACL,SAAU,MACV,SAAU,CACR,EACA,EACD,CACD,UAAW,CACb,EACA,CACE,cAAe,aACf,IAAK,IACL,SAAU,CACR,EACA,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CAClB,EACD,AACH,EACA,CACE,UAAW,OACX,SAAU,CACR,CACE,MAAO,wBACP,UAAW,EACb,EACA,CAAE,MAAO,MAAO,EAChB,CAAE,MAAO,MAAO,EACjB,AACH,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,kBAAkB,CACvB,EAAK,aAAa,CAClB,EACD,CAAC,MAAM,CAAC,GACT,QAAS,kBACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC1KA,IAAM,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAwFK,EAAY,EAAE,CAAC,MAAM,CAtBF,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAnFa,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEmB,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAuQD,CAAA,EAAO,OAAO,CA9Nd,SAAoB,CAAI,EA6CtB,IAAM,EAAa,CACjB,QAAS,EAAS,MAAM,CAhCE,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,YACD,EAGC,QAAS,EAAS,MAAM,CA1CE,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,OACD,EAmCC,SAAU,EAAU,MAAM,CA/CC,CAC3B,MACA,QACD,CA6CD,EACM,EAAc,8CACd,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAe,CACnB,UAAW,QACX,MAAO,cACP,IAAK,oCACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,kBAAkB,CACvB,CACE,UAAW,SACX,MAAO,0GACP,UAAW,EACX,OAAQ,CACN,IAAK,WACL,UAAW,CACb,CACF,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACD,AACH,EACA,CACE,MAAO,KACP,IAAK,SACL,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,WACL,SAAU,CACR,EACA,EAAK,iBAAiB,CACvB,AACH,EACA,CAGE,MAAO,yCAA0C,EACpD,AACH,EACA,CAAE,MAAO,IAAM,CAAY,EAC3B,CACE,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,YAAa,YACf,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAS,CACb,UAAW,SACX,MAAO,MACP,YAAa,CA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AAU,AACxB,EAqCI,EAjCS,CACX,UAAW,OACX,MAAO,YACP,IAAK,IACL,SAAU,CACR,SAAU,UACV,QAAS,QACX,CACF,EAEe,CACb,UAAW,UACX,MAAO,WACP,IAAK,IACL,SAAU,CAAE,EAAU,AACxB,EAqBG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnFA,IAAM,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,yBACA,yBACA,8BACA,uBACA,4BACA,yBACA,yBACA,6BACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,WACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,sBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,gBACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,iBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,gBACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,cACA,QACA,gBACA,aACA,UACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,mBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,cACA,SACA,cACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,qBACA,yBACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,yBACA,kBACA,cACA,gBACA,gBACA,iBACA,sBACA,mBACA,gBACA,kBACA,aACA,oBACA,sBACA,eACA,iBACA,aACA,wBACA,kBACA,uBACA,wBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,wBACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,aACA,iBACA,WACA,QACA,aACA,eACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,kBACA,sBACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,yBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,YACA,mBACA,UACA,iBACA,YACA,aACA,YACA,oBACA,OACA,gBACA,oBACA,kBACA,wBACA,2BACA,4BACA,kBACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,SACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,UACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,4BACA,sBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,sBACA,WACA,uBACA,uBACA,kBACA,uBACA,4BACA,cACA,+BACA,wBACA,uBACA,oBACA,kBACA,eACA,+BACA,wBACA,uBACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,UACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,sBACA,6BACA,WACA,cACA,6BACA,gBACA,oBACA,OACA,OACA,WACA,WACA,eACA,OACA,OACA,YACA,aACA,iBACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,iBACA,yBACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,mBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,qBACA,gBACA,iCACA,2BACA,aACA,kBACA,SACA,MACA,UACA,uBACA,aACA,eACA,iBACA,UACA,uBACA,oBACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,mBACA,eACA,QACA,gBACA,WACA,aACA,OACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,oBACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,iBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,yBACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,mBACA,kBACA,oBACA,uBACA,YACA,SACA,cACA,YACA,mBACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,iBACA,WACA,cACA,cACA,qBACA,kBACA,eACA,kBACA,mBACA,mBACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,qBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,cACA,qBACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,yBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,kBACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,oBACA,gCACA,mBACA,gBACA,mBACA,sBACA,4BACA,8BACA,4BACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,mBACA,wBACA,UACA,mBACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,kBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,UACA,gBACA,YACA,eACA,eACA,qBACA,eACA,gBACA,YACA,uBACA,kBACA,uBACA,8BACA,qBACA,4BACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,+BACA,eACA,cACA,gCACA,iBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,0BACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,oBACA,cACA,oBACA,kBACA,sBACA,4BACA,iBACA,mBACA,qBACA,iBACA,oBACA,gBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,iBACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,eACA,UACA,kBACA,6BACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,WACA,WACA,YACA,YACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,4BACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,2BACA,iCACA,iBACA,sBACA,gBACA,yBACA,sBACA,oBACA,oBACA,kBACA,qBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,YACA,aACA,gBACA,eACA,OACA,WACA,SACA,SACA,YACA,mBACA,WACA,6BACA,8BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,qBACA,2BACA,mCACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,eACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,kBACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,YACA,aACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,2BACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,gBACA,gBACA,2BACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,yBACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,2BACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,iBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,wBACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,oBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,0BACA,4BACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,mBACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,2BACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,iBACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,cACA,kBACA,gBACA,eACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,aACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,qBACA,sBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,qBACA,cACA,gBACA,YACA,iBACA,kBACA,gBACA,OACA,eACA,gBACA,SACA,wBACA,cACA,KACA,wBACA,kBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,iBACA,eACA,YACA,aACA,cACA,UACA,4BACA,eACA,cACA,sBACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,uBACA,iBACA,iBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,yBACA,wBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,cACA,2BACA,UACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,wBACA,wBACA,mBACA,0BACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,uBACA,sBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,mBACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,gBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,oBACA,eACA,iBACA,mBACA,qBACA,eACA,6BACA,yBACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,uBACA,cACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,uBACA,YACA,WACA,gBACA,iBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,cACA,WACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,mBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,cACA,yBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,qBACA,6BACA,kBACA,wBACA,sBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,0BACA,6BACA,oBACA,gBACA,sBACA,qBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,cACA,UACA,YACA,eACA,gBACA,aACA,WACA,QACA,iBACA,OACA,WACA,WACA,eACA,YACA,gBACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,aACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,uBACA,YACA,cACA,gBACA,cACA,UACA,kBACA,0BACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,OACA,aACA,kCACA,cACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,iBACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,iBACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,iBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,qBACA,mBACA,yBACA,4BACA,6BACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,mBACA,oBACA,kBACA,wBACA,iCACA,+BACA,8BACA,qBACA,oBACA,sBACA,0BACA,iBACA,iBACA,oBACA,wBACA,gBACA,sBACA,uBACA,iBACA,gBACA,gBACA,eACA,wBACA,gBACA,qBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,uBACA,yBACA,gBACA,sBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,cACA,iBACA,YACA,kBACA,0BACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,qBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,eACA,oBACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,gBACA,wBACA,gBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,qBACA,UACA,aACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,aACA,iBACA,cACA,gCACA,oBACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,iBACA,OACA,WACA,iBACA,qBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,YACA,mBACA,cACA,kBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,eACA,4BACA,SACA,cACA,mBACA,YACA,aACA,WACA,YACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,aACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,YACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,mBACA,yBACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,uBACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,UACA,aACA,cACA,QACA,gBACA,sBACA,mBACA,qBACA,oBACA,2BACA,2BACA,oBACA,kBACA,cACA,iBACA,cACA,WACA,wBACA,oBACA,sBACA,sBACA,qBACA,OACA,uBACA,WACA,YACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,kBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,wBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,aACA,mBACA,iBACA,oBACA,mBACA,wBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,cACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,uBACA,oBACA,gBACA,YACA,iBACA,UACA,SACA,yBACA,kBACA,iBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,gBACA,iBACA,gBACA,kBACA,uBACA,uBACA,mBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,2BACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,gBACA,kBACA,iBACA,iBACA,iBACA,eACA,sBACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,mCACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,uBACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,aACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,2BACA,cACA,0BACA,oBACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,mCACA,6BACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,sBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,WACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,sBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,QACA,aACA,kBACA,kBACA,QACA,aACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,mBACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,qBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,cACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,qBACA,oBACA,kBACA,kBACA,6BACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,2BACA,sBACA,YACA,oBACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,wBACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,iBACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,mBACA,oBACA,wBACA,6BACA,+BACA,iBACA,mBACA,iBACA,UACA,gBACA,cACA,wBACA,wBACA,aACA,6BACA,gBACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,wBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,WACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,6BACA,gBACA,+BACA,mBACA,oBACA,oBACA,4BACA,wBACA,kBACA,kBACA,SACA,WACA,kBACA,qBACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,uBACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,mBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,uBACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,qBACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,wBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,4BACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,gBACA,oBACA,eACA,sBACA,gBACA,gBACA,iBACA,oCACA,iBACA,eACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,4BACA,gBACA,SACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,uBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,wBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,WACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,mBACA,uBACA,YACA,aACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,2BACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,WACA,YACA,gBACA,YACA,WACA,gBACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,YACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,0BACA,eACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,eACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,0BACA,gBACA,0BACA,iBACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,cACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,eACA,gBACA,cACA,eACA,YACA,eACA,oBACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,eACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,cACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,gBACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,eACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,cACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,eACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,eACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,mBACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,uBACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,mBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,kBACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,+BACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,kBACA,0BACA,uBACA,0BACA,kBACA,0BACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,wBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,oBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,mBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,eACA,qBACA,KACA,OACA,iBACA,WACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,mBACA,qBACA,QACA,cACA,iBACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,mBACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,yBACA,eACA,uBACA,mBACA,cACA,aACA,wBACA,sBACA,mCACA,yBACA,YACA,yBACA,iBACA,4BACA,sBACA,sBACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,gBACA,uBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,6BACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,kBACA,mBACA,WACA,0BACA,mBACA,2BACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,sBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,oBACA,aACA,SACA,aACA,cACA,kBACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,oBACA,oBACA,iBACA,mBACA,yBACA,kBACA,kBACA,QACA,YACA,OACA,WACA,oBACA,iBACA,wBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,mBACA,eACA,cACA,gBACA,aACA,eACA,iBACA,uBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,2BACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,aACA,aACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,sBACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,kBACA,oBACA,kBACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,wBACA,mBACA,uBACA,qBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,kBACA,gBACA,mBACA,iBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,gBACA,qBACA,YACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,gBACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,sBACA,uBACA,kBACA,uBACA,mCACA,oBACA,gBACA,yBACA,iBACA,aACA,mBACA,qBACA,yBACA,YACA,mBACA,oBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,YACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,qBACA,eACA,UACA,aACA,cACA,UACA,wBACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,uBACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,UACA,qBACA,4BACA,0BACA,2BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,WACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,YACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,SACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,sBACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,oBACA,8BACA,gBACA,uBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,uBACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,oBACA,aACA,aACA,eACA,iBACA,cACA,0BACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,iBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,qBACA,eACA,UACA,gBACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,YACA,aACA,yBACA,YACA,6BACA,sBACA,6BACA,uBACA,uBACA,eACA,QACA,cACA,eACA,cACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,gBACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,eACA,yBACA,4BACA,kBACA,2BACA,2BACA,WACA,gBACA,oBACA,4BACA,mBACA,qBACA,wBACA,6BACA,uBACA,QACA,gBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,SACA,YACA,mBACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,YACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,8BACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,eACA,iBACA,UACA,cACA,cACA,qBACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,gBACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,oBACA,aACA,gBACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,yBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,sBACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,0BACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,6BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,wBACA,yBACA,sBACA,uBACA,wBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,uBACA,kBACA,qBACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,qBACA,kBACA,SACA,WACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,gBACA,uBACA,uBACA,aACA,cACA,gBACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,aACA,oBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,eACA,UACA,QACA,aACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,YACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,uBACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,4BACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,2BACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,eACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,OACA,YACA,eACA,YACA,WACA,aACA,YACA,yBACA,mBACA,2BACA,wBACA,mBACA,2BACA,kBACA,0BACA,mBACA,2BACA,iBACA,cACA,WACA,WACA,YACA,aACA,aACA,aACA,gBACA,YACA,aACA,YACA,UACA,YACA,cACA,WACA,eACA,QACA,kBACA,YACA,WACA,aACA,WACA,qBACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,kBACA,eACA,WACA,SACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,gBACA,iBACA,YACA,8BACA,UACA,mBACA,QACA,cACA,QACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,wBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,qBACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,iBACA,mBACA,gBACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,oBACA,YACA,WACA,0BACA,4BACA,4BACA,4BACA,eACA,oBACA,iBACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,yBACA,2BACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,uBACA,YACA,iBACA,wBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,yBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,0BACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,yBACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,eACA,eACA,cACA,gBACA,qBACA,iBACA,gBACA,iBACA,cACA,iBACA,YACA,WACA,eACA,qBACA,eACA,aACA,YACA,SACA,cACA,eACA,qBACA,aACA,YACA,cACA,eACA,mBACA,sBACA,iBACA,oBACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,YACA,mBACA,SACA,aACA,WACA,iBACA,UACA,yBACA,SACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,uBACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,cACA,WACA,eACA,mBACA,uBACA,qBACA,uBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,uBACA,iBACA,qBACA,WACA,kBACA,eACA,wBACA,WACA,eACA,gBACA,mCACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,kBACA,oBACA,sBACA,kBACA,2BACA,eACA,qBACA,2CACA,uBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,0BACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,wBACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,qBACA,eACA,wBACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,wBACA,0BACA,sBACA,wBACA,sBACA,sBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,iBACA,gBACA,sBACA,mBACA,gBACA,aACA,YACA,YACA,YACA,kBACA,gBACA,YACA,WACA,gBACA,mBACA,kBACA,cACA,UACA,uBACA,sBACA,oBACA,iBACA,4BACA,mBACA,oBACA,qBACA,4BACA,0BACA,YACA,YACA,eACA,WACA,iBACA,iBACA,iBACA,eACA,6BACA,aACA,eACD,AA4HD,CAAA,EAAO,OAAO,CAhHd,SAAqB,CAAI,EACvB,IAAM,EAAQ,EAAK,KAAK,CAQlB,EAAiB,EAAM,MAAM,CAAC,EAAM,MAAM,CAHhC,+BACO,2BACL,2BAKZ,EAAwB,EAAM,MAAM,CAFtB,iCACC,oCAKf,EAAwB,EAAM,MAAM,CACxC,EACA,EAAM,QAAQ,CAAC,GACf,EAAM,QAAQ,CALe,iBAczB,EAAY,yBACZ,EAAqB,IAAI,IAAI,GA8C7B,EAAW,CACf,UAAW,eACX,UAAW,EACX,MAAO,EAAM,MAAM,C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CzB,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,CACF,EACM,EAAmB,CACvB,SAAU,CACR,CAAE,MAAO,CACP,uCACA,MACA,EAAK,mBAAmB,CACzB,AAAC,EACH,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EA+FA,MAAO,CACL,KAAM,SACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QArDa,CACf,SACA,UACA,WACA,WACA,OACA,SACA,MACA,MACA,QACA,SACA,MACA,WACA,QACA,SACA,OACA,UACA,QACA,QACA,SACA,QACA,MACA,KACA,OACA,OACA,SACA,QACA,QACA,OACA,SACA,QACA,UACA,MACA,KACA,OACA,OACA,SACA,SACA,SACA,QACA,SAEA,MACA,KACA,MACA,MACA,MACD,CAOG,SAnGc,CAChB,WACA,YACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,SACA,QACA,MACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,KACA,SACA,QACD,CA6DG,QA5Da,CACf,OACA,QACA,OACD,AAyDC,EACA,QAAS,OACT,SAAU,CACR,EAAK,OAAO,CAAC,OAAQ,QACrB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EACA,EACA,CACE,UAAW,oBACX,MAAO,kBACT,EACA,CACE,UAAW,OACX,MAAO,OACP,IAAK,IACL,SAAU,CAAE,QAAS,+BAAgC,CACvD,EACA,CACE,MAAO,CACL,OACA,WACD,CACD,MAAO,CAAE,EAAG,MAAO,CACrB,EACA,CACE,cAAe,QACf,IAAK,IACL,SAAU,CAAE,EAAK,qBAAqB,CAAE,AAC1C,EACA,EAAK,iBAAiB,CACtB,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECzCA,EAAO,OAAO,CAnId,SAAoB,CAAI,EACtB,IAAM,EAAW,CACf,QAEE,6IAEF,QACE,iBACF,SACE,mRAIJ,EACM,EAAc,2BACd,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU,CACZ,EACM,EAAc,CAClB,EAAK,OAAO,CAAC,EAAK,aAAa,CAC7B,CAAE,OAAQ,CACR,IAAK,WACL,UAAW,CACb,CAAE,GACJ,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,AACH,EACD,AACH,EACA,CACE,UAAW,WACX,MAAO,MAAQ,EAAK,QAAQ,AAC9B,EACA,CAAE,MAAO,IAAM,EAAK,QAAQ,AAC5B,EACA,CAAE,MAAO,EAAK,QAAQ,CAAG,OAAS,EAAK,QAAQ,AAC/C,EACD,AACD,CAAA,EAAM,QAAQ,CAAG,EAEjB,IAAM,EAAQ,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,MAAO,CAAY,GAC3D,EAAqB,0BACrB,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,CAAA,EAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,EACV,SAAU,CAAE,OAAQ,CAAC,MAAM,CAAC,EAC9B,EACD,AACH,EAEA,MAAO,CACL,KAAM,aACN,QAAS,CAAE,OAAQ,CACnB,SAAU,EACV,QAAS,OACT,SAAU,EAAY,MAAM,CAAC,CAC3B,EAAK,OAAO,CAAC,KAAM,KACnB,CACE,UAAW,WACX,MAAO,QAAU,EAAc,YAAc,EAC7C,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACD,AACH,EACA,CACE,MAAO,aACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO,EACP,IAAK,QACL,YAAa,CAAA,EACb,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EACA,CACE,UAAW,QACX,cAAe,QACf,IAAK,IACL,QAAS,YACT,SAAU,CACR,CACE,cAAe,UACf,eAAgB,CAAA,EAChB,QAAS,YACT,SAAU,CAAE,EAAO,AACrB,EACA,EACD,AACH,EACA,CACE,UAAW,OACX,MAAO,EAAc,IACrB,IAAK,IACL,YAAa,CAAA,EACb,UAAW,CAAA,EACX,UAAW,CACb,EACD,CACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECkOA,EAAO,OAAO,CAnWd,SAAc,CAAI,EA0ThB,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,CACE,cACE,+FACF,IAAK,IACL,SAAU,CACR,QAjUS,CACf,MACA,QACA,UACA,MACA,MACA,QACA,KACA,MACA,QACA,UACA,SACA,UACA,QACA,SACA,QACA,KACA,OACA,OACA,OACA,UACA,UACA,aACA,SACA,UACA,WACA,YACA,QACA,SACA,WACA,UACA,YACA,UACA,YACA,SACA,UACA,OACA,WACA,WACA,KACA,OACA,OACA,UACA,OACA,MACA,QACA,SACA,UACA,UACA,SACA,UACA,QACA,QACA,UACA,MACA,QACA,OACA,WACA,QACA,QACA,MACA,SACA,KACA,SACA,QACA,KACA,UACA,YACA,QACA,QACA,SACA,QACA,SACA,YACA,OACA,KACA,OACA,MACA,OACA,WACA,QACA,OACA,OACA,MACA,UACA,OACA,QACA,MACA,MACA,UACA,UACA,eACA,QACA,QACA,YACA,OACA,MACA,SACA,SACA,SACA,KACA,SACA,KACA,QACA,QACA,OACA,QACA,YACA,WACA,OACA,OACA,UACA,UACA,UACA,YACA,YACA,SACA,MACA,QACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,WACA,YACA,SACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,aACA,SACA,SACA,OACA,KACA,cACA,UACA,WACA,QACA,QACA,SACA,UACA,SACA,QACA,SACA,SACA,MACA,OACA,QACA,WACA,QACA,SACA,SACA,MACA,OACA,OACA,QACA,QACA,OACA,SACA,OACA,MACD,CA0JO,QAxJS,CACf,OACA,QACA,OACA,YACD,CAoJO,SAlJU,CAChB,YACA,eACA,eACA,iBACA,cACA,iBACA,eACA,eACA,YACA,YACA,iBACA,gBACA,YACA,cACA,eACA,eACA,gBACA,gBACA,aACA,YACA,MACA,QACA,MACA,MACA,MACA,WACA,QACA,YACA,kBACA,SACA,YACA,SACA,QACA,QACA,aACA,SACA,WACA,WACA,eACA,YACA,kBACA,eACA,mBACA,gBACA,mBACA,gBACA,oBACA,iBACA,kBACA,SACA,gBACA,gBACA,gBACA,sBACA,aACA,UACA,kBACA,aACA,mBACA,cACA,cACA,eACA,cACA,SACA,gBACA,gBACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA,OACA,MACA,UACA,IACA,MACA,KACA,MACA,QACA,KACA,QACA,UACA,SACA,QACA,OACA,MACA,OACA,MACA,QACA,gBACA,eACA,eACA,qBACA,gBACA,sBACA,aACA,aACA,gBACA,gBACA,kBACA,cACA,kBACA,iBACA,WACA,UACA,SACA,QACA,QACA,WACA,SACA,UACA,QACA,QACA,SACA,QACA,OACA,QACA,UACA,SACA,YACA,WACA,WACA,WACA,OACA,UACA,SACA,YACA,WACA,WACA,WACD,AAcK,EACA,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,EAAK,aAAa,CAClB,EAAK,oBAAoB,CAC1B,AACH,EACA,EAAK,oBAAoB,CAC1B,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxRA,EAAO,OAAO,CA1Ed,SAAoB,CAAI,EA0DtB,MAAO,CACL,KAAM,cACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CACnC,MAAO,YACP,aAAc,CAAA,CAChB,GA1Bc,CAChB,SAAU,CACR,CAAE,MAAO,CACP,OACA,IACA,MACA,MACD,AAAC,EACF,CAAE,MAAO,CACP,OACA,KACD,AAAC,EACH,CACD,UAAW,CACT,EAAG,SACH,EAAG,QACL,CACF,EA7Be,CACb,MAAO,CACL,OACA,IACA,MACA,MACD,CACD,UAAW,CACT,EAAG,cACH,EAAG,QACL,CACF,EArCe,CACb,MAAO,CACL,aACA,QACA,OACA,IACD,CACD,UAAW,CACT,EAAG,YACH,EAAG,aACL,CACF,EACwB,CACtB,MAAO,CACL,aACA,aACA,QACA,MACA,MACD,CACD,UAAW,CACT,EAAG,YACH,EAAG,cACH,EAAG,QACL,CACF,EA4CG,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECwEA,EAAO,OAAO,CA/Id,SAAe,CAAI,EACjB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAM,CACV,UAAW,WACX,SAAU,CACR,CAAE,MAAO,OAAQ,EACjB,CAAE,MAAO,WAAY,EACrB,CAAE,MAAO,EAAM,MAAM,CAAC,OAAQ,EAAK,mBAAmB,CAAE,EACzD,AACH,EA2BM,EAAU,CACd,eAAgB,CAAA,EAChB,SAAU,CACR,SAAU,yBACV,QA9Ba,CACf,KACA,MACA,MACA,KACA,OACA,QACA,OACA,UACA,QACA,OACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,YACA,WACA,SACA,QACA,QACA,OACA,YACD,AAMC,EACA,UAAW,EACX,QAAS,KACT,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAEA,CACE,MAAO,aACP,IAAK,MACL,eAAgB,CAAA,EAChB,WAAY,CAAA,EACZ,SAAU,CAAE,EAAK,AACnB,EACA,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,SAAU,CACR,CACE,MAAO,SACP,IAAK,YACL,UAAW,CAAA,CACb,EAEA,CACE,MAAO,YACP,IAAK,YACL,UAAW,CAAA,CACb,EAEA,CAAE,MAAO,oBAAqB,EAE9B,CAAE,MAAO,oBAAqB,EAC/B,AACH,EAEA,CACE,UAAW,SACX,MAAO,6DACT,EAEA,CACE,UAAW,SACX,MAAO,4BACP,UAAW,CACb,EACA,EACD,AACH,EAEA,MAAO,CACL,KAAM,eACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,EAAK,iBAAiB,CACtB,CACE,cAAe,oBACf,IAAK,OACL,SAAU,EAAQ,QAAQ,CAC1B,SAAU,CAAE,QAAS,mBAAoB,CAC3C,EACA,CACE,UAAW,UACX,MAAO,EAAM,MAAM,CAAC,EAAK,mBAAmB,CAAG,EAAM,SAAS,CAAC,UAC/D,UAAW,CACb,EACA,CACE,MAAO,EAAM,SAAS,CAAC,EAAK,mBAAmB,CAAG,OAClD,IAAK,QACL,SAAU,CACR,CACE,UAAW,YACX,MAAO,EAAK,mBAAmB,CAC/B,OAAQ,CACV,EACD,CACD,UAAW,CACb,EACD,CACD,QAAS,cACX,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkCA,EAAO,OAAO,CAjLd,SAAa,CAAI,EAkIf,MAAO,CACL,KAAM,MACN,SAAU,CACR,QApFa,CACf,OACA,MACA,KACA,MACA,OACA,QACA,QACA,OACA,OACA,QACA,WACA,YACA,UACA,WACA,MACA,KACA,OACA,OACA,MACA,OACA,SACA,SACA,UACA,MACA,OACA,OACA,UACA,UACA,KACA,SACA,KACA,UACA,YACA,KACA,QACA,WACA,MACA,QACA,SACA,QACA,MACA,MACA,MACA,QACA,SACA,KACA,KACA,MACA,OACA,MACA,QACA,MACA,SACA,SACA,MACA,MACA,SACA,WACA,MACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,UACA,MACA,QACD,CAeG,QARa,CACf,OACA,QACD,CAMG,KAtIU,CACZ,MACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,UACA,UACA,OACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,MACA,QACA,QACA,YACA,UACA,MACA,MACA,QACA,SACA,QACA,SACA,SACA,OACA,QACA,YACA,SACA,UACA,cACA,SACA,UACA,QACA,aACA,eACA,aACD,CAwFG,SAhBc,CAChB,QACA,SACA,SACA,SACD,AAYC,EACA,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,IAAK,OACL,UAAW,EACb,EACA,CACE,UAAW,SACX,MAAO,eACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACA,CACE,UAAW,SACX,MAAO,oBACP,IAAK,KACP,EACA,EAAK,iBAAiB,CACtB,CACE,UAAW,OACX,MAAO,eACP,UAAW,CACb,EACA,CACE,UAAW,SACX,UAAW,EACX,SAAU,CACR,CAAE,MAAO,0DAA2D,EACpE,CAAE,MAAO,6CAA8C,EACvD,CAAE,MAAO,+CAAgD,EACzD,CAAE,MAAO,uCAAwC,EAClD,AACH,EACA,EAAK,iBAAiB,CACvB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxFA,EAAO,OAAO,CAtFd,SAAa,CAAI,EACf,IAAM,EAAW,CACf,QAAS,CACP,MACA,OACA,MACA,KACA,UACA,SACA,KACA,OACA,OACD,CACD,QAAS,CACP,OACA,QACA,KACA,MACA,OACD,CACD,SAAU,CACR,SACA,QACA,aACA,QACA,SACA,WACA,MACA,cACA,QACA,WACA,aACD,AACH,EACM,EAAY,CAChB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CACZ,EA+BM,EAAc,CAClB,EAAK,WAAW,CAChB,EAAK,iBAAiB,CACtB,EAAK,oBAAoB,CAjBZ,CACb,UAAW,SACX,SAAU,CAlBW,CACrB,UAAW,cACX,MAAO,MACT,EAe8B,EAAW,CACvC,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAzBc,CACZ,MAAO,uBACP,YAAa,CAAA,EACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,UAAW,EACb,EACD,AACH,EAqBC,CAED,OADA,EAAU,QAAQ,CAAG,EACd,CACL,KAAM,MACN,QAAS,CAAE,QAAS,CACpB,SAAU,EACV,SAAU,CACZ,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC5DA,EAAO,OAAO,CAxBd,SAAkB,CAAI,EACpB,MAAO,CACL,KAAM,YACN,SAAU,CACR,CACE,UAAW,cACX,OAAQ,CAGN,IAAK,MACL,OAAQ,CACN,IAAK,IACL,YAAa,YACf,CACF,EACA,SAAU,CACR,CAAE,MAAO,aAAc,EACvB,CAAE,MAAO,kBAAmB,EAC7B,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECxBA,IAAA,EAAA,EAAA,sCAsiBA,CAAA,EAAO,OAAO,CAniBd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CA2IlB,EAAY,CAChB,UAAW,oBACX,MAAO,EAAM,MAAM,CAAC,KAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA5Id,CACzB,aACA,UACA,cACA,UACA,gBACA,gBACA,cACA,UACA,UACA,YACA,SACA,UACA,UACA,YACA,QACA,UACA,aACA,UACA,iBACA,WACA,eACA,QACA,UACA,SACA,WACA,aACA,YACA,UACA,iBACA,iBACA,eACA,cACA,SACA,sBACA,YACA,SACA,aACA,YACA,YACA,SACA,OACA,YACA,SACA,SACD,GAgGD,EAEM,EAAU,CAEd,UAAW,WACX,MAAO,mBACT,EAEM,EAAY,CAEhB,UAAW,WACX,MAAO,eACP,QAAS,UACX,EAEM,EAAY,CAEhB,UAAW,WACX,MAAO,mBACT,EAEM,EAAa,CAEjB,UAAW,SACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAtHF,CAClB,UACA,yBACA,wBACA,yBACA,0BACA,wBACA,2BACA,OACA,OACA,OACA,oBACA,sBACA,oBACA,gBACA,qBACA,wBACA,aACA,OACA,OACA,MACA,UACA,WACA,WACA,OACA,OACA,UACA,QACA,sBACA,gBACA,gBACA,gBACA,gBACA,qBACA,qBACA,kBACA,cACA,QACA,cACA,iBACA,WACA,gBACA,mBACA,aACA,cACA,WACA,SACA,UACA,WACA,QACA,gBACA,mBACD,EAmED,EAEM,EAAW,CAEf,UAAW,UACX,MAAO,EAAM,MAAM,CACjB,IACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAxEM,CACrB,gBACA,eACA,aACA,SACA,KACA,SACA,UACA,OACA,OACA,QACA,QACA,UACA,WACA,gBACA,gBACA,KACA,QACA,aACA,cACA,SACA,UACA,cACA,QACA,WACA,WACA,UACA,cACA,gBACA,SACA,WACA,QACA,iBACA,UACA,UACD,GAuCD,EAuTM,EAAsB,CAC1B,MAAO,CACL,WACA,MACA,EAAM,MAAM,CAAC,QAAS,EAAK,QAAQ,EACpC,CACD,MAAO,CACL,EAAG,UACH,EAAG,gBACL,CACF,EAmBA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAhTa,CACf,QACA,mBACA,UACA,sBACA,iBACA,kBACA,SACA,aACA,eACA,eACA,OACA,cACA,UACA,WACA,cACA,cACA,gBACA,gBACA,YACA,WACA,kBACA,aACA,iBACA,SACA,eACA,eACA,eACA,iBACA,cACA,oBACA,UACA,SACA,YACA,eACA,aACA,eACA,OACA,OACA,YACA,gBACA,WACA,mBACA,OACA,cACA,YACA,gBACA,WACA,WACA,eACA,kBACA,eACA,mBACA,WACA,YACA,gBACA,gBACA,YACA,YACA,WACA,aACA,WACA,iBACA,oBACA,aACA,gBACA,qBACA,gBACA,cACA,mBACA,kBACA,qBACA,kBACA,qBACA,kBACA,kBACA,YACA,OACA,aACA,OACA,UACA,WACA,eACA,eACA,gBACA,uBACA,WACA,iBACA,oBACA,gBACA,aACA,mBACA,oBACA,WACA,kBACA,kBACA,WACA,YACA,WACA,SACA,UACA,SACA,QACA,YACA,aACA,WACA,WACA,aACA,iBACA,cACA,wBACA,oBACA,cACA,kBACA,mBACA,aACA,SACA,UACA,mBACA,wBACA,2BACA,sBACA,aACA,iBACA,SACA,MACA,UACA,OACA,gBACA,gBACA,uBACA,mBACA,cACA,MACA,OACA,OACA,aACA,aACA,eACA,aACA,SACA,SACA,SACA,wBACA,cACA,SACA,QACA,aACA,kBACA,sBACA,iBACA,iBACA,YACA,kBACA,sBACA,iBACA,iBACA,cACA,eACA,mBACA,cACA,gBACA,wBACA,eACA,iBACA,uBACA,cACA,kBACA,iBACA,gBACA,YACA,oBACA,UACA,aACA,eACA,gBACA,aACA,qBACA,YACA,kBACA,oBACA,aACA,gBACA,kBACA,QACA,aACA,SACA,UACA,SACA,SACA,aACA,UACA,sBACA,mBACA,gBACA,sBACA,gBACA,aACA,WACA,MACA,kBACA,gBACA,mBACA,aACA,cACA,cACA,gBACA,oBACA,mBACA,eACA,cACA,mBACA,UACD,CA4FG,QA1Fa,CACf,QACA,MACA,OACA,OACA,SACA,QACA,UACA,aACA,UACA,SACA,YACA,QACA,QACA,OACA,UACA,SACA,UACA,YACA,WACA,QACA,OACA,UACA,WACA,OACA,YACA,OACA,SACA,SACA,MACA,KACA,OACA,QACA,QACA,OACA,SACA,YACA,SACA,WACA,MACA,OACA,MACA,gBACA,YACA,eACA,eACA,aACA,gBACA,OACA,QACA,OACA,OACA,WACA,OACD,AAqCC,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,oBAAoB,CACzB,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GA3BO,CAC1B,MAAO,CACL,MACA,MACA,mBALqB,iBAOtB,CACD,MAAO,CACL,EAAG,UACH,EAAG,SACH,EAAG,UACL,CACF,EAkBI,EACA,CAAE,cAAe,6DAA+D,EAvVrE,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,CACD,QAAS,KACT,SAAU,CA7BS,CAEnB,UAAW,cACX,MAAO,gBACT,EA2BI,EACA,EACA,EACA,EACD,AACH,EAiUI,EACA,EACA,EACA,EACA,EAnWY,CAEd,UAAW,iBACX,MAAO,UACT,EAiWI,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC9SA,EAAO,OAAO,CApPd,SAAoB,CAAI,EAKtB,IAAM,EAAgB,yBAkKhB,EAAiB,CACrB,SAAU,EACV,QAAS,CACP,aACA,SACA,YACA,kBACD,AACH,EACA,MAAO,CACL,KAAM,cACN,QAAS,CACP,KACA,OACA,QACA,UACA,gBACD,CACD,SA7Be,CACf,oBAAqB,CACnB,OACA,QACD,CACD,SAAU,EACV,QA3IU,CACV,QACA,SACA,SACA,UACA,QACA,SACA,MACA,QACA,WACA,SACA,UACA,KACA,KACA,SACA,OACA,OACA,OACA,QACA,SACA,MACA,OACA,UACA,WACA,WACA,WACA,SACA,WACA,SACA,WACA,SACA,YACA,OACA,gBACA,KACA,SACA,YACA,WACA,WACA,SACA,OACA,OACA,KACA,MACA,QACA,SACA,QACA,SACA,WACA,SACA,UACA,kBACA,WACA,aACA,UACA,OACA,YACA,OACA,SACA,SACA,WACA,mBACA,cACA,WACA,YACA,YACA,YACA,UACA,WACA,UACA,QACA,uBACA,WACA,oBACA,oBACA,kBACA,cACA,kBACA,WACA,WACA,YACA,oBACA,eACA,sBACA,gBACA,SACA,SACA,SACA,oBACA,UACA,WACA,mBACA,kBACA,QACA,eACA,4BACA,iBACA,oBACA,2BACA,YACA,eACA,gBACA,UACA,aACA,uBACA,0BACA,wBACA,uBACA,gBACA,mBACA,YACA,aACA,gBACA,iBACA,gBACD,CAyBC,QAxBe,CACf,QACA,OACA,QACA,OACA,MACA,MACA,KACA,OACD,CAgBC,SAfgB,CAChB,kBACA,mBACA,gBACA,iBACA,gBACD,CAUC,KA/JY,CACZ,MACA,QACA,OACA,WACA,SACA,QACA,OACA,SACA,UACA,UACA,OACA,OACA,OACA,OACA,QACD,AAgJD,EAoBE,QAAS,KACT,SAAU,CA1LM,CAChB,UAAW,WACX,MAAO,sEACT,EAyLI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CA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AW,CACb,EACM,EAAW,CACf,QACA,OACA,OACD,CACK,EAAM,CAGV,YACA,UACA,WACA,eACA,2BACA,WACA,aACA,gBACA,YAGA,MACA,OACA,OACA,UACA,eACA,QACA,UACA,eAMA,QACA,WACA,MACA,KACA,SACA,OACA,UACA,QACA,WACA,OACA,QACA,QACA,QACA,QACA,WACA,UACA,UACA,KACA,SACA,OACA,SACA,QACA,aACA,SACA,aACA,QACA,YACA,WACA,OACA,OACA,UACA,QACA,UACA,QACA,MACA,UACA,OACA,SACA,OACA,KACA,aACA,aACA,YACA,MACA,UACA,YACA,QACA,WACA,OACA,UACA,QACA,MACA,QACA,SACA,KACA,UACA,YACA,SACA,WACA,OACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,QACA,MACA,QACD,CAEK,EAAY,CAGhB,UACA,iBACA,qBACA,kBACA,gBACA,cACA,iBACA,2BACA,yBACA,kBACA,yBACA,eACA,YACA,oBACA,sBACA,kBACA,gBACA,iBACA,YACA,qBACA,iBACA,eACA,mBACA,2BACA,mBACA,kBACA,gBACA,iBACA,mBACA,mBACA,uBACA,sBACA,gBACA,oBACA,iBACA,aACA,iBACA,yBACA,2BACA,kCACA,6BACA,0BACA,oBACA,4BACA,yBACA,wBACA,gBACA,mBACA,mBACA,sBACA,cACA,gBACA,gBACA,UACA,aACA,aACA,mBACA,cACA,mBACA,WACA,WACA,aACA,oBACA,YACA,qBACA,2BACA,sBAGA,cACA,aACA,UACA,QACA,YACA,WACA,oBACA,eACA,aACA,YACA,cACA,WACA,gBACA,UAGA,YACA,yBACA,SACA,kBACA,OACA,SACA,WACD,CAsBK,EAAW,CACf,QAAS,EACT,OAAA,EAdM,EAAS,EAAE,CACjB,AAakB,EAbZ,OAAO,CAAC,SAAA,CAAd,EACE,EAAO,IAAI,CAAC,GACR,EAAK,WAAW,KAAO,EACzB,EAAO,IAAI,CAAC,EAAK,WAAW,IAE5B,EAAO,IAAI,CAAC,EAAK,WAAW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O,WACP,UAAW,EACX,UAAW,SACb,EACA,CACE,UAAW,QACX,MAvHgB,yBAwHhB,UAAW,CACb,EACA,CACE,MAAO,KACP,IAAK,KACL,UAAW,SACX,UAAW,EACX,SAAU,CAAE,EAAK,AACnB,EAED,AACH,EAGiB,CACf,MAAO,UACP,IAAK,IACL,YAAa,CAAA,EACb,SAAU,CACR,EACA,EACA,CACE,UAAW,UACX,MAAO,gDACT,EACD,AACH,EAGqB,CAAE,SAAU,CAE/B,CACE,UAAW,WACX,MAAO,IAAI,MAAM,CApLnB,+bAoL0C,OAC1C,EACA,CACE,UAAW,UACX,MAAO,mBACP,UAAW,CACb,EACD,AAAC,EAkFE,EAEJ,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECpTA,IAAA,EAAA,EAAA,sCA2aA,CAAA,EAAO,OAAO,CAzad,SAAoB,CAAI,EACtB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,CAChB,gBACA,eACA,SACA,SACA,eACA,UACA,UACA,MACA,UACA,SACA,UACA,aACA,YACA,SACA,QACA,OACA,iBACA,YACA,cACA,YACA,SACA,MACA,UACA,OACA,QACA,OACA,OACA,WACA,SACA,eACA,cACA,gBACA,QACA,cACA,aACA,eACA,iBACA,QACA,YACA,eACA,aACA,eACA,cACA,aACA,WACA,kBACA,SACA,cACA,WACA,WACA,SACA,YACA,aACA,eACA,eACA,eACA,aACA,eACA,gBACA,aACA,aACA,wBACA,WACA,QACA,UACA,OACA,YACA,MACA,OACA,SACA,SACA,QACA,SACA,OACA,aACA,QACA,YACA,OACA,SACA,WACA,SACA,QACA,OACA,aACA,QACA,QACA,MACA,YACA,MACA,aACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,YACA,WACA,MACA,cACA,cACA,SACA,YACA,UACA,QACA,cACA,cACA,kBACA,SACA,YACA,WACA,OACA,OACA,SACA,WACA,YACA,SACA,SACA,UACA,OACA,OACA,QACA,MACA,MACA,MACA,WACA,QACA,OACA,QACA,WACA,KACA,MACA,MACA,MACA,QACA,cACA,OACA,SACA,YACA,SACA,SACA,UACA,UACA,OACA,SACA,SACA,MACA,SACA,eACA,cACA,eACA,YACA,gBACA,iBACA,cACA,YACA,UACA,OACA,WACA,YACA,eACA,cACA,WACA,cACA,eACA,eACA,SACA,YACA,uBACA,gBACA,iBACA,aACA,cACA,UACA,eACA,YACA,cACA,aACA,cACA,SACA,UACA,UACA,UACA,QACA,SACA,SACA,YACA,eACA,mBACA,eACA,SACA,gBACA,WACA,SACA,aACA,YACA,QACA,YACA,YACA,SACA,eACA,OACA,UACA,cACA,cACA,QACA,OACA,SACA,MACA,aACA,MACA,eACA,YACA,aACA,qBACA,SACA,aACA,WACA,OACA,WACA,YACA,cACA,WACA,WACA,YACA,aACA,cACA,MACA,OACA,YACA,OACA,MACA,QACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QACA,KACA,OACA,OACA,OACA,OACA,QACA,MACA,UACA,UACA,MACA,MACA,QACA,cACA,YACA,SACA,iBACA,aACD,CACK,EAAQ,EAAK,QAAQ,CACrB,EAAY,CAAE,SAAU,CAC5B,CACE,MAAO,EAAM,MAAM,CAAC,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAY,EAAM,SAAS,CAAC,UAChE,UAAW,UACb,EACA,CACE,UAAW,EACX,MAAO,EAAM,MAAM,CACjB,qBACA,EAAO,EAAM,SAAS,CAAC,UACzB,UAAW,gBACb,EACD,AAAC,EAuHF,MAAO,CACL,KAAM,aACN,QAAS,CAAE,MAAO,CAClB,SAAU,CACR,QAAW,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA7CO,CACpB,WACA,SACA,QACA,OACA,QACA,QACA,WACA,UACA,OACA,OACA,QACA,UACA,MACA,KACA,SACA,aACA,OACA,SACA,MACA,UACA,UACA,UACA,YACA,YACA,SACA,SACA,SACA,SACA,WACA,SACA,eACA,QACA,SACA,YACA,MACA,OACA,WACA,QACD,EAOG,QAAS,2DACT,MAAO,aACP,SAAU,aACV,SAAU,AACR,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1EU,CACd,iBACA,UACA,QACA,SACA,YACA,UACA,SACA,QACA,YACA,YACA,YACA,UACA,UACA,YACA,aACA,SACA,aACA,aACA,QACA,WACA,MACD,GAsDG,KAvFU,CACZ,UACA,OACA,OACA,QACA,SACA,QACA,MACA,OACA,QACD,AA8EC,EACA,SAAU,CAlHE,CACZ,SAAU,CACR,CAAE,MAAO,CACP,QACA,MACA,EACA,MACA,UACA,MACA,EACD,AAAC,EACF,CAAE,MAAO,CACP,QACA,MACA,EACD,AAAC,EACH,CACD,UAAW,CACT,EAAG,UACH,EAAG,cACH,EAAG,UACH,EAAG,uBACL,CACF,EAzCkB,CAChB,MAAO,CACL,SACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EA8HI,EA7Ha,CACf,UAAW,EACX,MAAO,CACL,KACA,EACD,CACD,UAAW,CAAE,EAAG,UAAW,CAC7B,EAwHI,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECrYA,EAAO,OAAO,CApCd,SAAiB,CAAI,EACnB,MAAO,CACL,KAAM,kBACN,SAAU,CACR,EAAK,aAAa,CAClB,CACE,MAAO,6CACP,IAAK,IACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,2BACP,IAAK,IACL,SAAU,wCACV,UAAW,EACb,EACA,CACE,MAAO,iBACP,IAAK,IACL,SAAU,CAAE,EAAK,aAAa,CAAE,CAChC,UAAW,EACb,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,MACP,IAAK,OACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,UAAW,CACb,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,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SACA,MACA,QACA,OACA,QACD,CAsGK,EAAW,CACf,SAAU,sBACV,QAAS,EACT,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,MACD,CAkCC,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,OACD,CA0BC,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,QACD,AAQD,EAEM,EAAS,CACb,UAAW,OACX,MAAO,gBACT,EAEM,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAU,EACV,QAAS,GACX,EAEM,EAAkB,CACtB,MAAO,OACP,UAAW,CACb,EAEM,EAAS,CACb,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,UAAW,EACb,EACA,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACD,CACD,UAAW,EACb,EACA,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACA,EACD,AACH,EACA,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EACA,EACD,AACH,EACA,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACb,EACA,CACE,MAAO,4BACP,IAAK,GACP,EACA,CACE,MAAO,4B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ACrB,MAAO,cACP,IAAK,SACP,GACA,EAAK,iBAAiB,CAAC,CACrB,MAAO,cACP,IAAK,SACP,GACA,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,CACE,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACD,AACH,EAWA,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACL,EACA,MAAO,CACL,EACA,EACD,AACH,EACA,CACE,MAAO,CACL,EAAG,WACH,EAAG,QACL,EACA,MAAO,CACL,UACA,EACD,AACH,EACA,CACE,MAAO,CACL,EAAG,cACH,EAAG,QACL,EACA,MAAO,CACL,EACA,EACD,AACH,EACA,CACE,MAAO,CAAE,EAAG,QAAS,EACrB,MAAO,CACL,mBACA,EACD,AACH,EACD,AACH,EAGA,CAEE,MAAO,CAAE,EAAG,UAAW,EACvB,MAAO,CACL,EACA,MACA,KACA,MACD,AACH,EAEA,CACE,MAAO,WACP,UAAW,EACX,SAAU,CACR,CAAE,MAAO,CAAa,EACtB,CAAE,MAAO,SAAU,EACpB,AACH,EAEA,CACE,MAAO,cACP,UAAW,EACX,MAAO,CACT,EAEA,CAEE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAM,EAAG,AAChC,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECjHA,EAAO,OAAO,CAtId,SAAkB,CAAI,EAkBpB,MAAO,CACL,KAAM,WACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAW,cACX,QAAS,CACP,MACA,KACA,MACA,SACA,QACA,QACA,aACA,KACA,OACA,SACA,OACA,MACA,QACA,YACA,WACA,MACA,MACA,WACA,UACA,KACA,KACA,UACA,UACA,cACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,SACA,UACA,MACA,SACA,SACA,KACA,OACA,KACA,MACA,MACA,MACA,MACA,SACA,SACA,OACA,KACA,MACA,OACA,MACA,UACA,OACA,QACA,OACD,CACD,SA/EmB,CACrB,QACA,OACA,QACA,OACA,Q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KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,MAClD,EACA,CAEE,MAAO,uBAAwB,EAiBlC,AACH,EACD,AACH,EACA,CAEE,UAAW,SACX,MAAO,gBACT,EACA,CACE,MAAO,OAAS,AAvHE,wFAuHc,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,iBACvD,YAAa,CAAA,EACb,SAAU,CACR,CACE,UAAW,WACX,MAAO,KACT,EACD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,oBAAsB,AA/HvB,26BA+H+B,KAAK,CAAC,KAAK,IAAI,CAAC,KAAO,UAAW,EACzE,CACE,MAAO,OACP,UAAW,CACb,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECbA,EAAO,OAAO,CA5Id,SAAa,CAAI,EAoGf,IAAM,EAAmB,CACvB,MAAO,CACL,6CACA,MACA,EAAK,QAAQ,CACd,CACD,MAAO,CACL,EAAG,UACH,EAAG,aACL,CACF,EAEA,MAAO,CACL,KAAM,gBACN,SAAU,CACR,QA3Ba,CACf,QACA,MACA,KACA,KACA,SACA,OACA,QACA,SACA,WACD,CAkBG,SAnHc,CAChB,MACA,OACA,UACA,OACA,OACA,OACA,aACA,YACA,kBACA,OACA,YACA,QACA,OACA,SACA,MACA,UACA,QACA,QACA,UACA,WACA,KACA,KACA,cACA,MACA,cACA,aACA,QACA,SACA,UACA,WACA,SACA,cACA,MACA,QACA,MACA,MACA,MACA,QACA,YACA,aACA,WACA,SACA,QACA,SACA,MACA,SACA,UACA,UACA,SACA,UACA,UACA,aACA,QACA,UACA,WACA,WACA,WACA,SACA,OACA,MACA,aACA,WACA,eACA,SACA,OACA,OACA,MACA,UACA,cACA,QACA,YACA,aACA,QACA,QACA,QACD,CAwCG,KAtCU,CACZ,SACA,QACA,QACA,QACA,SACA,SACD,AAgCC,EACA,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAK,aAAa,CAClB,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACP,EACA,EACA,CACE,cAAe,gCACf,IAAK,KACP,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvEA,EAAO,OAAO,CAnEd,SAAuB,CAAI,EACzB,MAAO,CACL,KAAM,wBACN,SAAU,CACR,QACE,y/FAmCF,SACE,kcAKJ,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAK,aAAa,CAClB,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,QACP,UAAW,CACb,EACA,CAAE,MAAO,cAAe,EACzB,AACH,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECkPA,EAAO,OAAO,CAjTd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAGlB,EAAiB,QACjB,EAAsB,EAAM,MAAM,CAAC,EAAgB,EAAK,mBAAmB,EAC3E,EAAW,EAAM,MAAM,CAAC,EAAgB,EAAK,QAAQ,EAErD,EAAkB,CACtB,UAAW,wBACX,UAAW,EACX,MAAO,EAAM,MAAM,CACjB,KACA,oCACA,EACA,EAAM,SAAS,CAAC,SACpB,EACM,EAAgB,wCA+DhB,EAAW,CAEf,QAEA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,SACA,UACA,QACA,QACA,YACA,aACA,KACA,MACA,QACA,QACA,OACA,OACA,UACA,WACA,SACA,eACA,sBACA,oBACA,iBACA,WAEA,UACA,aACA,YACA,SACA,OACA,OACA,UACA,iBACA,gBACA,mBACA,OACA,YACA,SACA,QACA,UACA,eACA,iBACA,eACA,QACA,kBACA,eACA,cACA,SACA,WACA,UACA,aACA,OACA,iBACA,eACA,OACA,SACA,WACA,eACA,aACA,mBACD,CACK,EAAQ,CACZ,KACA,MACA,MACA,MACA,OACA,QACA,KACA,MACA,MACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,SACA,SACA,SACA,MACD,CACD,MAAO,CACL,KAAM,OACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAU,EAAK,QAAQ,CAAG,KAC1B,KAAM,EACN,QAhKa,CACf,WACA,KACA,QACA,QACA,SACA,MACA,QACA,QACA,WACA,QACA,KACA,MACA,OACA,OACA,SACA,QACA,QACA,KACA,MACA,KACA,OACA,KACA,MACA,OACA,QACA,QACA,MACA,OACA,MACA,WACA,OACA,MACA,MACA,SACA,OACA,OACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,SACA,QACA,SACA,UACA,MACA,UACA,QACA,QACA,QACD,CA4GG,QA3Ga,CACf,OACA,QACA,OACA,OACA,KACA,MACD,CAqGG,SAAU,CACZ,EACA,QAAS,KACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,OAAO,CAAC,OAAQ,OAAQ,CAAE,SAAU,CAAE,OAAQ,AAAC,GACpD,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CACnC,MAAO,MACP,QAAS,IACX,GACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,0BAA2B,EACpC,CAAE,MAAO,iCAAkC,EAC5C,AACH,EACA,CACE,UAAW,SACX,MAAO,yBACT,EACA,CACE,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gBAAkB,CAAc,EACzC,CAAE,MAAO,iBAAmB,CAAc,EAC1C,CAAE,MAAO,uBAAyB,CAAc,EAChD,CAAE,MAAO,kDACE,CAAc,EAC1B,CACD,UAAW,CACb,EACA,CACE,MAAO,CACL,KACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,gBACL,CACF,EACA,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,EAAK,gBAAgB,CACtB,AACH,EACD,AACH,EACA,CACE,MAAO,CACL,MACA,MACA,cACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,UACH,EAAG,UACL,CACF,EAEA,CACE,MAAO,CACL,MACA,MACA,EACA,MACA,KACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,WACH,EAAG,SACL,CACF,EACA,CACE,MAAO,CACL,OACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,CACL,uCACA,MACA,EACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,aACL,CACF,EACA,CACE,MAAO,EAAK,QAAQ,CAAG,KACvB,SAAU,CACR,QAAS,OACT,SAAU,EACV,KAAM,CACR,CACF,EACA,CACE,UAAW,cACX,MAAO,IACT,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECpTA,IAAA,EAAA,EAAA,sCAuiBA,CAAA,EAAO,OAAO,CApiBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CA6dxB,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAnBa,CACf,OACA,UACA,QACA,cACA,cACA,WACA,MACA,SACA,SACA,YACA,SACA,WACD,CAOG,QAheiB,CACnB,KACA,KACA,OACA,OACA,MACA,QACA,QACA,QACA,QACA,SACA,KACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,SACA,QACA,YACA,UACA,KACA,OACA,SACA,QACA,OACA,WACA,WACA,SACA,OACA,KACA,SACA,WACA,QACA,OACA,QACA,QACA,SACA,UACA,OACA,OACA,WACA,QACA,UACA,SACA,UACA,SACA,MACA,OACA,MACA,WACA,SACA,SACA,UACA,SACA,SACA,SACA,MACA,OACA,WACA,OACA,QACA,SACA,UACA,QACA,SACA,MACA,UACA,MACA,MACA,QACA,KACA,UACA,QACA,SACA,SACA,WACA,WACA,OACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,KACA,MACA,OACA,UACA,SACA,UACA,MACA,OACA,KACA,KACA,QACA,UACA,aACA,QACA,WACA,SACA,MACA,QACA,SACA,SACA,WACA,OACA,QACD,AAkXC,EACA,SAAU,CACR,CAEE,UAAW,UACX,MAAO,wCACT,EACA,CAEE,UAAW,WACX,MAAO,6BACT,EACA,CACE,MAAO,CACL,OACA,oBACA,YACA,YACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,QACL,CACF,EACA,CACE,MAAO,CACL,eACA,MACA,0BACD,CACD,UAAW,CACT,EAAG,WACH,EAAG,gBACL,CACF,EACA,CACE,UAAW,WACX,MAAO,IAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAzHR,CACtB,SACA,WACA,SACA,UACA,WACA,UACA,UACA,KACA,OACA,MACA,OACA,SACA,OACA,KACA,QACA,QACA,SACA,QACA,OACA,SACA,MACA,QACA,UACA,QACA,OACA,WACA,UACA,QACA,MACA,UACA,QACA,WACA,QACA,UACA,WACA,QACA,QACA,UACA,OACA,MACA,SACA,SACA,UACA,WACA,UACA,UACA,SACA,UACA,UACA,QACA,UACA,OACA,KACA,OACA,UACA,QACA,SACA,SACA,QACA,SACD,EA6DG,EACA,CAEE,UAAW,iBACX,MAAO,yBACT,EACA,CAIE,UAAW,OACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAhaR,CAChB,MACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,UACA,UACA,OACA,MACA,UACA,OACA,OACA,MACA,OACA,SACA,OACA,QACA,SACA,UACA,SACA,WACA,WACA,MACA,OACA,MACA,SACA,KACA,SACA,WACA,SACA,UACA,UACA,QACA,OACA,UACA,WACA,WACA,MACA,SACA,QACA,UACA,UACA,QACA,QACA,SACA,SACA,SACA,SACA,UACA,OACA,MACA,UACA,MACA,QACA,OACA,QACA,WACA,UACA,QACA,WACA,SACA,MACA,OACA,QACA,MACA,UACA,SACA,OACA,UACA,QACA,WACA,SACA,OACA,YACA,WACA,UACA,QACA,OACA,UACA,WACA,WACA,QACA,SACA,QACA,QACA,WACA,UACA,SACA,OACA,OACA,QACA,UACA,QACA,OACA,OACA,SACA,SACA,QACA,YACA,UACA,UACA,SACA,MACA,WACA,OACA,UACA,QACA,SACA,SACA,QACA,SACA,SACA,MACA,QACA,QACA,QACA,MACA,UACA,UACA,WACA,MACA,SACA,OACA,SACA,SACA,UACA,SACA,MACA,QACA,OACA,SACA,SACA,SACA,UACA,MACA,MACA,OACA,MACA,SACA,MACA,QACA,QACA,OACA,IACA,QACA,QACA,SACA,OACA,MACA,OACA,UACA,WACA,MACA,OACA,QACA,MACA,QACA,UACA,OACA,WACA,WACA,UACA,QACA,UACA,WACA,SACA,WACA,WACA,QACA,MACA,OACA,OACA,MACA,QACA,SACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,OACA,MACA,SACA,OACA,MACA,OACA,WACA,UACA,SACA,OACA,MACA,SACA,SACA,SACA,UACA,SACA,MACA,SACA,SACA,SACA,UACA,QACA,SACA,MACA,OACA,OACA,WACA,OACA,SACA,QACA,YACA,UACA,WACA,OACA,QACA,QACA,UACA,SACA,MACA,MACA,SACA,WACA,WACA,SACA,UACA,SACA,SACA,UACA,UACA,SACA,UACA,WACA,YACA,WACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,aACA,cACA,aACA,cACA,aACA,cACA,aACA,SACA,UACA,UACA,WACA,QACA,SACA,QACA,SACA,UACA,OACA,MACA,UACA,UACA,WACA,WACD,GAwIyC,SACtC,EACA,CACE,UAAW,SACX,SAAU,CACR,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACvB,AACH,EACA,EAAK,OAAO,CAAC,MAAO,KACpB,EAAK,oBAAoB,CAC1B,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECpiBA,IAAA,EAAA,EAAA,sCA+MA,CAAA,EAAO,OAAO,CA7Md,SAAe,CAAI,EACjB,IAAM,EAAQ,EAAK,KAAK,CAOlB,EAAQ,CACZ,UAAW,QACX,SAAU,CACR,CAAE,MAAO,kBAAmB,EAC5B,CACE,MAA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CA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EAgIhB,CAAA,EAAO,OAAO,CApHd,SAAc,CAAI,EAChB,IAAM,EAvtBC,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe,AAktBG,EAltBE,oBAAoB,CACxC,SAAU,CACR,MAAO,SACP,MAAO,iDACT,EACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,AAmsBc,EAnsBT,gBAAgB,CACrB,AAksBc,EAlsBT,iBAAiB,CACvB,AACH,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,AA6rBS,EA7rBJ,SAAS,CAAd,kGASP,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF,EAkrBM,EAAgB,WAGhB,EAAW,CACf,UAAW,WACX,MAAO,kCACP,UAAW,CACb,EAEA,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,QAAS,SACT,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAGzB,EAAM,eAAe,CACrB,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACb,EACA,CACE,UAAW,iBACX,MAAO,oBACP,UAAW,CACb,EACA,EAAM,uBAAuB,CAC7B,CACE,UAAW,eACX,MAAO,OAAS,EAAK,IAAI,CAAC,KAAO,OAEjC,UAAW,CACb,EACA,CACE,UAAW,kBACX,MAAO,KAAO,AAxCK,EAwCY,IAAI,CAAC,KAAO,GAC7C,EACA,CACE,UAAW,kBACX,MAAO,SAAW,AA7CE,EA6CgB,IAAI,CAAC,KAAO,GAClD,EACA,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,EAAM,eAAe,CAAE,AACrC,EACA,EAAM,YAAY,CAClB,CACE,UAAW,YACX,MAAO,OAAS,EAAW,IAAI,CAAC,KAAO,MACzC,EACA,CAAE,MAAO,4oCAA6oC,EACtpC,CACE,MAAO,IACP,IAAK,QACL,UAAW,EACX,SAAU,CACR,EAAM,aAAa,CACnB,EACA,EAAM,QAAQ,CACd,EAAM,eAAe,CACrB,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAM,SAAS,CACf,EAAM,iBAAiB,CACxB,AACH,EAIA,CACE,MAAO,oBACP,SAAU,CACR,SAAU,EACV,QAAS,kBACX,CACF,EACA,CACE,MAAO,IACP,IAAK,OACL,YAAa,CAAA,EACb,SAAU,CACR,SAAU,UACV,QAtFa,kBAuFb,UAAW,EAAe,IAAI,CAAC,IACjC,EACA,SAAU,CACR,CACE,MAAO,EACP,UAAW,SACb,EACA,CACE,MAAO,eACP,UAAW,WACb,EACA,EACA,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CACrB,EAAM,QAAQ,CACd,EAAM,eAAe,CACtB,AACH,EACA,EAAM,iBAAiB,CACxB,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECzyBA,EAAO,OAAO,CAvBd,SAAe,CAAI,EACjB,MAAO,CACL,KAAM,gBACN,QAAS,CACP,UACA,eACD,CACD,SAAU,CACR,CACE,UAAW,cAIX,MAAO,qCACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACf,CACF,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC+FA,EAAO,OAAO,CArHd,SAAe,CAAI,EACjB,IAAM,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,MACD,CAiCD,MAAO,CACL,KAAM,QACN,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,UAAW,CACb,EACA,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,CACE,UAAW,UACX,SAAU,CACR,CAAE,MAAO,2BAA4B,EACrC,CACE,MAAO,oBACP,UAAW,CACb,EACA,CACE,MAAO,oBACP,UAAW,CACb,EACA,CAAE,MAAO,mGAAwC,EAClD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,OAAS,EAAqB,IAAI,CAAC,KAAO,MAAO,EAC1D,CACE,MAAO,OAAS,EAAqB,IAAI,CAAC,KAAO,2BACjD,UAAW,EACb,EACA,CACE,MAAO,6IACP,UAAW,EACb,EACD,AACH,EACA,CACE,UAAW,QACX,MAAO,cACP,UAAW,CACb,EACA,CAAE,MAAO,YAAa,EACvB,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECvDA,EAAO,OAAO,CA5Dd,SAAmB,CAAI,EACrB,IAAM,EAAe,qBACf,EAAO,CACX,UAAW,SACX,MAAO,SACT,EACM,EAAS,CACb,UAAW,SACX,MAAO,IAAM,EAAK,mBAAmB,AACvC,EACA,MAAO,CACL,KAAM,YACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,OACA,QACA,MACA,OACA,QACA,cACD,CACD,SAAU,CACR,EAAK,OAAO,CAAC,IAAK,KAClB,EAAK,gBAAgB,CACrB,CACE,UAAW,OACX,MAAO,wBACP,UAAW,CACb,EACA,CACE,MAAO,EAAe,IACtB,UAAW,CACb,EACA,EAAK,aAAa,CAClB,EACA,EACA,CAIE,MAAO,UAAY,EAAe,QAAU,EAAe,YAC3D,YAAa,CAAA,EACb,IAAK,KACL,QAAS,KACT,SAAU,CAAE,CAAE,MAAO,aAAe,CAAa,EAAG,AACtD,EACA,CACE,MAAO,OACP,IAAK,MACL,SAAU,CACR,EAAK,gBAAgB,CACrB,EACA,EAAK,aAAa,CAClB,EACD,AACH,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECQA,EAAO,OAAO,CAlEd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,oBACN,QAAS,CAAE,KAAM,CACjB,SAAU,CACR,SAAU,eACV,QAEE,iPAIF,SAEE,uFACF,QACE,6CACJ,EACA,QAAS,UACT,SAAU,CACR,CACE,UAAW,UACX,MAAO,mBACP,UAAW,CACb,EACA,EAAK,OAAO,CACV,SACA,SACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAEzB,CACE,UAAW,SACX,MAAO,wBAET,EACA,CACE,UAAW,OACX,MAAO,eACT,EACA,CACE,UAAW,OACX,MAAO,kBACP,UAAW,CACb,EACA,CACE,MAAO,oBAAuB,EAChC,EAAK,OAAO,CAAC,EAAK,gBAAgB,CAAE,CAClC,UAAW,SACX,UAAW,CACb,GACA,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GACrD,CACE,UAAW,SACX,MACE,2HAIF,UAAW,CACb,EACA,CAAE,MAAO,OACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC6hFA,EAAO,OAAO,CA7jFd,SAAa,CAAI,EAgBf,IAAM,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA+9EM,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,kDACV,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,EAAS,CAAE,UAAW,QAAS,GAC5C,CACE,MAAO,YACP,IAAK,IACL,QAAS,KACX,EACA,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAC1B,AACH,EAEA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QAt/Ea,CACf,QACA,YACA,WACA,UACA,OACA,QACA,WACA,eACA,UACA,KACA,OACA,OACA,WACA,MACA,UACA,OACA,KACA,QACA,UACA,SACA,OACA,OACA,QACA,KACA,MACA,YACA,QACA,OACD,CA09EG,SAx7Ea,CACf,MACA,UACA,OACA,SACA,YACA,aACA,eACA,mBACA,kBACA,uBACA,aACA,eACA,iBACA,kBACA,cACA,0BACA,oBACA,sBACA,eACA,YACA,cACA,mBACA,yBACA,oBACA,mBACA,cACA,mBACA,uBACA,4BACA,wBACA,mBACA,kBACA,kBACA,WACA,uBACA,aACA,eACA,iBACA,cACA,UACA,eACA,qBACA,cACA,oBACA,mBACA,gBACA,eACA,cACA,uBACA,mBACA,yBACA,oBACA,kBACA,eACA,oBACA,UACA,cACA,yBACA,oBACA,uBACA,aACA,eACA,kBACA,uBACA,gCACA,YACA,eACA,WACA,eACA,yBACA,oBACA,gBACA,wBACA,YACA,aACA,4BACA,aACA,UACA,cACA,YACA,iBACA,uBACA,kBACA,gBACA,gBACA,kBACA,gCACA,sCACA,QACA,QACA,SACA,WACA,gBACA,SACA,qBACA,gBACA,mBACA,cACA,gBACA,QACA,kBACA,wBACA,gBACA,cACA,cACA,cACA,eACA,UACA,aACA,kBACA,mBACA,cACA,uBACA,YACA,UACA,gBACA,WACA,oBACA,aACA,cACA,sBACA,+BACA,cACA,eACA,iBACA,sBACA,eACA,aACA,eACA,cACA,aACA,mBACA,WACA,aACA,WACA,cACA,WACA,eACA,qBACA,OACA,cACA,MACA,UACA,aACA,cACA,eACA,gBACA,iBACA,iBACA,uBACA,iBACA,iBACA,SACA,QACA,eACA,iBACA,OACA,WACA,WACA,SACA,gBACA,qBACA,oBACA,iBACA,iBACA,iBACA,gBACA,gBACA,oBACA,iBACA,gBACA,iBACA,gBACA,iBACA,eACA,kBACA,sBACA,mBACA,aACA,aACA,kBACA,OACA,QACA,MACA,WACA,iBACA,kBACA,aACA,eACA,WACA,gBACA,QACA,WACA,gBACA,oBACA,gBACA,oBACA,mBACA,YACA,YACA,sBACA,YACA,iBACA,oBACA,cACA,kBACA,iBACA,iBACA,eACA,eACA,cACA,0BACA,6BACA,wBACA,yBACA,eACA,kBACA,YACA,gBACA,sCACA,OACA,gBACA,aACA,YACA,oBACA,eACA,0BACA,YACA,aACA,eACA,wBACA,iBACA,WACA,aACA,qBACA,aACA,eACA,iBACA,gBACA,iBACA,kBACA,gBACA,qBACA,gBACA,mBACA,mBACA,aACA,YACA,aACA,cACA,YACA,iBACA,YACA,eACA,eACA,YACA,YACA,SACA,uBACA,sBACA,mBACA,8BACA,kBACA,UACA,UACA,eACA,WACA,aACA,8BACA,oBACA,kBACA,UACA,aACA,YACA,eACA,OACA,iBACA,gBACA,iBACA,kBACA,YACA,qBACA,qBACA,4BACA,qBACA,2BACA,iBACA,kBACA,iBACA,uBACA,gBACA,qBACA,2BACA,oBACA,eACA,aACA,mBACA,yBACA,kBACA,cACA,cACA,eACA,eACA,qBACA,qBACA,gBACA,wBACA,kBACA,aACA,uBACA,cACA,YACA,cACA,gBACA,aACA,gBACA,iBACA,cACA,eACA,cACA,yBACA,gBACA,eACA,UACA,gBACA,kBACA,sBACA,UACA,eACA,gBACA,eACA,cACA,gBACA,aACA,kBACA,aACA,WACA,mBACA,wBACA,kBACA,sBACA,sBACA,uBACA,kBACA,oBACA,uBACA,oBACA,kBACA,gBACA,MACA,QACA,aACA,gBACA,YACA,YACA,eACA,wBACA,mBACA,cACA,eACA,eACA,kBACA,oBACA,qBACA,gBACA,mBACA,cACA,qBACA,gBACA,yBACA,iBACA,eACA,oBACA,aACA,aACA,uBACA,0BACA,qBACA,mBACA,aACA,oBACA,aACA,aACA,gBACA,aACA,gBACA,oBACA,qBACA,OACA,cACA,WACA,UACA,WACA,SACA,mBACA,kBACA,mBACA,gBACA,kBACA,eACA,eACA,sBACA,YACA,mBACA,0BACA,SACA,sBACA,uBACA,sBACA,sBACA,cACA,gBACA,aACA,gBACA,aACA,aACA,aACA,cACA,WACA,iBACA,sBACA,iBACA,UACA,UACA,iBACA,mBACA,oBACA,kBACA,gBACA,mBACA,kBACA,eACA,uBACA,qBACA,uBACA,YACA,oBACA,iBACA,oBACA,aACA,0BACA,eACA,6BACA,yBACA,YACA,mBACA,qBACA,eACA,yBACA,0BACA,yBACA,yBACA,iBACA,uBACA,sBACA,cACA,eACA,cACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,gBACA,iBACA,oBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,6BACA,eACA,gBACA,uBACA,yBACA,eACA,uBACA,oBACA,uBACA,wBACA,kBACA,mBACA,mBACA,mBACA,mBACA,eACA,sBACA,gBACA,wBACA,cACA,mBACA,4BACA,uBACA,uBACA,iBACA,yBACA,2BACA,0BACA,yBACA,aACA,wBACA,aACA,WACA,YACA,YACA,WACA,gBACA,iBACA,oBACA,oBACA,gBACA,cACA,WACA,UACA,qBACA,cACA,gBACA,aACA,cACA,YACA,sBACA,mBACA,aACA,UACA,gBACA,gBACA,oBACA,2BACA,cACA,yBACA,qBACA,yBACA,mBACA,gBACA,2BACA,kBACA,sBACA,uBACA,iBACA,iBACA,kBACA,wBACA,8BACA,wBACA,gBACA,mBACA,eACA,cACA,eACA,mBACA,oBACA,kBACA,gBACA,oBACA,sBACA,iBACA,eACA,eACA,aACA,cACA,yBACA,aACA,SACA,SACA,UACA,SACA,OACA,eACA,UACA,gBACA,iBACA,WACA,WACA,mBACA,MACA,qBACA,WACA,eACA,mBACA,qBACA,cACA,uBACA,iBACA,iBACA,eACA,oBACA,cACA,kBACA,aACA,eACA,aACA,gBACA,oBACA,iBACA,SACA,gBACA,yBACA,qBACA,wBACA,wBACA,+BACA,oBACA,0BACA,wBACA,uBACA,iBACA,gBACA,0BACA,0BACA,wBACA,4BACA,cACA,eACA,oBACA,wBACA,WACA,cACA,eACA,+BACA,oBACA,YACA,iBACA,WACA,oBACA,uBACA,0BACA,gBACA,mBACA,aACA,mBACA,kBACA,gBACA,cACA,SACA,qBACA,SACA,cACA,aACA,oBACA,uBACA,mBACA,YACA,gCACA,YACA,YACA,gBACA,uBACA,sBACA,yBACA,uBACA,sBACA,uBACA,uBACA,qBACA,2BACA,mBACA,yBACA,eACA,cACA,gBACA,gCACA,4BACA,yBACA,oBACA,gBACA,eACA,WACA,aACA,cACA,qBACA,eACA,kBACA,SACA,WACA,QACA,WACA,SACA,YACA,SACA,oBACA,WACA,UACA,YACA,cACA,WACA,aACA,YACA,WACA,aACA,WACA,eACA,cACA,gBACA,eACA,SACA,OACA,4BACA,gCACA,2BACA,iCACA,OACA,4BACA,aACA,wBACA,qBACA,mBACA,iBACA,WACA,kBACA,qBACA,eACA,qBACA,uBACA,oBACA,iBACA,iBACA,gBACA,sBACA,gBACA,wBACA,mBACA,+BACA,0BACA,gCACA,kBACA,wBACA,oBACA,gBACA,kBACA,2BACA,iBACA,eACA,qBACA,cACA,eACA,mBACA,0BACA,eACA,kBACA,mBACA,yBACA,gBACA,qBACA,mBACA,gBACA,0BACA,qBACA,qBACA,sBACA,0BACA,mBACA,aACA,WACA,iBACA,kBACA,gBACA,mBACA,WACA,qBACA,oBACA,oBACA,yBACA,oBACA,qBACA,gBACA,iBACA,OACA,mBACA,UACA,SACA,MACA,sBACA,oBACA,eACA,SACA,OACA,UACA,kBACA,YACA,YACA,YACA,aACA,cACA,aACA,sBACA,OACA,UACA,YACA,cACA,mBACA,oBACA,yBACA,SACA,mBACA,oBACA,SACA,OACA,eACA,gBACA,OACA,qBACA,YACA,WACA,cACA,UACA,UACA,QACA,cACA,iBACA,cACA,MACA,cACA,YACA,kBACA,qBACA,uBACA,YACA,WACA,mBACA,kBACA,oBACA,WACA,eACA,aACA,eACA,YACA,kBACA,qBACA,gBACA,qBACA,oBACA,eACA,SACA,YACA,qBACA,kBACA,mBACA,oBACA,gBACA,aACA,aACA,gBACA,WACA,aACA,OACA,WACA,mBACA,oBACA,eACA,eACA,MACA,qBACA,mBACA,gBACA,qBACA,gBACA,kBACA,cACA,sBACA,uBACA,sBACA,0BACA,mBACA,kBACA,gBACA,8BACA,4BACA,wBACA,mBACA,mBACA,yBACA,mBACA,eACA,sBACA,mBACA,WACA,mBACA,+BACA,kBACA,kBACA,0BACA,yBACA,kBACA,wBACA,mBACA,uBACA,kBACA,yCACA,yBACA,gBACA,kBACA,iBACA,uBACA,8BACA,kBACA,sBACA,sBACA,YACA,mBACA,wBACA,mBACA,2BACA,gCACA,aACA,oBACA,iBACA,SACA,eACA,gBACA,oBACA,0BACA,UACA,kBACA,kBACA,gBACA,uBACA,qBACA,wBACA,0BACA,wBACA,sBACA,aACA,0BACA,uBACA,iBACA,YACA,iBACA,eACA,iBACA,eACA,qBACA,gBACA,cACA,SACA,cACA,oBACA,eACA,cACA,gBACA,oBACA,mBACA,iBACA,eACA,gBACA,gBACA,UACA,mBACA,wBACA,iBACA,0BACA,mBACA,iBACA,eACA,mBACA,qBACA,YACA,oBACA,oBACA,eACA,eACA,cACA,qBACA,iBACA,iBACA,oBACA,gBACA,wBACA,gBACA,eACA,mBACA,qBACA,oBACA,0BACA,yBACA,yBACA,uBACA,qBACA,iBACA,mBACA,cACA,kBACA,eACA,qBACA,SACA,YACA,kBACA,aACA,YACA,kBACA,eACA,cACA,oBACA,oBACA,YACA,YACA,2BACA,iBACA,gBACA,cACA,mBACA,mBACA,mBACA,oBACA,iBACA,eACA,qBACA,2BACA,WACA,aACA,eACA,yBACA,qBACA,iBACA,iBACA,mBACA,sBACA,iBACA,UACA,aACA,iBACA,eACA,kBACA,uBACA,mBACA,kBACA,sBACA,sBACA,iBACA,eACA,oBACA,cACA,iBACA,kBACA,cACA,kBACA,mBACA,iBACA,gBACA,yBACA,sBACA,WACA,WACA,aACA,cACA,UACA,OACA,QACA,YACA,iBACA,sBACA,oBACA,UACA,aACA,aACA,SACA,qBACA,kBACA,SACA,QACA,OACA,eACA,kBACA,gBACA,WACA,YACA,eACA,iBACA,YACA,cACA,gBACA,WACA,oBACA,gBACA,aACA,gBACA,aACA,YACA,aACA,WACA,WACA,aACA,mBACA,gBACA,OACA,QACA,YACA,aACA,MACA,cACA,WACA,oBACA,WACA,QACA,kBACA,aACA,KACA,SACA,cACA,qBACA,UACA,WACA,YACA,4BACA,sBACA,aACA,0BACA,eACA,kBACA,YACA,cACA,kBACA,aACA,qBACA,SACA,qBACA,YACA,SACA,oBACA,gBACA,kBACA,sBACA,UACA,wBACA,0BACA,UACA,gBACA,eACA,0BACA,aACA,kBACA,UACA,aACA,YACA,UACA,qBACA,mBACA,kBACA,cACA,iBACA,aACA,aACA,YACA,cACA,iBACA,iBACA,mBACA,oBACA,wBACA,UACA,iBACA,cACA,eACA,oBACA,gBACA,eACA,0BACA,WACA,uBACA,4BACA,cACA,cACA,WACA,YACA,YACA,cACA,eACA,wBACA,kCACA,gBACA,oBACA,QACA,gBACA,eACA,SACA,WACA,iBACA,cACA,WACA,eACA,WACA,aACA,mBACA,sBACA,WACA,0BACA,WACA,mBACA,iBACA,kBACA,mBACA,iBACA,wBACA,4BACA,wBACA,SACA,mBACA,cACA,oBACA,mBACA,iBACA,cACA,mBACA,iBACA,mBACA,yBACA,YACA,mBACA,iBACA,YACA,QACA,qBACA,OACA,SACA,eACA,aACA,aACA,gBACA,uBACA,aACA,aACA,UACA,gBACA,SACA,YACA,WACA,UACA,OACA,aACA,OACA,SACA,aACA,WACA,cACA,QACA,UACA,UACA,eACA,WACA,SACA,WACA,eACA,YACA,iBACA,cACA,aACA,kBACA,cACA,YACA,eACA,oBACA,4BACA,4BACA,oBACA,yBACA,iCACA,iCACA,mBACA,wBACA,gBACA,YACA,iBACA,eACA,aACA,SACA,SACA,WACA,gBACA,SACA,cACA,YACA,UACA,SACA,oBACA,qBACA,kBACA,gCACA,+BACA,yCACA,iCACA,yCACA,mBACA,eACA,iBACA,qBACA,YACA,oBACA,oBACA,YACA,aACA,aACA,mBACA,iBACA,qBACA,yBACA,qBACA,WACA,OACA,cACA,oBACA,qBACA,KACA,cACA,eACA,YACA,WACA,WACA,gBACA,eACA,UACA,kBACA,eACA,wBACA,aACA,kBACA,cACA,mBACA,mBACA,kBACA,aACA,gBACA,qBACA,0BACA,6BACA,kCACA,qBACA,aACA,kBACA,gBACA,cACA,UACA,UACA,YACA,iBACA,UACA,eACA,WACA,OACA,UACA,eACA,aACA,WACA,WACA,eACA,eACA,cACA,aACA,cACA,WACA,WACA,iBACA,mBACA,OACA,eACA,YACA,aACA,SACA,iBACA,cACA,eACA,kBACA,eACA,eACA,gBACA,aACA,SACA,MACA,cACA,aACA,sBACA,SACA,YACA,gBACA,YACA,sBACA,gBACA,qBACA,oBACA,kBACA,0BACA,yBACA,sBACA,kBACA,qBACA,aACA,eACA,gBACA,cACA,oBACA,kBACA,wBACA,cACA,cACA,gBACA,cACA,YACA,iBACA,YACA,eACA,cACA,aACA,aACA,aACA,iBACA,kBACA,MACA,UACA,UACA,aACA,UACA,cACA,YACA,eACA,WACA,aACA,aACA,cACA,aACA,YACA,cACA,gBACA,eACA,cACA,iBACA,kBACA,cACA,aACA,eACA,eACA,mBACA,WACA,WACA,WACA,UACA,YACA,QACA,MACA,aACA,iBACA,gBACA,mBACA,oBACA,oBACA,aACA,cACA,oBACA,mBACA,0BACA,eACA,iBACA,MACA,eACA,qBACA,0BACA,oBACA,YACA,gBACA,YACA,SACA,OACA,iBACA,YACA,cACA,kBACA,eACA,eACA,eACA,kBACA,UACA,WACA,SACA,kBACA,eACA,cACA,OACA,kBACA,YACA,eACA,kBACA,kBACA,mBACA,6BACA,eACA,gBACA,iBACA,wBACA,cACA,mBACA,YACA,eACA,cACA,aACA,cACA,QACA,aACA,aACA,oBACA,oBACA,aACA,MACA,qBACA,eACA,iBACA,kBACA,eACA,YACA,kBACA,kBACA,iBACA,uBACA,uBACA,gBACA,cACA,mBACA,uBACA,uBACA,4BACA,mBACA,oBACA,uBACA,oBACA,mBACA,kBACA,eACA,uBACA,cACA,UACA,UACA,eACA,mBACA,KACA,aACA,WACA,mBACA,QACA,QACA,SACA,cACA,mBACA,YACA,mBACA,mBACA,qBACA,iBACA,QACA,YACA,gBACA,qBACA,SACA,SACA,sBACA,gBACA,aACA,gBACA,SACA,oBACA,aACA,gBACA,cACA,cACA,WACA,cACA,YACA,sBACA,YACA,cACA,cACA,OACA,WACA,wBACA,mBACA,mBACA,iBACA,iBACA,oBACA,iBACA,kBACA,iBACA,kBACA,qBACA,YACA,gBACA,gBACA,eACA,kBACA,kBACA,iBACA,4BACA,gBACA,qBACA,wBACA,WACA,mBACA,iBACA,cACA,mBACA,mBACA,wBACA,mBACA,sBACA,iBACA,uBACA,uBACA,WACA,iBACA,gBACA,iBACA,oBACA,kBACA,MACA,kBACA,qBACA,mBACA,qBACA,0BACA,uBACA,eACA,cACA,OACA,UACA,aACA,SACA,OACA,SACA,SACA,cACA,YACA,aACA,eACA,kBACA,eACA,SACA,gBACA,gBACA,aACA,iBACA,sBACA,uBACA,yBACA,kBACA,eACA,6BACA,mBACA,yBACA,0BACA,sBACA,yBACA,8BACA,+BACA,yBACA,wBACA,iBACA,8BACA,gCACA,2BACA,8BACA,sBACA,8BACA,gCACA,mCACA,mBACA,iBACA,uBACA,sBACA,sBACA,0BACA,+BACA,2BACA,oBACA,qBACA,iBACA,kBACA,qBACA,6BACA,gBACA,kBACA,oBACA,iBACA,aACA,yBACA,wBACA,qBACA,cACA,iBACA,uBACA,kBACA,wBACA,uBACA,iBACA,4BACA,uBACA,0BACA,kBACA,0BACA,4BACA,mBACA,uBACA,mBACA,gBACA,+BACA,aACA,eACA,8BACA,oBACA,qBACA,qBACA,qBACA,kBACA,gBACA,yBACA,SACA,YACA,iBACA,sBACA,SACA,aACA,UACA,iBACA,SACA,mBACA,kBACA,sBACA,iBACA,oBACA,eACA,aACA,UACA,cACA,aACA,kBACA,aACA,QACA,kBACA,eACA,aACA,cACA,kBACA,eACA,QACA,gBACA,YACA,YACA,eACA,YACA,eACA,YACA,oBACA,WACA,eACA,gBACA,8BACA,cACA,uBACA,aACA,UACA,gBACA,MACA,QACA,QACA,YACA,QACA,YACA,aACA,gBACA,aACA,aACA,YACA,kBACA,uBACA,0BACA,SACA,mBACA,qBACA,wBACA,qBACA,iBACA,oBACA,0BACA,eACA,YACA,YACA,iBACA,eACA,eACA,uBACA,eACA,qBACA,gBACA,oBACA,WACA,iBACA,iBACA,mBACA,gBACA,yBACA,0BACA,aACA,kBACA,aACA,MACA,mBACA,oBACA,cACA,sBACA,eACA,sBACA,mBACA,0BACA,2BACA,uBACA,oBACA,kBACA,aACA,yBACA,sBACA,iBACA,UACA,eACA,iBACA,mBACA,cACA,iBACA,kBACA,gBACA,gBACA,eACA,qBACA,uBACA,eACA,oBACA,uBACA,oBACA,cACA,aACA,kBACA,oBACA,qBACA,gBACA,wBACA,sBACA,mBACA,8BACA,iBACA,4BACA,yBACA,oBACA,iBACA,qBACA,mBACA,uBACA,2BACA,qBACA,YACA,aACA,UACA,oBACA,mBACA,iBACA,wBACA,qBACA,yBACA,SACA,eACA,cACA,iBACA,kBACA,+BACA,mCACA,gBACA,uBACA,qBACA,wBACA,kBACA,UACA,mBACA,aACA,iBACA,wBACA,eACA,cACA,iBACA,SACA,uBACA,eACA,mBACA,aACA,YACA,gBACA,iBACA,UACA,eACA,eACA,qBACA,0BACA,uBACA,aACA,mBACA,gBACA,WACA,gBACA,SACA,cACA,oBACA,yBACA,uBACA,cACA,cACA,gBACA,eACA,YACA,kBACA,sBACA,qBACA,gBACA,mBACA,mBACA,2BACA,oBACA,oBACA,aACA,gBACA,mBACA,sBACA,qBACA,wBACA,iBACA,sBACA,iBACA,sBACA,iBACA,sBACA,eACA,oBACA,oBACA,yBACA,eACA,oBACA,kBACA,uBACA,iBACA,sBACA,gBACA,qBACA,gBACA,qBACA,gBACA,qBACA,UACA,aACA,WACA,mBACA,sBACA,mBACA,iBACA,uBACA,UACA,eACA,qBACA,oBACA,0BACA,iBACA,iBACA,mBACA,yBACA,wBACA,gBACA,cACA,WACA,qBACA,oBACA,mBACA,kBACA,oBACA,oBACA,0BACA,yBACA,uBACA,gBACA,eACA,qBACA,WACA,iBACA,cACA,uBACA,qBACA,SACA,YACA,aACA,aACA,YACA,cACA,cACA,kBACA,oBACA,cACA,UACA,aACA,eACA,UACA,iBACA,iBACA,mBACA,oBACA,iBACA,UACA,6BACA,0BACA,2BACA,2BACA,sBACA,oBACA,wBACA,UACA,WACA,eACA,iBACA,aACA,YACA,eACA,aACA,mBACA,eACA,iBACA,mBACA,eACA,sBACA,gBACA,eACA,iBACA,mBACA,UACA,oBACA,iBACA,iBACA,eACA,oBACA,qBACA,gBACA,kBACA,uBACA,iBACA,qBACA,uBACA,iBACA,oBACA,iBACA,kBACA,sBACA,UACA,iBACA,iBACA,oBACA,wBACA,iBACA,aACA,iBACA,cACA,2BACA,eACA,oBACA,oBACA,iBACA,kBACA,cACA,eACA,oBACA,cACA,iBACA,oBACA,kBACA,kBACA,eACA,iBACA,qBACA,kBACA,iCACA,8BACA,gCACA,mBACA,oBACA,cACA,wBACA,4BACA,kBACA,4BACA,kBACA,WACA,uBACA,wBACA,8BACA,yBACA,4BACA,uBACA,2BACA,4BACA,0BACA,wBACA,kBACA,sBACA,oBACA,mBACA,wBACA,qBACA,kBACA,qBACA,yBACA,mBACA,UACA,aACA,eACA,aACA,uBACA,WACA,cACA,WACA,mBACA,qBACA,cACA,qBACA,UACA,UACA,aACA,UACA,yBACA,YACA,eACA,sBACA,sBACA,WACA,WACA,WACA,WACA,aACA,kBACA,iBACA,eACA,eACA,aACA,UACA,YACA,iBACA,gBACA,cACA,cACA,YACA,eACA,gBACA,OACA,WACA,YACA,cACA,oBACA,oBACA,sBACA,gBACA,mBACA,MACA,OACA,SACA,QACA,aACA,WACA,QACA,iBACA,cACA,oBACA,iBACA,iBACA,cACA,0BACA,mBACA,WACA,OACA,cACA,QACA,UACA,eACA,QACA,YACA,cACA,OACA,cACA,SACA,qBACA,OACA,gBACA,UACA,MACA,YACA,cACA,cACA,iBACA,gBACA,iBACA,cACA,cACA,kBACA,eACA,eACA,gBACA,cACA,aACA,sBACA,uBACA,wBACA,wBACA,2BACA,qBACA,sBACA,aACA,gBACA,aACA,gBACA,MACA,kBACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,iBACA,kBACA,kBACA,WACA,mBACA,WACA,aACA,aACA,YACA,WACA,aACA,WACA,QACA,aACA,oBACA,WACA,YACA,mBACA,sBACA,wBACA,OACA,UACA,gBACA,KACA,OACA,iBACA,WACA,eACA,WACA,WACA,YACA,UACA,UACA,UACA,cACA,WACA,UACA,cACA,mBACA,oBACA,cACA,cACA,yBACA,sBACA,uBACA,2BACA,kBACA,oBACA,cACA,iBACA,wBACA,cACA,OACA,cACA,cACA,aACA,QACA,UACA,aACA,gBACA,UACA,WACA,SACA,WACA,WACA,cACA,eACA,YACA,iBACA,cACA,aACA,cACA,YACA,eACA,oBACA,4BACA,4BACA,oBACA,yBACA,iCACA,iCACA,mBACA,gBACA,YACA,eACA,aACA,SACA,YACA,gBACA,mBACA,SACA,YACA,UACA,OACA,WACA,SACA,aACA,cACA,UACA,kBACA,eACA,eACA,kBACA,aACA,UACA,mBACA,eACA,mBACA,kBACA,aACA,kBACA,wBACA,eACA,iBACA,YACA,UACA,YACA,wBACA,QACA,mBACA,aACA,aACA,oBACA,iBACA,iBACA,iBACA,mBACA,8BACA,yBACA,uBACA,oBACA,SACA,YACA,YACA,qBACA,aACA,YACA,kBACA,iBACA,oBACA,mBACA,eACA,yBACA,kBACA,qBACA,qBACA,2BACA,iBACA,mBACA,WACA,iBACA,qBACA,2BACA,UACA,sBACA,cACA,kBACA,eACA,8BACA,2BACA,6BACA,WACA,iBACA,WACA,qBACA,kBACA,OACA,gBACA,YACA,gBACA,eACA,iBACA,aACA,aACA,kBACA,qBACA,oBACA,eACA,QACA,yBACA,0BACA,uBACA,wBACA,oBACA,qBACA,2BACA,sBACA,yBACA,oBACA,wBACA,yBACA,uBACA,qBACA,eACA,mBACA,YACA,iBACA,sBACA,eACA,gBACA,qBACA,kBACA,yBACA,eACA,kBACA,oBACA,yBACA,cACA,kBACA,gBACA,gBACA,sBACA,UACA,cACA,eACA,oBACA,cACA,gBACA,YACA,aACA,OACA,UACA,UACA,UACA,iBACA,YACA,YACA,eACA,qBACA,gBACD,CA+BG,QAz9EY,CACd,SACA,WACA,aACA,cACA,cACA,kBACA,OACA,OACA,QACA,UACA,cACA,YACA,eACA,MACA,UACA,QACA,KACA,aACA,aACA,kBACA,YACA,YACA,eACA,YACA,cACA,WACA,iBACA,OACA,OACD,AA47EC,EACA,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAAK,WAAW,CAriFH,CACf,UAAW,WACX,MAAO,iBACT,EAIiB,CACf,UAAW,QACX,MAAO,yCACT,EA8hFI,EACA,EACD,CACD,QAAS,CAEP,iBACA,OACA,KACA,IAEA,OAEA,cACA,OACA,OACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EC/kFC,IAAA,EAAA,EAAA,sCAqpBD,CAAA,EAAO,OAAO,CAnpBd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAe,EAAK,OAAO,CAAC,KAAM,KAiBlC,EAAW,CACf,OACA,QAGA,UACD,CASK,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,YACD,CAkYK,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,eACD,CAuBK,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,gBACD,CAIK,EAAW,AACf,CAAA,EAAA,EAAA,CAAA,AAAA,EAvfqB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,OACD,EAwII,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EApgByB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,OACD,GA4fC,MAAM,CAAC,SAAC,CAHV,EAIE,MAAO,CAAC,EAAmB,QAAQ,CAAC,EACtC,GAaM,EAAgB,CACpB,MAAO,EAAM,MAAM,CAAC,KAAM,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EArBvB,IAqBsC,SACtD,UAAW,EACX,SAAU,CAAE,SAvBI,CAuBgB,CAClC,EAmBA,MAAO,CACL,KAAM,MACN,iBAAkB,CAAA,EAElB,QAAS,WACT,SAAU,CACR,SAAU,YACV,QACE,AAxBN,SAAyB,CAAI,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAE3B,CAAC,EADH,EAD6B,EAC7B,UAAA,CAAY,EADiB,EACjB,IADiB,CAK7B,OADA,EAAa,GAAc,EAAE,CACtB,EAAK,GAAG,CAAC,SAAC,CAAjB,SACE,AAAI,EAAK,KAAK,CAAC,WAAa,EAAW,QAAQ,CAAC,GACvC,EACE,AALK,EAKK,GACZ,GAAQ,MAAA,CAAL,EAAK,MAER,CAEX,EACF,EAUsB,EAAU,CAAE,KAAM,SAAC,CAAP,EAAa,OAAA,EAAE,MAAM,CAAG,C,CAAE,GACxD,QAAS,EACT,KAAM,EACN,SA7F4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,iBACD,AA8EC,EACA,SAAU,CACR,CACE,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACvB,UAAW,EACX,SAAU,CACR,SAAU,UACV,QAAS,EAAS,MAAM,CAAC,GACzB,QAAS,EACT,KAAM,CACR,CACF,EACA,CACE,UAAW,OACX,MAAO,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA1mBD,CACvB,mBACA,eACA,gBACA,mBACD,EAsmBG,EACA,EA9Da,CACf,UAAW,WACX,MAAO,qBACT,EAzkBe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EACD,AACH,EAC0B,CACxB,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAC/B,EA0nBI,EAAK,aAAa,CAClB,EAAK,oBAAoB,CACzB,EA/Da,CACf,UAAW,WACX,MAAO,gDACP,UAAW,CACb,EA6DG,AACH,CACF,C,E,C,sC,O,E,C,Q,C,S,C,C,C,C,C,ECjqBA,IAAA,EAAA,EAAA,sCAkgBA,CAAA,EAAO,OAAO,CAhgBd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAoTlB,EAAgB,CACpB,YACA,kBACA,sBACA,OACA,gBACA,kBACA,WACA,iBACA,cACA,oBACA,wBACA,SACA,aACA,YACA,iBACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,aACA,iBACA,iBACA,YACA,cACA,uBACA,WACA,oBACA,WACA,cACA,YACA,WACA,oBACA,cACA,oBACA,eACA,wBACA,oBACA,2BACA,kBACA,2BACA,eACA,iBACA,qBACA,yBACA,SACA,gBACA,mBACA,uBACA,iBACA,SACA,gBACA,UACA,cACA,kBACA,WACA,wBACA,0BACA,cACA,aACA,iBACA,YACA,UACA,YACA,UACA,SACA,UACA,mBACD,CAEK,EAAgB,EAAK,OAAO,CAChC,OACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CACE,MAAO,SACP,MAAO,iBACT,EACD,AACH,GAGI,EAAU,CACd,MAAO,OACP,MAAO,aACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,iBACP,MAAO,QACT,EACA,EAAK,mBAAmB,CACzB,AACH,EAEM,EAAoB,CACxB,QACA,QACA,SACA,aACD,CAED,MAAO,CACL,KAAM,OACN,QAAS,CAAE,YAAa,CACxB,SAAU,CACR,SAAU,EAAK,QAAQ,CACvB,MAlaW,CACb,YACA,QACA,OACA,aACA,aACA,cACA,YACD,CA2ZG,KA9YU,CACZ,QACA,QACA,UACA,MACA,OACA,SACA,iBACA,UACA,mBACA,UACA,cACA,aACA,qBACA,SACA,iBACA,0BACA,yBACA,iBACA,gBACA,OACD,CA0XG,QA1Ze,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,SACD,CAkZG,SAjXc,CAChB,MACA,OACA,QACA,WACA,iBACA,wBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,oBACA,qBACA,kBACA,QACA,OACA,OACA,WACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,0BACA,4BACA,4BACA,OACA,MACA,OACA,eACA,YACA,cACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,MACA,UACA,cACA,cACA,WACA,qBACA,oBACA,UACA,OACA,WACA,cACA,WACA,iBACA,qBACA,cACA,kBACA,eACA,mBACA,MACA,OACA,MACA,OACA,QACA,oBACA,OACA,MACA,OACA,QACA,MACA,OACA,OACA,OACA,UACA,UACA,sBACA,WACA,WACA,OACA,wBACA,eACA,QACA,kBACA,WACA,eACA,gBACA,sBACA,oBACA,qBACA,WACA,MACA,cACA,WACA,UACA,cACA,UACA,WACA,eACA,YACA,UACA,WACA,aACA,SACA,SACA,aACA,cACA,QACA,UACA,QACA,SACA,kBACA,sBACA,uBACA,mBACA,UACA,YACA,MACA,QACA,YACA,kBACA,QACA,YACA,kBACA,eACA,wBACA,gBACA,qBACA,QACA,UACA,iCACA,uBACA,cACA,cACA,oBACA,WACA,aACA,sBACA,eACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,oCACA,oBACA,OACA,QACA,QACA,eACA,eACA,YACA,gBACA,sBACA,UACA,cACA,WACA,eACA,WACA,eACA,gBACA,oBACA,qBACA,iBACA,aACA,iBACA,kBACA,cACA,UACA,MACA,aACA,QACA,oBACA,MACA,QACA,OACA,OACA,KACA,OACA,OACA,UACA,YACA,YACA,YACA,iBACA,gBACA,WACA,OACA,aACA,SACA,YACA,aACA,iBACA,aACA,UACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,UACA,WACA,YACA,mBACA,oBACA,OACA,SACA,mBACA,OACA,UACA,UACA,MACA,MACA,QACA,QACA,4BACA,OACA,MA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ACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,WACA,SACA,IACA,UACA,IACA,QACA,OACA,UACA,SACA,SACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,QACD,EA+CI,MAAA,CACH,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9Ce,CACf,OACA,IACA,SACA,OACA,UACA,MACA,SACA,SACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,UACA,iBACA,UACA,UACA,eACA,WACA,qBACA,SACA,eACA,iBACA,iBACA,OACA,SACA,UACA,QACA,OACA,OACA,UACA,WACA,OACA,OACA,MACA,WACA,QACA,gBACA,WACD,GAUK,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,aACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,QACD,CAAC,IAAI,GAAG,OAAO,GAGV,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,iBACD,CAAC,IAAI,GAAG,OAAO,GAEV,EAAa,CACjB,eACA,gBACA,cACA,aACA,qBACA,MACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,aACA,sBACA,aACA,wBACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,iBACA,aACA,SACA,eACA,qBACA,mBACA,yBACA,yBACA,yBACA,qBACA,2BACA,2BACA,2BACA,qBACA,qBACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,gBACA,sBACA,oBACA,0BACA,0BACA,0BACA,sBACA,4BACA,4BACA,4BACA,sBACA,sBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,wBACA,0BACA,qBACA,qBACA,qBACA,iBACA,0BACA,4BACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,KACA,KACA,eACA,cACA,QACA,OACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,eACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,UACA,qBACA,oBACA,gBACA,MACA,YACA,aACA,SACA,YACA,UACA,oBACA,cACA,oBACA,OACA,eACA,YACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,cACA,gBACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,iBACA,eACA,oBACA,0BACA,yBACA,uBACA,wBACA,0BACA,cACA,MACA,+BACA,6BACA,OACA,YACA,oBACA,iBACA,iBACA,cACA,kBACA,oBACA,WACA,WACA,eACA,iBACA,gBACA,sBACA,wBACA,qBACA,sBACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,cACA,QACA,cACA,kBACA,oBACA,eACA,mBACA,qBACA,YACA,UACA,kBACA,gBACA,eACA,OACA,iBACA,iBACA,aACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,aACA,aACA,eACA,OACA,SACA,eACA,mBACA,qBACA,gBACA,gBACA,oBACA,sBACA,cACA,eACA,aACA,QACA,OACA,cACA,mBACA,qBACA,qBACA,oBACA,qBACA,oBACA,YACA,iBACA,aACA,YACA,cACA,gBACA,cACA,YACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,aACA,kBACA,YACA,iBACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,gBACA,oBACA,sBACA,iBACA,iBACA,qBACA,uBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,QACA,cACA,eACA,cACA,qBACA,iBACA,WACA,SACA,IACA,SACA,OACA,aACA,cACA,QACA,SACA,UACA,QACA,gBACA,sBACA,0BACA,4BACA,uBACA,uBACA,2BACA,6BACA,qBACA,sBACA,oBACA,iBACA,uBACA,2BACA,6BACA,wBACA,wBACA,4BACA,8BACA,sBACA,uBACA,qBACA,oBACA,mBACA,mBACA,kBACA,mBACA,kBACA,wBACA,eACA,gBACA,kBACA,aACA,eACA,SACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,QACA,WACA,MACA,WACA,eACA,cACA,aACA,iBACA,kBACA,uBACA,kBACA,wBACA,uBACA,2BACA,wBACA,4BACA,gBACA,sBACA,yBACA,sBACA,cACA,eACA,mBACA,gBACA,iBACA,cACA,iBACA,wBACA,0BACA,MACA,YACA,gBACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,YACA,eACA,gBACA,iBACA,aACA,gBACA,iBACA,eACA,cACA,cACA,aACA,eACA,eACA,cACA,SACA,QACA,cACA,aACA,eACA,YACA,eACA,IACA,IACA,UACD,CAAC,IAAI,GAAG,OAAO,EA4LhB,CAAA,EAAO,OAAO,CAhLd,SAAgB,CAAI,EAClB,IAAM,EAvtBC,CACL,UAAW,CACT,MAAO,OACP,MAAO,YACT,EACA,cAAe,AAktBG,EAltBE,oBAAoB,CACxC,SAAU,CACR,MAAO,SACP,MAAO,iDACT,EACA,kBAAmB,CACjB,UAAW,WACX,MAAO,cACT,EACA,wBAAyB,CACvB,MAAO,gBACP,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACR,AAmsBc,EAnsBT,gBAAgB,CACrB,AAksBc,EAlsBT,iBAAiB,CACvB,AACH,EACA,gBAAiB,CACf,MAAO,SACP,MAAO,AA6rBS,EA7rBJ,SAAS,CAAd,kGASP,UAAW,CACb,EACA,aAAc,CACZ,UAAW,OACX,MAAO,2BACT,CACF,EAirBM,EAAW,CACf,UAAW,WACX,MAAO,MAAQ,EAAK,QAAQ,AAC9B,EAmBM,EAAoB,oBAiB1B,MAAO,CACL,KAAM,SACN,QAAS,CAAE,OAAQ,CACnB,iBAAkB,CAAA,EAClB,SAAU,iBACV,QAAS,sFACT,SAAU,CAGR,EAAK,iBAAiB,CACtB,EAAK,gBAAgB,CAGrB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CAGzB,EAAM,QAAQ,CAGd,CACE,MAAO,4BAA8B,EACrC,UAAW,gBACb,EAGA,CACE,MAAO,0BAA4B,EACnC,UAAW,aACb,EAGA,CACE,MAAO,OAAS,EAAK,IAAI,CAAC,KAAO,IAAM,EACvC,UAAW,cACb,EAGA,CACE,UAAW,kBACX,MAAO,OAAS,EAAe,IAAI,CAAC,KAAO,IAAM,CACnD,EACA,CACE,UAAW,kBACX,MAAO,WAAa,EAAgB,IAAI,CAAC,KAAO,IAAM,CACxD,EAEA,EAAM,uBAAuB,CAE7B,CACE,UAAW,UACX,MAAO,SACP,OAAQ,CACN,IAAK,QACL,SAAU,CACR,SAAU,UACV,QAhGW,kBAiGX,UAAW,EAAe,IAAI,CAAC,IACjC,EACA,SAAU,CAAE,EAAM,eAAe,CAAE,AACrC,CACF,EAGA,CACE,UAAW,UACX,MAAO,2HACT,EAGA,EAGA,EAAM,eAAe,CAIrB,CACE,UAAW,WACX,MAAO,kCACP,QAAS,QACT,YAAa,CAAA,EACb,SAAU,CACR,CACE,UAAW,QACX,MAAO,2BACT,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACR,EAAM,QAAQ,CACd,EACA,EAAK,gBAAgB,CACrB,EAAM,eAAe,CACrB,EAAK,iBAAiB,CACvB,AACH,EACD,AACH,EAGA,EAAM,YAAY,CAKlB,CACE,UAAW,YACX,MAAO,OAAS,EAAW,IAAI,CAAC,KAAO,OACvC,OAAQ,CAEN,IAAK,MACL,SAAU,CACR,EAAM,QAAQ,CACd,EACA,EAAK,gBAAgB,CACrB,EAAK,iBAAiB,CACtB,EAAM,eAAe,CACrB,EAAK,oBAAoB,CACzB,EAAM,SAAS,CACf,EAAM,iBAAiB,CACxB,CACD,QAAS,KACT,UAAW,CACb,CACF,EACA,EAAM,iBAAiB,CACxB,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC11BA,EAAO,OAAO,CApCd,SAAiB,CAAI,EAwBnB,MAAO,CACL,KAAM,UACN,iBAAkB,CAAA,EAClB,SAAU,CA1BI,CACd,UAAW,SACX,MAAO,oBACP,IAAK,OACP,EACa,CACX,UAAW,SACX,MAAO,sDACT,EACsB,CACpB,UAAW,SACX,MAAO,aACT,EACiB,CACf,UAAW,UACX,UAAW,GACX,SAAU,CACR,CAAE,MAAO,sFAAuF,EAChG,CAAE,MAAO,iCAAkC,EAC3C,CAAE,MAAO,QAAS,EAClB,CAAE,MAAO,QAAS,EACnB,AACH,EASG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECjCC,IAAA,EAAA,EAAA,uCACD,SAAS,EAAO,CAAE,SAChB,AAAK,EACD,AAAc,UAAd,OAAO,EAAwB,EAE5B,EAAG,MAAM,CAHA,IAIlB,CAMA,SAAS,EAAU,CAAE,EACnB,OAAO,EAAO,MAAO,EAAI,IAC3B,CAMA,SAAS,IAAO,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAErB,OADe,EAAK,GAAG,CAAC,SAAC,CAAzB,EAA+B,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,GAEjD,CA0BA,SAAS,IAAO,IAAA,IAnBR,EAmBQ,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAMrB,MAHe,IACV,CAAA,AArBL,CAAA,AAAI,AAAgB,UAAhB,OAFE,EAAO,AAqBqB,CArBjB,CAAC,AAqBgB,EArBX,MAAM,CAAG,EAAE,GAEF,EAAK,WAAW,GAAK,QACnD,AAkBgC,EAlB3B,MAAM,CAAC,AAkBoB,EAlBf,MAAM,CAAG,EAAG,GACtB,GAEA,CAAC,CADV,EAkBU,OAAO,CAAG,GAAK,IAAA,EACrB,EAAK,GAAG,CAAC,SAAC,CAFd,EAEoB,OAAA,EAAO,EAAI,GAAA,IAAI,CAAC,KAAO,GAE7C,CAEA,IAAM,EAAiB,SAAA,CAAvB,EAAkC,OAAA,EAChC,KACA,EACA,MAAM,IAAI,CAAC,GAAW,KAAO,K,EAIzB,EAAc,CAClB,WACA,OACD,CAAC,GAAG,CAAC,GAGA,EAAsB,CAC1B,OACA,OACD,CAAC,GAAG,CAAC,GAGA,EAAe,CACnB,MACA,OACD,CAGK,EAAW,CAIf,QACA,MACA,iBACA,QACA,QACA,OACA,MACA,KACA,YACA,QACA,OACA,QACA,QACA,UACA,YACA,WACA,cACA,OACA,UACA,QACA,SACA,SACA,cACA,KACA,UACA,OACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,WACA,cACA,OACA,MACA,QACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,UACD,CAMK,EAAW,CACf,QACA,MACA,OACD,CAGK,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,QACD,CAIK,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,WACD,CAGK,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,MACD,CAGK,EAAe,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII,EAAoB,EACxB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMI,EAAW,EAAO,EAAc,EAAmB,KAGnD,EAAiB,EACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASI,EAAsB,EAC1B,EACA,KACA,0DAII,EAAa,EAAO,EAAgB,EAAqB,KAGzD,EAAiB,EAAO,QAAS,EAAqB,KAKtD,EAAoB,CACxB,WACA,cACA,EAAO,eAAgB,EAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,eACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACA,EAAO,SAAU,EAAY,MAC7B,OACA,cACA,kBACA,iCACA,gBACA,WACA,WACA,oBACA,YACA,UACA,mBACA,0BACD,CAGK,EAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,QACD,AAiiBD,CAAA,EAAO,OAAO,CAphBd,SAAe,CAAI,EACjB,IAAM,EAAa,CACjB,MAAO,MACP,UAAW,CACb,EAEM,EAAgB,EAAK,OAAO,CAChC,OACA,OACA,CAAE,SAAU,CAAE,OAAQ,AAAC,GAEnB,EAAW,CACf,EAAK,mBAAmB,CACxB,EACD,CAIK,EAAc,CAClB,MAAO,CACL,KACA,EAAA,KAAA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CAtLd,SAAa,CAAI,EACf,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAY,yBAEZ,EAAS,CACb,UAAW,SACX,SAAU,CACR,EAAK,kBAAkB,CACvB,EAAK,aAAa,CACnB,AACH,EA2HA,MAAO,CACL,KAAM,MACN,QAAS,CAAE,KAAM,CACjB,SA5He,CACf,QACA,SACA,QACA,QACA,cACA,cACA,YACA,eACA,mBACA,eACA,aACA,UACA,SACA,QACA,QACA,KACA,OACA,QACA,QACA,SACA,WACA,MACA,OACA,WACA,MACA,QACA,OACA,OACA,OACA,OACA,WACA,aACA,QACA,OACA,YACA,WACA,QACA,MACA,UACA,SACA,OACA,OACA,SACA,UACA,OACA,KACA,OACA,OACA,SACA,OACA,aACA,aACA,YACA,aACA,OACA,aACA,OACA,YACA,aACA,cACA,cACA,aACA,UACA,WACA,WACA,SACA,SACA,SACA,YACA,OACA,UACA,SACA,MACA,cACA,cACA,WACA,kBACA,OACA,OACA,MACA,OACA,UACA,SACA,WACA,YACA,SACA,SACA,OACA,OACA,OACA,MACA,SACA,SACA,QACA,SACA,QACA,SACA,gBACA,kBACA,sBACA,0BACA,qBACA,sBACA,UACA,UACA,OACA,OACA,KACA,QACA,UACA,SACA,QACA,SACA,UACA,QACA,WACA,QACA,QACD,CAMC,SAAU,CACR,EAAK,OAAO,CAAC,YAAa,KAC1B,EAAK,OAAO,CAAC,YAAa,KAC1B,CACE,cAAe,OACf,IAAK,QACL,WAAY,CAAA,EACZ,SAAU,CACR,CACE,UAAW,QACX,MAAO,kDACP,IAAK,eACL,eAAgB,CAAA,EAChB,WAAY,CAAA,CACd,EACD,AACH,EACA,CACE,UAAW,WACX,SAAU,CACR,CAAE,MAAO,EAAM,MAAM,CACnB,KACA,EAAM,QAAQ,CAAC,MACf,EACA,MACA,EACA,KACA,EACF,CACE,MAAO,2CACP,IAAK,MACL,SAAU,CAAE,EAAQ,AACtB,EACD,AACH,EACA,CACE,UAAW,SACX,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CAAE,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,QAAS,IAAK,GAAI,AACvE,EACA,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECtLA,IAAA,EAAA,EAAA,sCAsEA,CAAA,EAAO,OAAO,CApEd,SAAgB,CAAI,EAClB,IAAM,EAAQ,CACZ,OACA,OACA,MACA,MACA,MACA,SACA,SACA,SACD,CAiBD,MAAO,CACL,KAAM,SACN,SAAU,CACR,QAnBa,CACf,YACA,QACA,UACA,SACA,OACA,UACA,YACA,OACA,SACA,MACA,OACA,MACA,WACA,WACD,CAKG,KAAM,EACN,QAAS,YACX,EACA,SAAU,CACR,EAAK,iBAAiB,CACtB,EAAK,WAAW,CAChB,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,CACE,UAAW,QACX,cAAe,gCACf,IAAK,KACL,QAAS,KACT,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAE5B,OAAQ,CACN,eAAgB,CAAA,EAChB,WAAY,CAAA,CACd,CAAE,GACL,AACH,EACA,CACE,MAAO,yBACP,SAAU,CAAE,KACV,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GAAA,MAAA,CADa,CAEhB,MACA,OACA,MACD,CAAC,EACF,IAAK,IACL,SAAU,CAAE,OAAQ,AACtB,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,ECiGA,EAAO,OAAO,CApKd,SAAY,CAAI,EACd,IAAM,EAAO,CACX,UAAW,SACX,MAAO,cACP,UAAW,CACb,EACM,EAAU,CACd,UAAW,SACX,MAAO,UACT,EAYM,EAAO,CACX,UAAW,WACX,MAAO,6CACP,IAAK,MACL,SAAU,CACR,OACA,EACA,EAAK,iBAAiB,CACtB,EACD,AACH,EAqFA,MAAO,CACL,KAAM,KACN,SAAU,CACR,QAtFa,CACf,QACA,MACA,SACA,MACA,QACA,QACA,OACA,MACA,MACA,YACA,SACA,KACA,KACA,MACA,SACA,OACA,MACA,SACA,UACA,aACA,OACA,MACA,KACA,QACA,MACA,KACA,MACA,mBACA,OACA,MACA,UACA,SACA,SACA,KACA,WACA,QACA,OACA,MACA,QACA,MACA,SACA,OACA,OACA,KACA,KACA,KACA,cACA,cACA,KACA,KACA,aACA,YACA,SACA,OACA,IACA,IACA,IACA,IACA,IACA,IACA,SACA,SACA,UACA,UACA,OACA,OACA,KACA,MACD,CAkBG,QAjBa,CACf,KACA,MACA,YACA,OACA,OACA,SACA,UACA,QACA,OACA,QACD,AAOC,EACA,SAAU,CAhHG,CACb,UAAW,WACX,MAAO,2HAEP,IAAK,MACL,SAAU,CACR,OACA,EACA,EACD,AACH,EAwGI,EACA,CACE,UAAW,UACX,MAAO,4BACT,EACA,CAEE,UAAW,UACX,MAAO,+BACT,EACA,CAGE,UAAW,UACX,MAAO,uDACT,EACA,CAEE,UAAW,SACX,MAAO,6DACP,UAAW,CACb,EACA,EAAK,OAAO,CAAC,KAAM,QACnB,EAAK,OAAO,CAAC,IAAK,QAClB,EAAK,OAAO,CAAC,QAAS,KACtB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACP,EACA,EAAK,aAAa,CAClB,CACE,UAAW,WACX,MAAO,kBACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,EClKA,IAAA,EAAA,EAAA,sCA4PA,CAAA,EAAO,OAAO,CA1Pd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAiB,CACrB,eACA,UACA,gBACA,YACA,QACA,WACA,eACA,oBACA,aACA,QACA,OACA,OACA,aACA,SACA,WACA,cACA,YACA,aACA,YACA,WACA,aACA,cACA,eACA,UACA,aACA,cACA,aACA,MACA,MACA,SACA,SACA,SACA,QACA,gBACA,SACA,aACA,SACA,uBACA,QACD,CA0EG,EAAY,CACd,QACA,aACA,QACA,QACA,aACA,KACA,QACA,UACA,SACA,QACA,MACA,aACA,OACA,KACA,SACA,UACA,QACA,UACA,MACA,YACA,QACA,uBACA,cACA,MACA,WACA,OACD,CAED,EAAY,EAAU,MAAM,CAAC,EAAU,GAAG,CAAC,SAAA,CAA3C,EAAgD,MAAC,MAAO,MAAA,CAAF,E,IAEtD,IAAM,EAAS,CACb,MAAO,SACP,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACP,EACA,CACE,MAAO,IACP,IAAK,GACP,EACD,AACH,EAEM,EAAS,CACb,MAAO,SACP,MAAO,KACT,EAcM,EAAY,CAChB,cAAe,EAAe,IAAI,CAAC,KACnC,SAAU,CAAE,KAAM,CAAe,EACjC,UAAW,EACX,SAAU,CAhBG,CACb,MAAO,KACP,IAAK,KACL,aAAc,CAAA,EACd,WAAY,CAAA,EACZ,SAAU,CACR,EACA,EACD,AACH,EAOsB,AACtB,EAEM,EAAS,CACb,MAAO,qBACP,WAAY,cACZ,UAAW,EACX,SAAU,CACR,CACE,MAAO,eACP,SApJU,CACd,MACA,aACA,cACA,QACA,aACA,SACA,mBACA,eACA,gBACA,kBACA,WACA,OACA,cACA,UACA,SACA,eACA,YACA,gBACA,SACA,QACA,SACA,cACA,sBACA,kBACA,cACA,kBACA,cACA,wBACA,gBACA,cACA,mBACA,WACA,eACA,aACA,OACA,cACA,OACA,gBACA,OACA,SACA,cACA,QACA,MACA,WACA,mBACA,QACA,QACA,gBACA,MACA,SACA,UACA,UACA,QACA,QACA,OACA,OACA,YACA,QACA,YACA,gBACA,QACA,QACA,cACA,OACA,MACA,QACA,aACA,YACA,cACD,AA+EG,EACD,AACH,EAEM,EAAW,SAAC,CAAlB,CAAA,CAAA,EACE,MAAO,CACL,WAAY,CACV,EAAG,eACH,EAAG,MACL,EACA,UAAW,AANe,EAAA,SAAA,EAMF,EACxB,SAAU,eACV,MAAO,CACL,MACA,MACA,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IACjB,CACD,IAAK,MACL,SAAU,KACV,SAAU,CACR,EACA,EACA,EACA,EACD,AACH,CACF,EAGM,EAAM,EAAS,EAAW,CAAE,UAAW,CAAE,GACzC,EAAa,EAAS,CAFN,UAEuB,CAAE,CAAE,UAAW,CAAE,GAE9D,MAAO,CACL,KAAM,OACN,QAAS,CAAE,WAAY,CACvB,iBAAkB,CAAA,EAClB,YAAa,MACb,SAAU,CACR,EAAK,OAAO,CAAC,MAAO,OACpB,EACA,EACA,CACE,UAAW,oBACX,MAAO,OACP,IAAK,OACL,SAAU,CACR,OACA,EACA,EACA,EACA,EACD,AACH,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,uCCjQM,EAAW,2BACX,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,UACD,CACK,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,WACD,CAGK,EAAQ,CAEZ,SACA,WACA,UACA,SAEA,OACA,OACA,SACA,SAEA,SACA,SAEA,QACA,eACA,eACA,YACA,aACA,oBACA,aACA,aACA,cACA,cACA,gBACA,iBAEA,MACA,MACA,UACA,UAEA,cACA,oBACA,UACA,WACA,OAEA,UACA,YACA,oBACA,gBAEA,UACA,QAEA,OAEA,cACD,CAEK,EAAc,CAClB,QACA,YACA,gBACA,aACA,iBACA,cACA,YACA,WACD,CAEK,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,WACD,CAEK,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,iBACA,SACA,SACD,CAEK,EAAY,EAAE,CAAC,MAAM,CACzB,EACA,EACA,EAyuBF,CAAA,EAAO,OAAO,CA3Hd,SAAoB,CAAI,EACtB,IAlmBM,EAQA,QAuEA,EASA,EACA,EAGA,EACA,EAuBA,EAOA,EAaA,EAaA,EAaA,EAgDA,EAQA,EAyBA,EACA,EASA,EAYA,EAoCA,EAmEU,EAIV,EAaA,EA8BA,EAQA,EA2LA,GAlmBA,EAAQ,AAkmBgB,EAlmBX,KAA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AE,QACR,oEAAqE,EACzE,SAAU,CAAE,EAAS,AACvB,EAyCG,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECnJA,IAAA,EAAA,EAAA,sCAoNA,CAAA,EAAO,OAAO,CAjNd,SAAkB,CAAI,EACpB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAqB,CACzB,QACA,QACA,UACA,WACA,SACA,YACA,YACA,MACA,SACA,SACA,cACA,MACA,UACA,YACA,MACA,MACA,SACA,UACA,QACA,QACA,iBACA,cACA,OACA,YACA,SACA,OACA,QACA,MACA,OACA,aACA,OACA,MACA,MACA,UACA,QACA,aACA,MACA,QACA,WACA,SACA,UACA,YACA,OACA,SACA,QACA,WACA,iBACA,UACA,SACA,QACA,MACA,QACA,WACA,MACA,OACA,MACA,MACA,SACA,SACA,QACA,YACA,MACA,QACA,QACA,QACA,OACA,OACA,MACA,WACA,OACA,UACA,MACA,eACA,cACA,MACA,eACA,MACA,QACA,OACA,MACA,WACA,QACA,MACA,OACA,UACA,OACA,OACA,gBACA,MACA,WACA,OACA,OACA,OACA,SACA,OACA,MACD,CAuFD,MAAO,CACL,KAAM,WACN,QAAS,CAAE,MAAO,CAClB,iBAAkB,CAAA,EAClB,SAAU,CACR,QAjEa,CACf,OACA,QACA,QACA,MACA,KACA,OACA,QACA,UACA,gBACA,OACA,MACA,OACA,OACA,WACA,KACA,OACA,OACA,KACA,QACA,SACA,WACA,MACA,UACA,WACA,MACA,MACA,SACA,YACA,QACA,MACA,SACA,OACA,MACA,OACA,MACA,QACA,OACA,OACA,MACA,KACA,SACA,KACA,KACA,MACA,MACA,MACA,mBACA,kBACA,UACA,WACA,KACA,KACA,QACA,QACA,OACA,SACA,OACD,CAQG,SA5FqB,CACvB,SACA,WACA,UAEA,eACA,2BACA,2BACA,2BACD,CAoFG,QA3Ea,CACf,OACA,QACA,OACA,UACA,QACD,AAsEC,EACA,QAAS,KACT,SAAU,CArFU,CACpB,MAAO,EAAM,MAAM,CAAC,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAqB,WAEzD,UAAW,EACX,SAAU,CAAE,SAAU,CAAmB,CAC3C,EAkFI,EAAK,OAAO,CAAC,EAAK,iBAAiB,CAAE,CAAE,SAAU,CAAE,CAAE,MAAO,IAAK,EAAG,AAAC,GACrE,EAAK,OAAO,CACV,IACA,IACA,CAAE,UAAW,CAAE,GAEjB,EAAK,aAAa,CACnB,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EClMA,EAAO,OAAO,CAdd,SAAsB,CAAI,EACxB,MAAO,CACL,KAAM,mBACN,YAAa,MACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,YAAa,UACf,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECdA,IAAA,EAAA,EAAA,sCA8hBA,CAAA,EAAO,OAAO,CA5hBd,SAAiB,CAAI,EACnB,IAAM,EAAQ,EAAK,KAAK,CA2clB,EAAa,CACjB,iBACA,aACA,kBACA,qBACA,0BACA,SACA,yBACA,kBACA,kBACA,kBACA,OACA,QACA,eACA,gBACA,QACA,QACA,SACA,UACA,OACA,sBACA,SACA,WACA,YACA,oBACA,QACA,cACD,CAED,MAAO,CACL,KAAM,UACN,QAAS,CACP,IACA,KACA,MACD,CACD,iBAAkB,CAAA,EAClB,SA/ee,CACf,SAAU,qBACV,QAAS,CACP,YACA,QACA,SACA,cACA,YACA,eACA,MACA,SACA,SACA,SACA,YACA,SACA,QACA,OACA,OACA,SACA,MACA,QACA,QACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,UACA,UACA,QACA,WACA,OACA,SACA,QACA,aACA,UACA,WACA,QACA,aACA,aACA,QACA,WACA,UACA,WACA,SACA,UACA,OACA,KACA,OACA,OACA,MACA,UACA,aACA,WACA,cACA,YACA,cACA,cACA,WACA,eACA,YACA,aACA,eACA,aACA,cACA,aACA,cACA,WACA,UACA,OACA,QACA,aACA,SACA,SACA,UACA,SACA,QACA,cACA,MACA,QACA,UACA,UACA,OACA,WACA,WACA,aACA,SACA,SACA,SACA,SACA,KACA,MACA,SACA,cACA,eACA,aACA,UACA,SACA,SACA,UACA,UACA,QACA,QACA,SACA,WACA,MACA,UACA,eACA,YACA,YACA,OACA,WACA,YACA,QACA,MACA,UACA,UACA,QACA,aACA,QACA,UACA,cACA,UACA,SACA,UACA,SACA,OACA,UACA,UACA,MACA,WACA,OACA,MACA,kBACA,MACA,SACA,SACA,KACA,SACA,UACA,SACA,YACA,OACA,UACA,YACA,WACA,UACA,WACA,YACA,QACA,QACA,WACA,SACA,sBACA,qBACA,OACA,OACA,QACA,WACA,eACA,QACA,OACA,WACA,MACA,MACA,YACA,UACA,SACA,WACA,SACA,QACA,QACA,QACA,WACA,WACA,WACA,eACA,aACA,UACA,eACA,WACA,WACA,WACA,YACA,gBACA,SACA,QACA,OACA,QACA,UACA,YACA,SACA,SACA,SACA,UACA,UACA,SACA,QACA,UACA,UACA,iBACA,iBACA,QACA,SACA,OACA,OACA,aACA,OACA,gBACA,WACA,OACA,UACA,UACA,MACA,OACA,OACA,SACA,QACA,SACA,OACA,UACA,QACA,SACA,UACA,WACA,QACA,aACA,UACA,MACA,QACA,MACA,WACA,UACA,OACA,OACA,aACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,OACA,SACA,MACA,OACA,MACD,CACD,QAAS,CAAE,OAAQ,CACnB,SAAU,CACR,UACA,QACA,QACA,SACA,SACA,WACA,QACA,YACA,QACA,kBACA,cACA,mBACA,QACA,UACA,QACA,QACA,SACA,cACA,cACA,mBACA,QACA,YACA,YACA,cACA,gBACA,gBACA,sBACA,aACA,iBACA,iBACA,iBACA,oBACA,eACA,WACA,QACA,WACA,aACA,aACA,gBACA,eACA,eACA,oBACA,gBACA,iBACA,wBACA,QACA,UACA,QACA,aACA,eACA,eACA,gBACA,iBACA,WACA,oBACA,kBACA,gBACA,oBACA,YACA,uBACA,QACA,OACA,aACA,SACA,MACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,OACA,OACA,aACA,UACA,aACA,SACA,WACA,cACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,aACA,WACA,SACA,QACA,UACA,mBACA,eACA,oBACA,eACA,gBACA,UACA,gBACA,gBACA,YACA,UACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,SACA,UACA,YACA,mBACA,oBACA,kBACA,mBACA,kBACA,mBACA,iBACA,kBACA,UACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,SACA,YACA,YACA,aACA,kBACA,YACA,UACA,aACA,aACA,eACA,kBACA,UACA,UACA,UACA,WACA,YACA,YACA,YACA,aACA,YACA,WACA,WACA,aACA,gBACA,gBACA,kBACA,UACA,YACA,aACA,aACA,aACA,WACA,YACA,YACA,YACA,UACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,QACA,SACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,aACA,WACA,YACA,SACA,UACA,SACA,UACA,UACA,SACA,UACD,AACH,EA2CE,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,mBAAmB,CACxB,EAAK,iBAAiB,CACtB,CACE,MAAO,SACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,CACnC,SAAU,CACR,CAAE,MAAO,yCAA0C,EACnD,CAAE,MAAO,sCAAuC,EAChD,CACE,MAAO,iBACP,UAAW,CACb,EACD,AACH,EAEA,CACE,MAAO,WACP,SAAU,CACR,CAAE,MAAO,wBAAyB,EAClC,CACE,MAAO,UACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,oBACP,MAAO,EAAM,MAAM,CAAC,IAAK,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAvEjB,CACzB,WACA,WACD,GAqEG,EACA,CACE,MAAO,OACP,MAAO,EAAM,MAAM,CAAC,IAAK,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KACzC,IAAK,cACL,UAAW,CAAA,EACX,SAAU,CACZ,EACD,AACH,CACF,C,E,C,sC,O,E,C,M,C,S,C,C,C,C,C,EC5UA,EAAO,OAAO,CA9Md,SAAc,CAAI,EAIhB,IAAM,EAAa,cACb,EAAc,YAAc,EAyKlC,MAAO,CACL,KAAM,OACN,iBAAkB,CAAA,EAClB,SAAU,CACR,QArKa,CACf,MACA,SACA,QACA,QACA,MACA,MACA,eACA,QACA,SACA,SACA,mBACA,YACA,QACA,QACA,OACA,SACA,MACA,OACA,YACA,gBACA,WACA,UACA,QACA,aACA,SACA,UACA,OACA,QACA,MACA,SACA,OACA,WACA,OACA,MACA,QACA,WACA,WACA,UACA,QACA,UACA,KACA,SACA,KACA,WACA,QACA,KACA,QACA,UACA,UACA,UACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,KACA,KACA,OACA,KACA,SACA,MACA,UACA,YACA,OACA,YACA,YACA,UACA,WACA,YACA,OACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,WACA,qBACA,SACA,MACA,MACA,SACA,WACA,WACA,SACA,SACA,MACA,MACA,MACA,MACA,SACA,UACA,OACA,KACA,YACA,OACA,aACA,QACA,QACA,MACA,WACA,OACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,MACD,CAiDG,SAhDc,CAChB,UACA,MACA,YACA,UACA,OACA,eACA,UACA,WACA,SACA,aACA,iBACA,mBACA,YACA,mBACA,WACA,SACA,iBACA,iBACA,aACA,oBACA,sBACA,aACA,oBACA,WACA,cACA,cACD,CAsBG,QArBa,CAEf,QACA,OACA,OACA,UACA,QACA,UAEA,OACA,OACA,OACA,QACD,AASC,EACA,QAAS,KACT,SAAU,CACR,EAAK,oBAAoB,CACzB,EAAK,OAAO,CAAC,KAAM,KACnB,EAAK,iBAAiB,CACtB,CACE,UAAW,SACX,MAlLY,OAFO,EAAA,oBAAqF,EAE5F,MALS,CAAA,EAAa,OAAS,CAAA,EAAtB,MAAgD,EAKzD,MAmLZ,UAAW,CACb,EACA,CACE,UAAW,SACX,MAAO,wBACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACA,CACE,UAAW,SACX,MAAO,4BACP,SAAU,CAAE,EAAK,gBAAgB,CAAE,AACrC,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrFA,EAAO,OAAO,CAxHd,SAAa,CAAI,EACf,MAAO,CACL,KAAM,aACN,SAAU,CACR,SAAU,WACV,QAEE,mwLAkBF,SACE,6nEAmCJ,EACA,QAAS,IACT,SAAU,CACR,EAAK,WAAW,CAChB,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EAYA,CACE,UAAW,SACX,MAAO,sBACT,EACA,EAAK,OAAO,CAAC,IAAK,KAElB,CACE,UAAW,WACX,MAAO,qBACT,EACA,CACE,MAAO,CACL,2BACA,MACA,EAAK,QAAQ,CACd,CACD,UAAW,CACT,EAAG,UACH,EAAG,OACL,EACA,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACP,EACD,AACH,EACA,CACE,UAAW,SACX,MAAO,UACT,EACD,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,ECYA,EAAO,OAAO,CAjId,SAAc,CAAI,EAChB,EAAK,KAAK,CACV,IAAM,EAAgB,EAAK,OAAO,CAAC,MAAO,OA0G1C,OAzGA,EAAc,QAAQ,CAAC,IAAI,CAAC,QAyGrB,CACL,KAAM,cACN,SAAU,CACR,SAAU,SACV,QA1GQ,CACV,UACA,QACA,KACA,QACA,WACA,OACA,gBACA,OACA,OACA,OACA,OACA,MACA,SACA,OACA,aACA,aACA,YACA,YACA,YACA,aACA,YACA,SACA,KACA,SACA,QACA,OACA,SACA,cACA,cACA,SACA,MACA,MACA,SACA,QACA,SACA,SACA,SACA,aACA,YACA,QACA,QACA,YACA,OACA,OACA,cACD,AA6DC,EACA,SAAU,CA9GS,EAAK,OAAO,CAAC,KAAM,KAgHpC,EApBiB,CACnB,MAAO,CACL,mBACA,MACA,IACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,UACL,CACF,EAxCiB,CACf,UAAW,WACX,MAAO,UACT,EAEe,CACb,MAAO,gBACP,UAAW,cACX,UAAW,CACb,EArB2B,CACzB,MAAO,CACL,8BACA,MACA,YACD,CACD,UAAW,CACT,EAAG,UACH,EAAG,gBACL,CACF,EAyDI,EAAK,iBAAiB,CArCb,CAEX,MAAO,0BACP,UAAW,MACb,EAEwB,CACtB,UAAW,UAEX,MAAO,mZACT,EAjBe,CACb,UAAW,SACX,UAAW,EAEX,MAAO,iNACT,EA2CG,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECjIA,IAAA,EAAA,EAAA,sCAsSA,CAAA,EAAO,OAAO,CAnSd,SAAc,CAAI,EAChB,IAAM,EAAQ,EAAK,KAAK,CAClB,EAAW,cACX,EAAW,CACf,KACA,QACA,QACA,YACA,WACA,OACA,MACA,UACA,KACA,SACA,KACA,KACA,SACA,SACA,MACA,QACD,CACK,EAAW,CACf,OACA,QACA,OACD,CACK,EAAgB,CACpB,OACA,QACD,CAgBK,EAAY,CAChB,IACA,IACA,KACA,IACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,IACA,SACA,KACA,KACA,IACA,OACA,KACA,MACA,IACD,CACK,EAAW,CACf,UAAW,EACX,MAAO,EAAM,MAAM,CAAC,oCAAqC,EAAU,eACnE,UAAW,gBACb,EACM,EAAsB,CAC1B,MAAO,EAAM,MAAM,CACjB,EAAM,MAAM,CACV,EAAM,MAAM,CAAC,oCAAqC,GAClD,AAAA,EAAM,MAAM,CAAZ,KAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAElB,yBACF,UAAW,iBACX,OAAQ,CAAE,SAAU,CAClB,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,EACX,MAAO,SACP,MAAO,CACT,EACD,AACH,EACD,AAAC,CACJ,EAqBM,EAAW,CACf,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ACE,UAAW,QACX,MAAO,OACP,UAAW,CACb,EACA,CACE,UAAW,OACX,MAAO,eACT,EACD,AACH,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECsDA,EAAO,OAAO,CArMd,SAAY,CAAI,EAqId,IAAM,EAAW,CACf,SAAU,yBACV,QAtIU,CACV,KACA,OACA,OACA,KACA,QACA,QACA,MACA,OACA,SACA,OACA,KACA,KACA,QACA,OACA,KACA,OACA,WACA,UACA,OACA,OACA,OACA,UACA,SACA,QACA,SACA,UACA,QACA,OACD,CA0GC,QARe,CACf,OACA,QACA,MACD,CAKC,SAAU,AA1GM,CAChB,KACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,QACA,OACA,OACA,MACA,MACA,MACA,OACA,OACA,OACA,MACA,QACA,MACA,OACA,QACA,QACA,KACA,KACA,cACA,aACA,YACA,eACA,WACA,OACA,QACA,cACA,cACA,QACA,WACA,UACA,WACA,UACA,cACA,QACA,aACA,aACA,eACA,oBACA,UACA,WACA,WACA,YACA,eACA,eACA,gBACA,YACA,YACA,aACA,YACA,SACA,UACA,SACA,OACA,UACA,UACA,UACA,WACA,QACA,aACA,WACA,UACA,OACA,WACA,WACA,gBACD,CAgCqB,MAAM,CA/BJ,CACtB,eACA,UACA,eACA,SACA,UACA,UACA,YACA,YACA,UACA,gBACA,gBACA,aACA,gBACA,gBACA,SACA,YACA,WACA,SACA,SACA,SACD,CAWD,EAEM,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EAsBM,EAAsB,CAC1B,UAAW,WACX,MAAO,gBACP,YAAa,CAAA,EACb,IAAK,KACL,SAAU,CACR,EAAK,OAAO,CAAC,EAAK,UAAU,CAAE,CAAE,OAAQ,CACtC,eAAgB,CAAA,EAChB,SAAU,CACZ,CAAE,GACH,AACH,EACA,MAAO,CACL,KAAM,KACN,QAAS,CAAE,MAAO,CAClB,SAAU,EACV,SAAU,CACR,EAAK,mBAAmB,CACxB,EAAK,oBAAoB,CACzB,EAxCsB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACX,EACkB,CAChB,UAAW,SACX,MAAO,KACP,IAAK,IACP,EAiCI,EA5BW,CACb,cAAe,SACf,IAAK,IACL,SAAU,EACV,SAAU,CAAE,EAAmB,AACjC,EATqB,CACnB,UAAW,SACX,MAAO,wDACT,EAgCI,EAAK,WAAW,CACjB,AACH,CACF,C,E,C,E,C,M,C,S,C,C,C,C,C,EC6JA,EAAO,OAAO,CA3Vd,SAAgB,CAAK,EAwUnB,MAAO,CACL,KAAM,SACN,QAAS,CACP,QACA,KACA,MACD,CACD,iBAAkB,CAAA,EAClB,QAAS,0CACT,SAAU,CACR,SAAU,2BACV,QAjVa,CACf,SACA,SACA,YACA,iBACA,WACA,cACA,QACA,UACA,YACA,WACA,WACA,UACA,iBACA,oBACA,kBACA,iBACA,SACA,qBACA,WACA,qBACA,UACA,aACA,MACA,aACA,YACA,UACA,mBACA,iBACA,SACA,YACA,aACA,UACA,SACA,SACA,WACA,WACA,WACA,MACA,KACA,KACA,MACA,QACA,QACA,QACA,KACA,SACA,KACA,OACA,OACA,WACA,UACA,SACA,QACA,OACA,OACA,MACA,WACA,OACA,SACA,YACA,aACA,WACA,QACA,WACA,QACA,OACA,QACA,YACA,SACA,OACA,aACA,MACA,QACA,MACA,KACA,KACA,QACA,YACA,WACA,KACA,QACA,KACA,WACA,OACA,MACA,QACA,SACA,SACA,OACA,UACA,QACA,SACA,OACA,SACA,SACD,CAkPG,KA9OU,CACZ,OACA,gBACA,OACA,YACA,WACA,UACA,UACA,YACA,iBACA,yBACA,OACA,eACA,mBACA,mBACA,cACA,UACA,aACA,WACA,YACA,gBACA,WACA,eACA,YACA,UACA,aACA,kBACA,eACA,YACA,WACA,cACA,cACA,mBACA,UACA,YACA,sBACA,WACA,cACA,aACA,UACA,YACA,QACA,WACA,YACA,aACA,wBACA,qBACA,UACA,SACA,WACA,UACA,wBACA,mBACA,iBACA,mBACA,kBACA,qBACA,uBACA,qBACD,CAoLG,QAlLa,CACf,KACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,UACA,eACA,uBACA,cACA,cACA,sBACA,WACA,aACA,qBACA,cACA,sBACA,MACD,AA8JC,EACA,SA3Be,CA/EL,CACV,UAAW,WACX,MAAO,aACT,EArDiB,CACf,UAAW,WACX,SAAU,CACR,CACE,MAAO,WACP,IAAK,2IACP,EACA,CACE,MAAO,SACP,IAAK,mEACP,EACA,CACE,MAAO,UACP,IAAK,0EACP,EACA,CACE,MAAO,QACP,IAAK,KACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,QACP,IAAK,KACL,WAAY,CAAA,CACd,EAEA,CAAE,MAAO,62DAA82D,EACv3D,CACE,MAAO,WACP,IAAK,KACL,WAAY,CAAA,CACd,EACA,CACE,MAAO,SACP,IAAK,oEACP,EACA,CACE,MAAO,uCACP,IAAK,KACL,WAAY,CAAA,CACd,EACD,AACH,EAmBe,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACA,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACb,EACD,AACH,EACD,AACH,EA9Be,CACb,UAAW,SACX,MAAO,uEACP,UAAW,CACb,EAiCgB,CACd,UAAW,UACX,MAAO,MACP,IAAK,MACL,UAAW,GACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACT,EACD,AACH,EAhBmB,CACjB,UAAW,OACX,MAAO,WACT,EA9Cc,CACZ,UAAW,QACX,MAAO,qDACP,IAAK,GACP,EA4DiB,CACf,cAAe,4DACf,IAAK,KACL,WAAY,CAAA,CACd,EAGe,CACb,MAAO,sCACP,IAAK,iBACL,YAAa,MACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,YAAa,QACf,EACA,OACD,AACH,EAYC,AAkBD,CACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECrOA,EAAO,OAAO,CAtHd,SAAgB,CAAI,EAClB,IAAM,EAAS,CACb,UAAW,S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,EAAA,MAAA,EAAO,YAAY,CAAnB,KAAA,CAAA,EAAoB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAI,WAAW,MAE1D,GAAI,CACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CACzC,CACE,MAAO,SACP,OAAQ,OAAO,MAAM,CACrB,KAAM,IAAI,CAAC,IAAI,CACf,SAAU,IAAI,CAAC,QAAQ,CACvB,UAAW,EACX,OAAQ,KAAK,KAAK,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,GACpD,SAAU,IAAI,CAAC,QAAQ,AACzB,EACA,IAAI,CAAC,aAAa,CAAC,MAAK,EAAK,IAAI,CAAC,YAAlC,CAEJ,CAAE,MAAO,EAAG,CACV,QAAQ,IAAI,CAAC,EACf,CACF,CACF,CACF,C,E,C,sC,Q,I,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,oB,W,O,C,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,Q,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,M,W,O,E,G,E,M,C,E,K,W,O,E,G,E,M,C,E,K,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,M,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,O,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,S,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,2B,W,O,E,G,E,M,C,E,4B,W,O,E,G,E,M,C,E,4B,W,O,E,G,E,M,C,E,6C,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,iC,W,O,C,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,iC,W,O,E,G,E,M,C,E,sC,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,gB,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,mB,W,O,E,G,E,M,C,E,sB,W,O,E,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,8B,W,O,E,G,E,M,C,E,gC,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,U,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,Y,W,O,C,G,E,M,C,E,a,W,O,E,G,E,M,C,E,wB,W,O,C,G,E,M,C,E,U,W,O,E,G,E,M,C,E,Y,W,O,E,G,E,M,C,E,c,W,O,E,G,E,M,C,E,kB,W,O,C,G,E,M,C,E,e,W,O,E,G,E,M,C,E,iB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,kB,W,O,E,G,E,M,C,E,oB,W,O,E,G,E,M,C,E,a,W,O,E,G,E,M,C,E,e,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,yB,W,O,E,G,E,M,C,E,W,W,O,E,G,E,M,C,E,Q,W,O,E,G,E,M,C,E,0B,W,O,E,G,E,M,C,E,wB,W,O,E,G,E,M,C,E,qB,W,O,E,G,I,E,E,2C,E,E,oC,E,E,gC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iB,C,G,E,M,C,E,Q,WAEY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,O,WAEA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,GAnDN,IAAM,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAChB,EAAQ,KAAK,KAAK,CAClB,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAQhB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,C,EAQpB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAQ5B,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAE5B,EAAQ,OAAO,KAAK,CAEpB,EAAM,KAAK,GAAG,CAOd,EAAQ,SAAA,CAAd,EAAqB,OAAA,KAAK,GAAG,CAAC,GAAI,E,EAE5B,EAAO,KAAK,IAAI,CAMhB,EAAiB,SAAA,CAAvB,EAA4B,OAAA,AAAM,IAAN,EAAU,EAAI,EAAI,EAAI,EAAI,C,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,EC/B5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,gB,WAeA,OAAA,C,G,E,M,C,E,S,WAKA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,Y,WAmBA,OAAA,C,G,E,M,C,E,Q,WAgBA,OAAA,C,G,E,M,C,E,M,WAmBA,OAAA,C,G,E,M,C,E,a,WAyBA,OAAA,C,G,E,M,C,E,W,WAUA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,Y,WAYA,OAAA,C,G,E,M,C,E,c,WAYA,OAAA,C,G,E,M,C,E,uB,WAeA,OAAA,C,G,E,M,C,E,Y,WAcA,OAAA,C,G,E,M,C,E,e,WAcA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,wB,WA6BA,OAAA,C,G,E,M,C,E,0B,WAqBA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,wB,WAaA,OAAA,C,G,E,M,C,E,4B,WAoBA,OAAA,C,G,E,M,C,E,qB,WAsBA,OAAA,C,G,E,M,C,E,kB,WASA,OAAA,C,G,E,M,C,E,qB,WA0BA,OAAA,C,G,E,M,C,E,kB,WAsBA,OAAA,C,G,E,M,C,E,e,WAWA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,W,WAmDA,OAAA,C,G,E,M,C,E,a,WA+EA,OAAA,C,G,E,M,C,E,iB,WA0CA,OAAA,C,G,E,M,C,E,oB,WA6BA,OAAA,C,G,E,M,C,E,oB,WAwDA,OAAA,E,G,E,M,C,E,uB,WA0CA,OAAA,E,G,E,M,C,E,uB,WAqEA,OAAA,E,G,E,M,C,E,gB,WA+CA,OAAA,E,G,I,E,E,oC,E,E,gC,E,E,4B,E,E,2B,E,E,gCAv2Bb,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,cAKa,EAAN,SAAM,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAET,IAAI,CAAC,IAAI,CAAG,EACZ,IAAI,CAAC,IAAI,CAAG,IAAI,WAAW,KAI3B,IAAI,CAAC,IAAI,CAAG,EAAE,A,EAQL,EAAgB,WAAM,OAAA,IAAI,C,EAK1B,EAAS,SAAC,CAAhB,EACL,IAAM,EAAU,IAEhB,OADA,EAAE,GACK,EAAa,EACtB,EASa,EAAS,SAAA,CAAf,EAEL,IAAK,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,S,C,C,C,C,C,EC/3BZ,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,mB,WAKY,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,e,WAEA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,Y,WAGA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,Y,WASA,OAAA,C,GAtBb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,eAEa,EAAmB,OAAO,gBAAgB,CAC1C,EAAmB,OAAO,gBAAgB,CAE1C,EAAe,YACf,EAAgB,EAAO,MAAM,CAC7B,EAAiB,EAAO,MAAM,CAG9B,EAAY,OAAO,SAAS,EAAK,SAAA,CAAvC,EAA8C,MAAA,AAAe,UAAf,OAAO,GAAoB,SAAS,IAAQ,EAAK,KAAK,CAAC,KAAS,C,EACxG,EAAQ,OAAO,KAAK,CACpB,EAAW,OAAO,QAAQ,CAS1B,EAAY,SAAA,CAAlB,EACL,GAAK,EAAO,MAAM,CAElB,IADA,IAAI,EAAQ,EACL,GACL,GAAM,EAAI,EACV,IAEF,OAAO,CACT,C,E,C,Y,Q,c,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECxBC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,GA5EN,IAAM,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GACP,EAAO,GACP,EAAO,GACP,EAAO,IACP,EAAO,IACP,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,WACR,EAAQ,WACR,EAAQ,WACR,EAAQ,YAOR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,GACR,EAAQ,GACR,EAAQ,GACR,EAAQ,IACR,EAAQ,IACR,EAAQ,IACR,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,MACT,EAAS,MACT,EAAS,MACT,GAAS,OACT,GAAS,OACT,GAAS,OACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,SACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,WACT,GAAS,WAIT,GAAS,WAIT,GAAS,U,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WCjFT,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,W,WAcA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,iB,WAOA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,kB,WAWA,OAAA,C,G,E,M,C,E,oB,WAMA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,sB,WAMA,OAAA,C,G,E,M,C,E,kB,WAgBF,OAAA,C,G,E,M,C,E,oB,WAkBE,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,G,E,M,C,E,S,WAMA,OAAA,C,GAxIb,IAAA,EAAA,EAAA,cAQa,EAAe,OAAO,YAAY,CAClC,EAAgB,OAAO,aAAa,CAMpC,EAAsB,EAAa,OAQ1C,EAAgB,QAMT,EAAW,SAAA,CAAjB,EAAsB,OAAA,EAAE,OAAO,CAAC,EAAe,G,EAEhD,EAAqB,WAOd,EAAgB,SAAC,CAAA,CAAG,CAA1B,EAAwC,OAAA,EAAS,EAAE,OAAO,CAAC,EAAoB,SAAA,CAAvC,EAAgD,MAAC,GAAc,MAAA,CAAZ,GAA+B,MAAA,CAjBxG,AAiBiG,EAjB/F,WAAW,G,G,EAwBzB,EAAiB,SAAA,CAAvB,EAA8B,OAAA,SAAS,mBAAmB,IAAM,MAAM,A,EAMhE,EAAsB,SAAA,CAA5B,EAIL,IAAK,IAHC,EAAgB,SAAS,mBAAmB,IAC5C,EAAM,EAAc,MAAM,CAC1B,EAAM,IAAI,WAAW,GAClB,EAAI,EAAG,EAAI,EAAK,IACvB,CAAG,CAAC,EAAE,CAA0B,EAAc,WAAW,CAAC,GAE5D,OAAO,CACT,EAGa,EAA8C,AAAuB,aAAvB,OAAO,YAA8B,IAAI,YAAgB,KAMvG,EAAoB,SAAA,CAA1B,EAAiC,OAAA,EAAgB,MAAM,CAAC,E,EAOlD,EAAa,EAAkB,EAAoB,EAMnD,EAAsB,SAAA,CAA5B,EAIL,IAHA,IAAI,EAAe,EAAI,MAAM,CACzB,EAAgB,GAChB,EAAS,EACN,EAAe,GAAG,CACvB,IAAM,EAAU,EAAe,IAAQ,EAAe,IAChD,EAAQ,EAAI,QAAQ,CAAC,EAAQ,EAAS,GAC5C,GAAU,EAEV,GAAiB,OAAO,aAAa,CAAC,KAAK,CAAC,KAA0B,GACtE,GAAgB,CAClB,CACA,OAAO,mBAAmB,OAAO,GACnC,EAGW,EAAkB,AAAuB,aAAvB,OAAO,YAA8B,KAAO,IAAI,YAAY,QAAS,CAAE,MAAO,CAAA,EAAM,UAAW,CAAA,CAAK,GAG7H,GAAmB,AAAoD,IAApD,EAAgB,MAAM,CAAC,IAAI,YAAc,MAAM,EAOpE,CAAA,EAAkB,IADlB,EASK,IAAM,EAAoB,SAAA,CAA1B,EAA4D,OAAC,EAAiB,MAAM,CAAC,E,EAO/E,EAAa,EAAkB,EAAoB,EAQnD,EAAS,SAAC,CAAA,CAAK,CAAA,CAAO,CAA5B,EAAoC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAS,GAAO,OAAA,EAAI,KAAK,CAAC,EAAG,GAAS,EAAS,EAAI,KAAK,CAAC,EAAQ,E,EAM/F,EAAS,SAAC,CAAA,CAAQ,CAAxB,EAA8B,OAAA,EAAM,MAAM,CAAC,EAAG,WAAM,OAAA,CAAQ,GAAA,IAAI,CAAC,G,C,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC9GvE,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAeY,OAAA,C,G,E,M,C,E,gB,WAyBA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,Q,WAWA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,oB,WAgBA,OAAA,C,G,E,M,C,E,uB,WAQA,OAAA,C,G,E,M,C,E,Q,WAQA,OAAA,C,G,E,M,C,E,Y,WAQA,OAAA,C,G,E,M,C,E,a,WASA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,sB,WAkBA,OAAA,C,G,E,M,C,E,Y,WAkBA,OAAA,C,G,E,M,C,E,a,WAUA,OAAA,C,G,E,M,C,E,a,WAYA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,a,WAgCA,OAAA,C,G,E,M,C,E,c,WAkCA,OAAA,C,G,E,M,C,E,a,WAcA,OAAA,C,G,E,M,C,E,yB,WAqBA,OAAA,C,G,E,M,C,E,uB,WA+BA,OAAA,C,G,E,M,C,E,gB,WAaA,OAAA,C,G,E,M,C,E,2B,WAMA,OAAA,C,G,E,M,C,E,uB,WAmBA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,mB,WAYA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,c,WAKA,OAAA,C,G,E,M,C,E,e,WAKA,OAAA,C,G,E,M,C,E,gB,WAKA,OAAA,C,G,E,M,C,E,U,WAyCA,OAAA,C,G,E,M,C,E,a,WAOA,OAAA,C,G,E,M,C,E,iB,WAiCA,OAAA,C,G,E,M,C,E,oB,WAuBA,OAAA,C,G,E,M,C,E,oB,WAgCA,OAAA,C,G,E,M,C,E,uB,WA6BA,OAAA,C,G,E,M,C,E,uB,WA6BA,OAAA,E,G,E,M,C,E,gB,WAkCA,OAAA,E,G,I,E,E,oC,E,E,gC,E,E,4B,E,E,gCA/oBb,EAAA,EAAA,eACA,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,eACA,EAAA,EAAA,cACA,EAAA,EAAA,iBAEM,EAA4B,EAAM,MAAM,C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,E,C,Q,C,S,C,C,C,C,C,EC7KtC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,kB,WAEY,OAAA,C,GAAN,IAAM,EAAkB,SAAA,CAAxB,EAA6B,OAAA,AAAM,KAAA,IAAN,EAAkB,KAAO,C,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,ECJ5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,a,WA6CY,OAAA,C,G,E,M,C,E,W,WASA,OAAA,C,G,E,M,C,E,Y,WASA,OAAA,C,G,I,E,E,oC,E,E,gCAnCT,EAAgB,GAzBd,WAAA,EAAN,CAAA,WAAM,SAAA,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAEF,IAAI,CAAC,GAAG,CAAG,IAAI,G,CAFb,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CASJ,IAAA,UAAA,MAAA,SAAS,CAAG,CAAE,CAAQ,EACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAK,EACpB,C,E,CAKA,IAAA,UAAA,MAAA,SAAS,CAAG,EACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,C,E,EAlBI,C,G,EA0BF,EAAc,CAAA,EAGlB,GAAI,CAE0B,aAAxB,OAAO,cAAgC,eACzC,EAAgB,aAChB,EAAc,CAAA,EAElB,CAAE,MAAO,EAAG,CAAE,CAOP,IAAM,EAAa,EASb,EAAW,SAAA,CAAjB,EAAiC,OAAA,GAAe,iBAAiB,UAA+B,E,EAS1F,EAAY,SAAA,CAAlB,EAAkC,OAAA,GAAe,oBAAoB,UAA+B,E,C,E,C,mC,Q,+B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECnE1G,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,M,WAYA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,K,WAQA,OAAA,C,G,E,M,C,E,iB,WASA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,U,WAkFA,OAAA,C,G,E,M,C,E,U,WAGA,OAAA,C,G,E,M,C,E,W,WAMA,OAAA,C,G,E,M,C,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F,C,E,EA1HW,C,IAkIA,EAAiB,SAAC,CAAxB,EAAgC,OAAA,IAAI,EAAS,E,EAMvC,EAAqB,SAAC,CAA5B,EAA2C,OAAA,EAAO,kBAAkB,CAAC,EAAO,E,C,E,C,mC,Q,+B,Q,kC,Q,sC,Q,mB,Q,W,Q,Y,Q,W,Q,Y,Q,W,Q,iB,Q,Y,Q,sB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECtXlF,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,S,WAiBA,OAAA,C,G,E,M,C,E,iB,WAQA,OAAA,C,G,E,M,C,E,U,WAOA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,I,E,E,oCAxCA,EAAN,SAAM,EAKE,CAAI,CAAE,CAAK,EALb,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAMT,IAAI,CAAC,IAAI,CAAG,EACZ,IAAI,CAAC,KAAK,CAAG,C,EAUJ,EAAS,SAAC,CAAA,CAAM,CAAtB,EAAgC,OAAA,IAAI,EAAK,EAAM,E,EAQzC,EAAiB,SAAC,CAAA,CAAO,CAA/B,EAAwC,OAAA,IAAI,EAAK,EAAM,E,EAOjD,EAAU,SAAC,CAAA,CAAK,CAAtB,EAA4B,OAAA,EAAI,OAAO,CAAC,SAAA,CAAZ,EAAiB,OAAA,EAAE,EAAE,IAAI,CAAE,EAAE,KAAK,C,E,EAQxD,EAAM,SAAC,CAAA,CAAK,CAAlB,EAAwB,OAAA,EAAI,GAAG,CAAC,SAAA,CAAR,EAAa,OAAA,EAAE,EAAE,IAAI,CAAE,EAAE,KAAK,C,E,C,E,C,mC,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC3C5D,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,M,WASY,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,yB,WAKA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,kB,WAOA,OAAA,C,G,E,M,C,E,gB,WAOA,OAAA,C,G,E,M,C,E,mB,WAmBA,OAAA,C,G,E,M,C,E,W,WASA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,G,E,M,C,E,mB,WAOA,OAAA,C,G,E,M,C,E,sB,WAOA,OAAA,C,G,E,M,C,E,oB,WAOA,OAAA,C,G,E,M,C,E,uB,WAUA,OAAA,C,G,E,M,C,E,U,WAWA,OAAA,C,G,E,M,C,E,S,WAOA,OAAA,C,G,E,M,C,E,O,WAWA,OAAA,C,G,E,M,C,E,oB,WAKA,OAAA,C,G,E,M,C,E,qB,WAMA,OAAA,C,G,E,M,C,E,mB,WAMA,OAAA,C,G,E,M,C,E,gB,WASA,OAAA,C,G,E,M,C,E,mB,WAOA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,gB,WAYA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,c,WAMA,OAAA,C,G,E,M,C,E,e,WAQA,OAAA,C,G,E,M,C,E,c,WAOA,OAAA,C,G,E,M,C,E,e,WAEA,OAAA,C,G,E,M,C,E,Y,WACA,OAAA,C,G,E,M,C,E,qB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,qB,WACA,OAAA,C,G,E,M,C,E,yB,WACA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,a,WAMA,OAAA,C,GAvPb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,YAMa,EAA+B,AAAoB,aAApB,OAAO,SAA2B,SAAW,CAAC,EAM7E,EAAgB,SAAA,CAAtB,EAA8B,OAAA,EAAI,aAAa,CAAC,E,EAK1C,EAAyB,WAAM,OAAA,EAAI,sBAAsB,E,EAMzD,EAAiB,SAAA,CAAvB,EAA+B,OAAA,EAAI,cAAc,CAAC,E,EAE5C,EAAsC,AAAqB,aAArB,OAAO,UAA4B,IAAI,UAAc,KAO3F,EAAkB,SAAC,CAAA,CAAI,CAAA,CAAM,CAAnC,EAA4C,OAAA,EAAG,aAAa,CAAC,IAAI,YAAY,EAAM,G,EAO7E,EAAgB,SAAC,CAAA,CAAI,CAA3B,EAWL,OAVA,EAAK,OAAO,CAAC,EAAO,SAAC,CAAA,CAAK,CAA1B,EACM,AAAU,CAAA,IAAV,EACF,EAAG,eAAe,CAAC,GACV,AAAU,CAAA,IAAV,EACT,EAAG,YAAY,CAAC,EAAK,IAGrB,EAAG,YAAY,CAAC,EAAK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AA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EA9GS,EAAA,SAAA,EA8GH,UAAN,IAAK,EAAL,IAAA,CAAA,IAAA,CACF,C,E,EA/GW,CAAyB,EAAA,EAAA,YAAW,C,E,C,0C,Q,mC,Q,+B,Q,sB,Q,mC,Q,2B,Q,+B,Q,Y,Q,kB,Q,e,Q,c,Q,e,Q,gB,Q,S,Q,iB,Q,mB,Q,a,Q,S,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EChChD,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,Q,WAEY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,M,WAQA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,O,WAEA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,GAnDN,IAAM,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAChB,EAAQ,KAAK,KAAK,CAClB,EAAQ,KAAK,KAAK,CAClB,EAAO,KAAK,IAAI,CAChB,EAAM,KAAK,GAAG,CACd,EAAO,KAAK,IAAI,CAQhB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,C,EAQpB,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAQ5B,EAAM,SAAC,CAAA,CAAG,CAAhB,EAAsB,OAAA,EAAI,EAAI,EAAI,C,EAE5B,EAAQ,OAAO,KAAK,CAEpB,EAAM,KAAK,GAAG,CAOd,EAAQ,SAAA,CAAd,EAAqB,OAAA,KAAK,GAAG,CAAC,GAAI,E,EAE5B,EAAO,KAAK,IAAI,CAMhB,EAAiB,SAAA,CAAvB,EAA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AAAO,EAAP,GAAY,EAAI,EAAK,KAAK,CAAC,AAAO,GAAP,EAAO,EAAO,MAAQ,KAC1F,OAAA,CACF,CACF,C,E,C,Y,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECjDC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WAMY,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,S,WAEA,OAAA,C,G,E,M,C,E,Q,WAUA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,GA1Bb,IAAA,EAAA,EAAA,aACA,EAAA,EAAA,eACA,EAAA,EAAA,kBAEa,EAAO,KAAK,MAAM,CAElB,EAAS,WAAM,MAAA,AAAA,CAAA,EAAA,EAAA,eAAc,AAAd,EAAgB,IAAI,YAAY,GAAG,CAAC,EAAE,A,EAErD,EAAS,WACpB,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,IAAI,YAAY,IAC5C,MAAO,AAAC,CAAA,CAAG,CAAC,EAAE,CAAG,EAAO,MAAM,AAAN,EAAW,CAAA,EAAO,MAAM,CAAG,CAAA,EAAM,CAAA,CAAG,CAAC,EAAE,GAAK,CAAA,CACtE,EAOa,EAAQ,SAAA,CAAd,EAAqB,OAAA,CAAG,CAAC,EAAK,KAAK,CAAC,IAAS,EAAI,MAAM,EAAE,A,EAQnD,EAAS,WAAM,MAAA,AALL,uCAKoB,OAAO,CAAC,SAAmC,SAAA,CAA1D,EAC1B,MAAC,AAAA,CAAA,EAAI,IAAW,IAAM,EAAI,CAAA,EAAG,QAAQ,CAAC,G,E,C,E,C,Y,Q,c,Q,iB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,ECvBvC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,O,WACY,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,O,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WAOA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,Q,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,C,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WACA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,G,E,M,C,E,S,WAIA,OAAA,E,GA5EN,IAAM,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,EACP,EAAO,GACP,EAAO,GACP,EAAO,GACP,EAAO,IACP,EAAO,IACP,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,QACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,UACR,EAAQ,WACR,EAAQ,WACR,EAAQ,WACR,EAAQ,YAOR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,EACR,EAAQ,GACR,EAAQ,GACR,EAAQ,GACR,EAAQ,IACR,EAAQ,IACR,EAAQ,IACR,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,KACT,EAAS,MACT,EAAS,MACT,EAAS,MACT,GAAS,OACT,GAAS,OACT,GAAS,OACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,QACT,GAAS,SACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,UACT,GAAS,WACT,GAAS,WAIT,GAAS,WAIT,GAAS,U,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,ECzFtB,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAEa,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,GADN,IAAM,EAAS,OAAO,MAAM,CACtB,EAAkB,OAAO,eAAe,CAAC,IAAI,CAAC,O,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCH3D,EAAA,MAAA,CAAA,EAAA,eAAA,W,O,C,GACA,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,C,GACA,EAAA,MAAA,CAAA,EAAA,eAAA,W,O,C,GAFA,IAAA,EAAA,EAAA,UACA,EAAA,EAAA,eACA,EAAA,EAAA,S,E,C,S,Q,c,Q,S,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,0B,WCEa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAUA,OAAA,C,GAfb,IAAA,EAAA,EAAA,iBACA,EAAA,EAAA,iBAEa,EAAkC,EAElC,EAAwB,SACnC,CAAA,CACA,CAFK,EAIL,EAAS,YAAY,CAAC,EAAS,GAC/B,EAAS,cAAc,CAAC,EAAS,EACnC,EAIa,EAAkB,SAC7B,CAAA,CACA,CAAA,CACA,CAHK,EAKG,EAAS,WAAW,CAAC,KACtB,GACH,EAAwB,EAAG,EAAS,aAAa,CAAC,GAExD,C,E,C,gB,Q,gB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,ECCC,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,U,WAWY,OAAA,C,G,E,M,C,E,gB,WAeA,OAAA,C,G,E,M,C,E,S,WAKA,OAAA,C,G,E,M,C,E,S,WAaA,OAAA,C,G,E,M,C,E,a,WAeA,OAAA,C,G,E,M,C,E,e,WASA,OAAA,C,G,E,M,C,E,Y,WAmBA,OAAA,C,G,E,M,C,E,Q,WAgBA,OAAA,C,G,E,M,C,E,M,WAmBA,OAAA,C,G,E,M,C,E,a,WAyBA,OAAA,C,G,E,M,C,E,W,WAUA,OAAA,C,G,E,M,C,E,c,WASA,OAAA,C,G,E,M,C,E,Y,WAYA,OAAA,C,G,E,M,C,E,c,WAYA,OAAA,C,G,E,M,C,E,uB,WAeA,OAAA,C,G,E,M,C,E,Y,WAcA,OAAA,C,G,E,M,C,E,e,WAcA,OAAA,C,G,E,M,C,E,c,WAiBA,OAAA,C,G,E,M,C,E,wB,WA6BA,OAAA,C,G,E,M,C,E,0B,WAqBA,OAAA,C,G,E,M,C,E,iB,WAiBA,OAAA,C,G,E,M,C,E,wB,WAaA,OAAA,C,G,E,M,C,E,4B,WAoBA,OAAA,C,G,E,M,C,E,qB,WAsBA,OAAA,C,G,E,M,C,E,kB,WASA,OAAA,C,G,E,M,C,E,qB,WA0BA,OAAA,C,G,E,M,C,E,kB,WAsBA,OAAA,C,G,E,M,C,E,e,WAWA,OAAA,C,G,E,M,C,E,e,WAMA,OAAA,C,G,E,M,C,E,gB,WAMA,OAAA,C,G,E,M,C,E,iB,WAMA,OAAA,C,G,E,M,C,E,W,WAmDA,OAAA,C,G,E,M,C,E,a,WA+EA,OAAA,C,G,E,M,C,E,iB,WA0CA,OAAA,C,G,E,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,C,G,E,C,mC,Q,+B,Q,2B,Q,+B,Q,c,Q,Y,Q,c,Q,c,Q,a,Q,gB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,EClqBZ,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,S,WAEY,OAAA,C,G,E,M,C,E,sB,WAOA,OAAA,C,G,E,M,C,E,iB,WASA,OAAA,C,GAhBN,IAAM,EAAS,SAAA,CAAf,EAAoB,OAAA,AAAI,MAAM,E,EAOxB,EAAsB,WACjC,MAAM,EAAO,uBACf,EAOa,EAAiB,WAC5B,MAAM,EAAO,kBACf,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,kB,WCDa,OAAA,C,G,E,M,C,E,Y,WAOA,OAAA,C,G,E,M,C,E,wB,WAkHA,OAAA,C,G,E,M,C,E,wB,WA4BA,OAAA,C,G,E,M,C,E,wB,WA0BA,OAAA,C,G,E,M,C,E,uB,WAiBA,OAAA,C,G,I,E,E,2C,E,E,oC,E,E,gC,E,E,mC,E,E,uB,E,E,oC,E,E,4B,E,E,iC,E,E,uC,E,E,gCA5Nb,EAAA,EAAA,iBACA,EAAA,EAAA,iBACA,EAAA,EAAA,aACA,EAAA,EAAA,aACA,EAAA,EAAA,mBACA,EAAA,EAAA,iBAuBa,EAAkB,IAOlB,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAOC,CAAU,M,E,MAPX,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAST,A,C,E,E,I,C,I,C,EAAK,GAAG,CAAG,EACX,EAAK,QAAQ,CAAG,EAAI,QAAQ,CAC5B,EAAK,MAAM,CAAG,IAAI,IAClB,EAAK,IAAI,CAAG,IAAI,IAChB,EAAK,cAAc,CAAG,YACpB,WACE,IAAM,EAAM,EAAK,WAAW,EAED,QAAzB,EAAK,aAAa,IAClB,EAAkB,GAAK,EAAM,EAAK,IAAI,CAAC,GAAG,CAAC,EAAK,QAAQ,EAAE,WAAW,EAGrE,EAAK,aAAa,CAAC,EAAK,aAAa,IAEvC,IAAM,EAAS,EAAE,CACjB,EA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AAN,CAAA,WAAM,SAAA,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAEF,IAAI,CAAC,GAAG,CAAG,IAAI,G,CAFb,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CASJ,IAAA,UAAA,MAAA,SAAS,CAAG,CAAE,CAAQ,EACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAK,EACpB,C,E,CAKA,IAAA,UAAA,MAAA,SAAS,CAAG,EACV,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACtB,C,E,EAlBI,C,G,EA0BF,EAAc,CAAA,EAGlB,GAAI,CAE0B,aAAxB,OAAO,cAAgC,eACzC,EAAgB,aAChB,EAAc,CAAA,EAElB,CAAE,MAAO,EAAG,CAAE,CAOP,IAAM,EAAa,EASb,EAAW,SAAA,CAAjB,EAAiC,OAAA,GAAe,iBAAiB,UAA+B,E,EAS1F,EAAY,SAAA,CAAlB,EAAkC,OAAA,GAAe,oBAAoB,UAA+B,E,C,E,C,mC,Q,+B,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,EC5C1G,IAAA,EAAA,EAAA,kD,E,iB,C,G,E,M,C,E,c,WACY,OAAA,C,GAAN,IAAM,EAAc,WACzB,IAAI,EAAQ,CAAA,EACZ,OAAO,SAAC,CAAA,CAAG,CAAX,EACE,GAAI,EAAO,CACT,EAAQ,CAAA,EACR,GAAI,CACF,GACF,QAAU,CACR,EAAQ,CAAA,CACV,CACF,MAAiB,KAAA,IAAN,GACT,GAEJ,CACF,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,IC1CY,E,E,E,E,kD,E,iB,C,G,E,M,C,E,c,W,O,C,G,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,E,C,E,I,C,E,C,O,C,C,E,c,C,E,C,iB,C,C,E,S,C,E,C,Y,C,C,E,Q,C,E,C,U,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,Q,WCGC,OAAA,C,GAAN,IAAM,EAA2B,IAAI,G,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WCQ/B,OAAA,C,G,E,M,C,E,gB,WAsGA,OAAA,C,GAjHb,IAAA,EAAA,EAAA,iBACA,EAAA,EAAA,iBACA,EAAA,EAAA,gBAEA,EAAA,EAAA,iBAIA,EAAA,EAAA,kBAGa,EAAc,SACzB,CAAA,CACA,CAFK,EAIL,IAAM,EAAU,EAAS,aAAa,CAAC,GACjC,EAAU,EAAS,aAAa,GAChC,EAAc,EAAS,WAAW,CAAC,GACzC,GAAI,AAAS,KAAA,IAAT,EACF,OAAO,KAET,IAAM,EAAY,EAAK,SAAS,CAC1B,EAAM,EAAK,GAAG,CAChB,EAAY,CAAA,EAChB,OAAQ,GAEN,KAAK,AAAA,EAAA,WAAW,CAAC,IAAI,CACnB,EAAS,YAAY,CAAC,EAAS,AAAA,EAAA,WAAU,CAAE,IAAI,EAC/C,IAAM,EAAkB,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,eAAe,CAClD,EACA,EACA,EACA,GAIA,IAAoB,AAAA,EAAA,YAAW,CAAE,eAAe,CAAC,KAAK,EACrD,EAAK,MAAM,EAEZ,EAAc,GAGZ,IAAoB,AAAA,EAAA,YAAW,CAAE,eAAe,CAAC,KAAK,EACxD,CAAA,EAAY,CAAA,CADd,EAGA,KAIF,MAAK,AAAA,EAAA,WAAW,CAAC,cAAc,CAC7B,EAAS,YAAY,CAAC,EAAS,AAAA,EAAA,WAAU,CAAE,SAAS,EACpD,EAAS,kBAAkB,CACzB,EACA,AAAA,CAAA,EAAA,EAAA,iBAAgB,AAAhB,EAAkB,qBAAqB,CACrC,EACA,MAAM,IAAI,CAAC,EAAU,SAAS,GAAG,IAAI,MAGzC,EAAY,CAAA,EACZ,KAGF,MAAK,AAAA,EAAA,WAAW,CAAC,SAAS,CACxB,AAAA,CAAA,EAAA,EAAA,iBAAiB,AAAjB,EAAkB,oBAAoB,CACpC,EACA,EAAS,iBAAiB,CAAC,GAC3B,GAEF,KAEF,MAAK,AAAA,EAAA,WAAW,CAAC,QAAQ,CACvB,IAAM,EAAM,AAAgC,IAAhC,EAAS,SAAS,CAAC,GACzB,EAAW,EAAS,aAAa,CAAC,GACxC,GACE,IAAa,EAAK,MAAM,EACvB,CAAA,EAAM,OAAO,CAAC,GAAG,CAAC,IAAa,CAAC,GAC9B,CAAC,EAAK,OAAO,CAAC,GAAG,CAAC,IAAa,CAAA,EAClC,CACA,IAAM,EAAoB,EAAE,CACtB,EAAkB,EAAE,CACtB,GACF,EAAK,OAAO,CAAC,GAAG,CAAC,GACjB,EAAM,IAAI,CAAC,KAEX,EAAK,OAAQ,CAAA,MAAM,CAAC,GACpB,EAAQ,IAAI,CAAC,IAEf,EAAK,QAAQ,CAAC,IAAI,CAAC,QAAS,CAC1B,CACE,MAAA,EACA,QAAA,EACA,cAAe,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,EAAK,aAAa,GACxD,QAAS,MAAM,IAAI,CAAC,EAAK,OAAO,CAClC,EACD,EACD,AAAA,CAAA,EAAA,EAAA,iBAAiB,AAAjB,EAAkB,EACpB,CAEA,KAGF,SAEE,OADA,QAAQ,KAAK,CAAC,6BACP,CACX,QACA,AAAK,EAIE,EAFE,IAGX,EAGa,EAAgB,SAAC,CAAvB,EACL,IAAI,EAAS,CAAA,EACb,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,EAAK,aAAa,GAAG,OAAO,CAAC,SAAC,CAArD,EACO,EAAK,MAAM,EACd,CAAA,EAAS,CAAA,CADX,CAGF,GACI,CAAA,CAAE,GAAU,EAAK,MAAM,EAAM,GAAU,CAAC,EAAK,MAAM,AAAN,IAC/C,EAAK,MAAM,CAAG,EACd,EAAK,QAAQ,CAAC,IAAI,CAAC,SAAU,CAAC,CAAE,OAAA,CAAO,EAAE,EAE7C,C,E,C,gB,Q,gB,Q,e,Q,gB,Q,iB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,IC5HY,E,E,E,E,kD,E,iB,C,G,E,M,C,E,c,W,O,C,G,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,CAAA,E,C,E,I,C,E,C,O,C,C,E,c,C,E,C,iB,C,C,E,S,C,E,C,Y,C,C,E,Q,C,E,C,U,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WCcC,OAAA,C,G,E,M,C,E,wB,WAWA,OAAA,C,G,E,M,C,E,qB,WAQA,OAAA,C,G,E,M,C,E,uB,WAMA,OAAA,C,G,E,M,C,E,oB,WAWA,OAAA,C,G,E,M,C,E,a,WAYA,OAAA,C,GA9Db,IAAA,EAAA,EAAA,yBACA,EAAA,EAAA,iBAEA,EAAA,EAAA,iBAEA,EAAA,EAAA,WASa,EAAmB,SAC9B,CAAA,CACA,CAAA,CACA,CAHK,EAKL,GAAI,CACF,EAAK,cAAc,CAAC,EAAS,YAAY,CAAC,GAAU,EACtD,CAAE,MAAO,EAAG,CAAC,CACf,EAGa,EAAwB,SACnC,CAAA,CACA,CAFK,EAIL,EAAK,cAAc,CAAC,EAAS,YAAY,CAAC,GAC5C,EAGa,EAAqB,SAAC,CAAA,CAAY,CAAxC,EACL,OAAA,EACG,OAAO,CAAC,EAAS,YAAY,CAAC,GAAU,EAAK,GAAG,EAChD,IAAI,CAAC,SAAC,CAFT,EAEkB,OAAA,EAAK,GAAG,CAAC,WAAM,OAAA,EAAG,OAAO,CAAC,EAAK,IAAI,CAAE,E,E,E,EAG5C,EAAuB,SAAC,CAAA,CAAY,CAA1C,EAGD,EAAK,WAAW,EAClB,EAAmB,EAAM,GAG3B,EAAsB,EAAM,EAC9B,EAGa,EAAoB,SAAC,CAA3B,EACL,GAAI,EAAK,QAAQ,CAAC,aAAa,CAAE,CAE/B,IAAM,EAAkB,EAAS,aAAa,GAC9C,EAAS,YAAY,CAAC,EAAiB,AAAA,EAAA,WAAU,CAAE,QAAQ,EAC3D,EAAS,UAAU,CAAC,EAAiB,GACrC,EAAS,cAAc,CAAC,EAAiB,EAAK,MAAM,EACpD,EAAmB,EAAM,EAC3B,CACF,EAGa,EAAa,SAAC,CAApB,EACL,EAAS,IAAI,CAAC,SAAU,CACtB,CACE,UAAW,EAAS,SAAS,AAC/B,EACD,CACH,C,E,C,wB,Q,gB,Q,gB,Q,U,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCpEA,EAAA,MAAA,CAAA,EAAA,kBAAA,W,O,E,e,A,GAAA,EAAA,MAAA,CAAA,EAAA,WAAA,W,O,E,Q,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GAAA,IAAA,EAAA,EAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,IC4BoB,EAoGR,E,E,E,kD,E,iB,C,GAMZ,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,G,E,M,C,E,W,WAnDa,OAAA,C,G,E,M,C,E,kB,WAiDA,OAAA,C,G,E,M,C,E,mB,WAIA,OAAA,C,G,I,E,E,sC,E,E,mC,E,E,iC,E,E,uC,E,E,mC,E,E,gCAxIb,EAAA,EAAA,2BACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,cAcM,EAAU,CAAC,EAIX,EAAe,QACf,EAAa,AAAA,EAAA,SAAQ,EAAK,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,KAAK,CAAC,gBAAgB,GACxD,EAAY,AAAA,EAAA,SAAS,EAAI,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,YAAY,CAAC,IACpD,EAAe,CAAC,EAChB,EAAc,CAAC,EAEf,EAAM,WAAM,OAAA,KAAK,KAAK,CAAC,KAAK,GAAG,GAAK,I,EAEpC,GAAc,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAO,CAAd,EACZ,IAAA,EAQA,EARA,EAAA,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAUF,OAVE,EAAU,CACd,KAZS,MAaT,QAAA,EACA,OAAQ,EACR,WAAY,IACZ,KAAA,C,CAfQ,IAeK,E,C,AACf,EAGM,EAAA,WAAA,IAAA,CACF,C,EAAM,OAAO,MAAM,CAAC,MAAM,CACxB,UACA,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EACE,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAHE,CAIA,EACA,EAAQ,MAAM,CACd,EAAQ,UAAU,CAClB,EAAQ,IAAI,CACZ,EAAQ,IAAI,CACZ,EAAQ,OAAO,C,I,A,M,EAYV,OAvBT,EAAK,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAA,KAAL,CAAA,KAAA,EAAA,CACJ,GAAA,CAAA,EAAA,KAAA,CAAI,WAAJ,C,K,EACE,EAAA,IAAA,GAaF,CAAA,E,E,E,CAIA,E,C,E,CAEK,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAA,G,C,E,CACH,GAAA,C,EACW,C,EAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,CAAC,EAAI,G,A,M,EALtC,MAAA,C,EAAO,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAA,KAAA,CAAA,KAAA,EAAA,C,E,M,C,CAEL,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,KAAA,CAAA,KAAA,EAAA,EAAA,MAAA,CAAA,CAGE,CAAA,EAAA,GAAA,CAAK,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAA,KAAL,CAAA,KAAA,EAAA,CAAW,EAAA,IAAA,G,E,C,E,G,E,E,A,C,EAGjB,GAnCM,SAAqB,CAAA,CAAO,CAA5B,E,O,E,K,C,I,C,U,GAqCA,EAAY,SAAC,CAAA,CAAO,CAA1B,EAEE,OADA,CAAY,CAAC,EAAM,CAAG,EACf,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,CACZ,MACA,EAIE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAFA,MAAO,CArDA,MAqDM,CACb,MAAO,GACN,EAAA,KAAY,CAAC,EAAM,EAEvB,CACH,EAEM,EAAc,SAAA,CAApB,EAEE,OADA,OAAO,CAAY,CAAC,EAAM,CACnB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,CAAC,QAAS,EAAM,CAChC,EAEa,EAAW,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,CAC/B,KAAM,SAAA,CAAN,EACE,MAAA,AAAA,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,EAAQ,EApEI,GAoEiC,GAAG,CAAC,SAAA,CAA3D,EACE,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,UAAU,AAAV,EAAW,EAAK,SAAA,CAA/B,EACE,IAaA,EAb4C,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,GAAA,GAA9C,EAAqC,CAAA,CAAA,EAAA,CAA5B,EAA4B,CAAA,CAAA,EAAA,CAArB,EAAqB,CAAA,CAAA,EAAA,CAAZ,EAAY,CAA5C,CAAA,EAAA,CAEA,GAAI,IAAY,EAAc,CAC5B,IAAM,EAAS,GAAkC,MAAA,CAA/B,EAAA,OAAO,CAAC,yBAAkC,MAAA,CAAX,EAAO,GAAG,CAAC,MAExD,AAAY,CAAA,WAAZ,EACF,QAAQ,IAAI,CAAC,EAAS,GACD,OAAZ,GAAqB,GAC9B,QAAQ,IAAI,CAAC,EAAS,GAExB,MACF,CAEA,AAAkB,OAAlB,CAAA,EAAA,CAAW,CAAC,EAAM,AAAN,GAAZ,AAAA,KAAA,IAAA,GAAA,EAAA,IAAA,CAAA,EAAqB,CAAY,CAAC,EAAM,CAAE,EAAQ,OAAO,CAC3D,GAIA,OAFA,CAAO,CAAC,EAAI,CAAG,EAER,EAAO,KAAK,AACrB,E,EAEF,UAAW,SAAC,CAAA,CAAQ,CAAA,CAAW,CAAA,CAAW,CAA1C,EACE,IAAM,EAAY,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,IAClB,EAAY,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,IAUxB,OARA,CAAW,CAAC,EAAU,CAAG,CAAW,CAAC,EAAU,CAAG,SAAC,CAAA,CAAO,CAA1D,EACyB,IAAA,EAAvB,OAAA,EAAU,EAAO,GAAM,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAW,CAAlB,E,I,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EACT,OAAZ,EAAA,EAAO,IAAI,CAAC,C,EAAM,EAAY,EAAW,G,A,M,EAAzC,MAAA,C,EAAA,EAAA,KAAA,CAAA,EAAA,CAAY,EAAA,IAAA,G,E,A,C,E,GADgB,SAAA,CAAA,CAAW,CAAX,E,O,E,K,C,I,C,U,G,EAIhC,EAAO,IAAI,CAAC,EAAU,EAAW,IACjC,EAAO,IAAI,CAAC,EAAU,EAAW,IAE1B,WACL,EAAO,IAAI,CAAC,EAAY,IACxB,EAAO,IAAI,CAAC,EAAY,IACxB,OAAO,CAAW,CAAC,EAAU,CAC7B,OAAO,CAAW,CAAC,EAAU,AAC/B,CACF,EAEA,QAAQ,EAAE,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAQ,CAAf,E,I,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EACI,OAAZ,EAAA,EAAO,IAAI,CAAC,C,EAAM,EAAY,EAAW,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,CAAC,OAAQ,EAAA,MAAK,AAAC,I,A,M,EAA/D,MAAA,C,EAAA,EAAA,KAAA,CAAA,EAAA,CAAY,EAAA,IAAA,G,E,A,C,E,GADG,SAAA,CAAA,CAAQ,CAAR,E,O,E,K,C,I,C,U,EAEnB,GAEa,EAAkB,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,GAI/B,EAAmB,CAC9B,kBACA,qBACA,qBACA,iBACA,cACA,YACA,uBACA,kBACA,uBACA,wBACA,iBACA,mBACA,mBACA,YACA,qBACA,qBACA,YACD,CAAC,GAAG,CAAC,SAAA,CAAL,EAAY,MAAA,SAAW,C,E,E,C,qC,Q,kC,Q,gC,Q,sC,Q,kC,Q,+B,Q,0B,Q,gB,Q,a,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,uC,O,c,C,E,a,C,M,C,C,G,E,a,C,E,W,C,E,O,C,E,S,C,K,CE1JxB,qEAAA,EACA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,oBACA,EAAA,EAAA,oBACA,EAAA,EAAA,oBACA,EAAA,EAAA,oBAEA,EAAA,EAAA,oBAQA,EAAA,EAAA,oBAEM,EAAa,OAAO,sEACpB,EAAa,OAAO,sEACpB,EAAM,OAAO,GACb,EAAM,OAAO,GACb,EAAa,SAAC,CAAA,CAAW,CAA/B,EAA6C,MAAC,AAAA,CAAA,EAAI,EAAI,CAAA,EAAO,C,EAM7D,SAAS,EAAQ,CAAS,EAGxB,IAAM,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAO,OAAO,IAAK,EAAO,OAAO,IAEnE,EAAO,OAAO,IAAK,EAAO,OAAO,IAAK,EAAO,OAAO,IACpD,EAAK,EAAK,EAAI,EALV,EAMJ,EAAK,EAAM,EAAK,EANZ,EAOJ,EAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,EAPX,GAOqB,EAPrB,EAQJ,EAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,EARX,GAQqB,EARrB,EASJ,EAAO,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,EATZ,GASsB,EATtB,EAUJ,EAAO,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,EAVb,GAUwB,EAVxB,EAWJ,EAAO,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,EAXb,GAWwB,EAXxB,EAYJ,EAAO,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,EAZb,GAYwB,EAZxB,EAaJ,EAAQ,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,EAbd,GAayB,EAbzB,EAcJ,EAAQ,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAM,EAdf,GAc0B,EAd1B,EAeJ,EAAQ,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAM,EAff,GAeyB,EAfzB,EAgBJ,EAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAM,EAhBb,GAgBwB,EAhBxB,EAiBJ,EAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,EAjBX,GAiBqB,EAjBrB,EAkBJ,EAAO,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,EAlBZ,GAmBV,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,GAAO,GAAI,MAAM,AAAI,MAAM,2BAC9C,OAAO,CACT,CAEA,IAAM,EAAK,AAAA,CAAA,EAAA,EAAA,KAAA,AAAA,EAAM,EAAY,KAAA,EAAW,KAAA,EAAW,CAAE,KAAM,CAAO,EAKrD,CAAA,EAAA,SAAS,CAAG,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EACvB,CACE,EAAG,OAAO,GACV,EAAG,OAAO,GACV,GAAA,EACA,EAAG,EAEH,GAAI,OAAO,iFACX,GAAI,OAAO,iFACX,EAAG,OAAO,GACV,KAAM,CAAA,EAON,KAAM,CACJ,KAAM,OAAO,sEACb,YAAa,SAAC,CAAd,EAEE,IAAM,EAAK,OAAO,sCACZ,EAAK,CAAC,EAAM,OAAO,sCACnB,EAAK,OAAO,uCAEZ,EAAY,OAAO,uCAEnB,EAAK,EAAW,AAHX,EAGgB,EAPjB,GAQJ,EAAK,EAAW,CAAC,EAAK,EARlB,GASN,EAAK,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAI,EAAK,EAAK,EAAK,EATtB,GAUN,EAAK,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,CAAC,EAAK,EAAK,EANb,EAJD,GAWJ,EAAQ,EAAK,EACb,EAAQ,EAAK,EAGnB,GAFI,GAAO,CAAA,EAAK,AAbN,EAaU,CAApB,EACI,GAAO,CAAA,EAAK,AAdN,EAcU,CAApB,EACI,EAAK,GAAa,EAAK,EACzB,MAAM,AAAI,MAAM,uCAAyC,GAE3D,MAAO,CAAE,MAAA,EAAO,GAAA,EAAI,MAAA,EAAO,GAAA,CAAE,CAC/B,CACD,CACF,EACD,EAAA,MAAM,EAKR,IAAM,EAAM,OAAO,GAEb,EAAsD,CAAA,EAC5D,SAAS,EAAW,CAAW,EAAE,IAAA,IAAA,EAAA,UAAA,MAAA,CAAG,EAAH,AAAA,MAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,EAAA,CAAA,SAAA,CAAA,EAAyB,CACxD,IAAI,EAAO,CAAoB,CAAC,EAAI,CACpC,GAAI,AAAS,KAAA,IAAT,EAAoB,CACtB,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,WAAW,IAAI,CAAC,EAAK,SAAC,CAA1C,EAAgD,OAAA,EAAE,UAAU,CAAC,E,IAC7D,EAAO,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,EAAM,GACzB,CAAoB,CAAC,EAAI,CAAG,CAC9B,CACA,MAAO,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAA,KAAA,CAAA,IAAW,CAAX,CAAY,EAAkB,CAA9B,MAAA,CAAkB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KACrC,CAGA,IAAM,EAAe,SAAC,CAAtB,EAAmD,OAAA,EAAM,UAAU,CAAC,CAAA,GAAM,KAAK,CAAC,E,EAC1E,EAAW,SAAC,CAAlB,EAAgC,MAAA,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EAAG,G,EAC7C,EAAO,SAAC,CAAd,EAA4B,MAAA,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAI,EAAG,E,EAC7B,EAAO,SAAC,CAAd,EAA4B,MAAA,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAI,EAAG,E,EAC7B,EAAQ,EAAA,SAAS,CAAC,eAAe,CAKvC,SAAS,EAAoB,CAAa,EACxC,IAAI,EAAK,EAAA,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAC5C,EAAI,EAAM,cAAc,CAAC,GAE7B,MAAO,CAAE,OADM,EAAE,QAAQ,GAAK,EAAK,EAAK,CAAC,GAChB,MAAO,EAAa,EAAE,CACjD,CAKA,SAAS,EAAO,CAAS,EACvB,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,EAAS,IAAK,EAAG,EAAK,GACtB,IAAM,EAAK,EAAK,EAAI,GAEhB,EAAI,EADE,EAAK,EAAK,EAAI,OAAO,KAE3B,EAAI,IAAQ,GAAK,CAAA,EAAI,EAAK,CAAC,EAAA,EAC/B,IAAM,EAAI,IAAI,EAAM,EAAG,EAAG,GAE1B,OADA,EAAE,cAAc,GACT,CACT,CACA,IAAM,EAAM,EAAA,eAAe,CAI3B,SAAS,IAAU,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAqB,CACtC,OAAO,EAAK,EAAI,EAAA,KAAA,CAAA,KAAA,EAAA,CAAW,oBAA6B,CAAxC,MAAA,CAAgC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,MACrD,CAuCA,SAAS,EAAc,CAAc,CAAE,CAAY,CAAE,CAAc,EACjE,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,YAAa,EAAW,IAC1C,EAAI,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,UAAW,GAC3B,EAAM,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,YAAa,EAAW,IAChD,GAAI,CACF,IA1E8C,EA0ExC,EAAI,EAAO,EAAI,IACf,EAAI,EAAI,EAAI,QAAQ,CAAC,EAAG,KAC9B,GAAI,CAAC,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAG,EAAK,GAAa,MAAO,CAAA,EACzC,IAAM,EAAI,EAAI,EAAI,QAAQ,CAAC,GAAI,KAC/B,GAAI,CAAC,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAG,EAAK,GAAa,MAAO,CAAA,EACzC,IAAM,EAAI,EAAU,EAAS,GAAI,EAAa,GAAI,GAC5C,GAhFwC,EAgFtB,EAAK,CAAC,GA/EhC,EAAM,IAAI,CAAC,oBAAoB,CA+EX,EAAG,EA/Ee,IAgFpC,GAAI,CAAC,GAAK,CAAC,EAAE,QAAQ,IAAM,EAAE,QAAQ,GAAG,CAAC,GAAK,EAAG,MAAO,CAAA,EACxD,MAAO,CAAA,CACT,CAAE,MAAO,EAAO,CACd,MAAO,CAAA,CACT,CACF,CAKa,EAAA,OAAO,CAA2B,CAC7C,aAzDF,SAA6B,CAAe,EAC1C,OAAO,EAAoB,GAAY,KAAK,AAC9C,EAwDE,KAlDF,SACE,CAAY,CACZ,CAAmB,EACnB,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAe,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,IAErB,EAAI,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,UAAW,GACA,EAAA,EAAoB,GAAtC,EAAkB,EAAzB,KAAA,CAAmB,EAAM,EAAd,MAAA,CAEb,EAAI,EAAS,EAAI,EAAI,EAAW,cAD5B,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,UAAW,EAAS,OAGpC,EAAK,EAAK,EADH,EAAW,gBAAiB,EAAG,EAAI,KAEhD,GAAI,IAAO,EAAK,MAAM,AAAI,MAAM,0BAChC,IAAiC,EAAA,EAAoB,GAAtC,EAAkB,EAAzB,KAAA,CAAmB,EAAM,EAAd,MAAA,CACb,EAAI,EAAU,EAAI,EAAI,GACtB,EAAM,IAAI,WAAW,IAI3B,GAHA,EAAI,GAAG,CAAC,EAAI,GACZ,EAAI,GAAG,CAAC,EAAS,EAAK,EAAI,EAAI,IAAK,IAE/B,CAAC,EAAc,EAAK,EAAG,GAAK,MAAM,AAAI,MAAM,oCAChD,OAAO,CACT,EA+BE,OAAQ,EACR,MAAO,CACL,iBAAkB,EAAA,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAClD,OAAA,EACA,aAAA,EACA,gBAAA,EAAA,eAAe,CACf,gBAAA,EAAA,eAAe,CACf,WAAA,EACA,IAAA,EAAA,GAAG,AACJ,CACF,EAED,IAAM,EACJ,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EACE,EACA,CAEE,CACE,qEACA,oEACA,qEACA,qEACD,CAED,CACE,qEACA,qEACA,qEACD,CAED,CACE,qEACA,qEACA,qEACA,qEACD,CAED,CACE,qEACA,qEACA,qEACA,qEACD,CACF,CAAC,GAAG,CAAC,SAAC,CAAN,EAAY,OAAA,EAAE,GAAG,CAAC,SAAC,CAAP,EAAa,OAAA,OAAO,E,E,IAE/B,EACJ,AAAA,CAAA,EAAA,EAAA,mBAAA,AAAA,EAAoB,EAAI,CACtB,EAAG,OAAO,sEACV,EAAG,OAAO,QACV,EAAG,EAAG,MAAM,CAAC,OAAO,OACrB,GACG,EACJ,AAAA,CAAA,EAAA,EAAA,YAAY,AAAZ,EACE,EAAA,SAAS,CAAC,eAAe,CACzB,SAAC,CAFH,EAGI,IAAiB,EAAA,EAAO,EAAG,MAAM,CAAC,CAAO,CAAC,EAAE,GAC5C,OAAO,EADU,EAAT,CAAA,CAAS,EAAN,CAAX,CAEF,EACA,CACE,IAAK,iCACL,UAAW,iCACX,EAAG,EAAG,KAAK,CACX,EAAG,EACH,EAAG,IACH,OAAQ,MACR,KAAM,EAAA,MAAM,AACb,EAEQ,CAAA,EAAA,WAAW,CAA0B,EAAI,WAAW,CACpD,EAAA,aAAa,CAA0B,EAAI,aAAa,A,E,C,sC,Q,kB,Q,iB,Q,mB,Q,mB,Q,mB,Q,mB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,oC,E,E,gC,E,E,4B,E,E,gC,O,c,C,E,a,C,M,C,C,G,E,M,C,E,M,C,E,M,C,K,EE7RrE,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,oBAQM,EAAW,aAAA,EAAgB,IAAI,YAAY,CAC/C,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACrF,EAKK,EAAY,aAAA,EAAgB,IAAI,YAAY,CAChD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACrF,EAIK,EAAW,aAAA,EAAgB,IAAI,YAAY,IACpC,EAAA,WAAA,EAAb,SAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,Q,E,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAGX,AAUQ,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,GAAI,GAAI,EAAG,CAAA,EAAX,EAVR,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,CAChB,EAAA,CAAC,CAAG,AAAe,EAAf,CAAS,CAAC,EAAE,C,C,CAVL,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAeD,IAAA,MAAA,MAAA,WAER,MAAO,CAD4B,AAAA,IAAI,CAA/B,CAAA,CAA2B,AAAA,IAAI,CAA5B,CAAA,CAAwB,AAAA,IAAI,CAAzB,CAAA,CAAqB,AAAA,IAAI,CAAtB,CAAA,CAAkB,AAAA,IAAI,CAAnB,CAAA,CAAe,AAAA,IAAI,CAAhB,CAAA,CAAY,AAAA,IAAI,CAAb,CAAA,CAAS,AAAA,IAAI,CAAV,CAA7B,CAC+B,AACjC,C,E,CAEU,IAAA,MAAA,MAAA,SACR,CAAS,CAAE,CAAS,CAAE,CAAS,CAAE,CAAS,CAAE,CAAS,CAAE,CAAS,CAAE,CAAS,CAAE,CAAS,EAEtF,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,EACT,IAAI,CAAC,CAAC,CAAG,AAAI,EAAJ,CACX,C,E,CACU,IAAA,UAAA,MAAA,SAAQ,CAAc,CAAE,CAAc,EAE9C,IAAK,IAAI,EAAI,EAAG,EAAI,GAAI,IAAK,GAAU,EAAG,CAAQ,CAAC,EAAE,CAAG,EAAK,SAAS,CAAC,EAAQ,CAAA,GAC/E,IAAK,IAAI,EAAI,GAAI,EAAI,GAAI,IAAK,CAC5B,IAAM,EAAM,CAAQ,CAAC,EAAI,GAAG,CACtB,EAAK,CAAQ,CAAC,EAAI,EAAE,CACpB,EAAK,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,GAAK,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAK,IAAO,IAAQ,EAC7C,EAAK,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,IAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAI,IAAO,IAAO,EACjD,CAAA,CAAQ,CAAC,EAAE,CAAG,EAAM,CAAQ,CAAC,EAAI,EAAE,CAAG,EAAK,CAAQ,CAAC,EAAI,GAAG,CAAI,CACjE,CAGA,IAAK,IADC,EAA2B,AAAA,IAAI,CAA/B,CAAA,CAAG,EAAwB,AAAA,IAAI,CAA5B,CAAA,CAAG,EAAqB,AAAA,IAAI,CAAzB,CAAA,CAAG,EAAkB,AAAA,IAAI,CAAtB,CAAA,CAAG,EAAe,AAAA,IAAI,CAAnB,CAAA,CAAG,EAAY,AAAA,IAAI,CAAhB,CAAA,CAAG,EAAS,AAAA,IAAI,CAAb,CAAA,CAAG,EAAM,AAAA,IAAI,CAAV,CAA3B,CACS,EAAI,EAAG,EAAI,GAAI,IAAK,CAE3B,IAAM,EAAM,EADG,CAAA,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,EAAG,GAAK,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,EAAG,IAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAG,GAAlD,EACyB,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAI,EAAG,EAAG,GAAK,CAAQ,CAAC,EAAE,CAAG,CAAQ,CAAC,EAAE,CAAI,EAE/D,EAAM,AADG,CAAA,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,EAAG,GAAK,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,EAAG,IAAM,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAG,GAAlD,EACqB,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAG,EAAG,GAAM,EACrC,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAI,EAAM,EACf,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAK,EAAM,CAClB,CAEA,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,EAAK,EAAI,IAAI,CAAC,CAAC,CAAI,EACnB,IAAI,CAAC,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAChC,C,E,CACU,IAAA,aAAA,MAAA,WACR,EAAS,IAAI,CAAC,EAChB,C,E,CACA,IAAA,UAAA,MAAA,WACE,IAAI,CAAC,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EACnB,C,E,EA3EW,CAAe,EAAA,EAAA,MAAc,CAA1C,CAAA,EAAA,MAAA,CAAA,EA8EA,IAAM,EAAA,WAAA,EAAN,SAAA,CAAA,EAAM,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,Q,E,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GACJ,A,C,E,E,I,C,I,C,EAAA,CAAC,CAAG,YACJ,EAAA,CAAC,CAAG,WACJ,EAAA,CAAC,CAAG,WACJ,EAAA,CAAC,CAAG,WACJ,EAAA,CAAC,CAAG,SACJ,EAAA,CAAC,CAAG,WACJ,EAAA,CAAC,CAAG,WACJ,EAAA,CAAC,CAAG,YAGF,EAAK,SAAS,CAAG,G,C,CAXf,OAAA,CAAe,EAAA,EAmBR,CAAA,EAAA,MAAM,CAAmB,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,WAAM,OAAA,IAAI,C,GAInD,EAAA,MAAM,CAAmB,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,WAAM,OAAA,IAAI,C,E,E,C,mC,Q,+B,Q,2B,Q,+B,Q,mB,Q,iB,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,oC,E,E,gC,E,E,4B,E,E,uC,E,E,gC,O,c,C,E,a,C,M,C,C,G,E,M,C,E,G,C,E,G,C,K,EEnIhE,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,mBAoBa,CAAA,EAAA,GAAG,CAAG,SAAC,CAAA,CAAW,CAAA,CAAW,CADvC,EACqD,OAAC,EAAI,EAAM,CAAC,EAAI,C,EAK3D,EAAA,GAAG,CAAG,SAAC,CAAA,CAAW,CAAA,CAAW,CADvC,EACqD,OAAC,EAAI,EAAM,EAAI,EAAM,EAAI,C,EAMjF,IAAsB,EAAA,WAAA,EAAtB,SADG,CAAA,EACmB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAeT,CAAgB,CAClB,CAAiB,CACf,CAAiB,CACjB,CAAa,M,E,MAlBJ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAeT,A,C,E,E,I,C,I,C,EAAA,QAAQ,CAAR,EACF,EAAA,SAAS,CAAT,EACE,EAAA,SAAS,CAAT,EACA,EAAA,IAAI,CAAJ,EATD,EAAA,QAAQ,CAAG,CAAA,EACX,EAAA,MAAM,CAAG,EACT,EAAA,GAAG,CAAG,EACN,EAAA,SAAS,CAAG,CAAA,EASpB,EAAK,MAAM,CAAG,IAAI,WAAW,GAC7B,EAAK,IAAI,CAAG,AAAA,CAAA,EAAA,EAAA,UAAU,AAAV,EAAW,EAAK,MAAM,E,C,CAtBhB,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAwBpB,IAAA,SAAA,MAAA,SAAO,CAAW,EAChB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,IAAI,EAIX,IAAK,IAHG,EAA2B,AAAA,IAAI,CAA/B,IAAA,CAAM,EAAqB,AAAA,IAAI,CAAzB,MAAA,CAAQ,EAAa,AAAA,IAAI,CAAjB,QAAtB,CAEM,EAAM,AADZ,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAQ,EAAf,EACiB,MAAM,CACd,EAAM,EAAG,EAAM,GAAO,CAC7B,IAAM,EAAO,KAAK,GAAG,CAAC,EAAW,IAAI,CAAC,GAAG,CAAE,EAAM,GAEjD,GAAI,IAAS,EAAU,CAErB,IADA,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAAW,GACrB,GAAY,EAAM,EAAK,GAAO,EAAU,IAAI,CAAC,OAAO,CAAC,EAAU,GACtE,QACF,CACA,EAAO,GAAG,CAAC,EAAK,QAAQ,CAAC,EAAK,EAAM,GAAO,IAAI,CAAC,GAAG,EACnD,IAAI,CAAC,GAAG,EAAI,EACZ,GAAO,EACH,IAAI,CAAC,GAAG,GAAK,IACf,IAAI,CAAC,OAAO,CAAC,EAAM,GACnB,IAAI,CAAC,GAAG,CAAG,EAEf,CAGA,OAFA,IAAI,CAAC,MAAM,EAAI,EAAK,MAAM,CAC1B,IAAI,CAAC,UAAU,GACR,IAAI,AACb,C,E,CACA,IAAA,aAAA,MAAA,SAAW,CAAe,EACxB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,IAAI,EACX,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAK,IAAI,EAChB,IAAI,CAAC,QAAQ,CAAG,CAAA,EAIhB,IAAQ,EAAiC,AAAA,IAAI,CAArC,MAAA,CAAQ,EAAyB,AAAA,IAAI,CAA7B,IAAA,CAAM,EAAmB,AAAA,IAAI,CAAvB,QAAA,CAAU,EAAS,AAAA,IAAI,CAAb,IAAhC,CACI,EAAU,IAAI,CAAZ,GAAN,AAEA,CAAA,CAAM,CAAC,IAAM,CAAG,IAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAK,IAAI,CAAC,GAG3B,IAAI,CAAC,SAAS,CAAG,EAAW,IAC9B,IAAI,CAAC,OAAO,CAAC,EAAM,GACnB,EAAM,GAGR,IAAK,IAAI,EAAI,EAAK,EAAI,EAAU,IAAK,CAAM,CAAC,EAAE,CAAG,EAIjD,AAlGJ,CAAA,SAAsB,CAAc,CAAE,CAAkB,CAAE,CAAa,CAAE,CAAa,EACpF,GAAI,AAA6B,YAA7B,OAAO,EAAK,YAAY,CAAiB,OAAO,EAAK,YAAY,CAAC,EAAY,EAAO,GACzF,IAAM,EAAO,OAAO,IACd,EAAW,OAAO,YAClB,EAAK,OAAO,GAAU,EAAQ,GAC9B,EAAK,OAAO,EAAQ,GACpB,EAAI,EAAO,EAAI,EACf,EAAI,EAAO,EAAI,EACrB,EAAK,SAAS,CAAC,EAAa,EAAG,EAAI,GACnC,EAAK,SAAS,CAAC,EAAa,EAAG,EAAI,EACrC,CAAA,EAwFiB,EAAM,EAAW,EAAG,OAAO,AAAc,EAAd,IAAI,CAAC,MAAM,EAAO,GAC1D,IAAI,CAAC,OAAO,CAAC,EAAM,GACnB,IAAM,EAAQ,AAAA,CAAA,EAAA,EAAA,UAAA,AAAA,EAAW,GACnB,EAAM,IAAI,CAAC,SAAS,CAE1B,GAAI,EAAM,EAAG,MAAM,AAAI,MAAM,+CAC7B,IAAM,EAAS,EAAM,EACf,EAAQ,IAAI,CAAC,GAAG,GACtB,GAAI,EAAS,EAAM,MAAM,CAAE,MAAM,AAAI,MAAM,sCAC3C,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAAK,EAAM,SAAS,CAAC,EAAI,EAAG,CAAK,CAAC,EAAE,CAAE,EACpE,C,E,CACA,IAAA,SAAA,MAAA,WACE,IAAQ,EAAsB,AAAA,IAAI,CAA1B,MAAA,CAAQ,EAAc,AAAA,IAAI,CAAlB,SAAhB,CACA,IAAI,CAAC,UAAU,CAAC,GAChB,IAAM,EAAM,EAAO,KAAK,CAAC,EAAG,GAE5B,OADA,IAAI,CAAC,OAAO,GACL,CACT,C,E,CACA,IAAA,aAAA,MAAA,SAAW,CAAM,EACf,GAAA,CAAA,EAAO,IAAK,IAAI,CAAC,WAAmB,AAAA,EACpC,AAAA,CAAA,EAAA,CAAA,EAAG,GAAG,CAAN,KAAA,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAI,CAAC,GAAG,KAClB,IADA,EACQ,EAAuD,AAAA,IAAI,CAA3D,QAAA,CAAU,EAA6C,AAAA,IAAI,CAAjD,MAAA,CAAQ,EAAqC,AAAA,IAAI,CAAzC,MAAA,CAAQ,EAA6B,AAAA,IAAI,CAAjC,QAAA,CAAU,EAAmB,AAAA,IAAI,CAAvB,SAAA,CAAW,EAAQ,AAAA,IAAI,CAAZ,GAAvD,CAMA,OALA,EAAG,MAAM,CAAG,EACZ,EAAG,GAAG,CAAG,EACT,EAAG,QAAQ,CAAG,EACd,EAAG,SAAS,CAAG,EACX,EAAS,GAAU,EAAG,MAAM,CAAC,GAAG,CAAC,GAC9B,CACT,C,E,EApGoB,CAAoC,EAAA,EAAA,IAAO,CAAjE,CAAA,EAAA,MAAA,CAAA,C,E,C,mC,Q,+B,Q,2B,Q,sC,Q,+B,Q,iB,Q,iB,O,E,C,Q,C,S,C,C,C,C,C,EEhCA,SAAS,EAAO,CAAS,EACvB,GAAI,CAAC,OAAO,aAAa,CAAC,IAAM,EAAI,EAAG,MAAM,AAAI,MAAM,kCAAmC,MAAA,CAAD,GAC3F,CAEA,SAAS,EAAK,CAAU,EACtB,GAAI,AAAa,WAAb,OAAO,EAAiB,MAAM,AAAI,MAAM,yBAA0B,MAAA,CAAD,GACvE,CAGA,SAAgB,EAAQ,CAAU,EAChC,OACE,aAAa,YACZ,AAAK,MAAL,GAAa,AAAa,UAAb,OAAO,GAAkB,AAAuB,eAAvB,EAAE,WAAW,CAAC,IAAI,AAE7D,CAEA,SAAS,EAAM,CAAyB,EAAE,IAAA,IAAA,EAAA,UAAA,MAAA,CAAG,EAAH,AAAA,MAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,EAAA,CAAA,SAAA,CAAA,EAAoB,CAC5D,GAAI,CAAC,EAAQ,GAAI,MAAM,AAAI,MAAM,uBACjC,GAAI,EAAQ,MAAM,CAAG,GAAK,CAAC,EAAQ,QAAQ,CAAC,EAAE,MAAM,EAClD,MAAM,AAAI,MAAM,iCAA2D,MAAA,CAA1B,EAAO,oBAA2B,MAAA,CAAR,EAAE,MAAM,EACvF,CAQA,SAAS,EAAK,CAAO,EACnB,GAAI,AAAa,YAAb,OAAO,GAAoB,AAAoB,YAApB,OAAO,EAAE,MAAM,CAC5C,MAAM,AAAI,MAAM,mDAClB,EAAO,EAAE,SAAS,EAClB,EAAO,EAAE,QAAQ,CACnB,CAEA,SAAS,EAAO,CAAa,EAAE,IAAA,EAAA,CAAA,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAC7B,GAAI,EAAS,SAAS,CAAE,MAAM,AAAI,MAAM,oCACxC,GAAI,GAAiB,EAAS,QAAQ,CAAE,MAAM,AAAI,MAAM,wCAC1D,CACA,SAAS,EAAO,CAAQ,CAAE,CAAa,EACrC,EAAM,GACN,IAAM,EAAM,EAAS,SAAS,CAC9B,GAAI,EAAI,MAAM,CAAG,EACf,MAAM,AAAI,MAAM,yDAA4D,MAAA,CAAH,GAE7E,C,O,c,C,E,a,C,M,C,C,GApCA,EAAA,OAAA,CAAA,EAsCS,EAAA,MAAA,CAAA,EAAQ,EAAA,IAAA,CAAA,EAAM,EAAA,KAAA,CAAA,EAAO,EAAA,IAAA,CAAA,EAAM,EAAA,MAAA,CAAA,EAAQ,EAAA,MAAA,CAAA,EAG5C,EAAA,OAAA,CADe,CAAE,OAAA,EAAQ,KAAA,EAAM,MAAA,EAAO,KAAA,EAAM,OAAA,EAAQ,OAAA,CAAM,C,E,C,E,C,M,C,S,C,C,C,C,C,E,IEwDlC,E,E,E,sC,E,E,oC,E,E,gC,E,E,2B,E,E,gCAzGxB,oEAAA,E,O,c,C,E,a,C,M,C,C,G,E,I,C,E,Q,C,E,Y,C,E,Q,C,E,I,C,E,I,C,E,I,C,E,U,C,E,G,C,E,E,C,K,EAYA,EAAA,OAAA,CAAA,SAAwB,CAAU,EAChC,OACE,aAAa,YACZ,AAAK,MAAL,GAAa,AAAa,UAAb,OAAO,GAAkB,AAAuB,eAAvB,EAAE,WAAW,CAAC,IAAI,AAE7D,EAgCA,EAAA,UAAA,CAAA,SAA2B,CAAgB,EACzC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAC9B,CAAG,CAAC,EAAE,CAAG,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,CAAG,CAAC,EAAE,CAE5B,EASA,EAAA,UAAA,CAAA,SAA2B,CAAiB,EAC1C,AAAA,CAAA,EAAA,EAAA,KAAA,AAAA,EAAO,GAGP,IAAK,IADD,EAAM,GACD,EAAI,EAAG,EAAI,EAAM,MAAM,CAAE,IAChC,GAAO,CAAK,CAAC,CAAK,CAAC,EAAE,CAAC,CAExB,OAAO,CACT,EAcA,EAAA,UAAA,CAAA,SAA2B,CAAW,EACpC,GAAI,AAAe,UAAf,OAAO,EAAkB,MAAM,AAAI,MAAM,4BAA8B,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,EAAA,GAClF,IAAM,EAAK,EAAI,MAAM,CACf,EAAK,EAAK,EAChB,GAAI,EAAK,EAAG,MAAM,AAAI,MAAM,0DAA4D,GAExF,IAAK,IADC,EAAQ,IAAI,WAAW,GACpB,EAAK,EAAG,EAAK,EAAG,EAAK,EAAI,IAAM,GAAM,EAAG,CAC/C,IAAM,EAAK,EAAc,EAAI,UAAU,CAAC,IAClC,EAAK,EAAc,EAAI,UAAU,CAAC,EAAK,IAC7C,GAAI,AAAO,KAAA,IAAP,GAAoB,AAAO,KAAA,IAAP,EAEtB,MAAM,AAAI,MAAM,+CADH,CAAA,CAAG,CAAC,EAAG,CAAG,CAAG,CAAC,EAAK,EAAE,AAAF,EACwC,cAAgB,EAE1F,CAAA,CAAK,CAAC,EAAG,CAAG,AAAK,GAAL,EAAU,CACxB,CACA,OAAO,CACT,EAQA,EAAA,SAAA,CAAsB,SAAU,CAAa,CAAE,CAAY,CAAE,CAAuB,EAA9D,OAAA,EAAA,KAAA,CAAA,IAAA,CAAA,U,EAmBtB,EAAA,WAAA,CAAA,EAWA,EAAA,OAAA,CAAA,EASA,EAAA,WAAA,CAAA,WAA4B,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAuB,CAEjD,IAAK,IADD,EAAM,EACD,EAAI,EAAG,EAAI,EAAO,MAAM,CAAE,IAAK,CACtC,IAAM,EAAI,CAAM,CAAC,EAAE,CACnB,AAAA,CAAA,EAAA,EAAA,KAAA,AAAA,EAAO,GACP,GAAO,EAAE,MAAM,AACjB,CAEA,IAAK,IADC,EAAM,IAAI,WAAW,GAClB,EAAI,EAAG,EAAM,EAAG,EAAI,EAAO,MAAM,CAAE,IAAK,CAC/C,IAAM,EAAI,CAAM,CAAC,EAAE,CACnB,EAAI,GAAG,CAAC,EAAG,GACX,GAAO,EAAE,MAAM,AACjB,CACA,OAAO,CACT,EA2CA,EAAA,SAAA,CAAA,SACE,CAAY,CACZ,CAAS,EAET,GAAI,AAAS,KAAA,IAAT,GAAsB,AAAqB,oBAArB,EAAM,IAAI,CAAC,GACnC,MAAM,AAAI,MAAM,yCAElB,OADe,OAAO,MAAM,CAAC,EAAU,EAEzC,EAIA,EAAA,eAAA,CAAA,SAAmD,CAAuB,EACxE,IAAM,EAAQ,SAAC,CAAf,EAA0C,OAAA,IAAW,MAAM,CAAC,EAAQ,IAAM,MAAM,E,EAC1E,EAAM,IAIZ,OAHA,EAAM,SAAS,CAAG,EAAI,SAAS,CAC/B,EAAM,QAAQ,CAAG,EAAI,QAAQ,CAC7B,EAAM,MAAM,CAAG,WAAM,OAAA,G,EACd,CACT,EAEA,EAAA,uBAAA,CAAA,SACE,CAA+B,EAE/B,IAAM,EAAQ,SAAC,CAAA,CAAY,CAA3B,EAAoD,OAAA,EAAS,GAAM,MAAM,CAAC,EAAQ,IAAM,MAAM,E,EACxF,EAAM,EAAS,CAAA,GAIrB,OAHA,EAAM,SAAS,CAAG,EAAI,SAAS,CAC/B,EAAM,QAAQ,CAAG,EAAI,QAAQ,CAC7B,EAAM,MAAM,CAAG,SAAC,CAAhB,EAA4B,OAAA,EAAS,E,EAC9B,CACT,EAEA,EAAA,0BAAA,CAAA,SACE,CAAkC,EAElC,IAAM,EAAQ,SAAC,CAAA,CAAY,CAA3B,EAAoD,OAAA,EAAS,GAAM,MAAM,CAAC,EAAQ,IAAM,MAAM,E,EACxF,EAAM,EAAS,CAAA,GAIrB,OAHA,EAAM,SAAS,CAAG,EAAI,SAAS,CAC/B,EAAM,QAAQ,CAAG,EAAI,QAAQ,CAC7B,EAAM,MAAM,CAAG,SAAC,CAAhB,EAA4B,OAAA,EAAS,E,EAC9B,CACT,EAKA,EAAA,WAAA,CAAA,WAA4B,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAc,GACxC,GAAI,EAAA,MAAM,EAAI,AAAkC,YAAlC,OAAO,EAAA,MAAM,CAAC,eAAe,CACzC,OAAO,EAAA,MAAM,CAAC,eAAe,CAAC,IAAI,WAAW,IAG/C,GAAI,EAAA,MAAM,EAAI,AAA8B,YAA9B,OAAO,EAAA,MAAM,CAAC,WAAW,CACrC,OAAO,EAAA,MAAM,CAAC,WAAW,CAAC,EAE5B,OAAM,AAAI,MAAM,yCAClB,EA3PA,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,mBAea,CAAA,EAAA,EAAE,CAAG,SAAC,CAAZ,EAAgC,OAAA,IAAI,WAAW,EAAI,MAAM,CAAE,EAAI,UAAU,CAAE,EAAI,UAAU,C,EACnF,EAAA,GAAG,CAAG,SAAC,CAAb,EACL,OAAA,IAAI,YAAY,EAAI,MAAM,CAAE,EAAI,UAAU,CAAE,KAAK,KAAK,CAAC,EAAI,UAAU,CAAG,G,EAG7D,EAAA,UAAU,CAAG,SAAC,CAApB,EACL,OAAA,IAAI,SAAS,EAAI,MAAM,CAAE,EAAI,UAAU,CAAE,EAAI,UAAU,C,EAG5C,EAAA,IAAI,CAAG,SAAC,CAAA,CAAc,CAA5B,EAA8C,OAAC,GAAS,GAAK,EAAW,IAAS,C,EAE3E,EAAA,IAAI,CAAG,SAAC,CAAA,CAAc,CAA5B,EACL,OAAC,GAAQ,EAAW,IAAU,GAAK,IAAY,C,EAEpC,EAAA,IAAI,CAAG,AAA4D,KAA5D,IAAI,WAAW,IAAI,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAE9D,EAAA,QAAQ,CAAG,SAAC,CAAlB,EACL,OAAE,GAAQ,GAAM,WACf,GAAS,EAAK,SACd,IAAU,EAAK,MACf,IAAU,GAAM,G,EAEN,EAAA,YAAY,CAAG,EAAA,IAAI,CAAG,SAAC,CAAvB,EAAqC,OAAA,CAAI,EAAA,SAAC,CAAD,EAAe,MAAA,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,EAAS,E,EAU9E,IAAM,EAAQ,aAAA,EAAgB,MAAM,IAAI,CAAC,CAAE,OAAQ,GAAG,EAAI,SAAC,CAAA,CAAG,CAAR,EACpD,OAAA,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,I,GAgBvB,EAAS,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,EAChE,SAAS,EAAc,CAAY,SACjC,AAAI,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAO,EAAO,EAAE,CAC/D,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAQ,CAAA,EAAO,EAAE,CAAG,EAAA,EACnE,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAQ,CAAA,EAAO,EAAE,CAAG,EAAA,QAEzE,CA0BO,IAAM,GAAW,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,W,M,A,C,E,E,C,A,E,I,C,S,C,E,M,C,E,A,EAAa,GAAxB,W,O,E,K,C,I,C,U,GAGS,SAAA,IAAA,MAAA,AAAA,CAAA,EAAf,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAyB,CAAa,CAAE,CAAY,CAAE,CAAuB,EAC9E,IAAA,EACK,EAGD,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAJJ,EAAK,KAAK,GAAG,GACR,EAAI,E,E,K,C,C,M,EAAG,GAAA,CAAA,CAAA,EAAI,CAAA,EAAJ,MAAA,C,E,E,CAId,GAHA,EAAG,GAGC,AADE,CAAA,EAAO,KAAK,GAAG,GAAK,CAApB,GACM,GAAK,EAAO,EAAM,MAA9B,C,E,E,CACA,MAAA,C,EAAM,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,I,A,M,EAAN,EAAA,IAAA,GACA,GAAM,E,E,K,C,C,M,E,OANmB,I,C,E,E,A,M,E,M,C,E,A,C,EAQ7B,EAAA,EAVsB,KAAA,CAAA,IAAA,CAAA,U,CAmBtB,SAAgB,EAAY,CAAW,EACrC,GAAI,AAAe,UAAf,OAAO,EAAkB,MAAM,AAAI,MAAM,oCAA8C,MAAA,CAAV,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,KACxF,OAAO,IAAI,WAAW,IAAI,cAAc,MAAM,CAAC,GACjD,CAQA,SAAgB,EAAQ,CAAW,EAGjC,MAFoB,UAAhB,OAAO,GAAmB,CAAA,EAAO,EAAY,EAAjD,EACA,AAAA,CAAA,EAAA,EAAA,KAAA,AAAA,EAAO,GACA,CACT,CArCa,EAAA,QAAQ,CAAA,EA2DrB,IAAsB,EAAA,WAAA,EAAtB,WAAsB,SAAA,IAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,E,CAAA,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAsBpB,IAAA,QAAA,MAAA,WACE,OAAO,IAAI,CAAC,UAAU,EACxB,C,E,EAxBoB,C,GAAtB,CAAA,EAAA,IAAA,CAAA,EAsCA,IAAM,EAAQ,CAAA,EAAG,QAAQ,A,E,C,qC,Q,mC,Q,+B,Q,0B,Q,+B,Q,mB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,O,c,C,E,a,C,M,C,C,G,E,M,C,K,EEvMZ,EAAA,MAAM,CACjB,AAAsB,UAAtB,OAAO,YAA2B,WAAY,WAAa,WAAW,MAAM,CAAG,KAAA,C,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,iC,E,E,uC,E,E,uC,O,c,C,E,a,C,M,C,C,GEGjF,EAAA,OAAA,CAAA,EASA,EAAA,WAAA,CAAA,SAA4B,CAAkB,CAAE,CAAc,EAC5D,IAAM,EAAS,SAAC,CAAhB,EAAgC,MAAA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK,EAAa,EAAQ,I,EACtE,OAAO,OAAO,MAAM,CAAC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK,EAAO,IAAjC,CAA2C,OAAA,C,GAC7C,CAnBA,qEAAA,EACA,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,oBAEA,EAAA,EAAA,oBAGA,SAAgB,EAAQ,CAAW,E,I,E,I,CACjC,MAAO,CACL,KAAA,EACA,KAAM,SAAC,CAAP,EAA2B,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAuB,MAAA,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAK,EAAM,EAAK,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAA,KAAA,CAAA,EAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,I,EACjF,YAAA,EAAA,WAAW,AACZ,CACH,C,E,C,gC,Q,sC,Q,sC,Q,iB,Q,iB,Q,iB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,oC,E,E,gC,E,E,4B,E,E,gC,O,c,C,E,a,C,M,C,C,G,E,I,C,E,I,C,K,EEbA,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,oBAEa,EAAA,WAAA,EAAb,SAAA,CAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAQC,CAAW,CAAE,CAAW,EARzB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAKH,A,C,E,E,I,C,I,C,EAAA,QAAQ,CAAG,CAAA,EACX,EAAA,SAAS,CAAG,CAAA,EAIlB,AAAA,CAAA,EAAA,EAAA,IAAA,AAAA,EAAW,GACX,I,EAAM,EAAM,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAQ,GAEpB,GADA,EAAK,KAAK,CAAG,EAAK,MAAM,GACpB,AAA6B,YAA7B,OAAO,EAAK,KAAK,CAAC,MAAM,CAC1B,MAAM,AAAI,MAAM,sDAClB,CAAA,EAAK,QAAQ,CAAG,EAAK,KAAK,CAAC,QAAQ,CACnC,EAAK,SAAS,CAAG,EAAK,KAAK,CAAC,SAAS,CACrC,IAAM,EAAW,EAAK,QAAQ,CACxB,EAAM,IAAI,WAAW,GAE3B,EAAI,GAAG,CAAC,EAAI,MAAM,CAAG,EAAW,EAAK,MAAM,GAAG,MAAM,CAAC,GAAK,MAAM,GAAK,GACrE,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAAK,CAAG,CAAC,EAAE,EAAI,GAC/C,EAAK,KAAK,CAAC,MAAM,CAAC,GAElB,EAAK,KAAK,CAAG,EAAK,MAAM,GAExB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAAK,CAAG,CAAC,EAAE,EAAI,I,OAC/C,EAAK,KAAK,CAAC,MAAM,CAAC,GAClB,EAAI,IAAI,CAAC,G,C,CA5BA,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CA8BX,IAAA,SAAA,MAAA,SAAO,CAAU,EAGf,MAFA,AAAA,CAAA,EAAA,EAAA,MAAY,AAAZ,EAAa,IAAI,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GACX,IAAI,AACb,C,E,CACA,IAAA,aAAA,MAAA,SAAW,CAAe,EACxB,AAAA,CAAA,EAAA,EAAA,MAAY,AAAZ,EAAa,IAAI,EACjB,AAAA,CAAA,EAAA,EAAA,KAAA,AAAA,EAAY,EAAK,IAAI,CAAC,SAAS,EAC/B,IAAI,CAAC,QAAQ,CAAG,CAAA,EAChB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAClB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GACtB,IAAI,CAAC,OAAO,EACd,C,E,CACA,IAAA,SAAA,MAAA,WACE,IAAM,EAAM,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,SAAS,EAE/C,OADA,IAAI,CAAC,UAAU,CAAC,GACT,CACT,C,E,CACA,IAAA,aAAA,MAAA,SAAW,CAAY,EAErB,GAAA,CAAA,EAAO,OAAO,MAAM,CAAC,OAAO,cAAc,CAAC,IAAI,EAAG,CAAA,EAAA,EAClD,IAAQ,EAA2D,AAAA,IAAI,CAA/D,KAAA,CAAO,EAAoD,AAAA,IAAI,CAAxD,KAAA,CAAO,EAA6C,AAAA,IAAI,CAAjD,QAAA,CAAU,EAAmC,AAAA,IAAI,CAAvC,SAAA,CAAW,EAAwB,AAAA,IAAI,CAA5B,QAAA,CAAU,EAAc,AAAA,IAAI,CAAlB,SAArD,CAQA,OANA,EAAG,QAAQ,CAAG,EACd,EAAG,SAAS,CAAG,EACf,EAAG,QAAQ,CAAG,EACd,EAAG,SAAS,CAAG,EACf,EAAG,KAAK,CAAG,EAAM,UAAU,CAAC,EAAG,KAAK,EACpC,EAAG,KAAK,CAAG,EAAM,UAAU,CAAC,EAAG,KAAK,EAC7B,CACT,C,E,CACA,IAAA,UAAA,MAAA,WACE,IAAI,CAAC,SAAS,CAAG,CAAA,EACjB,IAAI,CAAC,KAAK,CAAC,OAAO,GAClB,IAAI,CAAC,KAAK,CAAC,OAAO,EACpB,C,E,EAlEW,CAAgC,EAAA,EAAA,IAAa,CAA1D,CAAA,EAAA,IAAA,CAAA,EA+Ea,EAAA,IAAI,CAAG,SAAC,CAAA,CAAa,CAAA,CAAY,CAD3C,EAED,OAAA,IAAI,EAAU,EAAM,GAAK,MAAM,CAAC,GAAS,MAAM,E,EACjD,EAAA,IAAI,CAAC,MAAM,CAAG,SAAC,CAAA,CAAa,CAA5B,EAA2C,OAAA,IAAI,EAAU,EAAM,E,C,E,C,mC,Q,+B,Q,2B,Q,+B,Q,mB,Q,iB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,oC,E,E,gC,E,E,4B,E,E,iC,E,E,uC,E,E,uC,E,E,2B,E,E,qC,E,E,gC,O,c,C,E,a,C,M,C,C,G,E,G,C,K,EEmK/D,EAAA,iBAAA,CAAA,EA4gBA,EAAA,WAAA,CAAA,SAA4B,CAAmB,EAC7C,IAzCM,EAyCA,GAzCA,EAAO,AAAA,CAAA,EAAA,EAAA,aAAA,AAAA,EAyCc,GAxC3B,EAAG,cAAc,CACf,EACA,CACE,KAAM,OACN,KAAM,WACN,YAAa,UACd,EACD,CACE,SAAU,WACV,cAAe,WACf,KAAM,SACP,GAEI,OAAO,MAAM,CAAC,AAArB,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAuB,KAAM,CAAA,CAAS,EAAA,KA4B9B,EAAuB,EAAvB,EAAA,CAAI,EAAmB,EAAnB,CAAZ,CACM,EAAgB,EAAG,KAAK,CAAG,EAC3B,EAAkB,EAAI,EAAG,KAAK,CAAG,EAEvC,SAAS,EAAK,CAAS,EACrB,OAAO,EAAI,GAAG,CAAC,EAAG,EACpB,CACA,SAAS,EAAK,CAAS,EACrB,OAAO,EAAI,MAAM,CAAC,EAAG,EACvB,CAEA,IAKI,EAAA,EAAkB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EACjB,GANL,CAOE,QAAA,SAAQ,CAAE,CAAE,CAAK,CAAE,CAAqB,EACtC,IAAM,EAAI,EAAM,QAAQ,GAClB,EAAI,EAAG,OAAO,CAAC,EAAE,CAAC,EAClB,EAAM,EAAG,WAAW,OAE1B,CADA,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,eAAgB,GAClB,GACK,EAAI,WAAW,IAAI,CAAC,CAAC,EAAM,QAAQ,GAAK,EAAO,EAAK,EAAG,GAEvD,EAAI,WAAW,IAAI,CAAC,CAAC,EAAK,EAAG,EAAG,EAAG,OAAO,CAAC,EAAE,CAAC,EAEzD,EACA,UAAA,SAAU,CAAiB,EACzB,IAAM,EAAM,EAAM,MAAM,CAClB,EAAO,CAAK,CAAC,EAAE,CACf,EAAO,EAAM,QAAQ,CAAC,GAE5B,GAAI,IAAQ,GAAkB,CAAA,AAAS,IAAT,GAAiB,AAAS,IAAT,CAAS,EAAO,CAC7D,IAGI,EAHE,EAAI,EAAG,eAAe,CAAC,GAC7B,GAAI,CAAC,EAAG,OAAO,CAAC,EAAG,EAAK,EAAG,KAAK,EAAG,MAAM,AAAI,MAAM,yBACnD,IAAM,EAAK,EAAoB,GAE/B,GAAI,CACF,EAAI,EAAG,IAAI,CAAC,EACd,CAAE,MAAO,EAAW,CAElB,MAAM,AAAI,MAAM,wBADD,CAAA,aAAqB,MAAQ,KAAO,EAAU,OAAO,CAAG,EAAvE,EAEF,CAKA,MAFmB,CAAA,AAAO,EAAP,CAAO,GAAO,GAFlB,CAAA,AAAC,CAAA,EAAI,CAAA,IAAS,CAA7B,GAG0B,CAAA,EAAI,EAAG,GAAG,CAAC,EAArC,EACO,CAAE,EAAA,EAAG,EAAA,CAAC,CACf,CAAO,GAAI,IAAQ,GAAmB,AAAS,IAAT,EAGpC,MAAO,CAAE,EAFC,EAAG,SAAS,CAAC,EAAK,QAAQ,CAAC,EAAG,EAAG,KAAK,GAEpC,EADF,EAAG,SAAS,CAAC,EAAK,QAAQ,CAAC,EAAG,KAAK,CAAE,EAAI,EAAG,KAAK,EAC9C,CAEb,OAAM,AAAI,MACR,mBAAgD,MAAA,CAA7B,EAAG,2BAA+D,MAAA,CAArC,EAAa,yBAAuC,MAAA,CAAf,EAAe,uBAG1G,CA/CA,IAAiB,EAIf,EAJF,eAAA,CACA,EAGE,EAHF,sBAAA,CACA,EAEE,EAFF,mBAAA,CACA,EACE,EADF,kBAHA,CAiDI,EAAgB,SAAC,CAAvB,EACE,OAAA,EAAG,UAAU,CAAC,EAAG,eAAe,CAAC,EAAK,EAAM,WAAW,E,EAWnD,EAAS,SAAC,CAAA,CAAe,CAAA,CAAc,CAA7C,EAA4D,OAAA,EAAG,eAAe,CAAC,EAAE,KAAK,CAAC,EAAM,G,EAKvF,EAAA,WAAA,EAAN,WAAM,SAAA,EAEO,CAAS,CACT,CAAS,CACT,CAAiB,EAJxB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAEO,IAAA,CAAA,CAAC,CAAD,EACA,IAAA,CAAA,CAAC,CAAD,EACA,IAAA,CAAA,QAAQ,CAAR,EAET,IAAI,CAAC,cAAc,E,CANjB,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAuBJ,IAAA,iBAAA,MAAA,WACE,EAAG,QAAQ,CAAC,IAAK,IAAI,CAAC,CAAC,CAAE,EAAK,GAC9B,EAAG,QAAQ,CAAC,IAAK,IAAI,CAAC,CAAC,CAAE,EAAK,EAChC,C,E,CAEA,IAAA,iBAAA,MAAA,SAAe,CAAgB,EAC7B,OAAO,IA7BL,EA6BmB,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAE,EACvC,C,E,CAEA,IAAA,mBAAA,MAAA,SAAiB,CAAY,EAC3B,IAAQ,EAAwB,AAAA,IAAI,CAA5B,CAAA,CAAG,EAAqB,AAAA,IAAI,CAAzB,CAAA,CAAa,EAAQ,AAAA,IAAI,CAAtB,QAAd,CACM,EAAI,EAAc,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,UAAW,IAC/C,GAAI,AAAO,MAAP,GAAe,CAAC,CAAC,EAAG,EAAG,EAAG,EAAE,CAAC,QAAQ,CAAC,GAAM,MAAM,AAAI,MAAM,uBAChE,IAAM,EAAO,AAAQ,IAAR,GAAa,AAAQ,IAAR,EAAY,EAAI,EAAM,CAAC,CAAG,EACpD,GAAI,GAAQ,EAAG,KAAK,CAAE,MAAM,AAAI,MAAM,8BACtC,IAAM,EAAS,AAAC,CAAA,AAAM,EAAN,CAAM,GAAO,EAAI,KAAO,KAClC,EAAI,EAAM,OAAO,CAAC,EAAS,EAAc,IACzC,EAAK,EAAK,GACV,EAAK,EAAK,CAAC,EAAI,GACf,EAAK,EAAK,EAAI,GACd,EAAI,EAAM,IAAI,CAAC,oBAAoB,CAAC,EAAG,EAAI,GACjD,GAAI,CAAC,EAAG,MAAM,AAAI,MAAM,qBAExB,OADA,EAAE,cAAc,GACT,CACT,C,E,CAGA,IAAA,WAAA,MAAA,WACE,OA/DK,AA+DwB,IAAI,CAAC,CAAC,CAhExB,GAAe,CAiE5B,C,E,CAEA,IAAA,aAAA,MAAA,WACE,OAAO,IAAI,CAAC,QAAQ,GAAK,IAvDvB,EAuDqC,IAAI,CAAC,CAAC,CAAE,EAAK,CAAC,IAAI,CAAC,CAAC,EAAG,IAAI,CAAC,QAAQ,EAAI,IAAI,AACrF,C,E,CAGA,IAAA,gBAAA,MAAA,WACE,OAAO,EAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,GACpC,C,E,CACA,IAAA,WAAA,MAAA,WACE,OAAO,EAAA,GAAG,CAAC,UAAU,CAAC,CAAE,EAAG,IAAI,CAAC,CAAC,CAAE,EAAG,IAAI,CAAC,CAAC,AAAA,EAC9C,C,E,CAGA,IAAA,oBAAA,MAAA,WACE,OAAO,EAAG,UAAU,CAAC,IAAI,CAAC,YAAY,GACxC,C,E,CACA,IAAA,eAAA,MAAA,WACE,OAAO,EAAc,IAAI,CAAC,CAAC,EAAI,EAAc,IAAI,CAAC,CAAC,CACrD,C,E,C,C,CA9DO,IAAA,cAAP,MAAA,SAAmB,CAAQ,EACzB,IAAM,EAAI,EAAM,WAAW,CAE3B,OAAO,IAbL,EAamB,EADrB,EAAM,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,mBAAoB,EAAK,AAAI,EAAJ,GACV,EAAG,GAAI,EAAO,EAAK,EAAG,EAAI,GAC7D,C,E,CAIO,IAAA,UAAP,MAAA,SAAe,CAAQ,EACrB,IAAiB,EAAA,EAAA,GAAG,CAAC,KAAK,CAAC,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,MAAO,IAC9C,OAAO,IApBL,EAmBe,EAAT,CAAA,CAAS,EAAN,CAAX,CAEF,C,E,EArBI,C,IA4HN,SAAS,EAAU,CAAsB,EACvC,IAAM,EAAM,EAAG,OAAO,CAAC,GACjB,EAAM,AAAgB,UAAhB,OAAO,EACb,EAAM,AAAC,CAAA,GAAO,CAAA,GAAS,EAAa,MAAM,QAChD,AAAI,EAAY,IAAQ,GAAiB,IAAQ,EAC7C,EAAY,IAAQ,EAAI,GAAiB,IAAQ,EAAI,EACrD,aAAgB,CAEtB,CAuBA,IAAM,EACJ,EAAM,QAAQ,EACd,SAAU,CAAiB,EAGzB,IAAM,EAAM,EAAG,eAAe,CAAC,GACzB,EAAQ,AAAe,EAAf,EAAM,MAAM,CAAO,EAAM,UAAU,CACjD,OAAO,EAAQ,EAAI,GAAO,OAAO,GAAS,CAC5C,EACI,EACJ,EAAM,aAAa,EACnB,SAAU,CAAiB,EACzB,OAAO,EAAK,EAAS,GACvB,EAEI,EAAa,EAAG,OAAO,CAAC,EAAM,UAAU,EAI9C,SAAS,EAAW,CAAW,EAG7B,OAFA,EAAG,QAAQ,CAAC,WAA2B,MAAA,CAAhB,EAAM,UAAU,EAAI,EAAK,EAAK,GAE9C,EAAG,eAAe,CAAC,EAAK,EAAM,WAAW,CAClD,CAuDA,IAAM,EAA2B,CAAE,KAAM,EAAM,IAAI,CAAE,QAAS,CAAA,CAAK,EAC7D,EAA0B,CAAE,KAAM,EAAM,IAAI,CAAE,QAAS,CAAA,CAAK,SAuBlE,EAAM,IAAI,CAAC,cAAc,CAAC,GAiEnB,CACL,MAAA,EACA,aA/MF,SAAsB,CAAmB,EAAE,IAAA,EAAA,CAAA,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CACzC,OAAO,EAAM,cAAc,CAAC,GAAY,UAAU,CAAC,EACrD,EA8ME,gBArLF,SAAyB,CAAiB,CAAE,CAAY,EAAE,IAAA,EAAA,CAAA,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CACxD,GAAI,EAAU,GAAW,MAAM,AAAI,MAAM,iCACzC,GAAI,CAAC,EAAU,GAAU,MAAM,AAAI,MAAM,iCAEzC,OAAO,AADG,EAAM,OAAO,CAAC,GACf,QAAQ,CAAC,EAAuB,IAAW,UAAU,CAAC,EACjE,EAiLE,KA7EF,SAAc,CAAY,CAAE,CAAgB,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAO,EAC3B,EAAA,AAjE1B,SAAiB,CAAY,CAAE,CAAmB,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAO,EACzD,GAAI,CAAC,YAAa,YAAY,CAAC,IAAI,CAAC,SAAC,CAAP,EAAa,OAAA,KAAK,CAC9C,GAAA,MAAM,AAAI,MAAM,uCAClB,IAAQ,EAAsB,EAAtB,IAAA,CAAM,EAAgB,EAAhB,WAAd,CACM,EAAqC,EAArC,IAAA,CAAM,EAA+B,EAA/B,OAAA,CAAuB,EAAQ,EAAtB,YAAA,AACT,OAAR,GAAc,CAAA,EAAO,CAAA,CAAA,EACzB,EAAU,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,UAAW,GACjC,EAAmB,GACf,GAAS,CAAA,EAAU,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,oBAAqB,EAAK,GAA7D,EAKA,IAAM,EAAQ,EAAc,GACtB,EAAI,EAAuB,GAC3B,EAAW,CAAC,EAAW,GAAI,EAAW,GAAO,CAEnD,GAAI,AAAO,MAAP,GAAe,AAAQ,CAAA,IAAR,EAAe,CAEhC,IAAM,EAAI,AAAQ,CAAA,IAAR,EAAe,EAAY,EAAG,KAAK,EAAI,EACjD,EAAS,IAAI,CAAC,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,eAAgB,GAC5C,CAyBA,MAAO,CAAE,KAxBI,AAAA,EAAG,WAAW,CAAd,KAAA,CAAA,EAAe,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAwBhB,MArBf,SAAe,CAAkB,EAE/B,IAAM,EAAI,EAAS,GACnB,GAAK,EAAmB,IACxB,IAAM,EAAK,EAAK,GACV,EAAI,EAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,GACnC,EAAI,EAAK,EAAE,CAAC,EAClB,GAAI,IAAM,GAIV,IAAM,EAAI,EAAK,EAAK,EAAK,AAbjB,EAaqB,EAAI,IACjC,GAAI,IAAM,GACV,IAAI,EAAW,AAAC,CAAA,EAAE,CAAC,GAAK,EAAI,EAAI,CAAA,EAAK,OAAO,EAAE,CAAC,CAAG,GAC9C,EAAQ,EAKZ,OAJI,GA7OC,AA6O6B,EA9OvB,GAAe,IA+OxB,EA1OG,AAJA,AA8OgB,EA/OV,GAAe,EAKM,EAAK,CA0OhB,GAAA,EACnB,GAAY,GAEP,IAAI,EAAU,EAAG,EAAO,KACjC,CACoB,CACtB,EAkBkC,EAAS,EAAS,GAA1C,EAAgB,EAAhB,IAAA,CAAM,EAAU,EAAV,KAAA,CAGd,OAAO,AADM,EAAG,cAAc,CAAqB,AADzC,EAC2C,IAAI,CAAC,SAAS,CAAE,AAD3D,EAC6D,WAAW,CAAE,AAD1E,EAC4E,IAAI,EAC9E,EAAM,EACpB,EAyEE,OAtDF,SACE,CAA8B,CAC9B,CAAY,CACZ,CAAc,EACd,IAwCU,EA9BN,EAVJ,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAO,EAKP,GAFA,EAAU,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,UAAW,GACjC,EAAY,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,YAAa,GACjC,WAAY,EAAM,MAAM,AAAI,MAAM,sCACtC,EAAmB,GACnB,IAAQ,EAAkB,EAAlB,IAAA,CAAM,EAAY,EAAZ,OAAd,CAEI,EAA8B,KAAA,EAElC,GAAI,CACF,GAAI,AAAc,UAAd,OAVK,GAUqB,EAAG,OAAO,CAV/B,GAaP,GAAI,CACF,EAAO,EAAU,OAAO,CAdnB,EAeP,CAAE,MAAO,EAAU,CACjB,GAAI,CAAE,CAAA,aAAoB,EAAA,GAAG,CAAC,GAAA,AAAA,EAAM,MAAM,EAC1C,EAAO,EAAU,WAAW,CAjBvB,EAkBP,MACK,GAAI,AAAc,UAAd,OAnBF,GAmB4B,AAAgB,WAAhB,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,AAnBnC,EAmBsC,CAAC,GAAiB,AAAgB,WAAhB,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,AAnB/D,EAmBkE,CAAC,EAAe,CACzF,IAAQ,EAAS,AApBV,EAoBC,CAAA,CAAG,EAAM,AApBV,EAoBI,CAAX,CACA,EAAO,IAAI,EAAU,EAAG,EAC1B,MACE,MAAM,AAAI,MAAM,SAElB,EAAI,EAAM,OAAO,CAAC,EACpB,CAAE,MAAO,EAAO,CACd,GAAK,AAA4B,UAA5B,EAAgB,OAAO,CAC1B,MAAM,AAAI,MAAM,kEAClB,MAAO,CAAA,CACT,CACA,GAAI,GAAQ,EAAK,QAAQ,GAAI,MAAO,CAAA,EAChC,GAAS,CAAA,EAAU,EAAM,IAAI,CAAC,EAAlC,EACA,IAAQ,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CACM,EAAI,EAAc,GAClB,EAAK,EAAK,GACV,EAAK,EAAK,EAAI,GACd,EAAK,EAAK,EAAI,GACd,EAAA,AAA2C,OAAvC,CAAA,EAAA,EAAM,IAAI,CAAC,oBAAoB,CAAC,EAAG,EAAI,EAAA,GAAvC,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,EAA4C,QAAQ,SAC9D,EAAK,GAEE,AADG,EAAK,EAAE,CAAC,IACL,CACf,EAOE,gBAAiB,EACjB,UAAA,EACA,MA9PY,CACZ,kBAAA,SAAkB,CAAmB,EACnC,GAAI,CAEF,OADA,EAAuB,GAChB,CAAA,CACT,CAAE,MAAO,EAAO,CACd,MAAO,CAAA,CACT,CACF,EACA,uBAAwB,EAMxB,iBAAkB,WAChB,IAAM,EAAS,EAAI,gBAAgB,CAAC,EAAM,CAAC,EAC3C,OAAO,EAAI,cAAc,CAAC,EAAM,WAAW,CAAC,GAAS,EAAM,CAAC,CAC9D,EAUA,WAAA,WAAW,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAa,EAAG,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAQ,EAAM,IAAI,CAG3C,OAFA,EAAM,cAAc,CAAC,GACrB,EAAM,QAAQ,CAAC,OAAO,IACf,CACT,CACD,CA8NA,CACH,EAWA,EAAA,cAAA,CAAA,EAwEA,EAAA,mBAAA,CAAA,SACE,CAAiB,CACjB,CAIC,EAGD,GADA,EAAI,aAAa,CAAC,GACd,CAAC,EAAG,OAAO,CAAC,EAAK,CAAC,GAAK,CAAC,EAAG,OAAO,CAAC,EAAK,CAAC,GAAK,CAAC,EAAG,OAAO,CAAC,EAAK,CAAC,EAClE,MAAM,AAAI,MAAM,qCAClB,IAAM,EAAY,EAAe,EAAI,EAAK,CAAC,EAC3C,GAAI,CAAC,EAAG,KAAK,CAAE,MAAM,AAAI,MAAM,gCAG/B,OAAO,SAAC,CAAR,EAGE,EAAM,EAAG,GAAG,CAAC,GACb,EAAM,EAAG,GAAG,CAAC,EAAK,EAAK,CAAC,EACxB,EAAM,EAAG,GAAG,CAAC,GACb,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,EAAG,GAAG,EACxB,EAAM,EAAG,GAAG,CAAC,EAAK,EAAK,CAAC,EACxB,EAAM,EAAG,IAAI,CAAC,EAAK,CAAC,CAAE,EAAG,GAAG,CAAC,GAAM,CAAC,EAAG,GAAG,CAAC,EAAK,EAAG,IAAI,GACvD,EAAM,EAAG,GAAG,CAAC,EAAK,EAAK,CAAC,EACxB,EAAM,EAAG,GAAG,CAAC,GACb,EAAM,EAAG,GAAG,CAAC,GACb,EAAM,EAAG,GAAG,CAAC,EAAK,EAAK,CAAC,EACxB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,EAAK,CAAC,EACxB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAI,EAAG,GAAG,CAAC,EAAK,GAChB,IAlBI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAG,EAkBV,EAAA,EAAU,EAAK,GAAlC,EAAmB,EAAnB,OAAA,CAAS,EAAU,EAAV,KAAA,CACjB,EAAI,EAAG,GAAG,CAAC,EAAK,GAChB,EAAI,EAAG,GAAG,CAAC,EAAG,GACd,EAAI,EAAG,IAAI,CAAC,EAAG,EAAK,GACpB,EAAI,EAAG,IAAI,CAAC,EAAG,EAAO,GACtB,IAAM,EAAK,EAAG,KAAM,CAAC,KAAO,EAAG,KAAM,CAAC,GAGtC,OAFA,EAAI,EAAG,IAAI,CAAC,EAAG,GAAG,CAAC,GAAI,EAAG,GAEnB,CAAE,EADT,EAAI,EAAG,GAAG,CAAC,EAAG,GACF,EAAA,CAAC,CACf,CACF,CA/xCA,qEAAA,EAEA,IAAA,EAAA,EAAA,oBASA,EAAA,EAAA,oBACA,EAAA,EAAA,oBACA,EAAA,EAAA,oBA4BA,SAAS,EAAmB,CAAwB,EAChC,KAAA,IAAd,EAAK,IAAI,EAAgB,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,OAAQ,EAAK,IAAI,EAC/B,KAAA,IAAjB,EAAK,OAAO,EAAgB,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,UAAW,EAAK,OAAO,CAC/D,CAsGA,IAAyB,EAAyB,EAA1C,eAAA,CAAkC,EAAQ,EAApB,UAA9B,AASa,CAAA,EAAA,GAAG,CAAG,CAEjB,IAAA,WAAA,EAAK,SAAL,CAAA,E,A,C,E,E,C,A,E,E,G,I,E,A,C,E,E,C,A,E,GAAW,SAAA,IACG,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAI,GACR,M,A,C,E,E,C,A,E,I,C,GAAA,EAAA,IAAA,CAAA,IAAA,CAAA,E,C,O,CAFgB,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,QAM1B,KAAM,CACJ,OAAQ,SAAC,CAAA,CAAa,CAAtB,EACE,IAAa,EAAM,AAAA,EAAA,GAAG,CAAd,GAAR,CACA,GAAI,EAAM,GAAK,EAAM,IAAK,MAAM,IAAI,EAAE,yBACtC,GAAI,AAAc,EAAd,EAAK,MAAM,CAAM,MAAM,IAAI,EAAE,6BACjC,IAAM,EAAU,EAAK,MAAM,CAAG,EACxB,EAAM,EAAG,mBAAmB,CAAC,GACnC,GAAK,EAAI,MAAM,CAAG,EAAK,IAAa,MAAM,IAAI,EAAE,wCAEhD,IAAM,EAAS,EAAU,IAAM,EAAG,mBAAmB,CAAC,EAAK,MAAM,CAAG,EAAK,KAAe,GACxF,MAAO,GAAiC,MAAA,CAA9B,EAAG,mBAAmB,CAAC,IAAgB,MAAA,CAAT,GAAe,MAAA,CAAN,GAAU,MAAA,CAAJ,EACzD,EAEA,OAAA,SAAO,CAAW,CAAE,CAAgB,EAClC,IAAa,EAAM,AAAA,EAAA,GAAG,CAAd,GAAR,CACI,EAAM,EACV,GAAI,EAAM,GAAK,EAAM,IAAK,MAAM,IAAI,EAAE,yBACtC,GAAI,EAAK,MAAM,CAAG,GAAK,CAAI,CAAC,IAAM,GAAK,EAAK,MAAM,IAAI,EAAE,yBACxD,IAAM,EAAQ,CAAI,CAAC,IAAM,CAErB,EAAS,EACb,GAFkB,AAAQ,IAAR,EAGb,CAEH,IAAM,EAAS,AAAQ,IAAR,EACf,GAAI,CAAC,EAAQ,MAAM,IAAI,EAAE,qDACzB,GAAI,EAAS,EAAG,MAAM,IAAI,EAAE,4CAC5B,IAAM,EAAc,EAAK,QAAQ,CAAC,EAAK,EAAM,GAC7C,GAAI,EAAY,MAAM,GAAK,EAAQ,MAAM,IAAI,EAAE,yCAC/C,GAAI,AAAmB,IAAnB,CAAW,CAAC,EAAE,CAAQ,MAAM,IAAI,EAAE,wCACjC,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA,EAAA,KAAA,E,G,CAAL,IAAA,IAAK,EAAA,EAAW,CAAA,CAAA,OAAA,QAAA,CAAA,GAAX,CAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,AAAA,EAAA,EAAL,CAAA,EAAA,CAAK,IAAM,EAAN,EAAA,KAAA,CAAwB,EAAU,GAAU,EAAK,C,C,C,M,E,CAAjD,EAAA,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CAEL,GADA,GAAO,EACH,EAAS,IAAK,MAAM,IAAI,EAAE,yCAChC,MAZa,EAAS,EAatB,IAAM,EAAI,EAAK,QAAQ,CAAC,EAAK,EAAM,GACnC,GAAI,EAAE,MAAM,GAAK,EAAQ,MAAM,IAAI,EAAE,kCACrC,MAAO,CAAE,EAAA,EAAG,EAAG,EAAK,QAAQ,CAAC,EAAM,EAAO,CAC5C,CACD,EAKD,KAAM,CACJ,OAAA,SAAO,CAAW,EAChB,IAAa,EAAM,AAAA,EAAA,GAAG,CAAd,GAAR,CACA,GAAI,EAAM,EAAK,MAAM,IAAI,EAAE,8CAC3B,IAAI,EAAM,EAAG,mBAAmB,CAAC,GAGjC,GADkC,EAA9B,OAAO,QAAQ,CAAC,CAAG,CAAC,EAAE,CAAE,KAAc,CAAA,EAAM,KAAO,CAAvD,EACI,AAAa,EAAb,EAAI,MAAM,CAAM,MAAM,IAAI,EAAE,wBAChC,OAAO,CACT,EACA,OAAA,SAAO,CAAgB,EACrB,IAAa,EAAM,AAAA,EAAA,GAAG,CAAd,GAAR,CACA,GAAI,AAAU,IAAV,CAAI,CAAC,EAAE,CAAgB,MAAM,IAAI,EAAE,uCACvC,GAAI,AAAY,IAAZ,CAAI,CAAC,EAAE,EAAa,CAAE,CAAA,AAAU,IAAV,CAAI,CAAC,EAAE,AAAG,EAClC,MAAM,IAAI,EAAE,uDACd,OAAO,EAAI,EACb,CACD,EACD,MAAA,SAAM,CAAwB,EAE5B,IAAyC,EAAA,EAAA,GAAG,CAA/B,EAA4B,EAAjC,GAAA,CAAc,EAAmB,EAAzB,IAAA,CAAW,EAAc,EAAd,IAA3B,CACM,EAAO,AAAe,UAAf,OAAO,EAAmB,EAAI,GAAO,EAClD,EAAG,MAAM,CAAC,GACV,IAAyC,EAAA,EAAI,MAAM,CAAC,GAAM,GAAlD,EAAiC,EAAjC,CAAA,CACR,GAAI,AADqC,EAApB,CAArB,CACiB,MAAM,CAAE,MAAM,IAAI,EAAE,+CACrC,IAAqC,EAAA,EAAI,MAAM,CAAC,EAAM,GAA9C,EAA6B,EAA7B,CAAA,CAAW,EAAkB,EAAlB,CAAnB,CACqC,EAAA,EAAI,MAAM,CAAC,EAAM,GAA9C,EAA6B,EAA7B,CAAA,CACR,GAAI,AADiC,EAAlB,CAAnB,CACe,MAAM,CAAE,MAAM,IAAI,EAAE,+CACnC,MAAO,CAAE,EAAG,EAAI,MAAM,CAAC,GAAS,EAAG,EAAI,MAAM,CAAC,EAAO,CACvD,EACA,WAAA,SAAW,CAA6B,EACtC,IAAiC,EAAA,EAAA,GAAG,CAAtB,EAAmB,EAAzB,IAAA,CAAiB,EAAQ,EAAd,IAAnB,CACM,EAAM,GAAyC,MAAA,CAAtC,EAAI,MAAM,CAAC,EAAM,EAAI,MAAM,CAAC,EAAI,CAAC,IAAwC,MAAA,CAAnC,EAAI,MAAM,CAAC,EAAM,EAAI,MAAM,CAAC,EAAI,CAAC,IACtF,OAAO,EAAI,MAAM,CAAC,GAAM,EAC1B,CACD,EAID,IAAM,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAEvF,SAAgB,EAAqB,CAAwB,EAC3D,IAAM,EAAQ,AAhJhB,SAA8B,CAAyB,EACrD,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAA,AAAA,EAAc,GAC3B,EAAG,cAAc,CACf,EACA,CACE,EAAG,QACH,EAAG,OACJ,EACD,CACE,yBAA0B,QAC1B,eAAgB,UAChB,cAAe,WACf,cAAe,WACf,mBAAoB,UACpB,UAAW,WACX,QAAS,UACV,GAEH,IAAQ,EAAgB,EAAhB,IAAA,CAAM,EAAU,EAAV,EAAA,CAAI,EAAM,EAAN,CAAlB,CACA,GAAI,EAAM,CACR,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,EAAG,IAAI,EACpB,MAAM,AAAI,MAAM,qEAElB,GACE,AAAgB,UAAhB,OAAO,GACP,AAAqB,WAArB,AAAA,CAAA,EAAA,EAAA,CAAY,AAAZ,EAAO,EAAK,IAAI,GAChB,AAA4B,YAA5B,OAAO,EAAK,WAAW,CAEvB,MAAM,AAAI,MAAM,oEAEpB,CACA,OAAO,OAAO,MAAM,CAAC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK,GAC5B,EAgHkC,GAC1B,EAAS,EAAP,EAAA,CACF,EAAK,EAAI,KAAK,CAAC,EAAM,CAAC,CAAE,EAAM,UAAU,EAExC,EACJ,EAAM,OAAO,EACZ,SAAC,CAAA,CAAwB,CAAA,CAAyB,CAFrD,EAGI,IAAM,EAAI,EAAM,QAAQ,GACxB,OAAO,EAAG,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,EAAK,EAAG,EAAG,OAAO,CAAC,EAAE,CAAC,EAAG,EAAG,OAAO,CAAC,EAAE,CAAC,EAChF,EACI,EACJ,EAAM,SAAS,EACd,SAAC,CAFJ,EAII,IAAM,EAAO,EAAM,QAAQ,CAAC,GAI5B,MAAO,CAAE,EAFC,EAAG,SAAS,CAAC,EAAK,QAAQ,CAAC,EAAG,EAAG,KAAK,GAEpC,EADF,EAAG,SAAS,CAAC,EAAK,QAAQ,CAAC,EAAG,KAAK,CAAE,EAAI,EAAG,KAAK,EAC9C,CACf,EAMF,SAAS,EAAoB,CAAI,EAC/B,IAAQ,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CACM,EAAK,EAAG,GAAG,CAAC,GACZ,EAAK,EAAG,GAAG,CAAC,EAAI,GACtB,OAAO,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAI,EAAG,GAAG,CAAC,EAAG,IAAK,EAC1C,CAKA,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAM,EAAE,EAAG,EAAoB,EAAM,EAAE,GACxD,MAAM,AAAI,MAAM,+CAQlB,SAAS,EAAuB,CAAY,EAC1C,IAOI,EAPI,EAAyE,EAAzE,wBAAA,CAAmC,EAAsC,EAAtC,WAAA,CAAa,EAAyB,EAAzB,cAAA,CAAgB,EAAS,EAAT,CAAxE,CACA,GAAI,GAAW,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAQ,SAAU,CAGtC,GAFI,EAAG,OAAO,CAAC,IAAM,CAAA,EAAM,EAAG,UAAU,CAAC,EAAzC,EAEI,AAAe,UAAf,OAAO,GAAoB,CAAC,EAAQ,QAAQ,CAAC,EAAI,MAAM,EAAG,MAAM,AAAI,MAAM,eAC9E,EAAM,EAAI,QAAQ,CAAC,AAAc,EAAd,EAAiB,IACtC,CAEA,GAAI,CACF,EACE,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAQ,SACX,EACA,EAAG,eAAe,CAAC,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,cAAe,EAAK,GAC3D,CAAE,MAAO,EAAO,CACd,MAAM,AAAI,MAAM,uBAAgE,MAAA,CAAzC,EAAW,+BAAwC,MAAA,CAAV,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,IACzF,CAGA,OAFI,GAAgB,CAAA,EAAM,EAAI,GAAG,CAAC,EAAK,EAAA,EACvC,EAAG,QAAQ,CAAC,cAAe,EAAK,EAAK,GAC9B,CACT,CAEA,SAAS,EAAe,CAAc,EACpC,GAAI,CAAE,CAAA,aAAiB,CAAA,EAAQ,MAAM,AAAI,MAAM,2BACjD,CAOA,IAAM,EAAe,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,EAAS,SAAC,CAAA,CAAU,CAAzC,EACE,IAAQ,EAAwB,EAAxB,EAAA,CAAW,EAAa,EAAjB,EAAA,CAAW,EAAM,EAAV,EAAtB,CAEA,GAAI,EAAG,GAAG,CAAC,EAAG,EAAG,GAAG,EAAG,MAAO,CAAE,EAAA,EAAG,EAAA,CAAC,EACpC,IAAM,EAAM,EAAE,GAAG,EAGP,OAAN,GAAY,CAAA,EAAK,EAAM,EAAG,GAAG,CAAG,EAAG,GAAG,CAAC,EAA3C,EACA,IAAM,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAG,GACrB,GAAI,EAAK,MAAO,CAAE,EAAG,EAAG,IAAI,CAAE,EAAG,EAAG,IAAI,AAAA,EACxC,GAAI,CAAC,EAAG,GAAG,CAAC,EAAI,EAAG,GAAG,EAAG,MAAM,AAAI,MAAM,oBACzC,MAAO,CAAE,EAAG,EAAI,EAAG,CAAE,CACvB,GAGM,EAAkB,AAAA,CAAA,EAAA,EAAA,QAAA,AAAA,EAAS,SAAC,CAAlC,EACE,GAAI,EAAE,GAAG,GAAI,CAIX,GAAI,EAAM,kBAAkB,EAAI,CAAC,EAAG,GAAG,CAAC,EAAE,EAAE,EAAG,MAC/C,OAAM,AAAI,MAAM,kBAClB,CAEA,IAAiB,EAAA,EAAE,QAAQ,GAAnB,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CAEA,GAAI,CAAC,EAAG,OAAO,CAAC,IAAM,CAAC,EAAG,OAAO,CAAC,GAAI,MAAM,AAAI,MAAM,4BACtD,IAAM,EAAO,EAAG,GAAG,CAAC,GACd,EAAQ,EAAoB,GAClC,GAAI,CAAC,EAAG,GAAG,CAAC,EAAM,GAAQ,MAAM,AAAI,MAAM,qCAC1C,GAAI,CAAC,EAAE,aAAa,GAAI,MAAM,AAAI,MAAM,0CACxC,MAAO,CAAA,CACT,GAOM,EAAA,WAAA,EAAN,WAAM,SAAA,EAKO,CAAK,CACL,CAAK,CACL,CAAK,EAEd,GATE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAKO,IAAA,CAAA,EAAE,CAAF,EACA,IAAA,CAAA,EAAE,CAAF,EACA,IAAA,CAAA,EAAE,CAAF,EAEL,AAAM,MAAN,GAAc,CAAC,EAAG,OAAO,CAAC,GAAK,MAAM,AAAI,MAAM,cACnD,GAAI,AAAM,MAAN,GAAc,CAAC,EAAG,OAAO,CAAC,GAAK,MAAM,AAAI,MAAM,cACnD,GAAI,AAAM,MAAN,GAAc,CAAC,EAAG,OAAO,CAAC,GAAK,MAAM,AAAI,MAAM,cACnD,OAAO,MAAM,CAAC,IAAI,C,CAZhB,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CA2BA,IAAA,IAAJ,IAAA,WACE,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,AAC1B,C,E,CACI,IAAA,IAAJ,IAAA,WACE,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,AAC1B,C,E,CAkCA,IAAA,iBAAA,MAAA,SAAe,CAAkB,EAC/B,EAAK,aAAa,CAAC,IAAI,CAAE,EAC3B,C,E,CAGA,IAAA,iBAAA,MAAA,WACE,EAAgB,IAAI,CACtB,C,E,CAEA,IAAA,WAAA,MAAA,WACE,IAAQ,EAAM,IAAI,CAAC,QAAQ,GAAnB,CAAR,CACA,GAAI,EAAG,KAAK,CAAE,MAAO,CAAC,EAAG,KAAK,CAAC,EAC/B,OAAM,AAAI,MAAM,8BAClB,C,E,CAKA,IAAA,SAAA,MAAA,SAAO,CAAY,EACjB,EAAe,GACf,IAAQ,EAA2B,AAAA,IAAI,CAA/B,EAAA,CAAQ,EAAmB,AAAA,IAAI,CAAvB,EAAA,CAAQ,EAAW,AAAA,IAAI,CAAf,EAAxB,CACQ,EAA2B,EAA3B,EAAA,CAAY,EAAe,EAAnB,EAAA,CAAY,EAAO,EAAX,EAAxB,CACM,EAAK,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAI,GAAK,EAAG,GAAG,CAAC,EAAI,IACvC,EAAK,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAI,GAAK,EAAG,GAAG,CAAC,EAAI,IAC7C,OAAO,GAAM,CACf,C,E,CAKA,IAAA,SAAA,MAAA,WACE,OAAO,IAjGL,EAiGe,IAAI,CAAC,EAAE,CAAE,EAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAG,IAAI,CAAC,EAAE,CACpD,C,E,CAMA,IAAA,SAAA,MAAA,WACE,IAAQ,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CACM,EAAK,EAAG,GAAG,CAAC,EAAG,GACb,EAA2B,AAAA,IAAI,CAA/B,EAAA,CAAQ,EAAmB,AAAA,IAAI,CAAvB,EAAA,CAAQ,EAAW,AAAA,IAAI,CAAf,EAAxB,CACI,EAAK,EAAG,IAAI,CAAE,EAAK,EAAG,IAAI,CAAE,EAAK,EAAG,IAAI,CACxC,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GA4BpB,OA3BA,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAET,IA5IL,EA4Ie,EAAI,EADrB,EAAK,EAAG,GAAG,CAAC,EAAI,GAElB,C,E,CAMA,IAAA,MAAA,MAAA,SAAI,CAAY,EACd,EAAe,GACf,IAAQ,EAA2B,AAAA,IAAI,CAA/B,EAAA,CAAQ,EAAmB,AAAA,IAAI,CAAvB,EAAA,CAAQ,EAAW,AAAA,IAAI,CAAf,EAAxB,CACQ,EAA2B,EAA3B,EAAA,CAAY,EAAe,EAAnB,EAAA,CAAY,EAAO,EAAX,EAAxB,CACI,EAAK,EAAG,IAAI,CAAE,EAAK,EAAG,IAAI,CAAE,EAAK,EAAG,IAAI,CACtC,EAAI,EAAM,CAAC,CACX,EAAK,EAAG,GAAG,CAAC,EAAM,CAAC,CAAE,GACvB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GACpB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,IAAI,EAAK,EAAG,GAAG,CAAC,EAAI,GA+BpB,OA9BA,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAK,EAAG,GAAG,CAAC,EAAI,GAET,IAlML,EAkMe,EAAI,EADrB,EAAK,EAAG,GAAG,CAAC,EAAI,GAElB,C,E,CAEA,IAAA,WAAA,MAAA,SAAS,CAAY,EACnB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAM,MAAM,GAC9B,C,E,CAEA,IAAA,MAAA,MAAA,WACE,OAAO,IAAI,CAAC,MAAM,CA1MhB,EA0MuB,IAAI,CAC/B,C,E,CACQ,IAAA,OAAA,MAAA,SAAK,CAAS,EACpB,OAAO,EAAK,UAAU,CAAC,IAAI,CAAE,EA7M3B,EA6MoC,UAAU,CAClD,C,E,CAOA,IAAA,iBAAA,MAAA,SAAe,CAAU,EACvB,EAAG,QAAQ,CAAC,SAAU,EAAI,EAAK,EAAM,CAAC,EACtC,IAAM,EAvNJ,EAuNc,IAAI,CACpB,GAAI,IAAO,EAAK,OAAO,EACvB,GAAI,IAAO,EAAK,OAAO,IAAI,CAC3B,IAAQ,EAAS,EAAT,IAAR,CACA,GAAI,CAAC,EAAM,OAAO,EAAK,YAAY,CAAC,IAAI,CAAE,GAO1C,IAJA,IAA+B,EAAA,EAAK,WAAW,CAAC,GAA1C,EAAyB,EAAzB,KAAA,CAAO,EAAkB,EAAlB,EAAA,CAAI,EAAc,EAAd,KAAA,CAAO,EAAO,EAAP,EAAxB,CACI,EAAM,EACN,EAAM,EACN,EAAW,IAAI,CACZ,EAAK,GAAO,EAAK,GAClB,EAAK,GAAK,CAAA,EAAM,EAAI,GAAG,CAAC,EAA5B,EACI,EAAK,GAAK,CAAA,EAAM,EAAI,GAAG,CAAC,EAA5B,EACA,EAAI,EAAE,MAAM,GACZ,IAAO,EACP,IAAO,EAKT,OAHI,GAAO,CAAA,EAAM,EAAI,MAAM,EAA3B,EACI,GAAO,CAAA,EAAM,EAAI,MAAM,EAA3B,EACA,EAAM,IA3OJ,EA2Oc,EAAG,GAAG,CAAC,EAAI,EAAE,CAAE,EAAK,IAAI,EAAG,EAAI,EAAE,CAAE,EAAI,EAAE,EAClD,EAAI,GAAG,CAAC,EACjB,C,E,CAWA,IAAA,WAAA,MAAA,SAAS,CAAc,EACrB,IAEI,EAAc,EAFV,EAAe,EAAf,IAAA,CAAM,EAAS,EAAT,CAAd,CAGA,GAFA,EAAG,QAAQ,CAAC,SAAU,EAAQ,EAAK,GAE/B,EAAM,CACR,IAAiC,EAAA,EAAK,WAAW,CAAC,GAA1C,EAAyB,EAAzB,KAAA,CAAO,EAAkB,EAAlB,EAAA,CAAI,EAAc,EAAd,KAAA,CAAO,EAAO,EAAP,EAA1B,CACyB,EAAA,IAAI,CAAC,IAAI,CAAC,GAA7B,EAAmB,EAAnB,CAAA,CAAQ,EAAW,EAAX,CAAd,CACyB,EAAA,IAAI,CAAC,IAAI,CAAC,GAA7B,EAAmB,EAAnB,CAAA,CAAQ,EAAW,EAAX,CAAd,CACA,EAAM,EAAK,eAAe,CAAC,EAAO,GAClC,EAAM,EAAK,eAAe,CAAC,EAAO,GAClC,EAAM,IAlQN,EAkQgB,EAAG,GAAG,CAAC,EAAI,EAAE,CAAE,EAAK,IAAI,EAAG,EAAI,EAAE,CAAE,EAAI,EAAE,EACzD,EAAQ,EAAI,GAAG,CAAC,GAChB,EAAO,EAAI,GAAG,CAAC,EACjB,KAAO,CACL,IAAiB,EAAA,IAAI,CAAC,IAAI,CAAC,GAAnB,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CACA,EAAQ,EACR,EAAO,CACT,CAEA,OAAO,EAAM,UAAU,CAAC,CAAC,EAAO,EAAK,CAAC,CAAC,EAAE,AAC3C,C,E,CAQA,IAAA,uBAAA,MAAA,SAAqB,CAAQ,CAAE,CAAS,CAAE,CAAS,EACjD,IAAM,EAAI,EAAM,IAAI,CACd,EAAM,SACV,CAAA,CACA,CAAA,EACI,OAAA,IAAM,GAAO,IAAM,GAAQ,EAAE,MAAM,CAAC,GAA2B,EAAE,QAAQ,CAAC,GAAjC,EAAE,cAAc,CAAC,E,EAC1D,EAAM,EAAI,IAAI,CAAE,GAAG,GAAG,CAAC,EAAI,EAAG,IACpC,OAAO,EAAI,GAAG,GAAK,KAAA,EAAY,CACjC,C,E,CAKA,IAAA,WAAA,MAAA,SAAS,CAAM,EACb,OAAO,EAAa,IAAI,CAAE,EAC5B,C,E,CACA,IAAA,gBAAA,MAAA,WACE,IAAW,EAA4B,EAA/B,CAAA,CAAa,EAAkB,EAAlB,aAArB,CACA,GAAI,IAAa,EAAK,MAAO,CAAA,EAC7B,GAAI,EAAe,OAAO,EAvSxB,EAuS6C,IAAI,CACnD,OAAM,AAAI,MAAM,+DAClB,C,E,CACA,IAAA,gBAAA,MAAA,WACE,IAAW,EAA4B,EAA/B,CAAA,CAAa,EAAkB,EAAlB,aAArB,QACA,AAAI,IAAa,EAAY,IAAI,CAC7B,EAAsB,EA7SxB,EA6S6C,IAAI,EAC5C,IAAI,CAAC,cAAc,CAAC,EAAM,CAAC,CACpC,C,E,CAEA,IAAA,aAAA,MAAA,WAAW,IAAA,EAAA,CAAA,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAGT,MAFA,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,eAAgB,GACtB,IAAI,CAAC,cAAc,GACZ,EApTL,EAoToB,IAAI,CAAE,EAC9B,C,E,CAEA,IAAA,QAAA,MAAA,WAAM,IAAA,EAAA,CAAA,CAAA,UAAA,MAAA,CAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAEJ,MADA,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,eAAgB,GACf,EAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GACvC,C,E,C,C,CAzSO,IAAA,aAAP,MAAA,SAAkB,CAAiB,EACjC,IAAiB,EAAA,GAAK,CAAA,EAAd,EAAS,EAAT,CAAA,CAAG,EAAM,EAAN,CAAX,CACA,GAAI,CAAC,GAAK,CAAC,EAAG,OAAO,CAAC,IAAM,CAAC,EAAG,OAAO,CAAC,GAAI,MAAM,AAAI,MAAM,wBAC5D,GAAI,aApBF,EAoBsB,MAAM,AAAI,MAAM,gCACxC,IAAM,EAAM,SAAC,CAAb,EAAsB,OAAA,EAAG,GAAG,CAAC,EAAG,EAAG,IAAI,C,SAEvC,AAAI,EAAI,IAAM,EAAI,GAvBhB,EAuBiC,IAAI,CAChC,IAxBL,EAwBe,EAAG,EAAG,EAAG,GAAG,CAC/B,C,E,CAeO,IAAA,aAAP,MAAA,SAAkB,CAAe,EAC/B,IAAM,EAAQ,EAAG,WAAW,CAAC,EAAO,GAAG,CAAC,SAAC,CAAzC,EAA+C,OAAA,EAAE,EAAE,A,IACnD,OAAO,EAAO,GAAG,CAAC,SAAC,CAAA,CAAG,CAAtB,EAA4B,OAAA,EAAE,QAAQ,CAAC,CAAK,CAAC,EAAE,CAAG,GAAA,GAAG,CA1CnD,EA0C0D,UAAU,CACxE,C,E,CAMO,IAAA,UAAP,MAAA,SAAe,CAAQ,EACrB,IAAM,EAAI,EAAM,UAAU,CAAC,EAAU,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,WAAY,KAE7D,OADA,EAAE,cAAc,GACT,CACT,C,E,CAGO,IAAA,iBAAP,MAAA,SAAsB,CAAmB,EACvC,OAzDE,EAyDW,IAAI,CAAC,QAAQ,CAAC,EAAuB,GACpD,C,E,CAGO,IAAA,MAAP,MAAA,SAAW,CAAe,CAAE,CAAiB,EAC3C,MAAO,AAAA,CAAA,EAAA,EAAA,SAAS,AAAT,EA9DL,EA8DsB,EAAI,EAAQ,EACtC,C,E,EA/DI,C,GACY,CAAA,EAAA,IAAI,CAAG,IAAI,EAAM,EAAM,EAAE,CAAE,EAAM,EAAE,CAAE,EAAG,GAAG,EAC3C,EAAA,IAAI,CAAG,IAAI,EAAM,EAAG,IAAI,CAAE,EAAG,GAAG,CAAE,EAAG,IAAI,EA0T3D,IAAM,EAAQ,EAAM,UAAU,CACxB,EAAO,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,EAAO,EAAM,IAAI,CAAG,KAAK,IAAI,CAAC,EAAQ,GAAK,GAE7D,MAAO,CACL,MAAA,EACA,gBAAiB,EACjB,uBAAA,EACA,oBAAA,EACA,mBAjZF,SAA4B,CAAW,EACrC,OAAO,EAAG,OAAO,CAAC,EAAK,EAAK,EAAM,CAAC,CACrC,CAgZC,CACH,CAwfA,SAAgB,EAAkB,CAAiB,CAAE,CAAI,EAIvD,IAAK,IAFC,EAAI,EAAG,KAAK,CACd,EAAI,EACC,EAAI,EAAI,EAAK,EAAI,IAAQ,EAAK,GAAK,EAAK,GAAK,EAFtD,IAGM,EAAK,EAGL,EAAe,GAAQ,EAAK,EAAM,EAClC,EAAa,EAAe,EAC5B,EAAK,AAAC,CAAA,EAAI,CAAA,EAAO,EACjB,EAAK,AAAC,CAAA,EAAK,CAAA,EAAO,EAClB,EAAK,EAAa,EAElB,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAK,EAAG,GAAG,CAAC,EAAI,AAAA,CAAA,EAAK,CAAA,EAAO,GAC9B,EAAY,SAAC,CAAA,CAAM,CAAvB,EACE,IAAI,EAAM,EACN,EAAM,EAAG,GAAG,CAAC,EAAG,GAChB,EAAM,EAAG,GAAG,CAAC,GACjB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,IAAI,EAAM,EAAG,GAAG,CAAC,EAAG,GACpB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,IAAI,EAAM,EAAG,GAAG,CAAC,EAAK,GACtB,EAAM,EAAG,GAAG,CAAC,EAdJ,GAeT,IAAI,EAAO,EAAG,GAAG,CAAC,EAAK,EAAG,GAAG,EAC7B,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,IAAI,CAAC,EAAK,EAAK,GACxB,EAAM,EAAG,IAAI,CAAC,EAAK,EAAK,GAExB,IAAK,IAAI,EAAI,EAAI,EAAI,EAAK,IAAK,CAC7B,IAAI,EAAM,EAAI,EACd,EAAM,GAAQ,EAAM,EACpB,IAAI,EAAO,EAAG,GAAG,CAAC,EAAK,GACjB,EAAK,EAAG,GAAG,CAAC,EAAM,EAAG,GAAG,EAC9B,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,EAAO,EAAG,GAAG,CAAC,EAAK,GACnB,EAAM,EAAG,IAAI,CAAC,EAAK,EAAK,GACxB,EAAM,EAAG,IAAI,CAAC,EAAM,EAAK,EAC3B,CACA,MAAO,CAAE,QAAS,EAAM,MAAO,CAAG,CACpC,EACA,GAAI,EAAG,KAAK,CAAG,IAAQ,EAAK,CAE1B,IAAM,EAAM,AAAA,CAAA,EAAG,KAAK,CAAG,CAAA,EAAO,EACxB,EAAK,EAAG,IAAI,CAAC,EAAG,GAAG,CAAC,IAC1B,EAAY,SAAC,CAAA,CAAM,CAAnB,EACE,IAAI,EAAM,EAAG,GAAG,CAAC,GACX,EAAM,EAAG,GAAG,CAAC,EAAG,GACtB,EAAM,EAAG,GAAG,CAAC,EAAK,GAClB,IAAI,EAAK,EAAG,GAAG,CAAC,EAAK,GACrB,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,IAAM,EAAK,EAAG,GAAG,CAAC,EAAI,GAChB,EAAM,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,GAAK,GACzB,EAAO,EAAG,GAAG,CAAC,EAAK,GACrB,EAAI,EAAG,IAAI,CAAC,EAAI,EAAI,GACxB,MAAO,CAAE,QAAS,EAAM,MAAO,CAAC,CAClC,CACF,CAGA,OAAO,CACT,C,E,C,mC,Q,+B,Q,2B,Q,gC,Q,sC,Q,sC,Q,0B,Q,oC,Q,+B,Q,mB,Q,mB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,iC,E,E,uC,O,c,C,E,a,C,M,C,C,GElsCA,EAAA,IAAA,CAAA,SAAyC,CAAsB,CAAE,CAAY,EAC3E,IAAM,EAAkB,SAAC,CAAA,CAAoB,CAA7C,EACE,IAAM,EAAM,EAAK,MAAM,GACvB,OAAO,EAAY,EAAM,CAC3B,EACM,EAAY,SAAC,CAAnB,EACE,GAAI,CAAC,OAAO,aAAa,CAAC,IAAM,GAAK,GAAK,EAAI,EAC5C,MAAM,AAAI,MAAM,qBAAyC,MAAA,CAApB,EAAC,oBAAuB,MAAA,CAAJ,EAAI,KACjE,EACM,EAAO,SAAC,CAAd,EAIE,OAHA,EAAU,GAGH,CAAE,QAFO,KAAK,IAAI,CAAC,EAAO,GAAK,EAEpB,WADC,KAAA,GAAA,CAAA,EAAM,EAAI,EACD,CAC9B,EACA,MAAO,CACL,gBAAA,EAEA,aAAA,SAAa,CAAM,CAAE,CAAS,EAG5B,IAFA,IAAI,EAAI,EAAE,IAAI,CACV,EAAO,EACJ,EAAI,GACL,EAAI,GAAK,CAAA,EAAI,EAAE,GAAG,CAAC,EAAvB,EACA,EAAI,EAAE,MAAM,GACZ,IAAM,EAER,OAAO,CACT,EAYA,iBAAA,SAAiB,CAAM,CAAE,CAAS,EAKhC,IAAK,IAJ2B,EAAA,EAAK,GAA7B,EAAwB,EAAxB,OAAA,CAAS,EAAe,EAAf,UAAjB,CACM,EAAc,EAAE,CAClB,EAAO,EACP,EAAO,EACF,EAAS,EAAG,EAAS,EAAS,IAAU,CAC/C,EAAO,EACP,EAAO,IAAI,CAAC,GAEZ,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAC9B,EAAO,EAAK,GAAG,CAAC,GAChB,EAAO,IAAI,CAAC,GAEd,EAAI,EAAK,MAAM,EACjB,CACA,OAAO,CACT,EASA,KAAA,SAAK,CAAS,CAAE,CAAgB,CAAE,CAAS,EAYzC,IAAK,IAT2B,EAAA,EAAK,GAA7B,EAAwB,EAAxB,OAAA,CAAS,EAAe,EAAf,UAAjB,CAEI,EAAI,EAAE,IAAI,CACV,EAAI,EAAE,IAAI,CAER,EAAO,OAAO,KAAA,GAAA,CAAA,EAAK,GAAI,GACvB,EAAY,KAAA,GAAA,CAAA,EAAK,GACjB,EAAU,OAAO,GAEd,EAAS,EAAG,EAAS,EAAS,IAAU,CAC/C,IAAM,EAAS,EAAS,EAEpB,EAAQ,OAAO,EAAI,GAGvB,IAAM,EAIF,EAAQ,IACV,GAAS,EACT,GAAK,GAYP,IAAM,EAAU,EAAS,KAAK,GAAG,CAAC,GAAS,EACrC,EAAQ,EAAS,GAAM,EACvB,EAAQ,EAAQ,CAClB,AAAU,CAAA,IAAV,EAEF,EAAI,EAAE,GAAG,CAAC,EAAgB,EAAO,CAAW,CAN9B,EAMuC,GAErD,EAAI,EAAE,GAAG,CAAC,EAAgB,EAAO,CAAW,CAAC,EAAQ,EAEzD,CAMA,MAAO,CAAE,EAAA,EAAG,EAAA,CAAC,CACf,EAEA,WAAA,SAAW,CAAI,CAAE,CAAS,CAAE,CAAoB,EAC9C,IAAM,EAAY,EAAiB,GAAG,CAAC,IAAM,EAEzC,EAAO,EAAiB,GAAG,CAAC,GAKhC,OAJK,IACH,EAAO,IAAI,CAAC,gBAAgB,CAAC,EAAG,GACtB,IAAN,GAAS,EAAiB,GAAG,CAAC,EAAG,EAAU,KAE1C,IAAI,CAAC,IAAI,CAAC,EAAG,EAAM,EAC5B,EAKA,cAAA,SAAc,CAAI,CAAE,CAAS,EAC3B,EAAU,GACV,EAAiB,GAAG,CAAC,EAAG,GACxB,EAAiB,MAAM,CAAC,EAC1B,CACD,CACH,EAaA,EAAA,SAAA,CAAA,SACE,CAAsB,CACtB,CAAqB,CACrB,CAAW,CACX,CAAiB,EAQjB,GAAI,CAAC,MAAM,OAAO,CAAC,IAAW,CAAC,MAAM,OAAO,CAAC,IAAY,EAAQ,MAAM,GAAK,EAAO,MAAM,CACvF,MAAM,AAAI,MAAM,uDAClB,EAAQ,OAAO,CAAC,SAAC,CAAA,CAAG,CAApB,EACE,GAAI,CAAC,EAAM,OAAO,CAAC,GAAI,MAAM,AAAI,MAAM,yBAA0B,MAAA,CAAD,GAClE,GACA,EAAO,OAAO,CAAC,SAAC,CAAA,CAAG,CAAnB,EACE,GAAI,CAAE,CAAA,aAAc,CAAA,EAAY,MAAM,AAAI,MAAM,wBAAyB,MAAA,CAAD,GAC1E,GAOA,IAAK,IANC,EAAQ,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,OAAO,EAAO,MAAM,GACnC,EAAa,EAAQ,GAAK,EAAQ,EAAI,EAAQ,EAAI,EAAQ,EAAI,EAAQ,EAAI,EAC1E,EAAO,AAAC,CAAA,GAAK,CAAA,EAAc,EAC3B,EAAU,AAAI,MAAM,EAAO,GAAG,IAAI,CAAC,EAAE,IAAI,EACzC,EAAW,KAAK,KAAK,CAAC,AAAC,CAAA,EAAM,IAAI,CAAG,CAAA,EAAK,GAAc,EACzD,EAAM,EAAE,IAAI,CACP,EAAI,EAAU,GAAK,EAAG,GAAK,EAAY,CAC9C,EAAQ,IAAI,CAAC,EAAE,IAAI,EACnB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,MAAM,CAAE,IAAK,CAEvC,IAAM,EAAQ,OAAQ,AADP,CAAO,CAAC,EAAE,EACO,OAAO,GAAM,OAAO,GACpD,CAAA,CAAO,CAAC,EAAM,CAAG,CAAO,CAAC,EAAM,CAAC,GAAG,CAAC,CAAM,CAAC,EAAE,CAC/C,CAGA,IAAK,IAFD,EAAO,EAAE,IAAI,CAER,EAAI,EAAQ,MAAM,CAAG,EAAG,EAAO,EAAE,IAAI,CAAE,EAAI,EAAG,IACrD,EAAO,EAAK,GAAG,CAAC,CAAO,CAAC,EAAE,EAC1B,EAAO,EAAK,GAAG,CAAC,GAGlB,GADA,EAAM,EAAI,GAAG,CAAC,GACV,AAAM,IAAN,EAAS,IAAK,IAAI,EAAI,EAAG,EAAI,EAAY,IAAK,EAAM,EAAI,MAAM,EACpE,CACA,OAAO,CACT,EAgBA,EAAA,aAAA,CAAA,SAAqC,CAAyB,EAgB5D,MAfA,AAAA,CAAA,EAAA,EAAA,aAAa,AAAb,EAAc,EAAM,EAAE,EACtB,AAAA,CAAA,EAAA,EAAA,cAAc,AAAd,EACE,EACA,CACE,EAAG,SACH,EAAG,SACH,GAAI,QACJ,GAAI,OACL,EACD,CACE,WAAY,gBACZ,YAAa,eACd,GAGI,OAAO,MAAM,CAAC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAChB,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAQ,EAAM,CAAC,CAAE,EAAM,UAAU,EACjC,GAFL,CAGO,EAAG,EAAM,EAAE,CAAC,KAAK,A,GAE1B,CAlRA,qEAAA,EAEA,IAAA,EAAA,EAAA,oBACA,EAAA,EAAA,oBACM,EAAM,OAAO,GACb,EAAM,OAAO,GAwBb,EAAmB,IAAI,QACvB,EAAmB,IAAI,O,E,C,gC,Q,sC,Q,iB,Q,mB,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,2B,O,c,C,E,a,C,M,C,C,G,E,Y,C,K,EEX7B,EAAA,GAAA,CAAA,EAWA,EAAA,GAAA,CAAA,EAaA,EAAA,IAAA,CAAA,SAAqB,CAAS,CAAE,CAAa,CAAE,CAAc,EAE3D,IADA,IAAI,EAAM,EACH,KAAU,GACf,GAAO,EACP,GAAO,EAET,OAAO,CACT,EAGA,EAAA,MAAA,CAAA,EAgCA,EAAA,aAAA,CAAA,EAwDA,EAAA,MAAA,CAAA,EA+GA,EAAA,aAAA,CAAA,SAAiC,CAAgB,EAO/C,IAAM,EAAO,EAAa,MAAM,CAAC,SAAC,CAAA,CAAK,CAAvC,EAEE,OADA,CAAG,CAAC,EAAI,CAAG,WACJ,CACT,EATgB,CACd,MAAO,SACP,KAAM,SACN,MAAO,gBACP,KAAM,eACmB,GAK3B,MAAO,AAAA,CAAA,EAAA,EAAA,cAAA,AAAA,EAAe,EAAO,EAC/B,EAQA,EAAA,KAAA,CAAA,EAoBA,EAAA,aAAA,CAAA,EAmBA,EAAA,KAAA,CAAA,SAAyB,CAAY,CAAE,CAAM,CAAE,CAAe,EAC5D,OAAO,EAAE,GAAG,CAAC,EAAK,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAQ,SAAW,EAAO,EAAK,EAAE,KAAK,EAAI,EAAE,GAAG,CAAC,GAC3E,EAEA,EAAA,UAAA,CAAA,EASA,EAAA,UAAA,CAAA,SAA8B,CAAY,EACxC,IAAM,EAAW,EAAW,EAAE,KAAK,EACnC,OAAO,SAAC,CAAR,EACE,IAAM,EAAI,EAAS,EAAG,GACtB,OAAO,EAAE,GAAG,CAAC,EAAG,EAAE,IAAI,GAAK,EAAE,GAAG,CAAC,EAAG,EAAE,GAAG,CAC3C,CACF,EAGA,EAAA,OAAA,CAAA,EAuBA,EAAA,KAAA,CAAA,SACE,CAAa,CACb,CAAe,EACf,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CACA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAiC,CAAA,EAEjC,GAAI,GAAS,EAAK,MAAM,AAAI,MAAM,iCAAsC,MAAA,CAAL,IACnE,IAAiD,EAAA,EAAQ,EAAO,GAA5C,EAA6B,EAAzC,UAAA,CAA+B,EAAU,EAAvB,WAA1B,CACA,GAAI,EAAQ,KAAM,MAAM,AAAI,MAAM,mDAClC,IAAM,EAAQ,EAAO,GACf,EAAuB,OAAO,MAAM,CAAC,CACzC,MAAA,EACA,KAAA,EACA,MAAA,EACA,KAAM,AAAA,CAAA,EAAA,EAAA,OAAA,AAAA,EAAQ,GACd,KAAM,EACN,IAAK,EACL,OAAQ,SAAC,CAAT,EAAiB,OAAA,EAAI,EAAK,E,EAC1B,QAAS,SAAC,CAAV,EACE,GAAI,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAQ,SACjB,MAAM,AAAI,MAAM,+CAAyD,MAAA,CAAV,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,KACxE,OAAO,GAAO,GAAO,EAAM,CAC7B,EACA,IAAK,SAAC,CAAN,EAAc,OAAA,IAAQ,C,EACtB,MAAO,SAAC,CAAR,EAAgB,MAAC,AAAA,CAAA,EAAM,CAAA,IAAS,C,EAChC,IAAK,SAAC,CAAN,EAAc,OAAA,EAAI,CAAC,EAAK,E,EACxB,IAAK,SAAC,CAAA,CAAK,CAAX,EAAmB,OAAA,IAAQ,C,EAE3B,IAAK,SAAC,CAAN,EAAc,OAAA,EAAI,EAAM,EAAK,E,EAC7B,IAAK,SAAC,CAAA,CAAK,CAAX,EAAmB,OAAA,EAAI,EAAM,EAAK,E,EAClC,IAAK,SAAC,CAAA,CAAK,CAAX,EAAmB,OAAA,EAAI,EAAM,EAAK,E,EAClC,IAAK,SAAC,CAAA,CAAK,CAAX,EAAmB,OAAA,EAAI,EAAM,EAAK,E,EAClC,IAAK,SAAC,CAAA,CAAK,CAAX,EAAqB,OAAA,EAAM,EAAG,EAAK,E,EACnC,IAAK,SAAC,CAAA,CAAK,CAAX,EAAmB,OAAA,EAAI,EAAM,EAAO,EAAK,GAAQ,E,EAGjD,KAAM,SAAC,CAAP,EAAe,OAAA,EAAM,C,EACrB,KAAM,SAAC,CAAA,CAAK,CAAZ,EAAoB,OAAA,EAAM,C,EAC1B,KAAM,SAAC,CAAA,CAAK,CAAZ,EAAoB,OAAA,EAAM,C,EAC1B,KAAM,SAAC,CAAA,CAAK,CAAZ,EAAoB,OAAA,EAAM,C,EAE1B,IAAK,SAAC,CAAN,EAAc,OAAA,EAAO,EAAK,E,EAC1B,KAAM,EAAM,IAAI,EAAK,SAAC,CAAtB,EAA4B,OAAA,EAAM,EAAG,E,EACrC,YAAa,SAAC,CAAd,EAAsB,OAAA,EAAc,EAAG,E,EAGvC,KAAM,SAAC,CAAA,CAAG,CAAA,CAAG,CAAb,EAAoB,OAAA,EAAI,EAAI,C,EAC5B,QAAS,SAAC,CAAV,EAAmB,OAAA,EAAO,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EAAK,GAAS,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EAAK,E,EAC7E,UAAW,SAAC,CAAZ,EACE,GAAI,EAAM,MAAM,GAAK,EACnB,MAAM,AAAI,MAAM,0BAAwC,MAAA,CAAd,EAAK,UAAqB,MAAA,CAAZ,EAAM,MAAM,GACtE,OAAO,EAAO,AAAA,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,GAAS,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EACzD,CACU,GACZ,OAAO,OAAO,MAAM,CAAC,EACvB,EAEA,EAAA,SAAA,CAAA,SAA6B,CAAa,CAAE,CAAM,EAChD,GAAI,CAAC,EAAG,KAAK,CAAE,MAAM,AAAI,MAAM,4BAC/B,IAAM,EAAO,EAAG,IAAI,CAAC,GACrB,OAAO,EAAG,KAAK,CAAC,GAAQ,EAAO,EAAG,GAAG,CAAC,EACxC,EAEA,EAAA,UAAA,CAAA,SAA8B,CAAa,CAAE,CAAM,EACjD,GAAI,CAAC,EAAG,KAAK,CAAE,MAAM,AAAI,MAAM,4BAC/B,IAAM,EAAO,EAAG,IAAI,CAAC,GACrB,OAAO,EAAG,KAAK,CAAC,GAAQ,EAAG,GAAG,CAAC,GAAQ,CACzC,EAQA,EAAA,mBAAA,CAAA,SACE,CAAyB,CACzB,CAAkB,EAClB,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAGM,EAAU,AADhB,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,cAAe,EAAlC,EACqB,MAAM,CACrB,EAAS,EAAQ,GAAY,WAAW,CAAG,EACjD,GAAI,EAAS,IAAM,EAAU,GAAU,EAAU,KAC/C,MAAM,AAAI,MAAM,iCAAoE,MAAA,CAAnC,EAAM,8BAAoC,MAAA,CAAP,IAEtF,OAAO,EADK,EAAO,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,GAAQ,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,GAC3C,EAAa,GAAO,CACtC,EAQA,EAAA,mBAAA,CAAA,EAaA,EAAA,gBAAA,CAAA,EAkBA,EAAA,cAAA,CAAA,SAA+B,CAAe,CAAE,CAAkB,EAAE,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAC5D,EAAM,EAAI,MAAM,CAChB,EAAW,EAAoB,GAC/B,EAAS,EAAiB,GAEhC,GAAI,EAAM,IAAM,EAAM,GAAU,EAAM,KACpC,MAAM,AAAI,MAAM,YAA+C,MAAA,CAAnC,EAAM,8BAAgC,MAAA,CAAH,IAGjE,IAAM,EAAU,EAFJ,EAAO,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,GAAO,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,GAEjC,EAAa,GAAO,EAC7C,OAAO,EAAO,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EAAS,GAAY,AAAA,CAAA,EAAA,EAAA,eAAA,AAAA,EAAgB,EAAS,EAC9E,CA7eA,qEAAA,EAEA,IAAA,EAAA,EAAA,oBAUM,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAEhE,EAAM,OAAO,GAAI,EAAM,OAAO,GAAI,EAAM,OAAO,GAKrD,SAAgB,EAAI,CAAS,CAAE,CAAS,EACtC,IAAM,EAAS,EAAI,EACnB,OAAO,GAAU,EAAM,EAAS,EAAI,CACtC,CAQA,SAAgB,EAAI,CAAW,CAAE,CAAa,CAAE,CAAc,EAC5D,GAAI,GAAU,GAAO,EAAQ,EAAK,MAAM,AAAI,MAAM,6BAClD,GAAI,IAAW,EAAK,OAAO,EAE3B,IADA,IAAI,EAAM,EACH,EAAQ,GACT,EAAQ,GAAK,CAAA,EAAM,EAAO,EAAO,CAArC,EACA,EAAO,EAAM,EAAO,EACpB,IAAU,EAEZ,OAAO,CACT,CAaA,SAAgB,EAAO,CAAc,CAAE,CAAc,EACnD,GAAI,IAAW,GAAO,GAAU,EAC9B,MAAM,AAAI,MAAM,6CAA2D,MAAA,CAAd,EAAM,SAAc,MAAA,CAAN,IAQ7E,IAJA,IAAI,EAAI,EAAI,EAAQ,GAChB,EAAI,EAEJ,EAAI,EAAK,EAAI,EAAK,EAAI,EAAK,EAAI,EAC5B,IAAM,GAAK,CAEhB,IAAM,EAAI,EAAI,EACR,EAAI,EAAI,EACR,EAAI,EAAI,EAAI,EACZ,EAAI,EAAI,EAAI,CAElB,CAAA,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,CACzC,CAEA,GAAI,AADQ,IACA,EAAK,MAAM,AAAI,MAAM,0BACjC,OAAO,EAAI,EAAG,EAChB,CAUA,SAAgB,EAAc,CAAS,EAMrC,IAEI,EAAW,EAAW,EAFpB,EAAY,AAAC,CAAA,EAAI,CAAA,EAAO,EAK9B,IAAK,EAAI,EAAI,EAAK,EAAI,EAAG,EAAI,IAAQ,EAAK,GAAK,EAAK,KAGpD,IAAK,EAAI,EAAK,EAAI,GAAK,EAAI,EAAG,EAAW,KAAO,EAAI,EAAK,KAGzD,GAAI,AAAM,IAAN,EAAS,CACX,IAAM,EAAS,AAAC,CAAA,EAAI,CAAA,EAAO,EAC3B,OAAO,SAAwB,CAAa,CAAE,CAAI,EAChD,IAAM,EAAO,EAAG,GAAG,CAAC,EAAG,GACvB,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,GAAO,GAAI,MAAM,AAAI,MAAM,2BAC9C,OAAO,CACT,CACF,CAGA,IAAM,EAAS,AAAC,CAAA,EAAI,CAAA,EAAO,EAC3B,OAAO,SAAwB,CAAa,CAAE,CAAI,EAEhD,GAAI,EAAG,GAAG,CAAC,EAAG,KAAe,EAAG,GAAG,CAAC,EAAG,GAAG,EAAG,MAAM,AAAI,MAAM,2BAO7D,IANA,IAAI,EAAI,EAEJ,EAAI,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAE,GAAI,GAC9B,EAAI,EAAG,GAAG,CAAC,EAAG,GACd,EAAI,EAAG,GAAG,CAAC,EAAG,GAEX,CAAC,EAAG,GAAG,CAAC,EAAG,EAAG,GAAG,GAAG,CACzB,GAAI,EAAG,GAAG,CAAC,EAAG,EAAG,IAAI,EAAG,OAAO,EAAG,IAAI,CAGtC,IAAK,IADD,EAAI,EACC,EAAK,EAAG,GAAG,CAAC,GACnB,AADuB,EAAI,IACvB,EAAG,GAAG,CAAC,EAAI,EAAG,GAAG,EADS,IAE9B,EAAK,EAAG,GAAG,CAAC,GAHd,IAMM,EAAK,EAAG,GAAG,CAAC,EAAG,GAAO,OAAO,EAAI,EAAI,IAC3C,EAAI,EAAG,GAAG,CAAC,GACX,EAAI,EAAG,GAAG,CAAC,EAAG,GACd,EAAI,EAAG,GAAG,CAAC,EAAG,GACd,EAAI,CACN,CACA,OAAO,CACT,CACF,CAEA,SAAgB,EAAO,CAAS,EAM9B,GAAI,EAAI,IAAQ,EAAK,CAKnB,IAAM,EAAS,AAAC,CAAA,EAAI,CAAA,EAAO,EAC3B,OAAO,SAAsB,CAAa,CAAE,CAAI,EAC9C,IAAM,EAAO,EAAG,GAAG,CAAC,EAAG,GAEvB,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,GAAO,GAAI,MAAM,AAAI,MAAM,2BAC9C,OAAO,CACT,CACF,CAGA,GAAI,EAAI,IAAQ,EAAK,CACnB,IAAM,EAAK,AAAC,CAAA,EAAI,CAAA,EAAO,EACvB,OAAO,SAAsB,CAAa,CAAE,CAAI,EAC9C,IAAM,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAI,EAAG,GAAG,CAAC,EAAI,GACf,EAAK,EAAG,GAAG,CAAC,EAAG,GACf,EAAI,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,EAAI,GAAM,GAC5B,EAAO,EAAG,GAAG,CAAC,EAAI,EAAG,GAAG,CAAC,EAAG,EAAG,GAAG,GACxC,GAAI,CAAC,EAAG,GAAG,CAAC,EAAG,GAAG,CAAC,GAAO,GAAI,MAAM,AAAI,MAAM,2BAC9C,OAAO,CACT,CACF,CAyBA,OAAO,EAAc,EACvB,CAvLY,OAAO,GAAW,OAAO,IA0LxB,EAAA,YAAY,CAAG,SAAC,CAAA,CAAa,CAAnC,EAAsD,MAAC,AAAA,CAAA,EAAI,EAAK,GAAU,CAAA,IAAS,C,EA6C1F,IAAM,EAAe,CACnB,SAAU,UAAW,MAAO,MAAO,MAAO,OAAQ,MAClD,MAAO,MAAO,MAAO,MAAO,MAAO,MACnC,OAAQ,OAAQ,OAAQ,OAChB,CAqBV,SAAgB,EAAS,CAAY,CAAE,CAAM,CAAE,CAAa,EAG1D,GAAI,EAAQ,EAAK,MAAM,AAAI,MAAM,sBACjC,GAAI,IAAU,EAAK,OAAO,EAAE,GAAG,CAC/B,GAAI,IAAU,EAAK,OAAO,EAG1B,IAFA,IAAI,EAAI,EAAE,GAAG,CACT,EAAI,EACD,EAAQ,GACT,EAAQ,GAAK,CAAA,EAAI,EAAE,GAAG,CAAC,EAAG,EAA9B,EACA,EAAI,EAAE,GAAG,CAAC,GACV,IAAU,EAEZ,OAAO,CACT,CAMA,SAAgB,EAAiB,CAAY,CAAE,CAAS,EACtD,IAAM,EAAM,AAAI,MAAM,EAAK,MAAM,EAE3B,EAAiB,EAAK,MAAM,CAAC,SAAC,CAAA,CAAK,CAAA,CAAK,CAA9C,SACE,AAAI,EAAE,GAAG,CAAC,GAAa,GACvB,CAAG,CAAC,EAAE,CAAG,EACF,EAAE,GAAG,CAAC,EAAK,GACpB,EAAG,EAAE,GAAG,EAEF,EAAW,EAAE,GAAG,CAAC,GAOvB,OALA,EAAK,WAAW,CAAC,SAAC,CAAA,CAAK,CAAA,CAAK,CAA5B,SACE,AAAI,EAAE,GAAG,CAAC,GAAa,GACvB,CAAG,CAAC,EAAE,CAAG,EAAE,GAAG,CAAC,EAAK,CAAG,CAAC,EAAE,EACnB,EAAE,GAAG,CAAC,EAAK,GACpB,EAAG,GACI,CACT,CAMA,SAAgB,EAAW,CAAa,EAItC,IAAM,EAAgB,AAAC,CAAA,EAAQ,CAAA,EAAO,EACtC,OAAO,SAAI,CAAA,CAAc,CAAzB,EAAqC,OAAA,EAAE,GAAG,CAAC,EAAG,E,CAChD,CAYA,SAAgB,EAAQ,CAAS,CAAE,CAAmB,EAEpD,IAAM,EAAc,AAAe,KAAA,IAAf,EAA2B,EAAa,EAAE,QAAQ,CAAC,GAAG,MAAM,CAC1E,EAAc,KAAK,IAAI,CAAC,EAAc,GAC5C,MAAO,CAAE,WAAY,EAAa,YAAA,CAAW,CAC/C,CAiHA,SAAgB,EAAoB,CAAkB,EACpD,GAAI,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAe,SAAU,MAAM,AAAI,MAAM,8BAEpD,OAAO,KAAK,IAAI,CAAC,AADC,EAAW,QAAQ,CAAC,GAAG,MAAM,CAClB,EAC/B,CASA,SAAgB,EAAiB,CAAkB,EACjD,IAAM,EAAS,EAAoB,GACnC,OAAO,EAAS,KAAK,IAAI,CAAC,EAAS,EACrC,C,E,C,0B,Q,iB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,mC,E,E,uC,E,E,2B,O,c,C,E,a,C,M,C,C,G,E,c,C,E,O,C,K,EEjcA,EAAA,OAAA,CAAA,EAOA,EAAA,MAAA,CAAA,EAIA,EAAA,KAAA,CAAA,SAAsB,CAAa,CAAE,CAAc,EACjD,GAAI,AAAiB,WAAjB,OAAO,EACT,MAAM,AAAI,MAAM,GAAwC,MAAA,CAArC,EAAK,iCAAqC,MAAA,CAAL,EAAK,MACjE,EASA,EAAA,UAAA,CAAA,EAUA,EAAA,mBAAA,CAAA,EAKA,EAAA,WAAA,CAAA,EAkBA,EAAA,UAAA,CAAA,EAmBA,EAAA,eAAA,CAAA,SAAgC,CAAiB,EAC/C,OAAO,EAAY,EAAW,GAChC,EACA,EAAA,eAAA,CAAA,SAAgC,CAAiB,EAE/C,OADA,EAAO,GACA,EAAY,EAAW,WAAW,IAAI,CAAC,GAAO,OAAO,IAC9D,EAEA,EAAA,eAAA,CAAA,EAGA,EAAA,eAAA,CAAA,SAAgC,CAAkB,CAAE,CAAW,EAC7D,OAAO,EAAgB,EAAG,GAAK,OAAO,EACxC,EAEA,EAAA,kBAAA,CAAA,SAAmC,CAAkB,EACnD,OAAO,EAAW,EAAoB,GACxC,EAWA,EAAA,WAAA,CAAA,SAA4B,CAAa,CAAE,CAAQ,CAAE,CAAuB,EAE1E,GAAI,AAAe,UAAf,OAAO,EACT,GAAI,CACF,EAAM,EAAW,EACnB,CAAE,MAAO,EAAG,CACV,MAAM,AAAI,MAAM,GAA2C,MAAA,CAAxC,EAAK,oCAAmD,MAAA,CAAhB,EAAG,cAAc,MAAA,CAAD,GAC7E,MACK,GAAI,EAAQ,GAGjB,EAAM,WAAW,IAAI,CAAC,QAEtB,MAAM,AAAI,MAAM,GAAQ,MAAA,CAAL,EAAK,sCAE1B,IAdI,EAcE,EAAM,EAAI,MAAM,CACtB,GAAI,AAA0B,UAA1B,OAAO,GAA+B,IAAQ,EAChD,MAAM,AAAI,MAAM,GAAqB,MAAA,CAAlB,EAAK,cAA0C,MAAA,CAA7B,EAAc,gBAAkB,MAAA,CAAH,IACpE,OAAO,CACT,EAKA,EAAA,WAAA,CAAA,EAiBA,EAAA,UAAA,CAAA,SAA2B,CAAa,CAAE,CAAa,EACrD,GAAI,EAAE,MAAM,GAAK,EAAE,MAAM,CAAE,MAAO,CAAA,EAElC,IAAK,IADD,EAAO,EACF,EAAI,EAAG,EAAI,EAAE,MAAM,CAAE,IAAK,GAAQ,CAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,CACtD,OAAO,AAAS,IAAT,CACT,EASA,EAAA,WAAA,CAAA,SAA4B,CAAW,EACrC,GAAI,AAAe,UAAf,OAAO,EAAkB,MAAM,AAAI,MAAM,oCAA8C,MAAA,CAAV,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,KACxF,OAAO,IAAI,WAAW,IAAI,cAAc,MAAM,CAAC,GACjD,EAKA,EAAA,OAAA,CAAA,EASA,EAAA,QAAA,CAAA,SAAyB,CAAa,CAAE,CAAS,CAAE,CAAW,CAAE,CAAW,EAMzE,GAAI,CAAC,EAAQ,EAAG,EAAK,GACnB,MAAM,AAAI,MAAM,kBAA4B,MAAA,CAAV,EAAK,MAAmB,MAAA,CAAd,EAAG,YAAuB,MAAA,CAAZ,EAAG,UAAqB,MAAA,CAAZ,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAQ,AAAR,EAAO,GAAC,KAAK,MAAA,CAAD,GACtF,EAQA,EAAA,MAAA,CAAA,SAAuB,CAAS,EAC9B,IAAI,EACJ,IAAK,EAAM,EAAG,EAAI,EAAK,IAAM,EAAK,GAAO,GACzC,OAAO,CACT,EAOA,EAAA,MAAA,CAAA,SAAuB,CAAS,CAAE,CAAW,EAC3C,OAAO,GAAM,OAAO,GAAQ,CAC9B,EAKA,EAAA,MAAA,CAAA,SAAuB,CAAS,CAAE,CAAW,CAAE,CAAc,EAC3D,OAAO,EAAK,AAAC,CAAA,EAAQ,EAAM,CAAA,GAAQ,OAAO,EAC5C,EAoBA,EAAA,cAAA,CAAA,SACE,CAAe,CACf,CAAgB,CAChB,CAAkE,EAElE,GAAI,AAAmB,UAAnB,OAAO,GAAwB,EAAU,EAAG,MAAM,AAAI,MAAM,4BAChE,GAAI,AAAoB,UAApB,OAAO,GAAyB,EAAW,EAAG,MAAM,AAAI,MAAM,6BAClE,GAAI,AAAkB,YAAlB,OAAO,EAAuB,MAAM,AAAI,MAAM,6BAElD,IAAI,EAAI,EAAI,GACR,EAAI,EAAI,GACR,EAAI,EACF,EAAQ,WACZ,EAAE,IAAI,CAAC,GACP,EAAE,IAAI,CAAC,GACP,EAAI,CACN,EACM,EAAI,WAAI,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAoB,OAAA,EAAA,KAAA,CAAA,KAAA,EAAA,CAAO,EAAG,EAAQ,CAAlB,MAAA,CAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAAI,EAChD,EAAS,WAAC,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAO,IAErB,EAAI,EAAE,EAAK,CAAC,EAAK,EAAG,GACpB,EAAI,IACgB,IAAhB,EAAK,MAAM,GACf,EAAI,EAAE,EAAK,CAAC,EAAK,EAAG,GACpB,EAAI,IACN,EACM,EAAM,WAEV,GAAI,KAAO,IAAM,MAAM,AAAI,MAAM,2BAGjC,IAFA,IAAI,EAAM,EACJ,EAAoB,EAAE,CACrB,EAAM,GAAU,CAErB,IAAM,EAAK,AADX,CAAA,EAAI,GAAJ,EACa,KAAK,GAClB,EAAI,IAAI,CAAC,GACT,GAAO,EAAE,MAAM,AACjB,CACA,OAAO,EAAA,KAAA,CAAA,KAAA,EAAY,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,GACxB,EASA,OARiB,SAAC,CAAA,CAAkB,CAApC,EACE,IACA,EAAO,GAEP,IADA,IAAI,EAAqB,KAAA,EAClB,CAAE,CAAA,EAAM,EAAK,IAAA,GAAS,IAE7B,OADA,IACO,CACT,CAEF,EAmBA,EAAA,cAAA,CAAA,SACE,CAAS,CACT,CAAqB,EACrB,IAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAA2B,CAAA,EAErB,EAAa,SAAC,CAAA,CAAoB,CAAA,CAAiB,CAAzD,EACE,IAAM,EAAW,CAAY,CAAC,EAAK,CACnC,GAAI,AAAoB,YAApB,OAAO,EACT,MAAM,AAAI,MAAM,sBAA0B,MAAA,CAAJ,EAAI,yBAE5C,IAAM,EAAM,CAAM,CAAC,EAAiC,CACpD,GAAI,CAAA,CAAA,GAAc,AAAQ,KAAA,IAAR,CAAQ,GACtB,CAAC,EAAS,EAAK,GACjB,MAAM,AAAI,MACR,iBAAsC,MAAA,CAArB,OAAO,GAAU,KAAY,MAAA,CAAR,EAAG,MAA8B,MAAA,CAAzB,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,GAAG,gBAAmB,MAAA,CAAJ,GAG7E,EACK,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA,EAAA,KAAA,E,G,CAAL,IAAA,IAAK,EAAA,EAA2B,OAAO,OAAO,CAAC,EAAA,CAAA,OAAA,QAAA,CAAA,GAA1C,CAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,AAAA,EAAA,EAAL,CAAA,EAAA,CAAK,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,KAAA,CAAA,GAAO,EAAA,CAAA,CAAA,EAAA,CAAW,EAAlB,CAAA,CAAA,EAAA,CAAuD,EAAW,EAAW,EAAO,CAAA,E,C,C,M,E,CAApF,EAAA,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CACA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA,EAAA,KAAA,E,G,CAAL,IAAA,IAAK,EAAA,EAA2B,OAAO,OAAO,CAAC,EAAA,CAAA,OAAA,QAAA,CAAA,GAA1C,CAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,AAAA,EAAA,EAAL,CAAA,EAAA,CAAK,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,KAAA,CAAA,GAAO,EAAA,CAAA,CAAA,EAAA,CAAW,EAAlB,CAAA,CAAA,EAAA,CAA0D,EAAW,EAAW,EAAO,CAAA,E,C,C,M,E,CAAvF,EAAA,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CACL,OAAO,CACT,EAqBA,EAAA,QAAA,CAAA,SAA+D,CAA6B,EAC1F,IAAM,EAAM,IAAI,QAChB,OAAO,SAAC,CAAR,EAAmB,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CACjB,IAAM,EAAM,EAAI,GAAG,CAAC,GACpB,GAAI,AAAQ,KAAA,IAAR,EAAmB,OAAO,EAC9B,IAAM,EAAW,EAAA,KAAA,CAAA,KAAA,EAAA,CAAG,EAAa,CAAhB,MAAA,CAAQ,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,KAE5B,OADA,EAAI,GAAG,CAAC,EAAK,GACN,CACT,CACF,CA/WA,qEAAA,EAKA,IAAM,EAAM,aAAA,EAAgB,OAAO,GAC7B,EAAM,aAAA,EAAgB,OAAO,GAC7B,EAAM,aAAA,EAAgB,OAAO,GAWnC,SAAgB,EAAQ,CAAU,EAChC,OACE,aAAa,YACZ,AAAK,MAAL,GAAa,AAAa,UAAb,OAAO,GAAkB,AAAuB,eAAvB,EAAE,WAAW,CAAC,IAAI,AAE7D,CAEA,SAAgB,EAAO,CAAa,EAClC,GAAI,CAAC,EAAQ,GAAO,MAAM,AAAI,MAAM,sBACtC,CAQA,IAAM,EAAQ,aAAA,EAAgB,MAAM,IAAI,CAAC,CAAE,OAAQ,GAAG,EAAI,SAAC,CAAA,CAAG,CAAR,EACpD,OAAA,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,I,GAK7B,SAAgB,EAAW,CAAiB,EAC1C,EAAO,GAGP,IAAK,IADD,EAAM,GACD,EAAI,EAAG,EAAI,EAAM,MAAM,CAAE,IAChC,GAAO,CAAK,CAAC,CAAK,CAAC,EAAE,CAAC,CAExB,OAAO,CACT,CAEA,SAAgB,EAAoB,CAAoB,EACtD,IAAM,EAAM,EAAI,QAAQ,CAAC,IACzB,OAAO,AAAa,EAAb,EAAI,MAAM,CAAO,IAAO,MAAA,CAAH,GAAQ,CACtC,CAEA,SAAgB,EAAY,CAAW,EACrC,GAAI,AAAe,UAAf,OAAO,EAAkB,MAAM,AAAI,MAAM,4BAA8B,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,EAAA,GAElF,OAAO,OAAO,AAAQ,KAAR,EAAa,IAAM,KAAQ,MAAA,CAAH,GACxC,CAGA,IAAM,EAAS,CAAE,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,EAChE,SAAS,EAAc,CAAY,SACjC,AAAI,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAO,EAAO,EAAE,CAC/D,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAQ,CAAA,EAAO,EAAE,CAAG,EAAA,EACnE,GAAQ,EAAO,EAAE,EAAI,GAAQ,EAAO,EAAE,CAAS,EAAQ,CAAA,EAAO,EAAE,CAAG,EAAA,QAEzE,CAKA,SAAgB,EAAW,CAAW,EACpC,GAAI,AAAe,UAAf,OAAO,EAAkB,MAAM,AAAI,MAAM,4BAA8B,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAU,AAAV,EAAO,EAAA,GAClF,IAAM,EAAK,EAAI,MAAM,CACf,EAAK,EAAK,EAChB,GAAI,EAAK,EAAG,MAAM,AAAI,MAAM,0DAA4D,GAExF,IAAK,IADC,EAAQ,IAAI,WAAW,GACpB,EAAK,EAAG,EAAK,EAAG,EAAK,EAAI,IAAM,GAAM,EAAG,CAC/C,IAAM,EAAK,EAAc,EAAI,UAAU,CAAC,IAClC,EAAK,EAAc,EAAI,UAAU,CAAC,EAAK,IAC7C,GAAI,AAAO,KAAA,IAAP,GAAoB,AAAO,KAAA,IAAP,EAEtB,MAAM,AAAI,MAAM,+CADH,CAAA,CAAG,CAAC,EAAG,CAAG,CAAG,CAAC,EAAK,EAAE,AAAF,EACwC,cAAgB,EAE1F,CAAA,CAAK,CAAC,EAAG,CAAG,AAAK,GAAL,EAAU,CACxB,CACA,OAAO,CACT,CAWA,SAAgB,EAAgB,CAAkB,CAAE,CAAW,EAC7D,OAAO,EAAW,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,AAAM,EAAN,EAAS,KACrD,CA0CA,SAAgB,IAAY,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAuB,CAEjD,IAAK,IADD,EAAM,EACD,EAAI,EAAG,EAAI,EAAO,MAAM,CAAE,IAAK,CACtC,IAAM,EAAI,CAAM,CAAC,EAAE,CACnB,EAAO,GACP,GAAO,EAAE,MAAM,AACjB,CAEA,IAAK,IADC,EAAM,IAAI,WAAW,GAClB,EAAI,EAAG,EAAM,EAAG,EAAI,EAAO,MAAM,CAAE,IAAK,CAC/C,IAAM,EAAI,CAAM,CAAC,EAAE,CACnB,EAAI,GAAG,CAAC,EAAG,GACX,GAAO,EAAE,MAAM,AACjB,CACA,OAAO,CACT,CAuBA,IAAM,EAAW,SAAC,CAAlB,EAAgC,MAAA,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAQ,AAAR,EAAO,EAAA,IAAM,UAAY,GAAO,C,EAEhE,SAAgB,EAAQ,CAAS,CAAE,CAAW,CAAE,CAAW,EACzD,OAAO,EAAS,IAAM,EAAS,IAAQ,EAAS,IAAQ,GAAO,GAAK,EAAI,CAC1E,CAiDa,EAAA,OAAO,CAAG,SAAC,CADrB,EACmC,MAAC,AAAA,CAAA,GAAO,OAAO,EAAI,EAAA,EAAM,C,EAI/D,IAAM,EAAM,SAAC,CAAb,EAA4B,OAAA,IAAI,WAAW,EAAO,EAC5C,EAAO,SAAC,CAAd,EAA2B,OAAA,WAAW,IAAI,CAAC,EAAM,EA6D3C,EAAe,CACnB,OAAQ,SAAC,CAAT,EAAsB,MAAA,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAQ,Q,EACrC,SAAU,SAAC,CAAX,EAAwB,MAAA,AAAe,YAAf,OAAO,C,EAC/B,QAAS,SAAC,CAAV,EAAuB,MAAA,AAAe,WAAf,OAAO,C,EAC9B,OAAQ,SAAC,CAAT,EAAsB,MAAA,AAAe,UAAf,OAAO,C,EAC7B,mBAAoB,SAAC,CAArB,EAAkC,MAAA,AAAe,UAAf,OAAO,GAAoB,EAAQ,E,EACrE,cAAe,SAAC,CAAhB,EAA6B,OAAA,OAAO,aAAa,CAAC,E,EAClD,MAAO,SAAC,CAAR,EAAqB,OAAA,MAAM,OAAO,CAAC,E,EACnC,MAAO,SAAC,CAAA,CAAU,CAAlB,EAAmC,OAAA,EAAe,EAAE,CAAC,OAAO,CAAC,E,EAC7D,KAAM,SAAC,CAAP,EAAoB,MAAA,AAAe,YAAf,OAAO,GAAsB,OAAO,aAAa,CAAC,EAAI,SAAS,C,CAC3E,CAuCG,CAAA,EAAA,cAAc,CAAG,WAC5B,MAAM,AAAI,MAAM,kBAClB,C,E,C,kC,Q,sC,Q,0B,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,iC,E,E,uC,E,E,mC,E,E,uC,E,E,2B,O,c,C,E,a,C,M,C,C,GExSA,EAAA,kBAAA,CAAA,EAiCA,EAAA,kBAAA,CAAA,EAqCA,EAAA,aAAA,CAAA,EAuCA,EAAA,UAAA,CAAA,SAAmD,CAAQ,CAAE,CAAyB,EAEpF,IAAM,EAAQ,EAAI,GAAG,CAAC,SAAC,CAAvB,EAA6B,OAAA,MAAM,IAAI,CAAC,GAAG,OAAO,E,GAClD,OAAO,SAAC,CAAA,CAAM,CAAd,EACE,IAAiC,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAM,GAAG,CAAC,SAAC,CAA5C,EACE,OAAA,EAAI,MAAM,CAAC,SAAC,CAAA,CAAK,CAAjB,EAAuB,OAAA,EAAM,GAAG,CAAC,EAAM,GAAG,CAAC,EAAK,GAAI,E,EAD/C,GAAA,GAAA,EAA0B,CAAA,CAAA,EAAA,CAApB,EAAoB,CAAA,CAAA,EAAA,CAAd,EAAc,CAAA,CAAA,EAAA,CAAR,EAAQ,CAA1B,CAAA,EAAA,CAKP,OAFA,EAAI,EAAM,GAAG,CAAC,EAAM,GACpB,EAAI,EAAM,GAAG,CAAC,EAAG,EAAM,GAAG,CAAC,EAAM,IAC1B,CAAE,EAAA,EAAG,EAAA,CAAC,CACf,CACF,EAmBA,EAAA,YAAA,CAAA,SACE,CAA6B,CAC7B,CAAyB,CACzB,CAA0C,EAE1C,GAAI,AAAsB,YAAtB,OAAO,EAA2B,MAAM,AAAI,MAAM,gCACtD,MAAO,CAGL,YAAA,SAAY,CAAe,CAAE,CAAsB,EACjD,IAAM,EAAI,EAAc,EAAK,EAAG,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK,GAArC,CAA0C,IAAK,EAAI,GAAG,AAAK,GAAA,IACrD,EAAK,EAAM,UAAU,CAAC,EAAW,CAAC,CAAC,EAAE,GACrC,EAAK,EAAM,UAAU,CAAC,EAAW,CAAC,CAAC,EAAE,GACrC,EAAI,EAAG,GAAG,CAAC,GAAI,aAAa,GAElC,OADA,EAAE,cAAc,GACT,CACT,EAIA,cAAA,SAAc,CAAe,CAAE,CAAsB,EACnD,IAAM,EAAI,EAAc,EAAK,EAAG,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK,GAArC,CAA0C,IAAK,EAAI,SAAS,AAAK,GAAA,IAC3D,EAAI,EAAM,UAAU,CAAC,EAAW,CAAC,CAAC,EAAE,GAAG,aAAa,GAE1D,OADA,EAAE,cAAc,GACT,CACT,EAEA,WAAA,SAAW,CAAiB,EAC1B,GAAI,CAAC,MAAM,OAAO,CAAC,GAAU,MAAM,AAAI,MAAM,yCACxC,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA,EAAA,KAAA,E,G,CAAL,IAAA,IAAK,EAAA,EAAW,CAAA,CAAA,OAAA,QAAA,CAAA,GAAX,CAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,AAAA,EAAA,EAAL,CAAA,EAAA,CAAK,IAAM,EAAN,EAAA,KAAA,CACH,GAAI,AAAA,CAAA,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAO,AAAP,EAAO,EAAA,IAAM,SACf,MAAM,AAAI,MAAM,8CAA+C,MAAA,CAAD,EAAC,a,C,C,M,E,CAF9D,EAAA,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CAGL,IAAM,EAAI,EAAM,UAAU,CAAC,EAAW,IAAU,aAAa,GAE7D,OADA,EAAE,cAAc,GACT,CACT,CACD,CACH,EAtOA,IAAA,EAAA,EAAA,mBAEA,EAAA,EAAA,oBAqBM,EAAQ,EAAA,eAAe,CAG7B,SAAS,EAAM,CAAa,CAAE,CAAc,EAG1C,GAFA,EAAK,GACL,EAAK,GACD,EAAQ,GAAK,GAAS,GAAM,EAAI,EAClC,MAAM,AAAI,MAAM,yBAAyC,MAAA,CAAhB,EAAK,YAAiB,MAAA,CAAN,IAG3D,IAAK,IADC,EAAM,MAAM,IAAI,CAAC,CAAE,OAAA,CAAM,GAAI,IAAI,CAAC,GAC/B,EAAI,EAAS,EAAG,GAAK,EAAG,IAC/B,CAAG,CAAC,EAAE,CAAG,AAAQ,IAAR,EACT,KAAW,EAEb,OAAO,IAAI,WAAW,EACxB,CAUA,SAAS,EAAK,CAAa,EACzB,GAAI,CAAC,OAAO,aAAa,CAAC,GAAO,MAAM,AAAI,MAAM,kBACnD,CAIA,SAAgB,EACd,CAAe,CACf,CAAe,CACf,CAAkB,CAClB,CAAQ,EAER,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,EAAK,GAED,EAAI,MAAM,CAAG,KAAK,CAAA,EAAM,EAAE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,qBAAsB,GAA5E,EACA,IAAmB,EAAqC,EAAhD,SAAA,CAAiC,EAAe,EAAzB,QAA/B,CACM,EAAM,KAAK,IAAI,CAAC,EAAa,GACnC,GAAI,EAAa,OAAS,EAAM,IAAK,MAAM,AAAI,MAAM,0CACrD,IAAM,EAAY,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAK,EAAM,EAAI,MAAM,CAAE,IAC/C,EAAQ,EAAM,EAAG,GACjB,EAAY,EAAM,EAAY,GAC9B,EAAI,AAAI,MAAkB,GAC1B,EAAM,EAAE,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAO,EAAK,EAAW,EAAM,EAAG,GAAI,GAC9D,CAAA,CAAC,CAAC,EAAE,CAAG,EAAE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,EAAK,EAAM,EAAG,GAAI,IACvC,IAAK,IAAI,EAAI,EAAG,GAAK,EAAK,IAAK,CAC7B,IAAM,EAAO,CAAC,AAnClB,SAAgB,CAAa,CAAE,CAAa,EAE1C,IAAK,IADC,EAAM,IAAI,WAAW,EAAE,MAAM,EAC1B,EAAI,EAAG,EAAI,EAAE,MAAM,CAAE,IAC5B,CAAG,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,CAEtB,OAAO,CACT,EA6ByB,EAAK,CAAC,CAAC,EAAI,EAAE,EAAG,EAAM,EAAI,EAAG,GAAI,EAAU,AAChE,CAAA,CAAC,CAAC,EAAE,CAAG,EAAE,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAA,KAAA,CAAA,IAAW,CAAC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAC1B,CAEA,MAAO,AADqB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAA,KAAA,CAAA,IAAW,CAAC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,IAChB,KAAK,CAAC,EAAG,EACtC,CAOA,SAAgB,EACd,CAAe,CACf,CAAe,CACf,CAAkB,CAClB,CAAS,CACT,CAAQ,EAOR,GALA,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,EAAK,GAGD,EAAI,MAAM,CAAG,IAAK,CACpB,IAAM,EAAQ,KAAK,IAAI,CAAE,EAAI,EAAK,GAClC,EAAM,EAAE,MAAM,CAAC,CAAE,MAAA,CAAK,GAAI,MAAM,CAAC,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,sBAAsB,MAAM,CAAC,GAAK,MAAM,EACvF,CACA,GAAI,EAAa,OAAS,EAAI,MAAM,CAAG,IACrC,MAAM,AAAI,MAAM,0CAClB,OACE,EAAE,MAAM,CAAC,CAAE,MAAO,CAAU,GACzB,MAAM,CAAC,GACP,MAAM,CAAC,EAAM,EAAY,IAEzB,MAAM,CAAC,GACP,MAAM,CAAC,EAAM,EAAI,MAAM,CAAE,IACzB,MAAM,EAEb,CAUA,SAAgB,EAAc,CAAe,CAAE,CAAa,CAAE,CAAa,EACzE,AAAA,CAAA,EAAA,EAAA,cAAc,AAAd,EAAe,EAAS,CACtB,IAAK,qBACL,EAAG,SACH,EAAG,gBACH,EAAG,gBACH,KAAM,MACP,GACD,IAOI,EAPI,EAAqC,EAArC,CAAA,CAAG,EAAkC,EAAlC,CAAA,CAAG,EAA+B,EAA/B,CAAA,CAAG,EAA4B,EAA5B,IAAA,CAAM,EAAsB,EAAtB,MAAA,CAAa,EAAS,EAAd,GAA/B,CACA,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,EAAK,GACL,IAAM,EAAM,AAAgB,UAAhB,OAAO,EAAoB,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,GAAQ,EAErD,EAAI,KAAK,IAAI,CAAE,AAAA,CAAA,AADP,EAAE,QAAQ,CAAC,GAAG,MAAM,CACL,CAAA,EAAK,GAC5B,EAAe,EAAQ,EAAI,EAEjC,GAAI,AAAW,QAAX,EACF,EAAM,EAAmB,EAAK,EAAK,EAAc,QAC5C,GAAI,AAAW,QAAX,EACT,EAAM,EAAmB,EAAK,EAAK,EAAc,EAAG,QAC/C,GAAI,AAAW,mBAAX,EAET,EAAM,OAEN,MAAM,AAAI,MAAM,iCAGlB,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAO,IAAK,CAE9B,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,IAAM,EAAa,EAAK,CAAA,EAAI,EAAI,CAAA,EAC1B,EAAK,EAAI,QAAQ,CAAC,EAAY,EAAa,EACjD,CAAA,CAAC,CAAC,EAAE,CAAG,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAM,GAAK,EACxB,CACA,CAAC,CAAC,EAAE,CAAG,CACT,CACA,OAAO,CACT,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,0B,Q,kB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,I,E,E,sC,E,E,mC,E,E,uC,E,E,gCCnKA,EAAA,EAAA,eACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,aAgBe,CAAA,EAAA,OAAA,CAAA,SAAA,CAAA,EAAE,IAIX,EACA,EACA,EANW,EAAA,EAAA,IAAA,CAAM,EAAA,EAAA,SAAA,CAAW,EAAA,EAAA,QAAjB,CACT,EAAgB,CAAC,EAEnB,EAAU,CAAA,EAKd,OAAO,SAAC,CAAA,CAAQ,CAAA,CAAQ,CAAxB,EACE,IAwNkC,EAtN9B,EAFG,EAAS,EAAT,KAAP,CAEA,GAAA,AAAwB,OAApB,CAAA,EAAA,CAAa,CAAC,EAAM,AAAN,GAAd,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,CAAsB,CAAC,EAAO,CAChC,OAAO,CAAa,CAAC,EAAM,CAAC,EAAO,CAGrC,IAAM,EAAgB,CAAC,EACjB,EAAiB,CAAC,EAClB,EAAqB,AAAA,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,EAAA,OAAM,CAAG,EAAO,GAC/C,EAAa,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EAAK,GAClB,EAAa,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EAAK,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAoB,EAAA,MAAM,GACtD,EAAM,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAO,QAAQ,EAAI,GAAI,EAAO,GAE3C,EAAU,SAAA,CAAhB,EAAqB,IAAA,E,OAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAM,CAAN,E,I,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAEd,O,E,CADL,KAAM,EAAO,IAAI,A,EACZ,C,EAAM,EAAE,EAAK,EAAO,GAAG,E,A,M,EAFQ,MAAA,C,EAEpC,CAAA,EAAA,GAAA,CAAK,EAAL,IAAA,GAAA,CAAA,E,A,C,E,GAFyB,SAAA,CAAA,E,O,E,K,C,I,C,U,C,EAKrB,EAAU,EAAQ,EAAA,OAAO,EACzB,EAAW,EAAQ,EAAA,OAAO,EAE1B,EAAY,WAAM,MAAA,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,CAAA,EAAM,EAAO,SAAS,C,EAEjD,EAAc,SAAC,CAAA,CAAM,CAAA,CAAQ,CAAnC,EAWE,IAAA,EAVA,GAAI,CAAc,CAAC,EAAO,CAAE,CACtB,CAAc,CAAC,EAAO,GAAK,GAC7B,EAAK,OAAO,GAEd,MACF,CAEA,CAAc,CAAC,EAAO,CAAG,EACzB,EAAc,EAAM,GAEpB,AAAqB,OAArB,CAAA,EAAA,CAAa,CAAC,EAAO,AAAP,GAAd,AAAA,KAAA,IAAA,GAAA,EAAuB,OAAO,CAAC,SAAC,CAAA,CAAM,CAAtC,EACM,IAAM,GACR,EAAK,OAAO,EAEhB,GACA,OAAO,CAAa,CAAC,EAAO,AAC9B,EAEM,EAAiB,SAAC,CAAA,CAAM,CAA9B,EACM,CAAc,CAAC,EAAO,GAAK,GAC7B,OAAO,CAAc,CAAC,EAAO,AAEjC,EAEM,EAAoB,SAAC,CAAA,CAAQ,CAAnC,EACE,IAAI,CAAc,CAAC,EAAO,EAI1B,IAAc,EAAR,EAAA,AAA6B,OAArB,CAAA,EAAA,CAAa,CAAC,EAAO,AAAP,GAAd,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,CAAuB,CAAC,EAAS,CAE3C,IACF,OAAO,CAAa,CAAC,EAAO,CAAC,EAAS,CACtC,EAAM,OAAO,IAEjB,EAEM,EAAY,SAAA,CAAlB,EACE,IAAA,EAEA,MAFA,AAAA,CAAA,EAAA,CAAA,EAAU,IAAI,CAAd,KAAA,CAAA,EAAe,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAG,KAEpB,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EACL,EACG,MAAM,CAAC,EAAG,GACV,GAAG,CAAC,SAAA,CAHT,EAIM,OAAA,EAAK,YAAY,CAAC,IAAI,CAAC,GAAU,IAAI,CAAC,SAAA,CAAtC,EAAgD,MAAA,CAAC,KAAA,EAAM,MAAA,CAAK,C,E,GAGpE,EAEM,EAAkB,SAAC,CAAA,CAAQ,CAAjC,EACE,OAAA,MAAA,EAAA,KAAA,EAAA,EAAc,CACZ,MAAQ,uBAA0D,MAAA,CAApC,EAAO,QAAQ,CAAC,sBAA4B,MAAA,CAAR,GAClE,MAAA,EACA,OAAA,EACA,OAAA,CACF,E,EAEI,EAAgB,SAAA,CAAtB,EAAkC,IAAA,E,OAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAO,CAAA,CAAK,CAAnB,EACD,IAAA,EAAxB,EAAW,EAOhB,EADK,EAAQ,EAAO,EAAQ,EAQxB,EASJ,EAAc,EALmB,EAAA,EAAxB,EAAM,EAAS,EAoBR,EAMV,EAMF,EAaoB,EAAjB,EAAO,EAAA,EAAA,EAUV,EAiBW,EAAP,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EA1FqB,MAAA,C,EAAM,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAA,CAAK,EAAY,E,E,A,M,EAEtD,GAFO,EAAwB,AAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,KAAA,CAAA,KAAA,EAAA,CAAA,EAAA,IAAA,G,EAAxB,CAAA,CAAwB,CAAA,EAAA,CAAb,EAAa,CAAxB,CAAA,EAAA,CAEH,IAAU,GAAa,IAAU,IAI9B,EACL,AAAA,CAAA,EAAA,AAAe,UAAf,OAAO,EAAmB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,GAAO,CAAA,EADrC,MAAA,CAAQ,EACb,EADa,KAAA,CAAO,EACpB,EADoB,MAAA,CAAQ,EAC5B,EAD4B,IAC5B,CAEE,IAAW,EAAA,MAAK,EAAK,CAAc,CAAC,EAAO,EAN7C,MADF,C,E,CAWI,GAAA,CAAA,CAAA,GAAU,CAAC,GAAS,CAAC,CAAA,EAArB,MAAA,C,E,E,CACF,GAAA,AAAyB,OAArB,CAAA,EAAA,CAAa,CAAC,EAAO,AAAP,GAAd,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,CAAuB,CAAC,EAAS,CACnC,MADF,C,E,CAIiC,MAAA,C,EAAM,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAA,CACrC,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAoB,I,E,A,M,E,OAFJ,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,KAAA,CAAA,KAAA,EAAA,CAAA,EAAA,IAAA,G,EAAA,EAAxB,EAAA,AAAwB,CAAA,EAAA,AAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,AAAA,EAAxB,IAAA,CAAM,EAAA,EAAA,KAAA,CAAS,EAAS,CAAA,CAAA,EAAA,CAKjC,AAAA,CAAA,EAAA,CAAA,CAAa,CAAC,EAAA,EAAO,EAArB,CAAA,CAAa,CAAC,EAAO,CAArB,EAAA,AAAA,EACA,CAAa,CAAC,EAAO,CAAC,EAAS,CAAG,EAElC,WACE,WAAM,OAAA,EAAkB,EAAQ,EAChC,EAAA,AAA8B,GAA9B,CAAiB,CAAC,EAAS,EAG7B,EAAK,WAAW,CAAC,CACf,QAAS,WAAM,OAAA,EAAY,EAAM,EAAQ,E,EACzC,MAAO,WAAM,OAAA,EAAe,EAAM,E,CACpC,GAEA,EAAW,EAAO,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,CAAC,OAAQ,EAAA,MAAK,CAAG,MAAA,CAAK,I,C,E,G,A,M,EACtC,GAAA,CAAA,EAAA,MAAA,C,E,G,CAGT,GAAI,AAFE,CAAA,AAA+B,OAArB,CAAA,EAAA,CAAa,CAAC,EAAO,AAAP,GAAd,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,CAAuB,CAAC,EAAS,AAAT,GAEzB,AAAA,EAAA,MAAK,CAAI,EACtB,MADF,C,E,CAKA,AADM,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,CAAA,EAAO,EAAO,SAAS,CAAA,EACxC,WAAW,CAAC,CACf,QAAS,WAAM,OAAA,EAAY,EAAM,EAAQ,E,EACzC,MAAO,WAAM,OAAA,EAAe,EAAM,E,CACpC,G,E,K,C,C,M,EAKe,O,E,I,C,I,C,C,E,G,E,EAAA,C,EAAM,EAAQ,G,A,M,E,OAA3B,EAAa,EAAb,IAAA,G,C,E,E,A,M,EAGA,OAFO,EAAA,IAAA,GACP,EAAgB,EAAQ,SACxB,C,E,A,M,EAGF,GAAI,EAAK,MAAM,CACb,MADF,C,E,CAIwB,MAAA,C,EAAM,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAA,CAC5B,AAAA,CAAA,EAAA,EAAA,IAAI,AAAJ,EAAK,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAoB,IACnC,EAAK,MAAM,CAAC,G,E,A,M,EAKoB,OAP3B,EAAiB,AAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,KAAA,CAAA,KAAA,EAAA,CAAA,EAAA,IAAA,G,EAAjB,CAAA,CAAiB,CAAA,EAAA,CAAV,EAAU,CAAjB,CAAA,EAAA,C,E,CAML,E,C,E,CACQ,OAAQ,EAAA,MAAK,A,EAAW,C,EAAM,EAAS,G,A,M,E,OAFjD,EAAA,KAAA,CAAA,KAAA,EAAA,EAAA,MAAA,CAAA,CAEE,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAA,KAAA,CAAA,KAAA,EAAA,CAAwB,CAAA,EAAA,MAAA,CAAQ,EAAR,IAAA,GAAA,CAAA,E,E,G,C,E,G,A,M,GAEjB,GAAA,CAAA,EAAA,MAAA,C,E,G,A,C,E,K,C,E,M,GAIO,O,E,I,C,I,C,C,G,I,G,EAAA,C,EAAM,EAAQ,G,A,M,G,OAA5B,EAAc,EAAd,IAAA,G,C,E,G,A,M,GAGA,OAFO,EAAA,IAAA,GACP,EAAgB,EAAQ,UACxB,C,E,A,M,GAGE,GACF,EAAK,WAAW,CAAC,CACf,QAAS,WAAM,OAAA,EAAY,EAAM,EAAQ,E,EACzC,MAAO,WAAM,OAAA,EAAe,EAAM,E,CACpC,GAEA,EAAK,MAAM,CAAC,IAEN,CAAA,EAAA,AAA4B,OAArB,CAAA,EAAA,CAAa,CAAC,EAAO,AAAP,GAAd,AAAA,KAAA,IAAA,EAAA,KAAA,EAAA,CAAuB,CAAC,EAAS,AAAT,GAEzB,CAAC,EAAK,MAAM,EACtB,EAAK,MAAM,CAAC,G,E,K,C,E,M,G,M,C,E,A,C,EAIpB,GAlGyC,SAAA,CAAA,CAAO,CAAA,CAAK,CAAZ,E,O,E,K,C,I,C,U,C,EAoGzC,GAAI,CAAC,EACH,KAAM,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,+CAGd,GAAI,CAAC,GAAS,CAAC,EAAO,WAAW,CAC/B,KAAM,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,qCAGd,GAAI,CAAC,EACH,KAAM,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,4BAGd,GAAI,CAAC,EAAS,CACZ,IAAM,EAAU,EAAK,GACrB,EAAY,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAhND,GAgNiB,GAC5B,EAAe,MAAM,OAAO,CAAC,GAAW,EAAU,CAAC,EAAQ,CAC3D,EAAU,CAAA,EACV,EAAoB,YAClB,WACG,OAAA,EAAY,EAAU,MAAM,CAAC,SAAA,CAA7B,EACC,IAAM,EAAa,KAAK,GAAG,GAAK,EAAK,OAAO,CApNvC,MA0NL,OAJK,GACH,EAAK,OAAO,GAGP,CACT,EACF,EAAA,SAEJ,CAEA,IAAM,EAAoB,EAAa,GAAG,CAAC,WAAM,OAjO1B,I,GAkOjB,EAAmB,EAAE,CAErB,EAAW,EAAa,GAAG,EAAC,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAS,CAAhB,E,I,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAE9B,MAAA,C,EAAM,E,A,M,EACN,O,E,CADA,EAAA,IAAA,G,CACA,C,EAAM,E,A,M,EACN,O,E,E,M,C,CADA,EAAA,IAAA,G,EACA,C,EAAM,E,A,M,EAHR,MAAA,C,EAAA,EAAA,KAAA,CAAA,KAAA,EAAA,EAAA,MAAA,CAAA,CAGE,EAAA,IAAA,GACA,EAAc,GACd,E,G,A,C,E,GANqC,SAAA,CAAA,CAAS,CAAT,E,O,E,K,C,I,C,U,IAUzC,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,CAAC,EAAY,EAAW,EAAE,IAAI,CAAC,SAAP,CAAA,EAAS,IACb,EAaL,EAdkB,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,CAAW,EAAX,CAAA,CAAA,EAAA,CAC7B,GAAgB,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAQ,CAAf,EACd,IAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAAK,MAAA,C,EAAM,EAAS,EAAQ,EAAW,G,A,M,E,MAE3B,UAAd,MAFE,CAAA,EAAK,EAAL,IAAA,EAAA,GAGJ,CAAA,CAAiB,CAAC,EAAE,CAAG,CADzB,EAIA,CAAgB,CAAC,EAAE,CAAG,WACpB,WAAM,OAAA,EAAc,EAAQ,EAC5B,EAAA,CAAiB,CAAC,EAAE,E,C,E,A,C,EAExB,GAXM,SAAuB,CAAA,CAAQ,CAA/B,E,O,E,K,C,I,C,U,GAaN,EAAS,OAAO,EAAC,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAQ,CAAf,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EACf,MAAA,C,EAAM,E,A,M,EACQ,OADd,EAAA,IAAA,GACc,C,EAAM,CAAY,CAAC,EAAE,C,A,M,E,OAAnC,EAAA,KAAA,CAAA,KAAA,EAAA,CAAc,EAAA,IAAA,GAAuB,E,E,C,E,A,C,EACvC,GAHwB,SAAA,CAAA,CAAQ,CAAR,E,O,E,K,C,I,C,U,GAI1B,GAEA,IAAI,EAAgB,EAAA,IAAI,CAIxB,OAFA,AAAA,CAAa,CAAC,EAAM,EAApB,CAAA,AAAA,CAAa,CAAC,EAAM,CAAK,CAAC,CAAA,EAElB,CAAa,CAAC,EAAM,CAAC,EAAO,CAAG,AAAA,CAAA,EAAA,EAAA,OAAG,AAAH,EACrC,SAAA,CADF,EACQ,OAAA,EAAgB,CACtB,EAAA,SAAA,CAAA,EAAM,OAAA,OAAO,CAAc,CAAC,EAAG,AAC/B,EAAA,WAGmB,IAAA,CAFjB,QAAO,CAAa,CAAC,EAAM,CAAC,EAAO,CACnC,EAAiB,OAAO,CAAC,cACzB,EAAS,OAAO,EAAC,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAM,CAAN,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAAY,MAAA,C,EAAM,E,A,M,EAAP,MAAA,C,EAAC,EAAA,IAAA,K,A,C,E,GAAN,SAAA,CAAA,E,O,E,K,C,I,C,U,IACvB,cAAc,EAChB,EAEJ,CACF,C,E,C,qC,Q,kC,Q,sC,Q,+B,Q,c,Q,Y,Q,Y,Q,a,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,ICpRoB,EAiBE,EAeC,EAgBA,E,E,E,kD,E,iB,C,G,E,M,C,E,O,WAhDV,OAAA,C,G,E,M,C,E,S,WAiBA,OAAA,C,G,E,M,C,E,U,WAeA,OAAA,C,G,E,M,C,E,U,WAgBA,OAAA,C,G,I,E,E,sC,E,E,mC,E,E,gCA7Db,EAAA,EAAA,cAEM,EAAO,UACP,EAAY,CAAC,EAEb,EAAO,SAAA,CAAb,EAAqB,OAAA,KAAK,OAAO,YAAY,CAAC,KAAK,CAAC,KAAM,IAAI,WAAW,I,EAEnE,EAAS,SAAA,CAAf,EACE,IAAM,EAAM,KAAK,GAEjB,OAAO,IAAI,WAAW,EAAI,MAAM,EAAE,GAAG,CAAC,SAAC,CAAA,CAAG,CAA1C,EAAgD,OAAA,EAAI,UAAU,CAAC,EAAI,GAAA,MAAM,AAC3E,EAEa,GAAO,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAM,CAAN,EAKZ,IAAA,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAJN,GAAI,CAAS,CAAC,EAAI,CAChB,MADF,C,EACS,CAAS,CAAC,EAAI,C,CAIN,OADJ,EAAA,MAAM,IAAI,CACjB,EAAA,WAAA,IAAA,CAAW,C,EAAM,OAAO,MAAM,CAAC,MAAM,CAAC,QAAS,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,I,A,M,EAQjE,OATM,EAAO,EAAA,KAAA,CAAA,MAAP,CACJ,GAAA,CAAA,EAAA,KAAA,CAAI,WAAJ,C,K,EAAe,EAAA,IAAA,GAAqD,CAAA,EAEnE,EAAA,GAAG,CAAC,SAAA,CAAJ,EAAS,OAAA,EAAE,QAAQ,CAAC,GACpB,GAAA,IAAI,CAAC,IAGR,CAAS,CAAC,EAAI,CAAG,EAEjB,C,EAAO,E,A,C,EACT,GAfa,SAAa,CAAb,E,O,E,K,C,I,C,U,GAiBA,GAAS,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAQ,CAAA,CAAO,CAAtB,E,I,E,E,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAGlB,OAFF,EAAA,AAAA,CAAA,EAAA,OAAO,MAAM,AAAN,EAAO,SAAS,C,E,CACrB,M,CACA,C,EAAM,OAAO,MAAM,CAAC,MAAM,CACxB,CAAC,KAAM,SAAS,EAChB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,GAAa,MAAA,CAAV,EAAO,KAAY,MAAA,CAAT,EAAM,KAAU,MAAA,CAAP,K,A,M,EAJtC,MAAA,C,EAAA,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEE,EAAA,IAAA,GAIA,CAAC,KAAM,CAAI,EACX,CAAA,E,CACC,UAAW,U,C,G,A,C,E,GATH,SAAgB,CAAA,CAAQ,CAAA,CAAO,CAA/B,E,O,E,K,C,I,C,U,GAeA,GAAU,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAM,CAAb,EACf,IAAA,EAAA,EAAA,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAQA,OALJ,EAAA,AAHI,CAAA,EAAK,OAAO,eAAe,CAAC,IAAI,WAAW,IAA3C,EAGD,IAAI,CANQ,KADF,IAUL,EAAA,AAAA,CAAA,EAAA,OAAO,MAAM,AAAN,EAAO,OAAO,C,E,CACzB,CAAC,KAAM,EAAM,GAAA,CAAE,E,CACf,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,G,G,A,M,EAPlB,MAAA,C,EACE,EAEA,EAAA,KAFA,CAAA,KAAA,EAAA,CAGE,EAAA,IAAA,G,E,A,C,EAON,GAda,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,GAgBA,GAAU,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAM,CAAb,EACL,IAAA,EAAT,EAAI,EAAK,EAAA,EAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EAKZ,OALG,EAAS,AAAA,CAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAI,KAAK,CApBV,KAoBW,EAAA,CAAV,CAAA,EAAA,CAAL,EAAK,CAAA,CAAA,EAAA,CAGR,EAAA,AAAA,CAAA,EAAA,OAAO,MAAM,AAAN,EAAO,OAAO,C,E,CACzB,CAAC,KAAM,EAAM,GAAI,IAAI,WAAW,EAAG,KAAK,CAvB3B,KAuBwC,E,CACrD,C,EAAM,E,A,M,EAFR,MAAA,C,EAAM,EAAA,KAAA,CAAA,EAAA,EAAA,MAAA,CAAA,CAEJ,EAAA,IAAA,GACA,EAAO,G,G,A,M,EAJX,MAAA,C,EAAO,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAA,KAAA,CAAA,KAAA,EAAA,CACL,EAAA,IAAA,G,E,A,C,EAMJ,GAVa,SAAiB,CAAA,CAAM,CAAvB,E,O,E,K,C,I,C,U,E,E,C,qC,Q,kC,Q,+B,Q,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,U,WC7DA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,Q,WAIA,OAAA,C,G,E,M,C,E,S,WAGA,OAAA,C,G,E,M,C,E,M,WAEA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,U,WAEC,OAAA,C,G,E,M,C,E,c,WAAS,OAAA,C,G,E,M,C,E,O,WAAa,OAAA,C,G,E,M,C,E,O,WAEvB,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,c,WAKA,OAAA,C,G,E,M,C,E,c,WAEA,OAAA,C,G,E,M,C,E,Q,WAEA,OAAA,C,G,E,M,C,E,Y,WAGA,OAAA,C,G,E,M,C,E,Y,WAEA,OAAA,C,G,E,M,C,E,S,WAQA,OAAA,C,G,E,M,C,E,W,WAEA,OAAA,C,G,E,M,C,E,a,WAKA,OAAA,C,G,E,M,C,E,e,WAkCA,OAAA,C,G,I,E,E,mCAlFA,EAAU,WAEV,EAAQ,SAAC,CAAA,CAAG,CAAlB,EAAwB,OAAA,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,E,EAE7C,EAAU,iEAEH,EAAQ,SAAA,CAAd,EACL,OAAA,EAAM,EAAG,WAAM,OAAA,CAAO,CAAC,KAAK,KAAK,CAAC,KAAK,MAAM,GAAK,EAAQ,MAAM,EAAE,AAAE,GAAA,IAAI,CAAC,G,EAE9D,EAAS,EAAM,IAEf,EAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAEvB,EAAY,AAAkB,aAAlB,OAAO,OAElB,EAA8B,OAA9B,OAAA,CAAS,EAAqB,OAArB,WAAA,CAAa,EAAQ,OAAR,IAA7B,CAEM,EAAO,WAAO,EAEd,EAAQ,SAAA,CAAd,EAAqB,OAAA,AAAI,MAAM,GAAe,MAAA,CAAZ,EAAQ,MAAQ,MAAA,CAAJ,G,EAE/C,EAAU,IAAI,YACd,EAAU,IAAI,YAEP,EAAc,SAAA,CAApB,EAA2B,OAAA,EAAQ,MAAM,CAAC,E,EAEpC,EAAc,SAAA,CAApB,EAA8B,OAAA,EAAQ,MAAM,CAAC,E,EAEvC,EAAQ,SAAA,CAAd,EACL,OAAA,EAAO,MAAM,CAAC,SAAC,CAAA,CAAG,CAAlB,EAAwB,OAAA,EAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,EAAG,IAAM,EAAA,G,EAElD,EAAY,WAAI,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAU,OAAA,EAAM,IAAI,CAAC,I,EAErC,EAAY,SAAC,CAAA,CAAQ,CAAA,CAAU,CAArC,EACL,MAAC,AAAA,CAAA,EAAO,SAAS,EAAI,CAAA,EAAU,KAAK,CAClC,EACA,EAAO,SAAS,CACZ,EAAO,SAAS,CAAC,MAAM,CACvB,EAAO,eAAe,EAAI,E,EAGrB,EAAS,KAAK,SAAS,CAEvB,EAAW,KAAK,KAAK,CAG5B,EAAqB,CAAC,EAEf,EAAa,SAAC,CAAA,CAAK,CAAzB,EACL,IAAM,EAAS,CAAC,EAEV,EAAO,WACX,IAAM,EAAS,IAAI,UAAU,EAE7B,CAAA,EAAO,OAAO,CAAG,e,CACf,AAAuB,QAAvB,CAAA,EAAA,AAAA,CAAkB,CAAC,EAAI,AAAJ,GAAI,AAAA,KAAA,IAAA,GAAvB,CAAA,AAAA,CAAkB,CAAC,EAAI,CAVN,IAUjB,EACA,WAAW,EAAM,CAAkB,CAAC,EAAI,EACxC,CAAkB,CAAC,EAAI,EAAI,CAC7B,EAEA,EAAO,SAAS,CAAG,SAAA,CAAnB,EAAwB,OAAA,EAAU,EAAE,IAAI,C,EACxC,EAAO,MAAM,CAAG,EAChB,EAAO,GAAG,CAAG,EAAO,GAAG,CACvB,EAAO,KAAK,CAAG,IAAI,QACjB,SAAA,CADF,EAEK,OAAA,EAAO,MAAM,CAAG,WACf,EAAI,GACJ,CAAkB,CAAC,EAAI,CAtBV,IAuBf,C,GAEJ,EAAO,IAAI,CAAG,SAAA,CAAd,EAC4B,IAAtB,EAAO,UAAU,EACnB,EAAO,IAAI,CAAC,EAEhB,CACF,EAIA,OAFA,IAEO,CACT,EAEa,EAAe,SAAA,CAArB,EAAkC,OAAA,WACvC,OAAA,EAAY,EAAQ,GAAW,GAAG,CAAC,SAAnC,CAAA,EAAqC,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAiB,MAAA,CAAjB,CAAA,CAAA,EAAA,CAAuB,AAAvB,CAAA,CAAA,EAAA,CAA8B,MAAM,CAAC,A,G,C,C,E,C,kC,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WCX/D,OAAA,C,G,I,E,E,iC,E,E,uC,E,E,mC,E,E,uCAxEb,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,cAEM,EAAY,OACZ,EAAc,QAEL,CAAA,EAAA,OAAA,CAAA,SAAC,CAAA,CAAW,CAAZ,EACb,IAAM,EAAO,IAAI,EAAA,OAAG,CAAE,AAAtB,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACM,WAAY,CAAC,CAAC,KAAM,CAAiB,EAAE,AACxC,EAAA,GAAA,CACH,UAAA,EACA,QAAS,CAAA,C,IAEL,EAAS,SAAA,CAAf,EAAoB,OAAA,EAAgB,IAAI,CAAC,E,EAErC,EAAkB,EAAE,CAIxB,OAFA,EAAK,EAAE,CAAC,EAAW,GAEZ,CACL,GAAI,EAAK,GAAG,CAEZ,QAAS,KAAK,GAAG,GAEjB,WAAY,EAAK,GAAG,CAEpB,IAAI,SAAU,CACZ,OAAO,EAAK,QAAQ,AACtB,EAEA,IAAI,QAAS,CACX,OAAO,EAAK,SAAS,AACvB,EAEA,OAAQ,SAAA,CAAR,EACE,OAAA,IAAI,QAAQ,SAAA,CAAZ,EACO,GACH,EAAK,EAAE,CAAC,EAAa,GAEvB,EAAK,MAAM,CAAC,EACd,E,EAEF,SAAU,SAAA,CAAV,EAAkB,OAAA,EAAK,IAAI,CAAC,E,EAE5B,QAAS,WAAM,OAAA,EAAK,OAAO,E,EAE3B,YAAa,SAAA,CAAb,EACE,OAAA,OAAO,OAAO,CAAC,GAAU,OAAO,CAAC,SAAjC,CAAA,EAAmC,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,CAAO,EAAP,CAAA,CAAA,EAAA,CAAe,OAAA,EAAK,EAAE,CAAC,EAAO,E,E,EAEnE,aAAc,EACV,IAAI,QAAQ,SAAA,CADhB,EACuB,OAAA,EAAK,EAAE,CAAC,EAAa,EACxC,GAAA,QAAQ,OAAO,GAEnB,UAAW,SAAA,CAAX,EAAqB,OAAA,EAAK,SAAS,CAAC,E,EAEpC,aAAc,SAAA,CAAd,EAAwB,OAAA,EAAK,YAAY,CAAC,E,EAE1C,SAAU,SAAC,CAAA,CAAO,CAAlB,EAA6B,OAAA,EAAK,QAAQ,CAAC,EAAO,E,EAElD,YAAa,SAAC,CAAA,CAAO,CAArB,EAAgC,OAAA,EAAK,WAAW,CAAC,EAAO,E,EAExD,aAAc,SAAC,CAAA,CAAU,CAAA,CAAU,CAAnC,EACE,OAAA,EAAK,YAAY,CAAC,EAAU,EAAU,E,EAExC,eAAgB,SAAA,CAAhB,EACE,EAAK,GAAG,CAAC,EAAW,GACpB,EAAgB,OAAO,CAAC,GACxB,EAAkB,IACpB,CACF,CACF,EAEO,IAAM,EACX,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAG,SAAC,CAAA,CAAG,CADX,EACiB,MAAC,YAAmB,MAAA,CAAR,GAAK,GAAG,sBADX,IAAA,MAAA,CAAA,CAE/B,mCACD,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,0B,Q,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC3ED,kFAAkF,EAAlF,IAAA,EAAA,EAAA,kD,E,iB,C,G,I,E,E,oC,E,E,gC,E,E,4B,E,E,+C,E,E,gCACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GAOM,EAAA,WAAA,EAAN,SADC,CAAA,EACK,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,IACS,I,EAAA,EAAA,UAAA,MAAA,CAAA,GAAA,AAAA,KAAA,IAAA,SAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAO,CAAC,QAEnB,CAHE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAGG,AADC,CAAA,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,EAAA,EACI,GAAG,GAEb,EAAK,OAAO,CAAG,EAAK,OAAO,EAAK,CAAA,EAAK,MAAM,CAAG,CAAC,EAAK,MAAM,CAAC,CAAG,EAAE,AAAF,EAC9D,EAAK,UAAU,CAAG,IAAI,IAElB,EAAK,OAAO,EACd,EAAK,OAAO,CAAC,OAAO,CAAC,SAAA,CADvB,EAEI,EAAK,SAAS,CAAC,EACjB,GAEF,EAAK,GAAG,CAAC,OAAO,CAAG,SAAA,CAAnB,EACE,EAAK,QAAQ,CAAC,EAChB,E,GAZA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,E,CAHE,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAuBJ,IAAA,iBAAA,MAAA,SAAgB,CAAI,CAAE,CAAI,EACxB,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,iDAAkD,iBAG9F,GAFA,IAAI,CAAC,MAAM,CAAC,oBAER,IAAI,CAAC,SAAS,CAChB,GAAI,CACF,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAM,GAC9B,IAAI,CAAC,iBAAiB,EACxB,CAAE,MAAO,EAAK,CACZ,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,uBAC9B,MAEA,IAAI,CAAC,IAAI,CAAC,SAAU,CAClB,KAAM,qBACN,mBAAoB,CAAE,KAAA,EAAM,KAAA,CAAK,CACnC,GAEJ,C,E,CAMA,IAAA,YAAA,MAAA,SAAW,CAAM,E,I,E,I,CACf,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,4CAA6C,iBACzF,IAAI,CAAC,MAAM,CAAC,eAEZ,EAAO,SAAS,GAAG,OAAO,CAAC,SAAA,CAA3B,EACE,EAAK,QAAQ,CAAC,EAAO,EACvB,GACF,C,E,CAOA,IAAA,WAAA,MAAA,SAAU,CAAK,CAAE,CAAM,EACrB,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,2CAA4C,iBACxF,IAAI,CAAC,MAAM,CAAC,cAEZ,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAU,IAAI,IAC7C,EAAS,EAAO,GAAG,CAAC,GACxB,GAAK,GAKE,GAAI,EAAO,OAAO,CACvB,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,qFAAsF,qBAE9G,MAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,gDAAiD,4BAPzE,EAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAO,GAClC,EAAO,GAAG,CAAC,EAAQ,GACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAO,GAC3B,IAAI,CAAC,iBAAiB,GAM1B,C,E,CAQA,IAAA,eAAA,MAAA,SAAc,CAAQ,CAAE,CAAQ,CAAE,CAAM,EACtC,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,+CAAgD,iBAC5F,IAAI,CAAC,MAAM,CAAC,kBAEZ,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAC7B,EAAS,EAAS,EAAO,GAAG,CAAC,GAAU,KAC7C,GAAI,CAAC,EACH,KAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,8CAA+C,uBAErE,GAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAU,GAExC,AAAuB,MAAvB,EAAO,YAAY,CACrB,EAAO,YAAY,CAAC,GAEpB,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,iDAAkD,iCAEvF,C,E,CAOA,IAAA,cAAA,MAAA,SAAa,CAAK,CAAE,CAAM,EACxB,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,8CAA+C,iBAC3F,IAAI,CAAC,MAAM,CAAC,kBAEZ,IAAM,EAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAC7B,EAAS,EAAS,EAAO,GAAG,CAAC,GAAU,KAC7C,GAAI,CAAC,EACH,KAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,6CAA8C,uBAExE,GAAI,CACF,EAAO,OAAO,CAAG,CAAA,EACjB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EACvB,CAAE,MAAO,EAAK,CACR,AAAa,wBAAb,EAAI,IAAI,CACV,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAEjC,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,oBAEhC,CACA,IAAI,CAAC,iBAAiB,GACxB,C,E,CAMA,IAAA,eAAA,MAAA,SAAc,CAAM,E,I,E,I,CAClB,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,+CAAgD,iBAC5F,IAAI,CAAC,MAAM,CAAC,mBAEZ,EAAO,SAAS,GAAG,OAAO,CAAC,SAAA,CAA3B,EACE,EAAK,WAAW,CAAC,EAAO,EAC1B,GACF,C,E,CAEA,IAAA,8BAAA,MAAA,W,I,E,I,AACM,CAAA,IAAI,CAAC,GAAG,CAAC,eAAe,EAC1B,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,SAAA,CADrC,EAES,EAAY,GAAG,GAAI,EAAY,MAAM,CAAC,KAAK,EAAK,EAAY,SAAS,GACxE,EAAY,SAAS,CAAG,CAAA,EACxB,EAAK,cAAc,CAAC,EAAY,MAAM,CAAC,KAAK,CAAC,IAAI,EAErD,EAEJ,C,E,CAEA,IAAA,WAAA,MAAA,SAAU,CAAK,E,I,E,I,AACT,CAAA,IAAI,CAAC,SAAS,EAElB,EAAM,OAAO,CAAC,OAAO,CAAC,SAAA,CAAtB,EACE,EAAK,MAAM,CAAC,YACZ,EAAK,IAAI,CAAC,QAAS,EAAM,KAAK,CAAE,GAEhC,EAAK,aAAa,CAAC,IAAI,CAAC,CACtB,MAAO,EAAM,KAAK,CAClB,OAAQ,CACV,GAEI,EAAK,cAAc,CAAC,IAAI,CAAC,SAAA,CAA7B,EACE,OAAO,EAAa,EAAE,GAAK,EAAY,EAAE,AAC3C,KAEA,EAAK,cAAc,CAAC,IAAI,CAAC,GACzB,eAAe,WACb,EAAK,MAAM,CAAC,aACZ,EAAK,IAAI,CAAC,SAAU,EACtB,GACF,EACF,C,E,EArLI,CAAa,EAAA,EAAA,OAAG,CAwLP,CAAA,EAAA,OAAA,CAAA,C,E,C,mC,Q,+B,Q,2B,Q,8C,Q,+B,Q,Y,Q,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,ECjMf,kFAAkF,EAAlF,IAAA,EAAA,EAAA,kD,E,iB,C,G,I,E,E,2C,E,E,oC,E,E,gC,E,E,mC,E,E,4B,E,E,+C,E,E,gCACA,EAAA,EAAA,S,E,E,c,C,GACA,EAAA,EAAA,mBACA,EAAA,EAAA,WACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,cAEM,EAAQ,AAAA,CAAA,EAAA,EAAA,OAAI,AAAJ,EAAM,eAOpB,SAAS,EAAe,CAAG,EACzB,OAAO,EAAI,OAAO,CAAC,6BAA8B,GACnD,CAWA,IAAM,EAAA,WAAA,EAAN,SADC,CAAA,EACK,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,GAAA,IAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,SAAA,EAGS,CAAI,M,EAqCf,GAxCE,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,IAAA,CAAA,GAIF,EAAO,OAAO,MAAM,CAAC,CACnB,cAAe,CAAA,CACjB,EAAG,GAEG,EAAA,EAAA,IAAA,CAAA,IAAA,CAAA,GANR,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,GAAA,MAAA,KAAA,GAQE,EAAK,YAAY,CAAG,CAAC,CAAC,EAAK,UAAU,CAErC,EAAK,GAAG,CAAG,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,IAAI,KAAK,CAAC,EAAG,GAC5C,EAAK,MAAM,CAAC,cAAe,GAE3B,EAAK,WAAW,CAAG,EAAK,SAAS,CAC7B,EAAK,WAAW,EAAI,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,KACxC,KAEJ,EAAK,SAAS,CAAG,EAAK,SAAS,EAAI,CAAA,EACnC,EAAK,aAAa,CAAG,EAAK,aAAa,EApBrC,EAoB8C,aAAa,CAC7D,EAAK,iBAAiB,CAAG,EAAK,aAAa,CAAC,UAAU,CACtD,EAAK,MAAM,CAAG,OAAO,MAAM,CAAC,CAAC,EAtB3B,EAsBmC,MAAM,CAAE,EAAK,MAAM,EACxD,EAAK,YAAY,CAAG,EAAK,YAAY,EAAI,CAAC,EAC1C,EAAK,aAAa,CAAG,EAAK,aAAa,EAAI,CAAC,EAC5C,EAAK,YAAY,CAAG,EAAK,YAAY,EAAK,SAAA,CAA1C,EAAiD,OAAA,C,EACjD,EAAK,OAAO,CAAG,AAAiB,KAAA,IAAjB,EAAK,OAAO,EAAiB,EAAK,OAAO,CACxD,EAAK,gBAAgB,CAAG,AAA0B,KAAA,IAA1B,EAAK,gBAAgB,EAAiB,EAAK,gBAAgB,CACnF,EAAK,kBAAkB,CAAG,EAAK,kBAAkB,EA7CzB,IA+CxB,EAAK,WAAW,CAAG,CAAA,EACnB,EAAK,UAAU,CAAG,CAAA,EAElB,EAAK,aAAa,CAAG,KAAA,EACrB,EAAK,YAAY,CAAG,KAAA,EACpB,EAAK,UAAU,CAAG,KAAA,EAClB,EAAK,YAAY,CAAG,KAAA,EACpB,EAAK,WAAW,CAAG,KAAA,EACnB,EAAK,SAAS,CAAG,KAAA,EAEb,CAAC,EAAA,iBAAgB,CAAG,CACtB,GAAI,AAAkB,aAAlB,OAAO,OACT,KAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,qEAAsE,qBAE9F,MAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,8CAA+C,qBAE3E,CAEA,EAAK,QAAQ,CAAG,CAAA,EAChB,EAAK,aAAa,CAAG,CAAA,EACrB,EAAK,YAAY,CAAG,CAAA,EACpB,EAAK,iBAAiB,CAAG,KACzB,EAAK,QAAQ,CAAG,KAChB,EAAK,kBAAkB,CAAG,EAAE,CAE5B,EAAK,cAAc,CAAG,CAAA,EACtB,EAAK,iBAAiB,CAAG,CAAA,EACzB,EAAK,mBAAmB,CAAG,CAAA,EAC3B,EAAK,kBAAkB,CAAG,CAAA,EAC1B,EAAK,sBAAsB,CAAG,EAAE,CAChC,EAAK,gBAAgB,CAAG,KAExB,EAAK,aAAa,CAAG,EAAE,CACvB,EAAK,cAAc,CAAG,EAAE,CAExB,EAAK,MAAM,CAAG,KACd,EAAK,GAAG,CAAG,KACX,EAAK,SAAS,CAAG,KAEjB,GAAI,CACF,EAAK,GAAG,CAAG,IAAI,EAAA,iBAAgB,CAAE,EAAK,MAAM,CAC9C,CAAE,MAAO,EAAK,CAEZ,OADA,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,uBAC5B,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EACF,C,OAIA,EAAK,oBAAoB,CAAG,AAAsC,UAAtC,OAAO,EAAK,GAAG,CAAC,iBAAiB,CAE7D,EAAK,GAAG,CAAC,0BAA0B,CAAG,WACpC,EAAK,iBAAiB,EACxB,EACA,EAAK,GAAG,CAAC,yBAAyB,CAAG,WACnC,EAAK,iBAAiB,EACxB,EACA,EAAK,GAAG,CAAC,uBAAuB,CAAG,WACjC,EAAK,wBAAwB,EAC/B,EACA,EAAK,GAAG,CAAC,sBAAsB,CAAG,WAChC,EAAK,uBAAuB,EAC9B,EACA,EAAK,GAAG,CAAC,cAAc,CAAG,SAAA,CAA1B,EACE,EAAK,eAAe,CAAC,EACvB,EAGqC,UAAjC,OAAO,EAAK,GAAG,CAAC,YAAY,EAC9B,EAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,SAAA,CAD9B,EAEI,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,wBAC9B,GASE,EAAK,SAAS,EAAI,EAAK,iBAAiB,CAC1C,EAAK,UAAU,CAAC,CACd,QAAS,EAAK,GAAG,CAAC,iBAAiB,CAAC,EAAK,WAAW,CAAE,EAAK,aAAa,CAC1E,GAEA,EAAK,GAAG,CAAC,aAAa,CAAG,SAAA,CAAzB,EACE,EAAK,UAAU,CAAC,EAClB,EAGF,EAAK,MAAM,CAAC,uBACZ,EAAK,iBAAiB,GAEtB,EAAK,cAAc,CAAG,WACpB,EAAK,SAAS,EAChB,EACA,EAAK,IAAI,CAAC,SAAU,EAAK,cAAc,E,C,CA7HrC,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,EAAA,C,CAgIA,IAAA,aAAJ,IAAA,WACE,OAAO,IAAK,CAAC,QAAQ,EAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAK,CAC5D,C,E,CAII,IAAA,YAAJ,IAAA,WACE,OAAQ,IAAI,CAAC,UAAU,EAAI,AAA6B,SAA7B,IAAI,CAAC,QAAQ,CAAC,UAAU,AACrD,C,E,CAEA,IAAA,UAAA,MAAA,WACE,MAAO,CAAE,KAAM,IAAI,CAAC,SAAS,CAAE,OAAQ,IAAI,CAAC,WAAW,CAAE,QAAS,IAAI,CAAC,YAAY,AAAC,CACtF,C,E,CAEA,IAAA,SAAA,MAAA,SAAQ,CAAI,E,I,E,I,CACV,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,yCAA0C,iBACtF,GAAI,AAAgB,UAAhB,OAAO,EACT,GAAI,CACF,EAAO,KAAK,KAAK,CAAC,EACpB,CAAE,MAAO,EAAK,CACZ,EAAO,CAAC,CACV,CAEF,IAAI,CAAC,MAAM,CAAC,YAER,EAAK,WAAW,EAAI,IAAI,CAAC,SAAS,GACpC,IAAI,CAAC,MAAM,CAAC,8BACZ,IAAI,CAAC,iBAAiB,IAEpB,EAAK,kBAAkB,EAAI,IAAI,CAAC,SAAS,GAC3C,IAAI,CAAC,MAAM,CAAC,+BACZ,IAAI,CAAC,cAAc,CAAC,EAAK,kBAAkB,CAAC,IAAI,CAAE,EAAK,kBAAkB,CAAC,IAAI,GAE5E,EAAK,SAAS,GACZ,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAC/D,IAAI,CAAC,gBAAgB,CAAC,EAAK,SAAS,EAEpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAK,SAAS,GAG3C,EAAK,GAAG,EACV,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAA,qBAAoB,CAAE,IACrD,IAAI,CAAC,WACA,EAAK,SAAS,GAElB,EAAK,kBAAkB,CAAC,OAAO,CAAC,SAAA,CAAhC,EACE,EAAK,gBAAgB,CAAC,EACxB,GACA,EAAK,kBAAkB,CAAG,EAAE,CAEY,UAApC,EAAK,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAc,EAAK,aAAa,GACrE,GACC,KAAK,CAAC,SAAA,CADP,EAEE,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,8BAC9B,GAEC,EAAK,GAAG,EAAK,EAAK,SAAS,EAAK,EAAK,WAAW,EAAK,EAAK,kBAAkB,EAC/E,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,4CAA6C,kBAElF,C,E,CAEA,IAAA,mBAAA,MAAA,SAAkB,CAAS,E,I,E,I,CACnB,EAAkB,IAAI,EAAA,eAAc,CAAE,GAC5C,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GACtB,KAAK,CAAC,SAAA,CADT,EAEQ,CAAC,EAAgB,OAAO,EAAI,EAAgB,OAAO,CAAC,QAAQ,CAAC,UA1MvE,QAAQ,IAAI,CA2MC,uCAEL,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,yBAEhC,EACJ,C,E,CAMA,IAAA,OAAA,MAAA,SAAM,CAAK,EACT,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,uCAAwC,iBACpF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GACrB,C,E,CAEA,IAAA,oBAAA,MAAA,W,I,E,I,CACE,IAAI,CAAC,MAAM,CAAC,qBACR,IAAI,CAAC,mBAAmB,GAC5B,IAAI,CAAC,mBAAmB,CAAG,CAAA,EAC3B,eAAe,WACb,EAAK,mBAAmB,CAAG,CAAA,EACvB,EAAK,SAAS,EAAI,CAAC,EAAK,iBAAiB,EAC3C,EAAK,MAAM,CAAC,gCACZ,EAAK,SAAS,IAEd,EAAK,MAAM,CAAC,uDAEd,EAAK,iBAAiB,CAAG,CAAA,CAC3B,GACF,C,E,CAEA,IAAA,YAAA,MAAA,W,I,E,I,CACE,IAAI,IAAI,CAAC,WAAW,EACpB,GAAI,IAAI,CAAC,SAAS,CAAE,KAAM,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,4CAA6C,gBAErF,CAAA,IAAI,CAAC,SAAS,CACZ,IAAI,CAAC,cAAc,EACrB,IAAI,CAAC,kBAAkB,CAAG,CAAA,EAC1B,IAAI,CAAC,MAAM,CAAC,mCAEZ,IAAI,CAAC,MAAM,CAAC,qBACZ,WAAW,WACT,EAAK,YAAY,EACnB,EAAG,IAGD,IAAI,CAAC,cAAc,EACrB,IAAI,CAAC,kBAAkB,CAAG,CAAA,EAC1B,IAAI,CAAC,MAAM,CAAC,mCAEZ,IAAI,CAAC,MAAM,CAAC,yCACZ,IAAI,CAAC,IAAI,CAAC,SAAU,CAClB,KAAM,cACN,YAAa,CAAA,CACf,IAGJ,IAAI,CAAC,cAAc,CAAG,CAAA,EACxB,C,E,CAEA,IAAA,SAAA,MAAA,SAAQ,CAAE,EACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAC1C,EAAG,KACL,C,E,CAEA,IAAA,YAAA,MAAA,SAAW,CAAG,EACZ,IAAI,CAAC,GAAG,GACR,IAAI,CAAC,QAAQ,CAAC,WAAO,EAAG,EAC1B,C,E,CAEA,IAAA,WAAA,MAAA,SAAU,CAAE,CAAE,CAAG,E,I,E,I,AACX,CAAA,IAAI,CAAC,SAAS,EAAI,IAAI,CAAC,WAAW,GACtC,IAAI,CAAC,WAAW,CAAG,CAAA,EAEnB,IAAI,CAAC,MAAM,CAAC,yBAA0B,GAAQ,CAAA,EAAI,OAAO,EAAI,CAAA,GAE7D,WAAW,WAmBT,GAlBA,EAAK,UAAU,CAAG,CAAA,EAClB,EAAK,QAAQ,CAAG,CAAA,EAChB,EAAK,aAAa,CAAG,CAAA,EACrB,EAAK,aAAa,CAAG,KACrB,EAAK,cAAc,CAAG,KACtB,EAAK,UAAU,CAAG,KAElB,cAAc,EAAK,gBAAgB,EACnC,EAAK,gBAAgB,CAAG,KAExB,cAAc,EAAK,SAAS,EAC5B,EAAK,SAAS,CAAG,KACjB,EAAK,MAAM,CAAG,KACd,EAAK,GAAG,CAAG,KAEP,EAAK,cAAc,EAAE,EAAK,cAAc,CAAC,SAAU,EAAK,cAAc,EAC1E,EAAK,cAAc,CAAG,KAElB,EAAK,QAAQ,CAAE,CACjB,GAAI,CACF,EAAK,QAAQ,CAAC,KAAK,EACrB,CAAE,MAAO,EAAK,CAAC,CAGf,EAAK,QAAQ,CAAC,SAAS,CAAG,KAC1B,EAAK,QAAQ,CAAC,MAAM,CAAG,KACvB,EAAK,QAAQ,CAAC,OAAO,CAAG,KACxB,EAAK,QAAQ,CAAC,OAAO,CAAG,IAC1B,CACA,GAAI,EAAK,GAAG,CAAE,CACZ,GAAI,CACF,EAAK,GAAG,CAAC,KAAK,EAChB,CAAE,MAAO,EAAK,CAAC,CAGf,EAAK,GAAG,CAAC,0BAA0B,CAAG,KACtC,EAAK,GAAG,CAAC,yBAAyB,CAAG,KACrC,EAAK,GAAG,CAAC,sBAAsB,CAAG,KAClC,EAAK,GAAG,CAAC,cAAc,CAAG,KAC1B,EAAK,GAAG,CAAC,OAAO,CAAG,KACnB,EAAK,GAAG,CAAC,aAAa,CAAG,IAC3B,CACA,EAAK,GAAG,CAAG,KACX,EAAK,QAAQ,CAAG,KACZ,GAAK,EAAK,IAAI,CAAC,QAAS,GAC5B,GACF,EAAG,GACL,C,E,CAEA,IAAA,aAAA,MAAA,SAAY,CAAK,E,I,E,I,CACf,GAAI,CAAC,EAAM,OAAO,CAIhB,OAAO,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,oDAAqD,oBAG/F,CAAA,IAAI,CAAC,QAAQ,CAAG,EAAM,OAAO,CAC7B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAG,cAE6B,UAApD,OAAO,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EACjD,CAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAjWlB,KAgWxB,EAIA,IAAI,CAAC,WAAW,CAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAEtC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAG,SAAA,CAA1B,EACE,EAAK,iBAAiB,CAAC,EACzB,EACA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAG,WAClC,EAAK,2BAA2B,EAClC,EACA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAG,WACrB,EAAK,cAAc,EACrB,EACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAG,WACtB,EAAK,eAAe,EACtB,EACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAG,SAAA,CAAxB,EACE,IAAM,EAAM,EAAM,KAAK,YAAY,MAC/B,EAAM,KAAK,CACX,AAAI,MAAO,sBAAsC,MAAA,CAAjB,EAAM,OAAO,CAAC,KAAqB,MAAA,CAAlB,EAAM,QAAQ,CAAC,KAAmB,MAAA,CAAhB,EAAM,MAAM,CAAC,KAAe,MAAA,CAAZ,EAAM,KAAK,GAClG,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,oBAC9B,EAIA,IAAI,EAAY,CAAA,CAChB,CAAA,IAAI,CAAC,gBAAgB,CAAG,YAAY,WAC9B,EAAK,QAAQ,EAAI,AAA6B,YAA7B,EAAK,QAAQ,CAAC,UAAU,EACvC,GAAW,EAAK,eAAe,GACnC,EAAY,CAAA,GAEZ,EAAY,CAAA,CAEhB,EAjY4B,IAkY9B,C,E,CAEA,IAAA,SAAA,MAAA,SAAQ,CAAK,CAAE,CAAE,EACf,GAAI,IAAI,CAAC,SAAS,CAAE,OAAO,EAAG,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,wCAAyC,qBAEzF,GAAI,IAAI,CAAC,UAAU,CAAE,CACnB,GAAI,CACF,IAAI,CAAC,IAAI,CAAC,EACZ,CAAE,MAAO,EAAK,CACZ,OAAO,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,oBACrC,CACI,IAAI,CAAC,QAAQ,CAAC,cAAc,CA/YV,OAgZpB,IAAI,CAAC,MAAM,CAAC,wCAAyC,IAAI,CAAC,QAAQ,CAAC,cAAc,EACjF,IAAI,CAAC,GAAG,CAAG,GAEX,EAAG,KAEP,MACE,IAAI,CAAC,MAAM,CAAC,wBACZ,IAAI,CAAC,MAAM,CAAG,EACd,IAAI,CAAC,GAAG,CAAG,CAEf,C,E,CAIA,IAAA,YAAA,MAAA,W,I,E,I,CACE,IAAI,IAAI,CAAC,SAAS,EAIlB,IAAM,EAAc,WAClB,WAAW,WAAM,OAAA,EAAK,SAAS,EAAI,EAAA,IACrC,CAEI,CAAA,IAAI,CAAC,UAAU,CACjB,IAEA,IAAI,CAAC,IAAI,CAAC,UAAW,GAEzB,C,E,CAEA,IAAA,2BAAA,MAAA,W,I,E,I,EACM,IAAI,CAAC,SAAS,GACd,IAAI,CAAC,iBAAiB,GAC1B,IAAI,CAAC,MAAM,CAAC,+BACZ,IAAI,CAAC,iBAAiB,CAAG,WAAW,WAC7B,EAAK,YAAY,GACpB,EAAK,YAAY,CAAG,CAAA,EACpB,EAAK,MAAM,CAAC,iCACZ,EAAK,IAAI,CAAC,cACV,EAAK,IAAI,CAAC,gBAEd,EAAG,IAAI,CAAC,kBAAkB,GAC5B,C,E,CAEA,IAAA,eAAA,MAAA,W,I,E,I,AACM,CAAA,IAAI,CAAC,SAAS,EAElB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EACnC,IAAI,CAAC,SAAA,CADR,EAEI,IAAI,EAAK,SAAS,EACb,EAAK,OAAO,EAAK,EAAK,gBAAgB,EAAE,CAAA,EAAM,GAAG,CAAG,EAAc,EAAM,GAAG,CAAA,EAChF,EAAM,GAAG,CAAG,EAAK,YAAY,CAAC,EAAM,GAAG,EAEvC,IAAM,EAAY,WAChB,IAAI,EAAK,SAAS,EAClB,IAAM,EAAS,EAAK,GAAG,CAAC,gBAAgB,EAAI,EAC5C,EAAK,MAAM,CAAC,UACZ,EAAK,IAAI,CAAC,SAAU,CAClB,KAAM,EAAO,IAAI,CACjB,IAAK,EAAO,GAAG,AACjB,GACF,EAaA,EAAK,GAAG,CAAC,mBAAmB,CAAC,GAC1B,IAAI,CAZW,WAChB,EAAK,MAAM,CAAC,uBACR,EAAK,SAAS,GACd,EAAK,OAAO,EAAI,EAAK,YAAY,CAAE,IAClC,EAAK,IAAI,CAAC,eAAgB,GACjC,GAQG,KAAK,CANQ,SAAA,CAAhB,EACE,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,6BAC9B,GAKF,GACC,KAAK,CAAC,SAAA,CADP,EAEE,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,oBAC9B,EACJ,C,E,CAEA,IAAA,gBAAA,MAAA,W,I,E,I,AACM,CAAA,IAAI,CAAC,SAAS,EAElB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EACrC,IAAI,CAAC,SAAA,CADR,EAEI,IAAI,EAAK,SAAS,EACb,EAAK,OAAO,EAAK,EAAK,gBAAgB,EAAE,CAAA,EAAO,GAAG,CAAG,EAAc,EAAO,GAAG,CAAA,EAClF,EAAO,GAAG,CAAG,EAAK,YAAY,CAAC,EAAO,GAAG,EAEzC,IAAM,EAAa,WACjB,IAAI,EAAK,SAAS,EAClB,IAMqB,EANf,EAAS,EAAK,GAAG,CAAC,gBAAgB,EAAI,EAC5C,EAAK,MAAM,CAAC,UACZ,EAAK,IAAI,CAAC,SAAU,CAClB,KAAM,EAAO,IAAI,CACjB,IAAK,EAAO,GAAG,AACjB,GACK,EAAK,SAAS,EAAA,AAAkC,OAAhC,CAAA,EAAA,AAAA,EAAK,2BAA2B,AAA3B,GAAL,AAAA,KAAA,IAAA,GAAA,EAAA,IAAA,CAAA,GACvB,EAYA,EAAK,GAAG,CAAC,mBAAmB,CAAC,GAC1B,IAAI,CAXW,WACZ,EAAK,SAAS,GACd,EAAK,OAAO,EAAI,EAAK,YAAY,CAAE,IAClC,EAAK,IAAI,CAAC,eAAgB,GACjC,GAQG,KAAK,CANQ,SAAA,CAAhB,EACE,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,6BAC9B,GAKF,GACC,KAAK,CAAC,SAAA,CADP,EAEE,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,qBAC9B,EACJ,C,E,CAEA,IAAA,2BAAA,MAAA,WACM,IAAI,CAAC,SAAS,EAAI,IAAI,CAAC,WAAW,EAClC,AAA6B,WAA7B,IAAI,CAAC,GAAG,CAAC,eAAe,EAC1B,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,AAAI,MAAM,sBAAuB,0BAE5D,C,E,CAEA,IAAA,oBAAA,MAAA,WACE,IAAI,IAAI,CAAC,SAAS,EAClB,IAAM,EAAqB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAChD,EAAoB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAEpD,IAAI,CAAC,MAAM,CACT,kDACA,EACA,GAEF,IAAI,CAAC,IAAI,CAAC,iBAAkB,EAAoB,GAE5C,CAAA,AAAuB,cAAvB,GAAsC,AAAuB,cAAvB,CAAuB,IAC/D,IAAI,CAAC,QAAQ,CAAG,CAAA,EAChB,IAAI,CAAC,WAAW,IAES,WAAvB,GACF,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,0BAA2B,+BAEnC,WAAvB,GACF,IAAI,CAAC,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,AAAI,MAAM,0BAA2B,8BAEhE,C,E,CAEA,IAAA,WAAA,MAAA,SAAU,CAAE,E,I,E,I,CAEJ,EAAgB,SAAA,CAAtB,EAME,MALsD,mBAAlD,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAO,MAAM,GAC9C,EAAO,MAAM,CAAC,OAAO,CAAC,SAAA,CADxB,EAEI,OAAO,MAAM,CAAC,EAAQ,EACxB,GAEK,CACT,CAGI,AAA6B,CAAA,IAA7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAU,IAAI,CAAC,oBAAoB,CAC7D,IAAI,CAAC,GAAG,CAAC,QAAQ,GACd,IAAI,CAAC,SAAA,CAFV,EAGM,IAAM,EAAU,EAAE,CAClB,EAAI,OAAO,CAAC,SAAA,CAAZ,EACE,EAAQ,IAAI,CAAC,EAAc,GAC7B,GACA,EAAG,KAAM,EACX,EAAG,SAAA,CAAH,EAAU,OAAA,EAAG,E,GAGN,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAG,EACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAA,CADb,EAGH,IAAI,EAAK,SAAS,EAElB,IAAM,EAAU,EAAE,CAClB,EAAI,MAAM,GAAG,OAAO,CAAC,SAAA,CAArB,EACE,IAAM,EAAS,CAAC,EAChB,EAAO,KAAK,GAAG,OAAO,CAAC,SAAA,CAAvB,EACE,CAAM,CAAC,EAAK,CAAG,EAAO,IAAI,CAAC,EAC7B,GACA,EAAO,EAAE,CAAG,EAAO,EAAE,CACrB,EAAO,IAAI,CAAG,EAAO,IAAI,CACzB,EAAO,SAAS,CAAG,EAAO,SAAS,CACnC,EAAQ,IAAI,CAAC,EAAc,GAC7B,GACA,EAAG,KAAM,GACX,EAAG,SAAA,CAAH,EAAU,OAAA,EAAG,E,GAKb,EAAG,KAAM,EAAE,CAEf,C,E,CAEA,IAAA,cAAA,MAAA,W,I,E,I,CAEE,GADA,IAAI,CAAC,MAAM,CAAC,8BAA+B,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,aAAa,EACxE,CAAA,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,WAAW,EAAK,IAAI,CAAC,QAAQ,EAAK,IAAI,CAAC,aAAa,EAEhF,IAAI,CAAC,WAAW,CAAG,CAAA,EAGnB,IAAM,EAAoB,WACpB,EAAK,SAAS,EAAI,EAAK,WAAW,EAEtC,EAAK,QAAQ,CAAC,SAAC,CAAA,CAAK,CAApB,EACE,GAAI,CAAA,EAAK,SAAS,GAAI,EAAK,WAAW,EAGlC,GAAK,CAAA,EAAQ,EAAE,AAAF,EAEjB,IAAM,EAAmB,CAAC,EACpB,EAAkB,CAAC,EACnB,EAAiB,CAAC,EACpB,EAA6B,CAAA,EAEjC,EAAM,OAAO,CAAC,SAAA,CAAd,EAGM,CAAA,AAAc,oBAAd,EAAK,IAAI,EAA0B,AAAc,qBAAd,EAAK,IAAI,AAAK,GACnD,CAAA,CAAgB,CAAC,EAAK,EAAE,CAAC,CAAG,CAD9B,EAGI,CAAA,AAAc,mBAAd,EAAK,IAAI,EAAyB,AAAc,oBAAd,EAAK,IAAI,AAAK,GAClD,CAAA,CAAe,CAAC,EAAK,EAAE,CAAC,CAAG,CAD7B,EAGI,CAAA,AAAc,kBAAd,EAAK,IAAI,EAAwB,AAAc,mBAAd,EAAK,IAAI,AAAK,GACjD,CAAA,CAAc,CAAC,EAAK,EAAE,CAAC,CAAG,CAD5B,CAGF,GAEA,IAAM,EAA2B,SAAA,CAAjC,EACE,EAA6B,CAAA,EAE7B,IAAI,EAAQ,CAAe,CAAC,EAAsB,gBAAgB,CAAC,AAE/D,CAAA,GAAU,CAAA,EAAM,EAAE,EAAI,EAAM,OAAO,AAAP,GAE9B,EAAK,YAAY,CAAG,EAAM,EAAE,EAAI,EAAM,OAAO,CAC7C,EAAK,SAAS,CAAG,OAAO,EAAM,IAAI,GACzB,GAAS,EAAM,SAAS,EAEjC,EAAK,YAAY,CAAG,EAAM,SAAS,CACnC,EAAK,SAAS,CAAG,OAAO,EAAM,UAAU,GACmB,UAAlD,OAAO,EAAsB,gBAAgB,GAEtD,EAAQ,EAAsB,gBAAgB,CAAC,KAAK,CAAC,KACrD,EAAK,YAAY,CAAG,CAAK,CAAC,EAAE,CAC5B,EAAK,SAAS,CAAG,OAAO,CAAK,CAAC,EAAE,GAE9B,EAAK,YAAY,EACnB,CAAA,EAAK,WAAW,CAAG,EAAK,YAAY,CAAC,QAAQ,CAAC,KAAO,OAAS,MADhE,EAIA,IAAI,EAAS,CAAgB,CAAC,EAAsB,iBAAiB,CAAC,AAElE,CAAA,GAAW,CAAA,EAAO,EAAE,EAAI,EAAO,OAAO,AAAP,GAEjC,EAAK,aAAa,CAAG,EAAO,EAAE,EAAI,EAAO,OAAO,CAChD,EAAK,UAAU,CAAG,OAAO,EAAO,IAAI,GAC3B,GAAU,EAAO,SAAS,EAEnC,EAAK,aAAa,CAAG,EAAO,SAAS,CACrC,EAAK,UAAU,CAAG,OAAO,EAAO,UAAU,GACkB,UAAnD,OAAO,EAAsB,iBAAiB,GAEvD,EAAS,EAAsB,iBAAiB,CAAC,KAAK,CAAC,KACvD,EAAK,aAAa,CAAG,CAAM,CAAC,EAAE,CAC9B,EAAK,UAAU,CAAG,OAAO,CAAM,CAAC,EAAE,GAEhC,EAAK,aAAa,EACpB,CAAA,EAAK,YAAY,CAAG,EAAK,aAAa,CAAC,QAAQ,CAAC,KAAO,OAAS,MADlE,EAIA,EAAK,MAAM,CACT,qCACA,EAAK,YAAY,CACjB,EAAK,SAAS,CACd,EAAK,aAAa,CAClB,EAAK,UAAU,CAEnB,EAmBA,GAjBA,EAAM,OAAO,CAAC,SAAA,CAAd,EAEoB,cAAd,EAAK,IAAI,EAAoB,EAAK,uBAAuB,EAC3D,EAAyB,CAAc,CAAC,EAAK,uBAAuB,CAAC,EAKrE,CAAA,AAAe,sBAAf,EAAM,IAAI,EAA4B,AAA8B,SAA9B,EAAK,oBAAoB,EAC9D,AAAC,CAAA,AAAc,kBAAd,EAAK,IAAI,EAAwB,AAAc,mBAAd,EAAK,IAAI,AAAK,GAAqB,EAAK,QAAQ,AAAR,GAE3E,EAAyB,EAE7B,GAII,AAAC,GAA+B,AAAC,OAAO,IAAI,CAAC,GAAgB,MAAM,GAAI,OAAO,IAAI,CAAC,GAAiB,MAAK,CAI3G,EAAK,WAAW,CAAG,CAAA,EACnB,EAAK,UAAU,CAAG,CAAA,MAL6F,CAC/G,WAAW,EAAmB,KAC9B,MACF,CAKA,GAAI,EAAK,MAAM,CAAE,CACf,GAAI,CACF,EAAK,IAAI,CAAC,EAAK,MAAM,CACvB,CAAE,MAAO,EAAK,CACZ,OAAO,EAAK,SAAS,CAAC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,oBACrC,CACA,EAAK,MAAM,CAAG,KACd,EAAK,MAAM,CAAC,0CAEZ,IAAM,EAAK,EAAK,GAAG,AACnB,CAAA,EAAK,GAAG,CAAG,KACX,EAAG,KACL,CAIwD,UAApD,OAAO,EAAK,QAAQ,CAAC,0BAA0B,GACjD,EAAK,SAAS,CAAG,YAAY,WAAM,OAAA,EAAK,WAAW,EAAI,EAAA,KACnD,EAAK,SAAS,CAAC,KAAK,EAAE,EAAK,SAAS,CAAC,KAAK,IAGhD,EAAK,MAAM,CAAC,WACZ,EAAK,IAAI,CAAC,WACZ,EACF,EACA,IACF,C,E,CAEA,IAAA,cAAA,MAAA,WACO,IAAI,CAAC,GAAG,EAAK,IAAI,CAAC,QAAQ,GAAI,CAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAvuBvC,KAuuB0C,GAGlE,IAAI,CAAC,2BAA2B,EAClC,C,E,CAEA,IAAA,0BAAA,MAAA,W,I,E,I,AACM,CAAA,IAAI,CAAC,SAAS,GAEc,WAA5B,IAAI,CAAC,GAAG,CAAC,cAAc,GACzB,IAAI,CAAC,cAAc,CAAG,CAAA,EAGtB,IAAI,CAAC,MAAM,CAAC,wBAAyB,IAAI,CAAC,sBAAsB,EAChE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAA,CAApC,EACE,EAAK,GAAG,CAAC,WAAW,CAAC,GACrB,EAAK,kBAAkB,CAAG,CAAA,CAC5B,GACA,IAAI,CAAC,sBAAsB,CAAG,EAAE,CAE5B,IAAI,CAAC,kBAAkB,EACzB,IAAI,CAAC,MAAM,CAAC,8BACZ,IAAI,CAAC,kBAAkB,CAAG,CAAA,EAC1B,IAAI,CAAC,iBAAiB,KAEtB,IAAI,CAAC,MAAM,CAAC,cACZ,IAAI,CAAC,IAAI,CAAC,gBAId,IAAI,CAAC,MAAM,CAAC,0BAA2B,IAAI,CAAC,GAAG,CAAC,cAAc,EAC9D,IAAI,CAAC,IAAI,CAAC,uBAAwB,IAAI,CAAC,GAAG,CAAC,cAAc,EAC3D,C,E,CAEA,IAAA,kBAAA,MAAA,SAAiB,CAAK,GAChB,IAAI,CAAC,SAAS,GACd,EAAM,SAAS,EAAI,IAAI,CAAC,OAAO,CACjC,IAAI,CAAC,IAAI,CAAC,SAAU,CAClB,KAAM,YACN,UAAW,CACT,UAAW,EAAM,SAAS,CAAC,SAAS,CACpC,cAAe,EAAM,SAAS,CAAC,aAAa,CAC5C,OAAQ,EAAM,SAAS,CAAC,MAAM,AAChC,CACF,GACU,EAAM,SAAS,EAAK,IAAI,CAAC,YAAY,GAC/C,IAAI,CAAC,YAAY,CAAG,CAAA,EACpB,IAAI,CAAC,IAAI,CAAC,iBAGR,EAAM,SAAS,EACjB,IAAI,CAAC,wBAAwB,GAEjC,C,E,CAEA,IAAA,oBAAA,MAAA,SAAmB,CAAK,EACtB,IAAI,IAAI,CAAC,SAAS,EAClB,IAAI,EAAO,EAAM,IAAI,AACjB,CAAA,aAAgB,YAClB,EAAO,IAAI,WAAW,GACS,CAAA,IAAtB,IAAI,CAAC,YAAY,EAC1B,CAAA,EAAO,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EADX,EAGP,IAAI,CAAC,IAAI,CAAC,GACZ,C,E,CAEA,IAAA,8BAAA,MAAA,WACE,GAAI,CAAA,IAAI,CAAC,SAAS,EAAK,IAAI,CAAC,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAC,yCAA0C,IAAI,CAAC,QAAQ,CAAC,cAAc,EAClF,IAAM,EAAK,IAAI,CAAC,GAAG,AACnB,CAAA,IAAI,CAAC,GAAG,CAAG,KACX,EAAG,MACL,C,E,CAEA,IAAA,iBAAA,MAAA,WACM,IAAI,CAAC,UAAU,EAAI,IAAI,CAAC,SAAS,GACrC,IAAI,CAAC,MAAM,CAAC,mBACZ,IAAI,CAAC,aAAa,CAAG,CAAA,EACrB,IAAI,CAAC,WAAW,GAClB,C,E,CAEA,IAAA,kBAAA,MAAA,WACM,IAAI,CAAC,SAAS,GAClB,IAAI,CAAC,MAAM,CAAC,oBACZ,IAAI,CAAC,SAAS,GAChB,C,E,CAEA,IAAA,SAAA,MAAA,WACE,IAAM,EAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAC3B,CAAA,CAAI,CAAC,EAAE,CAAG,IAAM,IAAI,CAAC,GAAG,CAAG,KAAO,CAAI,CAAC,EAAE,CACzC,EAAM,KAAK,CAAC,KAAM,EACpB,C,E,EAhzBI,CAAa,EAAA,EAAA,MAAK,CAmzBxB,CAAA,EAAK,cAAc,CAAG,CAAC,CAAC,EAAA,iBAAiB,CAOzC,EAAK,MAAM,CAAG,CACZ,WAAY,CACV,CACE,KAAM,CACJ,+BACA,mCACD,AACH,EACD,CACD,aAAc,cAChB,EAEA,EAAK,aAAa,CAAG,CAAC,EAEP,EAAA,OAAA,CAAA,C,E,C,0C,Q,mC,Q,+B,Q,kC,Q,2B,Q,8C,Q,+B,Q,M,Q,kB,Q,Q,Q,W,Q,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,EC/1Bd,IAQI,EARJ,EAAA,EAAA,mBAED,CAAA,EAAQ,UAAU,CA6IlB,SAAoB,CAAI,EAQvB,GAPA,CAAI,CAAC,EAAE,CAAI,AAAA,CAAA,IAAI,CAAC,SAAS,CAAG,KAAO,EAAA,EAClC,IAAI,CAAC,SAAS,CACb,CAAA,IAAI,CAAC,SAAS,CAAG,MAAQ,GAAA,EAC1B,CAAI,CAAC,EAAE,CACN,CAAA,IAAI,CAAC,SAAS,CAAG,MAAQ,GAAA,EAC1B,IAAM,EAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAEnC,IAAI,CAAC,SAAS,EAInB,IAAM,EAAI,UAAY,IAAI,CAAC,KAAK,CAChC,EAAK,MAAM,CAAC,EAAG,EAAG,EAAG,kBAKrB,IAAI,EAAQ,EACR,EAAQ,EACZ,CAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAe,SAAA,CAA/B,EACe,OAAV,IAGJ,IACc,OAAV,GAGH,CAAA,EAAQ,CAAR,EAEF,GAEA,EAAK,MAAM,CAAC,EAAO,EAAG,GACvB,EA7KA,EAAQ,IAAI,CA+LZ,SAAc,CAAU,EACvB,GAAI,CACC,EACH,EAAQ,OAAO,CAAC,OAAO,CAAC,QAAS,GAEjC,EAAQ,OAAO,CAAC,UAAU,CAAC,QAE7B,CAAE,MAAO,EAAO,CAGhB,CACD,EAzMA,EAAQ,IAAI,CAiNZ,WACC,IAAI,EACJ,GAAI,CACH,EAAI,EAAQ,OAAO,CAAC,OAAO,CAAC,QAC7B,CAAE,MAAO,EAAO,CAGhB,CAOA,MAJI,CAAC,GAAK,AAAmB,KAAA,IAAZ,GAA2B,QAAS,GACpD,CAAA,EADD,KAAA,CAAA,EAIO,CACR,EA/NA,EAAQ,SAAS,CAyGjB,eAaK,QATJ,AAAsB,aAAlB,OAAO,UAA0B,OAAO,OAAO,EAAK,CAAA,AAAwB,aAAxB,OAAO,OAAO,CAAC,IAAI,IAAmB,OAAO,OAAO,CAAC,MAAK,AAAL,IAKzG,CAAA,AAAqB,aAArB,OAAO,WAA6B,UAAU,SAAS,EAAI,UAAU,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,wBAAA,GAQ/F,CAAA,AAAoB,aAApB,OAAO,UAA4B,SAAS,eAAe,EAAI,SAAS,eAAe,CAAC,KAAK,EAAI,SAAS,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAEtJ,AAAkB,aAAlB,OAAO,QAA0B,OAAO,OAAO,EAAK,CAAA,OAAO,OAAO,CAAC,OAAO,EAAK,OAAO,OAAO,CAAC,SAAS,EAAI,OAAO,OAAO,CAAC,KAAK,AAAL,GAG1H,AAAqB,aAArB,OAAO,WAA6B,UAAU,SAAS,EAAK,CAAA,EAAI,UAAU,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAA,GAAsB,SAAS,CAAC,CAAC,EAAE,CAAE,KAAO,IAEpJ,AAAqB,aAArB,OAAO,WAA6B,UAAU,SAAS,EAAI,UAAU,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,qBAAnG,CACH,EAjIA,EAAQ,OAAO,CAAG,AA2OlB,WACC,GAAI,CAGH,OAAO,YACR,CAAE,MAAO,EAAO,CAGhB,CACD,IAnPA,EAAQ,OAAO,EACV,EAAS,CAAA,EAEN,WACD,IACJ,EAAS,CAAA,EACT,QAAQ,IAAI,CAAC,yIAEf,GAOD,EAAQ,MAAM,CAAG,CAChB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,CAuFD,EAAQ,GAAG,CAAG,QAAQ,KAAK,EAAI,QAAQ,GAAG,EAAK,WAAO,EAkEtD,EAAO,OAAO,CAAG,EAAQ,oBAAY,GAQrC,AANqB,EAAO,OAAO,CAA5B,UAAP,CAMW,CAAC,CAAG,SAAU,CAAC,EACzB,GAAI,CACH,OAAO,KAAK,SAAS,CAAC,EACvB,CAAE,MAAO,EAAO,CACf,MAAO,+BAAiC,EAAM,OAAO,AACtD,CACD,C,E,C,mB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,EC1QC,IAAA,EAAA,EAAA,sCA6QD,CAAA,EAAO,OAAO,CA3Qd,SAAe,CAAG,EAqDjB,SAAS,EAAY,CAAS,EAE7B,IADI,EAEA,EACA,EAFA,EAAiB,KAIrB,SAAS,IAAM,IAAA,IAAA,EAAA,UAAA,MAAA,CAAA,EAAA,AAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAG,CAAA,CAAH,EAAA,CAAA,SAAA,CAAA,EAAO,CAErB,GAAK,EAAM,OAAO,EAOlB,IAAM,EAAO,OAAO,IAAI,MAClB,EAAK,EAAQ,CAAA,GAAY,CAAA,CAC/B,CALa,EAKR,IAAI,CAAG,EACZ,AANa,EAMR,IAAI,CAAG,EACZ,AAPa,EAOR,IAAI,CAAG,EACZ,EAAW,EAEX,CAAI,CAAC,EAAE,CAAG,EAAY,MAAM,CAAC,CAAI,CAAC,EAAE,EAEb,UAAnB,OAAO,CAAI,CAAC,EAAE,EAEjB,EAAK,OAAO,CAAC,MAId,IAAI,EAAQ,CACZ,CAAA,CAAI,CAAC,EAAE,CAAG,CAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAiB,SAAC,CAAA,CAAO,CAAnD,EAEC,GAAI,AAAU,OAAV,EACH,MAAO,GAER,CAAA,IACA,IAAM,EAAY,EAAY,UAAU,CAAC,EAAO,CAChD,GAAI,AAAqB,YAArB,OAAO,EAA0B,CACpC,IAAM,EAAM,CAAI,CAAC,EAAM,CACvB,EAAQ,EAAU,IAAI,CA5BX,EA4BkB,GAG7B,EAAK,MAAM,CAAC,EAAO,GACnB,GACD,CACA,OAAO,CACR,GAGA,EAAY,UAAU,CAAC,IAAI,CAtCd,EAsCqB,GAGlC,AADc,CAAA,AAxCD,EAwCM,GAAG,EAAI,EAAY,GAAG,AAAH,EAChC,KAAK,CAzCE,EAyCK,GACnB,CAgCA,OA9BA,EAAM,SAAS,CAAG,EAClB,EAAM,SAAS,CAAG,EAAY,SAAS,GACvC,EAAM,KAAK,CAAG,EAAY,WAAW,CAAC,GACtC,EAAM,MAAM,CAAG,EACf,EAAM,OAAO,CAAG,EAAY,OAAO,CAEnC,OAAO,cAAc,CAAC,EAAO,UAAW,CACvC,WAAY,CAAA,EACZ,aAAc,CAAA,EACd,IAAK,kBACJ,AAAI,AAAmB,OAAnB,EACI,GAEJ,IAAoB,EAAY,UAAU,GAC7C,EAAkB,EAAY,UAAU,CACxC,EAAe,EAAY,OAAO,CAAC,IAG7B,EACR,EACA,IAAK,SAAA,CAAL,EACC,EAAiB,CAClB,CACD,GAGgC,YAA5B,OAAO,EAAY,IAAI,EAC1B,EAAY,IAAI,CAAC,GAGX,CACR,CAEA,SAAS,EAAO,CAAS,CAAE,CAAS,EACnC,IAAM,EAAW,EAAY,IAAI,CAAC,SAAS,CAAI,CAAA,AAAqB,KAAA,IAAd,EAA4B,IAAM,CAAA,EAAa,GAErG,OADA,EAAS,GAAG,CAAG,IAAI,CAAC,GAAG,CAChB,CACR,CAwFA,SAAS,EAAY,CAAM,EAC1B,OAAO,EAAO,QAAQ,GACpB,SAAS,CAAC,EAAG,EAAO,QAAQ,GAAG,MAAM,CAAG,GACxC,OAAO,CAAC,UAAW,IACtB,CA0BA,OAvQA,EAAY,KAAK,CAAG,EACpB,EAAY,OAAO,CAAG,EACtB,EAAY,MAAM,CAoPlB,SAAgB,CAAG,SAClB,AAAI,aAAe,MACX,EAAI,KAAK,EAAI,EAAI,OAAO,CAEzB,CACR,EAxPA,EAAY,OAAO,CAwLnB,WACC,IAAM,EAAa,AAClB,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAY,KAAK,CAAC,GAAG,CAAC,IAAA,MAAA,CACzB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG,EAAY,KAAK,CAAC,GAAG,CAAC,GAAa,GAAG,CAAC,SAAA,CAF3C,EAEwD,MAAA,IAAM,CAC5D,KAAA,IAAI,CAAC,KAEP,OADA,EAAY,MAAM,CAAC,IACZ,CACR,EA9LA,EAAY,MAAM,CAsJlB,SAAgB,CAAU,EACzB,EAAY,IAAI,CAAC,GACjB,EAAY,UAAU,CAAG,EAEzB,EAAY,KAAK,CAAG,EAAE,CACtB,EAAY,KAAK,CAAG,EAAE,CAGtB,IADI,EACE,EAAS,AAAA,CAAA,AAAsB,UAAtB,OAAO,EAA0B,EAAa,EAAA,EAAI,KAAK,CAAC,UACjE,EAAM,EAAM,MAAM,CAExB,IAAK,EAAI,EAAG,EAAI,EAAK,IACf,CAAK,CAAC,EAAE,GAOT,AAAkB,MAAlB,AAFJ,CAAA,EAAa,CAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAO,MAArC,CAEc,CAAC,EAAE,CAChB,EAAY,KAAK,CAAC,IAAI,CAAC,AAAI,OAAO,IAAM,EAAW,KAAK,CAAC,GAAK,MAE9D,EAAY,KAAK,CAAC,IAAI,CAAC,AAAI,OAAO,IAAM,EAAa,MAGxD,EA9KA,EAAY,OAAO,CAsMnB,SAAiB,CAAI,MAKhB,EACA,EALJ,GAAI,AAA0B,MAA1B,CAAI,CAAC,EAAK,MAAM,CAAG,EAAE,CACxB,MAAO,CAAA,EAMR,IAAK,EAAI,EAAG,EAAM,EAAY,KAAK,CAAC,MAAM,CAAE,EAAI,EAAK,IACpD,GAAI,EAAY,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAC7B,MAAO,CAAA,EAIT,IAAK,EAAI,EAAG,EAAM,EAAY,KAAK,CAAC,MAAM,CAAE,EAAI,EAAK,IACpD,GAAI,EAAY,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAC7B,MAAO,CAAA,EAIT,MAAO,CAAA,CACR,EA1NA,EAAY,QAAQ,CAAG,EAAQ,oBAC/B,EAAY,OAAO,CA0PnB,WACC,QAAQ,IAAI,CAAC,wIACd,EA1PA,OAAO,IAAI,CAAC,GAAK,OAAO,CAAC,SAAA,CAAzB,EACC,CAAW,CAAC,EAAI,CAAG,CAAG,CAAC,EAAI,AAC5B,GAMA,EAAY,KAAK,CAAG,EAAE,CACtB,EAAY,KAAK,CAAG,EAAE,CAOtB,EAAY,UAAU,CAAG,CAAC,EAkB1B,EAAY,WAAW,CAVvB,SAAqB,CAAS,EAG7B,IAAK,IAFD,EAAO,EAEF,EAAI,EAAG,EAAI,EAAU,MAAM,CAAE,IAErC,EADS,CAAA,GAAQ,CAAA,EAAK,EAAQ,EAAU,UAAU,CAAC,GAC3C,EAGT,OAAO,EAAY,MAAM,CAAC,KAAK,GAAG,CAAC,GAAQ,EAAY,MAAM,CAAC,MAAM,CAAC,AACtE,EA2NA,EAAY,MAAM,CAAC,EAAY,IAAI,IAE5B,CACR,C,E,C,sC,Q,iB,O,E,C,Q,C,S,C,C,C,C,C,EC7QC,IAAA,EAAA,EAAA,2BA4JD,SAAS,EAAO,CAAE,CAAE,CAAK,CAAE,CAAC,CAAE,CAAI,EAEhC,OAAO,KAAK,KAAK,CAAC,EAAK,GAAK,IAAM,EAAQ,CAAA,AAD3B,GAAS,AAAI,IAAJ,EAC6B,IAAM,EAAA,CAC7D,CAxIA,EAAO,OAAO,CAAG,SAAU,CAAG,CAAE,CAAO,EACrC,EAAU,GAAW,CAAC,EACtB,IA+GI,EAzBA,EAtFA,EAAO,AAAO,KAAA,IAAA,EAAA,YAAP,AAAA,CAAA,EAAA,EAAA,CAAS,AAAT,EAAO,GAClB,GAAI,AAAS,WAAT,GAAqB,EAAI,MAAM,CAAG,EACpC,OAAO,AAkBX,SAAe,CAAG,EAEhB,IAAI,CAAA,AADJ,CAAA,EAAM,OAAO,EAAb,EACQ,MAAM,CAAG,GAAA,GAGjB,IAAI,EAAQ,mIAAmI,IAAI,CACjJ,GAEF,GAAK,GAGL,IAAI,EAAI,WAAW,CAAK,CAAC,EAAE,EAE3B,OADY,AAAA,CAAA,CAAK,CAAC,EAAE,EAAI,IAAA,EAAM,WAAW,IAEvC,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAO,AAzDL,SAyDK,CACT,KAAK,QACL,IAAK,OACL,IAAK,IACH,OAAO,AA9DL,OA8DK,CACT,KAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,AAnEL,MAmEK,CACT,KAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAO,AA1EL,KA0EK,CACT,KAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,AAjFL,IAiFK,CACT,KAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,AAxFL,IAwFK,CACT,KAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACH,OAAO,CACT,SACE,MACJ,GACF,EAzEiB,GACR,GAAI,AAAS,WAAT,GAAqB,SAAS,GACvC,OAAO,EAAQ,IAAI,CA4GrB,AAAI,CADA,EAAQ,KAAK,GAAG,CA3GY,KAxB1B,MAqIG,EA7GuB,EA6GZ,EArId,MAqIwB,OAE1B,GAxIE,KAyIG,EAhHuB,EAgHZ,EAzId,KAyIwB,QAE1B,GA5IE,IA6IG,EAnHuB,EAmHZ,EA7Id,IA6IwB,UAE1B,GAhJE,IAiJG,EAtHuB,EAsHZ,EAjJd,IAiJwB,UAEvB,AAxHyB,EAwHpB,MArCZ,AAAI,CADA,EAAQ,KAAK,GAAG,CAlF4B,KAxB1C,MA4GG,KAAK,KAAK,CAAC,AApF4B,EAxB1C,OA4GwB,IAE1B,GA/GE,KAgHG,KAAK,KAAK,CAAC,AAvF4B,EAzB1C,MAgHwB,IAE1B,GAnHE,IAoHG,KAAK,KAAK,CAAC,AA1F4B,EA1B1C,KAoHwB,IAE1B,GAvHE,IAwHG,KAAK,KAAK,CAAC,AA7F4B,EA3B1C,KAwHwB,IAEvB,AA/FyC,EA+FpC,IA7FZ,OAAM,AAAI,MACR,wDACE,KAAK,SAAS,CAAC,GAErB,C,E,C,0B,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WClCa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAEA,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,c,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,wB,WACA,OAAA,C,G,E,M,C,E,4B,WACA,OAAA,C,G,E,M,C,E,sB,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,oB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,GAEb,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,C,GAAA,IAAA,EAAA,EAAA,gBAzBM,EAAQ,AAAkB,aAAlB,OAAO,OAAyB,OAAS,KAG1C,EAAoB,EAAM,iBAAiB,EAAI,EAAM,oBAAoB,EAAI,EAAM,uBAAuB,CAE1G,EAAwB,EAAM,qBAAqB,EAAI,EAAM,wBAAwB,EAAI,EAAM,2BAA2B,CAE1H,EAAkB,EAAM,eAAe,EAAI,EAAM,kBA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MArCZ,AAAI,CADA,EAAQ,KAAK,GAAG,CAlF4B,KAxB1C,MA4GG,KAAK,KAAK,CAAC,AApF4B,EAxB1C,OA4GwB,IAE1B,GA/GE,KAgHG,KAAK,KAAK,CAAC,AAvF4B,EAzB1C,MAgHwB,IAE1B,GAnHE,IAoHG,KAAK,KAAK,CAAC,AA1F4B,EA1B1C,KAoHwB,IAE1B,GAvHE,IAwHG,KAAK,KAAK,CAAC,AA7F4B,EA3B1C,KAwHwB,IAEvB,AA/FyC,EA+FpC,IA7FZ,OAAM,AAAI,MACR,wDACE,KAAK,SAAS,CAAC,GAErB,C,E,C,0B,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WClCa,OAAA,C,G,E,M,C,E,wB,WAEA,OAAA,C,G,E,M,C,E,kB,WAEA,OAAA,C,G,E,M,C,E,kB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,c,WACA,OAAA,C,G,E,M,C,E,mB,WACA,OAAA,C,G,E,M,C,E,wB,WACA,OAAA,C,G,E,M,C,E,4B,WACA,OAAA,C,G,E,M,C,E,sB,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,W,WACA,OAAA,C,G,E,M,C,E,gB,WACA,OAAA,C,G,E,M,C,E,oB,WACA,OAAA,C,G,E,M,C,E,iB,WACA,OAAA,C,G,E,M,C,E,e,WACA,OAAA,C,GAEb,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,C,GAAA,IAAA,EAAA,EAAA,gBAzBM,EAAQ,AAAkB,aAAlB,OAAO,OAAyB,OAAS,KAG1C,EAAoB,EAAM,iBAAiB,EAAI,EAAM,oBAAoB,EAAI,EAAM,uBAAuB,CAE1G,EAAwB,EAAM,qBAAqB,EAAI,EAAM,wBAAwB,EAAI,EAAM,2BAA2B,CAE1H,EAAkB,EAAM,eAAe,EAAI,EAAM,kBAAkB,EAAI,EAAM,qBAAqB,CAClG,EAAkB,EAAM,eAAe,CACvC,EAAiB,EAAM,cAAc,CACrC,EAAmB,EAAM,gBAAgB,CACzC,EAAmB,EAAM,gBAAgB,C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,I,C,S,C,E,O,E,K,E,K,EACX,GAAA,CAAA,EAAA,MAAA,C,E,E,CACF,MAAA,C,EAAM,EAAc,EAAM,G,A,M,EAA1B,EAAA,IAAA,G,E,K,C,C,M,E,OAGF,EAAK,QAAQ,CAAC,EAAO,G,C,E,A,C,EACvB,GANwB,SAAA,CAAA,CAAI,CAAJ,E,O,E,K,C,I,C,U,G,EAQ1B,YAAa,SAAC,CAAA,CAAO,CAAA,CAAQ,CAA7B,EACE,OAAA,EAAQ,EAAS,SAAC,CAAA,CAAG,CAArB,EAA8B,OAAA,EAAK,WAAW,CAAC,EAAO,E,E,EAExD,aAAc,SAAC,CAAA,CAAU,CAAA,CAAU,CAAA,CAAQ,CAAA,CAAS,CAApD,EACmB,IAAA,EAAjB,OAAA,EAAQ,GAAS,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,SAAO,CAAA,CAAI,CAAX,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EACX,GAAA,CAAA,EAAA,MAAA,C,E,E,CACF,MAAA,C,EAAM,EAAc,EAAM,G,A,M,EAA1B,EAAA,IAAA,G,E,K,C,C,M,E,OAGF,EAAK,YAAY,CAAC,EAAU,EAAU,G,C,E,A,C,EACxC,GANwB,SAAA,CAAA,CAAI,CAAJ,E,O,E,K,C,I,C,U,G,EAQ1B,WAAY,SAAA,CAAZ,EAAkB,OAAA,EAAU,UAAU,CAAG,C,EAEzC,YAAa,SAAA,CAAb,EAAmB,OAAA,EAAU,WAAW,CAAG,C,EAE3C,aAAc,SAAA,CAAd,EAAoB,OAAA,EAAU,YAAY,CAAG,C,EAE7C,YAAa,SAAA,CAAb,EAAmB,OAAA,EAAU,WAAW,CAAG,C,CAC7C,CACF,C,E,C,qC,Q,gC,Q,sC,Q,kC,Q,0B,Q,+B,Q,a,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCrYA,EAAA,MAAA,CAAA,EAAA,kBAAA,W,O,E,e,A,GAAA,EAAA,MAAA,CAAA,EAAA,WAAA,W,O,E,Q,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GAAA,IAAA,EAAA,EAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,IC4BoB,EAoGR,E,E,E,kD,E,iB,C,GAMZ,EAA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AG,EAA4B,EAA5B,IAAA,CAAM,EAAsB,EAAtB,MAAA,CAAa,EAAS,EAAd,GAA/B,CACA,AAAA,CAAA,EAAA,EAAA,MAAA,AAAA,EAAO,GACP,EAAK,GACL,IAAM,EAAM,AAAgB,UAAhB,OAAO,EAAoB,AAAA,CAAA,EAAA,EAAA,WAAA,AAAA,EAAY,GAAQ,EAErD,EAAI,KAAK,IAAI,CAAE,AAAA,CAAA,AADP,EAAE,QAAQ,CAAC,GAAG,MAAM,CACL,CAAA,EAAK,GAC5B,EAAe,EAAQ,EAAI,EAEjC,GAAI,AAAW,QAAX,EACF,EAAM,EAAmB,EAAK,EAAK,EAAc,QAC5C,GAAI,AAAW,QAAX,EACT,EAAM,EAAmB,EAAK,EAAK,EAAc,EAAG,QAC/C,GAAI,AAAW,mBAAX,EAET,EAAM,OAEN,MAAM,AAAI,MAAM,iCAGlB,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAO,IAAK,CAE9B,IAAK,IADC,EAAI,AAAI,MAAM,GACX,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,IAAM,EAAa,EAAK,CAAA,EAAI,EAAI,CAAA,EAC1B,EAAK,EAAI,QAAQ,CAAC,EAAY,EAAa,EACjD,CAAA,CAAC,CAAC,EAAE,CAAG,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAM,GAAK,EACxB,CACA,CAAC,CAAC,EAAE,CAAG,CACT,CACA,OAAO,CACT,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,0B,Q,gB,Q,mB,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,mC,E,E,O1qB0Te,EAAA,CAAA,MAAM,MAAN,E,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,sB,E,A,C,E,E,gB,A,E,mB,E,A,C,E,E,gB,A,E,Y,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,W,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,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AAK,CAAC,IAAI,CAAC,4BAChB,EAAK,WAAW,CAAC,EACnB,CAAE,MAAO,EAAO,CACd,EAAK,KAAK,CAAC,IAAI,CAAC,sBAChB,QAAQ,KAAK,CAAC,EAChB,CACF,GACC,KAAK,CAAC,SAAC,CADR,EAEE,EAAK,KAAK,CAAC,IAAI,CAAC,uBAChB,QAAQ,KAAK,CAAC,EAChB,EACJ,EAEA,MAAO,CACL,cAAA,SAAc,CAAK,EACjB,aAAa,OAAO,CAAC,WAAY,EACnC,CACF,EAEA,QAAS,CACD,YAAN,SAAkB,CAAS,EAAE,MAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,WACrB,IAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,OAAA,EAAK,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,IAEpB,EAAK,SAAQ,CAAI,IAAI,CAAC,MAAM,CAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAE,GAAA,EAAI,KAAA,EAAM,UAAW,KAAK,GAAG,EAAG,GAEpD,IAAI,CAAC,SAAQ,CACX,OAAO,QAAQ,CAAC,MAAK,CAAI,OAAO,QAAQ,CAAC,QAAO,CAAI,eAAiB,EAEnE,IAAI,CAAC,aAAa,CACpB,OAAO,QAAQ,CAAC,MAAK,CAAK,eAAiB,MAAA,CAAH,GAExC,IAAI,CAAC,KAAI,CAAI,CAAA,E,C,E,A,EAEjB,GAAA,KAAA,CAAA,IAAA,C,CACF,CACF,C,E,C,qC,Q,+B,Q,iB,Q,c,Q,2B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,S,W,O,C,G,I,E,E,O,E,C,O,C,S,E,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,C,E,E,gB,A,E,S,E,A,C,E,E,gB,A,E,qB,E,A,C,E,E,gB,A,E,wB,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,U,E,A,C,E,E,gB,A,E,e,E,A,C,E,E,gB,A,E,a,E,A,C,E,E,gB,A,E,c,E,A,C,E,E,gB,A,E,U,E,A,C,E,E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B,CAC5Ct4N,IAAKA,WAAMo8U,OAAAA,EAAa12U,KAAK,CAAGkP,CAAK,CAACy/C,EAAK,CAAGqnR,EAASh2U,KAAvD1F,A,CACF,GAEOs4N,CACT,C,E,C,oB,Q,I,Q,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEhEA,EAAA,MAAA,CAAA,EAAA,iBAAA,WAAgBokH,OAAAA,C,GALhB,IAAA,EAAA,EAAA,OAKO,SAASA,EAAgBp2U,CAA4B,CAAEN,CAA+B,EAC3F,IAAIkiD,EASJjpB,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAM34B,EAAQ4zD,SAAAA,CAAdj7B,EACMi7B,GAAU,CAAChS,EACbt1B,AAVJ,SAASA,IAEPs1B,AADAA,CAAAA,EAAQ1vB,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,GAAR0vB,EACMG,GAAG,CAAC,WAAMriD,OAAAA,EAAG9F,MAAM,CACrB8F,EAAG,WAAQkiD,MAAAA,GAAAA,EAAOp6B,IAAI,GAAI8E,GAAQ,GACjC5sB,G,EAEP,IAKck0D,IACVhS,MAAAA,GAAAA,EAAOp6B,IAAI,GACXo6B,EAAQhiD,KAAAA,EAEZ,EAAG,CAAEonD,UAAW,CAAA,CAAK,GAErBr0B,AAAAA,CAAAA,EAAAA,EAAAA,cAAc,AAAdA,EAAe,WACbivB,MAAAA,GAAAA,EAAOp6B,IAAI,EACb,EACF,C,E,C,I,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,I,E,E,gB,E,S,C,E,G,I,E,E,mB,E,S,C,E,G,I,E,E,mB,E,S,C,E,G,I,E,E,oB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,gC,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,a,E,S,C,E,G,I,E,E,gB,E,S,C,E,G,I,E,E,gB,E,S,C,E,G,I,E,E,4B,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,iB,E,S,C,E,G,I,E,E,oB,E,S,C,E,G,I,E,E,yB,E,S,C,E,G,I,E,E,sB,E,S,C,E,G,I,E,E,mB,E,S,C,E,E,E,C,e,Q,kB,Q,kB,Q,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gV,GACvC,C,C,M,E,CAJK,EAAA,CAAA,EAAA,EAAA,C,Q,C,G,CAAA,GAAA,AAAA,MAAA,EAAA,MAAA,EAAA,EAAA,MAAA,E,Q,CAAA,GAAA,EAAA,MAAA,C,C,CAML,OAAOs9V,CACT,C,E,C,gC,Q,sC,Q,kC,Q,sC,Q,I,Q,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,EE3aA,IAAA,EAAA,EAAA,kD,E,iB,C,GAHA,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,E,O,A,GAKgB,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GACI,EAAA,MAAA,CAAA,EAAA,aAAA,W,O,E,U,A,GACD,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,E,O,A,GACH,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GACE,EAAA,MAAA,CAAA,EAAA,YAAA,W,O,E,S,A,GAAA,EAAA,MAAA,CAAA,EAAA,SAAA,W,O,E,M,A,GACQ,EAAA,MAAA,CAAA,EAAA,WAAA,W,O,E,Q,A,GAV1B,IAAA,EAAA,EAAA,oBAKgB,EAAA,EAAA,kBACI,EAAA,EAAA,iBACD,EAAA,EAAA,cACH,EAAA,EAAA,gBACE,EAAA,EAAA,gBACQ,EAAA,EAAA,c,E,C,mB,C,E,iB,C,E,gB,Q,a,C,E,e,Q,e,Q,c,C,E,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEVjB7tB,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,oBAAAA,W,O,E,iB,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WE+DIowB,OAAAA,C,G,E,M,C,E,uB,WACAC,OAAAA,C,G,E,M,C,E,kB,WAIAC,OAAAA,C,G,E,M,C,E,sB,WASAC,OAAAA,C,GAWb,EAAA,MAAA,CAAA,EAAA,YAAA,WAAgBJ,OAAAA,C,GAYhB,EAAA,MAAA,CAAA,EAAA,gBAAA,WAAgBK,OAAAA,C,GAoEhB,EAAA,MAAA,CA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,GAAA,IAAA,GAAA,EAAA,uBAAA,EAAA,SAAA,CAAA,GAAA,GAAA,IAAA,GAAA,EAAA,2BAAA,EAAA,SAAA,CAAA,GAAA,E,E,C,mB,Q,sB,Q,qB,Q,4B,Q,sB,Q,qB,Q,sB,Q,gC,Q,2B,Q,2B,Q,mB,Q,wB,Q,yB,Q,oB,Q,wB,Q,wB,Q,oB,Q,yB,Q,oB,Q,2B,Q,wB,Q,2B,Q,uB,Q,4B,Q,yB,Q,0B,Q,gC,Q,sB,Q,uB,Q,0B,Q,8B,Q,mB,Q,qB,Q,yB,Q,sB,Q,oB,Q,oB,Q,qB,Q,oB,Q,mB,Q,8B,Q,qB,Q,yB,Q,mB,Q,qB,Q,sB,Q,oB,Q,oB,Q,8B,Q,oB,Q,oB,Q,wB,Q,gC,Q,qB,Q,wB,Q,uB,Q,0B,Q,wB,Q,gC,Q,8B,Q,qB,Q,0B,Q,2B,Q,sB,Q,0B,Q,sB,Q,gC,Q,qC,Q,qB,Q,8B,Q,0B,Q,sB,Q,wB,Q,yB,Q,yB,Q,uB,Q,sB,Q,yB,Q,oB,Q,qB,Q,wB,Q,yB,Q,6B,Q,wB,Q,uB,Q,uB,Q,0B,Q,6B,Q,sB,Q,0B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzFSmH,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA,W,O,E,I,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,gB,WEYIC,OAAAA,C,G,E,M,C,E,O,WAMAD,OAAAA,C,G,I,E,E,iC,E,E,OAjBb,EAAA,cAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,gCACW,EAAA,EAAA,gCACvB,EAAA,EAAA,+BAGf,EAAA,EAAA,wBAGaC,EAAgBjlB,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EACrCF,AAAAA,CAAAA,EAAAA,EAAAA,kBAAAA,AAAAA,IACAic,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB,CAAEK,WAAY,CAAA,CAAK,GACnCvD,AAAAA,CAAAA,EAAAA,EAAAA,cAAAA,AAAAA,KACF,QAEUmM,EAAOnlB,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,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AAA,SAAS,AAATA,EAAU,WACR,IAAM8mB,EAAU,CAAC,CAAE5+V,CAAAA,EAAMhR,OAAO,EAAIgR,EAAMod,IAAI,EAAItd,EAAMsd,IAAI,AAAJA,EAExD,MAAAlN,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAApQ,EAAAqL,GAAA,CAAA,CAAA,MAEW,CACL,kBACArL,EAAM+/a,KAAK,CACZ,CAAA,MACO//a,EAAMwG,KADb,AACkB,EAAA,CAAAtX,QAAAA,WAMbgR,IAAAA,EANa,MAAA,CAEjB4+V,GAAO1uV,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAFUlhB,MAAAA,CAEV,MAAA,8BAAA,EAAA,CAEHgR,EAAMod,IAAI,CAAGpd,EAAMod,IAAI,GAAKtd,EAAMsd,IAAI,CAEtCpd,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAAiB,EAJd,A,CAMR,EAGP,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,I,Q,kC,Q,4B,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WExCao9V,OAAAA,C,GAAN,IAAMA,EAAexoB,AAAAA,CAAAA,EAAAA,AAT5B,EAAA,qBAS4BA,YAAAA,AAAAA,EAAa,CACvCzpU,IAAK,CACHtM,KAAMzJ,OACNpG,QAAS,KACX,CACF,EAAG,M,E,C,oB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEYqH,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,G,E,M,C,E,iB,WAlB3G+vW,OAAAA,C,G,E,M,C,E,0B,WAGAC,OAAAA,C,G,E,M,C,E,uB,WACAC,OAAAA,C,G,E,M,C,E,kB,WACAC,OAAAA,C,G,E,M,C,E,mB,WACAC,OAAAA,C,G,E,M,C,E,qB,WACAC,OAAAA,C,G,E,M,C,E,4B,WACAC,OAAAA,C,G,E,M,C,E,qB,WACAC,OAAAA,C,G,E,M,C,E,4B,WACAC,OAAAA,C,G,E,M,C,E,oB,WACAC,OAAAA,C,G,E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AA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAFR,CAEQ,IAAA,YAAA,KAGHhhb,EAAMq2W,SAAS,CAAA,KAAA,UAAA,QAAA,MAAA,EAGjBK,EAAW5lX,KAAK,EAAA,MAexB,EAF+C,AAInD,CAAA,EAGP,CACF,CACF,E,E,C,kC,Q,gC,Q,I,Q,e,Q,oB,Q,oB,Q,iC,Q,qB,Q,8B,Q,kC,Q,gC,Q,mC,Q,kC,Q,8B,Q,+B,Q,iC,Q,iC,Q,qC,Q,gC,Q,4B,Q,8B,Q,gC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WE/PaklX,OAAAA,C,GAAN,IAAMA,EAAcvhC,AAAAA,CAAAA,EAAAA,AAH3B,EAAA,wBAG2BA,sBAAAA,AAAAA,EAAuB,gB,E,C,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEHzC0pB,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA,W,O,E,I,A,GAAAA,IAAAA,EAAAA,EAAAA,a,E,C,a,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAA+Y,EAAAA,MAAAA,CAAAA,EAAAA,gBAAAA,W,O,E,a,A,GAAAA,IAAAA,EAAAA,EAAAA,sB,E,C,sB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,yB,WE4EIC,OAAAA,C,G,E,M,C,E,gB,WAkBAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,uC,E,E,OA7Fb,EAAA,uBAEA,IAAA,EAAA,EAAA,wBACgB,EAAA,EAAA,0BACK,EAAA,EAAA,sBACP,EAAA,EAAA,kCACY,EAAA,EAAA,sBACZ,EAAA,EAAA,sBACW,EAAA,EAAA,sBACX,EAAA,EAAA,0BACU,EAAA,EAAA,gCACgB,EAAA,EAAA,+BAGxC,EAAA,EAAA,+BACqB,EAAA,EAAA,+BACA,EAAA,EAAA,gCACc,EAAA,EAAA,8BACnB,EAAA,EAAA,qCACI,EAAA,EAAA,oCACH,EAAA,EAAA,gCACC,EAAA,EAAA,sCACM,EAAA,EAAA,oCAIoD,EAAA,EAAA,wBAiD/DC,EAAyBriC,AAAAA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A,CAAAA,KAAAA,CAAAA,EAAAA,CAAAA,EAAgC,CAAhCA,MAAAA,CAAwB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG7O,KAC1B,AAAA,CAAA,CAAC2O,EAAMs6W,UAAU,EAAIt6W,EAAMowJ,KAAK,CAAC9kK,MAAM,AAANA,GAAW0U,EAAMq+W,QAAQ,CAAAjuW,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAg8V,EAAAA,KAAA,CAHzC,CAGyC,MAAA,wBAAA,KAGlDpsW,EAAMq+W,QAAQ,CAAA,YACPxD,GAAmB,QACvBpoH,EAAAA,IAAAA,CAAI,aACD98P,EAAE6C,EAAM1H,KAAK,EAAC,MACnB6E,EAAE6C,EAAM1H,KAAK,EAAC,SAAA,IAAA,EAAA,MAGtBQ,KAAAA,EAHsB,CAGb,C,GAMzB,GAEOgtX,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAY,CACjBnG,UAAAA,EACAC,WAAAA,EACAvrB,KAAAA,EACAx9V,OAAAA,GACAspX,eAAAA,EACAa,cAAAA,GACA5mV,OAAAA,EACF,EAAGslV,EACL,CACF,E,E,C,kC,Q,gC,Q,sC,Q,sC,Q,I,Q,kB,Q,uB,Q,yB,Q,qB,Q,iC,Q,qB,Q,qB,Q,qB,Q,yB,Q,0B,Q,+B,Q,8B,Q,8B,Q,8B,Q,+B,Q,6B,Q,oC,Q,mC,Q,+B,Q,qC,Q,mC,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzsBS+D,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,IAAAA,EAAAA,EAAAA,mB,E,C,mB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAmgC,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W,O,E,Y,A,GAAAA,IAAAA,EAAAA,EAAAA,qB,E,C,qB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,wB,WEyBIC,OAAAA,C,G,E,M,C,E,e,WAaAD,OAAAA,C,G,I,E,E,OAtCb,EAAA,EAAA,qBAGA,EAAA,EAAA,+BACkB,EAAA,EAAA,sCAIqC,EAAA,EAAA,w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8/B,MAAM,CAAG9/B,EAAM8/B,MAAM,CAAC+9U,GAAUjtX,KAAK,EAAI,CAACkP,EAAMolZ,iBAAiB,EAAAh1Y,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAgxa,EAAAA,QAAAA,CAAA,KAAA,CAAAhxa,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAm8W,EAAAA,QAAAA,CAAA,KAAA,MAAAn8W,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAi0Y,EAAAA,gBAAAA,CAK1E4B,EACI,CACPl0Y,QAAS7R,CAAK,CAAC,iBAAf6R,AACF,GAAA,C,CAGL,EAIT,EACF,CACF,E,E,C,gC,Q,I,Q,mB,Q,yB,Q,0B,Q,uB,Q,wB,Q,sB,Q,2B,Q,0B,Q,4B,Q,0B,Q,4B,Q,6B,Q,2B,Q,yB,Q,iC,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GErNSy+Y,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAW,EAAA,MAAA,CAAA,EAAA,sBAAA,W,O,E,mB,A,GACQ,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,GACF,EAAA,MAAA,CAAA,EAAA,mBAAA,W,O,E,gB,A,GACD,EAAA,MAAA,CAAA,EAAA,oBAAA,W,O,E,iB,A,GACC,EAAA,MAAA,CAAA,EAAA,mBAAA,W,O,E,gB,A,GAJjBA,IAAAA,EAAAA,EAAAA,qBAAW,EAAA,EAAA,6BACQ,EAAA,EAAA,2BACF,EAAA,EAAA,0BACD,EAAA,EAAA,2BACC,EAAA,EAAA,yB,E,C,oB,Q,4B,Q,0B,Q,yB,Q,0B,Q,yB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,uB,WE8BbW,OAAAA,C,G,E,M,C,E,c,WAsCAX,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,OAvEb,EAAA,qBAEA,IAAA,EAAA,EAAA,6BAC0D,EAAA,EAAA,2BAChC,EAAA,EAAA,0BAC0B,EAAA,EAAA,2BACE,EAAA,EAAA,0BACF,EAAA,EAAA,4BAC5B,EAAA,EAAA,kCACE,EAAA,EAAA,kCAG1B,EAAA,EAAA,oCACgB,EAAA,EAAA,gCACE,EAAA,EAAA,sCAIoC,EAAA,EAAA,wBAezCW,EAAuBr8E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAA1C,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAsBLniM,OAAQ,CACN5zI,KAAMzJ,OACNpG,QAAS,4BACX,CAEGmia,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,4BAAAA,AAAAA,IACAC,AAAAA,CAAAA,EAAAA,EAAAA,yBAAyB,AAAzBA,EAA0B,CAC3BC,aAAc,QAChB,GACGlnF,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAKmnF,AAAAA,CAAAA,EAAAA,EAAAA,0BAA0B,AAA1BA,IAA8B,CAAC,aAAa,EACjDnnF,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAKonF,AAAAA,CAAAA,EAAAA,EAAAA,yBAAyB,AAAzBA,IAA6B,CAAC,aAAa,EAChDC,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,EAAiB,CAAEvkS,MAAO,2BAA4B,IAAA,CAEzDr2G,WAAY,IACX,GAAA,eAEU05Y,EAAc77E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAasB,CAC/C5qV,KAAM,cAENiW,MAAOmxZ,IAEPpmX,MAAO,CACL,oBAAsBi0D,SAAAA,CAAtB,EAAoC,MAAA,CAAA,C,EACpC,eAAiBA,SAAAA,CAAjB,EAA+B,MAAA,CAAA,C,EAC/B,cAAgBA,SAAAA,CAAhB,EAA8B,MAAA,CAAA,C,EAE9B,kBAAoBA,SAAAA,CAApB,EAAkC,MAAA,CAAA,C,CACpC,EAEAtrF,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAmB,IAoBJsU,EACDA,EArBV0R,EAAahmB,EAAbgmB,IAAAA,CAAMxR,EAAOxU,EAAPwU,KAAS,CACvBgiU,EAAUH,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,IACRpsU,EAAM0uU,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,IAAN1uU,CAAR,CAEM+tN,EAAQqjH,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EACZ/mU,EACA,aACA1O,KAAAA,EACA2H,SAAAA,CAJF,EAIOwxU,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAYxxU,EACjBA,EAAAA,SAAAA,CAAAA,EAAK+G,OAAAA,EAAMiY,QAAQ,CAAGhf,EAAIA,CAAC,CAAC,EAC9B,A,GAEM44Z,EAAW9qF,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB/mU,EAAO,YAElC8mU,EAAW3gT,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACxB,IAA2Bu9L,EAArB5yN,EAAQoxU,EAAQljO,IAAI,CAAA,AAAY,OAAX0kH,CAAAA,EAAAA,EAAM5yN,KAAK,AAALA,GAAN4yN,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,CAAW,CAAG,EAAE,EAE3C,OAAO5yN,GAASoxU,EAAQh3B,OAAO,CAACp6S,GAASA,EAAQoxU,EAAQljO,IAAI,EAC/D,GAEML,EAAQj6E,AAAAA,CAAAA,EAAAA,EAAAA,GAAAA,AAAAA,EAAIvlB,OAAOa,AAAW,OAAXA,CAAAA,EAAAA,EAAM2+F,KAAK,AAALA,GAAN3+F,AAAAA,KAAAA,IAAAA,EAAAA,EAAekiU,EAAQgiB,QAAQ,CAAChiB,EAAQ+hB,YAAY,CAACnd,EAASh2U,KAAK,KACtF4tG,EAAOh6E,AAAAA,CAAAA,EAAAA,EAAAA,GAAG,AAAHA,EAAIvlB,OAAOa,AAAU,OAAVA,CAAAA,EAAAA,EAAM0+F,IAAI,AAAJA,GAAN1+F,AAAAA,KAAAA,IAAAA,EAAAA,EAAckiU,EAAQ4vF,OAAO,CAAC5vF,EAAQ6vF,WAAW,CAAC7vF,EAAQ8iB,QAAQ,CAACle,EAASh2U,KAAK,CAAE6tG,EAAM7tG,KAAK,MAEhHkha,EAAcntY,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAAA,GACzB8tH,EAASxsH,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,kBACtB,AAAInmB,EAAMiY,QAAQ,EAAIyrM,EAAM5yN,KAAK,CAACxF,MAAM,CAAG,EAClCqK,EAAE,oCAAqC+tN,EAAM5yN,KAAK,CAACxF,MAAM,EAG1Do4N,EAAM5yN,KAAK,CAAC,EAAE,EAAIoxU,EAAQh3B,OAAO,CAACxnF,EAAM5yN,KAAK,CAAC,EAAE,EACpDoxU,EAAQzkS,MAAM,CAACykS,EAAQljO,IAAI,CAAC0kH,EAAM5yN,KAAK,CAAC,EAAE,EAAG,yBAC7C6E,EAAEqK,EAAM2yI,MAAM,CACpB,GACMr1H,EAAO6I,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACpB,IAAI64E,EAAOkjO,EAAQljO,IAAI,GAMvB,OAJAA,EAAOkjO,EAAQ6iB,OAAO,CAAC/lP,EAAM,GAC7BA,EAAOkjO,EAAQ8iB,QAAQ,CAAChmP,EAAML,EAAM7tG,KAAK,EACzCkuG,EAAOkjO,EAAQ+vF,OAAO,CAACjzT,EAAMN,EAAK5tG,KAAK,EAEhCoxU,EAAQzkS,MAAM,CAACuhE,EAAM,eAC9B,GAEMkzT,EAAmB/rY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAAM,MAAA,qBAAwD,MAAA,CAAnC6rY,EAAYlha,KAAK,CAAG,WAAa,GAAE,c,GAC1Fqha,EAAUhsY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACvB,IAAM64E,EAAOkjO,EAAQljO,IAAI,CAACh/F,EAAM20C,GAAG,EAEnC,OAAO30C,EAAM20C,GAAG,EAAIutR,EAAQh3B,OAAO,CAAClsM,GAAQA,EAAO,IACrD,GACMozT,EAAUjsY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACvB,IAAM64E,EAAOkjO,EAAQljO,IAAI,CAACh/F,EAAM4F,GAAG,EAEnC,OAAO5F,EAAM4F,GAAG,EAAIs8T,EAAQh3B,OAAO,CAAClsM,GAAQA,EAAO,IACrD,GACMxsE,EAAWrM,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACxB,GAAInmB,EAAMwyB,QAAQ,CAAE,MAAO,CAAA,EAE3B,IAAM24O,EAAU,EAAE,CAElB,GAAI0mJ,AAAmB,UAAnBA,EAAS/ga,KAAK,CAChBq6Q,AAAAA,EAAQ/zQ,IAAI,CAAZ+zQ,KAAAA,CAAAA,EAAAA,CAAiB,OAAQ,OAAQ,MAC5B,CACL,IAAI86E,EAAQ/jB,EAAQljO,IAAI,GAKxB,GAHAinP,EAAQ/jB,EAAQ+vF,OAAO,CAAChsE,EAAOvnP,EAAK5tG,KAAK,EACzCm1V,EAAQ/jB,EAAQ8iB,QAAQ,CAACiB,EAAOtnP,EAAM7tG,KAAK,EAEvCqha,EAAQrha,KAAK,CAAE,CACjB,IAAMkuG,EAAOkjO,EAAQmwF,OAAO,CAACnwF,EAAQ+hB,YAAY,CAACgC,GAAQ,GAE1D/jB,CAAAA,EAAQoiB,OAAO,CAAC6tE,EAAQrha,KAAK,CAAEkuG,IAASmsK,EAAQ/zQ,IAAI,CAAC,OACvD,CAEA,GAAIg7Z,EAAQtha,KAAK,CAAE,CACjB,IAAMkuG,EAAOkjO,EAAQmwF,OAAO,CAACnwF,EAAQiiB,UAAU,CAAC8B,GAAQ,EAExD/jB,CAAAA,EAAQoiB,OAAO,CAACtlP,EAAMozT,EAAQtha,KAAK,GAAKq6Q,EAAQ/zQ,IAAI,CAAC,OACvD,CACF,CAEA,OAAO+zQ,CACT,GAMA,SAASonJ,IACH5zT,EAAM7tG,KAAK,CAAG,GAChB6tG,EAAM7tG,KAAK,IAEX4tG,EAAK5tG,KAAK,GACV6tG,EAAM7tG,KAAK,CAAG,EACd0ha,EAAa9zT,EAAK5tG,KAAK,GAEzB2ha,EAAc9zT,EAAM7tG,KAAK,CAC3B,CAEA,SAAS4ha,IACH/zT,EAAM7tG,KAAK,CAAG,EAChB6tG,EAAM7tG,KAAK,IAEX4tG,EAAK5tG,KAAK,GACV6tG,EAAM7tG,KAAK,CAAG,GACd0ha,EAAa9zT,EAAK5tG,KAAK,GAEzB2ha,EAAc9zT,EAAM7tG,KAAK,CAC3B,CAEA,SAAS6ha,IACPd,EAAS/ga,KAAK,CAAG,OACnB,CAEA,SAAS8ha,IACPf,EAAS/ga,KAAK,CAAG+ga,AAAmB,WAAnBA,EAAS/ga,KAAK,CAAgB,QAAU,QAC3D,CAEA,SAAS+ha,IACPhB,EAAS/ga,KAAK,CAAG+ga,AAAmB,SAAnBA,EAAS/ga,KAAK,CAAc,QAAU,MACzD,CAEA,SAAS2ha,EAAe3ha,CAAa,EACZ,WAAnB+ga,EAAS/ga,KAAK,EAAe8ha,IAEjClhZ,EAAK,eAAgB5gB,EACvB,CAEA,SAAS0ha,EAAc1ha,CAAa,EACX,SAAnB+ga,EAAS/ga,KAAK,EAAa+ha,IAE/BnhZ,EAAK,cAAe5gB,EACtB,CAmIA,MAjIAu5B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAMq5L,EAAO,SAACplN,CAAAA,CAAK4lW,CAAnB75U,EACE,IAAMyoY,EAAYroF,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYy5B,GACxB6uD,EAAWtoF,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYnsU,GAE7B,GAAKy0Z,EAASzna,MAAM,EAEpB,IAAM2yB,EAASikT,EAAQljO,IAAI,CAAC8zT,CAAS,CAACA,EAAUxna,MAAM,CAAG,EAAE,EACrDgkK,EAAQ4yK,EAAQljO,IAAI,CAAC+zT,CAAQ,CAACA,EAASzna,MAAM,CAAG,EAAE,EAClD0na,EAAW9wF,EAAQgiB,QAAQ,CAAC50L,GAC5B2jQ,EAAU/wF,EAAQ4vF,OAAO,CAACxiQ,GAE5B0jQ,IAAar0T,EAAM7tG,KAAK,GAC1B6tG,EAAM7tG,KAAK,CAAGkia,EACdP,EAAc9zT,EAAM7tG,KAAK,GAGvBmia,IAAYv0T,EAAK5tG,KAAK,GACxB4tG,EAAK5tG,KAAK,CAAGmia,EACbT,EAAa9zT,EAAK5tG,KAAK,GAGzBkha,EAAYlha,KAAK,CAAGoxU,EAAQgxF,QAAQ,CAACj1Y,EAAQqxI,GAC/C,GAEA0oL,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WACR,IAAMm7E,EAAcC,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,EAAQ/9E,WAAW,CAACr1U,GAClCqzZ,EAA0B3C,AAAAA,CAAAA,EAAAA,EAAAA,mBAAmB,AAAnBA,EAAoBr7E,WAAW,CAACr1U,GAC1DszZ,EAAwB1C,AAAAA,CAAAA,EAAAA,EAAAA,iBAAiB,AAAjBA,EAAkBv7E,WAAW,CAACr1U,GACtDuzZ,EAAuBzC,AAAAA,CAAAA,EAAAA,EAAAA,gBAAgB,AAAhBA,EAAiBz7E,WAAW,CAACr1U,GACpDwzZ,EAAwBnpF,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAK2mF,AAAAA,CAAAA,EAAAA,EAAAA,iBAAiB,AAAjBA,EAAkB37E,WAAW,CAACr1U,GAAQ,CAAC,aAAa,EACjFyzZ,EAAuBppF,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAK6mF,AAAAA,CAAAA,EAAAA,EAAAA,gBAAgB,AAAhBA,EAAiB77E,WAAW,CAACr1U,GAAQ,CAAC,aAAa,EAE/EiqZ,EAAc,CAClBt3Q,OAAQA,EAAO7hJ,KAAK,CACpByV,WAAY2rZ,EAAiBpha,KAA7ByV,AACF,EAEA,MAAA6J,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAgjZ,EAAAA,OAAA,CAAA4tB,AAAAA,CAAAA,EAAAA,EAAAA,UAAA,AAAAA,EAES7tB,EAFT,CAEoB,MACT,CACL,gBACA,kBAAgC,MAAA,CAAdtB,EAAS/ga,KAAK,EAChC,CACE,2BAA4BkP,EAAM0zZ,QAAlC,AACF,EACA1zZ,EAAM+/a,KAAK,CACZ,CAAA,MACO//a,EAAMwG,KADb,AACkB,GACV,CACP2mH,MAAOA,eAAMjtH,EAAAA,EAAAA,OAAAA,AAAAA,OAAAA,CAAAA,EAAAA,AAAW,OAAXA,CAAAA,EAAAA,EAAMitH,KAAK,AAALA,GAANjtH,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAAA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,EAAekQ,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAA5B+8G,MAAAA,CAA4B,MAAA,sBAAA,EAAA,CAEtBx3H,EAAEqK,EAAMmtH,KAAK,EAAC,CAAA,EAGpBwlB,OAAQA,WAAMzyI,OAAAA,EAAMyyI,MAAM,CAAAviI,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAkuV,EAAAA,iBAAA,CAA1B3rN,CAA0B,SAEZ,CACRi+Q,kBAAmB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAAK3G,EAC1B,CAAC,EAAA,CAAA/6Z,QAAAA,WAECgR,IAAAA,EAFD,MAAA,CAECA,AAAY,OAAZA,CAAAA,EAAAA,EAAMyyI,MAAM,AAANA,GAANzyI,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAe+pZ,GAFhB/6Z,A,CAE4B,GAAAkhB,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAwgZ,EAAAA,iBAAAA,CAAAowB,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAA,CAAA,IAAA,QAAA,EAKxB1tB,EACArJ,EANwB,CAMb,QACN4H,AAAmB,UAAnBA,EAAS/ga,KAAK,CAAe6ha,EAAcrha,KAAAA,CAAS,GACrD,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EACJ4O,GAFyD,CAG5DhR,QAASoC,KAAAA,C,G,EAIfpC,QAASA,WAAAkhB,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAgxa,EAAAA,QAAAA,CAAA,KAAA,CAAAhxa,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAsgZ,EAAAA,mBAAA,CAAAswB,AAAAA,CAAAA,EAAAA,EAAAA,UAAA,AAAAA,EAGE3tB,EAHXnka,CAGkC,SACjBsjC,EAAS1hC,KAAK,CAAA,KAClBwsB,EAAKxsB,KAAK,CAAA,eACFyha,EAAW,eACXG,EAAW,gBACVE,EAAY,eACbC,CAAW,GAAA,MAAAziZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAgvV,EAAAA,eAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAAAlwW,QAAAA,WAAA,MAAA,CAIxB2ia,AAAmB,WAAnBA,EAAS/ga,KAAK,CAAasf,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA4gZ,EAAAA,iBAAAA,CAAAgwB,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAJH9xb,CAIG,IAAA,oBAAA,EAGpBska,EAHoB,CAGC,WAChB70T,EAAM7tG,KAAK,CAAA,sBAAA,CAAAw8H,SAAAA,CAAAA,EAAX3uB,OAAAA,EAAM7tG,KAAK,CAAAw8H,C,EACCmlS,EADD,CACc,IAC7BN,EAAQrha,KAAK,CAAA,IACbsha,EAAQtha,KAAK,CAAA,KACZ4tG,EAAK5tG,KADO,AACF,GAAA,MAEjB+ga,AAAmB,SAAnBA,EAAS/ga,KAAK,CAAWsf,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA8gZ,EAAAA,gBAAA,CAAA8vB,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAFR,CAEQ,IAAA,mBAAA,EAGpBvtB,EAHoB,CAGA,WACf/0T,EAAK5tG,KAAK,CAAA,sBAAA,CAAAw8H,SAAAA,CAAAA,EAAV5uB,OAAAA,EAAK5tG,KAAK,CAAAw8H,C,EACEklS,EADF,CACc,IAC5BL,EAAQrha,KAAK,CAAA,IACbsha,EAAQtha,KADK,AACA,GAAA,MAAAsf,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA0gZ,EAAAA,gBAAAA,CAAAkwB,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAA,CAAA,IAAA,mBAAA,EAKdztB,EALc,CAKM,WACf7vM,EAAM5yN,KAAK,CAAA,sBAAAw8H,SAAAA,CAAA,EAAXo2F,OAAAA,EAAM5yN,KAAK,CAAAw8H,C,EAAA,MACL3uB,EAAM7tG,KAAK,CAAA,iBAAA,CAAAw8H,SAAAA,CAAAA,EAAX3uB,OAAAA,EAAM7tG,KAAK,CAAAw8H,C,EAEVmlS,EAFU,CAEG,KADf/zT,EAAK5tG,KAAK,CAAA,gBAAA,CAAAw8H,SAAAA,CAAAA,EAAV5uB,OAAAA,EAAK5tG,KAAK,CAAAw8H,C,EAETklS,EAFS,CAEG,IACtBL,EAAQrha,KAAK,CAAA,IACbsha,EAAQtha,KADK,AACA,GAAA,MAAA,A,CAEtB,GAAA,C,EAIPiwK,QAAS7gK,EAAM6gK,OAAfA,AACF,EAGN,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,sC,Q,I,Q,oB,Q,4B,Q,0B,Q,yB,Q,0B,Q,yB,Q,2B,Q,iC,Q,iC,Q,mC,Q,+B,Q,qC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,+B,WEzVaswP,OAAAA,C,G,E,M,C,E,sB,WA4BAX,OAAAA,C,G,I,E,E,OA5Cb,EAAA,6BAEA,IAAA,EAAA,EAAA,qBACa,EAAA,EAAA,sBAGb,EAAA,EAAA,+BAI8B,EAAA,EAAA,wBAMjBW,EAA+Bv8E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,CACvDxvR,OAAQ,CACNvmD,KAAM,CAACzJ,OAAQtH,MAAqC,CACpDkB,QAASoC,KAAAA,CACX,EACAkhC,SAAU,CACRzzB,KAAM,CAACE,QAAS3J,OAAQtH,MAA+C,CACvEkB,QAAS,CAAA,CACX,EACAg3X,SAAU,CACRnnX,KAAMmsV,EAAAA,SAAAA,CACNh8V,QAAS,OACX,EACAi3X,SAAU,CACRpnX,KAAMmsV,EAAAA,SAAAA,CACNh8V,QAAS,OACX,EACAyka,SAAU,CACR50Z,KAAMmsV,EAAAA,SAAAA,CACNh8V,QAAS,WACX,EACAouB,KAAMhoB,OACNu8Z,SAAU,CACR9yZ,KAAMzJ,OACNpG,QAAS,OACX,CACF,EAAG,uBAEUwha,EAAsB/7E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,CACpD5qV,KAAM,sBAENiW,MAAOqxZ,IAEPtmX,MAAO,CACL,aAAcq4Y,WAAM,MAAA,CAAA,C,EACpB,cAAeC,WAAM,MAAA,CAAA,C,EACrB,aAAcC,WAAM,MAAA,CAAA,C,EACpB,aAAcC,WAAM,MAAA,CAAA,C,EACpB,aAAcC,WAAM,MAAA,CAAA,C,CACtB,EAEA9va,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAY,IAARgmB,EAAMhmB,EAANgmB,IAAQ,CAChBkiZ,EAAeztY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC5B,OAAOn4B,MAAMyS,OAAO,CAACT,EAAMwyB,QAAQ,EAC/BxyB,EAAMwyB,QAAQ,CAACjnB,QAAQ,CAAC,QACxB,CAAC,CAACvL,EAAMwyB,QAAQ,AACtB,GACMqhY,EAAc1tY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC3B,OAAOn4B,MAAMyS,OAAO,CAACT,EAAMwyB,QAAQ,EAC/BxyB,EAAMwyB,QAAQ,CAACjnB,QAAQ,CAAC,QACxB,CAAC,CAACvL,EAAMwyB,QAAQ,AACtB,GACMshY,EAAc3tY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC3B,OAAOn4B,MAAMyS,OAAO,CAACT,EAAMwyB,QAAQ,EAC/BxyB,EAAMwyB,QAAQ,CAACjnB,QAAQ,CAAC,QACxB,CAAC,CAACvL,EAAMwyB,QAAQ,AACtB,GACMuhY,EAAc5tY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC3B,OAAOn4B,MAAMyS,OAAO,CAACT,EAAMwyB,QAAQ,EAC/BxyB,EAAMwyB,QAAQ,CAACjnB,QAAQ,CAAC,QACxB,CAAC,CAACvL,EAAMwyB,QAAQ,AACtB,GAEA,SAASkgY,IACPhhZ,EAAK,aACP,CAEA,SAAS6gZ,IACP7gZ,EAAK,aACP,CAEA,SAASmhZ,IACPnhZ,EAAK,aACP,CAEA,SAASkhZ,IACPlhZ,EAAK,cACP,CAqDA,MAnDAsmU,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WAER,MAAA5nU,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,MAEW,CACL,yBAHN,AAIK,EAAA,CAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA,CAAA,MAAA,oCAAA,SAIYy1D,EAAa9ia,KAAK,CAAA,KACtBkP,EAAMsd,IAAI,CAAA,QAAA,OAAA,QAAA,CAAA,EAAA,QAGPs1Y,CAAY,EAAA,MAAAxiZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA,CAAA,IAAA,WAAA,MAAA,mCAAA,SAMX01D,EAAY/ia,KAAK,CAAA,QAAA,cAAA,KAErBkP,EAAM2zZ,QAAQ,CAAA,QAAA,OAAA,QAEXd,CAAW,EAAA,MAAAziZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA4jZ,EAAAA,OAAA,CAAA,CAAA,IAAA,aAAA,EAAA,MAAA5jZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,IAAA,gBAAA,MAAA,+BAAA,EAAA,CAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA,CAAA,SAUR21D,EAAYhja,KAAK,CAAA,KACrBkP,EAAMmmX,QAAQ,CAAA,QAAA,OAAA,QAEXusC,CAAW,EAAA,MAAAtiZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA,CAAA,SAIV41D,EAAYjja,KAAK,CAAA,KACrBkP,EAAMkmX,QAAQ,CAAA,QAAA,OAAA,QAEXqsC,CAAW,EAAA,MAAA,EAAA,CAK/B,GAEO,CAAC,CACV,CACF,E,E,C,I,Q,4B,Q,oB,Q,qB,Q,8B,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GErJS2B,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAU,EAAA,MAAA,CAAA,EAAA,OAAA,W,O,E,I,A,GACN,EAAA,MAAA,CAAA,EAAA,OAAA,W,O,E,I,A,GACA,EAAA,MAAA,CAAA,EAAA,UAAA,W,O,E,O,A,GAFJA,IAAAA,EAAAA,EAAAA,oBAAU,EAAA,EAAA,cACN,EAAA,EAAA,cACA,EAAA,EAAA,gB,E,C,mB,Q,a,Q,a,Q,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,sB,WEUAM,OAAAA,C,G,E,M,C,E,a,WAWAN,OAAAA,C,G,I,E,E,iC,E,E,OAtBb,EAAA,eAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,oCACc,EAAA,EAAA,gCAC1B,EAAA,EAAA,6BAGf,EAAA,EAAA,wBAGaM,EAAsB1/E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAzC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACLvnN,MAAO,CACLxuH,KAAME,QACN/P,QAAS,CAAA,CACX,CAEG0lV,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,kBAAAA,AAAAA,IACA8wB,AAAAA,CAAAA,EAAAA,EAAAA,kBAAkB,AAAlBA,IACApI,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,KACF,cAEU42D,EAAav/E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,CAC3C5qV,KAAM,aAENiW,MAAOw0Z,IAEP9gZ,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACfulU,EAAeV,AAAAA,CAAAA,EAAAA,EAAAA,MAAAA,AAAAA,IAAfU,UAAR,CACQkgC,EAAoBC,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa5lW,GAAjC2lW,eAAR,CAkBA,MAhBA3tB,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WAAA5nU,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAApQ,EAAAqL,GAAA,CAAV2sU,CAAU,MAEC,CACL,cACA,CAAE,qBAAsBh4U,EAAMutH,KAA5B,AAAkC,EACpCk4M,EAAW30U,KAAK,CAChBkP,EAAM+/a,KAAK,CACZ,CAAA,MACM,CACLp6E,EAAgB70W,KAAK,CACrBkP,EAAMwG,KAAK,CAHZ,AAIA,EACStG,E,GAIP,CAAC,CACV,CACF,E,E,C,gC,Q,I,Q,c,Q,kC,Q,mC,Q,+B,Q,4B,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,gB,WEiCau0Z,OAAAA,C,G,E,M,C,E,O,WA0BAL,OAAAA,C,G,I,E,E,mC,E,E,iC,E,E,uCA5Gb,EAAA,eAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,iCACP,EAAA,EAAA,6BAIpB,EAAA,EAAA,OAA6C,EAAA,EAAA,wBAUvCM,EACG9tE,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYn9S,MAAM,CAAC,SAACzpC,CAAAA,CAAO1B,CAAlC,EAKE,OAJA0B,CAAK,CAAC1B,EAAI,CAAG,CACXS,KAAM,CAACE,QAAS3J,OAAQ6J,OAAO,CAC/BjQ,QAAS,CAAA,CACX,EACO8Q,CACT,EAAG,CAAC,GAGA20Z,EACG/tE,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYn9S,MAAM,CAAC,SAACzpC,CAAAA,CAAO1B,CAAlC,EAME,OAJA0B,CAAK,CADc,SAAWoK,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW9L,GACzB,CAAG,CACjBS,KAAM,CAACzJ,OAAQ6J,OAAO,CACtBjQ,QAAS,IACX,EACO8Q,CACT,EAAG,CAAC,GAGA40Z,EACGhuE,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYn9S,MAAM,CAAC,SAACzpC,CAAAA,CAAO1B,CAAlC,EAME,OAJA0B,CAAK,CADa,QAAUoK,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW9L,GACxB,CAAG,CAChBS,KAAM,CAACzJ,OAAQ6J,OAAO,CACtBjQ,QAAS,IACX,EACO8Q,CACT,EAAG,CAAC,GAGA60Z,EAAU,CACdC,IAAK5pa,OAAO6C,IAAI,CAAC2ma,GACjBxlV,OAAQhkF,OAAO6C,IAAI,CAAC4ma,GACpB7/U,MAAO5pF,OAAO6C,IAAI,CAAC6ma,EACrB,EA0BMG,EAAoB,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,UAAmB,CAE/EN,EAAgB3/E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAnC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACLtnN,KAAM,CACJzuH,KAAM,CAACE,QAAS3J,OAAQ6J,OAAO,CAC/BjQ,QAAS,CAAA,CACX,CACGwla,EAAAA,GAAAA,CACHxlV,OAAQ,CACNnwE,KAAM,CAACzJ,OAAQ6J,OAAO,CACtBjQ,QAAS,IACX,CACGyla,GAAAA,GAAAA,CACH7/U,MAAO,CACL/1E,KAAM,CAACzJ,OAAQ6J,OAAO,CACtBjQ,QAAS,IACX,CACG0la,GAAAA,GAAAA,CACHI,UAAW,CACTj2Z,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAY77T,SAAAA,CAAZ67T,EAAyBm6D,OAAAA,EAAkBxpZ,QAAQ,CAACwzB,E,CACtD,CAEG61S,GAAAA,AAAAA,CAAAA,EAAAA,EAAAA,kBAAAA,AAAAA,IACA0oB,AAAAA,CAAAA,EAAAA,EAAAA,YAAY,AAAZA,KACF,QAEU82D,EAAOz/E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,CACrC5qV,KAAM,OAENiW,MAAOy0Z,IAEP/gZ,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACjB2/J,EAAU15I,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACvB,IAGIpnB,EAWW,EAdT2E,EAAmB,EAAE,CAI3B,IAAK3E,KAAQ81Z,EACXA,CAAO,CAAC91Z,EAAK,CAACnN,OAAO,CAAC6tD,SAAAA,CADxB,EAEI,IAAM3uD,EAAoCkP,CAAK,CAASy/C,EAAK,CACvDvkC,EAAY+5Y,AAlE5B,SAA0Bl2Z,CAA0B,CAAE0gD,CAAY,CAAEnhD,CAA8B,EAChG,IAAI4c,EAAoBnc,EACxB,GAAIT,AAAO,MAAPA,GAAeA,AAAQ,CAAA,IAARA,GAGnB,GAAImhD,EAAM,CACR,IAAMy1W,EAAaz1W,EAAKhxD,OAAO,CAACsQ,EAAM,IACtCmc,GAAa,IAAc,MAAA,CAAVg6Y,EACnB,OAOA,CANa,QAATn2Z,GACFmc,CAAAA,EAAY,KAAOA,CADrB,EAMInc,AAAS,QAATA,GAAmBT,CAAAA,AAAQ,KAARA,GAAcA,AAAQ,CAAA,IAARA,CAAQ,GAEpC4c,EAAUpf,WAAW,GAIvBof,AADPA,CAAAA,GAAa,IAAO,MAAA,CAAH5c,EAAjB4c,EACiBpf,WAAW,GAC9B,EA4C4CiD,EAAM0gD,EAAM3uD,GAC1CoqB,GAAWxX,EAAWtM,IAAI,CAAC8jB,EACjC,GAGF,IAAMi6Y,EAAgBzxZ,EAAU9C,IAAI,CAACsa,SAAAA,CAArC,EAAkDA,OAAAA,EAAUrR,UAAU,CAAC,S,GAWvE,OATAnG,EAAUtM,IAAI,CAAC,CAAA,EAAfsM,CAEE,QAAS,CAACyxZ,GAAiB,CAACn1Z,EAAMwtH,IAAI,AACtC,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAHa,EAGZ,SAAmB,MAAA,CAAVxtH,EAAMwtH,IAAI,EAAKxtH,EAAMwtH,IAAI,EACnC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAJa,EAIZ,UAAsB,MAAA,CAAZxtH,EAAMkvE,MAAM,EAAKlvE,EAAMkvE,MAAM,EACxC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EALa,EAKZ,SAAoB,MAAA,CAAXlvE,EAAM80E,KAAK,EAAK90E,EAAM80E,KAAK,EACrC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EANa,EAMZ,cAA6B,MAAA,CAAf90E,EAAMg1Z,SAAS,EAAKh1Z,EAAMg1Z,SAAzC,EANa,CAGb,GAMKtxZ,CACT,GAEA,OAAO,WAMJxD,IAAAA,EANUC,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAEH,EAAMqL,GAAG,CAAE,CACxB00a,MAAO,CACLlgR,EAAQ/uK,KAAK,CACbkP,EAAM+/a,KAAK,CACZ,CACDv5a,MAAOxG,EAAMwG,KAAbA,AACF,EAAA,AAAgB,OAAbtG,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,G,CACL,CACF,E,E,C,kC,Q,gC,Q,sC,Q,c,Q,kC,Q,gC,Q,4B,Q,I,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,gB,WE7Dak1Z,OAAAA,C,G,E,M,C,E,O,WA0BAd,OAAAA,C,G,I,E,E,mC,E,E,iC,E,E,uC,E,E,uCAlHb,EAAA,eAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,iCACP,EAAA,EAAA,6BAIpB,EAAA,EAAA,OAA6C,EAAA,EAAA,wBAOvCe,EAAY,CAAC,QAAS,MAAO,SAAkB,CAM/CC,EAAQ,CAAC,gBAAiB,eAAgB,eAAwB,CAExE,SAASC,EAGN79Z,CAAc,CAAEmV,CAA2B,EAC5C,MAAO+5U,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYn9S,MAAM,CAAC,SAACzpC,CAAAA,CAAO1B,CAAlC,EAGE,OADA0B,CAAK,CADatI,EAAS0S,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW9L,GACtB,CAAGuO,IACZ7M,CACT,EAAG,CAAC,EACN,CAEA,IAAMw1Z,EAAgB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAGH,GAAAA,MAAAA,CAAJ,CAAe,WAAY,UAAmB,EAE7DI,EAAkB12X,SAAAA,CAAxB,EAAqCy2X,OAAAA,EAAajqZ,QAAQ,CAACwzB,E,EACrD22X,EAAaH,EAA0C,QAAS,WAAO,MAAA,CAC3Ex2Z,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAW66D,CACb,C,GAEME,EAAkB,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAGN,GAAAA,MAAAA,CAAW,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAGC,IAEnCM,EAAoB72X,SAAAA,CAA1B,EAAuC42X,OAAAA,EAAepqZ,QAAQ,CAACwzB,E,EACzD82X,EAAeN,EAA8C,UAAW,WAAO,MAAA,CACnFx2Z,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAWg7D,CACb,C,GAEME,EAAuB,AAAC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAGT,GAAAA,MAAAA,CAAW,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAGC,GAAlB,CAAyB,UAAmB,EAEnES,EAAyBh3X,SAAAA,CAA/B,EAA4C+2X,OAAAA,EAAqBvqZ,QAAQ,CAACwzB,E,EACpEi3X,EAAoBT,EAAwD,eAAgB,WAAO,MAAA,CACvGx2Z,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAWm7D,CACb,C,GAEMlB,EAAU,CACdrxM,MAAOt4N,OAAO6C,IAAI,CAAC2na,GACnBpqS,QAASpgI,OAAO6C,IAAI,CAAC8na,GACrBI,aAAc/qa,OAAO6C,IAAI,CAACioa,EAC5B,EAEME,EAAW,CACf1yM,MAAO,QACPl4F,QAAS,UACT2qS,aAAc,eAChB,EAiBab,EAAgBtgF,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAnC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACL/gN,MAAO90H,QACPk3Z,UAAWl3Z,QACXukN,MAAO,CACLzkN,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAW66D,CACb,CACGC,EAAAA,GAAAA,CACHpqS,QAAS,CACPvsH,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAWg7D,CACb,CACGC,GAAAA,GAAAA,CACHI,aAAc,CACZl3Z,KAAMzJ,OACNpG,QAAS,KACT0rW,UAAWm7D,CACb,CAEGC,GAAAA,EACAphF,AAAAA,CAAAA,EAAAA,EAAAA,kBAAAA,AAAAA,IACA0oB,AAAAA,CAAAA,EAAAA,EAAAA,YAAY,AAAZA,KACF,QAEUg3D,EAAO3/E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAmB,CACrC5qV,KAAM,OAENiW,MAAOo1Z,IAEP1hZ,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACjB2/J,EAAU15I,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACvB,IAGIpnB,EASW,EAZT2E,EAAmB,EAAE,CAI3B,IAAK3E,KAAQ81Z,EACXA,CAAO,CAAC91Z,EAAK,CAACnN,OAAO,CAAC6tD,SAAAA,CADxB,EAEI,IAAM3uD,EAAiBkP,CAAK,CAASy/C,EAAK,CACpCvkC,EAAY+5Y,AAvD5B,SAA0Bl2Z,CAA0B,CAAE0gD,CAAY,CAAEnhD,CAAW,EAC7E,IAAI4c,EAAYg7Y,CAAQ,CAACn3Z,EAAK,CAC9B,GAAIT,AAAO,MAAPA,GAGJ,GAAImhD,EAAM,CAER,IAAMy1W,EAAaz1W,EAAKhxD,OAAO,CAACsQ,EAAM,IACtCmc,GAAa,IAAc,MAAA,CAAVg6Y,EACnB,CAGA,MAAOh6Y,AADPA,CAAAA,GAAa,IAAO,MAAA,CAAH5c,EAAjB4c,EACiBpf,WAAW,GAC9B,EA0C4CiD,EAAM0gD,EAAM3uD,GAC1CoqB,GAAWxX,EAAWtM,IAAI,CAAC8jB,EACjC,GAWF,OARAxX,EAAUtM,IAAI,CAAC,CAAA,EAAfsM,CACE,oBAAqB1D,EAAMm2Z,SAAS,CACpC,eAAgBn2Z,EAAM+zH,KAAK,AAC3B,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAHa,EAGZ,SAAoB,MAAA,CAAX/zH,EAAMwjN,KAAK,EAAKxjN,EAAMwjN,KAAK,EACrC,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAJa,EAIZ,WAAwB,MAAA,CAAbxjN,EAAMsrH,OAAO,EAAKtrH,EAAMsrH,OAAO,EAC3C,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EALa,EAKZ,iBAAmC,MAAA,CAAlBtrH,EAAMi2Z,YAAY,EAAKj2Z,EAAMi2Z,YAA/C,EALa,CAGb,GAKKvyZ,CACT,GAEA,OAAO,WAOJxD,IAAAA,EAPUC,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,CAAAA,AAAAA,EAAEH,EAAMqL,GAAG,CAAE,CACxB00a,MAAO,CACL,QACAlgR,EAAQ/uK,KAAK,CACbkP,EAAM+/a,KAAK,CACZ,CACDv5a,MAAOxG,EAAMwG,KAAbA,AACF,EAAA,AAAgB,OAAbtG,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,G,CACL,CACF,E,E,C,kC,Q,gC,Q,sC,Q,sC,Q,c,Q,kC,Q,gC,Q,4B,Q,I,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,U,WEpJa8zZ,OAAAA,C,GALb,EAAA,eAKO,IAAMA,EAAUv/E,AAAAA,CAAAA,EAAAA,AAHvB,EAAA,wBAGuBA,sBAAsB,AAAtBA,EAAuB,WAAY,MAAO,U,E,C,c,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,6B,WEepD2hF,OAAAA,C,G,E,M,C,E,oB,WAQAxF,OAAAA,C,G,I,E,E,OA5Bb,EAAA,2BAEA,IAAA,EAAA,EAAA,qBACa,EAAA,EAAA,kCAGb,EAAA,EAAA,+BAC2B,EAAA,EAAA,oCAG3B,EAAA,EAAA,wBAUawF,EAA6BthF,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,CACrDm0B,WAAY3zW,OACZ81H,MAAO91H,OACPq9I,OAAQr9I,OACRiR,WAAYjR,OACZwoC,QAASutS,AAAAA,CAAAA,EAAAA,EAAAA,SAAAA,AAAAA,GACX,EAAG,qBAEUulF,EAAoBj8E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAA2C,CAC1E5qV,KAAM,oBAENiW,MAAOo2Z,IAEPrrX,MAAO,CACL0sD,MAAOA,WAAM,MAAA,CAAA,C,EACb,eAAgBmsV,WAAM,MAAA,CAAA,C,CACxB,EAEAlwa,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAmB,IAAfgmB,EAAahmB,EAAbgmB,IAAAA,CAAMxR,EAAOxU,EAAPwU,KAAS,CAC6Bu9V,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,kBAAkB,AAAlBA,EAAmBz9V,EAAO,SAA5E09V,EAAkDD,EAAlDC,sBAAAA,CAAwBC,EAA0BF,EAA1BE,qBAAhC,CAEA,SAAS7/T,IACPpsB,EAAK,QACP,CAEA,SAAS2kZ,IACP3kZ,EAAK,eACP,CA6DA,MA3DAsmU,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WACR,IAAMzyO,EAAa,CAAC,CAAErlG,CAAAA,EAAMhR,OAAO,EAAI8Q,EAAM2yI,MAAAA,AAAAA,EACvCk5N,EAAY,CAAC,CAAE3rW,CAAAA,EAAMktH,MAAM,EAAIptH,EAAMipW,UAAAA,AAAAA,EAE3C,MAAA74V,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,MAEW,CACL,uBACA,CACE,kCAAmC,CAAC,CAACpQ,EAAM89B,OAA3C,AACF,EACA4/T,EAAuB5sW,KAAK,CAC7B,CAAA,MACO6sW,EAAsB7sW,KAAK,CAAA,QACzBgtC,CAAO,EAAA,CAEf59B,EAAM6R,OAAO,EAAA3B,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAFE,MAAA,CAEF,IAAA,UAAA,MAAA,+BAAA,EAAA,CAETlQ,EAAM6R,OAAO,GAAE,EAInBwzF,GAAUn1F,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAs0V,EAAAA,eAAA,CANG,CAMH,IAAA,UAAA,KAC4B1kW,EAAMuG,UADlC,AAC4C,EAAA,CAAArX,QAAAA,eAEhDgR,EAAAA,EAFgD,MAAA,CAAAkQ,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAlhB,MAAAA,CAAA,IACzC8Q,EAAM2yI,MAAM,CAAA,MAAA,+BAAA,EAAA,CACnBzyI,AAAAA,OAAAA,CAAAA,EAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAAA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,EAAqBF,EAAM2yI,MAAM,CADd,EAAA,AAAA,CACc,GAKvCk5N,GAASz7V,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAL8B,MAAA,CAK9B,MAAA,8BAAA,EAAA,CAEL,AAAClQ,EAAMktH,MAAM,CAKYh9G,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAkuV,EAAAA,iBAAA,CAAA,CAAA,IAAA,kBAAA,SAKZ,CAACt+V,EAAMipW,UAAU,CAAA,SAClB,CACR9K,KAAM,CACJtnQ,KAAM72F,EAAMipW,UAAU,CACtB57O,QAAS,MACX,CACF,CAAC,EAAA,CAAAn+H,QAAAA,WAECgR,IAAAA,EAFD,MAAA,CAECA,AAAY,OAAZA,CAAAA,EAAAA,EAAMktH,MAAM,AAANA,GAANltH,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAFDhR,A,CAEiB,GAlBPkhB,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA+tV,EAAAA,IAAAA,CAFR,CAEQ,IAAA,aAAA,KAGJn+V,EAAMipW,UAAU,CAAA,QAAA,OAAA,QAEbotD,CAAa,EAAA,MAe1B,EAFqB,CAOhC,GAEO,CAAC,CACV,CACF,E,E,C,I,Q,0B,Q,oB,Q,iC,Q,8B,Q,mC,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,4B,WElFa/E,OAAAA,C,G,E,M,C,E,mB,WAiBAR,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,2B,E,E,OA7Cb,EAAA,0BAEA,IAAA,EAAA,EAAA,qBACa,EAAA,EAAA,kCAGb,EAAA,EAAA,kCACuC,EAAA,EAAA,mCACvB,EAAA,EAAA,oCAIsC,EAAA,EAAA,wBAgBzCQ,EAA4Bx8E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAA/C,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACL1pN,MAAO91H,OACPiha,aAAct3Z,QACdgZ,SAAU,CAAChZ,QAASE,OAAQ7J,OAA+D,CAC3Fo+Z,SAAUz0Z,QACVsH,WAAY,CACVxH,KAAMzJ,OACNpG,QAAS,mBACX,EACAg/Y,kBAAmB,CACjBnvY,KAAMzJ,OACNpG,QAAS,2BACX,CAEGsna,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,iBAAiB,AAAjBA,KACF,oBAEU1F,EAAmBn8E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAA0C,CACxE5qV,KAAM,mBAENiW,MAAOsxZ,IAEPvmX,MAAO,CACL,oBAAsBi0D,SAAAA,CAAtB,EAAwC,MAAA,CAAA,C,EACxC,eAAiBA,SAAAA,CAAjB,EAAkC,MAAA,CAAA,C,EAClC,cAAgBA,SAAAA,CAAhB,EAAiC,MAAA,CAAA,C,CACnC,EAEAtrF,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAiBA,EAAbgmB,IAAAA,CAAe,IAATxR,EAAOxU,EAAPwU,KAAS,CACvBu2Z,EAAU/xY,AAAAA,CAAAA,EAAAA,EAAAA,GAAG,AAAHA,IAE4BiyY,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAY32Z,GAAhD42Z,EAAoCD,EAApCC,WAAAA,CAAalzM,EAAuBizM,EAAvBjzM,KAAAA,CAAOmzM,EAAgBF,EAAhBE,WAA5B,CACM30F,EAAUH,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,IAEVknF,EAAapkY,AAAAA,CAAAA,EAAAA,EAAAA,UAAU,AAAVA,IACbiyY,EAAYjyY,AAAAA,CAAAA,EAAAA,EAAAA,UAAU,AAAVA,IACZkyY,EAAYlyY,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAW,CAAA,GAEvBte,EAAa4f,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC1B,OAAO,AAAC4wY,EAAUjma,KAAK,CAAsBkP,EAAMkuY,iBAAiB,CAA1CluY,EAAMuG,UAAU,AAC5C,EAEuB,CAAA,UAAnBvG,EAAMiY,QAAQ,EAAgByrM,EAAM5yN,KAAK,CAACxF,MAAM,CAAG,IACrD29Z,EAAWn4Z,KAAK,CAAG4yN,EAAM5yN,KAAK,CAAC,EAAE,CAC7B4yN,EAAM5yN,KAAK,CAACxF,MAAM,CAAG,GACvBwra,CAAAA,EAAUhma,KAAK,CAAG4yN,EAAM5yN,KAAK,CAAC4yN,EAAM5yN,KAAK,CAACxF,MAAM,CAAG,EAAE,AAAF,GAIvD,IAAM0ra,EAAQ7wY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACrB,IAAMvgB,EAAM,CAAC,SAAU,SAAS,CAAC2F,QAAQ,CAAC,AAAA,CAAA,EAAA,EAAA,CAAqB,AAArB,EAAOvL,EAAMiY,QAAQ,GAAI9Y,OAAOa,EAAMiY,QAAQ,EAAIgY,IAE5F,OAAOyzL,EAAM5yN,KAAK,CAACxF,MAAM,EAAIsa,CAC/B,GA8DA,SAASk4B,EAAShtC,CAAc,EAC1BkP,AAAmB,UAAnBA,EAAMiY,QAAQ,CAChBg/Y,AAxDJ,SAAuBnma,CAAc,EACnC,IAAM4a,EAASw2T,EAAQuiB,UAAU,CAAC3zV,GAQlC,GANI4yN,AAAuB,IAAvBA,EAAM5yN,KAAK,CAACxF,MAAM,CACpB29Z,EAAWn4Z,KAAK,CAAGQ,KAAAA,EACa,IAAvBoyN,EAAM5yN,KAAK,CAACxF,MAAM,GAC3B29Z,EAAWn4Z,KAAK,CAAG4yN,EAAM5yN,KAAK,CAAC,EAAE,CACjCgma,EAAUhma,KAAK,CAAGQ,KAAAA,GAEf23Z,EAAWn4Z,KAAK,EAGd,GAAKgma,EAAUhma,KAAK,CAwBzBm4Z,EAAWn4Z,KAAK,CAAGA,EACnBgma,EAAUhma,KAAK,CAAGQ,KAAAA,EAClBoyN,EAAM5yN,KAAK,CAAG,CAACm4Z,EAAWn4Z,KAAK,CAAC,KA1BL,CAC3B,GAAIoxU,EAAQg1F,SAAS,CAACxrZ,EAAQu9Y,EAAWn4Z,KAAK,EAAG,CAC/Cm4Z,EAAWn4Z,KAAK,CAAGQ,KAAAA,EACnBoyN,EAAM5yN,KAAK,CAAG,EAAE,CAChB,MACF,CAAWoxU,EAAQgxF,QAAQ,CAACxnZ,EAAQu9Y,EAAWn4Z,KAAK,GAClDgma,EAAUhma,KAAK,CAAGoxU,EAAQi1F,QAAQ,CAAClO,EAAWn4Z,KAAK,EACnDm4Z,EAAWn4Z,KAAK,CAAG4a,GAEnBorZ,EAAUhma,KAAK,CAAGoxU,EAAQi1F,QAAQ,CAACzrZ,GAMrC,IAAK,IAHCi3E,EAAOu/O,EAAQwkB,OAAO,CAACowE,EAAUhma,KAAK,CAAEm4Z,EAAWn4Z,KAAK,CAAE,QAC1Dsma,EAAe,CAACnO,EAAWn4Z,KAAK,CAAC,CAE9BzF,EAAI,EAAGA,EAAIs3F,EAAMt3F,IAAK,CAC7B,IAAMgsa,EAAWn1F,EAAQmwF,OAAO,CAACpJ,EAAWn4Z,KAAK,CAAEzF,GACnD+ra,EAAahga,IAAI,CAACiga,EACpB,CAEAD,EAAahga,IAAI,CAAC0/Z,EAAUhma,KAAK,EAEjC4yN,EAAM5yN,KAAK,CAAGsma,CAChB,OAzBEnO,EAAWn4Z,KAAK,CAAG4a,EACnBg4M,EAAM5yN,KAAK,CAAG,CAACm4Z,EAAWn4Z,KAAK,CAAC,AA6BpC,EAgBiBA,GACJkP,EAAMiY,QAAQ,CACvBq/Y,AAhBJ,SAA0Bxma,CAAc,EACtC,IAAMqmB,EAAQusM,EAAM5yN,KAAK,CAAC4lE,SAAS,CAACg2F,SAAAA,CAApC,EAAiDw1K,OAAAA,EAAQg1F,SAAS,CAACxqQ,EAAW57J,E,GAE9E,GAAIqmB,AAAU,KAAVA,EACFusM,EAAM5yN,KAAK,CAAG,AAAC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG4yN,EAAM5yN,KAAK,EAAA,MAAA,CAAf,CAAiBA,EAAM,MAChC,CACL,IAAMA,EAAS,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAG4yN,EAAM5yN,KAAK,EAC7BA,EAAMymB,MAAM,CAACJ,EAAO,GACpBusM,EAAM5yN,KAAK,CAAGA,CAChB,CACF,EAMoBA,GAEhB4yN,EAAM5yN,KAAK,CAAG,CAACA,EAAM,AAEzB,CAEA,MAtEAu5B,AAAAA,CAAAA,EAAAA,EAAAA,KAAAA,AAAAA,EAAMusY,EAAa,SAACt4Z,CAAAA,CAAK4lW,CAAzB75U,EACO65U,GAEL6yD,CAAAA,EAAUjma,KAAK,CAAGoxU,EAAQgxF,QAAQ,CAAC50Z,CAAG,CAAC,EAAE,CAAC0gG,IAAI,CAAEklQ,CAAM,CAAC,EAAE,CAACllQ,IAAI,CAAA,CAChE,GAkEO,WAAA5uF,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAP,MAAA,CAAO,MAAA,qBAAA,EAAA,CAEDpQ,EAAM0zZ,QAAQ,EAAAtjZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAFb,MAAA,CAEa,IAAA,QAAA,MAAA,4BAAA,EAAA,CAEV,CAACpQ,EAAMu2Z,YAAY,EAAAnmZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAFT,MAAA,CAES,IAAA,iBAAA,MAAA,0BAAA,EAAA,CAAAqxa,AAAAA,CAAAA,EAAAA,EAAAA,eAAA,AAAAA,EAAA,KAAA,EAGnB5qB,EAAY/la,KAAK,CAACzC,GAAG,CAACkpa,SAAAA,CAAtBV,EAA0BzmZ,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAHP,MAAA,CAGO,MAEjB,CACL,2BACA,qCAJsB,AAKvB,EAAA,CACAmnZ,EAAI,C,GACP,EAELnnZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAs0V,EAAAA,eAAA,CAJQ,CAIR,KAEuBn+V,EAAWzV,KAFlC,AAEuC,EAAA,CAAA5B,QAAAA,WAG9B0na,IAAAA,EAH8B,MAAA,CAAAxmZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAlhB,MAAAA,CAAA,IAE9Buna,EAAO,IAAA,AACkB,OAAzBG,CAAAA,EAAAA,EAAY9la,KAAK,CAAC,EAAE,CAACkuG,IAAI,AAAJA,GAArB43T,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAA2B9wZ,QAAQ,GAAE,MAAA,2BAAA,EAAA,CAGzC,CAAC9F,EAAMu2Z,YAAY,EAAIr0F,EAAQu1F,WAAW,CAACz3Z,EAAMilV,cAAc,EAAE52V,GAAG,CAACqpa,SAAAA,CAArE,EAA4EtnZ,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAHnC,MAAA,CAGmC,MAEnE,CACL,2BACA,+BAJwE,AAKzE,EAAA,CACAsnZ,EAAO,C,GAGVd,EAAY9la,KAAK,CAACzC,GAAG,CAAC,SAAC4wC,CAAAA,CAAM5zC,CAA7Bura,EACA,IAAM74C,EAAY,CAChB/9W,MAAO,CACL89B,QAASA,WAAMA,OAAAA,EAAQmB,EAAK+/D,IAAI,C,CAClC,EACA//D,KAAAA,EACA5zC,EAAAA,CACF,EAMA,OAJI2ra,EAAMlma,KAAK,EAAI,CAACmuC,EAAK4rU,UAAU,EACjC5rU,CAAAA,EAAKtJ,UAAU,CAAG,CAAA,CADpB,EAIAvlB,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,MAEW,CACL,2BACA,CACE,qCAAsC6uB,EAAK04X,UAAU,CACrD,0CAA2C14X,EAAK24X,QAAQ,CACxD,qCAAsC34X,EAAK4rU,UAAU,CACrD,qCAAsC5rU,EAAK44X,SAAS,CACpD,uCAAwC54X,EAAK64X,WAA7C,AACF,EACD,CAAA,cACa,AAAC74X,EAAKtJ,UAAU,CAAkBrkC,KAAAA,EAAf2tC,EAAK84X,OAAO,AAAY,EAAA,CAGtD/3Z,AAAAA,CAAAA,EAAMg4Z,kBAAkB,EAAI,CAAC/4X,EAAK04X,UAAAA,AAAAA,GAAUvnZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAkuV,EAAAA,iBAAAA,CAHU,CAGV,SAEjC,CACRH,KAAM,CACJ4hF,MAAO,+BACP30T,MAAQnsF,AAAAA,CAAAA,EAAK4rU,UAAU,EAAI5rU,EAAKg5X,OAAAA,AAAAA,GAAY,CAACh5X,EAAKtJ,UAAU,CACxD31B,EAAMorH,KAAK,CACX95H,KAAAA,EACJkhC,SAAUyM,EAAKtJ,UAAU,CACzBkhE,KAAM,CAAA,EACNuyQ,OAAQ,CAAA,EACR9rV,KAAM2hB,EAAKi5X,SAAS,CACpB7qS,QAASpuF,EAAKtJ,UAAU,CACpBsJ,EAAKg5X,OAAO,CAAG,WAAa,OAC5Bh5X,EAAKg5X,OAAO,EAAI,CAACh5X,EAAK4rU,UAAU,CAAG,WAAa,OACpD/sU,QAASA,WAAMA,OAAAA,EAAQmB,EAAK+/D,IAAI,C,CAClC,CACF,CAAC,EAAA,CAAA9vG,QAAAA,eAECgR,EAAAA,EAFD,MAAA,CAECA,AAAY69W,OAAZ79W,CAAAA,EAAAA,AAAS,OAATA,CAAAA,EAAAA,EAAM0+F,GAAG,AAAHA,GAAN1+F,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAY69W,EAAAA,GAAZ79W,AAAAA,KAAAA,IAAAA,EAAAA,EAAsBkQ,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CACX4f,EAAU/9W,KAAK,CAAA,MAH3B9Q,AAIA,CAAA,GAAA,CAKX,GAAA,EAAA,A,CAAE,GAAA,C,CAKZ,CACF,E,E,C,gC,Q,sC,Q,0B,Q,I,Q,yB,Q,oB,Q,iC,Q,iC,Q,kC,Q,mC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,oB,WEvNasna,OAAAA,C,GAqBb,EAAA,MAAA,CAAA,EAAA,cAAA,WAAgBG,OAAAA,C,GArDhB,IAAA,EAAA,EAAA,mBACyB,EAAA,EAAA,sBAIzB,EAAA,EAAA,OAA8B,EAAA,EAAA,qBA2BjBH,EAAoB1hF,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,CAC5CujF,aAAc,CAACrqa,MAAOmoC,SAA+D,CACrF3D,SAAUvzB,QACV6wZ,aAAc,KACdh5Y,WAAY9oB,MACZ2wG,MAAO,CAACx/F,OAAQ7J,OAAO,CACvBsQ,IAAK,KACL+uC,IAAK,KACLqjX,mBAAoB/4Z,QACpBy/F,KAAM,CAACv/F,OAAQ7J,OAAO,CACtBgja,SAAU,CACRv5Z,KAAM/Q,MACNkB,QAASA,WAAM,MAAA,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAlCA,A,CACF,EACAqia,aAAc,CACZxyZ,KAAMzJ,OACNpG,QAAS,SACX,EACA+1V,eAAgB,CAAC9lV,OAAQ7J,OAAzB2vV,AACF,EAAG,YAEI,SAAS0xE,EAAa32Z,CAAoB,EAC/C,IAAMkiU,EAAUH,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,IACVr+G,EAAQqjH,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EACZ/mU,EACA,aACA,EAAE,CACF/G,SAAAA,CAJF,EAIOwxU,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAYxxU,E,GAEb62Z,EAAe3pY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,kBAC5B,AAAInmB,EAAM8vZ,YAAY,CAAS5tF,EAAQljO,IAAI,CAACh/F,EAAM8vZ,YAAY,EAC1DpsM,EAAM5yN,KAAK,CAACxF,MAAM,CAAG,EAAU42U,EAAQljO,IAAI,CAAC0kH,EAAM5yN,KAAK,CAAC,EAAE,EAC1DkP,EAAM20C,GAAG,CAASutR,EAAQljO,IAAI,CAACh/F,EAAM20C,GAAG,EACxC3mD,MAAMyS,OAAO,CAACT,EAAMq4Z,YAAY,EAAUn2F,EAAQljO,IAAI,CAACh/F,EAAMq4Z,YAAY,CAAC,EAAE,EAEzEn2F,EAAQljO,IAAI,EACrB,GAEMN,EAAOqoO,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EACX/mU,EACA,OACA1O,KAAAA,EACA2H,SAAAA,CAJF,EAKI,IAAMnI,EAAQmI,AAAK,MAALA,EAAYkG,OAAOlG,GAAKipU,EAAQ4vF,OAAO,CAAChC,EAAah/Z,KAAK,EAExE,OAAOoxU,EAAQ6vF,WAAW,CAAC7vF,EAAQ+vF,OAAO,CAAC/vF,EAAQljO,IAAI,GAAIluG,GAC7D,EACAmI,SAAAA,CADA,EACKipU,OAAAA,EAAQ4vF,OAAO,CAAC74Z,E,GAGjB0lG,EAAQooO,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EACZ/mU,EACA,QACA1O,KAAAA,EACA2H,SAAAA,CAJF,EAKI,IAAMnI,EAAQmI,AAAK,MAALA,EAAYkG,OAAOlG,GAAKipU,EAAQgiB,QAAQ,CAAC4rE,EAAah/Z,KAAK,EACnEkuG,EAAOkjO,EAAQ+vF,OAAO,CAAC/vF,EAAQ+hB,YAAY,CAAC/hB,EAAQljO,IAAI,IAAKkjO,EAAQ4vF,OAAO,CAACpzT,EAAK5tG,KAAK,GAE7F,OAAOoxU,EAAQ8iB,QAAQ,CAAChmP,EAAMluG,EAChC,EACAmI,SAAAA,CADA,EACKipU,OAAAA,EAAQgiB,QAAQ,CAACjrV,E,GAGlBs/Z,EAAWpyY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACxB,IAA8BnmB,EAAxBilV,EAAiB9lV,OAAOa,AAAoB,OAApBA,CAAAA,EAAAA,EAAMilV,cAAc,AAAdA,GAANjlV,AAAAA,KAAAA,IAAAA,EAAAA,EAAwB,GAEtD,OAAOA,EAAMs4Z,QAAQ,CAACjqa,GAAG,CAACuwG,SAAAA,CAA1B,EAAiC,MAACA,AAAAA,CAAAA,EAAMqmP,CAAAA,EAAkB,C,EAC5D,GAEMssE,EAAeprY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC5B,IAAMg/T,EAAQjjB,EAAQgjB,YAAY,CAACvmP,EAAM7tG,KAAK,CAAEkP,EAAMilV,cAAc,EAE9D3iG,EAAO6iG,EAAMphL,IAAI,GAKvB,GAAI/jK,AAAuB,WAAvBA,EAAMuxZ,YAAY,EAAiBjvK,EAAKh3P,MAAM,CAD9B,GAKlB,IAAK,IAHCy6V,EAAUzjG,CAAI,CAACA,EAAKh3P,MAAM,CAAG,EAAE,CAEjCisa,EAAO,EAAE,CACJ34T,EAAM,EAAGA,GAAOg4T,AALP,GAKqBt0K,EAAKh3P,MAAM,CAAEszG,IAClD24T,EAAKnga,IAAI,CAAC8qU,EAAQmwF,OAAO,CAACtsE,EAASnnP,IAE/BA,EAAM,GAAM,IACdumP,EAAM/tV,IAAI,CAACmga,GACXA,EAAO,EAAE,EAKf,OAAOpyE,CACT,GAEA,SAASszE,EAASn2K,CAAe,CAAEy3F,CAAc,EAC/C,OAAOz3F,EAAKhwP,MAAM,CAAC0sG,SAAAA,CAAnB,EACE,OAAOu5T,EAASzna,KAAK,CAACya,QAAQ,CAAC22T,EAAQoC,QAAQ,CAACtlO,GAAMwmP,MAAM,GAC9D,GAAGn3V,GAAG,CAAC,SAAC2wG,CAAAA,CAAM7nF,CAAd,EACE,IAAM4gZ,EAAU71F,EAAQw2F,KAAK,CAAC15T,GACxB24T,EAAa,CAACz1F,EAAQy2F,WAAW,CAAC35T,EAAML,EAAM7tG,KAAK,EACnD8na,EAAU12F,EAAQg1F,SAAS,CAACl4T,EAAMkjO,EAAQ+hB,YAAY,CAACtlP,EAAM7tG,KAAK,GAClE+na,EAAQ32F,EAAQg1F,SAAS,CAACl4T,EAAMkjO,EAAQiiB,UAAU,CAACxlP,EAAM7tG,KAAK,GAC9Dgoa,EAAS52F,EAAQg1F,SAAS,CAACl4T,EAAML,EAAM7tG,KAAK,EAElD,MAAO,CACLkuG,KAAAA,EACA+4T,QAAAA,EACAgB,UAAW72F,EAAQzkS,MAAM,CAACuhE,EAAM,gBAChCN,KAAMwjO,EAAQ4vF,OAAO,CAAC9yT,GACtBL,MAAOujO,EAAQgiB,QAAQ,CAACllP,GACxBrpE,WAAYA,AAwClB,SAAqB7kC,CAAc,EACjC,GAAIkP,EAAMwyB,QAAQ,CAAE,MAAO,CAAA,EAE3B,IAAMwsE,EAAOkjO,EAAQljO,IAAI,CAACluG,SAE1B,GAAIkP,EAAM20C,GAAG,EAAIutR,EAAQoiB,OAAO,CAACpiB,EAAQljO,IAAI,CAACh/F,EAAM20C,GAAG,EAAGqqD,IACtDh/F,EAAM4F,GAAG,EAAIs8T,EAAQoiB,OAAO,CAACtlP,EAAMkjO,EAAQljO,IAAI,CAACh/F,EAAM4F,GAAG,MAEzD5X,MAAMyS,OAAO,CAACT,EAAMq4Z,YAAY,GAAKr4Z,EAAMq4Z,YAAY,CAAC/sa,MAAM,CAAG,EAC5D,CAAC0U,EAAMq4Z,YAAY,CAACz3Z,IAAI,CAAC5L,SAAAA,CADlC,EACuCktU,OAAAA,EAAQg1F,SAAS,CAACh1F,EAAQljO,IAAI,CAAChqG,GAAIgqG,E,GAGxC,YAA9B,OAAOh/F,EAAMq4Z,YAAY,EACpB,CAACr4Z,EAAMq4Z,YAAY,CAACr5T,GAI/B,EAzD6BA,GACvB84T,YAAa3gZ,EAAQ,GAAM,EAC3B0gZ,UAAW1gZ,EAAQ,GAAM,EACzB8gZ,QAAS/1F,EAAQg1F,SAAS,CAACl4T,EAAM+6O,GACjC49E,WAAAA,EACAC,SAAUD,GAAc,CAAC33Z,EAAMg4Z,kBAAkB,CACjDY,QAAAA,EACA/tD,WAAYnnJ,EAAM5yN,KAAK,CAAC8P,IAAI,CAAC9P,SAAAA,CAA7B+5W,EAAsC3oC,OAAAA,EAAQg1F,SAAS,CAACl4T,EAAMluG,E,GAC9D+na,MAAAA,EACAC,OAAAA,EACAZ,UAAWh2F,EAAQzkS,MAAM,CAACuhE,EAAM,aAClC,CACF,EACF,CAEA,IAAMg6T,EAAa7yY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAG1B,IAAK,IAFC4/T,EAAU7jB,EAAQ0jB,WAAW,CAACkqE,EAAah/Z,KAAK,CAAEkP,EAAMilV,cAAc,EACtEsyE,EAAO,EAAE,CACN34T,EAAM,EAAGA,GAAO,EAAGA,IAC1B24T,EAAKnga,IAAI,CAAC8qU,EAAQmwF,OAAO,CAACtsE,EAASnnP,IAKrC,OAAO65T,EAAQlB,EAFDr1F,EAAQljO,IAAI,GAG5B,GAEM43T,EAAczwY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAI3B,OAAOsyY,EAHMlH,EAAazga,KAAK,CAACizK,IAAI,GACtBm+J,EAAQljO,IAAI,GAG5B,GAEM63T,EAAc1wY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WAC3B,OAAOorY,EAAazga,KAAK,CAACzC,GAAG,CAACkpa,SAAAA,CAA9B,EACE,OAAOA,EAAKjsa,MAAM,CAAG02U,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,EAAQE,EAASq1F,CAAI,CAAC,EAAE,EAAI,IACnD,EACF,GAqBA,MAAO,CACLzH,aAAAA,EACA8G,YAAAA,EACAoC,WAAAA,EACAP,QAAAA,EACA/0M,MAAAA,EACA6tM,aAAAA,EACAgH,SAAAA,EACA1B,YAAAA,CACF,CACF,C,E,C,kB,Q,qB,Q,I,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,6B,WErLarF,OAAAA,C,G,E,M,C,E,oB,WASAR,OAAAA,C,G,I,E,E,OAtCb,EAAA,2BAEA,IAAA,EAAA,EAAA,qBAGA,EAAA,EAAA,oCACgB,EAAA,EAAA,sCAI2B,EAAA,EAAA,wBAmB9BQ,EAA6B18E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,CACrD1pN,MAAO91H,OACP8jE,OAAQ,CAAC9jE,OAAQ6J,OAAO,CACxBw1C,IAAK,KACL/uC,IAAK,KACLkR,WAAY3X,OACZu/F,KAAMv/F,MACR,EAAG,qBAEU6xZ,EAAoBr8E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAA2C,CAC1E5qV,KAAM,oBAENiW,MAAOwxZ,IAEPzmX,MAAO,CACL,oBAAsBi0D,SAAAA,CAAtB,EAAoC,MAAA,CAAA,C,CACtC,EAEAtrF,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAmB,IAAfgmB,EAAahmB,EAAbgmB,IAAAA,CAAMxR,EAAOxU,EAAPwU,KAAS,CACvBgiU,EAAUH,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,IACVr+G,EAAQqjH,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB/mU,EAAO,cAE/Bi5Z,EAAS9yY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACtB,IAAI64E,EAAOkjO,EAAQ6vF,WAAW,CAAC7vF,EAAQljO,IAAI,IAI3C,OAHIh/F,EAAM0+F,IAAI,EACZM,CAAAA,EAAOkjO,EAAQ+vF,OAAO,CAACjzT,EAAMh/F,EAAM0+F,IAAI,CAAA,EAElC9lB,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAY,IAAIvqF,GAAG,CAAChD,SAAAA,CAA3B,EACE,IAAMiyB,EAAO4kT,EAAQzkS,MAAM,CAACuhE,EAAM,cAC5BrpE,EACJ,CAAC,CACE31B,CAAAA,EAAM20C,GAAG,EAAIutR,EAAQoiB,OAAO,CAACpiB,EAAQ+hB,YAAY,CAAC/hB,EAAQljO,IAAI,CAACh/F,EAAM20C,GAAG,GAAIqqD,IAC5Eh/F,EAAM4F,GAAG,EAAIs8T,EAAQoiB,OAAO,CAACtlP,EAAMkjO,EAAQ+hB,YAAY,CAAC/hB,EAAQljO,IAAI,CAACh/F,EAAM4F,GAAG,GAAA,EAInF,OAFAo5F,EAAOkjO,EAAQg3F,YAAY,CAACl6T,GAErB,CACLrpE,WAAAA,EACArY,KAAAA,EACAxsB,MAAOzF,CACT,CACF,EACF,GAgDA,MA9CAi/B,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAY,WACIo5L,IAAAA,CAAdA,CAAAA,EAAM5yN,KAAK,CAAG4yN,AAAW,OAAXA,CAAAA,EAAAA,EAAM5yN,KAAK,AAALA,GAAN4yN,AAAAA,KAAAA,IAAAA,EAAAA,EAAew+G,EAAQgiB,QAAQ,CAAChiB,EAAQljO,IAAI,GAC5D,GAEAg5O,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WAAA5nU,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAV4nU,MAAAA,CAAU,MAAA,uBAAA,MAGC,CACL5+Q,OAAQ4wQ,AAAAA,CAAAA,EAAAA,EAAAA,aAAa,AAAbA,EAAchqU,EAAMo5D,MAAM,CACpC,CAAC,EAAA,CAAAhpD,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,MAAA,+BAAA,EAAA,CAGG6oZ,EAAOnoa,KAAK,CAACzC,GAAG,CAAC,SAACswG,CAAAA,CAAOtzG,CAAzB4ta,EAWSn7X,IAQF59B,EAAAA,EARE49B,EAAT,SAAkBzyC,CAAS,EACzB,GAAIq4N,EAAM5yN,KAAK,GAAKzF,EAAG,CACrBqmB,EAAK,oBAAqBgyM,EAAM5yN,KAAK,EACrC,MACF,CACA4yN,EAAM5yN,KAAK,CAAGzF,CAChB,EAhBMgua,EAAW,CACf/zW,OAAQo+J,EAAM5yN,KAAK,GAAKzF,EACxB+/H,MAAOs4F,EAAM5yN,KAAK,GAAKzF,EAAI2U,EAAMorH,KAAK,CAAG95H,KAAAA,EACzCkhC,SAAUmsE,EAAMhpE,UAAU,CAC1BixU,QAAS,CAAA,EACTtpV,KAAMqhF,EAAMrhF,IAAI,CAChB+vG,QAASq2F,EAAM5yN,KAAK,GAAK6tG,EAAM7tG,KAAK,CAAG,OAAS,OAChDgtC,QAASA,WAAMA,OAAAA,EAAQzyC,E,CACzB,EAUA,OAAO6U,AAIP,OAJOA,CAAAA,EAAAA,AAAW,OAAXA,CAAAA,EAAAA,EAAMy+F,KAAK,AAALA,GAANz+F,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAc,CACnBy+F,MAAAA,EACAtzG,EAAAA,EACA2U,MAAOq5Z,CACT,EAAA,GAJOn5Z,AAAAA,KAAAA,IAAAA,EAAAA,EAILkQ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAAA,CAAA6iF,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAF,CAAE,IAAA,OAAA,EAGO3nB,GAAQ,KAGnB,GAAE,EAAA,C,GAKD,CAAC,CACV,CACF,E,E,C,I,Q,0B,Q,oB,Q,mC,Q,qC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,4B,WEtFa5H,OAAAA,C,G,E,M,C,E,mB,WAQAP,OAAAA,C,G,I,E,E,sC,E,E,gC,E,E,OA3Cb,EAAA,0BAEA,IAAA,EAAA,EAAA,qBAGA,EAAA,EAAA,oCACgB,EAAA,EAAA,sCAIgD,EAAA,EAAA,wBAyBnDO,EAA4B38E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,CACpD1pN,MAAO91H,OACP8jE,OAAQ,CAAC9jE,OAAQ6J,OAAO,CACxBw1C,IAAK,KACL/uC,IAAK,KACLkR,WAAY3X,MACd,EAAG,oBAEU+xZ,EAAmBv8E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAA0C,CACxE5qV,KAAM,mBAENiW,MAAOyxZ,IAEP1mX,MAAO,CACL,oBAAsB2zD,SAAAA,CAAtB,EAAuC,MAAA,CAAA,C,CACzC,EAEAhrF,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAmB,IAAfgmB,EAAahmB,EAAbgmB,IAAAA,CAAMxR,EAAOxU,EAAPwU,KAAS,CACvBgiU,EAAUH,AAAAA,CAAAA,EAAAA,EAAAA,OAAO,AAAPA,IACVr+G,EAAQqjH,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,EAAgB/mU,EAAO,cAC/Bs5Z,EAAQnzY,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,EAAS,WACrB,IAAMu4E,EAAOwjO,EAAQ4vF,OAAO,CAAC5vF,EAAQljO,IAAI,IAErCrqD,EAAM+pD,EAAO,IACb94F,EAAM84F,EAAO,EAEb1+F,CAAAA,EAAM20C,GAAG,EACXA,CAAAA,EAAMutR,EAAQ4vF,OAAO,CAAC5vF,EAAQljO,IAAI,CAACh/F,EAAM20C,GAAG,EAD9C,EAII30C,EAAM4F,GAAG,EACXA,CAAAA,EAAMs8T,EAAQ4vF,OAAO,CAAC5vF,EAAQljO,IAAI,CAACh/F,EAAM4F,GAAG,EAD9C,EAIA,IAAIo5F,EAAOkjO,EAAQ6vF,WAAW,CAAC7vF,EAAQljO,IAAI,IAI3C,OAFAA,EAAOkjO,EAAQ+vF,OAAO,CAACjzT,EAAMrqD,GAEtBikC,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAYhzE,EAAM+uC,EAAM,EAAGA,GAAKtmD,GAAG,CAAChD,SAAAA,CAA3C,EACE,IAAMiyB,EAAO4kT,EAAQzkS,MAAM,CAACuhE,EAAM,QAGlC,OAFAA,EAAOkjO,EAAQ+vF,OAAO,CAACjzT,EAAMkjO,EAAQ4vF,OAAO,CAAC9yT,GAAQ,GAE9C,CACL1hF,KAAAA,EACAxsB,MAAOzF,CACT,CACF,EACF,GAEAi/B,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAY,WACIo5L,IAAAA,CAAdA,CAAAA,EAAM5yN,KAAK,CAAG4yN,AAAW,OAAXA,CAAAA,EAAAA,EAAM5yN,KAAK,AAALA,GAAN4yN,AAAAA,KAAAA,IAAAA,EAAAA,EAAew+G,EAAQ4vF,OAAO,CAAC5vF,EAAQljO,IAAI,GAC3D,GAEA,IAAMu6T,EAAUntF,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,IA+ChB,MA7CArjU,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,AAAVA,WAAAA,EAAU,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,WAERwwZ,IAAAA,E,M,A,C,E,E,C,A,E,I,C,S,C,E,O,E,K,E,K,EADA,MAAA,C,EAAM3qZ,AAAAA,CAAAA,EAAAA,EAAAA,QAAAA,AAAAA,I,A,M,E,OAAN,EAAA,IAAA,GACA2qZ,AAAU,OAAVA,CAAAA,EAAAA,EAAQ12Z,EAAE,AAAFA,GAAR02Z,AAAAA,KAAAA,IAAAA,GAAAA,EAAYE,cAAc,CAAC,CAAE38W,MAAO,QAAS,G,C,E,A,C,EAC/C,IAEAk7R,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WAAA5nU,MAAAA,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAV4nU,MAAAA,CAAU,MAAA,sBAAA,MAGC,CACL5+Q,OAAQ4wQ,AAAAA,CAAAA,EAAAA,EAAAA,aAAa,AAAbA,EAAchqU,EAAMo5D,MAAM,CACpC,CAAC,EAAA,CAAAhpD,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA,MAAA,CAAA,MAAA,8BAAA,EAAA,CAGGkpZ,EAAMxoa,KAAK,CAACzC,GAAG,CAAC,SAACqwG,CAAAA,CAAMrzG,CAAvBiua,EACA,IAgBOp5Z,EAAAA,EAhBDm5Z,EAAW,CACf30Y,IAAKg/L,EAAM5yN,KAAK,GAAK4tG,EAAK5tG,KAAK,CAAGyoa,EAAUjoa,KAAAA,EAC5Cg0D,OAAQo+J,EAAM5yN,KAAK,GAAK4tG,EAAK5tG,KAAK,CAClCs6H,MAAOs4F,EAAM5yN,KAAK,GAAK4tG,EAAK5tG,KAAK,CAAGkP,EAAMorH,KAAK,CAAG95H,KAAAA,EAClDs1W,QAAS,CAAA,EACTtpV,KAAMohF,EAAKphF,IAAI,CACf+vG,QAASq2F,EAAM5yN,KAAK,GAAK4tG,EAAK5tG,KAAK,CAAG,OAAS,OAC/CgtC,QAASA,WACP,GAAI4lL,EAAM5yN,KAAK,GAAK4tG,EAAK5tG,KAAK,CAAE,CAC9B4gB,EAAK,oBAAqBgyM,EAAM5yN,KAAK,EACrC,MACF,CACA4yN,EAAM5yN,KAAK,CAAG4tG,EAAK5tG,KAAK,AAC1B,CACF,EAEA,OAAOoP,AAIP,OAJOA,CAAAA,EAAAA,AAAU,OAAVA,CAAAA,EAAAA,EAAMw+F,IAAI,AAAJA,GAANx+F,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAa,CAClBw+F,KAAAA,EACArzG,EAAAA,EACA2U,MAAOq5Z,CACT,EAAA,GAJOn5Z,AAAAA,KAAAA,IAAAA,EAAAA,EAILkQ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA+tV,EAAAA,IAAAA,CAAA6iF,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAF,CAAE,IAAA,OAAA,EAGO3nB,GAAQ,KAGnB,GAAE,EAAA,C,GAKD,CAAC,CACV,CACF,E,E,C,qC,Q,+B,Q,I,Q,yB,Q,oB,Q,mC,Q,qC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WEnHa3H,OAAAA,C,G,E,M,C,E,U,WASA0B,OAAAA,C,G,I,E,E,iC,E,E,OA/Bb,EAAA,iBAEA,IAAA,EAAA,EAAA,sBACqB,EAAA,EAAA,4DACK,EAAA,EAAA,sCAG1B,EAAA,EAAA,+BAI2B,EAAA,EAAA,wBAWd1B,EAAmB58E,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAtC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACLg6B,QAASx5W,OACTuka,UAAW56Z,QACXkuH,MAAO73H,OACPwka,WAAY76Z,OAET2wY,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,eAAe,AAAfA,KACF,WAEUwjB,EAAUz+E,AAAAA,CAAAA,EAAAA,EAAAA,gBAAAA,AAAAA,IAAiC,CACtD5qV,KAAM,UAENiW,MAAO0xZ,IAEPh+Y,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACmCu9V,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,kBAAkB,AAAlBA,EAAmB34U,AAAAA,CAAAA,EAAAA,EAAAA,KAAK,AAALA,EAAM9kB,EAAO,UAAlF09V,EAAkDD,EAAlDC,sBAAAA,CAAwBC,EAA0BF,EAA1BE,qBAAhC,CAiEA,MAhEA3lB,AAAAA,CAAAA,EAAAA,EAAAA,SAAS,AAATA,EAAU,WACR,IAAMu4D,EAAaC,AAAAA,CAAAA,EAAAA,EAAAA,MAAM,AAANA,EAAOn7D,WAAW,CAACr1U,GAChCo+V,EAAW,CAAC,CAAEp+V,CAAAA,EAAMmtH,KAAK,EAAIjtH,EAAMitH,KAAAA,AAAAA,EAEzC,MAAA/8G,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAogY,EAAAA,MAAA,CAAAwwC,AAAAA,CAAAA,EAAAA,EAAAA,UAAA,AAAAA,EAESzwC,EAFT,CAEmB,MACPvwY,EAAM8uW,OAAO,CAAA,MACd,CACL,WACA,CACE,sBAAuB9uW,EAAM65Z,SAAS,CACtC,yBAA0B,CAAC,CAAC35Z,EAAM6gK,OAAlC,AACF,EACA/gK,EAAM+/a,KAAK,CACZ,CAAA,MACO//a,EAAMwG,KADb,AACkB,GAAA,CAAAtX,QAAAA,WA2BfgR,IAAAA,EA3Be,MAAA,CAEjB,CAACF,EAAM85Z,UAAU,EAAA1pZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAFAlhB,MAAAA,CAEA,IAAA,SAAA,MAGR,CACLwuW,EAAuB5sW,KAAK,CAC7B,CAAA,MACM,CACL6sW,EAAsB7sW,KAAK,CAF5B,AAGA,EAAA,CAECstW,GAAQhuV,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA2pZ,EAAAA,YAAA,CAFT,CAES,IAAA,cAAA,EAAA,CAAA7qa,QAAAA,eAEJgR,EAAAA,EAFI,MAAA,CAEJA,AAAAA,OAAAA,CAAAA,EAAAA,AAAW,OAAXA,CAAAA,EAAAA,EAAMitH,KAAK,AAALA,GAANjtH,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAAA,GAAAA,AAAAA,KAAAA,IAAAA,EAAAA,EAAmBF,EAAMmtH,KAAK,CAF1Bj+H,AAE0B,CAAA,GAIlCgR,EAAMyyI,MAAM,EAAAviI,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAJsB,MAAA,CAItB,MAAA,kBAAA,EAAA,CAERlQ,EAAMyyI,MAAM,GAAE,EAEnB,EAEJviI,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EANiB,MAAA,CAMjB,MAAA,gBAAA,EAAA,CAGGlQ,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAAiB,EAGnBA,EAAM6gK,OAAO,EAAA3wJ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAAkuV,EAAAA,iBAAA,CANd,CAMc,SAED,CACRH,KAAM,CACJ+K,KAAM,CAAA,EACN77O,QAAS,MACX,CACF,CAAC,EAAA,CAAAn+H,QAAAA,WAAA,MAAA,CAAAkhB,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAAlhB,MAAAA,CAAA,MAAA,mBAAA,EAAA,CAGGgR,EAAM6gK,OAAO,GAHhB,EAAA,A,CAGkB,GAAA,A,CAGtB,EAGP,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,I,Q,gB,Q,qB,Q,2D,Q,qC,Q,8B,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,e,WEtGag5P,OAAAA,C,GAAN,IAAMA,EAAetlF,AAAAA,CAAAA,EAAAA,AAH5B,EAAA,wBAG4BA,sBAAAA,AAAAA,EAAuB,iB,E,C,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEH1C4zD,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAAA,IAAAA,EAAAA,EAAAA,gB,E,C,gB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAA4xB,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAAA,IAAAA,EAAAA,EAAAA,oB,E,C,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,uB,WEwCIC,OAAAA,C,G,E,M,C,E,c,WA0BAD,OAAAA,C,G,I,E,E,mC,E,E,iC,E,E,OAjEb,EAAA,qBAEA,IAAA,EAAA,EAAA,qBACa,EAAA,EAAA,kCACa,EAAA,EAAA,sBACZ,EAAA,EAAA,qBAGd,EAAA,EAAA,+BAC2B,EAAA,EAAA,mCACA,EAAA,EAAA,oCACc,EAAA,EAAA,iCACtB,EAAA,EAAA,+BACD,EAAA,EAAA,8BACI,EAAA,EAAA,+BAIK,EAA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wa,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAAA+tV,EAAAA,IAAA,CAAA6iF,AAAAA,CAAAA,EAAAA,EAAAA,UAAAA,AAAAA,EAAA9xb,CAAA,IAIrBwjW,CAAS,EACV2mE,EADU,CACF,OACJ/na,KAAAA,EAAS,SACPA,KAAAA,CAAS,GACV4O,GAAK,CAAA,CAAAyhb,EAAAA,KAAAA,CALN3hb,EAAMslD,MAAM,CAID,CAAA,EAAA,A,CAJC,GAAA,EAAA,CAWjC,GAEO,CAAC,CACV,CACF,E,E,C,kC,Q,gC,Q,I,Q,a,Q,mB,Q,+B,Q,iC,Q,qC,Q,uC,Q,oC,Q,mC,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GE3IS26U,EAAAA,MAAAA,CAAAA,EAAAA,SAAAA,W,O,E,M,A,GAAM,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GAANA,IAAAA,EAAAA,EAAAA,gBAAM,EAAA,EAAA,oB,E,C,e,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAN48B,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAAA,IAAAA,EAAAA,EAAAA,mB,E,C,mB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,sB,WE0CIC,OAAAA,C,G,E,M,C,E,a,WAqCAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,6C,E,E,mC,E,E,uC,E,E,OA9Eb,EAAA,oBAEA,IAAA,EAAA,EAAA,sBACc,EAAA,EAAA,yBACG,EAAA,EAAA,uBACF,EAAA,EAAA,wBAC2B,EAAA,EAAA,wBAG1C,EAAA,EAAA,+BACiB,EAAA,EAAA,qCACG,EAAA,EAAA,gCACF,EAAA,EAAA,sCAIkC,EAAA,EAAA,wBAyBvCC,EAAsBhoF,AAAAA,CAAAA,EAAAA,EAAAA,YAAAA,AAAAA,EAAa,AAAzC,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CACLglC,MAAO76W,QACPw0H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,GAAqBE,GAAatwZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA8uZ,EANP,CAMO,IAAA,QAAA,KAAA,QAAA,YAIlBU,EAAe,WAChBT,EAAOrua,KADS,AACJ,EAAA,MAI3BoP,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,GAEAuga,GAAmBC,GAAatwZ,AAAAA,CAAAA,EAAAA,EAAAA,WAAAA,AAAAA,EAAA8uZ,EANL,CAMK,IAAA,MAAA,KAAA,MAAA,YAIhBU,EAAe,WAChBT,EAAOrua,KADS,AACJ,EAAA,MAE5Bsf,AAAAA,CAAAA,EAAAA,EAAAA,WAAA,AAAAA,EAF4B,MAAA,CAE5B,MAAA,yBAAA,EAAA,CAGG4vZ,EAAW,MAAOT,EAAUzua,KAAK,EAHpC,EAAA,A,CAGqC,EAI5C,EACF,CACF,E,E,C,qC,Q,gC,Q,+B,Q,I,Q,wB,Q,oB,Q,iC,Q,mC,Q,6C,Q,+B,Q,4B,Q,uB,Q,iD,O,E,C,Q,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEvSSwuX,EAAAA,MAAAA,CAAAA,EAAAA,SAAAA,W,O,E,M,A,GAAAA,IAAAA,EAAAA,EAAAA,e,E,C,e,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAshD,EAAAA,MAAAA,CAAAA,EAAAA,aAAAA,W,O,E,U,A,GAAU,EAAA,MAAA,CAAA,EAAA,QAAA,W,O,E,K,A,GAAVA,IAAAA,EAAAA,EAAAA,oBAAU,EAAA,EAAA,c,E,C,mB,Q,c,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,mB,WEeNG,OAAAA,C,G,E,M,C,E,sB,WAEAC,OAAAA,C,G,E,M,C,E,a,WAmBAJ,OAAAA,C,G,I,E,E,iC,E,E,OAnCb,EAAA,oBAEA,IAAA,EAAA,EAAA,mCAC2B,EAAA,EAAA,+BACM,EAAA,EAAA,6BACZ,EAAA,EAAA,+BAGrB,EAAA,EAAA,wBAMaG,EAAmBhoa,OAAOulb,GAAG,CAAC,wBAE9Btd,EAAsB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5/W,EAAMjB,IAAI,CAAA,SACN42B,EAAW7kC,KAAK,CAAA,SAChBmzB,EAAWnzB,KAAK,CAAA,kBACT0H,EAAQhO,EAAGsG,KAAK,CAAGQ,KAAAA,EAAS,SACnC,CAAA,CAAK,EACX8tX,EADW,CACC,WACP17J,EAAM5yN,KAAK,CAAA,sBAAAw8H,SAAAA,CAAA,EAAXo2F,OAAAA,EAAM5yN,KAAK,CAAAw8H,C,CAAA,GACXptH,GADW,CACN,C,GAO7B,GAEO,CAAC,CACV,CACF,E,E,C,gC,Q,sC,Q,kC,Q,I,Q,oB,Q,uB,Q,sB,Q,iC,Q,uD,Q,8B,Q,qC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEzIS6/W,EAAAA,MAAAA,CAAAA,EAAAA,oBAAAA,W,O,E,iB,A,GAAAA,IAAAA,EAAAA,EAAAA,0B,E,C,0B,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAAqoD,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W,O,E,Y,A,GAAAA,IAAAA,EAAAA,EAAAA,qB,E,C,qB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,wB,WEuBIC,OAAAA,C,G,E,M,C,E,e,WAYAD,OAAAA,C,G,I,E,E,iC,E,E,uC,E,E,mC,E,E,OAlCb,EAAA,0BAEA,IAAA,EAAA,EAAA,wBACgC,EAAA,EAAA,uBACjB,EAAA,EAAA,yBACyC,EAAA,EAAA,+BACnC,EAAA,EAAA,+BAGrB,EAAA,EAAA,+BACiC,EAAA,EAAA,gCAClB,EAAA,EAAA,sCAIoB,EAAA,EAAA,wBAOtBC,EAAwBvzF,AAAAA,CAAAA,EAAAA,EAAAA,YAAY,AAAZA,EAAa,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,AAAA,CAAA,EAAA,EAAA,CAAA,AAAA,EAAA,CAAA,EAC7CuuC,AAAAA,CAAAA,EAAAA,EAAAA,cAAc,AAAdA,IACAtE,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,IACAo1B,AAAAA,CAAAA,EAAAA,EAAAA,eAAAA,AAAAA,KAHE,CAKLm0B,OAAQrpa,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6O,AAAAA,KAAAA,IAAAA,EAAAA,EAA4BF,EAAMsd,IAAI,AAAA,CAAA,EAIpE,GAEOghW,AAAAA,CAAAA,EAAAA,EAAAA,WAAW,AAAXA,EAAY,CAAC,EAAG+T,EACzB,CACF,E,E,C,gC,Q,sC,Q,I,Q,iB,Q,wB,Q,2B,Q,oC,Q,qC,Q,gC,Q,uB,Q,iD,O,E,C,M,C,W,E,C,E,C,Q,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GE1HSsnD,EAAAA,MAAAA,CAAAA,EAAAA,cAAAA,W,O,E,W,A,GAAAA,IAAAA,EAAAA,EAAAA,oB,E,C,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,G,E,M,C,E,c,WEaIA,OAAAA,C,GAbb,IAAA,EAAA,EAAA,oCAaaA,EAAchlG,AAAAA,CAAAA,EAAAA,AAV3B,EAAA,wBAU2BA,gBAAAA,AAAAA,IAMsB,CAC/C5qV,KAAM,cAENiW,MAAO8hX,AAAAA,CAAAA,EAAAA,EAAAA,mBAAAA,AAAAA,IAEP/2U,MAAO,CACL,oBAAsBj6C,SAAAA,CAAtB,EAAqC,MAAA,CAAA,C,CACvC,EAEA4iB,MAAAA,SAAO1T,CAAK,CAAAtU,CAAA,EAAa,IAATwU,EAAOxU,EAAPwU,KAAS,CACjB05a,EAAa13D,AAAAA,CAAAA,EAAAA,EAAAA,aAAAA,AAAAA,EAAcliX,EAAO,cAExC,OAAO,WAAME,IAAAA,EAAAA,OAAAA,AAAa,OAAbA,CAAAA,EAAAA,EAAMhR,OAAO,AAAPA,GAANgR,AAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAgB05a,E,CAC/B,CACF,E,E,C,mC,Q,uB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEjCSnuC,EAAAA,MAAAA,CAAAA,EAAAA,UAAAA,W,O,E,O,A,GAAO,EAAA,MAAA,CAAA,EAAA,cAAA,W,O,E,W,A,GAAPA,IAAAA,EAAAA,EAAAA,iBAAO,EAAA,EAAA,oB,E,C,gB,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GEAP7W,EAAAA,MAAAA,CAAAA,EAAAA,eAAAA,W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","sources":["","src/index.ts","node_modules/@swc/helpers/esm/_async_to_generator.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/@swc/helpers/esm/_object_spread.js","node_modules/@swc/helpers/esm/_define_property.js","node_modules/@swc/helpers/esm/_ts_generator.js","node_modules/tslib/tslib.es6.js","node_modules/@swc/helpers/esm/_type_of.js","node_modules/vue/dist/vue.runtime.esm-bundler.js","node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","node_modules/@swc/helpers/esm/_assert_this_initialized.js","node_modules/@swc/helpers/esm/_class_call_check.js","node_modules/@swc/helpers/esm/_create_class.js","node_modules/@swc/helpers/esm/_inherits.js","node_modules/@swc/helpers/esm/_set_prototype_of.js","node_modules/@swc/helpers/esm/_sliced_to_array.js","node_modules/@swc/helpers/esm/_array_with_holes.js","node_modules/@swc/helpers/esm/_iterable_to_array_limit.js","node_modules/@swc/helpers/esm/_non_iterable_rest.js","node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","node_modules/@swc/helpers/esm/_array_like_to_array.js","node_modules/@swc/helpers/esm/_to_consumable_array.js","node_modules/@swc/helpers/esm/_array_without_holes.js","node_modules/@swc/helpers/esm/_iterable_to_array.js","node_modules/@swc/helpers/esm/_non_iterable_spread.js","node_modules/@swc/helpers/esm/_create_super.js","node_modules/@swc/helpers/esm/_get_prototype_of.js","node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","node_modules/@swc/helpers/esm/_possible_constructor_return.js","node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","node_modules/@vue/shared/dist/shared.esm-bundler.js","src/views/Index.vue","src/ts/Database.ts","node_modules/dexie/dist/dexie.mjs","node_modules/dexie/node_modules/tslib/tslib.es6.js","node_modules/dexie/src/globals/global.ts","node_modules/dexie/src/functions/utils.ts","node_modules/dexie/src/helpers/debug.ts","node_modules/dexie/src/errors/errors.js","node_modules/dexie/src/functions/chaining-functions.js","node_modules/dexie/src/helpers/promise.js","node_modules/dexie/src/functions/temp-transaction.ts","node_modules/dexie/src/globals/constants.ts","node_modules/dexie/src/functions/combine.ts","node_modules/dexie/src/dbcore/keyrange.ts","node_modules/dexie/src/functions/workaround-undefined-primkey.ts","node_modules/dexie/src/classes/table/table.ts","node_modules/dexie/src/helpers/Events.js","node_modules/dexie/src/functions/make-class-constructor.ts","node_modules/dexie/src/classes/table/table-constructor.ts","node_modules/dexie/src/classes/collection/collection-helpers.ts","node_modules/dexie/src/functions/cmp.ts","node_modules/dexie/src/classes/collection/collection.ts","node_modules/dexie/src/classes/collection/collection-constructor.ts","node_modules/dexie/src/functions/compare-functions.ts","node_modules/dexie/src/classes/where-clause/where-clause-helpers.ts","node_modules/dexie/src/classes/where-clause/where-clause.ts","node_modules/dexie/src/classes/where-clause/where-clause-constructor.ts","node_modules/dexie/src/functions/event-wrappers.ts","node_modules/dexie/src/globals/global-events.ts","node_modules/dexie/src/classes/transaction/transaction.ts","node_modules/dexie/src/classes/transaction/transaction-constructor.ts","node_modules/dexie/src/helpers/index-spec.ts","node_modules/dexie/src/helpers/table-schema.ts","node_modules/dexie/src/functions/quirks.ts","node_modules/dexie/src/dbcore/get-key-extractor.ts","node_modules/dexie/src/dbcore/dbcore-indexeddb.ts","node_modules/dexie/src/classes/dexie/generate-middleware-stacks.ts","node_modules/dexie/src/classes/version/schema-helpers.ts","node_modules/dexie/src/classes/version/version.ts","node_modules/dexie/src/classes/version/version-constructor.ts","node_modules/dexie/src/helpers/database-enumerator.ts","node_modules/dexie/src/classes/dexie/vip.ts","node_modules/dexie/node_modules/safari-14-idb-fix/dist/index.js","node_modules/dexie/src/classes/dexie/dexie-open.ts","node_modules/dexie/src/helpers/yield-support.ts","node_modules/dexie/src/classes/dexie/transaction-helpers.ts","node_modules/dexie/src/dbcore/virtual-index-middleware.ts","node_modules/dexie/src/functions/get-object-diff.ts","node_modules/dexie/src/dbcore/get-effective-keys.ts","node_modules/dexie/src/hooks/hooks-middleware.ts","node_modules/dexie/src/dbcore/cache-existing-values-middleware.ts","node_modules/dexie/src/helpers/rangeset.ts","node_modules/dexie/src/live-query/observability-middleware.ts","node_modules/dexie/src/classes/dexie/dexie.ts","node_modules/dexie/src/classes/observable/observable.ts","node_modules/dexie/src/live-query/extend-observability-set.ts","node_modules/dexie/src/live-query/live-query.ts","node_modules/dexie/src/classes/dexie/dexie-dom-dependencies.ts","node_modules/dexie/src/classes/dexie/dexie-static-props.ts","node_modules/dexie/src/live-query/propagate-locally.ts","node_modules/dexie/src/live-query/enable-broadcast.ts","node_modules/dexie/src/index.ts","src/ts/Utils.ts","node_modules/@swc/helpers/esm/_object_spread_props.js","node_modules/js-yaml/dist/js-yaml.mjs","node_modules/secure-ls/dist/secure-ls.js","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/universalModuleDefinition","node_modules/secure-ls/dist/webpack:/SecureLS/src/Base64.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/SecureLS.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/WordArray.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/constants.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/enc-utf8.js","node_modules/secure-ls/dist/webpack:/SecureLS/src/utils.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/aes.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/cipher-core.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/core.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/enc-base64.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/evpkdf.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/hmac.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/md5.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/pbkdf2.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/rabbit.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/rc4.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/sha1.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/sha256.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/crypto-js/tripledes.js","node_modules/secure-ls/dist/webpack:/SecureLS/node_modules/lz-string/libs/lz-string.js","node_modules/secure-ls/dist/webpack:/SecureLS/ignored|/Users/varunmalhotra/sp/secure-ls/node_modules/crypto-js|crypto","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/bootstrap","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/compat get default export","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/define property getters","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/global","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/hasOwnProperty shorthand","node_modules/secure-ls/dist/webpack:/SecureLS/webpack/runtime/make namespace object","node_modules/secure-ls/dist/webpack:/SecureLS/src/index.js","src/components/Footer.vue","src/views/Classroom.vue","src/components/Settings.vue","src/components/Settings/Main.vue","src/components/Settings/Members.vue","src/components/Settings/Modules.vue","node_modules/vuedraggable/dist/vuedraggable.umd.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/webpack/universalModuleDefinition","node_modules/vuedraggable/dist/webpack:/vuedraggable/webpack/bootstrap","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-string-tag-support.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/function-bind-context.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/ie8-dom-define.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.reduce.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/web.dom-collections.for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/html.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/a-function.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/require-object-coercible.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-has-species-support.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-absolute-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/export.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-names.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.regexp.to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.starts-with.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/engine-v8-version.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/engine-user-agent.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/get-iterator-method.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-define-properties.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/a-possible-prototype.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/iterators.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.for-each.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/path.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/indexed-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/add-to-unscopables.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-regexp.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/native-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-includes.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.filter.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-from.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.entries.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-length.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/has.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.string.replace.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/own-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/not-a-regexp.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.flat-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/string-multibyte.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-species-create.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/internal-state.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/redefine.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-to-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.unscopables.flat-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/define-well-known-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/enum-bug-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-create.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/define-iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/native-weak-map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/an-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/descriptors.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@soda/get-current-script/index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/inspect-source.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/advance-string-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/uid.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-exec.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-forced.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.concat.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-define-property.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/create-iterator-constructor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/flatten-into-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.splice.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.from.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-is-strict.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-integer.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.regexp.exec.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/regexp-flags.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-method-uses-to-length.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/iterators-core.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.function.name.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/well-known-symbol.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-iteration.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-primitive.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-pure.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/classof-raw.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared-store.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.find-index.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/(webpack)/buildin/global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.index-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-keys-internal.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.includes.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/document-create-element.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/set-global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/hidden-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/fails.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/get-built-in.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-set-prototype-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.to-string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/set-to-string-tag.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/array-reduce.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.map.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/global.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.get-own-property-descriptors.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/console.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-keys.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.symbol.description.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/object-get-prototype-of.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/correct-prototype-getter.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.iterator.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.object.get-own-property-descriptor.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/copy-constructor-properties.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-array.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/is-array-iterator-method.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/classof.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/shared-key.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/htmlHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/string.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/sortableEvents.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/util/tags.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/componentBuilderHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/componentStructure.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/core/renderHelper.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/src/vuedraggable.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/modules/es.array.slice.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/to-indexed-object.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/dom-iterables.js","node_modules/vuedraggable/dist/webpack:/vuedraggable/node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/sortablejs/modular/sortable.esm.js","src/components/Settings/Module.vue","src/components/Settings/Editor.vue","node_modules/vue-prism-editor/dist/prismeditor.esm.js","node_modules/vue-prism-editor/src/Editor.ts","node_modules/prismjs/components/prism-core.js","node_modules/prismjs/components/prism-json.js","node_modules/prismjs/components/prism-yaml.js","src/components/Settings/Stations.vue","src/components/Settings/Share.vue","src/components/Chat.vue","node_modules/markdown-it/index.mjs","node_modules/markdown-it/lib/index.mjs","node_modules/markdown-it/lib/common/utils.mjs","node_modules/mdurl/index.mjs","node_modules/mdurl/lib/decode.mjs","node_modules/mdurl/lib/encode.mjs","node_modules/mdurl/lib/format.mjs","node_modules/mdurl/lib/parse.mjs","node_modules/uc.micro/index.mjs","node_modules/uc.micro/properties/Any/regex.mjs","node_modules/uc.micro/categories/Cc/regex.mjs","node_modules/uc.micro/categories/Cf/regex.mjs","node_modules/uc.micro/categories/P/regex.mjs","node_modules/uc.micro/categories/S/regex.mjs","node_modules/uc.micro/categories/Z/regex.mjs","node_modules/entities/lib/esm/index.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/index.ts","node_modules/entities/lib/esm/decode.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","node_modules/entities/lib/esm/generated/decode-data-html.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","node_modules/entities/lib/esm/generated/decode-data-xml.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","node_modules/entities/lib/esm/decode_codepoint.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","node_modules/entities/lib/esm/encode.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/encode.ts","node_modules/entities/lib/esm/generated/encode-html.js","node_modules/entities/lib/esm/generated/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/encode-html.ts","node_modules/entities/lib/esm/escape.js","node_modules/entities/lib/esm/https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","node_modules/markdown-it/lib/helpers/index.mjs","node_modules/markdown-it/lib/helpers/parse_link_label.mjs","node_modules/markdown-it/lib/helpers/parse_link_destination.mjs","node_modules/markdown-it/lib/helpers/parse_link_title.mjs","node_modules/markdown-it/lib/renderer.mjs","node_modules/markdown-it/lib/parser_core.mjs","node_modules/markdown-it/lib/ruler.mjs","node_modules/markdown-it/lib/rules_core/state_core.mjs","node_modules/markdown-it/lib/token.mjs","node_modules/markdown-it/lib/rules_core/normalize.mjs","node_modules/markdown-it/lib/rules_core/block.mjs","node_modules/markdown-it/lib/rules_core/inline.mjs","node_modules/markdown-it/lib/rules_core/linkify.mjs","node_modules/markdown-it/lib/rules_core/replacements.mjs","node_modules/markdown-it/lib/rules_core/smartquotes.mjs","node_modules/markdown-it/lib/rules_core/text_join.mjs","node_modules/markdown-it/lib/parser_block.mjs","node_modules/markdown-it/lib/rules_block/state_block.mjs","node_modules/markdown-it/lib/rules_block/table.mjs","node_modules/markdown-it/lib/rules_block/code.mjs","node_modules/markdown-it/lib/rules_block/fence.mjs","node_modules/markdown-it/lib/rules_block/blockquote.mjs","node_modules/markdown-it/lib/rules_block/hr.mjs","node_modules/markdown-it/lib/rules_block/list.mjs","node_modules/markdown-it/lib/rules_block/reference.mjs","node_modules/markdown-it/lib/rules_block/html_block.mjs","node_modules/markdown-it/lib/common/html_blocks.mjs","node_modules/markdown-it/lib/common/html_re.mjs","node_modules/markdown-it/lib/rules_block/heading.mjs","node_modules/markdown-it/lib/rules_block/lheading.mjs","node_modules/markdown-it/lib/rules_block/paragraph.mjs","node_modules/markdown-it/lib/parser_inline.mjs","node_modules/markdown-it/lib/rules_inline/state_inline.mjs","node_modules/markdown-it/lib/rules_inline/text.mjs","node_modules/markdown-it/lib/rules_inline/linkify.mjs","node_modules/markdown-it/lib/rules_inline/newline.mjs","node_modules/markdown-it/lib/rules_inline/escape.mjs","node_modules/markdown-it/lib/rules_inline/backticks.mjs","node_modules/markdown-it/lib/rules_inline/strikethrough.mjs","node_modules/markdown-it/lib/rules_inline/emphasis.mjs","node_modules/markdown-it/lib/rules_inline/link.mjs","node_modules/markdown-it/lib/rules_inline/image.mjs","node_modules/markdown-it/lib/rules_inline/autolink.mjs","node_modules/markdown-it/lib/rules_inline/html_inline.mjs","node_modules/markdown-it/lib/rules_inline/entity.mjs","node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs","node_modules/markdown-it/lib/rules_inline/fragments_join.mjs","node_modules/linkify-it/index.mjs","node_modules/linkify-it/lib/re.mjs","node_modules/punycode.js/punycode.es6.js","node_modules/markdown-it/lib/presets/default.mjs","node_modules/markdown-it/lib/presets/zero.mjs","node_modules/markdown-it/lib/presets/commonmark.mjs","node_modules/highlight.js/lib/index.js","node_modules/highlight.js/lib/core.js","node_modules/@swc/helpers/esm/_wrap_native_super.js","node_modules/@swc/helpers/esm/_construct.js","node_modules/@swc/helpers/esm/_is_native_function.js","node_modules/highlight.js/lib/languages/1c.js","node_modules/highlight.js/lib/languages/abnf.js","node_modules/highlight.js/lib/languages/accesslog.js","node_modules/highlight.js/lib/languages/actionscript.js","node_modules/highlight.js/lib/languages/ada.js","node_modules/highlight.js/lib/languages/angelscript.js","node_modules/highlight.js/lib/languages/apache.js","node_modules/highlight.js/lib/languages/applescript.js","node_modules/highlight.js/lib/languages/arcade.js","node_modules/highlight.js/lib/languages/arduino.js","node_modules/highlight.js/lib/languages/armasm.js","node_modules/highlight.js/lib/languages/xml.js","node_modules/highlight.js/lib/languages/asciidoc.js","node_modules/highlight.js/lib/languages/aspectj.js","node_modules/highlight.js/lib/languages/autohotkey.js","node_modules/highlight.js/lib/languages/autoit.js","node_modules/highlight.js/lib/languages/avrasm.js","node_modules/highlight.js/lib/languages/awk.js","node_modules/highlight.js/lib/languages/axapta.js","node_modules/highlight.js/lib/languages/bash.js","node_modules/highlight.js/lib/languages/basic.js","node_modules/highlight.js/lib/languages/bnf.js","node_modules/highlight.js/lib/languages/brainfuck.js","node_modules/highlight.js/lib/languages/c.js","node_modules/highlight.js/lib/languages/cal.js","node_modules/highlight.js/lib/languages/capnproto.js","node_modules/highlight.js/lib/languages/ceylon.js","node_modules/highlight.js/lib/languages/clean.js","node_modules/highlight.js/lib/languages/clojure.js","node_modules/highlight.js/lib/languages/clojure-repl.js","node_modules/highlight.js/lib/languages/cmake.js","node_modules/highlight.js/lib/languages/coffeescript.js","node_modules/highlight.js/lib/languages/coq.js","node_modules/highlight.js/lib/languages/cos.js","node_modules/highlight.js/lib/languages/cpp.js","node_modules/highlight.js/lib/languages/crmsh.js","node_modules/highlight.js/lib/languages/crystal.js","node_modules/highlight.js/lib/languages/csharp.js","node_modules/highlight.js/lib/languages/csp.js","node_modules/highlight.js/lib/languages/css.js","node_modules/highlight.js/lib/languages/d.js","node_modules/highlight.js/lib/languages/markdown.js","node_modules/highlight.js/lib/languages/dart.js","node_modules/highlight.js/lib/languages/delphi.js","node_modules/highlight.js/lib/languages/diff.js","node_modules/highlight.js/lib/languages/django.js","node_modules/highlight.js/lib/languages/dns.js","node_modules/highlight.js/lib/languages/dockerfile.js","node_modules/highlight.js/lib/languages/dos.js","node_modules/highlight.js/lib/languages/dsconfig.js","node_modules/highlight.js/lib/languages/dts.js","node_modules/highlight.js/lib/languages/dust.js","node_modules/highlight.js/lib/languages/ebnf.js","node_modules/highlight.js/lib/languages/elixir.js","node_modules/highlight.js/lib/languages/elm.js","node_modules/highlight.js/lib/languages/ruby.js","node_modules/highlight.js/lib/languages/erb.js","node_modules/highlight.js/lib/languages/erlang-repl.js","node_modules/highlight.js/lib/languages/erlang.js","node_modules/highlight.js/lib/languages/excel.js","node_modules/highlight.js/lib/languages/fix.js","node_modules/highlight.js/lib/languages/flix.js","node_modules/highlight.js/lib/languages/fortran.js","node_modules/highlight.js/lib/languages/fsharp.js","node_modules/highlight.js/lib/languages/gams.js","node_modules/highlight.js/lib/languages/gauss.js","node_modules/highlight.js/lib/languages/gcode.js","node_modules/highlight.js/lib/languages/gherkin.js","node_modules/highlight.js/lib/languages/glsl.js","node_modules/highlight.js/lib/languages/gml.js","node_modules/highlight.js/lib/languages/go.js","node_modules/highlight.js/lib/languages/golo.js","node_modules/highlight.js/lib/languages/gradle.js","node_modules/highlight.js/lib/languages/graphql.js","node_modules/highlight.js/lib/languages/groovy.js","node_modules/highlight.js/lib/languages/haml.js","node_modules/highlight.js/lib/languages/handlebars.js","node_modules/highlight.js/lib/languages/haskell.js","node_modules/highlight.js/lib/languages/haxe.js","node_modules/highlight.js/lib/languages/hsp.js","node_modules/highlight.js/lib/languages/http.js","node_modules/highlight.js/lib/languages/hy.js","node_modules/highlight.js/lib/languages/inform7.js","node_modules/highlight.js/lib/languages/ini.js","node_modules/highlight.js/lib/languages/irpf90.js","node_modules/highlight.js/lib/languages/isbl.js","node_modules/highlight.js/lib/languages/java.js","node_modules/highlight.js/lib/languages/javascript.js","node_modules/highlight.js/lib/languages/jboss-cli.js","node_modules/highlight.js/lib/languages/json.js","node_modules/highlight.js/lib/languages/julia.js","node_modules/highlight.js/lib/languages/julia-repl.js","node_modules/highlight.js/lib/languages/kotlin.js","node_modules/highlight.js/lib/languages/lasso.js","node_modules/highlight.js/lib/languages/latex.js","node_modules/highlight.js/lib/languages/ldif.js","node_modules/highlight.js/lib/languages/leaf.js","node_modules/highlight.js/lib/languages/less.js","node_modules/highlight.js/lib/languages/lisp.js","node_modules/highlight.js/lib/languages/livecodeserver.js","node_modules/highlight.js/lib/languages/livescript.js","node_modules/highlight.js/lib/languages/llvm.js","node_modules/highlight.js/lib/languages/lsl.js","node_modules/highlight.js/lib/languages/lua.js","node_modules/highlight.js/lib/languages/makefile.js","node_modules/highlight.js/lib/languages/mathematica.js","node_modules/highlight.js/lib/languages/matlab.js","node_modules/highlight.js/lib/languages/maxima.js","node_modules/highlight.js/lib/languages/mel.js","node_modules/highlight.js/lib/languages/mercury.js","node_modules/highlight.js/lib/languages/mipsasm.js","node_modules/highlight.js/lib/languages/mizar.js","node_modules/highlight.js/lib/languages/perl.js","node_modules/highlight.js/lib/languages/mojolicious.js","node_modules/highlight.js/lib/languages/monkey.js","node_modules/highlight.js/lib/languages/moonscript.js","node_modules/highlight.js/lib/languages/n1ql.js","node_modules/highlight.js/lib/languages/nestedtext.js","node_modules/highlight.js/lib/languages/nginx.js","node_modules/highlight.js/lib/languages/nim.js","node_modules/highlight.js/lib/languages/nix.js","node_modules/highlight.js/lib/languages/node-repl.js","node_modules/highlight.js/lib/languages/nsis.js","node_modules/highlight.js/lib/languages/objectivec.js","node_modules/highlight.js/lib/languages/ocaml.js","node_modules/highlight.js/lib/languages/openscad.js","node_modules/highlight.js/lib/languages/oxygene.js","node_modules/highlight.js/lib/languages/parser3.js","node_modules/highlight.js/lib/languages/pf.js","node_modules/highlight.js/lib/languages/pgsql.js","node_modules/highlight.js/lib/languages/php.js","node_modules/highlight.js/lib/languages/php-template.js","node_modules/highlight.js/lib/languages/plaintext.js","node_modules/highlight.js/lib/languages/pony.js","node_modules/highlight.js/lib/languages/powershell.js","node_modules/highlight.js/lib/languages/processing.js","node_modules/highlight.js/lib/languages/profile.js","node_modules/highlight.js/lib/languages/prolog.js","node_modules/highlight.js/lib/languages/properties.js","node_modules/highlight.js/lib/languages/protobuf.js","node_modules/highlight.js/lib/languages/puppet.js","node_modules/highlight.js/lib/languages/purebasic.js","node_modules/highlight.js/lib/languages/python.js","node_modules/highlight.js/lib/languages/python-repl.js","node_modules/highlight.js/lib/languages/q.js","node_modules/highlight.js/lib/languages/qml.js","node_modules/highlight.js/lib/languages/r.js","node_modules/highlight.js/lib/languages/reasonml.js","node_modules/highlight.js/lib/languages/rib.js","node_modules/highlight.js/lib/languages/roboconf.js","node_modules/highlight.js/lib/languages/routeros.js","node_modules/highlight.js/lib/languages/rsl.js","node_modules/highlight.js/lib/languages/ruleslanguage.js","node_modules/highlight.js/lib/languages/rust.js","node_modules/highlight.js/lib/languages/sas.js","node_modules/highlight.js/lib/languages/scala.js","node_modules/highlight.js/lib/languages/scheme.js","node_modules/highlight.js/lib/languages/scilab.js","node_modules/highlight.js/lib/languages/scss.js","node_modules/highlight.js/lib/languages/shell.js","node_modules/highlight.js/lib/languages/smali.js","node_modules/highlight.js/lib/languages/smalltalk.js","node_modules/highlight.js/lib/languages/sml.js","node_modules/highlight.js/lib/languages/sqf.js","node_modules/highlight.js/lib/languages/sql.js","node_modules/highlight.js/lib/languages/stan.js","node_modules/highlight.js/lib/languages/stata.js","node_modules/highlight.js/lib/languages/step21.js","node_modules/highlight.js/lib/languages/stylus.js","node_modules/highlight.js/lib/languages/subunit.js","node_modules/highlight.js/lib/languages/swift.js","node_modules/highlight.js/lib/languages/taggerscript.js","node_modules/highlight.js/lib/languages/yaml.js","node_modules/highlight.js/lib/languages/tap.js","node_modules/highlight.js/lib/languages/tcl.js","node_modules/highlight.js/lib/languages/thrift.js","node_modules/highlight.js/lib/languages/tp.js","node_modules/highlight.js/lib/languages/twig.js","node_modules/highlight.js/lib/languages/typescript.js","node_modules/highlight.js/lib/languages/vala.js","node_modules/highlight.js/lib/languages/vbnet.js","node_modules/highlight.js/lib/languages/vbscript.js","node_modules/highlight.js/lib/languages/vbscript-html.js","node_modules/highlight.js/lib/languages/verilog.js","node_modules/highlight.js/lib/languages/vhdl.js","node_modules/highlight.js/lib/languages/vim.js","node_modules/highlight.js/lib/languages/wasm.js","node_modules/highlight.js/lib/languages/wren.js","node_modules/highlight.js/lib/languages/x86asm.js","node_modules/highlight.js/lib/languages/xl.js","node_modules/highlight.js/lib/languages/xquery.js","node_modules/highlight.js/lib/languages/zephir.js","src/components/Checks.vue","src/components/Modules.vue","src/components/Module.vue","node_modules/yjs/dist/yjs.mjs","node_modules/yjs/src/utils/AbstractConnector.js","node_modules/yjs/src/utils/DeleteSet.js","node_modules/yjs/src/utils/Doc.js","node_modules/yjs/src/utils/UpdateDecoder.js","node_modules/yjs/src/utils/UpdateEncoder.js","node_modules/yjs/src/utils/encoding.js","node_modules/yjs/src/utils/EventHandler.js","node_modules/yjs/src/utils/ID.js","node_modules/yjs/src/utils/isParentOf.js","node_modules/yjs/src/utils/logging.js","node_modules/yjs/src/utils/PermanentUserData.js","node_modules/yjs/src/utils/RelativePosition.js","node_modules/yjs/src/utils/Snapshot.js","node_modules/yjs/src/utils/StructStore.js","node_modules/yjs/src/utils/Transaction.js","node_modules/yjs/src/utils/UndoManager.js","node_modules/yjs/src/utils/updates.js","node_modules/yjs/src/utils/YEvent.js","node_modules/yjs/src/types/AbstractType.js","node_modules/yjs/src/types/YArray.js","node_modules/yjs/src/types/YMap.js","node_modules/yjs/src/types/YText.js","node_modules/yjs/src/types/YXmlFragment.js","node_modules/yjs/src/types/YXmlElement.js","node_modules/yjs/src/types/YXmlEvent.js","node_modules/yjs/src/types/YXmlHook.js","node_modules/yjs/src/types/YXmlText.js","node_modules/yjs/src/structs/AbstractStruct.js","node_modules/yjs/src/structs/GC.js","node_modules/yjs/src/structs/ContentBinary.js","node_modules/yjs/src/structs/ContentDeleted.js","node_modules/yjs/src/structs/ContentDoc.js","node_modules/yjs/src/structs/ContentEmbed.js","node_modules/yjs/src/structs/ContentFormat.js","node_modules/yjs/src/structs/ContentJSON.js","node_modules/yjs/src/structs/ContentAny.js","node_modules/yjs/src/structs/ContentString.js","node_modules/yjs/src/structs/ContentType.js","node_modules/yjs/src/structs/Item.js","node_modules/yjs/src/structs/Skip.js","node_modules/yjs/src/index.js","node_modules/@swc/helpers/esm/_get.js","node_modules/@swc/helpers/esm/_super_prop_base.js","node_modules/lib0/observable.js","node_modules/lib0/map.js","node_modules/lib0/set.js","node_modules/lib0/array.js","node_modules/lib0/math.js","node_modules/lib0/encoding.js","node_modules/lib0/number.js","node_modules/lib0/binary.js","node_modules/lib0/string.js","node_modules/lib0/decoding.js","node_modules/lib0/error.js","node_modules/lib0/random.js","node_modules/lib0/webcrypto.js","node_modules/lib0/promise.js","node_modules/lib0/time.js","node_modules/lib0/metric.js","node_modules/lib0/buffer.js","node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/lib0/environment.js","node_modules/process/browser.js","node_modules/lib0/conditions.js","node_modules/lib0/storage.js","node_modules/lib0/function.js","node_modules/lib0/object.js","node_modules/lib0/logging.js","node_modules/lib0/pair.js","node_modules/lib0/dom.js","node_modules/lib0/json.js","node_modules/lib0/eventloop.js","node_modules/lib0/logging.common.js","node_modules/lib0/symbol.js","node_modules/lib0/iterator.js","node_modules/muuri/dist/muuri.module.js","src/ts/Peer.ts","node_modules/y-trystero/src/TrysteroProvider.ts","node_modules/y-trystero/node_modules/lib0/math.js","node_modules/y-trystero/node_modules/lib0/observable.js","node_modules/y-trystero/node_modules/lib0/map.js","node_modules/y-trystero/node_modules/lib0/set.js","node_modules/y-trystero/node_modules/lib0/array.js","node_modules/y-trystero/node_modules/lib0/promise.js","node_modules/y-trystero/node_modules/lib0/time.js","node_modules/y-trystero/node_modules/lib0/metric.js","node_modules/y-trystero/node_modules/lib0/random.js","node_modules/y-trystero/node_modules/lib0/binary.js","node_modules/y-trystero/node_modules/lib0/webcrypto.js","node_modules/y-trystero/protocols/index.ts","node_modules/y-trystero/protocols/auth.ts","node_modules/y-trystero/node_modules/lib0/encoding.js","node_modules/y-trystero/node_modules/lib0/number.js","node_modules/y-trystero/node_modules/lib0/string.js","node_modules/y-trystero/node_modules/lib0/decoding.js","node_modules/y-trystero/node_modules/lib0/error.js","node_modules/y-trystero/protocols/awareness.ts","node_modules/y-trystero/node_modules/lib0/function.js","node_modules/y-trystero/node_modules/lib0/object.js","node_modules/y-trystero/protocols/sync.ts","node_modules/y-trystero/src/cryptoutils.ts","node_modules/y-trystero/src/Room.ts","node_modules/y-trystero/node_modules/process/browser.js","node_modules/y-trystero/node_modules/lib0/broadcastchannel.js","node_modules/y-trystero/node_modules/lib0/buffer.js","node_modules/y-trystero/node_modules/buffer/index.js","node_modules/y-trystero/node_modules/base64-js/index.js","node_modules/y-trystero/node_modules/ieee754/index.js","node_modules/y-trystero/node_modules/lib0/environment.js","node_modules/y-trystero/node_modules/lib0/conditions.js","node_modules/y-trystero/node_modules/lib0/storage.js","node_modules/y-trystero/node_modules/lib0/mutex.js","node_modules/y-trystero/src/types.ts","node_modules/y-trystero/src/connectionMaps.ts","node_modules/y-trystero/src/messagesRead.ts","node_modules/y-trystero/src/MessageType.ts","node_modules/y-trystero/src/messagesSend.ts","node_modules/y-trystero/node_modules/trystero/src/index.js","node_modules/y-trystero/node_modules/trystero/src/nostr.js","node_modules/y-trystero/node_modules/@noble/curves/secp256k1.js","node_modules/y-trystero/node_modules/@noble/curves/src/secp256k1.ts","node_modules/y-trystero/node_modules/@noble/hashes/sha256.js","node_modules/y-trystero/node_modules/@noble/hashes/src/sha256.ts","node_modules/y-trystero/node_modules/@noble/hashes/_md.js","node_modules/y-trystero/node_modules/@noble/hashes/src/_md.ts","node_modules/y-trystero/node_modules/@noble/hashes/_assert.js","node_modules/y-trystero/node_modules/@noble/hashes/src/_assert.ts","node_modules/y-trystero/node_modules/@noble/hashes/utils.js","node_modules/y-trystero/node_modules/@noble/hashes/src/utils.ts","node_modules/y-trystero/node_modules/@noble/hashes/crypto.js","node_modules/y-trystero/node_modules/@noble/hashes/src/crypto.ts","node_modules/y-trystero/node_modules/@noble/curves/_shortw_utils.js","node_modules/y-trystero/node_modules/@noble/curves/src/_shortw_utils.ts","node_modules/y-trystero/node_modules/@noble/hashes/hmac.js","node_modules/y-trystero/node_modules/@noble/hashes/src/hmac.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/weierstrass.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/weierstrass.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/curve.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/curve.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/modular.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/modular.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/utils.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/utils.ts","node_modules/y-trystero/node_modules/@noble/curves/abstract/hash-to-curve.js","node_modules/y-trystero/node_modules/@noble/curves/src/abstract/hash-to-curve.ts","node_modules/y-trystero/node_modules/trystero/src/strategy.js","node_modules/y-trystero/node_modules/trystero/src/crypto.js","node_modules/y-trystero/node_modules/trystero/src/utils.js","node_modules/y-trystero/node_modules/trystero/src/peer.js","node_modules/y-trystero/node_modules/@thaunknown/simple-peer/index.js","node_modules/y-trystero/node_modules/@thaunknown/simple-peer/lite.js","node_modules/y-trystero/node_modules/debug/src/browser.js","node_modules/y-trystero/node_modules/debug/src/common.js","node_modules/y-trystero/node_modules/ms/index.js","node_modules/y-trystero/node_modules/webrtc-polyfill/browser.js","node_modules/y-trystero/node_modules/streamx/index.js","node_modules/y-trystero/node_modules/events/events.js","node_modules/y-trystero/node_modules/queue-tick/queue-microtask.js","node_modules/y-trystero/node_modules/fast-fifo/index.js","node_modules/y-trystero/node_modules/fast-fifo/fixed-size.js","node_modules/y-trystero/node_modules/text-decoder/index.js","node_modules/y-trystero/node_modules/text-decoder/lib/browser-decoder.js","node_modules/y-trystero/node_modules/err-code/index.js","node_modules/y-trystero/node_modules/uint8-util/browser.js","node_modules/y-trystero/node_modules/uint8-util/util.js","node_modules/y-trystero/node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","node_modules/y-trystero/node_modules/src/index.ts","node_modules/y-trystero/node_modules/trystero/src/room.js","node_modules/trystero/src/torrent.js","node_modules/trystero/src/crypto.js","node_modules/trystero/src/utils.js","node_modules/trystero/src/strategy.js","node_modules/trystero/src/peer.js","node_modules/@thaunknown/simple-peer/index.js","node_modules/@thaunknown/simple-peer/lite.js","node_modules/debug/src/browser.js","node_modules/debug/src/common.js","node_modules/ms/index.js","node_modules/webrtc-polyfill/browser.js","node_modules/streamx/index.js","node_modules/events/events.js","node_modules/queue-tick/queue-microtask.js","node_modules/fast-fifo/index.js","node_modules/fast-fifo/fixed-size.js","node_modules/text-decoder/index.js","node_modules/text-decoder/lib/browser-decoder.js","node_modules/err-code/index.js","node_modules/uint8-util/browser.js","node_modules/uint8-util/util.js","node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","node_modules/src/index.ts","node_modules/trystero/src/room.js","node_modules/trystero/src/index.js","node_modules/trystero/src/nostr.js","node_modules/@noble/curves/secp256k1.js","node_modules/@noble/curves/src/secp256k1.ts","node_modules/@noble/hashes/sha256.js","node_modules/@noble/hashes/src/sha256.ts","node_modules/@noble/hashes/_md.js","node_modules/@noble/hashes/src/_md.ts","node_modules/@noble/hashes/_assert.js","node_modules/@noble/hashes/src/_assert.ts","node_modules/@noble/hashes/utils.js","node_modules/@noble/hashes/src/utils.ts","node_modules/@noble/hashes/crypto.js","node_modules/@noble/hashes/src/crypto.ts","node_modules/@noble/curves/_shortw_utils.js","node_modules/@noble/curves/src/_shortw_utils.ts","node_modules/@noble/hashes/hmac.js","node_modules/@noble/hashes/src/hmac.ts","node_modules/@noble/curves/abstract/weierstrass.js","node_modules/@noble/curves/src/abstract/weierstrass.ts","node_modules/@noble/curves/abstract/curve.js","node_modules/@noble/curves/src/abstract/curve.ts","node_modules/@noble/curves/abstract/modular.js","node_modules/@noble/curves/src/abstract/modular.ts","node_modules/@noble/curves/abstract/utils.js","node_modules/@noble/curves/src/abstract/utils.ts","node_modules/@noble/curves/abstract/hash-to-curve.js","node_modules/@noble/curves/src/abstract/hash-to-curve.ts","src/views/Deploy.vue","node_modules/vuetify/lib/framework.mjs","node_modules/vuetify/src/framework.ts","node_modules/@swc/helpers/esm/_object_without_properties.js","node_modules/@swc/helpers/esm/_object_without_properties_loose.js","node_modules/vuetify/lib/composables/date/date.mjs","node_modules/vuetify/src/composables/date/date.ts","node_modules/vuetify/lib/composables/locale.mjs","node_modules/vuetify/src/composables/locale.ts","node_modules/vuetify/lib/locale/adapters/vuetify.mjs","node_modules/vuetify/src/locale/adapters/vuetify.ts","node_modules/vuetify/lib/composables/proxiedModel.mjs","node_modules/vuetify/src/composables/proxiedModel.ts","node_modules/vuetify/lib/composables/toggleScope.mjs","node_modules/vuetify/src/composables/toggleScope.ts","node_modules/vuetify/lib/util/index.mjs","node_modules/vuetify/src/util/index.ts","node_modules/vuetify/lib/util/anchor.mjs","node_modules/vuetify/src/util/anchor.ts","node_modules/vuetify/lib/util/helpers.mjs","node_modules/vuetify/src/util/helpers.ts","node_modules/vuetify/lib/util/globals.mjs","node_modules/vuetify/src/util/globals.ts","node_modules/vuetify/lib/util/animation.mjs","node_modules/vuetify/src/util/animation.ts","node_modules/vuetify/lib/util/box.mjs","node_modules/vuetify/src/util/box.ts","node_modules/vuetify/lib/util/bindProps.mjs","node_modules/vuetify/src/util/bindProps.ts","node_modules/vuetify/lib/util/colorUtils.mjs","node_modules/vuetify/src/util/colorUtils.ts","node_modules/vuetify/lib/util/color/APCA.mjs","node_modules/vuetify/src/util/color/APCA.ts","node_modules/vuetify/lib/util/console.mjs","node_modules/vuetify/src/util/console.ts","node_modules/vuetify/lib/util/color/transformCIELAB.mjs","node_modules/vuetify/src/util/color/transformCIELAB.ts","node_modules/vuetify/lib/util/color/transformSRGB.mjs","node_modules/vuetify/src/util/color/transformSRGB.ts","node_modules/vuetify/lib/util/createSimpleFunctional.mjs","node_modules/vuetify/src/util/createSimpleFunctional.ts","node_modules/vuetify/lib/composables/component.mjs","node_modules/vuetify/src/composables/component.ts","node_modules/vuetify/lib/util/propsFactory.mjs","node_modules/vuetify/src/util/propsFactory.ts","node_modules/vuetify/lib/util/defineComponent.mjs","node_modules/vuetify/src/util/defineComponent.tsx","node_modules/vuetify/lib/composables/defaults.mjs","node_modules/vuetify/src/composables/defaults.ts","node_modules/vuetify/lib/util/getCurrentInstance.mjs","node_modules/vuetify/src/util/getCurrentInstance.ts","node_modules/vuetify/lib/util/injectSelf.mjs","node_modules/vuetify/src/util/injectSelf.ts","node_modules/vuetify/lib/util/dom.mjs","node_modules/vuetify/src/util/dom.ts","node_modules/vuetify/lib/util/easing.mjs","node_modules/vuetify/src/util/easing.ts","node_modules/vuetify/lib/util/events.mjs","node_modules/vuetify/src/util/events.ts","node_modules/vuetify/lib/util/getScrollParent.mjs","node_modules/vuetify/src/util/getScrollParent.ts","node_modules/vuetify/lib/util/isFixedPosition.mjs","node_modules/vuetify/src/util/isFixedPosition.ts","node_modules/vuetify/lib/util/useRender.mjs","node_modules/vuetify/src/util/useRender.ts","node_modules/vuetify/lib/locale/en.mjs","node_modules/vuetify/src/locale/en.ts","node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs","node_modules/vuetify/src/composables/date/adapters/vuetify.ts","node_modules/vuetify/lib/composables/display.mjs","node_modules/vuetify/src/composables/display.ts","node_modules/vuetify/lib/composables/goto.mjs","node_modules/vuetify/src/composables/goto.ts","node_modules/vuetify/lib/composables/icons.mjs","node_modules/vuetify/src/composables/icons.tsx","node_modules/vuetify/lib/iconsets/mdi.mjs","node_modules/vuetify/src/iconsets/mdi.ts","node_modules/vuetify/lib/composables/theme.mjs","node_modules/vuetify/src/composables/theme.ts","node_modules/vuetify/lib/composables/index.mjs","node_modules/vuetify/src/composables/index.ts","node_modules/vuetify/lib/composables/date/index.mjs","node_modules/vuetify/src/composables/date/index.ts","node_modules/vuetify/lib/composables/layout.mjs","node_modules/vuetify/src/composables/layout.ts","node_modules/vuetify/lib/composables/resizeObserver.mjs","node_modules/vuetify/src/composables/resizeObserver.ts","node_modules/vuetify/lib/components/index.mjs","node_modules/vuetify/src/components/index.ts","node_modules/vuetify/lib/components/VApp/index.mjs","node_modules/vuetify/src/components/VApp/index.ts","node_modules/vuetify/lib/components/VApp/VApp.mjs","node_modules/vuetify/src/components/VApp/VApp.tsx","node_modules/vuetify/lib/components/VAppBar/index.mjs","node_modules/vuetify/src/components/VAppBar/index.ts","node_modules/vuetify/lib/components/VAppBar/VAppBar.mjs","node_modules/vuetify/src/components/VAppBar/VAppBar.tsx","node_modules/vuetify/lib/components/VToolbar/VToolbar.mjs","node_modules/vuetify/src/components/VToolbar/VToolbar.tsx","node_modules/vuetify/lib/components/VToolbar/VToolbarTitle.mjs","node_modules/vuetify/src/components/VToolbar/VToolbarTitle.tsx","node_modules/vuetify/lib/composables/tag.mjs","node_modules/vuetify/src/composables/tag.ts","node_modules/vuetify/lib/components/transitions/index.mjs","node_modules/vuetify/src/components/transitions/index.ts","node_modules/vuetify/lib/components/transitions/createTransition.mjs","node_modules/vuetify/src/components/transitions/createTransition.ts","node_modules/vuetify/lib/components/transitions/expand-transition.mjs","node_modules/vuetify/src/components/transitions/expand-transition.ts","node_modules/vuetify/lib/components/transitions/dialog-transition.mjs","node_modules/vuetify/src/components/transitions/dialog-transition.tsx","node_modules/vuetify/lib/components/VDefaultsProvider/index.mjs","node_modules/vuetify/src/components/VDefaultsProvider/index.ts","node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.mjs","node_modules/vuetify/src/components/VDefaultsProvider/VDefaultsProvider.tsx","node_modules/vuetify/lib/components/VImg/index.mjs","node_modules/vuetify/src/components/VImg/index.ts","node_modules/vuetify/lib/components/VImg/VImg.mjs","node_modules/vuetify/src/components/VImg/VImg.tsx","node_modules/vuetify/lib/components/VResponsive/VResponsive.mjs","node_modules/vuetify/src/components/VResponsive/VResponsive.tsx","node_modules/vuetify/lib/composables/dimensions.mjs","node_modules/vuetify/src/composables/dimensions.ts","node_modules/vuetify/lib/composables/color.mjs","node_modules/vuetify/src/composables/color.ts","node_modules/vuetify/lib/composables/rounded.mjs","node_modules/vuetify/src/composables/rounded.ts","node_modules/vuetify/lib/composables/transition.mjs","node_modules/vuetify/src/composables/transition.ts","node_modules/vuetify/lib/directives/intersect/index.mjs","node_modules/vuetify/src/directives/intersect/index.ts","node_modules/vuetify/lib/composables/border.mjs","node_modules/vuetify/src/composables/border.ts","node_modules/vuetify/lib/composables/elevation.mjs","node_modules/vuetify/src/composables/elevation.ts","node_modules/vuetify/lib/composables/scroll.mjs","node_modules/vuetify/src/composables/scroll.ts","node_modules/vuetify/lib/composables/ssrBoot.mjs","node_modules/vuetify/src/composables/ssrBoot.ts","node_modules/vuetify/lib/components/VAppBar/VAppBarNavIcon.mjs","node_modules/vuetify/src/components/VAppBar/VAppBarNavIcon.tsx","node_modules/vuetify/lib/components/VBtn/VBtn.mjs","node_modules/vuetify/src/components/VBtn/VBtn.tsx","node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.mjs","node_modules/vuetify/src/components/VBtnToggle/VBtnToggle.tsx","node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.mjs","node_modules/vuetify/src/components/VBtnGroup/VBtnGroup.tsx","node_modules/vuetify/lib/composables/density.mjs","node_modules/vuetify/src/composables/density.ts","node_modules/vuetify/lib/composables/variant.mjs","node_modules/vuetify/src/composables/variant.tsx","node_modules/vuetify/lib/composables/group.mjs","node_modules/vuetify/src/composables/group.ts","node_modules/vuetify/lib/components/VIcon/index.mjs","node_modules/vuetify/src/components/VIcon/index.ts","node_modules/vuetify/lib/components/VIcon/VIcon.mjs","node_modules/vuetify/src/components/VIcon/VIcon.tsx","node_modules/vuetify/lib/composables/size.mjs","node_modules/vuetify/src/composables/size.ts","node_modules/vuetify/lib/components/VProgressCircular/index.mjs","node_modules/vuetify/src/components/VProgressCircular/index.ts","node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.mjs","node_modules/vuetify/src/components/VProgressCircular/VProgressCircular.tsx","node_modules/vuetify/lib/composables/intersectionObserver.mjs","node_modules/vuetify/src/composables/intersectionObserver.ts","node_modules/vuetify/lib/composables/loader.mjs","node_modules/vuetify/src/composables/loader.tsx","node_modules/vuetify/lib/components/VProgressLinear/index.mjs","node_modules/vuetify/src/components/VProgressLinear/index.ts","node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.mjs","node_modules/vuetify/src/components/VProgressLinear/VProgressLinear.tsx","node_modules/vuetify/lib/composables/location.mjs","node_modules/vuetify/src/composables/location.ts","node_modules/vuetify/lib/composables/position.mjs","node_modules/vuetify/src/composables/position.ts","node_modules/vuetify/lib/composables/router.mjs","node_modules/vuetify/src/composables/router.tsx","node_modules/vuetify/lib/composables/selectLink.mjs","node_modules/vuetify/src/composables/selectLink.ts","node_modules/vuetify/lib/directives/ripple/index.mjs","node_modules/vuetify/src/directives/ripple/index.ts","node_modules/vuetify/lib/components/VAppBar/VAppBarTitle.mjs","node_modules/vuetify/src/components/VAppBar/VAppBarTitle.tsx","node_modules/vuetify/lib/components/VAlert/index.mjs","node_modules/vuetify/src/components/VAlert/index.ts","node_modules/vuetify/lib/components/VAlert/VAlert.mjs","node_modules/vuetify/src/components/VAlert/VAlert.tsx","node_modules/vuetify/lib/components/VAlert/VAlertTitle.mjs","node_modules/vuetify/src/components/VAlert/VAlertTitle.ts","node_modules/vuetify/lib/components/VBtn/index.mjs","node_modules/vuetify/src/components/VBtn/index.ts","node_modules/vuetify/lib/components/VAutocomplete/index.mjs","node_modules/vuetify/src/components/VAutocomplete/index.ts","node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs","node_modules/vuetify/src/components/VAutocomplete/VAutocomplete.tsx","node_modules/vuetify/lib/components/VAvatar/index.mjs","node_modules/vuetify/src/components/VAvatar/index.ts","node_modules/vuetify/lib/components/VAvatar/VAvatar.mjs","node_modules/vuetify/src/components/VAvatar/VAvatar.tsx","node_modules/vuetify/lib/components/VCheckbox/index.mjs","node_modules/vuetify/src/components/VCheckbox/index.ts","node_modules/vuetify/lib/components/VCheckbox/VCheckbox.mjs","node_modules/vuetify/src/components/VCheckbox/VCheckbox.tsx","node_modules/vuetify/lib/components/VCheckbox/VCheckboxBtn.mjs","node_modules/vuetify/src/components/VCheckbox/VCheckboxBtn.tsx","node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.mjs","node_modules/vuetify/src/components/VSelectionControl/VSelectionControl.tsx","node_modules/vuetify/lib/components/VLabel/index.mjs","node_modules/vuetify/src/components/VLabel/index.ts","node_modules/vuetify/lib/components/VLabel/VLabel.mjs","node_modules/vuetify/src/components/VLabel/VLabel.tsx","node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs","node_modules/vuetify/src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","node_modules/vuetify/lib/components/VInput/VInput.mjs","node_modules/vuetify/src/components/VInput/VInput.tsx","node_modules/vuetify/lib/components/VInput/InputIcon.mjs","node_modules/vuetify/src/components/VInput/InputIcon.tsx","node_modules/vuetify/lib/components/VMessages/VMessages.mjs","node_modules/vuetify/src/components/VMessages/VMessages.tsx","node_modules/vuetify/lib/composables/validation.mjs","node_modules/vuetify/src/composables/validation.ts","node_modules/@swc/helpers/esm/_ts_values.js","node_modules/vuetify/lib/composables/focus.mjs","node_modules/vuetify/src/composables/focus.ts","node_modules/vuetify/lib/composables/form.mjs","node_modules/vuetify/src/composables/form.ts","node_modules/vuetify/lib/components/VChip/index.mjs","node_modules/vuetify/src/components/VChip/index.ts","node_modules/vuetify/lib/components/VChip/VChip.mjs","node_modules/vuetify/src/components/VChip/VChip.tsx","node_modules/vuetify/lib/components/VChipGroup/VChipGroup.mjs","node_modules/vuetify/src/components/VChipGroup/VChipGroup.tsx","node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.mjs","node_modules/vuetify/src/components/VSlideGroup/VSlideGroup.tsx","node_modules/vuetify/lib/components/VSlideGroup/helpers.mjs","node_modules/vuetify/src/components/VSlideGroup/helpers.ts","node_modules/vuetify/lib/components/VList/index.mjs","node_modules/vuetify/src/components/VList/index.ts","node_modules/vuetify/lib/components/VList/VList.mjs","node_modules/vuetify/src/components/VList/VList.tsx","node_modules/vuetify/lib/components/VList/VListChildren.mjs","node_modules/vuetify/src/components/VList/VListChildren.tsx","node_modules/vuetify/lib/components/VList/VListGroup.mjs","node_modules/vuetify/src/components/VList/VListGroup.tsx","node_modules/vuetify/lib/components/VList/list.mjs","node_modules/vuetify/src/components/VList/list.ts","node_modules/vuetify/lib/composables/nested/nested.mjs","node_modules/vuetify/src/composables/nested/nested.ts","node_modules/vuetify/lib/composables/nested/activeStrategies.mjs","node_modules/vuetify/src/composables/nested/activeStrategies.ts","node_modules/vuetify/lib/composables/nested/openStrategies.mjs","node_modules/vuetify/src/composables/nested/openStrategies.ts","node_modules/vuetify/lib/composables/nested/selectStrategies.mjs","node_modules/vuetify/src/composables/nested/selectStrategies.ts","node_modules/vuetify/lib/components/VList/VListItem.mjs","node_modules/vuetify/src/components/VList/VListItem.tsx","node_modules/vuetify/lib/components/VList/VListItemSubtitle.mjs","node_modules/vuetify/src/components/VList/VListItemSubtitle.tsx","node_modules/vuetify/lib/components/VList/VListItemTitle.mjs","node_modules/vuetify/src/components/VList/VListItemTitle.ts","node_modules/vuetify/lib/components/VList/VListSubheader.mjs","node_modules/vuetify/src/components/VList/VListSubheader.tsx","node_modules/vuetify/lib/components/VDivider/index.mjs","node_modules/vuetify/src/components/VDivider/index.ts","node_modules/vuetify/lib/components/VDivider/VDivider.mjs","node_modules/vuetify/src/components/VDivider/VDivider.tsx","node_modules/vuetify/lib/composables/list-items.mjs","node_modules/vuetify/src/composables/list-items.ts","node_modules/vuetify/lib/components/VList/VListImg.mjs","node_modules/vuetify/src/components/VList/VListImg.ts","node_modules/vuetify/lib/components/VList/VListItemAction.mjs","node_modules/vuetify/src/components/VList/VListItemAction.tsx","node_modules/vuetify/lib/components/VList/VListItemMedia.mjs","node_modules/vuetify/src/components/VList/VListItemMedia.tsx","node_modules/vuetify/lib/components/VMenu/index.mjs","node_modules/vuetify/src/components/VMenu/index.ts","node_modules/vuetify/lib/components/VMenu/VMenu.mjs","node_modules/vuetify/src/components/VMenu/VMenu.tsx","node_modules/vuetify/lib/components/VOverlay/index.mjs","node_modules/vuetify/src/components/VOverlay/index.ts","node_modules/vuetify/lib/components/VOverlay/VOverlay.mjs","node_modules/vuetify/src/components/VOverlay/VOverlay.tsx","node_modules/vuetify/lib/components/VOverlay/locationStrategies.mjs","node_modules/vuetify/src/components/VOverlay/locationStrategies.ts","node_modules/vuetify/lib/components/VOverlay/util/point.mjs","node_modules/vuetify/src/components/VOverlay/util/point.ts","node_modules/vuetify/lib/components/VOverlay/scrollStrategies.mjs","node_modules/vuetify/src/components/VOverlay/scrollStrategies.ts","node_modules/vuetify/lib/components/VOverlay/requestNewFrame.mjs","node_modules/vuetify/src/components/VOverlay/requestNewFrame.ts","node_modules/vuetify/lib/components/VOverlay/useActivator.mjs","node_modules/vuetify/src/components/VOverlay/useActivator.tsx","node_modules/vuetify/lib/components/VMenu/shared.mjs","node_modules/vuetify/src/components/VMenu/shared.ts","node_modules/vuetify/lib/composables/delay.mjs","node_modules/vuetify/src/composables/delay.ts","node_modules/vuetify/lib/composables/hydration.mjs","node_modules/vuetify/src/composables/hydration.ts","node_modules/vuetify/lib/composables/lazy.mjs","node_modules/vuetify/src/composables/lazy.ts","node_modules/vuetify/lib/composables/scopeId.mjs","node_modules/vuetify/src/composables/scopeId.ts","node_modules/vuetify/lib/composables/stack.mjs","node_modules/vuetify/src/composables/stack.ts","node_modules/vuetify/lib/composables/teleport.mjs","node_modules/vuetify/src/composables/teleport.ts","node_modules/vuetify/lib/directives/click-outside/index.mjs","node_modules/vuetify/src/directives/click-outside/index.ts","node_modules/vuetify/lib/composables/forwardRefs.mjs","node_modules/vuetify/src/composables/forwardRefs.ts","node_modules/vuetify/lib/components/VSelect/VSelect.mjs","node_modules/vuetify/src/components/VSelect/VSelect.tsx","node_modules/vuetify/lib/components/VTextField/VTextField.mjs","node_modules/vuetify/src/components/VTextField/VTextField.tsx","node_modules/vuetify/lib/components/VCounter/VCounter.mjs","node_modules/vuetify/src/components/VCounter/VCounter.tsx","node_modules/vuetify/lib/components/VField/VField.mjs","node_modules/vuetify/src/components/VField/VField.tsx","node_modules/vuetify/lib/components/VField/VFieldLabel.mjs","node_modules/vuetify/src/components/VField/VFieldLabel.tsx","node_modules/vuetify/lib/components/VVirtualScroll/index.mjs","node_modules/vuetify/src/components/VVirtualScroll/index.ts","node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScroll.mjs","node_modules/vuetify/src/components/VVirtualScroll/VVirtualScroll.tsx","node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScrollItem.mjs","node_modules/vuetify/src/components/VVirtualScroll/VVirtualScrollItem.tsx","node_modules/vuetify/lib/composables/virtual.mjs","node_modules/vuetify/src/composables/virtual.ts","node_modules/vuetify/lib/components/VSelect/useScrolling.mjs","node_modules/vuetify/src/components/VSelect/useScrolling.ts","node_modules/vuetify/lib/composables/filter.mjs","node_modules/vuetify/src/composables/filter.ts","node_modules/vuetify/lib/components/VBadge/index.mjs","node_modules/vuetify/src/components/VBadge/index.ts","node_modules/vuetify/lib/components/VBadge/VBadge.mjs","node_modules/vuetify/src/components/VBadge/VBadge.tsx","node_modules/vuetify/lib/components/VBanner/index.mjs","node_modules/vuetify/src/components/VBanner/index.ts","node_modules/vuetify/lib/components/VBanner/VBanner.mjs","node_modules/vuetify/src/components/VBanner/VBanner.tsx","node_modules/vuetify/lib/components/VBanner/VBannerActions.mjs","node_modules/vuetify/src/components/VBanner/VBannerActions.tsx","node_modules/vuetify/lib/components/VBanner/VBannerText.mjs","node_modules/vuetify/src/components/VBanner/VBannerText.ts","node_modules/vuetify/lib/components/VBottomNavigation/index.mjs","node_modules/vuetify/src/components/VBottomNavigation/index.ts","node_modules/vuetify/lib/components/VBottomNavigation/VBottomNavigation.mjs","node_modules/vuetify/src/components/VBottomNavigation/VBottomNavigation.tsx","node_modules/vuetify/lib/components/VBottomSheet/index.mjs","node_modules/vuetify/src/components/VBottomSheet/index.ts","node_modules/vuetify/lib/components/VBottomSheet/VBottomSheet.mjs","node_modules/vuetify/src/components/VBottomSheet/VBottomSheet.tsx","node_modules/vuetify/lib/components/VDialog/VDialog.mjs","node_modules/vuetify/src/components/VDialog/VDialog.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/index.mjs","node_modules/vuetify/src/components/VBreadcrumbs/index.ts","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbs.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbs.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx","node_modules/vuetify/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs","node_modules/vuetify/src/components/VBreadcrumbs/VBreadcrumbsItem.tsx","node_modules/vuetify/lib/components/VBtnGroup/index.mjs","node_modules/vuetify/src/components/VBtnGroup/index.ts","node_modules/vuetify/lib/components/VBtnToggle/index.mjs","node_modules/vuetify/src/components/VBtnToggle/index.ts","node_modules/vuetify/lib/components/VCard/index.mjs","node_modules/vuetify/src/components/VCard/index.ts","node_modules/vuetify/lib/components/VCard/VCard.mjs","node_modules/vuetify/src/components/VCard/VCard.tsx","node_modules/vuetify/lib/components/VCard/VCardActions.mjs","node_modules/vuetify/src/components/VCard/VCardActions.tsx","node_modules/vuetify/lib/components/VCard/VCardItem.mjs","node_modules/vuetify/src/components/VCard/VCardItem.tsx","node_modules/vuetify/lib/components/VCard/VCardSubtitle.mjs","node_modules/vuetify/src/components/VCard/VCardSubtitle.tsx","node_modules/vuetify/lib/components/VCard/VCardTitle.mjs","node_modules/vuetify/src/components/VCard/VCardTitle.ts","node_modules/vuetify/lib/components/VCard/VCardText.mjs","node_modules/vuetify/src/components/VCard/VCardText.tsx","node_modules/vuetify/lib/components/VCarousel/index.mjs","node_modules/vuetify/src/components/VCarousel/index.ts","node_modules/vuetify/lib/components/VCarousel/VCarousel.mjs","node_modules/vuetify/src/components/VCarousel/VCarousel.tsx","node_modules/vuetify/lib/components/VWindow/VWindow.mjs","node_modules/vuetify/src/components/VWindow/VWindow.tsx","node_modules/vuetify/lib/directives/touch/index.mjs","node_modules/vuetify/src/directives/touch/index.ts","node_modules/vuetify/lib/components/VCarousel/VCarouselItem.mjs","node_modules/vuetify/src/components/VCarousel/VCarouselItem.tsx","node_modules/vuetify/lib/components/VWindow/VWindowItem.mjs","node_modules/vuetify/src/components/VWindow/VWindowItem.tsx","node_modules/vuetify/lib/components/VChipGroup/index.mjs","node_modules/vuetify/src/components/VChipGroup/index.ts","node_modules/vuetify/lib/components/VCode/index.mjs","node_modules/vuetify/src/components/VCode/index.ts","node_modules/vuetify/lib/components/VColorPicker/index.mjs","node_modules/vuetify/src/components/VColorPicker/index.ts","node_modules/vuetify/lib/components/VColorPicker/VColorPicker.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPicker.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerCanvas.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerCanvas.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerEdit.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerEdit.tsx","node_modules/vuetify/lib/components/VColorPicker/util/index.mjs","node_modules/vuetify/src/components/VColorPicker/util/index.ts","node_modules/vuetify/lib/components/VColorPicker/VColorPickerPreview.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerPreview.tsx","node_modules/vuetify/lib/components/VSlider/index.mjs","node_modules/vuetify/src/components/VSlider/index.ts","node_modules/vuetify/lib/components/VSlider/VSlider.mjs","node_modules/vuetify/src/components/VSlider/VSlider.tsx","node_modules/vuetify/lib/components/VSlider/VSliderThumb.mjs","node_modules/vuetify/src/components/VSlider/VSliderThumb.tsx","node_modules/vuetify/lib/components/VSlider/slider.mjs","node_modules/vuetify/src/components/VSlider/slider.ts","node_modules/vuetify/lib/components/VSlider/VSliderTrack.mjs","node_modules/vuetify/src/components/VSlider/VSliderTrack.tsx","node_modules/vuetify/lib/components/VColorPicker/VColorPickerSwatches.mjs","node_modules/vuetify/src/components/VColorPicker/VColorPickerSwatches.tsx","node_modules/vuetify/lib/util/colors.mjs","node_modules/vuetify/src/util/colors.ts","node_modules/vuetify/lib/components/VSheet/VSheet.mjs","node_modules/vuetify/src/components/VSheet/VSheet.tsx","node_modules/vuetify/lib/components/VCombobox/index.mjs","node_modules/vuetify/src/components/VCombobox/index.ts","node_modules/vuetify/lib/components/VCombobox/VCombobox.mjs","node_modules/vuetify/src/components/VCombobox/VCombobox.tsx","node_modules/vuetify/lib/components/VTextField/index.mjs","node_modules/vuetify/src/components/VTextField/index.ts","node_modules/vuetify/lib/components/VConfirmEdit/index.mjs","node_modules/vuetify/src/components/VConfirmEdit/index.ts","node_modules/vuetify/lib/components/VConfirmEdit/VConfirmEdit.mjs","node_modules/vuetify/src/components/VConfirmEdit/VConfirmEdit.tsx","node_modules/vuetify/lib/components/VCounter/index.mjs","node_modules/vuetify/src/components/VCounter/index.ts","node_modules/vuetify/lib/components/VDataIterator/index.mjs","node_modules/vuetify/src/components/VDataIterator/index.ts","node_modules/vuetify/lib/components/VDataIterator/VDataIterator.mjs","node_modules/vuetify/src/components/VDataIterator/VDataIterator.tsx","node_modules/vuetify/lib/components/VDataTable/composables/expand.mjs","node_modules/vuetify/src/components/VDataTable/composables/expand.ts","node_modules/vuetify/lib/components/VDataTable/composables/group.mjs","node_modules/vuetify/src/components/VDataTable/composables/group.ts","node_modules/vuetify/lib/components/VDataTable/composables/options.mjs","node_modules/vuetify/src/components/VDataTable/composables/options.ts","node_modules/vuetify/lib/components/VDataTable/composables/paginate.mjs","node_modules/vuetify/src/components/VDataTable/composables/paginate.ts","node_modules/vuetify/lib/components/VDataTable/composables/select.mjs","node_modules/vuetify/src/components/VDataTable/composables/select.ts","node_modules/vuetify/lib/components/VDataTable/composables/sort.mjs","node_modules/vuetify/src/components/VDataTable/composables/sort.ts","node_modules/vuetify/lib/components/VDataIterator/composables/items.mjs","node_modules/vuetify/src/components/VDataIterator/composables/items.ts","node_modules/vuetify/lib/components/VDataTable/index.mjs","node_modules/vuetify/src/components/VDataTable/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTable.mjs","node_modules/vuetify/src/components/VDataTable/VDataTable.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableFooter.tsx","node_modules/vuetify/lib/components/VPagination/index.mjs","node_modules/vuetify/src/components/VPagination/index.ts","node_modules/vuetify/lib/components/VPagination/VPagination.mjs","node_modules/vuetify/src/components/VPagination/VPagination.tsx","node_modules/vuetify/lib/composables/refs.mjs","node_modules/vuetify/src/composables/refs.ts","node_modules/vuetify/lib/components/VSelect/index.mjs","node_modules/vuetify/src/components/VSelect/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableHeaders.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableHeaders.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableColumn.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableColumn.tsx","node_modules/vuetify/lib/components/VDataTable/composables/headers.mjs","node_modules/vuetify/src/components/VDataTable/composables/headers.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableRows.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableRows.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableGroupHeaderRow.tsx","node_modules/vuetify/lib/components/VDataTable/VDataTableRow.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableRow.tsx","node_modules/vuetify/lib/components/VTable/VTable.mjs","node_modules/vuetify/src/components/VTable/VTable.tsx","node_modules/vuetify/lib/components/VDataTable/composables/items.mjs","node_modules/vuetify/src/components/VDataTable/composables/items.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableVirtual.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableVirtual.tsx","node_modules/vuetify/lib/components/VTable/index.mjs","node_modules/vuetify/src/components/VTable/index.ts","node_modules/vuetify/lib/components/VDataTable/VDataTableServer.mjs","node_modules/vuetify/src/components/VDataTable/VDataTableServer.tsx","node_modules/vuetify/lib/components/VDatePicker/index.mjs","node_modules/vuetify/src/components/VDatePicker/index.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePicker.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePicker.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerControls.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerControls.tsx","node_modules/vuetify/lib/components/VGrid/index.mjs","node_modules/vuetify/src/components/VGrid/index.ts","node_modules/vuetify/lib/components/VGrid/VContainer.mjs","node_modules/vuetify/src/components/VGrid/VContainer.tsx","node_modules/vuetify/lib/components/VGrid/VCol.mjs","node_modules/vuetify/src/components/VGrid/VCol.ts","node_modules/vuetify/lib/components/VGrid/VRow.mjs","node_modules/vuetify/src/components/VGrid/VRow.ts","node_modules/vuetify/lib/components/VGrid/VSpacer.mjs","node_modules/vuetify/src/components/VGrid/VSpacer.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePickerHeader.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerHeader.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonth.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx","node_modules/vuetify/lib/composables/calendar.mjs","node_modules/vuetify/src/composables/calendar.ts","node_modules/vuetify/lib/components/VDatePicker/VDatePickerMonths.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerMonths.tsx","node_modules/vuetify/lib/components/VDatePicker/VDatePickerYears.mjs","node_modules/vuetify/src/components/VDatePicker/VDatePickerYears.tsx","node_modules/vuetify/lib/labs/VPicker/VPicker.mjs","node_modules/vuetify/src/labs/VPicker/VPicker.tsx","node_modules/vuetify/lib/labs/VPicker/VPickerTitle.mjs","node_modules/vuetify/src/labs/VPicker/VPickerTitle.ts","node_modules/vuetify/lib/components/VDialog/index.mjs","node_modules/vuetify/src/components/VDialog/index.ts","node_modules/vuetify/lib/components/VEmptyState/index.mjs","node_modules/vuetify/src/components/VEmptyState/index.ts","node_modules/vuetify/lib/components/VEmptyState/VEmptyState.mjs","node_modules/vuetify/src/components/VEmptyState/VEmptyState.tsx","node_modules/vuetify/lib/components/VExpansionPanel/index.mjs","node_modules/vuetify/src/components/VExpansionPanel/index.ts","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanels.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanels.tsx","node_modules/vuetify/lib/components/VExpansionPanel/shared.mjs","node_modules/vuetify/src/components/VExpansionPanel/shared.ts","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanel.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanel.tsx","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelText.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanelText.tsx","node_modules/vuetify/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs","node_modules/vuetify/src/components/VExpansionPanel/VExpansionPanelTitle.tsx","node_modules/vuetify/lib/components/VFab/index.mjs","node_modules/vuetify/src/components/VFab/index.ts","node_modules/vuetify/lib/components/VFab/VFab.mjs","node_modules/vuetify/src/components/VFab/VFab.tsx","node_modules/vuetify/lib/components/VField/index.mjs","node_modules/vuetify/src/components/VField/index.ts","node_modules/vuetify/lib/components/VFileInput/index.mjs","node_modules/vuetify/src/components/VFileInput/index.ts","node_modules/vuetify/lib/components/VFileInput/VFileInput.mjs","node_modules/vuetify/src/components/VFileInput/VFileInput.tsx","node_modules/vuetify/lib/components/VFooter/index.mjs","node_modules/vuetify/src/components/VFooter/index.ts","node_modules/vuetify/lib/components/VFooter/VFooter.mjs","node_modules/vuetify/src/components/VFooter/VFooter.tsx","node_modules/vuetify/lib/components/VForm/index.mjs","node_modules/vuetify/src/components/VForm/index.ts","node_modules/vuetify/lib/components/VForm/VForm.mjs","node_modules/vuetify/src/components/VForm/VForm.tsx","node_modules/vuetify/lib/components/VHover/index.mjs","node_modules/vuetify/src/components/VHover/index.ts","node_modules/vuetify/lib/components/VHover/VHover.mjs","node_modules/vuetify/src/components/VHover/VHover.tsx","node_modules/vuetify/lib/components/VInfiniteScroll/index.mjs","node_modules/vuetify/src/components/VInfiniteScroll/index.ts","node_modules/vuetify/lib/components/VInfiniteScroll/VInfiniteScroll.mjs","node_modules/vuetify/src/components/VInfiniteScroll/VInfiniteScroll.tsx","node_modules/vuetify/lib/components/VInput/index.mjs","node_modules/vuetify/src/components/VInput/index.ts","node_modules/vuetify/lib/components/VItemGroup/index.mjs","node_modules/vuetify/src/components/VItemGroup/index.ts","node_modules/vuetify/lib/components/VItemGroup/VItemGroup.mjs","node_modules/vuetify/src/components/VItemGroup/VItemGroup.tsx","node_modules/vuetify/lib/components/VItemGroup/VItem.mjs","node_modules/vuetify/src/components/VItemGroup/VItem.tsx","node_modules/vuetify/lib/components/VKbd/index.mjs","node_modules/vuetify/src/components/VKbd/index.ts","node_modules/vuetify/lib/components/VLayout/index.mjs","node_modules/vuetify/src/components/VLayout/index.ts","node_modules/vuetify/lib/components/VLayout/VLayout.mjs","node_modules/vuetify/src/components/VLayout/VLayout.tsx","node_modules/vuetify/lib/components/VLayout/VLayoutItem.mjs","node_modules/vuetify/src/components/VLayout/VLayoutItem.tsx","node_modules/vuetify/lib/components/VLazy/index.mjs","node_modules/vuetify/src/components/VLazy/index.ts","node_modules/vuetify/lib/components/VLazy/VLazy.mjs","node_modules/vuetify/src/components/VLazy/VLazy.tsx","node_modules/vuetify/lib/components/VLocaleProvider/index.mjs","node_modules/vuetify/src/components/VLocaleProvider/index.ts","node_modules/vuetify/lib/components/VLocaleProvider/VLocaleProvider.mjs","node_modules/vuetify/src/components/VLocaleProvider/VLocaleProvider.tsx","node_modules/vuetify/lib/components/VMain/index.mjs","node_modules/vuetify/src/components/VMain/index.ts","node_modules/vuetify/lib/components/VMain/VMain.mjs","node_modules/vuetify/src/components/VMain/VMain.tsx","node_modules/vuetify/lib/components/VMessages/index.mjs","node_modules/vuetify/src/components/VMessages/index.ts","node_modules/vuetify/lib/components/VNavigationDrawer/index.mjs","node_modules/vuetify/src/components/VNavigationDrawer/index.ts","node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.mjs","node_modules/vuetify/src/components/VNavigationDrawer/VNavigationDrawer.tsx","node_modules/vuetify/lib/components/VNavigationDrawer/sticky.mjs","node_modules/vuetify/src/components/VNavigationDrawer/sticky.ts","node_modules/vuetify/lib/components/VNavigationDrawer/touch.mjs","node_modules/vuetify/src/components/VNavigationDrawer/touch.ts","node_modules/vuetify/lib/composables/touch.mjs","node_modules/vuetify/src/composables/touch.ts","node_modules/vuetify/lib/components/VNoSsr/index.mjs","node_modules/vuetify/src/components/VNoSsr/index.ts","node_modules/vuetify/lib/components/VNoSsr/VNoSsr.mjs","node_modules/vuetify/src/components/VNoSsr/VNoSsr.tsx","node_modules/vuetify/lib/components/VOtpInput/index.mjs","node_modules/vuetify/src/components/VOtpInput/index.ts","node_modules/vuetify/lib/components/VOtpInput/VOtpInput.mjs","node_modules/vuetify/src/components/VOtpInput/VOtpInput.tsx","node_modules/vuetify/lib/components/VParallax/index.mjs","node_modules/vuetify/src/components/VParallax/index.ts","node_modules/vuetify/lib/components/VParallax/VParallax.mjs","node_modules/vuetify/src/components/VParallax/VParallax.tsx","node_modules/vuetify/lib/components/VRadio/index.mjs","node_modules/vuetify/src/components/VRadio/index.ts","node_modules/vuetify/lib/components/VRadio/VRadio.mjs","node_modules/vuetify/src/components/VRadio/VRadio.tsx","node_modules/vuetify/lib/components/VRadioGroup/index.mjs","node_modules/vuetify/src/components/VRadioGroup/index.ts","node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.mjs","node_modules/vuetify/src/components/VRadioGroup/VRadioGroup.tsx","node_modules/vuetify/lib/components/VSelectionControl/index.mjs","node_modules/vuetify/src/components/VSelectionControl/index.ts","node_modules/vuetify/lib/components/VRangeSlider/index.mjs","node_modules/vuetify/src/components/VRangeSlider/index.ts","node_modules/vuetify/lib/components/VRangeSlider/VRangeSlider.mjs","node_modules/vuetify/src/components/VRangeSlider/VRangeSlider.tsx","node_modules/vuetify/lib/components/VRating/index.mjs","node_modules/vuetify/src/components/VRating/index.ts","node_modules/vuetify/lib/components/VRating/VRating.mjs","node_modules/vuetify/src/components/VRating/VRating.tsx","node_modules/vuetify/lib/components/VResponsive/index.mjs","node_modules/vuetify/src/components/VResponsive/index.ts","node_modules/vuetify/lib/components/VSelectionControlGroup/index.mjs","node_modules/vuetify/src/components/VSelectionControlGroup/index.ts","node_modules/vuetify/lib/components/VSheet/index.mjs","node_modules/vuetify/src/components/VSheet/index.ts","node_modules/vuetify/lib/components/VSkeletonLoader/index.mjs","node_modules/vuetify/src/components/VSkeletonLoader/index.ts","node_modules/vuetify/lib/components/VSkeletonLoader/VSkeletonLoader.mjs","node_modules/vuetify/src/components/VSkeletonLoader/VSkeletonLoader.tsx","node_modules/vuetify/lib/components/VSlideGroup/index.mjs","node_modules/vuetify/src/components/VSlideGroup/index.ts","node_modules/vuetify/lib/components/VSlideGroup/VSlideGroupItem.mjs","node_modules/vuetify/src/components/VSlideGroup/VSlideGroupItem.tsx","node_modules/vuetify/lib/components/VSnackbar/index.mjs","node_modules/vuetify/src/components/VSnackbar/index.ts","node_modules/vuetify/lib/components/VSnackbar/VSnackbar.mjs","node_modules/vuetify/src/components/VSnackbar/VSnackbar.tsx","node_modules/vuetify/lib/components/VSparkline/index.mjs","node_modules/vuetify/src/components/VSparkline/index.ts","node_modules/vuetify/lib/components/VSparkline/VSparkline.mjs","node_modules/vuetify/src/components/VSparkline/VSparkline.tsx","node_modules/vuetify/lib/components/VSparkline/VBarline.mjs","node_modules/vuetify/src/components/VSparkline/VBarline.tsx","node_modules/vuetify/lib/components/VSparkline/util/line.mjs","node_modules/vuetify/src/components/VSparkline/util/line.ts","node_modules/vuetify/lib/components/VSparkline/VTrendline.mjs","node_modules/vuetify/src/components/VSparkline/VTrendline.tsx","node_modules/vuetify/lib/components/VSparkline/util/path.mjs","node_modules/vuetify/src/components/VSparkline/util/path.ts","node_modules/vuetify/lib/components/VSpeedDial/index.mjs","node_modules/vuetify/src/components/VSpeedDial/index.ts","node_modules/vuetify/lib/components/VSpeedDial/VSpeedDial.mjs","node_modules/vuetify/src/components/VSpeedDial/VSpeedDial.tsx","node_modules/vuetify/lib/components/VStepper/index.mjs","node_modules/vuetify/src/components/VStepper/index.ts","node_modules/vuetify/lib/components/VStepper/VStepper.mjs","node_modules/vuetify/src/components/VStepper/VStepper.tsx","node_modules/vuetify/lib/components/VStepper/shared.mjs","node_modules/vuetify/src/components/VStepper/shared.ts","node_modules/vuetify/lib/components/VStepper/VStepperActions.mjs","node_modules/vuetify/src/components/VStepper/VStepperActions.tsx","node_modules/vuetify/lib/components/VStepper/VStepperHeader.mjs","node_modules/vuetify/src/components/VStepper/VStepperHeader.ts","node_modules/vuetify/lib/components/VStepper/VStepperItem.mjs","node_modules/vuetify/src/components/VStepper/VStepperItem.tsx","node_modules/vuetify/lib/components/VStepper/VStepperWindow.mjs","node_modules/vuetify/src/components/VStepper/VStepperWindow.tsx","node_modules/vuetify/lib/components/VStepper/VStepperWindowItem.mjs","node_modules/vuetify/src/components/VStepper/VStepperWindowItem.tsx","node_modules/vuetify/lib/components/VSwitch/index.mjs","node_modules/vuetify/src/components/VSwitch/index.ts","node_modules/vuetify/lib/components/VSwitch/VSwitch.mjs","node_modules/vuetify/src/components/VSwitch/VSwitch.tsx","node_modules/vuetify/lib/components/VSystemBar/index.mjs","node_modules/vuetify/src/components/VSystemBar/index.ts","node_modules/vuetify/lib/components/VSystemBar/VSystemBar.mjs","node_modules/vuetify/src/components/VSystemBar/VSystemBar.tsx","node_modules/vuetify/lib/components/VTabs/index.mjs","node_modules/vuetify/src/components/VTabs/index.ts","node_modules/vuetify/lib/components/VTabs/VTab.mjs","node_modules/vuetify/src/components/VTabs/VTab.tsx","node_modules/vuetify/lib/components/VTabs/shared.mjs","node_modules/vuetify/src/components/VTabs/shared.ts","node_modules/vuetify/lib/components/VTabs/VTabs.mjs","node_modules/vuetify/src/components/VTabs/VTabs.tsx","node_modules/vuetify/lib/components/VTabs/VTabsWindow.mjs","node_modules/vuetify/src/components/VTabs/VTabsWindow.tsx","node_modules/vuetify/lib/components/VTabs/VTabsWindowItem.mjs","node_modules/vuetify/src/components/VTabs/VTabsWindowItem.tsx","node_modules/vuetify/lib/components/VTextarea/index.mjs","node_modules/vuetify/src/components/VTextarea/index.ts","node_modules/vuetify/lib/components/VTextarea/VTextarea.mjs","node_modules/vuetify/src/components/VTextarea/VTextarea.tsx","node_modules/vuetify/lib/components/VThemeProvider/index.mjs","node_modules/vuetify/src/components/VThemeProvider/index.ts","node_modules/vuetify/lib/components/VThemeProvider/VThemeProvider.mjs","node_modules/vuetify/src/components/VThemeProvider/VThemeProvider.tsx","node_modules/vuetify/lib/components/VTimeline/index.mjs","node_modules/vuetify/src/components/VTimeline/index.ts","node_modules/vuetify/lib/components/VTimeline/VTimeline.mjs","node_modules/vuetify/src/components/VTimeline/VTimeline.tsx","node_modules/vuetify/lib/components/VTimeline/VTimelineItem.mjs","node_modules/vuetify/src/components/VTimeline/VTimelineItem.tsx","node_modules/vuetify/lib/components/VTimeline/VTimelineDivider.mjs","node_modules/vuetify/src/components/VTimeline/VTimelineDivider.tsx","node_modules/vuetify/lib/components/VToolbar/index.mjs","node_modules/vuetify/src/components/VToolbar/index.ts","node_modules/vuetify/lib/components/VToolbar/VToolbarItems.mjs","node_modules/vuetify/src/components/VToolbar/VToolbarItems.tsx","node_modules/vuetify/lib/components/VTooltip/index.mjs","node_modules/vuetify/src/components/VTooltip/index.ts","node_modules/vuetify/lib/components/VTooltip/VTooltip.mjs","node_modules/vuetify/src/components/VTooltip/VTooltip.tsx","node_modules/vuetify/lib/components/VValidation/index.mjs","node_modules/vuetify/src/components/VValidation/index.ts","node_modules/vuetify/lib/components/VValidation/VValidation.mjs","node_modules/vuetify/src/components/VValidation/VValidation.tsx","node_modules/vuetify/lib/components/VWindow/index.mjs","node_modules/vuetify/src/components/VWindow/index.ts","node_modules/vuetify/lib/directives/index.mjs","node_modules/vuetify/src/directives/index.ts","node_modules/vuetify/lib/directives/mutate/index.mjs","node_modules/vuetify/src/directives/mutate/index.ts","node_modules/vuetify/lib/directives/resize/index.mjs","node_modules/vuetify/src/directives/resize/index.ts","node_modules/vuetify/lib/directives/scroll/index.mjs","node_modules/vuetify/src/directives/scroll/index.ts","node_modules/vuetify/lib/directives/tooltip/index.mjs","node_modules/vuetify/src/directives/tooltip/index.ts","node_modules/vuetify/lib/composables/directiveComponent.mjs","node_modules/vuetify/src/composables/directiveComponent.ts"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (modules, entry, mainEntry, parcelRequireName, globalName) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n this\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n\n // ');\n else return '');\n }\n var absoluteURL = new URL(url, base).toString();\n return '\\n ');\n}\nfunction replace(code, baseURL) {\n try {\n var head = code.match(RegExp(\".*?<\\\\/head>\", \"is\"))[0];\n head = head.replace(RegExp(\".*?<\\\\/script>\", \"gims\"), function(pat) {\n var url = pat.match(RegExp(\"src=(?:'|\\\")([^\\\"']+)(?:'|\\\")\", \"is\"));\n if (url) {\n url = url[1];\n if (!(url.startsWith(\"https://\") || url.startsWith(\"http://\"))) return loadResource(\"script\", url, baseURL);\n }\n return pat;\n });\n head = head.replace(RegExp(\"\", \"gims\"), function(pat) {\n var url = pat.match(RegExp(\"href=(?:'|\\\")([^\\\"']+)(?:'|\\\")\", \"is\"));\n if (url) {\n url = url[1];\n if (!(url.startsWith(\"https://\") || url.startsWith(\"http://\"))) return loadResource(\"css\", url, baseURL);\n }\n return pat;\n });\n return code.replace(RegExp(\".*?<\\\\/head>\", \"is\"), head);\n } catch (e) {\n console.warn(\"problems parsing html:\", e);\n }\n}\nfunction copyToClipboard(str) {\n navigator.clipboard.writeText(str);\n}\nfunction parseClassroom(config) {\n var classroom;\n console.warn(\"parse Classroom\", config);\n try {\n classroom = parse(config);\n if (classroom) // guarantees that older modules without a custom show can be loaded\n for(var i = 0; i < classroom.modules; i++)classroom.modules[i].showInCustom = classroom.modules[i].showInCustom || classroom.modules[i].showIn || \"\";\n } catch (e) {\n console.warn(\"could not parse classroom\", e.message);\n }\n return classroom;\n}\nfunction parse(config) {\n var data = undefined;\n try {\n data = JSON.parse(config);\n } catch (e) {\n data = _jsYaml.load(config);\n }\n return data;\n}\nfunction stringify(config) {\n return _jsYaml.dump(config);\n}\nfunction scrapeModule(module) {\n return _scrapeModule.apply(this, arguments);\n}\nfunction _scrapeModule() {\n _scrapeModule = (0, _asyncToGenerator._)(function(module) {\n var response, content, _yaml_load, _yaml_load1, yaml, links, scripts, code, moduleEl, meta, error;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n _state.trys.push([\n 0,\n 3,\n ,\n 4\n ]);\n return [\n 4,\n fetch(module.url)\n ];\n case 1:\n response = _state.sent();\n return [\n 4,\n response.text()\n ];\n case 2:\n content = _state.sent();\n if (module.url.match(/\\.ya?ml$/i)) try {\n ;\n yaml = _jsYaml.load(content);\n links = ((_yaml_load = yaml.load) === null || _yaml_load === void 0 ? void 0 : _yaml_load.links) || [];\n scripts = ((_yaml_load1 = yaml.load) === null || _yaml_load1 === void 0 ? void 0 : _yaml_load1.scripts) || [];\n code = \"\\n \\n \\n \".concat(links.map(function(url) {\n return loadResource(\"css\", url, module.url);\n }).join(\"\\n\"), \"\\n \\n \").concat(scripts.map(function(url) {\n return loadResource(\"script\", url, module.url);\n }).join(\"\\n\"), '\\n\\n \\n \\n \\n \\n \").concat(yaml.body || \"\", \"\\n \\n \\n \");\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: yaml.name,\n description: yaml.description,\n icon: yaml.icon || \"mdi-package\",\n shownIn: yaml[\"show-in\"] || [\n \"*\"\n ],\n srcdoc: \"data:text/html,\" + escape(code),\n origin: \"*\"\n })\n ];\n } catch (error) {\n console.warn(\"loading yaml:\", error);\n throw new Error(\"Could not load the YAML-declaration: \" + error.message);\n }\n else {\n moduleEl = document.createElement(\"html\");\n moduleEl.innerHTML = content;\n meta = Object.fromEntries(Object.values(moduleEl.getElementsByTagName(\"meta\")).map(function(m) {\n return [\n m.name,\n m.content\n ];\n }));\n if (meta[\"fetch\"] && meta[\"fetch\"] !== \"false\") return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: moduleEl.getElementsByTagName(\"title\")[0].innerText || meta[\"name\"],\n description: meta[\"description\"],\n icon: meta[\"icon\"] || \"mdi-package\",\n shownIn: (meta[\"show-in\"] || \"*\").replace(/\\s+/g, \"\").split(\",\"),\n srcdoc: \"data:text/html,\" + escape(replace(content, module.url)),\n origin: \"*\"\n })\n ];\n try {\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: moduleEl.getElementsByTagName(\"title\")[0].innerText || meta[\"name\"],\n description: meta[\"description\"],\n icon: meta[\"icon\"] || \"mdi-package\",\n shownIn: (meta[\"show-in\"] || \"*\").replace(/\\s+/g, \"\").split(\",\")\n })\n ];\n } catch (error) {\n throw new Error(\"This does not seem to be a valid module declaration, check the URL manually.\");\n }\n }\n return [\n 3,\n 4\n ];\n case 3:\n error = _state.sent();\n return [\n 2,\n (0, _objectSpreadProps._)((0, _objectSpread._)({}, module), {\n name: \"\",\n description: error,\n icon: \"mdi-alert\",\n shownIn: \"\"\n })\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n });\n return _scrapeModule.apply(this, arguments);\n}\nfunction download(filename, text) {\n /**\n * https://stackoverflow.com/questions/3665115/how-to-create-a-file-in-memory-for-user-to-download-but-not-through-server\n */ var element = document.createElement(\"a\");\n element.setAttribute(\"href\", \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text));\n element.setAttribute(\"download\", filename);\n element.style.display = \"none\";\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n}\nfunction debounce(func, wait, immediate) {\n /**\n * https://davidwalsh.name/javascript-debounce-function\n */ var timeout;\n return function() {\n var context = this, args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\nfunction setToValue(obj, pathArr, value) {\n var i = 0;\n for(i = 0; i < pathArr.length - 1; i++){\n obj = obj[pathArr[i]];\n if (!obj[pathArr[i + 1]]) obj[pathArr[i + 1]] = {};\n }\n obj[pathArr[i]] = value;\n// if (value == undefined)\n// delete obj[pathArr[i]]\n}\nfunction validateUrl(string) {\n try {\n var url = new URL(string);\n // URL: allows to define protocols such as `abc:` or `bla:`\n var protocols = [\n \"http:\",\n \"https:\",\n \"file:\",\n \"ipfs:\",\n \"ipns:\",\n \"blob:\",\n \"dat:\",\n \"hyper:\"\n ];\n if (protocols.includes(url.protocol)) return true;\n } catch (err) {}\n return false;\n}\nfunction infoHash() {\n var length = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 40;\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n // Pick characters randomly\n var str = \"\";\n for(var i = 0; i < length; i++)str += chars.charAt(Math.floor(Math.random() * chars.length));\n return str;\n}\nvar SessionID = null;\nvar ls = new (0, _secureLsDefault.default)({\n encodingType: \"aes\"\n});\nfunction getPeerID() {\n var withSession = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n var peerID = ls.get(\"peerID_\");\n if (!peerID) {\n peerID = infoHash(12);\n ls.set(\"peerID_\", peerID);\n }\n if (!SessionID) SessionID = infoHash(6);\n return withSession ? peerID + \"_\" + SessionID : peerID;\n}\nfunction getShortPeerID(id) {\n var ids = id.split(\"_\");\n // peerID_sessionID\n if (ids.length == 2) return ids[0].slice(-6);\n return id;\n}\nfunction clone(object) {\n if (object !== undefined) return JSON.parse(JSON.stringify(object));\n}\nfunction removeKeysStartingWithSecret(obj) {\n for(var key in obj){\n if (typeof obj[key] === \"object\") {\n // Recursively call the function if the value is an object or an array\n removeKeysStartingWithSecret(obj[key]);\n if (JSON.stringify(obj[key]) === \"{}\") delete obj[key];\n }\n // If the key starts with \"secret\", delete the key-value pair\n if (key.toLocaleLowerCase().startsWith(\"secret\")) delete obj[key];\n }\n}\nfunction deepEqual(object1, object2) {\n var keys1 = Object.keys(object1);\n var keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = keys1[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var key = _step.value;\n var val1 = object1[key];\n var val2 = object2[key];\n var areObjects = isObject(val1) && isObject(val2);\n if (areObjects && !deepEqual(val1, val2) || !areObjects && val1 !== val2) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction isObject(object) {\n return object != null && typeof object === \"object\";\n}\nfunction hashJsonObject(jsonObject) {\n return _hashJsonObject.apply(this, arguments);\n}\nfunction _hashJsonObject() {\n _hashJsonObject = (0, _asyncToGenerator._)(function(jsonObject) {\n var msgUint8, hashBuffer, hashArray, hashHex;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n msgUint8 = new TextEncoder().encode(JSON.stringify(jsonObject));\n return [\n 4,\n crypto.subtle.digest(\"SHA-256\", msgUint8)\n ];\n case 1:\n hashBuffer = _state.sent();\n hashArray = Array.from(new Uint8Array(hashBuffer));\n hashHex = hashArray.map(function(b) {\n return b.toString(16).padStart(2, \"0\");\n }).join(\"\");\n return [\n 2,\n hashHex\n ];\n }\n });\n });\n return _hashJsonObject.apply(this, arguments);\n}\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_object_spread\":\"j01jQ\",\"@swc/helpers/_/_object_spread_props\":\"jpe5k\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"js-yaml\":\"kR43b\",\"secure-ls\":\"4ztg2\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"jpe5k\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"_\", function() {\n return _object_spread_props;\n});\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return target;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"kR43b\":[function(require,module,exports) {\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"CORE_SCHEMA\", function() {\n return CORE_SCHEMA;\n});\nparcelHelpers.export(exports, \"DEFAULT_SCHEMA\", function() {\n return DEFAULT_SCHEMA;\n});\nparcelHelpers.export(exports, \"FAILSAFE_SCHEMA\", function() {\n return FAILSAFE_SCHEMA;\n});\nparcelHelpers.export(exports, \"JSON_SCHEMA\", function() {\n return JSON_SCHEMA;\n});\nparcelHelpers.export(exports, \"Schema\", function() {\n return Schema;\n});\nparcelHelpers.export(exports, \"Type\", function() {\n return Type;\n});\nparcelHelpers.export(exports, \"YAMLException\", function() {\n return YAMLException;\n});\nparcelHelpers.export(exports, \"dump\", function() {\n return dump;\n});\nparcelHelpers.export(exports, \"load\", function() {\n return load;\n});\nparcelHelpers.export(exports, \"loadAll\", function() {\n return loadAll;\n});\nparcelHelpers.export(exports, \"safeDump\", function() {\n return safeDump;\n});\nparcelHelpers.export(exports, \"safeLoad\", function() {\n return safeLoad;\n});\nparcelHelpers.export(exports, \"safeLoadAll\", function() {\n return safeLoadAll;\n});\nparcelHelpers.export(exports, \"types\", function() {\n return types;\n});\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n return [\n sequence\n ];\n}\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for(index = 0, length = sourceKeys.length; index < length; index += 1){\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for(cycle = 0; cycle < count; cycle += 1)result += string;\n return result;\n}\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\n// YAML error class. http://stackoverflow.com/questions/8458984\nfunction formatError(exception, compact) {\n var where = \"\", message = exception.reason || \"(unknown reason)\";\n if (!exception.mark) return message;\n if (exception.mark.name) where += 'in \"' + exception.mark.name + '\" ';\n where += \"(\" + (exception.mark.line + 1) + \":\" + (exception.mark.column + 1) + \")\";\n if (!compact && exception.mark.snippet) where += \"\\n\\n\" + exception.mark.snippet;\n return message + \" \" + where;\n}\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n // Include stack trace in error object\n if (Error.captureStackTrace) // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n else // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = new Error().stack || \"\";\n}\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n};\nvar exception = YAMLException$1;\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== \"number\") options.indent = 1;\n if (typeof options.linesBefore !== \"number\") options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\") options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [\n 0\n ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while(match = re.exec(mark.buffer)){\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) foundLineNo = lineStarts.length - 2;\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for(i = 1; i <= options.linesBefore; i++){\n if (foundLineNo - i < 0) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength);\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\" + \"\\n\";\n for(i = 1; i <= options.linesAfter; i++){\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map) {\n var result = {};\n if (map !== null) Object.keys(map).forEach(function(style) {\n map[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n return result;\n}\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n });\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n}\nvar type = Type$1;\n/*eslint-disable max-len*/ function compileList(schema, name) {\n var result = [];\n schema[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) newIndex = previousIndex;\n });\n result[newIndex] = currentType;\n });\n return result;\n}\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi[\"fallback\"].push(type);\n } else result[type.kind][type.tag] = result[\"fallback\"][type.tag] = type;\n }\n for(index = 0, length = arguments.length; index < length; index += 1)arguments[index].forEach(collectType);\n return result;\n}\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) // Schema.extend(type)\n explicit.push(definition);\n else if (Array.isArray(definition)) // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n if (type$1.multi) throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n};\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: function construct(data) {\n return data !== null ? data : \"\";\n }\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: function construct(data) {\n return data !== null ? data : [];\n }\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: function construct(data) {\n return data !== null ? data : {};\n }\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\nfunction constructYamlNull() {\n return null;\n}\nfunction isNull(object) {\n return object === null;\n}\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function canonical() {\n return \"~\";\n },\n lowercase: function lowercase() {\n return \"null\";\n },\n uppercase: function uppercase() {\n return \"NULL\";\n },\n camelcase: function camelcase() {\n return \"Null\";\n },\n empty: function empty() {\n return \"\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function lowercase(object) {\n return object ? \"true\" : \"false\";\n },\n uppercase: function uppercase(object) {\n return object ? \"TRUE\" : \"FALSE\";\n },\n camelcase: function camelcase(object) {\n return object ? \"True\" : \"False\";\n }\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ || 0x41 /* A */ <= c && c <= 0x46 /* F */ || 0x61 /* a */ <= c && c <= 0x66 /* f */ ;\n}\nfunction isOctCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x37 /* 7 */ ;\n}\nfunction isDecCode(c) {\n return 0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ;\n}\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n // sign\n if (ch === \"-\" || ch === \"+\") ch = data[++index];\n if (ch === \"0\") {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n // base 2, base 8, base 16\n if (ch === \"b\") {\n // base 2\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n // base 16\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n // base 8\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n // base 10 (except 0)\n // value should not start with `_`;\n if (ch === \"_\") return false;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) value = value.replace(/_/g, \"\");\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && object % 1 === 0 && !common.isNegativeZero(object);\n}\nvar _int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function binary(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n },\n octal: function octal(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n },\n decimal: function decimal(obj) {\n return obj.toString(10);\n },\n /* eslint-disable max-len */ hexadecimal: function hexadecimal(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [\n 2,\n \"bin\"\n ],\n octal: [\n 8,\n \"oct\"\n ],\n decimal: [\n 10,\n \"dec\"\n ],\n hexadecimal: [\n 16,\n \"hex\"\n ]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(// 2.5e4, 2.5 and integers\n\"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") return false;\n return true;\n}\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) value = value.slice(1);\n if (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n else if (value === \".nan\") return NaN;\n return sign * parseFloat(value, 10);\n}\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) switch(style){\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n else if (Number.POSITIVE_INFINITY === object) switch(style){\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n else if (Number.NEGATIVE_INFINITY === object) switch(style){\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n else if (common.isNegativeZero(object)) return \"-0.0\";\n res = object.toString(10);\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\nvar _float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n _int,\n _float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"); // [3] day\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"); // [11] tz_minute\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n // match: [1] year [2] month [3] day\n year = +match[1];\n month = +match[2] - 1; // JS month starts with 0\n day = +match[3];\n if (!match[4]) return new Date(Date.UTC(year, month, day));\n // match: [4] hour [5] minute [6] second [7] fraction\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while(fraction.length < 3)fraction += \"0\";\n fraction = +fraction;\n }\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\nfunction representYamlTimestamp(object /*, style*/ ) {\n return object.toISOString();\n}\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\n/*eslint-disable no-bitwise*/ // [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n // Convert one by one.\n for(idx = 0; idx < max; idx++){\n code = map.indexOf(data.charAt(idx));\n // Skip CR/LF\n if (code > 64) continue;\n // Fail on illegal characters\n if (code < 0) return false;\n bitlen += 6;\n }\n // If there are any bits left, source was corrupted\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map = BASE64_MAP, bits = 0, result = [];\n // Collect by 6*4 bits (3 bytes)\n for(idx = 0; idx < max; idx++){\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n }\n bits = bits << 6 | map.indexOf(input.charAt(idx));\n }\n // Dump tail\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 0xFF);\n result.push(bits >> 8 & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 0xFF);\n result.push(bits >> 2 & 0xFF);\n } else if (tailbits === 12) result.push(bits >> 4 & 0xFF);\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object /*, style*/ ) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map = BASE64_MAP;\n // Convert every three bytes to 4 ASCII characters.\n for(idx = 0; idx < max; idx++){\n if (idx % 3 === 0 && idx) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n }\n bits = (bits << 8) + object[idx];\n }\n // Dump tail\n tail = max % 3;\n if (tail === 0) {\n result += map[bits >> 18 & 0x3F];\n result += map[bits >> 12 & 0x3F];\n result += map[bits >> 6 & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[bits >> 10 & 0x3F];\n result += map[bits >> 4 & 0x3F];\n result += map[bits << 2 & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[bits >> 2 & 0x3F];\n result += map[bits << 4 & 0x3F];\n result += map[64];\n result += map[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for(pairKey in pair)if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [\n keys[0],\n pair[keys[0]]\n ];\n }\n return true;\n}\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for(index = 0, length = object.length; index < length; index += 1){\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [\n keys[0],\n pair[keys[0]]\n ];\n }\n return result;\n}\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key, object = data;\n for(key in object)if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n return true;\n}\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n/*eslint-disable max-len,no-use-before-define*/ var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction is_EOL(c) {\n return c === 0x0A /* LF */ || c === 0x0D /* CR */ ;\n}\nfunction is_WHITE_SPACE(c) {\n return c === 0x09 /* Tab */ || c === 0x20 /* Space */ ;\n}\nfunction is_WS_OR_EOL(c) {\n return c === 0x09 /* Tab */ || c === 0x20 /* Space */ || c === 0x0A /* LF */ || c === 0x0D /* CR */ ;\n}\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C /* , */ || c === 0x5B /* [ */ || c === 0x5D /* ] */ || c === 0x7B /* { */ || c === 0x7D /* } */ ;\n}\nfunction fromHexCode(c) {\n var lc;\n if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ) return c - 0x30;\n /*eslint-disable no-bitwise*/ lc = c | 0x20;\n if (0x61 /* a */ <= lc && lc <= 0x66 /* f */ ) return lc - 0x61 + 10;\n return -1;\n}\nfunction escapedHexLen(c) {\n if (c === 0x78 /* x */ ) return 2;\n if (c === 0x75 /* u */ ) return 4;\n if (c === 0x55 /* U */ ) return 8;\n return 0;\n}\nfunction fromDecimalCode(c) {\n if (0x30 /* 0 */ <= c && c <= 0x39 /* 9 */ ) return c - 0x30;\n return -1;\n}\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */ return c === 0x30 /* 0 */ ? \"\\0\" : c === 0x61 /* a */ ? \"\\x07\" : c === 0x62 /* b */ ? \"\\b\" : c === 0x74 /* t */ ? \"\t\" : c === 0x09 /* Tab */ ? \"\t\" : c === 0x6E /* n */ ? \"\\n\" : c === 0x76 /* v */ ? \"\\v\" : c === 0x66 /* f */ ? \"\\f\" : c === 0x72 /* r */ ? \"\\r\" : c === 0x65 /* e */ ? \"\\x1b\" : c === 0x20 /* Space */ ? \" \" : c === 0x22 /* \" */ ? '\"' : c === 0x2F /* / */ ? \"/\" : c === 0x5C /* \\ */ ? \"\\\\\" : c === 0x4E /* N */ ? \"\\x85\" : c === 0x5F /* _ */ ? \"\\xa0\" : c === 0x4C /* L */ ? \"\\u2028\" : c === 0x50 /* P */ ? \"\\u2029\" : \"\";\n}\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) return String.fromCharCode(c);\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode((c - 0x010000 >> 10) + 0xD800, (c - 0x010000 & 0x03FF) + 0xDC00);\n}\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor(var i = 0; i < 256; i++){\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n this.documents = [];\n/*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/ }\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\nfunction throwWarning(state, message) {\n if (state.onWarning) state.onWarning.call(null, generateError(state, message));\n}\nvar directiveHandlers = {\n YAML: function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) throwError(state, \"duplication of %YAML directive\");\n if (args.length !== 1) throwError(state, \"YAML directive accepts exactly one argument\");\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) throwError(state, \"ill-formed argument of the YAML directive\");\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) throwError(state, \"unacceptable YAML version of the document\");\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) throwWarning(state, \"unsupported YAML version of the document\");\n },\n TAG: function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) throwError(state, \"TAG directive accepts exactly two arguments\");\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n if (_hasOwnProperty$1.call(state.tagMap, handle)) throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n if (!PATTERN_TAG_URI.test(prefix)) throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) for(_position = 0, _length = _result.length; _position < _length; _position += 1){\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 || 0x20 <= _character && _character <= 0x10FFFF)) throwError(state, \"expected valid JSON character\");\n }\n else if (PATTERN_NON_PRINTABLE.test(_result)) throwError(state, \"the stream contains non-printable characters\");\n state.result += _result;\n }\n}\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n sourceKeys = Object.keys(source);\n for(index = 0, quantity = sourceKeys.length; index < quantity; index += 1){\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for(index = 0, quantity = keyNode.length; index < quantity; index += 1){\n if (Array.isArray(keyNode[index])) throwError(state, \"nested arrays are not supported inside keys\");\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") keyNode[index] = \"[object Object]\";\n }\n }\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") keyNode = \"[object Object]\";\n keyNode = String(keyNode);\n if (_result === null) _result = {};\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) for(index = 0, quantity = valueNode.length; index < quantity; index += 1)mergeMappings(state, _result, valueNode[index], overridableKeys);\n else mergeMappings(state, _result, valueNode, overridableKeys);\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === \"__proto__\") Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n else _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n return _result;\n}\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x0A /* LF */ ) state.position++;\n else if (ch === 0x0D /* CR */ ) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A /* LF */ ) state.position++;\n } else throwError(state, \"a line break is expected\");\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n while(is_WHITE_SPACE(ch)){\n if (ch === 0x09 /* Tab */ && state.firstTabInLine === -1) state.firstTabInLine = state.position;\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 0x23 /* # */ ) do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0x0A /* LF */ && ch !== 0x0D /* CR */ && ch !== 0);\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while(ch === 0x20 /* Space */ ){\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else break;\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) throwWarning(state, \"deficient indentation\");\n return lineBreaks;\n}\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D /* - */ || ch === 0x2E /* . */ ) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) return true;\n }\n return false;\n}\nfunction writeFoldedLines(state, count) {\n if (count === 1) state.result += \" \";\n else if (count > 1) state.result += common.repeat(\"\\n\", count - 1);\n}\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 0x23 /* # */ || ch === 0x26 /* & */ || ch === 0x2A /* * */ || ch === 0x21 /* ! */ || ch === 0x7C /* | */ || ch === 0x3E /* > */ || ch === 0x27 /* ' */ || ch === 0x22 /* \" */ || ch === 0x25 /* % */ || ch === 0x40 /* @ */ || ch === 0x60 /* ` */ ) return false;\n if (ch === 0x3F /* ? */ || ch === 0x2D /* - */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while(ch !== 0){\n if (ch === 0x3A /* : */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) break;\n } else if (ch === 0x23 /* # */ ) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) break;\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) break;\n else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) captureEnd = state.position + 1;\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) return true;\n state.kind = _kind;\n state.result = _result;\n return false;\n}\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x27 /* ' */ ) return false;\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n if (ch === 0x27 /* ' */ ) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x27 /* ' */ ) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else return true;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a single quoted scalar\");\n else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x22 /* \" */ ) return false;\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n if (ch === 0x22 /* \" */ ) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 0x5C /* \\ */ ) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) skipSeparationSpace(state, false, nodeIndent);\n else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for(; hexLength > 0; hexLength--){\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) hexResult = (hexResult << 4) + tmp;\n else throwError(state, \"expected hexadecimal character\");\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else throwError(state, \"unknown escape sequence\");\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a double quoted scalar\");\n else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x5B /* [ */ ) {\n terminator = 0x5D; /* ] */ \n isMapping = false;\n _result = [];\n } else if (ch === 0x7B /* { */ ) {\n terminator = 0x7D; /* } */ \n isMapping = true;\n _result = {};\n } else return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(++state.position);\n while(ch !== 0){\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) throwError(state, \"missed comma between flow collection entries\");\n else if (ch === 0x2C /* , */ ) // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 0x3F /* ? */ ) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 0x3A /* : */ ) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n else if (isPair) _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n else _result.push(keyNode);\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x2C /* , */ ) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else readNext = false;\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 0x7C /* | */ ) folding = false;\n else if (ch === 0x3E /* > */ ) folding = true;\n else return false;\n state.kind = \"scalar\";\n state.result = \"\";\n while(ch !== 0){\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x2B /* + */ || ch === 0x2D /* - */ ) {\n if (CHOMPING_CLIP === chomping) chomping = ch === 0x2B /* + */ ? CHOMPING_KEEP : CHOMPING_STRIP;\n else throwError(state, \"repeat of a chomping mode identifier\");\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else throwError(state, \"repeat of an indentation width identifier\");\n } else break;\n }\n if (is_WHITE_SPACE(ch)) {\n do ch = state.input.charCodeAt(++state.position);\n while (is_WHITE_SPACE(ch));\n if (ch === 0x23 /* # */ ) do ch = state.input.charCodeAt(++state.position);\n while (!is_EOL(ch) && ch !== 0);\n }\n while(ch !== 0){\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while((!detectedIndent || state.lineIndent < textIndent) && ch === 0x20 /* Space */ ){\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) textIndent = state.lineIndent;\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) state.result += \"\\n\";\n }\n break;\n }\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) state.result += \" \";\n } else state.result += common.repeat(\"\\n\", emptyLines);\n // Literal style: just add exact number of line breaks between content lines.\n } else // Keep all line breaks except the header line break.\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while(!is_EOL(ch) && ch !== 0)ch = state.input.charCodeAt(++state.position);\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 0x2D /* - */ ) break;\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) break;\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a sequence entry\");\n else if (state.lineIndent < nodeIndent) break;\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) state.anchorMap[state.anchor] = _result;\n ch = state.input.charCodeAt(state.position);\n while(ch !== 0){\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F /* ? */ || ch === 0x3A /* : */ ) && is_WS_OR_EOL(following)) {\n if (ch === 0x3F /* ? */ ) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n } else throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n state.position += 1;\n ch = following;\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) break;\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while(is_WHITE_SPACE(ch))ch = state.input.charCodeAt(++state.position);\n if (ch === 0x3A /* : */ ) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n } else if (detected) throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) keyNode = state.result;\n else valueNode = state.result;\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a mapping entry\");\n else if (state.lineIndent < nodeIndent) break;\n }\n //\n // Epilogue.\n //\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x21 /* ! */ ) return false;\n if (state.tag !== null) throwError(state, \"duplication of a tag property\");\n ch = state.input.charCodeAt(++state.position);\n if (ch === 0x3C /* < */ ) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 0x21 /* ! */ ) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else tagHandle = \"!\";\n _position = state.position;\n if (isVerbatim) {\n do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0 && ch !== 0x3E /* > */ );\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else throwError(state, \"unexpected end of the stream within a verbatim tag\");\n } else {\n while(ch !== 0 && !is_WS_OR_EOL(ch)){\n if (ch === 0x21 /* ! */ ) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) throwError(state, \"named tag handle cannot contain such characters\");\n isNamed = true;\n _position = state.position + 1;\n } else throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) throwError(state, \"tag name cannot contain such characters: \" + tagName);\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) state.tag = tagName;\n else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) state.tag = state.tagMap[tagHandle] + tagName;\n else if (tagHandle === \"!\") state.tag = \"!\" + tagName;\n else if (tagHandle === \"!!\") state.tag = \"tag:yaml.org,2002:\" + tagName;\n else throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n return true;\n}\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x26 /* & */ ) return false;\n if (state.anchor !== null) throwError(state, \"duplication of an anchor property\");\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch))ch = state.input.charCodeAt(++state.position);\n if (state.position === _position) throwError(state, \"name of an anchor node must contain at least one character\");\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 0x2A /* * */ ) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch))ch = state.input.charCodeAt(++state.position);\n if (state.position === _position) throwError(state, \"name of an alias node must contain at least one character\");\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) throwError(state, 'unidentified alias \"' + alias + '\"');\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type, flowIndent, blockIndent;\n if (state.listener !== null) state.listener(\"open\", state);\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) indentStatus = 1;\n else if (state.lineIndent === parentIndent) indentStatus = 0;\n else if (state.lineIndent < parentIndent) indentStatus = -1;\n }\n }\n if (indentStatus === 1) {\n while(readTagProperty(state) || readAnchorProperty(state))if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) indentStatus = 1;\n else if (state.lineIndent === parentIndent) indentStatus = 0;\n else if (state.lineIndent < parentIndent) indentStatus = -1;\n } else allowBlockCollections = false;\n }\n if (allowBlockCollections) allowBlockCollections = atNewLine || allowCompact;\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) flowIndent = parentIndent;\n else flowIndent = parentIndent + 1;\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) hasContent = true;\n else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) hasContent = true;\n else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) throwError(state, \"alias node should not have any properties\");\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) state.tag = \"?\";\n }\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n }\n } else if (indentStatus === 0) // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n if (state.tag === null) {\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n } else if (state.tag === \"?\") {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== \"scalar\") throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n for(typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1){\n type = state.implicitTypes[typeIndex];\n if (type.resolve(state.result)) {\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) type = state.typeMap[state.kind || \"fallback\"][state.tag];\n else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for(typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1)if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n if (!type) throwError(state, \"unknown tag !<\" + state.tag + \">\");\n if (state.result !== null && type.kind !== state.kind) throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n if (!type.resolve(state.result, state.tag)) throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) state.anchorMap[state.anchor] = state.result;\n }\n }\n if (state.listener !== null) state.listener(\"close\", state);\n return state.tag !== null || state.anchor !== null || hasContent;\n}\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n while((ch = state.input.charCodeAt(state.position)) !== 0){\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 0x25 /* % */ ) break;\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch))ch = state.input.charCodeAt(++state.position);\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) throwError(state, \"directive name must not be less than one character in length\");\n while(ch !== 0){\n while(is_WHITE_SPACE(ch))ch = state.input.charCodeAt(++state.position);\n if (ch === 0x23 /* # */ ) {\n do ch = state.input.charCodeAt(++state.position);\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while(ch !== 0 && !is_WS_OR_EOL(ch))ch = state.input.charCodeAt(++state.position);\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) directiveHandlers[directiveName](state, directiveName, directiveArgs);\n else throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 0x2D /* - */ && state.input.charCodeAt(state.position + 1) === 0x2D /* - */ && state.input.charCodeAt(state.position + 2) === 0x2D /* - */ ) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) throwError(state, \"directives end mark is expected\");\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 0x2E /* . */ ) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) throwError(state, \"end of the stream or a document separator is expected\");\n else return;\n}\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A /* LF */ && input.charCodeAt(input.length - 1) !== 0x0D /* CR */ ) input += \"\\n\";\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) input = input.slice(1);\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += \"\\0\";\n while(state.input.charCodeAt(state.position) === 0x20 /* Space */ ){\n state.lineIndent += 1;\n state.position += 1;\n }\n while(state.position < state.length - 1)readDocument(state);\n return state.documents;\n}\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") return documents;\n for(var index = 0, length = documents.length; index < length; index += 1)iterator(documents[index]);\n}\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) /*eslint-disable no-undefined*/ return undefined;\n else if (documents.length === 1) return documents[0];\n throw new exception(\"expected a single document in the stream, but found more\");\n}\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\n/*eslint-disable no-use-before-define*/ var _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */ \nvar CHAR_LINE_FEED = 0x0A; /* LF */ \nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ \nvar CHAR_SPACE = 0x20; /* Space */ \nvar CHAR_EXCLAMATION = 0x21; /* ! */ \nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */ \nvar CHAR_SHARP = 0x23; /* # */ \nvar CHAR_PERCENT = 0x25; /* % */ \nvar CHAR_AMPERSAND = 0x26; /* & */ \nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */ \nvar CHAR_ASTERISK = 0x2A; /* * */ \nvar CHAR_COMMA = 0x2C; /* , */ \nvar CHAR_MINUS = 0x2D; /* - */ \nvar CHAR_COLON = 0x3A; /* : */ \nvar CHAR_EQUALS = 0x3D; /* = */ \nvar CHAR_GREATER_THAN = 0x3E; /* > */ \nvar CHAR_QUESTION = 0x3F; /* ? */ \nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */ \nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ \nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ \nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */ \nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ \nvar CHAR_VERTICAL_LINE = 0x7C; /* | */ \nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ \nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0x00] = \"\\\\0\";\nESCAPE_SEQUENCES[0x07] = \"\\\\a\";\nESCAPE_SEQUENCES[0x08] = \"\\\\b\";\nESCAPE_SEQUENCES[0x09] = \"\\\\t\";\nESCAPE_SEQUENCES[0x0A] = \"\\\\n\";\nESCAPE_SEQUENCES[0x0B] = \"\\\\v\";\nESCAPE_SEQUENCES[0x0C] = \"\\\\f\";\nESCAPE_SEQUENCES[0x0D] = \"\\\\r\";\nESCAPE_SEQUENCES[0x1B] = \"\\\\e\";\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[0x85] = \"\\\\N\";\nESCAPE_SEQUENCES[0xA0] = \"\\\\_\";\nESCAPE_SEQUENCES[0x2028] = \"\\\\L\";\nESCAPE_SEQUENCES[0x2029] = \"\\\\P\";\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n \"y\",\n \"Y\",\n \"yes\",\n \"Yes\",\n \"YES\",\n \"on\",\n \"On\",\n \"ON\",\n \"n\",\n \"N\",\n \"no\",\n \"No\",\n \"NO\",\n \"off\",\n \"Off\",\n \"OFF\"\n];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n if (map === null) return {};\n result = {};\n keys = Object.keys(map);\n for(index = 0, length = keys.length; index < length; index += 1){\n tag = keys[index];\n style = String(map[tag]);\n if (tag.slice(0, 2) === \"!!\") tag = \"tag:yaml.org,2002:\" + tag.slice(2);\n type = schema.compiledTypeMap[\"fallback\"][tag];\n if (type && _hasOwnProperty.call(type.styleAliases, style)) style = type.styleAliases[style];\n result[tag] = style;\n }\n return result;\n}\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 0xFF) {\n handle = \"x\";\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = \"u\";\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = \"U\";\n length = 8;\n } else throw new exception(\"code point within a string may not be greater than 0xFFFFFFFF\");\n return \"\\\\\" + handle + common.repeat(\"0\", length - string.length) + string;\n}\nvar QUOTING_TYPE_SINGLE = 1, QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options[\"schema\"] || _default;\n this.indent = Math.max(1, options[\"indent\"] || 2);\n this.noArrayIndent = options[\"noArrayIndent\"] || false;\n this.skipInvalid = options[\"skipInvalid\"] || false;\n this.flowLevel = common.isNothing(options[\"flowLevel\"]) ? -1 : options[\"flowLevel\"];\n this.styleMap = compileStyleMap(this.schema, options[\"styles\"] || null);\n this.sortKeys = options[\"sortKeys\"] || false;\n this.lineWidth = options[\"lineWidth\"] || 80;\n this.noRefs = options[\"noRefs\"] || false;\n this.noCompatMode = options[\"noCompatMode\"] || false;\n this.condenseFlow = options[\"condenseFlow\"] || false;\n this.quotingType = options[\"quotingType\"] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options[\"forceQuotes\"] || false;\n this.replacer = typeof options[\"replacer\"] === \"function\" ? options[\"replacer\"] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = \"\";\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(\" \", spaces), position = 0, next = -1, result = \"\", line, length = string.length;\n while(position < length){\n next = string.indexOf(\"\\n\", position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== \"\\n\") result += ind;\n result += line;\n }\n return result;\n}\nfunction generateNextLine(state, level) {\n return \"\\n\" + common.repeat(\" \", state.indent * level);\n}\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n for(index = 0, length = state.implicitTypes.length; index < length; index += 1){\n type = state.implicitTypes[index];\n if (type.resolve(str)) return true;\n }\n return false;\n}\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return 0x00020 <= c && c <= 0x00007E || 0x000A1 <= c && c <= 0x00D7FF && c !== 0x2028 && c !== 0x2029 || 0x0E000 <= c && c <= 0x00FFFD && c !== CHAR_BOM || 0x10000 <= c && c <= 0x10FFFF;\n}\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return(// ns-plain-safe\n (inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar // false on ': '\n ) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP // change to true on '[^ ]#'\n || prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) // - s-white\n && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n return first;\n}\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\nvar STYLE_PLAIN = 1, STYLE_SINGLE = 2, STYLE_LITERAL = 3, STYLE_FOLDED = 4, STYLE_DOUBLE = 5;\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var _char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for(i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n if (!isPrintable(_char)) return STYLE_DOUBLE;\n plain = plain && isPlainSafe(_char, prevChar, inblock);\n prevChar = _char;\n }\n else {\n // Case: block styles permitted.\n for(i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n if (_char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.\n i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n previousLineBreak = i;\n }\n } else if (!isPrintable(_char)) return STYLE_DOUBLE;\n plain = plain && isPlainSafe(_char, prevChar, inblock);\n prevChar = _char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) return STYLE_PLAIN;\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) return STYLE_DOUBLE;\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = function() {\n if (string.length === 0) return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n switch(chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)){\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return \"|\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return \">\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception(\"impossible error: invalid scalar style\");\n }\n }();\n}\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : \"\";\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === \"\\n\";\n var keep = clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\");\n var chomp = keep ? \"+\" : clip ? \"\" : \"-\";\n return indentIndicator + chomp + \"\\n\";\n}\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n // first line (possibly an empty line)\n var result = function() {\n var nextLF = string.indexOf(\"\\n\");\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }();\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === \"\\n\" || string[0] === \" \";\n var moreIndented;\n // rest of the lines\n var match;\n while(match = lineRe.exec(string)){\n var prefix = match[1], line = match[2];\n moreIndented = line[0] === \" \";\n result += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === \"\" || line[0] === \" \") return line;\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = \"\";\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while(match = breakRe.exec(line)){\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = curr > start ? curr : next; // derive end <= length-2\n result += \"\\n\" + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += \"\\n\";\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) result += line.slice(start, curr) + \"\\n\" + line.slice(curr + 1);\n else result += line.slice(start);\n return result.slice(1); // drop extra \\n joiner\n}\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = \"\";\n var _char = 0;\n var escapeSeq;\n for(var i = 0; i < string.length; _char >= 0x10000 ? i += 2 : i++){\n _char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[_char];\n if (!escapeSeq && isPrintable(_char)) {\n result += string[i];\n if (_char >= 0x10000) result += string[i + 1];\n } else result += escapeSeq || encodeHex(_char);\n }\n return result;\n}\nfunction writeFlowSequence(state, level, object) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for(index = 0, length = object.length; index < length; index += 1){\n value = object[index];\n if (state.replacer) value = state.replacer.call(object, String(index), value);\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) || typeof value === \"undefined\" && writeNode(state, level, null, false, false)) {\n if (_result !== \"\") _result += \",\" + (!state.condenseFlow ? \" \" : \"\");\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = \"[\" + _result + \"]\";\n}\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for(index = 0, length = object.length; index < length; index += 1){\n value = object[index];\n if (state.replacer) value = state.replacer.call(object, String(index), value);\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === \"undefined\" && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== \"\") _result += generateNextLine(state, level);\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) _result += \"-\";\n else _result += \"- \";\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || \"[]\"; // Empty sequence if no valid values.\n}\nfunction writeFlowMapping(state, level, object) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for(index = 0, length = objectKeyList.length; index < length; index += 1){\n pairBuffer = \"\";\n if (_result !== \"\") pairBuffer += \", \";\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) objectValue = state.replacer.call(object, objectKey, objectValue);\n if (!writeNode(state, level, objectKey, false, false)) continue; // Skip this pair because of invalid key;\n if (state.dump.length > 1024) pairBuffer += \"? \";\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : \"\") + \":\" + (state.condenseFlow ? \"\" : \" \");\n if (!writeNode(state, level, objectValue, false, false)) continue; // Skip this pair because of invalid value.\n pairBuffer += state.dump;\n // Both key and value are valid.\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = \"{\" + _result + \"}\";\n}\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) // Default sorting\n objectKeyList.sort();\n else if (typeof state.sortKeys === \"function\") // Custom sort function\n objectKeyList.sort(state.sortKeys);\n else if (state.sortKeys) // Something is wrong\n throw new exception(\"sortKeys must be a boolean or a function\");\n for(index = 0, length = objectKeyList.length; index < length; index += 1){\n pairBuffer = \"\";\n if (!compact || _result !== \"\") pairBuffer += generateNextLine(state, level);\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) objectValue = state.replacer.call(object, objectKey, objectValue);\n if (!writeNode(state, level + 1, objectKey, true, true, true)) continue; // Skip this pair because of invalid key.\n explicitPair = state.tag !== null && state.tag !== \"?\" || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) pairBuffer += \"?\";\n else pairBuffer += \"? \";\n }\n pairBuffer += state.dump;\n if (explicitPair) pairBuffer += generateNextLine(state, level);\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) continue; // Skip this pair because of invalid value.\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) pairBuffer += \":\";\n else pairBuffer += \": \";\n pairBuffer += state.dump;\n // Both key and value are valid.\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || \"{}\"; // Empty mapping if no valid pairs.\n}\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for(index = 0, length = typeList.length; index < length; index += 1){\n type = typeList[index];\n if ((type.instanceOf || type.predicate) && (!type.instanceOf || typeof object === \"object\" && object instanceof type.instanceOf) && (!type.predicate || type.predicate(object))) {\n if (explicit) {\n if (type.multi && type.representName) state.tag = type.representName(object);\n else state.tag = type.tag;\n } else state.tag = \"?\";\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n if (_toString.call(type.represent) === \"[object Function]\") _result = type.represent(object, style);\n else if (_hasOwnProperty.call(type.represent, style)) _result = type.represent[style](object, style);\n else throw new exception(\"!<\" + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) detectType(state, object, true);\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) block = state.flowLevel < 0 || state.flowLevel > level;\n var objectOrArray = type === \"[object Object]\" || type === \"[object Array]\", duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== \"?\" || duplicate || state.indent !== 2 && level > 0) compact = false;\n if (duplicate && state.usedDuplicates[duplicateIndex]) state.dump = \"*ref_\" + duplicateIndex;\n else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) state.usedDuplicates[duplicateIndex] = true;\n if (type === \"[object Object]\") {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + state.dump;\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n } else if (type === \"[object Array]\") {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) writeBlockSequence(state, level - 1, state.dump, compact);\n else writeBlockSequence(state, level, state.dump, compact);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + state.dump;\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n } else if (type === \"[object String]\") {\n if (state.tag !== \"?\") writeScalar(state, state.dump, level, iskey, inblock);\n } else if (type === \"[object Undefined]\") return false;\n else {\n if (state.skipInvalid) return false;\n throw new exception(\"unacceptable kind of an object to dump \" + type);\n }\n if (state.tag !== null && state.tag !== \"?\") {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(state.tag[0] === \"!\" ? state.tag.slice(1) : state.tag).replace(/!/g, \"%21\");\n if (state.tag[0] === \"!\") tagStr = \"!\" + tagStr;\n else if (tagStr.slice(0, 18) === \"tag:yaml.org,2002:\") tagStr = \"!!\" + tagStr.slice(18);\n else tagStr = \"!<\" + tagStr + \">\";\n state.dump = tagStr + \" \" + state.dump;\n }\n }\n return true;\n}\nfunction getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for(index = 0, length = duplicatesIndexes.length; index < length; index += 1)state.duplicates.push(objects[duplicatesIndexes[index]]);\n state.usedDuplicates = new Array(length);\n}\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && typeof object === \"object\") {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) duplicatesIndexes.push(index);\n } else {\n objects.push(object);\n if (Array.isArray(object)) for(index = 0, length = object.length; index < length; index += 1)inspectNode(object[index], objects, duplicatesIndexes);\n else {\n objectKeyList = Object.keys(object);\n for(index = 0, length = objectKeyList.length; index < length; index += 1)inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n}\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) value = state.replacer.call({\n \"\": value\n }, \"\", value);\n if (writeNode(state, 0, value, true, true)) return state.dump + \"\\n\";\n return \"\";\n}\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. \" + \"Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: _float,\n map: map,\n \"null\": _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: _int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\nvar jsYaml = {\n Type: Type,\n Schema: Schema,\n FAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n JSON_SCHEMA: JSON_SCHEMA,\n CORE_SCHEMA: CORE_SCHEMA,\n DEFAULT_SCHEMA: DEFAULT_SCHEMA,\n load: load,\n loadAll: loadAll,\n dump: dump,\n YAMLException: YAMLException,\n types: types,\n safeLoad: safeLoad,\n safeLoadAll: safeLoadAll,\n safeDump: safeDump\n};\nexports.default = jsYaml;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"4ztg2\":[function(require,module,exports) {\nvar _classCallCheck = require(\"@swc/helpers/_/_class_call_check\");\nvar _createClass = require(\"@swc/helpers/_/_create_class\");\nvar _defineProperty = require(\"@swc/helpers/_/_define_property\");\n/*!\n * secure-ls - v1.2.6\n * URL - https://github.com/softvar/secure-ls\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2016-2024 Varun Malhotra\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n *\n * Dependencies used -\n * 1. crypto-js - ^4.2.0\n * 2. lz-string - ^1.5.0\n */ (function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory();\n})(undefined, function() {\n return /******/ function() {\n // webpackBootstrap\n /******/ var __webpack_modules__ = {\n /***/ \"./src/Base64.js\": /*!***********************!*\\\n !*** ./src/Base64.js ***!\n \\***********************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n var Base64 = {\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n encode: function encode(e) {\n var t = \"\";\n var n, r, i, s, o, u, a;\n var f = 0;\n e = Base64._utf8Encode(e);\n while(f < e.length){\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = (n & 3) << 4 | r >> 4;\n u = (r & 15) << 2 | i >> 6;\n a = i & 63;\n if (isNaN(r)) u = a = 64;\n else if (isNaN(i)) a = 64;\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function decode(e) {\n var t = \"\";\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\n while(f < e.length){\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) t = t + String.fromCharCode(r);\n if (a !== 64) t = t + String.fromCharCode(i);\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function _utf8Encode(e) {\n e = e.replace(/\\r\\n/g, \"\\n\");\n var t = \"\";\n for(var n = 0; n < e.length; n++){\n var r = e.charCodeAt(n);\n if (r < 128) t += String.fromCharCode(r);\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n } else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n },\n _utf8Decode: function _utf8Decode(e) {\n var t = \"\";\n var n = 0;\n var r, c2, c3;\n r = c2 = 0;\n while(n < e.length){\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n n += 3;\n }\n }\n return t;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = Base64;\n /***/ },\n /***/ \"./src/SecureLS.js\": /*!*************************!*\\\n !*** ./src/SecureLS.js ***!\n \\*************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ SecureLS: function() {\n return /* binding */ SecureLS;\n }\n });\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\n /* harmony import */ var _enc_utf8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enc-utf8 */ \"./src/enc-utf8.js\");\n /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! crypto-js/aes */ \"./node_modules/crypto-js/aes.js\");\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto-js/rabbit */ \"./node_modules/crypto-js/rabbit.js\");\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! crypto-js/rc4 */ \"./node_modules/crypto-js/rc4.js\");\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__);\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! crypto-js/tripledes */ \"./node_modules/crypto-js/tripledes.js\");\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__);\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lz-string/libs/lz-string */ \"./node_modules/lz-string/libs/lz-string.js\");\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/ __webpack_require__.n(lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__);\n /* harmony import */ var _Base64__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Base64 */ \"./src/Base64.js\");\n var _obj;\n var encryptors = (_obj = {}, (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.AES, crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.DES, crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RABBIT, crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default()), (0, _defineProperty._)(_obj, _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RC4, crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default()), _obj);\n var SecureLS = /*#__PURE__*/ function() {\n function SecureLS() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_encryptionSecret = _ref.encryptionSecret, encryptionSecret = _ref_encryptionSecret === void 0 ? \"\" : _ref_encryptionSecret, _ref_encryptionNamespace = _ref.encryptionNamespace, encryptionNamespace = _ref_encryptionNamespace === void 0 ? \"\" : _ref_encryptionNamespace, _ref_isCompression = _ref.isCompression, isCompression = _ref_isCompression === void 0 ? true : _ref_isCompression, _ref_encodingType = _ref.encodingType, encodingType = _ref_encodingType === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64 : _ref_encodingType, _ref_storage = _ref.storage, storage = _ref_storage === void 0 ? localStorage : _ref_storage, _ref_metaKey = _ref.metaKey, metaKey = _ref_metaKey === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].metaKey : _ref_metaKey;\n (0, _classCallCheck._)(this, SecureLS);\n // Assign libraries and utilities\n Object.assign(this, {\n _name: \"secure-ls\",\n Base64: _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n LZString: {\n compressToUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.compressToUTF16,\n decompressFromUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.decompressFromUTF16\n },\n AES: crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n DES: crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n RABBIT: crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n RC4: crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n enc: _enc_utf8__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n });\n // Configuration and property assignment\n this.config = {\n encryptionSecret: encryptionSecret,\n encryptionNamespace: encryptionNamespace,\n isCompression: isCompression,\n encodingType: encodingType.toLowerCase(),\n storage: storage,\n metaKey: metaKey\n };\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n // Initialize the class\n this.init();\n }\n (0, _createClass._)(SecureLS, [\n {\n key: \"init\",\n value: function init() {\n var metaData = this.getMetaData();\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n },\n {\n key: \"_isBase64EncryptionType\",\n value: function _isBase64EncryptionType() {\n return _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"] && (typeof this.config.encodingType === \"undefined\" || this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64);\n }\n },\n {\n key: \"_isAESEncryptionType\",\n value: function _isAESEncryptionType() {\n return crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.AES;\n }\n },\n {\n key: \"_isDESEncryptionType\",\n value: function _isDESEncryptionType() {\n return crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.DES;\n }\n },\n {\n key: \"_isRabbitEncryptionType\",\n value: function _isRabbitEncryptionType() {\n return crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RABBIT;\n }\n },\n {\n key: \"_isRC4EncryptionType\",\n value: function _isRC4EncryptionType() {\n return crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default() && this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.RC4;\n }\n },\n {\n key: \"_isDataCompressionEnabled\",\n value: function _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n },\n {\n key: \"getEncryptionSecret\",\n value: function getEncryptionSecret(key) {\n var metaData = this.getMetaData();\n var obj = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getObjectFromKey(metaData.keys, key);\n if (!obj) return;\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === \"undefined\") {\n this.encryptionSecret = obj.s;\n if (!this.encryptionSecret) {\n this.encryptionSecret = _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].generateSecretKey();\n this.setMetaData();\n }\n } else this.encryptionSecret = this.config.encryptionSecret || obj.s || \"\";\n }\n }\n },\n {\n key: \"getEncryptionType\",\n value: function getEncryptionType() {\n var encodingType = this.config.encodingType;\n return encodingType ? encodingType.toLowerCase() : _constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].EncrytionTypes.BASE64;\n }\n },\n {\n key: \"getDataFromLocalStorage\",\n value: function getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n },\n {\n key: \"setDataToLocalStorage\",\n value: function setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n },\n {\n key: \"setMetaData\",\n value: function setMetaData() {\n var dataToStore = this.processData({\n keys: this.allKeys\n }, true);\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n },\n {\n key: \"getMetaData\",\n value: function getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n },\n {\n key: \"getMetaKey\",\n value: function getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? \"__\" + this.config.encryptionNamespace : \"\");\n }\n },\n {\n key: \"resetAllKeys\",\n value: function resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n },\n {\n key: \"processData\",\n value: function processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === \"\") return \"\";\n var jsonData;\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error(\"Could not stringify data\", err);\n }\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n var encodedData = jsonData;\n if (this._isBase64 || isAllKeysData) encodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"].encode(jsonData);\n else {\n var encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n encodedData = encodedData && encodedData.toString();\n }\n // Compress data if set to true\n var compressedData = encodedData;\n if (this._isCompression || isAllKeysData) compressedData = this.LZString.compressToUTF16(encodedData);\n return compressedData;\n }\n },\n {\n // PUBLIC APIs\n key: \"getAllKeys\",\n value: function getAllKeys() {\n var data = this.getMetaData();\n return _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extractKeyNames(data) || [];\n }\n },\n {\n key: \"get\",\n value: function get(key, isAllKeysData) {\n var decodedData = \"\";\n var jsonData = \"\";\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return jsonData;\n }\n var data = this.getDataFromLocalStorage(key);\n if (!data) return jsonData;\n var deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) // meta data always Base64\n decodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__[\"default\"].decode(deCompressedData);\n else {\n this.getEncryptionSecret(key);\n var encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n var bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n if (bytes) decodedData = bytes.toString(_enc_utf8__WEBPACK_IMPORTED_MODULE_1__[\"default\"]._Utf8);\n }\n }\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error(\"Could not parse JSON\", err);\n }\n return jsonData;\n }\n },\n {\n key: \"set\",\n value: function set(key, data) {\n var dataToStore = \"\";\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n this.getEncryptionSecret(key);\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret\n });\n this.setMetaData();\n }\n }\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n },\n {\n key: \"remove\",\n value: function remove(key) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n if (key === this.metaKey && this.getAllKeys().length) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(_constants__WEBPACK_IMPORTED_MODULE_0__[\"default\"].WarningEnum.META_KEY_REMOVE);\n return;\n }\n if (_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isKeyPresent(this.allKeys, key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n },\n {\n key: \"removeAll\",\n value: function removeAll() {\n var keys = this.getAllKeys();\n for(var i = 0; i < keys.length; i++)this.storage.removeItem(keys[i]);\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n },\n {\n key: \"clear\",\n value: function clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n }\n ]);\n return SecureLS;\n }();\n /***/ },\n /***/ \"./src/WordArray.js\": /*!**************************!*\\\n !*** ./src/WordArray.js ***!\n \\**************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */ var CryptoJSWordArray = {\n random: function random(nBytes) {\n var words = [];\n var r = function r(mw) {\n var mz = 0x3ade68b1;\n var mask = 0xffffffff;\n return function() {\n mz = 0x9069 * (mz & 0xffff) + (mz >> 0x10) & mask;\n mw = 0x4650 * (mw & 0xffff) + (mw >> 0x10) & mask;\n var result = (mz << 0x10) + mw & mask;\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n for(var i = 0, rcache; i < nBytes; i += 4){\n var _r = r((rcache || Math.random()) * 0x100000000);\n rcache = _r() * 0x3ade67b7;\n words.push(_r() * 0x100000000 | 0);\n }\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n Set: function Set(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes !== undefined) this.sigBytes = sigBytes;\n else this.sigBytes = words.length * 8;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = CryptoJSWordArray;\n /***/ },\n /***/ \"./src/constants.js\": /*!**************************!*\\\n !*** ./src/constants.js ***!\n \\**************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n var WarningEnum = {\n KEY_NOT_PROVIDED: \"keyNotProvided\",\n META_KEY_REMOVE: \"metaKeyRemove\",\n DEFAULT_TEXT: \"defaultText\"\n };\n var WarningTypes = {};\n WarningTypes[WarningEnum.KEY_NOT_PROVIDED] = \"Secure LS: Key not provided. Aborting operation!\";\n WarningTypes[WarningEnum.META_KEY_REMOVE] = \"Secure LS: Meta key can not be removed\\nunless all keys created by Secure LS are removed!\";\n WarningTypes[WarningEnum.DEFAULT_TEXT] = \"Unexpected output\";\n var constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: \"base64\",\n AES: \"aes\",\n DES: \"des\",\n RABBIT: \"rabbit\",\n RC4: \"rc4\"\n },\n metaKey: \"_secure__ls__metadata\",\n secretPhrase: \"s3cr3t$#@135^&*246\"\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = constants;\n /***/ },\n /***/ \"./src/enc-utf8.js\": /*!*************************!*\\\n !*** ./src/enc-utf8.js ***!\n \\*************************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */ var enc = {\n Latin1: {\n stringify: function(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var latin1Chars = [], i, bite;\n // Convert\n for(i = 0; i < sigBytes; i++){\n bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join(\"\");\n }\n },\n _Utf8: {\n stringify: function(wordArray) {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error(\"Malformed UTF-8 data\", err);\n }\n }\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = enc;\n /***/ },\n /***/ \"./src/utils.js\": /*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/ /***/ function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! crypto-js/pbkdf2 */ \"./node_modules/crypto-js/pbkdf2.js\");\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./src/constants.js\");\n /* harmony import */ var _WordArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./WordArray */ \"./src/WordArray.js\");\n var utils = {\n is: function(key) {\n return !!key;\n },\n warn: function() {\n var reason = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : _constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].WarningEnum.DEFAULT_TEXT;\n console.warn(_constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].WarningTypes[reason]);\n },\n generateSecretKey: function() {\n var salt = _WordArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"].random(16);\n var key128Bits = crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default()(_constants__WEBPACK_IMPORTED_MODULE_1__[\"default\"].secretPhrase, salt, {\n keySize: 4\n });\n return key128Bits.toString();\n },\n getObjectFromKey: function() {\n var data = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n return data.find(function(item) {\n return item.k === key;\n }) || {};\n },\n extractKeyNames: function() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref_keys = _ref.keys, keys = _ref_keys === void 0 ? [] : _ref_keys;\n return keys.map(function(param) {\n var k = param.k;\n return k;\n });\n },\n isKeyPresent: function() {\n var allKeys = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n return allKeys.some(function(item) {\n return String(item.k) === String(key);\n });\n },\n removeFromKeysList: function() {\n var allKeys = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], key = arguments.length > 1 ? arguments[1] : void 0;\n var index = allKeys.findIndex(function(item) {\n return item.k === key;\n });\n if (index !== -1) allKeys.splice(index, 1);\n return index;\n }\n };\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = utils;\n /***/ },\n /***/ \"./node_modules/crypto-js/aes.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/aes.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n // Lookup tables\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n // Compute lookup tables\n (function() {\n // Compute double table\n var d = [];\n for(var i = 0; i < 256; i++)if (i < 128) d[i] = i << 1;\n else d[i] = i << 1 ^ 0x11b;\n // Walk GF(2^8)\n var x = 0;\n var xi = 0;\n for(var i = 0; i < 256; i++){\n // Compute sbox\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n // Compute multiplication\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n // Compute sub bytes, mix columns tables\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t;\n // Compute inv sub bytes, inv mix columns tables\n var t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t;\n // Compute next counter\n if (!x) x = xi = 1;\n else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n // Precomputed Rcon lookup\n var RCON = [\n 0x00,\n 0x01,\n 0x02,\n 0x04,\n 0x08,\n 0x10,\n 0x20,\n 0x40,\n 0x80,\n 0x1b,\n 0x36\n ];\n /**\n * AES block cipher algorithm.\n */ var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function _doReset() {\n var t;\n // Skip reset of nRounds has been set before and key did not change\n if (this._nRounds && this._keyPriorReset === this._key) return;\n // Shortcuts\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n // Compute number of rounds\n var nRounds = this._nRounds = keySize + 6;\n // Compute number of key schedule rows\n var ksRows = (nRounds + 1) * 4;\n // Compute key schedule\n var keySchedule = this._keySchedule = [];\n for(var ksRow = 0; ksRow < ksRows; ksRow++)if (ksRow < keySize) keySchedule[ksRow] = keyWords[ksRow];\n else {\n t = keySchedule[ksRow - 1];\n if (!(ksRow % keySize)) {\n // Rot word\n t = t << 8 | t >>> 24;\n // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n // Mix Rcon\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) // Sub word\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 0xff] << 16 | SBOX[t >>> 8 & 0xff] << 8 | SBOX[t & 0xff];\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n // Compute inv key schedule\n var invKeySchedule = this._invKeySchedule = [];\n for(var invKsRow = 0; invKsRow < ksRows; invKsRow++){\n var ksRow = ksRows - invKsRow;\n if (invKsRow % 4) var t = keySchedule[ksRow];\n else var t = keySchedule[ksRow - 4];\n if (invKsRow < 4 || ksRow <= 4) invKeySchedule[invKsRow] = t;\n else invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 0xff]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function decryptBlock(M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n // Inv swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function _doCryptBlock(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds;\n // Get input, add round key\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n // Key schedule row counter\n var ksRow = 4;\n // Rounds\n for(var round = 1; round < nRounds; round++){\n // Shift rows, sub bytes, mix columns, add round key\n var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[s1 >>> 16 & 0xff] ^ SUB_MIX_2[s2 >>> 8 & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[s2 >>> 16 & 0xff] ^ SUB_MIX_2[s3 >>> 8 & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[s3 >>> 16 & 0xff] ^ SUB_MIX_2[s0 >>> 8 & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[s0 >>> 16 & 0xff] ^ SUB_MIX_2[s1 >>> 8 & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n // Shift rows, sub bytes, add round key\n var t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n var t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n var t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n var t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n // Set output\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 8\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */ C.AES = BlockCipher._createHelper(AES);\n })();\n return CryptoJS.AES;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/cipher-core.js\": /*!***********************************************!*\\\n !*** ./node_modules/crypto-js/cipher-core.js ***!\n \\***********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"));\n })(this, function(CryptoJS) {\n /**\n * Cipher core components.\n */ CryptoJS.lib.Cipher || function(undefined1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */ var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */ cfg: Base.extend(),\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */ createEncryptor: function createEncryptor(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */ createDecryptor: function createDecryptor(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */ init: function init(xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n // Store transform mode and key\n this._xformMode = xformMode;\n this._key = key;\n // Set initial values\n this.reset();\n },\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */ reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n // Perform concrete-cipher logic\n this._doReset();\n },\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */ process: function process(dataUpdate) {\n // Append\n this._append(dataUpdate);\n // Process available blocks\n return this._process();\n },\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */ finalize: function finalize(dataUpdate) {\n // Final data update\n if (dataUpdate) this._append(dataUpdate);\n // Perform concrete-cipher logic\n var finalProcessedData = this._doFinalize();\n return finalProcessedData;\n },\n keySize: 4,\n ivSize: 4,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */ _createHelper: function() {\n function selectCipherStrategy(key) {\n if (typeof key == \"string\") return PasswordBasedCipher;\n else return SerializableCipher;\n }\n return function(cipher) {\n return {\n encrypt: function encrypt(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function decrypt(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n }()\n });\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */ var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function _doFinalize() {\n // Process partial blocks\n var finalProcessedBlocks = this._process(true);\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n /**\n * Mode namespace.\n */ var C_mode = C.mode = {};\n /**\n * Abstract base block cipher mode template.\n */ var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */ createEncryptor: function createEncryptor(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */ createDecryptor: function createDecryptor(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */ init: function init(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n /**\n * Cipher Block Chaining mode.\n */ var CBC = C_mode.CBC = function() {\n /**\n * Abstract base CBC mode.\n */ var CBC = BlockCipherMode.extend();\n /**\n * CBC encryptor.\n */ CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */ processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n // XOR and encrypt\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n // Remember this block to use with next block\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n /**\n * CBC decryptor.\n */ CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */ processBlock: function processBlock(words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n // Remember this block to use with next block\n var thisBlock = words.slice(offset, offset + blockSize);\n // Decrypt and XOR\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n // This block becomes the previous block\n this._prevBlock = thisBlock;\n }\n });\n function xorBlock(words, offset, blockSize) {\n var block;\n // Shortcut\n var iv = this._iv;\n // Choose mixing block\n if (iv) {\n block = iv;\n // Remove IV for subsequent blocks\n this._iv = undefined1;\n } else block = this._prevBlock;\n // XOR blocks\n for(var i = 0; i < blockSize; i++)words[offset + i] ^= block[i];\n }\n return CBC;\n }();\n /**\n * Padding namespace.\n */ var C_pad = C.pad = {};\n /**\n * PKCS #5/7 padding strategy.\n */ var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */ pad: function pad(data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4;\n // Count padding bytes\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n // Create padding word\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;\n // Create padding\n var paddingWords = [];\n for(var i = 0; i < nPaddingBytes; i += 4)paddingWords.push(paddingWord);\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n // Add padding\n data.concat(padding);\n },\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */ unpad: function unpad(data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 0xff;\n // Remove padding\n data.sigBytes -= nPaddingBytes;\n }\n };\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */ var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */ cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function reset() {\n var modeCreator;\n // Reset cipher\n Cipher.reset.call(this);\n // Shortcuts\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n // Reset block mode\n if (this._xformMode == this._ENC_XFORM_MODE) modeCreator = mode.createEncryptor;\n else {\n modeCreator = mode.createDecryptor;\n // Keep at least one block in the buffer for unpadding\n this._minBufferSize = 1;\n }\n if (this._mode && this._mode.__creator == modeCreator) this._mode.init(this, iv && iv.words);\n else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function _doProcessBlock(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function _doFinalize() {\n var finalProcessedBlocks;\n // Shortcut\n var padding = this.cfg.padding;\n // Finalize\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize);\n // Process final blocks\n finalProcessedBlocks = this._process(true);\n } else {\n // Process final blocks\n finalProcessedBlocks = this._process(true);\n // Unpad data\n padding.unpad(finalProcessedBlocks);\n }\n return finalProcessedBlocks;\n },\n blockSize: 4\n });\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */ var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */ init: function init(cipherParams) {\n this.mixIn(cipherParams);\n },\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */ toString: function toString(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n /**\n * Format namespace.\n */ var C_format = C.format = {};\n /**\n * OpenSSL formatting strategy.\n */ var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */ stringify: function stringify(cipherParams) {\n var wordArray;\n // Shortcuts\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n // Format\n if (salt) wordArray = WordArray.create([\n 0x53616c74,\n 0x65645f5f\n ]).concat(salt).concat(ciphertext);\n else wordArray = ciphertext;\n return wordArray.toString(Base64);\n },\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */ parse: function parse(openSSLStr) {\n var salt;\n // Parse base64\n var ciphertext = Base64.parse(openSSLStr);\n // Shortcut\n var ciphertextWords = ciphertext.words;\n // Test for salt\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n // Remove salt from ciphertext\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n return CipherParams.create({\n ciphertext: ciphertext,\n salt: salt\n });\n }\n };\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */ var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */ cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */ encrypt: function encrypt(cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Encrypt\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n // Shortcut\n var cipherCfg = encryptor.cfg;\n // Create and return serializable cipher params\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */ decrypt: function decrypt(cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n // Decrypt\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */ _parse: function _parse(ciphertext, format) {\n if (typeof ciphertext == \"string\") return format.parse(ciphertext, this);\n else return ciphertext;\n }\n });\n /**\n * Key derivation function namespace.\n */ var C_kdf = C.kdf = {};\n /**\n * OpenSSL key derivation function.\n */ var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */ execute: function execute(password, keySize, ivSize, salt, hasher) {\n // Generate random salt\n if (!salt) salt = WordArray.random(8);\n // Derive key and IV\n if (!hasher) var key = EvpKDF.create({\n keySize: keySize + ivSize\n }).compute(password, salt);\n else var key = EvpKDF.create({\n keySize: keySize + ivSize,\n hasher: hasher\n }).compute(password, salt);\n // Separate key and IV\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n // Return params\n return CipherParams.create({\n key: key,\n iv: iv,\n salt: salt\n });\n }\n };\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */ var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */ cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */ encrypt: function encrypt(cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n // Add IV to config\n cfg.iv = derivedParams.iv;\n // Encrypt\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n // Mix in derived params\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */ decrypt: function decrypt(cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n // Add IV to config\n cfg.iv = derivedParams.iv;\n // Decrypt\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n }();\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/core.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/core.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory();\n })(this, function() {\n /*globals window, global, require*/ /**\n * CryptoJS core components.\n */ var CryptoJS = CryptoJS || function(Math1, undefined1) {\n var crypto;\n // Native crypto from window (Browser)\n if (typeof window !== \"undefined\" && window.crypto) crypto = window.crypto;\n // Native crypto in web worker (Browser)\n if (typeof self !== \"undefined\" && self.crypto) crypto = self.crypto;\n // Native crypto from worker\n if (typeof globalThis !== \"undefined\" && globalThis.crypto) crypto = globalThis.crypto;\n // Native (experimental IE 11) crypto from window (Browser)\n if (!crypto && typeof window !== \"undefined\" && window.msCrypto) crypto = window.msCrypto;\n // Native crypto from global (NodeJS)\n if (!crypto && typeof __webpack_require__.g !== \"undefined\" && __webpack_require__.g.crypto) crypto = __webpack_require__.g.crypto;\n // Native crypto import via require (NodeJS)\n if (!crypto && true) try {\n crypto = __webpack_require__(/*! crypto */ \"?9157\");\n } catch (err) {}\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */ var cryptoSecureRandomInt = function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === \"function\") try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === \"function\") try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n };\n /*\n\t * Local polyfill of Object.create\n\n\t */ var create = Object.create || function() {\n function F() {}\n return function(obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n }();\n /**\n * CryptoJS namespace.\n */ var C = {};\n /**\n * Library namespace.\n */ var C_lib = C.lib = {};\n /**\n * Base object for prototypal inheritance.\n */ var Base = C_lib.Base = function() {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */ extend: function extend(overrides) {\n // Spawn\n var subtype = create(this);\n // Augment\n if (overrides) subtype.mixIn(overrides);\n // Create default initializer\n if (!subtype.hasOwnProperty(\"init\") || this.init === subtype.init) subtype.init = function() {\n subtype.$super.init.apply(this, arguments);\n };\n // Initializer's prototype is the subtype object\n subtype.init.prototype = subtype;\n // Reference supertype\n subtype.$super = this;\n return subtype;\n },\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */ create: function create() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */ init: function init() {},\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */ mixIn: function mixIn(properties) {\n for(var propertyName in properties)if (properties.hasOwnProperty(propertyName)) this[propertyName] = properties[propertyName];\n // IE won't copy toString using the loop above\n if (properties.hasOwnProperty(\"toString\")) this.toString = properties.toString;\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */ clone: function clone() {\n return this.init.prototype.extend(this);\n }\n };\n }();\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */ var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */ init: function init(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined1) this.sigBytes = sigBytes;\n else this.sigBytes = words.length * 4;\n },\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */ toString: function toString(encoder) {\n return (encoder || Hex).stringify(this);\n },\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */ concat: function concat(wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n // Clamp excess bits\n this.clamp();\n // Concat\n if (thisSigBytes % 4) // Copy one byte at a time\n for(var i = 0; i < thatSigBytes; i++){\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n else // Copy one word at a time\n for(var j = 0; j < thatSigBytes; j += 4)thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n this.sigBytes += thatSigBytes;\n // Chainable\n return this;\n },\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */ clamp: function clamp() {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes;\n // Clamp\n words[sigBytes >>> 2] &= 0xffffffff << 32 - sigBytes % 4 * 8;\n words.length = Math1.ceil(sigBytes / 4);\n },\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */ clone: function clone() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */ random: function random(nBytes) {\n var words = [];\n for(var i = 0; i < nBytes; i += 4)words.push(cryptoSecureRandomInt());\n return new WordArray.init(words, nBytes);\n }\n });\n /**\n * Encoder namespace.\n */ var C_enc = C.enc = {};\n /**\n * Hex encoding strategy.\n */ var Hex = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n // Convert\n var hexChars = [];\n for(var i = 0; i < sigBytes; i++){\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join(\"\");\n },\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */ parse: function parse(hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length;\n // Convert\n var words = [];\n for(var i = 0; i < hexStrLength; i += 2)words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n /**\n * Latin1 encoding strategy.\n */ var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n // Convert\n var latin1Chars = [];\n for(var i = 0; i < sigBytes; i++){\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join(\"\");\n },\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */ parse: function parse(latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length;\n // Convert\n var words = [];\n for(var i = 0; i < latin1StrLength; i++)words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << 24 - i % 4 * 8;\n return new WordArray.init(words, latin1StrLength);\n }\n };\n /**\n * UTF-8 encoding strategy.\n */ var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */ parse: function parse(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */ reset: function reset() {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */ _append: function _append(data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == \"string\") data = Utf8.parse(data);\n // Append\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */ _process: function _process(doFlush) {\n var processedWords;\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n // Count blocks ready\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) // Round up to include partial blocks\n nBlocksReady = Math1.ceil(nBlocksReady);\n else // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math1.max((nBlocksReady | 0) - this._minBufferSize, 0);\n // Count words ready\n var nWordsReady = nBlocksReady * blockSize;\n // Count bytes ready\n var nBytesReady = Math1.min(nWordsReady * 4, dataSigBytes);\n // Process blocks\n if (nWordsReady) {\n for(var offset = 0; offset < nWordsReady; offset += blockSize)// Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n // Remove processed words\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n // Return processed words\n return new WordArray.init(processedWords, nBytesReady);\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */ clone: function clone() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */ var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */ cfg: Base.extend(),\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */ init: function init(cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n // Set initial values\n this.reset();\n },\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */ reset: function reset() {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n // Perform concrete-hasher logic\n this._doReset();\n },\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */ update: function update(messageUpdate) {\n // Append\n this._append(messageUpdate);\n // Update the hash\n this._process();\n // Chainable\n return this;\n },\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */ finalize: function finalize(messageUpdate) {\n // Final message update\n if (messageUpdate) this._append(messageUpdate);\n // Perform concrete-hasher logic\n var hash = this._doFinalize();\n return hash;\n },\n blockSize: 16,\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */ _createHelper: function _createHelper(hasher) {\n return function(message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */ _createHmacHelper: function _createHmacHelper(hasher) {\n return function(message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n /**\n * Algorithm namespace.\n */ var C_algo = C.algo = {};\n return C;\n }(Math);\n return CryptoJS;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/enc-base64.js\": /*!**********************************************!*\\\n !*** ./node_modules/crypto-js/enc-base64.js ***!\n \\**********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n /**\n * Base64 encoding strategy.\n */ var Base64 = C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */ stringify: function stringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n // Clamp excess bits\n wordArray.clamp();\n // Convert\n var base64Chars = [];\n for(var i = 0; i < sigBytes; i += 3){\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 0xff;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 0xff;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for(var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++)base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 0x3f));\n }\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) while(base64Chars.length % 4)base64Chars.push(paddingChar);\n return base64Chars.join(\"\");\n },\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */ parse: function parse(base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for(var j = 0; j < map.length; j++)reverseMap[map.charCodeAt(j)] = j;\n }\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) base64StrLength = paddingIndex;\n }\n // Convert\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n };\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for(var i = 0; i < base64StrLength; i++)if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n return WordArray.create(words, nBytes);\n }\n })();\n return CryptoJS.enc.Base64;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/evpkdf.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/evpkdf.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha1 */ \"./node_modules/crypto-js/sha1.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */ var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */ cfg: Base.extend({\n keySize: 4,\n hasher: MD5,\n iterations: 1\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */ init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */ compute: function compute(password, salt) {\n var block;\n // Shortcut\n var cfg = this.cfg;\n // Init hasher\n var hasher = cfg.hasher.create();\n // Initial values\n var derivedKey = WordArray.create();\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n // Generate key\n while(derivedKeyWords.length < keySize){\n if (block) hasher.update(block);\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n // Iterations\n for(var i = 1; i < iterations; i++){\n block = hasher.finalize(block);\n hasher.reset();\n }\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */ C.EvpKDF = function(password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS.EvpKDF;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/hmac.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/hmac.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n /**\n * HMAC algorithm.\n */ var HMAC = C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */ init: function init(hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init();\n // Convert string to WordArray, else assume WordArray already\n if (typeof key == \"string\") key = Utf8.parse(key);\n // Shortcuts\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n // Allow arbitrary length keys\n if (key.sigBytes > hasherBlockSizeBytes) key = hasher.finalize(key);\n // Clamp excess bits\n key.clamp();\n // Clone key for inner and outer pads\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone();\n // Shortcuts\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n // XOR keys with pad constants\n for(var i = 0; i < hasherBlockSize; i++){\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n // Set initial values\n this.reset();\n },\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */ reset: function reset() {\n // Shortcut\n var hasher = this._hasher;\n // Reset\n hasher.reset();\n hasher.update(this._iKey);\n },\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */ update: function update(messageUpdate) {\n this._hasher.update(messageUpdate);\n // Chainable\n return this;\n },\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */ finalize: function finalize(messageUpdate) {\n // Shortcut\n var hasher = this._hasher;\n // Compute HMAC\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac;\n }\n });\n })();\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/md5.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/md5.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function(Math1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Constants table\n var T = [];\n // Compute constants\n (function() {\n for(var i = 0; i < 64; i++)T[i] = Math1.abs(Math1.sin(i + 1)) * 0x100000000 | 0;\n })();\n /**\n * MD5 hash algorithm.\n */ var MD5 = C_algo.MD5 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476\n ]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Swap endian\n for(var i = 0; i < 16; i++){\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 0x00ff00ff | (M_offset_i << 24 | M_offset_i >>> 8) & 0xff00ff00;\n }\n // Shortcuts\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n // Computation\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math1.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 0x00ff00ff | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 0xff00ff00;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 0x00ff00ff | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 0xff00ff00;\n data.sigBytes = (dataWords.length + 1) * 4;\n // Hash final blocks\n this._process();\n // Shortcuts\n var hash = this._hash;\n var H = hash.words;\n // Swap endian\n for(var i = 0; i < 4; i++){\n // Shortcut\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 0x00ff00ff | (H_i << 24 | H_i >>> 8) & 0xff00ff00;\n }\n // Return final computed hash\n return hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */ C.MD5 = Hasher._createHelper(MD5);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */ C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n return CryptoJS.MD5;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/pbkdf2.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/pbkdf2.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./sha256 */ \"./node_modules/crypto-js/sha256.js\"), __webpack_require__(/*! ./hmac */ \"./node_modules/crypto-js/hmac.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var HMAC = C_algo.HMAC;\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */ var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA256\n * @property {number} iterations The number of iterations to perform. Default: 250000\n */ cfg: Base.extend({\n keySize: 4,\n hasher: SHA256,\n iterations: 250000\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */ init: function init(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */ compute: function compute(password, salt) {\n // Shortcut\n var cfg = this.cfg;\n // Init HMAC\n var hmac = HMAC.create(cfg.hasher, password);\n // Initial values\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([\n 0x00000001\n ]);\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n // Generate key\n while(derivedKeyWords.length < keySize){\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset();\n // Shortcuts\n var blockWords = block.words;\n var blockWordsLength = blockWords.length;\n // Iterations\n var intermediate = block;\n for(var i = 1; i < iterations; i++){\n intermediate = hmac.finalize(intermediate);\n hmac.reset();\n // Shortcut\n var intermediateWords = intermediate.words;\n // XOR intermediate with block\n for(var j = 0; j < blockWordsLength; j++)blockWords[j] ^= intermediateWords[j];\n }\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */ C.PBKDF2 = function(password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS.PBKDF2;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/rabbit.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/rabbit.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n // Reusable objects\n var S = [];\n var C_ = [];\n var G = [];\n /**\n * Rabbit stream cipher algorithm\n */ var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv;\n // Swap endian\n for(var i = 0; i < 4; i++)K[i] = (K[i] << 8 | K[i] >>> 24) & 0x00ff00ff | (K[i] << 24 | K[i] >>> 8) & 0xff00ff00;\n // Generate initial state values\n var X = this._X = [\n K[0],\n K[3] << 16 | K[2] >>> 16,\n K[1],\n K[0] << 16 | K[3] >>> 16,\n K[2],\n K[1] << 16 | K[0] >>> 16,\n K[3],\n K[2] << 16 | K[1] >>> 16\n ];\n // Generate initial counter values\n var C = this._C = [\n K[2] << 16 | K[2] >>> 16,\n K[0] & 0xffff0000 | K[1] & 0x0000ffff,\n K[3] << 16 | K[3] >>> 16,\n K[1] & 0xffff0000 | K[2] & 0x0000ffff,\n K[0] << 16 | K[0] >>> 16,\n K[2] & 0xffff0000 | K[3] & 0x0000ffff,\n K[1] << 16 | K[1] >>> 16,\n K[3] & 0xffff0000 | K[0] & 0x0000ffff\n ];\n // Carry bit\n this._b = 0;\n // Iterate the system four times\n for(var i = 0; i < 4; i++)nextState.call(this);\n // Modify the counters\n for(var i = 0; i < 8; i++)C[i] ^= X[i + 4 & 7];\n // IV setup\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n // Generate four subvectors\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 0x00ff00ff | (IV_0 << 24 | IV_0 >>> 8) & 0xff00ff00;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 0x00ff00ff | (IV_1 << 24 | IV_1 >>> 8) & 0xff00ff00;\n var i1 = i0 >>> 16 | i2 & 0xffff0000;\n var i3 = i2 << 16 | i0 & 0x0000ffff;\n // Modify counter values\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3;\n // Iterate the system four times\n for(var i = 0; i < 4; i++)nextState.call(this);\n }\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var X = this._X;\n // Iterate the system\n nextState.call(this);\n // Generate four keystream words\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n for(var i = 0; i < 4; i++){\n // Swap endian\n S[i] = (S[i] << 8 | S[i] >>> 24) & 0x00ff00ff | (S[i] << 24 | S[i] >>> 8) & 0xff00ff00;\n // Encrypt\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 4,\n ivSize: 2\n });\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C;\n // Save old counter values\n for(var i = 0; i < 8; i++)C_[i] = C[i];\n // Calculate new counter values\n C[0] = C[0] + 0x4d34d34d + this._b | 0;\n C[1] = C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C[2] = C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C[3] = C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C[4] = C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C[5] = C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C[6] = C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C[7] = C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n // Calculate the g-values\n for(var i = 0; i < 8; i++){\n var gx = X[i] + C[i];\n // Construct high and low argument for squaring\n var ga = gx & 0xffff;\n var gb = gx >>> 16;\n // Calculate high and low result of squaring\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 0xffff0000) * gx | 0) + ((gx & 0x0000ffff) * gx | 0);\n // High XOR low\n G[i] = gh ^ gl;\n }\n // Calculate new state values\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */ C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n return CryptoJS.Rabbit;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/rc4.js\": /*!***************************************!*\\\n !*** ./node_modules/crypto-js/rc4.js ***!\n \\***************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n /**\n * RC4 stream cipher algorithm.\n */ var RC4 = C_algo.RC4 = StreamCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes;\n // Init sbox\n var S = this._S = [];\n for(var i = 0; i < 256; i++)S[i] = i;\n // Key setup\n for(var i = 0, j = 0; i < 256; i++){\n var keyByteIndex = i % keySigBytes;\n var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 0xff;\n j = (j + S[i] + keyByte) % 256;\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n }\n // Counters\n this._i = this._j = 0;\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n keySize: 8,\n ivSize: 0\n });\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j;\n // Generate keystream word\n var keystreamWord = 0;\n for(var n = 0; n < 4; n++){\n i = (i + 1) % 256;\n j = (j + S[i]) % 256;\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;\n }\n // Update counters\n this._i = i;\n this._j = j;\n return keystreamWord;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */ C.RC4 = StreamCipher._createHelper(RC4);\n /**\n * Modified RC4 stream cipher algorithm.\n */ var RC4Drop = C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */ cfg: RC4.cfg.extend({\n drop: 192\n }),\n _doReset: function _doReset() {\n RC4._doReset.call(this);\n // Drop\n for(var i = this.cfg.drop; i > 0; i--)generateKeystreamWord.call(this);\n }\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */ C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n return CryptoJS.RC4;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/sha1.js\": /*!****************************************!*\\\n !*** ./node_modules/crypto-js/sha1.js ***!\n \\****************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Reusable object\n var W = [];\n /**\n * SHA-1 hash algorithm.\n */ var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init([\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n 0xc3d2e1f0\n ]);\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words;\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n // Computation\n for(var i = 0; i < 80; i++){\n if (i < 16) W[i] = M[offset + i] | 0;\n else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n var t = (a << 5 | a >>> 27) + e + W[i];\n if (i < 20) t += (b & c | ~b & d) + 0x5a827999;\n else if (i < 40) t += (b ^ c ^ d) + 0x6ed9eba1;\n else if (i < 60) t += (b & c | b & d | c & d) - 0x70e44324;\n else t += (b ^ c ^ d) - 0x359d3e2a;\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n }\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n // Hash final blocks\n this._process();\n // Return final computed hash\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */ C.SHA1 = Hasher._createHelper(SHA1);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */ C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n return CryptoJS.SHA1;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/sha256.js\": /*!******************************************!*\\\n !*** ./node_modules/crypto-js/sha256.js ***!\n \\******************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"));\n })(this, function(CryptoJS) {\n (function(Math1) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n // Initialization and round constants tables\n var H = [];\n var K = [];\n // Compute constants\n (function() {\n function isPrime(n) {\n var sqrtN = Math1.sqrt(n);\n for(var factor = 2; factor <= sqrtN; factor++){\n if (!(n % factor)) return false;\n }\n return true;\n }\n function getFractionalBits(n) {\n return (n - (n | 0)) * 0x100000000 | 0;\n }\n var n = 2;\n var nPrime = 0;\n while(nPrime < 64){\n if (isPrime(n)) {\n if (nPrime < 8) H[nPrime] = getFractionalBits(Math1.pow(n, 0.5));\n K[nPrime] = getFractionalBits(Math1.pow(n, 1 / 3));\n nPrime++;\n }\n n++;\n }\n })();\n // Reusable object\n var W = [];\n /**\n * SHA-256 hash algorithm.\n */ var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function _doReset() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(M, offset) {\n // Shortcut\n var H = this._hash.words;\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n // Computation\n for(var i = 0; i < 64; i++){\n if (i < 16) W[i] = M[offset + i] | 0;\n else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n // Intermediate hash value\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n H[5] = H[5] + f | 0;\n H[6] = H[6] + g | 0;\n H[7] = H[7] + h | 0;\n },\n _doFinalize: function _doFinalize() {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math1.floor(nBitsTotal / 0x100000000);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n // Hash final blocks\n this._process();\n // Return final computed hash\n return this._hash;\n },\n clone: function clone() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */ C.SHA256 = Hasher._createHelper(SHA256);\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */ C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n return CryptoJS.SHA256;\n });\n /***/ },\n /***/ \"./node_modules/crypto-js/tripledes.js\": /*!*********************************************!*\\\n !*** ./node_modules/crypto-js/tripledes.js ***!\n \\*********************************************/ /***/ function(module1, exports, __webpack_require__) {\n (function(root, factory, undef) {\n // CommonJS\n module1.exports = exports = factory(__webpack_require__(/*! ./core */ \"./node_modules/crypto-js/core.js\"), __webpack_require__(/*! ./enc-base64 */ \"./node_modules/crypto-js/enc-base64.js\"), __webpack_require__(/*! ./md5 */ \"./node_modules/crypto-js/md5.js\"), __webpack_require__(/*! ./evpkdf */ \"./node_modules/crypto-js/evpkdf.js\"), __webpack_require__(/*! ./cipher-core */ \"./node_modules/crypto-js/cipher-core.js\"));\n })(this, function(CryptoJS) {\n (function() {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n // Permuted Choice 1 constants\n var PC1 = [\n 57,\n 49,\n 41,\n 33,\n 25,\n 17,\n 9,\n 1,\n 58,\n 50,\n 42,\n 34,\n 26,\n 18,\n 10,\n 2,\n 59,\n 51,\n 43,\n 35,\n 27,\n 19,\n 11,\n 3,\n 60,\n 52,\n 44,\n 36,\n 63,\n 55,\n 47,\n 39,\n 31,\n 23,\n 15,\n 7,\n 62,\n 54,\n 46,\n 38,\n 30,\n 22,\n 14,\n 6,\n 61,\n 53,\n 45,\n 37,\n 29,\n 21,\n 13,\n 5,\n 28,\n 20,\n 12,\n 4\n ];\n // Permuted Choice 2 constants\n var PC2 = [\n 14,\n 17,\n 11,\n 24,\n 1,\n 5,\n 3,\n 28,\n 15,\n 6,\n 21,\n 10,\n 23,\n 19,\n 12,\n 4,\n 26,\n 8,\n 16,\n 7,\n 27,\n 20,\n 13,\n 2,\n 41,\n 52,\n 31,\n 37,\n 47,\n 55,\n 30,\n 40,\n 51,\n 45,\n 33,\n 48,\n 44,\n 49,\n 39,\n 56,\n 34,\n 53,\n 46,\n 42,\n 50,\n 36,\n 29,\n 32\n ];\n // Cumulative bit shift constants\n var BIT_SHIFTS = [\n 1,\n 2,\n 4,\n 6,\n 8,\n 10,\n 12,\n 14,\n 15,\n 17,\n 19,\n 21,\n 23,\n 25,\n 27,\n 28\n ];\n // SBOXes and round permutation constants\n var SBOX_P = [\n {\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002\n },\n {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000\n },\n {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100\n },\n {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040\n },\n {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080\n },\n {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008\n },\n {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001\n },\n {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800\n }\n ];\n // Masks that select the SBOX input\n var SBOX_MASK = [\n 0xf8000001,\n 0x1f800000,\n 0x01f80000,\n 0x001f8000,\n 0x0001f800,\n 0x00001f80,\n 0x000001f8,\n 0x8000001f\n ];\n /**\n * DES block cipher algorithm.\n */ var DES = C_algo.DES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Select 56 bits according to PC1\n var keyBits = [];\n for(var i = 0; i < 56; i++){\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;\n }\n // Assemble 16 subkeys\n var subKeys = this._subKeys = [];\n for(var nSubKey = 0; nSubKey < 16; nSubKey++){\n // Create subkey\n var subKey = subKeys[nSubKey] = [];\n // Shortcut\n var bitShift = BIT_SHIFTS[nSubKey];\n // Select 48 bits according to PC2\n for(var i = 0; i < 24; i++){\n // Select from the left 28 key bits\n subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6;\n // Select from the right 28 key bits\n subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;\n }\n // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;\n for(var i = 1; i < 7; i++)subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;\n subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;\n }\n // Compute inverse subkeys\n var invSubKeys = this._invSubKeys = [];\n for(var i = 0; i < 16; i++)invSubKeys[i] = subKeys[15 - i];\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n _doCryptBlock: function _doCryptBlock(M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1];\n // Initial permutation\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555);\n // Rounds\n for(var round = 0; round < 16; round++){\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock;\n // Feistel function\n var f = 0;\n for(var i = 0; i < 8; i++)f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n }\n // Undo swap from last round\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t;\n // Final permutation\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n // Set output\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n keySize: 2,\n ivSize: 2,\n blockSize: 2\n });\n // Swap bits across the left and right words\n function exchangeLR(offset, mask) {\n var t = (this._lBlock >>> offset ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n function exchangeRL(offset, mask) {\n var t = (this._rBlock >>> offset ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */ C.DES = BlockCipher._createHelper(DES);\n /**\n * Triple-DES block cipher algorithm.\n */ var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n _doReset: function _doReset() {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Make sure the key length is valid (64, 128 or >= 192 bit)\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) throw new Error(\"Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.\");\n // Extend the key according to the keying options defined in 3DES standard\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n // Create DES instances\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n encryptBlock: function encryptBlock(M, offset) {\n this._des1.encryptBlock(M, offset);\n this._des2.decryptBlock(M, offset);\n this._des3.encryptBlock(M, offset);\n },\n decryptBlock: function decryptBlock(M, offset) {\n this._des3.decryptBlock(M, offset);\n this._des2.encryptBlock(M, offset);\n this._des1.decryptBlock(M, offset);\n },\n keySize: 6,\n ivSize: 2,\n blockSize: 2\n });\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */ C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n return CryptoJS.TripleDES;\n });\n /***/ },\n /***/ \"./node_modules/lz-string/libs/lz-string.js\": /*!**************************************************!*\\\n !*** ./node_modules/lz-string/libs/lz-string.js ***!\n \\**************************************************/ /***/ function(module1, exports, __webpack_require__) {\n var __WEBPACK_AMD_DEFINE_RESULT__; // Copyright (c) 2013 Pieroxy \n // This work is free. You can redistribute it and/or modify it\n // under the terms of the WTFPL, Version 2\n // For more information see LICENSE.txt or http://www.wtfpl.net/\n //\n // For more information, the home page:\n // http://pieroxy.net/blog/pages/lz-string/testing.html\n //\n // LZ-based compression algorithm, version 1.4.5\n var LZString = function() {\n // private property\n var f = String.fromCharCode;\n var keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n var keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\n var baseReverseDic = {};\n function getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for(var i = 0; i < alphabet.length; i++)baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n return baseReverseDic[alphabet][character];\n }\n var LZString = {\n compressToBase64: function compressToBase64(input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a) {\n return keyStrBase64.charAt(a);\n });\n switch(res.length % 4 // To produce valid Base64\n ){\n default:\n case 0:\n return res;\n case 1:\n return res + \"===\";\n case 2:\n return res + \"==\";\n case 3:\n return res + \"=\";\n }\n },\n decompressFromBase64: function decompressFromBase64(input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) {\n return getBaseValue(keyStrBase64, input.charAt(index));\n });\n },\n compressToUTF16: function compressToUTF16(input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a) {\n return f(a + 32);\n }) + \" \";\n },\n decompressFromUTF16: function decompressFromUTF16(compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) {\n return compressed.charCodeAt(index) - 32;\n });\n },\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function compressToUint8Array(uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n for(var i = 0, TotalLen = compressed.length; i < TotalLen; i++){\n var current_value = compressed.charCodeAt(i);\n buf[i * 2] = current_value >>> 8;\n buf[i * 2 + 1] = current_value % 256;\n }\n return buf;\n },\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array: function decompressFromUint8Array(compressed) {\n if (compressed === null || compressed === undefined) return LZString.decompress(compressed);\n else {\n var buf = new Array(compressed.length / 2); // 2 bytes per character\n for(var i = 0, TotalLen = buf.length; i < TotalLen; i++)buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n var result = [];\n buf.forEach(function(c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(\"\"));\n }\n },\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function compressToEncodedURIComponent(input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a) {\n return keyStrUriSafe.charAt(a);\n });\n },\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent: function decompressFromEncodedURIComponent(input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) {\n return getBaseValue(keyStrUriSafe, input.charAt(index));\n });\n },\n compress: function compress(uncompressed) {\n return LZString._compress(uncompressed, 16, function(a) {\n return f(a);\n });\n },\n _compress: function _compress(uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value, context_dictionary = {}, context_dictionaryToCreate = {}, context_c = \"\", context_wc = \"\", context_w = \"\", context_enlargeIn = 2, context_dictSize = 3, context_numBits = 2, context_data = [], context_data_val = 0, context_data_position = 0, ii;\n for(ii = 0; ii < uncompressed.length; ii += 1){\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) context_w = context_wc;\n else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 8; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n } else {\n value = 1;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 16; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 8; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n } else {\n value = 1;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for(i = 0; i < 16; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n // Mark the end of the stream\n value = 2;\n for(i = 0; i < context_numBits; i++){\n context_data_val = context_data_val << 1 | value & 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else context_data_position++;\n value = value >> 1;\n }\n // Flush the last char\n while(true){\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n } else context_data_position++;\n }\n return context_data.join(\"\");\n },\n decompress: function decompress(compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) {\n return compressed.charCodeAt(index);\n });\n },\n _decompress: function _decompress(length, resetValue, getNextValue) {\n var dictionary = [], next, enlargeIn = 4, dictSize = 4, numBits = 3, entry = \"\", result = [], i, w, bits, resb, maxpower, power, c, data = {\n val: getNextValue(0),\n position: resetValue,\n index: 1\n };\n for(i = 0; i < 3; i += 1)dictionary[i] = i;\n bits = 0;\n maxpower = Math.pow(2, 2);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n switch(next = bits){\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while(true){\n if (data.index > length) return \"\";\n bits = 0;\n maxpower = Math.pow(2, numBits);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n switch(c = bits){\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while(power != maxpower){\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 2:\n return result.join(\"\");\n }\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n if (dictionary[c]) entry = dictionary[c];\n else {\n if (c === dictSize) entry = w + w.charAt(0);\n else return null;\n }\n result.push(entry);\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n w = entry;\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n }\n }\n };\n return LZString;\n }();\n __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return LZString;\n }).call(exports, __webpack_require__, exports, module1), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module1.exports = __WEBPACK_AMD_DEFINE_RESULT__);\n /***/ },\n /***/ \"?9157\": /*!************************!*\\\n !*** crypto (ignored) ***!\n \\************************/ /***/ function() {\n /* (ignored) */ /***/ }\n };\n /************************************************************************/ /******/ // The module cache\n /******/ var __webpack_module_cache__ = {};\n /******/ /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ // Check if module is in cache\n /******/ var cachedModule = __webpack_module_cache__[moduleId];\n /******/ if (cachedModule !== undefined) /******/ return cachedModule.exports;\n /******/ // Create a new module (and put it into the cache)\n /******/ var module1 = __webpack_module_cache__[moduleId] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {}\n };\n /******/ /******/ // Execute the module function\n /******/ __webpack_modules__[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);\n /******/ /******/ // Return the exports of the module\n /******/ return module1.exports;\n /******/ }\n /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (function() {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = function(module1) {\n /******/ var getter = module1 && module1.__esModule ? /******/ function() {\n return module1[\"default\"];\n } : /******/ function() {\n return module1;\n };\n /******/ __webpack_require__.d(getter, {\n a: getter\n });\n /******/ return getter;\n /******/ };\n /******/ })();\n /******/ /******/ /* webpack/runtime/define property getters */ /******/ (function() {\n /******/ // define getter functions for harmony exports\n /******/ __webpack_require__.d = function(exports, definition) {\n /******/ for(var key in definition)/******/ if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) /******/ Object.defineProperty(exports, key, {\n enumerable: true,\n get: definition[key]\n });\n /******/ };\n /******/ })();\n /******/ /******/ /* webpack/runtime/global */ /******/ (function() {\n /******/ __webpack_require__.g = function() {\n /******/ if (typeof globalThis === \"object\") return globalThis;\n /******/ try {\n /******/ return this || new Function(\"return this\")();\n /******/ } catch (e) {\n /******/ if (typeof window === \"object\") return window;\n /******/ }\n /******/ }();\n /******/ })();\n /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (function() {\n /******/ __webpack_require__.o = function(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n };\n /******/ })();\n /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (function() {\n /******/ // define __esModule on exports\n /******/ __webpack_require__.r = function(exports) {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) /******/ Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ })();\n /******/ /************************************************************************/ var __webpack_exports__ = {};\n // This entry need to be wrapped in an IIFE because it need to be in strict mode.\n (function() {\n \"use strict\";\n /*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/ __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ \"default\": function() {\n return __WEBPACK_DEFAULT_EXPORT__;\n }\n });\n /* harmony import */ var _SecureLS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SecureLS */ \"./src/SecureLS.js\");\n /* harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = _SecureLS__WEBPACK_IMPORTED_MODULE_0__.SecureLS;\n })();\n /******/ return __webpack_exports__;\n /******/ }();\n});\n\n},{\"@swc/helpers/_/_class_call_check\":\"6tPd8\",\"@swc/helpers/_/_create_class\":\"kdmA3\",\"@swc/helpers/_/_define_property\":\"3xmRB\"}],\"bkFGX\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"6f57ed160c1cabea\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"92436d3ecaf63a1c\").render;\n require(\"38a6c1c61852e461\")[\"default\"](script);\n script.__scopeId = \"data-v-244e94\";\n script.__file = \"Footer.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"6f57ed160c1cabea\":\"4ESat\",\"92436d3ecaf63a1c\":\"bj5o4\",\"38a6c1c61852e461\":\"7OPZH\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"4ESat\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.default = {\n name: \"Footer\",\n data: function() {\n return {};\n }\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"bj5o4\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_tooltip = (0, _vue.resolveComponent)(\"v-tooltip\");\n var _component_v_row = (0, _vue.resolveComponent)(\"v-row\");\n var _component_v_footer = (0, _vue.resolveComponent)(\"v-footer\");\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_footer, {\n color: \"surface-variant\",\n app: true,\n elevation: \"15\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_row, {\n justify: \"center\",\n \"no-gutters\": \"\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"edrys-Lite on GitHub\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-github\",\n href: \"https://github.com/edrys-labs/edrys-Lite/\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"View the Documentation\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-information\",\n href: \"https://github.com/edrys-labs/documentation\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_tooltip, {\n text: \"Explore Classrooms\",\n location: \"top\"\n }, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n density: \"compact\",\n icon: \"mdi-share-circle\",\n href: \"https://github.com/topics/edrys-lab\",\n target: \"_\",\n \"class\": \"mx-2\"\n }, props), null, 16)\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n });\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7OPZH\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"j8BNU\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nvar _hoisted_1 = {\n key: 0\n};\nvar _hoisted_2 = {\n key: 1\n};\nvar _hoisted_3 = {\n key: 2\n};\nvar _hoisted_4 = [\n \"innerHTML\"\n];\nvar _hoisted_5 = [\n \"href\"\n];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_list_item_title = (0, _vue.resolveComponent)(\"v-list-item-title\");\n var _component_v_list_item_subtitle = (0, _vue.resolveComponent)(\"v-list-item-subtitle\");\n var _component_v_list_item = (0, _vue.resolveComponent)(\"v-list-item\");\n var _component_v_list = (0, _vue.resolveComponent)(\"v-list\");\n var _component_v_menu = (0, _vue.resolveComponent)(\"v-menu\");\n var _component_v_app_bar = (0, _vue.resolveComponent)(\"v-app-bar\");\n var _component_v_switch = (0, _vue.resolveComponent)(\"v-switch\");\n var _component_v_chip = (0, _vue.resolveComponent)(\"v-chip\");\n var _component_v_img = (0, _vue.resolveComponent)(\"v-img\");\n var _component_v_card_title = (0, _vue.resolveComponent)(\"v-card-title\");\n var _component_v_card_subtitle = (0, _vue.resolveComponent)(\"v-card-subtitle\");\n var _component_v_card_text = (0, _vue.resolveComponent)(\"v-card-text\");\n var _component_v_icon = (0, _vue.resolveComponent)(\"v-icon\");\n var _component_v_spacer = (0, _vue.resolveComponent)(\"v-spacer\");\n var _component_v_card_actions = (0, _vue.resolveComponent)(\"v-card-actions\");\n var _component_v_card = (0, _vue.resolveComponent)(\"v-card\");\n var _component_v_col = (0, _vue.resolveComponent)(\"v-col\");\n var _component_v_row = (0, _vue.resolveComponent)(\"v-row\");\n var _component_v_container = (0, _vue.resolveComponent)(\"v-container\");\n var _component_v_main = (0, _vue.resolveComponent)(\"v-main\");\n var _component_Footer = (0, _vue.resolveComponent)(\"Footer\");\n var _component_v_app = (0, _vue.resolveComponent)(\"v-app\");\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_app, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_app_bar, {\n color: \"surface-variant\",\n title: \"edrys-lite\"\n }, {\n append: (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_menu, null, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)(props, {\n icon: \"mdi-dots-vertical\"\n }), null, 16)\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[2] || (_cache[2] = [\n (0, _vue.createTextVNode)(\" User ID: \")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_list_item_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createTextVNode)((0, _vue.toDisplayString)($data.peerID) + \" \", 1),\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"mdi-content-copy\",\n size: \"small\",\n variant: \"flat\",\n onClick: _cache[0] || (_cache[0] = function($event) {\n return $options.copyPeerID();\n })\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_main, {\n \"class\": \"d-flex\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_container, {\n fluid: \"\",\n \"class\": \"align-start\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_row, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n ((0, _vue.openBlock)(true), (0, _vue.createElementBlock)((0, _vue.Fragment), null, (0, _vue.renderList)($data.classrooms, function(classroom) {\n return (0, _vue.openBlock)(), (0, _vue.createBlock)(_component_v_col, {\n cols: \"12\",\n sm: \"6\",\n md: \"4\",\n lg: \"3\",\n key: classroom.id\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card, {\n \"class\": \"item\",\n color: \"surface-variant\",\n elevation: \"4\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_meta, _classroom_data;\n return [\n (0, _vue.createVNode)(_component_v_chip, {\n color: !!classroom.hash ? \"primary\" : \"secondary\",\n style: {\n position: \"absolute\",\n \"z-index\": \"100\",\n right: \"10px\",\n top: \"10px\",\n \"background-color\": \"white\"\n },\n disabled: (classroom === null || classroom === void 0 ? void 0 : classroom.data.createdBy) !== $data.peerID && !(classroom === null || classroom === void 0 ? void 0 : classroom.data.members.teacher.includes($data.peerID))\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n _cache[3] || (_cache[3] = (0, _vue.createTextVNode)(\" Write Protection \")),\n (0, _vue.createVNode)(_component_v_switch, {\n \"model-value\": !!classroom.hash,\n color: \"primary\",\n label: !!classroom.hash ? \"on\" : \"off\",\n style: {\n \"padding-top\": \"20px\",\n \"z-index\": \"200\"\n },\n onChange: function($event) {\n return $options.switchClassroomProtection(classroom.id, !classroom.hash);\n }\n }, null, 8, [\n \"model-value\",\n \"label\",\n \"onChange\"\n ])\n ];\n }),\n _: 2\n }, 1032, [\n \"color\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_img, {\n src: (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_meta = _classroom_data.meta) === null || _classroom_data_meta === void 0 ? void 0 : _classroom_data_meta.logo) || \"https://repository-images.githubusercontent.com/453979926/ab6bf9d7-a4bc-4a47-97b7-c8bc8bb4654d\",\n height: \"200px\",\n cover: \"\"\n }, null, 8, [\n \"src\"\n ]),\n (0, _vue.createVNode)(_component_v_card_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data;\n return [\n (0, _vue.createTextVNode)((0, _vue.toDisplayString)((_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : _classroom_data.name), 1)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_members, _classroom_data;\n return [\n (classroom === null || classroom === void 0 ? void 0 : classroom.data.createdBy) === $data.peerID ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_1, \"You own this class\")) : (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_members = _classroom_data.members) === null || _classroom_data_members === void 0 ? void 0 : _classroom_data_members.teacher.includes($data.peerID)) ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_2, \"You're a teacher here\")) : ((0, _vue.openBlock)(), (0, _vue.createElementBlock)(\"span\", _hoisted_3, \"You're a student here\"))\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_text, null, {\n \"default\": (0, _vue.withCtx)(function() {\n var _classroom_data_meta, _classroom_data;\n return [\n (0, _vue.createElementVNode)(\"span\", {\n innerHTML: (classroom === null || classroom === void 0 ? void 0 : (_classroom_data = classroom.data) === null || _classroom_data === void 0 ? void 0 : (_classroom_data_meta = _classroom_data.meta) === null || _classroom_data_meta === void 0 ? void 0 : _classroom_data_meta.description) || \"No description\"\n }, null, 8, _hoisted_4)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_card_actions, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\",\n title: \"fork\",\n onClick: function($event) {\n return $options.forkClass(classroom);\n }\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[4] || (_cache[4] = [\n (0, _vue.createTextVNode)(\"mdi-source-fork\")\n ]);\n }),\n _: 1\n })\n ];\n }),\n _: 2\n }, 1032, [\n \"onClick\"\n ]),\n (0, _vue.createVNode)(_component_v_menu, null, {\n activator: (0, _vue.withCtx)(function(param) {\n var props = param.props;\n return [\n (0, _vue.createVNode)(_component_v_btn, (0, _vue.mergeProps)({\n color: \"\",\n ref_for: true\n }, props, {\n icon: \"mdi-delete\"\n }), null, 16)\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_list_item_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[5] || (_cache[5] = [\n (0, _vue.createTextVNode)(\" Are you sure? \")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_btn, {\n color: \"red\",\n depressed: \"\",\n onClick: function($event) {\n return $options.deleteClass(classroom.id);\n },\n \"class\": \"float-right\",\n style: {\n \"margin-top\": \"10px\"\n }\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[6] || (_cache[6] = [\n (0, _vue.createTextVNode)(\" Yes, delete forever\")\n ]);\n }),\n _: 2\n }, 1032, [\n \"onClick\"\n ])\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024),\n (0, _vue.createVNode)(_component_v_spacer),\n (0, _vue.createElementVNode)(\"a\", {\n \"data-link\": \"true\",\n href: \"./?/classroom/\".concat(classroom.id).concat(!!classroom.hash ? \"/\".concat(classroom.hash) : \"\"),\n style: {\n color: \"white\"\n }\n }, [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\",\n title: \"open\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[7] || (_cache[7] = [\n (0, _vue.createTextVNode)(\"mdi-arrow-right-bold\")\n ]);\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ], 8, _hoisted_5)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024)\n ];\n }),\n _: 2\n }, 1024);\n }), 128)),\n (0, _vue.createVNode)(_component_v_col, {\n cols: \"12\",\n sm: \"6\",\n md: \"4\",\n lg: \"3\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card, {\n \"class\": \"item\",\n color: \"surface-variant\",\n elevation: \"4\",\n onClick: _cache[1] || (_cache[1] = function($event) {\n return $options.createClass();\n }),\n variant: \"elevated\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_card_title, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[8] || (_cache[8] = [\n (0, _vue.createTextVNode)(\"Create a class\")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_card_subtitle, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return _cache[9] || (_cache[9] = [\n (0, _vue.createTextVNode)(\"Start teaching now\")\n ]);\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_card_actions, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_spacer),\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"\"\n }, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_icon, {\n icon: \"mdi-plus\"\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_Footer)\n ];\n }),\n _: 1\n });\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"iaiIL\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"kud6o\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"a1f03eaee1a48ec4\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"154c238e49f95afe\").render;\n require(\"51f71cc4d947d3b0\")[\"default\"](script);\n script.__scopeId = \"data-v-9d10e7\";\n script.__file = \"Classroom.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"a1f03eaee1a48ec4\":\"jD1lF\",\"154c238e49f95afe\":\"lXMQd\",\"51f71cc4d947d3b0\":\"dmFPP\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"jD1lF\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _asyncToGenerator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _tsGenerator = require(\"@swc/helpers/_/_ts_generator\");\nvar _settingsVue = require(\"../components/Settings.vue\");\nvar _settingsVueDefault = parcelHelpers.interopDefault(_settingsVue);\nvar _chat = require(\"../components/Chat\");\nvar _chatDefault = parcelHelpers.interopDefault(_chat);\nvar _checks = require(\"../components/Checks\");\nvar _checksDefault = parcelHelpers.interopDefault(_checks);\nvar _modulesVue = require(\"../components/Modules.vue\");\nvar _modulesVueDefault = parcelHelpers.interopDefault(_modulesVue);\nvar _database = require(\"../ts/Database\");\nvar _utils = require(\"../ts/Utils\");\nvar _vue = require(\"vue\");\nvar _peer = require(\"../ts/Peer\");\nvar _peerDefault = parcelHelpers.interopDefault(_peer);\nexports.default = {\n props: [\n \"id\",\n \"station\",\n \"hash\"\n ],\n data: function() {\n var _this = this;\n var _navigator_mediaDevices, _navigator;\n var database = new (0, _database.Database)();\n var configuration = null;\n var data = null;\n var communication = null;\n //setTimeout(this.init, 100);\n var webRTCSupport = false;\n // @ts-ignore\n if (navigator.mediaDevices && ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : (_navigator_mediaDevices = _navigator.mediaDevices) === null || _navigator_mediaDevices === void 0 ? void 0 : _navigator_mediaDevices.getUserMedia)) // WebRTC is supported\n webRTCSupport = true;\n (0, _vue.onMounted)(function() {\n _this.init();\n });\n var stationName = \"\";\n var peerID = (0, _utils.getPeerID)(true);\n if (this.station) {\n stationName = sessionStorage.getItem(\"station_\".concat(this.id));\n if (!stationName) {\n stationName = (0, _utils.infoHash)(6);\n sessionStorage.setItem(\"station_\".concat(this.id), stationName);\n }\n peerID = \"Station \" + stationName;\n }\n return {\n state: true,\n states: {\n webRTCSupport: webRTCSupport,\n receivedConfiguration: null,\n connectedToNetwork: null\n },\n database: database,\n configuration: configuration,\n data: data,\n communication: communication,\n isOwner: false,\n showSideMenu: true,\n showSettings: false,\n scrapedModules: [],\n liveClassProxy: null,\n isStation: this.station,\n peerID: peerID,\n userName: (0, _utils.getShortPeerID)(peerID),\n stationName: stationName,\n componentKey: 0,\n chat: {\n open: false,\n messages: [],\n truncated: false,\n \"new\": false\n },\n stationNameInput: stationName,\n stationNameRules: [\n function(v) {\n return !!v || \"Name is required\";\n },\n function(v) {\n return !_this.isNameTaken(v) || \"Name is already taken\";\n }\n ]\n };\n },\n watch: {\n showSettings: function() {\n if (!this.showSettings) this.data = (0, _utils.clone)(this.configuration.data);\n }\n },\n methods: {\n copyPeerID: function() {\n (0, _utils.copyToClipboard)((0, _utils.getPeerID)(false));\n },\n getPeer_ID: function() {\n return (0, _utils.getPeerID)(false);\n },\n init: function() {\n return (0, _asyncToGenerator._)(function() {\n var _this_configuration, _, self;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n this.database.setProtection(this.id, !!this.hash)\n ];\n case 1:\n _state.sent();\n _ = this;\n return [\n 4,\n this.database.get(this.id)\n ];\n case 2:\n _.configuration = _state.sent();\n if (!!this.hash && ((_this_configuration = this.configuration) === null || _this_configuration === void 0 ? void 0 : _this_configuration.hash) !== this.hash) this.configuration = null;\n if (!this.communication) this.communication = new (0, _peerDefault.default)(this.configuration ? this.configuration : {\n id: this.id,\n data: null,\n timestamp: 0,\n hash: this.hash\n }, this.stationName);\n self = this;\n this.database.setObservable(this.id, function(config) {\n try {\n if (config && !(0, _utils.deepEqual)(self.configuration.data, config.data)) {\n var _self_communication;\n self.configuration = config;\n (_self_communication = self.communication) === null || _self_communication === void 0 ? void 0 : _self_communication.newSetup(config);\n }\n } catch (e) {\n if (config) {\n var _self_communication1;\n self.configuration = config;\n (_self_communication1 = self.communication) === null || _self_communication1 === void 0 ? void 0 : _self_communication1.newSetup(config);\n }\n }\n });\n if (this.configuration) {\n this.data = (0, _utils.clone)(this.configuration.data);\n this.isOwner = this.peerID.startsWith(this.configuration.data.createdBy) || this.getRole() === \"teacher\";\n this.scrapeModules();\n }\n this.communication.on(\"setup\", function(configuration) {\n try {\n if (configuration.timestamp && configuration && !(0, _utils.deepEqual)(self.configuration.data, configuration.data)) {\n self.database.put(configuration);\n self.init();\n }\n } catch (e) {\n if (configuration.timestamp && configuration) {\n self.database.put(configuration);\n self.init();\n }\n }\n });\n return [\n 2\n ];\n }\n });\n }).apply(this);\n },\n getRooms: function() {\n var _this = this;\n if (!this.liveClassProxy) return;\n var sortedKeys = Object.keys(this.liveClassProxy.rooms).sort();\n var rooms = {};\n sortedKeys.forEach(function(key) {\n rooms[key] = _this.liveClassProxy.rooms[key];\n });\n return rooms;\n },\n getRole: function() {\n var _this_configuration_data_members_teacher, _this_configuration_data_members, _this_configuration_data, _this_configuration;\n if (this.isStation) return \"station\";\n if (this.isOwner || ((_this_configuration = this.configuration) === null || _this_configuration === void 0 ? void 0 : (_this_configuration_data = _this_configuration.data) === null || _this_configuration_data === void 0 ? void 0 : (_this_configuration_data_members = _this_configuration_data.members) === null || _this_configuration_data_members === void 0 ? void 0 : (_this_configuration_data_members_teacher = _this_configuration_data_members.teacher) === null || _this_configuration_data_members_teacher === void 0 ? void 0 : _this_configuration_data_members_teacher.includes((0, _utils.getPeerID)(false)))) return \"teacher\";\n return \"student\";\n },\n scrapeModules: function() {\n return (0, _asyncToGenerator._)(function() {\n var i, module, self;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n this.states.receivedConfiguration = true;\n this.scrapedModules = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < this.data.modules.length)) return [\n 3,\n 4\n ];\n return [\n 4,\n (0, _utils.scrapeModule)(this.data.modules[i])\n ];\n case 2:\n module = _state.sent();\n this.scrapedModules.push(module);\n _state.label = 3;\n case 3:\n i++;\n return [\n 3,\n 1\n ];\n case 4:\n self = this;\n this.communication.on(\"room\", function(config) {\n self.liveClassProxy = config;\n });\n this.communication.on(\"chat\", function(chat) {\n self.chat.messages = chat.messages;\n self.chat.truncated = chat.truncated;\n if (!self.chat.open) self.chat[\"new\"] = true;\n });\n this.communication.join(this.getRole());\n this.communication.on(\"connected\", function(state) {\n self.states.connectedToNetwork = state;\n });\n this.componentKey++;\n return [\n 2\n ];\n }\n });\n /*\n setTimeout(() => {\n self.communication = new Comm2(\n this.id,\n this.room.data.meta.defaultNumberOfRooms,\n this.stationName\n );\n\n self.communication.on(\"update\", (config: any) => {\n self.liveClassProxy = config.data;\n });\n\n self.liveClassProxy = self.communication.getDoc();\n self.states.connectedToNetwork = true;\n\n self.componentKey++;\n }, Math.random() * 1000 + 1000);\n */ }).apply(this);\n },\n saveClass: function(configuration) {\n this.$refs.Settings.close = true;\n this.configuration.data = (0, _utils.clone)(configuration);\n this.data = (0, _utils.clone)(configuration);\n this.database.update((0, _utils.clone)(this.configuration));\n this.scrapeModules();\n },\n usersInRoom: function(name) {\n var users = [];\n for(var id in this.liveClassProxy.users)if (this.liveClassProxy.users[id].room === name) {\n var displayName = this.liveClassProxy.users[id].displayName;\n users.push([\n displayName,\n this.peerID === id ? \"black\" : \"grey\"\n ]);\n }\n return users;\n },\n gotoRoom: function(name) {\n var _this_communication;\n (_this_communication = this.communication) === null || _this_communication === void 0 ? void 0 : _this_communication.gotoRoom(name);\n },\n addRoom: function() {\n var _this_communication;\n (_this_communication = this.communication) === null || _this_communication === void 0 ? void 0 : _this_communication.addRoom();\n },\n deleteClass: function() {\n this.database.drop(this.configuration.id);\n window.location.search = \"\";\n },\n updateClass: function(config) {\n this.data = (0, _utils.clone)(config.data);\n },\n sendMessage: function(message) {\n this.communication.sendMessage(message);\n },\n setStationName: function() {\n var _this = this;\n var isValid = this.stationNameRules.every(function(rule) {\n return rule(_this.stationNameInput) === true;\n });\n if (!isValid) return; // If validation fails, do not submit\n sessionStorage.setItem(\"station_\".concat(this.id), this.stationNameInput);\n window.location.reload();\n },\n isNameTaken: function(name) {\n if (!this.liveClassProxy) return false;\n return Object.keys(this.liveClassProxy.rooms).includes(\"Station \" + name);\n }\n },\n components: {\n Chat: (0, _chatDefault.default),\n Checks: (0, _checksDefault.default),\n Settings: (0, _settingsVueDefault.default),\n Modules: (0, _modulesVueDefault.default)\n }\n};\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"../components/Settings.vue\":\"cQYe1\",\"../components/Chat\":\"gG9AF\",\"../components/Checks\":\"jDGIL\",\"../components/Modules.vue\":\"dF9bs\",\"../ts/Database\":\"7Aug2\",\"../ts/Utils\":\"2pUoQ\",\"vue\":\"gHobw\",\"../ts/Peer\":\"lORf0\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"cQYe1\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"432a7584d7139325\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"acf54a6d932e33b3\").render;\n require(\"d739e473dd581a3\")[\"default\"](script);\n script.__scopeId = \"data-v-ef7400\";\n script.__file = \"Settings.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"432a7584d7139325\":\"3sglf\",\"acf54a6d932e33b3\":\"glH5D\",\"d739e473dd581a3\":\"1Kxbh\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"3sglf\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _mainVue = require(\"./Settings/Main.vue\");\nvar _mainVueDefault = parcelHelpers.interopDefault(_mainVue);\nvar _membersVue = require(\"./Settings/Members.vue\");\nvar _membersVueDefault = parcelHelpers.interopDefault(_membersVue);\nvar _modulesVue = require(\"./Settings/Modules.vue\");\nvar _modulesVueDefault = parcelHelpers.interopDefault(_modulesVue);\nvar _stationsVue = require(\"./Settings/Stations.vue\");\nvar _stationsVueDefault = parcelHelpers.interopDefault(_stationsVue);\nvar _shareVue = require(\"./Settings/Share.vue\");\nvar _shareVueDefault = parcelHelpers.interopDefault(_shareVue);\nexports.default = {\n name: \"Settings\",\n props: {\n config: {\n type: Object,\n required: true\n },\n scrapedModules: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n emits: [\n \"close\",\n \"saveClass\",\n \"deleteClass\",\n \"updateClass\"\n ],\n data: function() {\n return {\n tab: 0,\n configClone: JSON.parse(JSON.stringify(this.config)),\n configChanged: false\n };\n },\n methods: {\n updateModules: function() {\n console.warn(\"updateModules\", this.scrapedModules);\n },\n saveClass: function() {\n this.$emit(\"saveClass\", this.config);\n this.configClone = JSON.parse(JSON.stringify(this.config));\n this.configChanged = false;\n },\n deleteClass: function() {\n this.$emit(\"deleteClass\");\n },\n updateClass: function() {\n this.$emit(\"updateClass\", this.config);\n },\n updateMembers: function(members) {\n this.config.members = members;\n }\n },\n watch: {\n config: {\n handler: function() {\n if (JSON.stringify(this.config) !== JSON.stringify(this.configClone)) this.configChanged = true;\n else this.configChanged = false;\n },\n deep: true\n }\n },\n components: {\n Main: (0, _mainVueDefault.default),\n Members: (0, _membersVueDefault.default),\n Modules: (0, _modulesVueDefault.default),\n Stations: (0, _stationsVueDefault.default),\n Share: (0, _shareVueDefault.default)\n }\n};\n\n},{\"./Settings/Main.vue\":\"7t7Iv\",\"./Settings/Members.vue\":\"i6sS6\",\"./Settings/Modules.vue\":\"bvPNn\",\"./Settings/Stations.vue\":\"kU4x6\",\"./Settings/Share.vue\":\"cnYD5\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7t7Iv\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"eddb777e63f5a3fd\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"65d6e76a0f119f60\").render;\n require(\"ce325ba857e3e6e9\")[\"default\"](script);\n script.__scopeId = \"data-v-2cb2d4\";\n script.__file = \"Main.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"eddb777e63f5a3fd\":\"9v7vy\",\"65d6e76a0f119f60\":\"7PY3l\",\"ce325ba857e3e6e9\":\"b3AKA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"9v7vy\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.default = {\n name: \"Settings-Main\",\n props: {\n config: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n return {};\n }\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"7PY3l\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_text_field = (0, _vue.resolveComponent)(\"v-text-field\");\n var _component_v_textarea = (0, _vue.resolveComponent)(\"v-textarea\");\n var _component_v_checkbox = (0, _vue.resolveComponent)(\"v-checkbox\");\n return (0, _vue.openBlock)(), (0, _vue.createElementBlock)((0, _vue.Fragment), null, [\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.name,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function($event) {\n return $props.config.name = $event;\n }),\n counter: 20,\n label: \"Class Name\",\n outlined: \"\",\n required: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.meta.logo,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = function($event) {\n return $props.config.meta.logo = $event;\n }),\n label: \"Logo URL\",\n outlined: \"\",\n required: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_textarea, {\n modelValue: $props.config.meta.description,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = function($event) {\n return $props.config.meta.description = $event;\n }),\n filled: \"\",\n label: \"Description\",\n \"auto-grow\": \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_text_field, {\n modelValue: $props.config.meta.defaultNumberOfRooms,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = function($event) {\n return $props.config.meta.defaultNumberOfRooms = $event;\n }),\n label: \"Default number of rooms (optional)\",\n type: \"number\",\n outlined: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ]),\n (0, _vue.createVNode)(_component_v_checkbox, {\n modelValue: $props.config.meta.selfAssign,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = function($event) {\n return $props.config.meta.selfAssign = $event;\n }),\n label: \"Enable self-assignment\",\n outlined: \"\",\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ])\n ], 64);\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"b3AKA\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"i6sS6\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"8183a8c52866718d\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"4e4f28fd8f5235db\").render;\n require(\"28a9b2213a398f71\")[\"default\"](script);\n script.__scopeId = \"data-v-2477c6\";\n script.__file = \"Members.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"8183a8c52866718d\":\"dJAmk\",\"4e4f28fd8f5235db\":\"exQDe\",\"28a9b2213a398f71\":\"eFIHf\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"dJAmk\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../../ts/Utils\");\nexports.default = {\n name: \"Settings-Members\",\n emits: [\n \"updateMembers\"\n ],\n props: {\n members: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n var teacher = this.members.teacher.join(\", \");\n return {\n url: window.location.toString(),\n teacher: teacher\n };\n },\n methods: {\n copyUrl: function() {\n (0, _utils.copyToClipboard)(this.url);\n }\n },\n watch: {\n teacher: function() {\n this.$emit(\"updateMembers\", {\n teacher: this.teacher.split(\",\").map(function(s) {\n return s.trim();\n }).filter(function(s) {\n return s.length > 0;\n }),\n student: this.members.student\n });\n }\n }\n};\n\n},{\"../../ts/Utils\":\"2pUoQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"exQDe\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"render\", function() {\n return render;\n});\nvar _vue = require(\"vue\");\nvar _hoisted_1 = [\n \"href\"\n];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_v_container = (0, _vue.resolveComponent)(\"v-container\");\n var _component_v_btn = (0, _vue.resolveComponent)(\"v-btn\");\n var _component_v_alert = (0, _vue.resolveComponent)(\"v-alert\");\n var _component_v_divider = (0, _vue.resolveComponent)(\"v-divider\");\n var _component_v_textarea = (0, _vue.resolveComponent)(\"v-textarea\");\n return (0, _vue.openBlock)(), (0, _vue.createElementBlock)((0, _vue.Fragment), null, [\n (0, _vue.createVNode)(_component_v_alert, {\n outlined: \"\",\n dense: \"\",\n type: \"info\",\n text: \"Invite your users in by sharing this link: \"\n }, {\n append: (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_btn, {\n icon: \"mdi-content-copy\",\n onClick: $options.copyUrl,\n variant: \"text\"\n }, null, 8, [\n \"onClick\"\n ])\n ];\n }),\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createVNode)(_component_v_container, null, {\n \"default\": (0, _vue.withCtx)(function() {\n return [\n (0, _vue.createElementVNode)(\"a\", {\n href: $data.url\n }, (0, _vue.toDisplayString)($data.url), 9, _hoisted_1)\n ];\n }),\n _: 1\n })\n ];\n }),\n _: 1\n }),\n (0, _vue.createVNode)(_component_v_divider),\n (0, _vue.createVNode)(_component_v_textarea, {\n label: \"List of teacher ids\",\n \"auto-grow\": \"\",\n variant: \"outlined\",\n rows: \"3\",\n \"row-height\": \"25\",\n shaped: \"\",\n style: {\n \"margin-top\": \"2rem\"\n },\n modelValue: $data.teacher,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function($event) {\n return $data.teacher = $event;\n }),\n disabled: $props.writeProtection\n }, null, 8, [\n \"modelValue\",\n \"disabled\"\n ])\n ], 64);\n}\n\n},{\"vue\":\"gHobw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"eFIHf\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar NOOP = function() {};\nexports.default = function(script) {};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"bvPNn\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar script;\nvar initialize = function() {\n script = require(\"be0e44b9a4ffa7e0\");\n if (script.__esModule) script = script[\"default\"];\n script.render = require(\"a7c9e031a7a35109\").render;\n require(\"e5ec21d433d7ac4d\")[\"default\"](script);\n script.__scopeId = \"data-v-16d12c\";\n script.__file = \"Modules.vue\";\n};\ninitialize();\nexports.default = script;\n\n},{\"be0e44b9a4ffa7e0\":\"5NqSB\",\"a7c9e031a7a35109\":\"6NEqS\",\"e5ec21d433d7ac4d\":\"ezDw8\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"5NqSB\":[function(require,module,exports) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _asyncToGenerator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _tsGenerator = require(\"@swc/helpers/_/_ts_generator\");\nvar _utils = require(\"../../ts/Utils\");\nvar _vuedraggable = require(\"vuedraggable\");\nvar _vuedraggableDefault = parcelHelpers.interopDefault(_vuedraggable);\nvar _moduleVue = require(\"./Module.vue\");\nvar _moduleVueDefault = parcelHelpers.interopDefault(_moduleVue);\nexports.default = {\n name: \"Settings-Modules\",\n props: {\n config: {\n type: Object,\n required: true\n },\n scrapedModules: {\n type: Object,\n required: true\n },\n writeProtection: {\n type: Boolean,\n required: true\n }\n },\n data: function() {\n var errors = [];\n for(var i = 0; i < this.config.modules.length; i++)errors.push({\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\"\n });\n return {\n moduleImportUrl: \"\",\n errors: errors\n };\n },\n methods: {\n update: function() {\n return (0, _asyncToGenerator._)(function() {\n var i, module;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n this.scrapedModules = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < this.config.modules.length)) return [\n 3,\n 4\n ];\n return [\n 4,\n (0, _utils.scrapeModule)(this.config.modules[i])\n ];\n case 2:\n module = _state.sent();\n this.scrapedModules.push(module);\n _state.label = 3;\n case 3:\n i++;\n return [\n 3,\n 1\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n }).apply(this);\n },\n move: function(event) {\n var element = this.scrapedModules[event.oldIndex];\n this.scrapedModules[event.oldIndex] = this.scrapedModules[event.newIndex];\n this.scrapedModules[event.newIndex] = element;\n return true;\n },\n validate_config: function(i) {\n return this.errors[i].config === \"\" && this.errors[i].studentConfig === \"\" && this.errors[i].teacherConfig === \"\" && this.errors[i].stationConfig === \"\";\n },\n validate_url: function(url) {\n return (0, _utils.validateUrl)(url);\n },\n deleteModule: function(index) {\n this.config.modules.splice(index, 1);\n this.scrapedModules.splice(index, 1);\n this.errors.splice(index, 1);\n },\n loadURL: function() {\n return (0, _asyncToGenerator._)(function() {\n var module, scrapedModule;\n return (0, _tsGenerator._)(this, function(_state) {\n switch(_state.label){\n case 0:\n module = {\n url: this.moduleImportUrl,\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\",\n width: \"full\",\n height: \"tall\"\n };\n return [\n 4,\n (0, _utils.scrapeModule)(module)\n ];\n case 1:\n scrapedModule = _state.sent();\n this.config.modules.push(module);\n this.scrapedModules.push(scrapedModule);\n this.errors.push({\n config: \"\",\n studentConfig: \"\",\n teacherConfig: \"\",\n stationConfig: \"\",\n showInCustom: \"\"\n });\n this.moduleImportUrl = \"\";\n return [\n 2\n ];\n }\n });\n }).apply(this);\n }\n },\n components: {\n Module: (0, _moduleVueDefault.default),\n draggable: (0, _vuedraggableDefault.default)\n }\n};\n\n},{\"@swc/helpers/_/_async_to_generator\":\"2ftfd\",\"@swc/helpers/_/_ts_generator\":\"6UgKg\",\"../../ts/Utils\":\"2pUoQ\",\"vuedraggable\":\"eLtOA\",\"./Module.vue\":\"fpnyR\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"7qSmP\"}],\"eLtOA\":[function(require,module,exports) {\nvar _typeOf = require(\"@swc/helpers/_/_type_of\");\n(function webpackUniversalModuleDefinition(root, factory) {\n module.exports = factory(require(\"994aba414f6e11f\"), require(\"f2b29fe3c2c19cbd\"));\n})(typeof self !== \"undefined\" ? self : undefined, function(__WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_a352__) {\n return /******/ function(modules) {\n /******/ // The module cache\n /******/ var installedModules = {};\n /******/ /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ /******/ // Check if module is in cache\n /******/ if (installedModules[moduleId]) /******/ return installedModules[moduleId].exports;\n /******/ // Create a new module (and put it into the cache)\n /******/ var module1 = installedModules[moduleId] = {\n /******/ i: moduleId,\n /******/ l: false,\n /******/ exports: {}\n };\n /******/ /******/ // Execute the module function\n /******/ modules[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);\n /******/ /******/ // Flag the module as loaded\n /******/ module1.l = true;\n /******/ /******/ // Return the exports of the module\n /******/ return module1.exports;\n /******/ }\n /******/ /******/ /******/ // expose the modules object (__webpack_modules__)\n /******/ __webpack_require__.m = modules;\n /******/ /******/ // expose the module cache\n /******/ __webpack_require__.c = installedModules;\n /******/ /******/ // define getter function for harmony exports\n /******/ __webpack_require__.d = function(exports, name, getter) {\n /******/ if (!__webpack_require__.o(exports, name)) /******/ Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/ };\n /******/ /******/ // define __esModule on exports\n /******/ __webpack_require__.r = function(exports) {\n /******/ if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) /******/ Object.defineProperty(exports, Symbol.toStringTag, {\n value: \"Module\"\n });\n /******/ Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /******/ };\n /******/ /******/ // create a fake namespace object\n /******/ // mode & 1: value is a module id, require it\n /******/ // mode & 2: merge all properties of value into the ns\n /******/ // mode & 4: return value when already ns object\n /******/ // mode & 8|1: behave like require\n /******/ __webpack_require__.t = function(value, mode) {\n /******/ if (mode & 1) value = __webpack_require__(value);\n /******/ if (mode & 8) return value;\n /******/ if (mode & 4 && typeof value === \"object\" && value && value.__esModule) return value;\n /******/ var ns = Object.create(null);\n /******/ __webpack_require__.r(ns);\n /******/ Object.defineProperty(ns, \"default\", {\n enumerable: true,\n value: value\n });\n /******/ if (mode & 2 && typeof value != \"string\") for(var key in value)__webpack_require__.d(ns, key, (function(key) {\n return value[key];\n }).bind(null, key));\n /******/ return ns;\n /******/ };\n /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = function(module1) {\n /******/ var getter = module1 && module1.__esModule ? /******/ function getDefault() {\n return module1[\"default\"];\n } : /******/ function getModuleExports() {\n return module1;\n };\n /******/ __webpack_require__.d(getter, \"a\", getter);\n /******/ return getter;\n /******/ };\n /******/ /******/ // Object.prototype.hasOwnProperty.call\n /******/ __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/ /******/ // __webpack_public_path__\n /******/ __webpack_require__.p = \"\";\n /******/ /******/ /******/ // Load entry module and return exports\n /******/ return __webpack_require__(__webpack_require__.s = \"fb15\");\n /******/ }({\n /***/ \"00ee\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var TO_STRING_TAG = wellKnownSymbol(\"toStringTag\");\n var test = {};\n test[TO_STRING_TAG] = \"z\";\n module1.exports = String(test) === \"[object z]\";\n /***/ },\n /***/ \"0366\": /***/ function(module1, exports, __webpack_require__) {\n var aFunction = __webpack_require__(\"1c0b\");\n // optional / simple context binding\n module1.exports = function(fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch(length){\n case 0:\n return function() {\n return fn.call(that);\n };\n case 1:\n return function(a) {\n return fn.call(that, a);\n };\n case 2:\n return function(a, b) {\n return fn.call(that, a, b);\n };\n case 3:\n return function(a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function() {\n return fn.apply(that, arguments);\n };\n };\n /***/ },\n /***/ \"057f\": /***/ function(module1, exports, __webpack_require__) {\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var nativeGetOwnPropertyNames = __webpack_require__(\"241c\").f;\n var toString = {}.toString;\n var windowNames = typeof window == \"object\" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n var getWindowNames = function getWindowNames(it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n };\n // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n module1.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == \"[object Window]\" ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it));\n };\n /***/ },\n /***/ \"06cf\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\n var createPropertyDescriptor = __webpack_require__(\"5c6c\");\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var toPrimitive = __webpack_require__(\"c04e\");\n var has = __webpack_require__(\"5135\");\n var IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) {}\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n };\n /***/ },\n /***/ \"0cfb\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var fails = __webpack_require__(\"d039\");\n var createElement = __webpack_require__(\"cc12\");\n // Thank's IE8 for his funny defineProperty\n module1.exports = !DESCRIPTORS && !fails(function() {\n return Object.defineProperty(createElement(\"div\"), \"a\", {\n get: function get() {\n return 7;\n }\n }).a != 7;\n });\n /***/ },\n /***/ \"13d5\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var $reduce = __webpack_require__(\"d58f\").left;\n var arrayMethodIsStrict = __webpack_require__(\"a640\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var STRICT_METHOD = arrayMethodIsStrict(\"reduce\");\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"reduce\", {\n 1: 0\n });\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n $({\n target: \"Array\",\n proto: true,\n forced: !STRICT_METHOD || !USES_TO_LENGTH\n }, {\n reduce: function reduce(callbackfn /* , initialValue */ ) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /***/ },\n /***/ \"14c3\": /***/ function(module1, exports, __webpack_require__) {\n var classof = __webpack_require__(\"c6b6\");\n var regexpExec = __webpack_require__(\"9263\");\n // `RegExpExec` abstract operation\n // https://tc39.github.io/ecma262/#sec-regexpexec\n module1.exports = function(R, S) {\n var exec = R.exec;\n if (typeof exec === \"function\") {\n var result = exec.call(R, S);\n if (typeof result !== \"object\") throw TypeError(\"RegExp exec method returned something other than an Object or null\");\n return result;\n }\n if (classof(R) !== \"RegExp\") throw TypeError(\"RegExp#exec called on incompatible receiver\");\n return regexpExec.call(R, S);\n };\n /***/ },\n /***/ \"159b\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var DOMIterables = __webpack_require__(\"fdbc\");\n var forEach = __webpack_require__(\"17c2\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n for(var COLLECTION_NAME in DOMIterables){\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, \"forEach\", forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n }\n /***/ },\n /***/ \"17c2\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $forEach = __webpack_require__(\"b727\").forEach;\n var arrayMethodIsStrict = __webpack_require__(\"a640\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var STRICT_METHOD = arrayMethodIsStrict(\"forEach\");\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"forEach\");\n // `Array.prototype.forEach` method implementation\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n module1.exports = !STRICT_METHOD || !USES_TO_LENGTH ? function forEach(callbackfn /* , thisArg */ ) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n } : [].forEach;\n /***/ },\n /***/ \"1be4\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n module1.exports = getBuiltIn(\"document\", \"documentElement\");\n /***/ },\n /***/ \"1c0b\": /***/ function(module1, exports) {\n module1.exports = function(it) {\n if (typeof it != \"function\") throw TypeError(String(it) + \" is not a function\");\n return it;\n };\n /***/ },\n /***/ \"1c7e\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var ITERATOR = wellKnownSymbol(\"iterator\");\n var SAFE_CLOSING = false;\n try {\n var called = 0;\n var iteratorWithReturn = {\n next: function next() {\n return {\n done: !!called++\n };\n },\n \"return\": function() {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function() {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function() {\n throw 2;\n });\n } catch (error) {}\n module1.exports = function(exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function() {\n return {\n next: function next() {\n return {\n done: ITERATION_SUPPORT = true\n };\n }\n };\n };\n exec(object);\n } catch (error) {}\n return ITERATION_SUPPORT;\n };\n /***/ },\n /***/ \"1d80\": /***/ function(module1, exports) {\n // `RequireObjectCoercible` abstract operation\n // https://tc39.github.io/ecma262/#sec-requireobjectcoercible\n module1.exports = function(it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n };\n /***/ },\n /***/ \"1dde\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var V8_VERSION = __webpack_require__(\"2d00\");\n var SPECIES = wellKnownSymbol(\"species\");\n module1.exports = function(METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function() {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function() {\n return {\n foo: 1\n };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n };\n /***/ },\n /***/ \"23cb\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var max = Math.max;\n var min = Math.min;\n // Helper for a popular repeating case of the spec:\n // Let integer be ? ToInteger(index).\n // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\n module1.exports = function(index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n };\n /***/ },\n /***/ \"23e7\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var redefine = __webpack_require__(\"6eeb\");\n var setGlobal = __webpack_require__(\"ce4e\");\n var copyConstructorProperties = __webpack_require__(\"e893\");\n var isForced = __webpack_require__(\"94ca\");\n /*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/ module1.exports = function(options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) target = global;\n else if (STATIC) target = global[TARGET] || setGlobal(TARGET, {});\n else target = (global[TARGET] || {}).prototype;\n if (target) for(key in source){\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? \".\" : \"#\") + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if ((typeof sourceProperty === \"undefined\" ? \"undefined\" : (0, _typeOf._)(sourceProperty)) === (typeof targetProperty === \"undefined\" ? \"undefined\" : (0, _typeOf._)(targetProperty))) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || targetProperty && targetProperty.sham) createNonEnumerableProperty(sourceProperty, \"sham\", true);\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n };\n /***/ },\n /***/ \"241c\": /***/ function(module1, exports, __webpack_require__) {\n var internalObjectKeys = __webpack_require__(\"ca84\");\n var enumBugKeys = __webpack_require__(\"7839\");\n var hiddenKeys = enumBugKeys.concat(\"length\", \"prototype\");\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n };\n /***/ },\n /***/ \"25f0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var redefine = __webpack_require__(\"6eeb\");\n var anObject = __webpack_require__(\"825a\");\n var fails = __webpack_require__(\"d039\");\n var flags = __webpack_require__(\"ad6d\");\n var TO_STRING = \"toString\";\n var RegExpPrototype = RegExp.prototype;\n var nativeToString = RegExpPrototype[TO_STRING];\n var NOT_GENERIC = fails(function() {\n return nativeToString.call({\n source: \"a\",\n flags: \"b\"\n }) != \"/a/b\";\n });\n // FF44- RegExp#toString has a wrong name\n var INCORRECT_NAME = nativeToString.name != TO_STRING;\n // `RegExp.prototype.toString` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\n if (NOT_GENERIC || INCORRECT_NAME) redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !(\"flags\" in RegExpPrototype) ? flags.call(R) : rf);\n return \"/\" + p + \"/\" + f;\n }, {\n unsafe: true\n });\n /***/ },\n /***/ \"2ca0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\n var toLength = __webpack_require__(\"50c4\");\n var notARegExp = __webpack_require__(\"5a34\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n var correctIsRegExpLogic = __webpack_require__(\"ab13\");\n var IS_PURE = __webpack_require__(\"c430\");\n var nativeStartsWith = \"\".startsWith;\n var min = Math.min;\n var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic(\"startsWith\");\n // https://github.com/zloirock/core-js/pull/702\n var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function() {\n var descriptor = getOwnPropertyDescriptor(String.prototype, \"startsWith\");\n return descriptor && !descriptor.writable;\n }();\n // `String.prototype.startsWith` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n $({\n target: \"String\",\n proto: true,\n forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC\n }, {\n startsWith: function startsWith(searchString /* , position = 0 */ ) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search;\n }\n });\n /***/ },\n /***/ \"2d00\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var userAgent = __webpack_require__(\"342f\");\n var process = global.process;\n var versions = process && process.versions;\n var v8 = versions && versions.v8;\n var match, version;\n if (v8) {\n match = v8.split(\".\");\n version = match[0] + match[1];\n } else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n }\n module1.exports = version && +version;\n /***/ },\n /***/ \"342f\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n module1.exports = getBuiltIn(\"navigator\", \"userAgent\") || \"\";\n /***/ },\n /***/ \"35a1\": /***/ function(module1, exports, __webpack_require__) {\n var classof = __webpack_require__(\"f5df\");\n var Iterators = __webpack_require__(\"3f8c\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var ITERATOR = wellKnownSymbol(\"iterator\");\n module1.exports = function(it) {\n if (it != undefined) return it[ITERATOR] || it[\"@@iterator\"] || Iterators[classof(it)];\n };\n /***/ },\n /***/ \"37e8\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var anObject = __webpack_require__(\"825a\");\n var objectKeys = __webpack_require__(\"df75\");\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n module1.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while(length > index)definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n };\n /***/ },\n /***/ \"3bbe\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n module1.exports = function(it) {\n if (!isObject(it) && it !== null) throw TypeError(\"Can't set \" + String(it) + \" as a prototype\");\n return it;\n };\n /***/ },\n /***/ \"3ca3\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var charAt = __webpack_require__(\"6547\").charAt;\n var InternalStateModule = __webpack_require__(\"69f3\");\n var defineIterator = __webpack_require__(\"7dd0\");\n var STRING_ITERATOR = \"String Iterator\";\n var setInternalState = InternalStateModule.set;\n var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n // `String.prototype[@@iterator]` method\n // https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\n defineIterator(String, \"String\", function(iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n // `%StringIteratorPrototype%.next` method\n // https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n }, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return {\n value: undefined,\n done: true\n };\n point = charAt(string, index);\n state.index += point.length;\n return {\n value: point,\n done: false\n };\n });\n /***/ },\n /***/ \"3f8c\": /***/ function(module1, exports) {\n module1.exports = {};\n /***/ },\n /***/ \"4160\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var forEach = __webpack_require__(\"17c2\");\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n $({\n target: \"Array\",\n proto: true,\n forced: [].forEach != forEach\n }, {\n forEach: forEach\n });\n /***/ },\n /***/ \"428f\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n module1.exports = global;\n /***/ },\n /***/ \"44ad\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n var classof = __webpack_require__(\"c6b6\");\n var split = \"\".split;\n // fallback for non-array-like ES3 and non-enumerable old V8 strings\n module1.exports = fails(function() {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object(\"z\").propertyIsEnumerable(0);\n }) ? function(it) {\n return classof(it) == \"String\" ? split.call(it, \"\") : Object(it);\n } : Object;\n /***/ },\n /***/ \"44d2\": /***/ function(module1, exports, __webpack_require__) {\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var create = __webpack_require__(\"7c73\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var UNSCOPABLES = wellKnownSymbol(\"unscopables\");\n var ArrayPrototype = Array.prototype;\n // Array.prototype[@@unscopables]\n // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\n if (ArrayPrototype[UNSCOPABLES] == undefined) definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n // add a key to Array.prototype[@@unscopables]\n module1.exports = function(key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n };\n /***/ },\n /***/ \"44e7\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n var classof = __webpack_require__(\"c6b6\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var MATCH = wellKnownSymbol(\"match\");\n // `IsRegExp` abstract operation\n // https://tc39.github.io/ecma262/#sec-isregexp\n module1.exports = function(it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == \"RegExp\");\n };\n /***/ },\n /***/ \"4930\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n module1.exports = !!Object.getOwnPropertySymbols && !fails(function() {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n });\n /***/ },\n /***/ \"4d64\": /***/ function(module1, exports, __webpack_require__) {\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var toLength = __webpack_require__(\"50c4\");\n var toAbsoluteIndex = __webpack_require__(\"23cb\");\n // `Array.prototype.{ indexOf, includes }` methods implementation\n var createMethod = function createMethod(IS_INCLUDES) {\n return function($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while(length > index){\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n }\n else for(; length > index; index++){\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n }\n return !IS_INCLUDES && -1;\n };\n };\n module1.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n };\n /***/ },\n /***/ \"4de4\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var $filter = __webpack_require__(\"b727\").filter;\n var arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\n var arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport(\"filter\");\n // Edge 14- issue\n var USES_TO_LENGTH = arrayMethodUsesToLength(\"filter\");\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n // with adding support of @@species\n $({\n target: \"Array\",\n proto: true,\n forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH\n }, {\n filter: function filter(callbackfn /* , thisArg */ ) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n });\n /***/ },\n /***/ \"4df4\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var bind = __webpack_require__(\"0366\");\n var toObject = __webpack_require__(\"7b0b\");\n var callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\n var isArrayIteratorMethod = __webpack_require__(\"e95a\");\n var toLength = __webpack_require__(\"50c4\");\n var createProperty = __webpack_require__(\"8418\");\n var getIteratorMethod = __webpack_require__(\"35a1\");\n // `Array.from` method implementation\n // https://tc39.github.io/ecma262/#sec-array.from\n module1.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */ ) {\n var O = toObject(arrayLike);\n var C = typeof this == \"function\" ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for(; !(step = next.call(iterator)).done; index++){\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [\n step.value,\n index\n ], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for(; length > index; index++){\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n };\n /***/ },\n /***/ \"4fad\": /***/ function(module1, exports, __webpack_require__) {\n var $ = __webpack_require__(\"23e7\");\n var $entries = __webpack_require__(\"6f53\").entries;\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n $({\n target: \"Object\",\n stat: true\n }, {\n entries: function entries(O) {\n return $entries(O);\n }\n });\n /***/ },\n /***/ \"50c4\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var min = Math.min;\n // `ToLength` abstract operation\n // https://tc39.github.io/ecma262/#sec-tolength\n module1.exports = function(argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n };\n /***/ },\n /***/ \"5135\": /***/ function(module1, exports) {\n var hasOwnProperty = {}.hasOwnProperty;\n module1.exports = function(it, key) {\n return hasOwnProperty.call(it, key);\n };\n /***/ },\n /***/ \"5319\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\n var anObject = __webpack_require__(\"825a\");\n var toObject = __webpack_require__(\"7b0b\");\n var toLength = __webpack_require__(\"50c4\");\n var toInteger = __webpack_require__(\"a691\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n var advanceStringIndex = __webpack_require__(\"8aa5\");\n var regExpExec = __webpack_require__(\"14c3\");\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n var SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\n var SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n var maybeToString = function maybeToString(it) {\n return it === undefined ? it : String(it);\n };\n // @@replace logic\n fixRegExpWellKnownSymbolLogic(\"replace\", 2, function(REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? \"$\" : \"$0\";\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined ? replacer.call(searchValue, O, replaceValue) : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function(regexp, replaceValue) {\n if (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0 || typeof replaceValue === \"string\" && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === \"function\";\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while(true){\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === \"\") rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = \"\";\n var nextSourcePosition = 0;\n for(var i = 0; i < results.length; i++){\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for(var j = 1; j < result.length; j++)captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [\n matched\n ].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function(match, ch) {\n var capture;\n switch(ch.charAt(0)){\n case \"$\":\n return \"$\";\n case \"&\":\n return matched;\n case \"`\":\n return str.slice(0, position);\n case \"'\":\n return str.slice(tailPos);\n case \"<\":\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default:\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? \"\" : capture;\n });\n }\n });\n /***/ },\n /***/ \"5692\": /***/ function(module1, exports, __webpack_require__) {\n var IS_PURE = __webpack_require__(\"c430\");\n var store = __webpack_require__(\"c6cd\");\n (module1.exports = function(key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n })(\"versions\", []).push({\n version: \"3.6.5\",\n mode: IS_PURE ? \"pure\" : \"global\",\n copyright: \"\\xa9 2020 Denis Pushkarev (zloirock.ru)\"\n });\n /***/ },\n /***/ \"56ef\": /***/ function(module1, exports, __webpack_require__) {\n var getBuiltIn = __webpack_require__(\"d066\");\n var getOwnPropertyNamesModule = __webpack_require__(\"241c\");\n var getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\n var anObject = __webpack_require__(\"825a\");\n // all object keys, includes non-enumerable and symbols\n module1.exports = getBuiltIn(\"Reflect\", \"ownKeys\") || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n };\n /***/ },\n /***/ \"5a34\": /***/ function(module1, exports, __webpack_require__) {\n var isRegExp = __webpack_require__(\"44e7\");\n module1.exports = function(it) {\n if (isRegExp(it)) throw TypeError(\"The method doesn't accept regular expressions\");\n return it;\n };\n /***/ },\n /***/ \"5c6c\": /***/ function(module1, exports) {\n module1.exports = function(bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n };\n /***/ },\n /***/ \"5db7\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var flattenIntoArray = __webpack_require__(\"a2bf\");\n var toObject = __webpack_require__(\"7b0b\");\n var toLength = __webpack_require__(\"50c4\");\n var aFunction = __webpack_require__(\"1c0b\");\n var arraySpeciesCreate = __webpack_require__(\"65f0\");\n // `Array.prototype.flatMap` method\n // https://github.com/tc39/proposal-flatMap\n $({\n target: \"Array\",\n proto: true\n }, {\n flatMap: function flatMap(callbackfn /* , thisArg */ ) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n });\n /***/ },\n /***/ \"6547\": /***/ function(module1, exports, __webpack_require__) {\n var toInteger = __webpack_require__(\"a691\");\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n // `String.prototype.{ codePointAt, at }` methods implementation\n var createMethod = function createMethod(CONVERT_TO_STRING) {\n return function($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? \"\" : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n };\n module1.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n };\n /***/ },\n /***/ \"65f0\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n var isArray = __webpack_require__(\"e8b5\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var SPECIES = wellKnownSymbol(\"species\");\n // `ArraySpeciesCreate` abstract operation\n // https://tc39.github.io/ecma262/#sec-arrayspeciescreate\n module1.exports = function(originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == \"function\" && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n }\n return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n };\n /***/ },\n /***/ \"69f3\": /***/ function(module1, exports, __webpack_require__) {\n var NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\n var global = __webpack_require__(\"da84\");\n var isObject = __webpack_require__(\"861d\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var objectHas = __webpack_require__(\"5135\");\n var sharedKey = __webpack_require__(\"f772\");\n var hiddenKeys = __webpack_require__(\"d012\");\n var WeakMap = global.WeakMap;\n var set, get, has;\n var enforce = function enforce(it) {\n return has(it) ? get(it) : set(it, {});\n };\n var getterFor = function getterFor(TYPE) {\n return function(it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) throw TypeError(\"Incompatible receiver, \" + TYPE + \" required\");\n return state;\n };\n };\n if (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function set(it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function get(it) {\n return wmget.call(store, it) || {};\n };\n has = function has(it) {\n return wmhas.call(store, it);\n };\n } else {\n var STATE = sharedKey(\"state\");\n hiddenKeys[STATE] = true;\n set = function set(it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function get(it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function has(it) {\n return objectHas(it, STATE);\n };\n }\n module1.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n };\n /***/ },\n /***/ \"6eeb\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var has = __webpack_require__(\"5135\");\n var setGlobal = __webpack_require__(\"ce4e\");\n var inspectSource = __webpack_require__(\"8925\");\n var InternalStateModule = __webpack_require__(\"69f3\");\n var getInternalState = InternalStateModule.get;\n var enforceInternalState = InternalStateModule.enforce;\n var TEMPLATE = String(String).split(\"String\");\n (module1.exports = function(O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == \"function\") {\n if (typeof key == \"string\" && !has(value, \"name\")) createNonEnumerableProperty(value, \"name\", key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == \"string\" ? key : \"\");\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) delete O[key];\n else if (!noTargetGet && O[key]) simple = true;\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n })(Function.prototype, \"toString\", function toString() {\n return typeof this == \"function\" && getInternalState(this).source || inspectSource(this);\n });\n /***/ },\n /***/ \"6f53\": /***/ function(module1, exports, __webpack_require__) {\n var DESCRIPTORS = __webpack_require__(\"83ab\");\n var objectKeys = __webpack_require__(\"df75\");\n var toIndexedObject = __webpack_require__(\"fc6a\");\n var propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n // `Object.{ entries, values }` methods implementation\n var createMethod = function createMethod(TO_ENTRIES) {\n return function(it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while(length > i){\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) result.push(TO_ENTRIES ? [\n key,\n O[key]\n ] : O[key]);\n }\n return result;\n };\n };\n module1.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n };\n /***/ },\n /***/ \"73d9\": /***/ function(module1, exports, __webpack_require__) {\n // this method was added to unscopables after implementation\n // in popular engines, so it's moved to a separate module\n var addToUnscopables = __webpack_require__(\"44d2\");\n addToUnscopables(\"flatMap\");\n /***/ },\n /***/ \"7418\": /***/ function(module1, exports) {\n exports.f = Object.getOwnPropertySymbols;\n /***/ },\n /***/ \"746f\": /***/ function(module1, exports, __webpack_require__) {\n var path = __webpack_require__(\"428f\");\n var has = __webpack_require__(\"5135\");\n var wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\n var defineProperty = __webpack_require__(\"9bf2\").f;\n module1.exports = function(NAME) {\n var Symbol1 = path.Symbol || (path.Symbol = {});\n if (!has(Symbol1, NAME)) defineProperty(Symbol1, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n };\n /***/ },\n /***/ \"7839\": /***/ function(module1, exports) {\n // IE8- don't enum bug keys\n module1.exports = [\n \"constructor\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"toLocaleString\",\n \"toString\",\n \"valueOf\"\n ];\n /***/ },\n /***/ \"7b0b\": /***/ function(module1, exports, __webpack_require__) {\n var requireObjectCoercible = __webpack_require__(\"1d80\");\n // `ToObject` abstract operation\n // https://tc39.github.io/ecma262/#sec-toobject\n module1.exports = function(argument) {\n return Object(requireObjectCoercible(argument));\n };\n /***/ },\n /***/ \"7c73\": /***/ function(module1, exports, __webpack_require__) {\n var anObject = __webpack_require__(\"825a\");\n var defineProperties = __webpack_require__(\"37e8\");\n var enumBugKeys = __webpack_require__(\"7839\");\n var hiddenKeys = __webpack_require__(\"d012\");\n var html = __webpack_require__(\"1be4\");\n var documentCreateElement = __webpack_require__(\"cc12\");\n var sharedKey = __webpack_require__(\"f772\");\n var GT = \">\";\n var LT = \"<\";\n var PROTOTYPE = \"prototype\";\n var SCRIPT = \"script\";\n var IE_PROTO = sharedKey(\"IE_PROTO\");\n var EmptyConstructor = function EmptyConstructor() {};\n var scriptTag = function scriptTag(content) {\n return LT + SCRIPT + GT + content + LT + \"/\" + SCRIPT + GT;\n };\n // Create object with fake `null` prototype: use ActiveX Object with cleared prototype\n var NullProtoObjectViaActiveX = function NullProtoObjectViaActiveX(activeXDocument) {\n activeXDocument.write(scriptTag(\"\"));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n };\n // Create object with fake `null` prototype: use iframe Object with cleared prototype\n var NullProtoObjectViaIFrame = function NullProtoObjectViaIFrame() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement(\"iframe\");\n var JS = \"java\" + SCRIPT + \":\";\n var iframeDocument;\n iframe.style.display = \"none\";\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag(\"document.F=Object\"));\n iframeDocument.close();\n return iframeDocument.F;\n };\n // Check for document.domain and active x support\n // No need to use active x approach when document.domain is not set\n // see https://github.com/es-shims/es5-shim/issues/150\n // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n // avoid IE GC bug\n var activeXDocument;\n var NullProtoObject = function NullProtoObject1() {\n try {\n /* global ActiveXObject */ activeXDocument = document.domain && new ActiveXObject(\"htmlfile\");\n } catch (error) {}\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while(length--)delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n };\n hiddenKeys[IE_PROTO] = true;\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n module1.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n };\n /***/ },\n /***/ \"7dd0\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var $ = __webpack_require__(\"23e7\");\n var createIteratorConstructor = __webpack_require__(\"9ed3\");\n var getPrototypeOf = __webpack_require__(\"e163\");\n var setPrototypeOf = __webpack_require__(\"d2bb\");\n var setToStringTag = __webpack_require__(\"d44e\");\n var createNonEnumerableProperty = __webpack_require__(\"9112\");\n var redefine = __webpack_require__(\"6eeb\");\n var wellKnownSymbol = __webpack_require__(\"b622\");\n var IS_PURE = __webpack_require__(\"c430\");\n var Iterators = __webpack_require__(\"3f8c\");\n var IteratorsCore = __webpack_require__(\"ae93\");\n var IteratorPrototype = IteratorsCore.IteratorPrototype;\n var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\n var ITERATOR = wellKnownSymbol(\"iterator\");\n var KEYS = \"keys\";\n var VALUES = \"values\";\n var ENTRIES = \"entries\";\n var returnThis = function returnThis() {\n return this;\n };\n module1.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n var getIterationMethod = function getIterationMethod(KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch(KIND){\n case KEYS:\n return function keys() {\n return new IteratorConstructor(this, KIND);\n };\n case VALUES:\n return function values() {\n return new IteratorConstructor(this, KIND);\n };\n case ENTRIES:\n return function entries() {\n return new IteratorConstructor(this, KIND);\n };\n }\n return function() {\n return new IteratorConstructor(this);\n };\n };\n var TO_STRING_TAG = NAME + \" Iterator\";\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype[\"@@iterator\"] || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == \"Array\" ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n else if (typeof CurrentIteratorPrototype[ITERATOR] != \"function\") createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() {\n return nativeIterator.call(this);\n };\n }\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n Iterators[NAME] = defaultIterator;\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) {\n for(KEY in methods)if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) redefine(IterablePrototype, KEY, methods[KEY]);\n } else $({\n target: NAME,\n proto: true,\n forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME\n }, methods);\n }\n return methods;\n };\n /***/ },\n /***/ \"7f9a\": /***/ function(module1, exports, __webpack_require__) {\n var global = __webpack_require__(\"da84\");\n var inspectSource = __webpack_require__(\"8925\");\n var WeakMap = global.WeakMap;\n module1.exports = typeof WeakMap === \"function\" && /native code/.test(inspectSource(WeakMap));\n /***/ },\n /***/ \"825a\": /***/ function(module1, exports, __webpack_require__) {\n var isObject = __webpack_require__(\"861d\");\n module1.exports = function(it) {\n if (!isObject(it)) throw TypeError(String(it) + \" is not an object\");\n return it;\n };\n /***/ },\n /***/ \"83ab\": /***/ function(module1, exports, __webpack_require__) {\n var fails = __webpack_require__(\"d039\");\n // Thank's IE8 for his funny defineProperty\n module1.exports = !fails(function() {\n return Object.defineProperty({}, 1, {\n get: function get() {\n return 7;\n }\n })[1] != 7;\n });\n /***/ },\n /***/ \"8418\": /***/ function(module1, exports, __webpack_require__) {\n \"use strict\";\n var toPrimitive = __webpack_require__(\"c04e\");\n var definePropertyModule = __webpack_require__(\"9bf2\");\n var createPropertyDescriptor = __webpack_require__(\"5c6c\");\n module1.exports = function(object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n };\n /***/ },\n /***/ \"861d\": /***/ function(module1, exports) {\n module1.exports = function(it) {\n return typeof it === \"object\" ? it !== null : typeof it === \"function\";\n };\n /***/ },\n /***/ \"8875\": /***/ function(module1, exports, __webpack_require__) {\n var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // addapted from the document.currentScript polyfill by Adam Miller\n // MIT license\n // source: https://github.com/amiller-gh/currentScript-polyfill\n // added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n (function(root, factory) {\n __WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = factory, __WEBPACK_AMD_DEFINE_RESULT__ = typeof __WEBPACK_AMD_DEFINE_FACTORY__ === \"function\" ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module1.exports = __WEBPACK_AMD_DEFINE_RESULT__);\n })(typeof self !== \"undefined\" ? self : this, function() {\n function getCurrentScript() {\n var descriptor = Object.getOwnPropertyDescriptor(document, \"currentScript\");\n // for chrome\n if (!descriptor && \"currentScript\" in document && document.currentScript) return document.currentScript;\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) return document.currentScript;\n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n } catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig, ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig, stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack), scriptLocation = stackDetails && stackDetails[1] || false, line = stackDetails && stackDetails[2] || false, currentLocation = document.location.href.replace(document.location.hash, \"\"), pageSource, inlineScriptSourceRegExp, inlineScriptSource, scripts = document.getElementsByTagName(\"script\"); // Live NodeList collection\n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp(\"(?:[^\\\\n]+?\\\\n){0,\" + (line - 2) + \"}[^<]*\n\n\n","import { Dexie, liveQuery } from 'dexie'\n\nimport { hashJsonObject } from './Utils'\n\nexport type DatabaseItem = {\n id: string\n timestamp: number\n data: any\n hash: string | null\n}\n\nfunction open(name: string, version?: number) {\n console.warn('indexedDB is disabled')\n}\n\nfunction deleteDatabase(name: string) {\n console.warn('indexedDB is disabled')\n}\n\nexport class Database {\n private db: Dexie\n private observables: any = {}\n\n constructor() {\n this.db = new Dexie('EdrysLite')\n\n this.db.version(2).stores({\n data: `\n &id,\n timestamp,\n data,\n hash`,\n })\n\n this.db\n .open()\n .then(function (db) {\n // Database opened successfully\n console.log('Database opened successfully')\n\n // Disable indexedDB for others\n // @ts-ignore\n window.indexedDB.open = open\n // @ts-ignore\n window.indexedDB.deleteDatabase = deleteDatabase\n })\n .catch(function (err) {\n console.warn('Database error: ' + err.message)\n })\n }\n\n getAll(): Promise {\n return this.db['data'].orderBy('timestamp').desc().toArray()\n }\n\n async exists(id: string): Promise {\n const item = await this.get(id)\n return item ? true : false\n }\n\n async get(id: string): Promise {\n return await this.db['data'].get(id)\n }\n\n put(config: DatabaseItem) {\n return this.db['data'].put(config)\n }\n\n update(config: DatabaseItem, withTimestamp: boolean = true) {\n if (withTimestamp) {\n config.timestamp = Date.now()\n }\n return this.put(config)\n }\n\n drop(id: string) {\n this.db['data'].delete(id)\n }\n\n async setProtection(id: string, on: boolean = true) {\n const classroom = await this.get(id)\n\n if (classroom) {\n classroom.hash = on ? await hashJsonObject(classroom.data) : null\n\n this.update(classroom, false)\n }\n }\n\n setObservable(id: string, callback: (result: any) => void) {\n if (this.observables[id]) {\n this.observables[id].unsubscribe()\n delete this.observables[id]\n }\n\n const db = this.db['data']\n const observable =\n id === '*'\n ? liveQuery(() => db.orderBy('timestamp').desc().toArray())\n : liveQuery(() => db.where('id').equals(id).first())\n\n this.observables[id] = observable.subscribe({\n next: (result) => callback(result),\n error: (err) => console.warn(err),\n })\n }\n\n deleteObservable(id: string) {\n if (this.observables[id]) {\n this.observables[id].unsubscribe()\n delete this.observables[id]\n }\n }\n}\n","/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 3.2.7, Wed Mar 20 2024\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n \n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nvar _global = typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n\nvar keys = Object.keys;\nvar isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n}\nfunction extend(obj, extension) {\n if (typeof extension !== 'object')\n return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n}\nvar getProto = Object.getPrototypeOf;\nvar _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction props(proto, extension) {\n if (typeof extension === 'function')\n extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n}\nvar defineProperty = Object.defineProperty;\nfunction setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n { value: functionOrGetSet, configurable: true, writable: true }, options));\n}\nfunction derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nfunction getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n}\nvar _slice = [].slice;\nfunction slice(args, start, end) {\n return _slice.call(args, start, end);\n}\nfunction override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\nfunction assert(b) {\n if (!b)\n throw new Error(\"Assertion Failed\");\n}\nfunction asap$1(fn) {\n if (_global.setImmediate)\n setImmediate(fn);\n else\n setTimeout(fn, 0);\n}\nfunction arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue)\n result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\nfunction tryCatch(fn, onerror, args) {\n try {\n fn.apply(null, args);\n }\n catch (ex) {\n onerror && onerror(ex);\n }\n}\nfunction getByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath))\n return obj[keyPath];\n if (!keyPath)\n return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\nfunction setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n obj.splice(currentKeyPath, 1);\n else\n delete obj[currentKeyPath];\n }\n else\n obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath)))\n obj.splice(keyPath, 1);\n else\n delete obj[keyPath];\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nfunction delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\nfunction shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m))\n rv[m] = obj[m];\n }\n return rv;\n}\nvar concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\nvar intrinsicTypeNames = \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\nvar intrinsicTypes = intrinsicTypeNames.map(function (t) { return _global[t]; });\narrayToObject(intrinsicTypeNames, function (x) { return [x, true]; });\nvar circularRefs = null;\nfunction deepClone(any) {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n var rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\nfunction innerDeepClone(any) {\n if (!any || typeof any !== 'object')\n return any;\n var rv = circularRefs && circularRefs.get(any);\n if (rv)\n return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n }\n else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n }\n else {\n var proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\nvar toString = {}.toString;\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nvar iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nvar getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nvar NO_CHAR_ARRAY = {};\nfunction getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike))\n return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done)\n a.push(x.value);\n return a;\n }\n if (arrayLike == null)\n return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--)\n a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--)\n a[i] = arguments[i];\n return a;\n}\nvar isAsyncFunction = typeof Symbol !== 'undefined'\n ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n : function () { return false; };\n\nvar debug = typeof location !== 'undefined' &&\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\nfunction setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\nvar libraryFilter = function () { return true; };\nvar NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\nfunction getErrorWithStack() {\n if (NEEDS_THROW_FOR_STACK)\n try {\n getErrorWithStack.arguments;\n throw new Error();\n }\n catch (e) {\n return e;\n }\n return new Error();\n}\nfunction prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack)\n return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(function (frame) { return \"\\n\" + frame; })\n .join('');\n}\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\nfunction DexieError(name, msg) {\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\nderive(DexieError).from(Error).extend({\n stack: {\n get: function () {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function () { return this.name + \": \" + this.message; }\n});\nfunction getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(function (key) { return failures[key].toString(); })\n .filter(function (v, i, s) { return s.indexOf(v) === i; })\n .join('\\n');\n}\nfunction ModifyError(msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\nfunction BulkError(msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(function (pos) { return failures[pos]; });\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\nvar errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\nvar BaseException = DexieError;\nvar exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n }\n else if (typeof msgOrInner === 'string') {\n this.message = \"\" + msgOrInner + (!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n }\n else if (typeof msgOrInner === 'object') {\n this.message = msgOrInner.name + \" \" + msgOrInner.message;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n}, {});\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\nvar exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfunction mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", { get: function () {\n return this.inner.stack;\n } });\n }\n return rv;\n}\nvar fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n\nfunction nop() { }\nfunction mirror(val) { return val; }\nfunction pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror)\n return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\nfunction callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\nfunction hookCreatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined)\n arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\nfunction hookDeletingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\nfunction hookUpdatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\nfunction reverseStoppableEventChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n if (f2.apply(this, arguments) === false)\n return false;\n return f1.apply(this, arguments);\n };\n}\nfunction promisableChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this, i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n\nvar INTERNAL = {};\nvar LONG_STACKS_CLIP_LIMIT = 100,\nMAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ?\n [] :\n (function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\nvar NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nvar patchGlobalPromise = !!resolvedGlobalPromise;\nvar stack_being_generated = false;\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n function () { resolvedGlobalPromise.then(physicalTick); }\n :\n _global.setImmediate ?\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n function () {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(function () {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n function () { setTimeout(physicalTick, 0); };\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\nvar isOutsideMicroTick = true,\nneedsNewPhysicalTick = true,\nunhandledErrors = [],\nrejectingErrors = [],\ncurrentFulfiller = null, rejectionMapper = mirror;\nvar globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(function (uh) {\n try {\n globalError(uh[0], uh[1]);\n }\n catch (e) { }\n });\n }\n};\nvar PSD = globalPSD;\nvar microtickQueue = [];\nvar numScheduledCalls = 0;\nvar tickFinalizers = [];\nfunction DexiePromise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this.onuncatched = nop;\n this._lib = false;\n var psd = (this._PSD = PSD);\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0;\n }\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL)\n throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n}\nvar thenProp = {\n get: function () {\n var psd = PSD, microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ?\n thenProp :\n {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n};\nprops(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1)\n return this.then(null, onRejected);\n var type = arguments[0], handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n })\n : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n onFinally();\n return value;\n }, function (err) {\n onFinally();\n return PromiseReject(err);\n });\n },\n stack: {\n get: function () {\n if (this._stack)\n return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack(this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null)\n this._stack = stack;\n return stack;\n }\n finally {\n stack_being_generated = false;\n }\n }\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ?\n new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\nglobalPSD.env = snapShot();\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\nprops(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments)\n .map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0)\n resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (!--remaining)\n resolve(values);\n }, reject); });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise)\n return value;\n if (value && typeof value.then === 'function')\n return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n });\n },\n PSD: {\n get: function () { return PSD; },\n set: function (value) { return PSD = value; }\n },\n totalEchoes: { get: function () { return totalEchoes; } },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () { return asap; },\n set: function (value) { asap = value; }\n },\n rejectionMapper: {\n get: function () { return rejectionMapper; },\n set: function (value) { rejectionMapper = value; }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\nif (NativePromise) {\n if (NativePromise.allSettled)\n setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0)\n resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n .then(function () { return --remaining || resolve(results); }); });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined')\n setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0)\n reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n failures[i] = failure;\n if (!--remaining)\n reject(new AggregateError(failures));\n }); });\n });\n });\n}\nfunction executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null)\n return;\n if (value === promise)\n throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n }\n else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick)\n endMicroTickScope();\n }, handleRejection.bind(null, promise));\n }\n catch (ex) {\n handleRejection(promise, ex);\n }\n}\nfunction handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null)\n return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(function () {\n var origProp = getPropertyDescriptor(reason, \"stack\");\n reason._promise = promise;\n setProp(reason, \"stack\", {\n get: function () {\n return stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack;\n }\n });\n });\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick)\n endMicroTickScope();\n}\nfunction propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n }\n}\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap(callListener, [cb, promise, listener]);\n}\nfunction callListener(cb, promise, listener) {\n try {\n currentFulfiller = promise;\n var ret, value = promise._value;\n if (promise._state) {\n ret = cb(value);\n }\n else {\n if (rejectingErrors.length)\n rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n }\n catch (e) {\n listener.reject(e);\n }\n finally {\n currentFulfiller = null;\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\nfunction getStack(promise, stacks, limit) {\n if (stacks.length === limit)\n return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value, errorName, message;\n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n }\n else {\n errorName = failure;\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1)\n stacks.push(stack);\n if (promise._prev)\n getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\nfunction linkToPreviousPromise(promise, prev) {\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) {\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\nfunction beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\nfunction endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i)\n finalizers[--i]();\n}\nfunction run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n}\nfunction addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n unhandledErrors.push(promise);\n}\nfunction markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i)\n if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n}\nfunction PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\nfunction wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n }\n catch (e) {\n errorCatcher && errorCatcher(e);\n }\n finally {\n switchToZone(outerScope, false);\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n}\nvar task = { awaits: 0, echoes: 0, id: 0 };\nvar taskCounter = 0;\nvar zoneStack = [];\nvar zoneEchoes = 0;\nvar totalEchoes = 0;\nvar zone_id_counter = 0;\nfunction newScope(fn, props, a1, a2) {\n var parent = PSD, psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen(globalEnv.nthen, psd),\n gthen: getPatchedPromiseThen(globalEnv.gthen, psd)\n } : {};\n if (props)\n extend(psd, props);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0)\n psd.finalize();\n return rv;\n}\nfunction incrementExpectedAwaits() {\n if (!task.id)\n task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\nfunction decrementExpectedAwaits() {\n if (!task.awaits)\n return false;\n if (--task.awaits === 0)\n task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n}\nif (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\nfunction onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD)\n return;\n PSD = targetZone;\n if (currentZone === globalPSD)\n globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise_1 = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise_1.prototype.then = targetEnv.gthen;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise_1.all = targetEnv.all;\n GlobalPromise_1.race = targetEnv.race;\n GlobalPromise_1.resolve = targetEnv.resolve;\n GlobalPromise_1.reject = targetEnv.reject;\n if (targetEnv.allSettled)\n GlobalPromise_1.allSettled = targetEnv.allSettled;\n if (targetEnv.any)\n GlobalPromise_1.any = targetEnv.any;\n }\n }\n}\nfunction snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n }\n finally {\n switchToZone(outerScope, false);\n }\n}\nfunction enqueueNativeMicroTask(job) {\n nativePromiseThen.call(resolvedNativePromise, job);\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait)\n incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n }\n finally {\n switchToZone(outerZone, false);\n if (cleanup)\n enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\nfunction getPatchedPromiseThen(origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\nvar UNHANDLEDREJECTION = \"unhandledrejection\";\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n }\n catch (e) { }\n if (rv !== false)\n try {\n var event, eventData = { promise: promise, reason: err };\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n }\n else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData });\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n try {\n _global.onunhandledrejection(event);\n }\n catch (_) { }\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(\"Unhandled rejection: \" + (err.stack || err));\n }\n }\n catch (e) { }\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n return trans._completion.then(function () { return result; });\n });\n }\n}\n\nvar DEXIE_VERSION = '3.2.7';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nvar hasIEDeleteObjectStoreBug = isIEOrEdge;\nvar hangsOnDeleteLargeKeyRange = isIEOrEdge;\nvar dexieStackFrameFilter = function (frame) { return !/(dexie\\.js|dexie\\.min\\.js)/.test(frame); };\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n\nvar AnyRange = {\n type: 3 ,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n return typeof keyPath === \"string\" && !/\\./.test(keyPath)\n ? function (obj) {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : function (obj) { return obj; };\n}\n\nvar Table = (function () {\n function Table() {\n }\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n }\n finally {\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit).first(cb);\n return this._trans('readonly', function (trans) {\n return _this.core.get({ trans: trans, key: keyOrCrit })\n .then(function (res) { return _this.hook.reading.fire(res); });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, \"[\" + indexOrCrit.join('+') + \"]\");\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n if (ix.compound &&\n keyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; })) {\n for (var i = 0; i < keyPaths.length; ++i) {\n if (keyPaths.indexOf(ix.keyPath[i]) === -1)\n return false;\n }\n return true;\n }\n return false;\n }).sort(function (a, b) { return a.keyPath.length - b.keyPath.length; })[0];\n if (compoundIndex && this.db._maxKey !== maxString) {\n var keyPathsInValidOrder = compoundIndex.keyPath.slice(0, keyPaths.length);\n return this\n .where(keyPathsInValidOrder)\n .equals(keyPathsInValidOrder.map(function (kp) { return indexOrCrit[kp]; }));\n }\n if (!compoundIndex && debug)\n console.warn(\"The query \" + JSON.stringify(indexOrCrit) + \" on \" + this.name + \" would benefit of a \" +\n (\"compound index [\" + keyPaths.join('+') + \"]\"));\n var idxByName = this.schema.idxByName;\n var idb = this.db._deps.indexedDB;\n function equals(a, b) {\n try {\n return idb.cmp(a, b) === 0;\n }\n catch (e) {\n return false;\n }\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0], prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [\n prevIndex || index,\n prevIndex || !index ?\n combine(prevFilterFn, index && index.multi ?\n function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) { return equals(value, item); });\n } : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n : prevFilterFn\n ];\n }, [null, null]), idx = _a[0], filterFunction = _a[1];\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) :\n this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n \"[\" + index.join('+') + \"]\" :\n index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n this.schema.mappedClass = constructor;\n var readHook = function (obj) {\n if (!obj)\n return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj)\n if (hasOwn(obj, m))\n try {\n res[m] = obj[m];\n }\n catch (_) { }\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n }).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined)\n return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(function (keyPath) {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n }\n else {\n modifications(keyOrObject, { value: keyOrObject, primKey: key });\n }\n }\n catch (_a) {\n }\n return this.where(\":id\").equals(key).modify(modifications);\n }\n else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.bulkGet = function (keys) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys,\n trans: trans\n }).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'add', keys: keys, values: objectsToAdd, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkAdd(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'put', keys: keys, values: objectsToPut, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkPut(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkDelete = function (keys) {\n var _this = this;\n var numKeys = keys.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'delete', keys: keys });\n }).then(function (_a) {\n var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n if (numFailures === 0)\n return lastResult;\n throw new BulkError(_this.name + \".bulkDelete(): \" + numFailures + \" of \" + numKeys + \" operations failed\", failures);\n });\n };\n return Table;\n}());\n\nfunction Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length, args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n }\n else if (typeof (eventName) === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object')\n return addConfiguredEvents(eventName);\n if (!chainFunction)\n chainFunction = reverseStoppableEventChain;\n if (!defaultFunction)\n defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n }\n else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap$1(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n }\n else\n throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n derive(constructor).from({ prototype: prototype });\n return constructor;\n}\n\nfunction createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey)\n return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index)\n throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n }\n else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]')\n key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () { return cursor.continue(); };\n if (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n wrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n c();\n });\n }\n });\n}\n\nfunction cmp(a, b) {\n try {\n var ta = type(a);\n var tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array')\n return 1;\n if (tb === 'Array')\n return -1;\n if (ta === 'binary')\n return 1;\n if (tb === 'binary')\n return -1;\n if (ta === 'string')\n return 1;\n if (tb === 'string')\n return -1;\n if (ta === 'Date')\n return 1;\n if (tb !== 'Date')\n return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n }\n catch (_a) { }\n return NaN;\n}\nfunction compareArrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n var res = cmp(a[i], b[i]);\n if (res !== 0)\n return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction compareUint8Arrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n if (a[i] !== b[i])\n return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction type(x) {\n var t = typeof x;\n if (t !== 'object')\n return t;\n if (ArrayBuffer.isView(x))\n return 'binary';\n var tsTag = toStringTag(x);\n return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n}\nfunction getUint8Array(a) {\n if (a instanceof Uint8Array)\n return a;\n if (ArrayBuffer.isView(a))\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a);\n}\n\nvar Collection = (function () {\n function Collection() {\n }\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props) {\n var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n if (props)\n extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) { return Math.min(count, ctx.limit); });\n }\n else {\n var count = 0;\n return iter(ctx, function () { ++count; return false; }, trans, coreTable)\n .then(function () { return count; });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i)\n return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n }\n else {\n var a_1 = [];\n return iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0)\n return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0)\n return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n }\n else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () { return (--offsetLeft < 0); };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0)\n advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n }\n else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange)\n this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi)\n return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n }\n else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n var limit = _this.db._options.modifyChunkSize || 200;\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures, numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys) {\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans: trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\"\n }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys[offset + i]);\n }\n else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys[offset + i]);\n addValues.push(ctx_1.value);\n }\n else {\n putValues.push(ctx_1.value);\n if (outbound)\n putKeys.push(keys[offset + i]);\n }\n }\n }\n var criteria = isPlainKeyRange(ctx) &&\n ctx.limit === Infinity &&\n (typeof changes !== 'function' || changes === deleteCallback) && {\n index: ctx.index,\n range: ctx.range\n };\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'add', values: addValues })\n .then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function () { return (putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria: criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans: trans,\n type: 'delete',\n keys: deleteKeys,\n criteria: criteria\n }).then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx, range = ctx.range;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 ))\n {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n return ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n .then(function (_a) {\n var failures = _a.failures; _a.lastResult; _a.results; var numFailures = _a.numFailures;\n if (numFailures)\n throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(deleteCallback);\n };\n return Collection;\n}());\nvar deleteCallback = function (value, ctx) { return ctx.value = null; };\n\nfunction createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange, error = null;\n if (keyRangeGenerator)\n try {\n keyRange = keyRangeGenerator();\n }\n catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n}\n\nfunction simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection(collectionOrWhereClause) :\n collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\nfunction emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toUpperCase(); } :\n function (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toLowerCase(); } :\n function (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0)\n return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0)\n return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0)\n return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0)\n llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\")\n return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\")\n return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n if (!needles.every(function (s) { return typeof s === 'string'; })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle) {\n return { lower: lower(needle), upper: upper(needle) };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string')\n return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n }\n else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n }\n else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2 ,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n}\nfunction rangeEqual(value) {\n return {\n type: 1 ,\n lower: value,\n upper: value\n };\n}\n\nvar WhereClause = (function () {\n function WhereClause() {\n }\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: false,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this);\n return new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return rangeEqual(value); });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, true); });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, false); });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value); });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string')\n return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\")\n return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0)\n return emptyCollection(this);\n var c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n c._ondirectionchange = function (direction) {\n compare = (direction === \"next\" ?\n _this._ascending :\n _this._descending);\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n }\n else {\n advance(function () { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return new this.Collection(this);\n try {\n set.sort(this._ascending);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) { return res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]]; }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n if (ranges.length === 0)\n return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0, l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n }\n catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ?\n function (key) { return ascending(key, set[rangePos][1]) > 0; } :\n function (key) { return ascending(key, set[rangePos][1]) >= 0; };\n var keyIsBeforeCurrentEntry = includeLowers ?\n function (key) { return descending(key, set[rangePos][0]) > 0; } :\n function (key) { return descending(key, set[rangePos][0]) >= 0; };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n }\n else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n }\n else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n }\n else {\n advance(function () {\n if (sortDirection === ascending)\n cursor.continue(set[rangePos][0]);\n else\n cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) { return typeof s === 'string'; })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0)\n return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n };\n return WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n var indexedDB = db._deps.indexedDB;\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = function (a, b) { return indexedDB.cmp(b, a); };\n this._max = function (a, b) { return indexedDB.cmp(a, b) > 0 ? a : b; };\n this._min = function (a, b) { return indexedDB.cmp(a, b) < 0 ? a : b; };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n });\n}\n\nfunction eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n}\nfunction preventDefault(event) {\n if (event.stopPropagation)\n event.stopPropagation();\n if (event.preventDefault)\n event.preventDefault();\n}\n\nvar DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\nvar STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\nvar globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n\nvar Transaction = (function () {\n function Transaction() {\n }\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global)\n PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global)\n PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n }\n catch (e) { }\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode)\n return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active)\n throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core\n ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }));\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n }\n else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p.finally(function () { return _this._unlock(); });\n p._lib = true;\n return p;\n });\n }\n else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () { return promise; });\n }\n else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length)\n (root._waitingQueue.shift())();\n if (root._waitingFor)\n store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) { return root._waitingQueue.push(wrap(resolve.bind(null, res))); }, function (err) { return root._waitingQueue.push(wrap(reject.bind(null, err))); }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n if (this.active) {\n this.active = false;\n if (this.idbtrans)\n this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ?\n _this.parent._reject(e) :\n wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n };\n}\n\nfunction safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\nvar getMaxKey = function (IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = function () { return [[]]; };\n return [[]];\n }\n catch (e) {\n getMaxKey = function () { return maxString; };\n return maxString;\n }\n};\n\nfunction getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () { return undefined; };\n }\n else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) { return obj[keyPath]; };\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\n\nfunction arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n}\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n \"[\" + keyPath.join('+') + \"]\";\n}\nfunction createDBCore(db, IdbKeyRange, tmpTrans) {\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n var keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n .map(function (index) {\n var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3 )\n return null;\n if (range.type === 4 )\n throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n var idbRange = lower === undefined ?\n upper === undefined ?\n null :\n IdbKeyRange.upperBound(upper, !!upperOpen) :\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) :\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error(\"Invalid operation type: \" + type);\n var length = (keys || values || { length: 1 }).length;\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n var req;\n var reqs = [];\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n };\n if (type === 'deleteRange') {\n if (range.type === 4 )\n return resolve({ numFailures: numFailures, failures: failures, results: [], lastResult: undefined });\n if (range.type === 3 )\n reqs.push(req = store.clear());\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n }\n else {\n var _a = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null], args1 = _a[0], args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i])));\n req.onerror = errorHandler;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = store[type](args1[i]));\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n reqs.forEach(function (req, i) { return req.error != null && (failures[i] = req.error); });\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: type === \"delete\" ? keys : reqs.map(function (req) { return req.result; }),\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n var direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n var req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey)\n _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n var doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n }\n catch (err) {\n cursor.fail(err);\n }\n }\n else {\n cursor.done = true;\n cursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0)\n return resolve({ result: [] });\n if (hasGetAll) {\n var req = values ?\n source.getAll(idbKeyRange, nonInfinitLimit) :\n source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n req.onerror = eventRejectHandler(reject);\n }\n else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor)\n return resolve({ result: result_1 });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit)\n return resolve({ result: result_1 });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans, keys = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null)\n ;\n if (++callbackCount === keyCount)\n resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0)\n resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans, key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) { return resolve(event.target.result); };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query, trans = _a.trans;\n var index = query.index, range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n var tableMap = {};\n tables.forEach(function (table) { return tableMap[table.name] = table; });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result)\n throw new Error(\"Table '\" + name + \"' not found\");\n return tableMap[name];\n },\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return (__assign(__assign({}, down), create(down)));\n }, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange; _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n}\nfunction generateMiddlewareStacks(_a, tmpTrans) {\n var db = _a._novip;\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n\nfunction setApiOnPlace(_a, objs, tableNames, dbschema) {\n var db = _a._novip;\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () { return this.table(tableName); },\n set: function (value) {\n defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n }\n });\n }\n else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\nfunction removeTablesApi(_a, objs) {\n var db = _a._novip;\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table)\n delete obj[key];\n }\n });\n}\nfunction lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n }\n else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\nfunction updateTablesAndIndexes(_a, oldVersion, trans, idbUpgradeTrans) {\n var db = _a._novip;\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var anyContentUpgraderHasRun = false;\n var versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n }\n else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) { return addIndex(store_1, idx); });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n anyContentUpgraderHasRun = true;\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue_1 && typeof returnValue_1.then === 'function' ?\n DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n }\n });\n queue.push(function (idbtrans) {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n }\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table])\n diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table], newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n }\n else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ((\n '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge))\n {\n change.recreate = true;\n diff.change.push(change);\n }\n else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName])\n change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n if (!oldIdx)\n change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src)\n change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto });\n indexes.forEach(function (idx) { return addIndex(store, idx); });\n return store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n });\n}\nfunction addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\nfunction readGlobalSchema(_a, idbdb, tmpTrans) {\n var db = _a._novip;\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(_a, schema, idbtrans) {\n var db = _a._novip;\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n}\n\nvar Version = (function () {\n function Version() {\n }\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi)\n throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto)\n throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath)\n throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n };\n return Version;\n}());\n\nfunction createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n}\n\nfunction getDbNamesTable(indexedDB, IDBKeyRange) {\n var dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n addons: [],\n indexedDB: indexedDB,\n IDBKeyRange: IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\");\n}\nfunction hasDatabasesNative(indexedDB) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\nfunction getDatabaseNames(_a) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then(function (infos) {\n return infos\n .map(function (info) { return info.name; })\n .filter(function (name) { return name !== DBNAMES_DB; });\n })\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\nfunction _onDatabaseCreated(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({ name: name }).catch(nop);\n}\nfunction _onDatabaseDeleted(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n\nfunction vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n}\n\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nfunction dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(function () { return state.dbOpenError ?\n rejection(state.dbOpenError) :\n db; });\n debug && (state.openCanceller._stackHolder = getErrorWithStack());\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var openCanceller = state.openCanceller;\n function throwIfCancelled() {\n if (state.openCanceller !== openCanceller)\n throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null, wasCreated = false;\n var tryOpenDB = function () { return new DexiePromise(function (resolve, reject) {\n throwIfCancelled();\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n var dbName = db.name;\n var req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req)\n throw new exceptions.MissingAPI();\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \" + dbName + \" doesnt exist\"));\n });\n }\n else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db._novip.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0)\n try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema)\n readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\");\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n }\n catch (e) {\n }\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n idbdb.onclose = wrap(function (ev) {\n db.on(\"close\").fire(ev);\n });\n if (wasCreated)\n _onDatabaseCreated(db._deps, dbName);\n resolve();\n }, reject);\n }).catch(function (err) {\n if (err && err.name === 'UnknownError' && state.PR1398_maxLoop > 0) {\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n }\n else {\n return DexiePromise.reject(err);\n }\n }); };\n return DexiePromise.race([\n openCanceller,\n (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(tryOpenDB)\n ]).then(function () {\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return db.on.ready.fire(db.vip); })).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return remainders_1(db.vip); })).then(fireRemainders);\n }\n });\n }).finally(function () {\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(function () {\n return db;\n }).catch(function (err) {\n state.dbOpenError = err;\n try {\n upgradeTransaction && upgradeTransaction.abort();\n }\n catch (_a) { }\n if (openCanceller === state.openCanceller) {\n db._close();\n }\n return rejection(err);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n });\n}\n\nfunction awaitIterator(iterator) {\n var callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val), value = next.value;\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n return step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2)\n throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n }\n else {\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return enterTransactionScope(db, mode, storeNames, null, scopeFunc); });\n }\n return rejection(ex);\n }\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n DexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n x\n : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n : promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n if (parentTransaction)\n trans._resolve();\n return trans._completion.then(function () { return x; });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n}\n\nfunction pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i)\n result.push(value);\n return result;\n}\nfunction createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), { table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), { isVirtual: isVirtual, keyTail: keyTail, keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ?\n keyPath[0] :\n keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ?\n 2 :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), { query: {\n index: index,\n range: translateRange(req.query.range, index.keyTail)\n } }) : req;\n }\n var result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n return table.count(translateRequest(req));\n }, query: function (req) {\n return table.query(translateRequest(req));\n }, openCursor: function (req) {\n var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n if (!isVirtual)\n return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)) :\n cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: { value: _continue },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get: function () {\n return cursor.primaryKey;\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ?\n key[0] :\n key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req))\n .then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n } });\n return result;\n } });\n}\nvar virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\nfunction getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop)) {\n rv[prfx + prop] = undefined;\n }\n else {\n var ap = a[prop], bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop];\n }\n else if (apTypeName === 'Object') {\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n }\n else if (ap !== bp) {\n rv[prfx + prop] = b[prop];\n }\n }\n else if (ap !== bp)\n rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n}\n\nvar hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'delete':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'deleteRange':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys)\n throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys }) : __assign({}, req);\n if (req.type !== 'delete')\n req.values = __spreadArray([], req.values, true);\n if (req.keys)\n req.keys = __spreadArray([], req.keys, true);\n return getExistingValues(downTable, req, keys).then(function (existingValues) {\n var contexts = keys.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n }\n else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n }\n else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n }\n else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n for (var i = 0; i < keys.length; ++i) {\n var primKey = results ? results[i] : keys[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n }\n else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n req.values[i] :\n primKey\n );\n }\n }\n return { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n }).catch(function (error) {\n contexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n .then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n if (res.numFailures > 0)\n return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return { failures: [], numFailures: 0, lastResult: undefined };\n }\n else {\n return deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n }\n });\n });\n }\n } });\n return tableMiddleware;\n } })); }\n};\nfunction getExistingValues(table, req, effectiveKeys) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n\nfunction getFromTransactionCache(keys, cache, clone) {\n try {\n if (!cache)\n return null;\n if (cache.keys.length < keys.length)\n return null;\n var result = [];\n for (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0)\n continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n return result.length === keys.length ? result : null;\n }\n catch (_a) {\n return null;\n }\n}\nvar cacheExistingValuesMiddleware = {\n stack: \"dbcore\",\n level: -1,\n create: function (core) {\n return {\n table: function (tableName) {\n var table = core.table(tableName);\n return __assign(__assign({}, table), { getMany: function (req) {\n if (!req.cache) {\n return table.getMany(req);\n }\n var cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n if (cachedResult) {\n return DexiePromise.resolve(cachedResult);\n }\n return table.getMany(req).then(function (res) {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n }, mutate: function (req) {\n if (req.type !== \"add\")\n req.trans[\"_cache\"] = null;\n return table.mutate(req);\n } });\n },\n };\n },\n};\n\nvar _a;\nfunction isEmptyRange(node) {\n return !(\"from\" in node);\n}\nvar RangeSet = function (fromOrTree, to) {\n if (this) {\n extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });\n }\n else {\n var rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n};\nprops(RangeSet.prototype, (_a = {\n add: function (rangeSet) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey: function (key) {\n addRange(this, key, key);\n return this;\n },\n addKeys: function (keys) {\n var _this = this;\n keys.forEach(function (key) { return addRange(_this, key, key); });\n return this;\n }\n },\n _a[iteratorSymbol] = function () {\n return getRangeSetIterator(this);\n },\n _a));\nfunction addRange(target, from, to) {\n var diff = cmp(from, to);\n if (isNaN(diff))\n return;\n if (diff > 0)\n throw RangeError();\n if (isEmptyRange(target))\n return extend(target, { from: from, to: to, d: 1 });\n var left = target.l;\n var right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null;\n target.d = right ? right.d + 1 : 1;\n }\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null;\n target.d = target.l ? target.l.d + 1 : 1;\n }\n var rightWasCutOff = !target.r;\n if (left && !target.l) {\n mergeRanges(target, left);\n }\n if (right && rightWasCutOff) {\n mergeRanges(target, right);\n }\n}\nfunction mergeRanges(target, newSet) {\n function _addRangeSet(target, _a) {\n var from = _a.from, to = _a.to, l = _a.l, r = _a.r;\n addRange(target, from, to);\n if (l)\n _addRangeSet(target, l);\n if (r)\n _addRangeSet(target, r);\n }\n if (!isEmptyRange(newSet))\n _addRangeSet(target, newSet);\n}\nfunction rangesOverlap(rangeSet1, rangeSet2) {\n var i1 = getRangeSetIterator(rangeSet2);\n var nextResult1 = i1.next();\n if (nextResult1.done)\n return false;\n var a = nextResult1.value;\n var i2 = getRangeSetIterator(rangeSet1);\n var nextResult2 = i2.next(a.from);\n var b = nextResult2.value;\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)\n return true;\n cmp(a.from, b.from) < 0\n ? (a = (nextResult1 = i1.next(b.from)).value)\n : (b = (nextResult2 = i2.next(a.from)).value);\n }\n return false;\n}\nfunction getRangeSetIterator(node) {\n var state = isEmptyRange(node) ? null : { s: 0, n: node };\n return {\n next: function (key) {\n var keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n }\n else {\n while (state.n.l)\n state = { up: state, n: state.n.l, s: 1 };\n }\n case 1:\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n if (state.n.r) {\n state.s = 3;\n state = { up: state, n: state.n.r, s: 0 };\n continue;\n }\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n };\n}\nfunction rebalance(target) {\n var _a, _b;\n var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);\n var r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n var l = r === \"r\" ? \"l\" : \"r\";\n var rootClone = __assign({}, target);\n var oldRootRight = target[r];\n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\nfunction computeDepth(_a) {\n var r = _a.r, l = _a.l;\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n\nvar observabilityMiddleware = {\n stack: \"dbcore\",\n level: 0,\n create: function (core) {\n var dbName = core.schema.name;\n var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n return __assign(__assign({}, core), { table: function (tableName) {\n var table = core.table(tableName);\n var schema = table.schema;\n var primaryKey = schema.primaryKey;\n var extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;\n var tableClone = __assign(__assign({}, table), { mutate: function (req) {\n var trans = req.trans;\n var mutatedParts = trans.mutatedParts || (trans.mutatedParts = {});\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet()));\n };\n var pkRangeSet = getRangeSet(\"\");\n var delsRangeSet = getRangeSet(\":dels\");\n var type = req.type;\n var _a = req.type === \"deleteRange\"\n ? [req.range]\n : req.type === \"delete\"\n ? [req.keys]\n : req.values.length < 50\n ? [[], req.values]\n : [], keys = _a[0], newObjs = _a[1];\n var oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then(function (res) {\n if (isArray(keys)) {\n if (type !== \"delete\")\n keys = res.results;\n pkRangeSet.addKeys(keys);\n var oldObjs = getFromTransactionCache(keys, oldCache);\n if (!oldObjs && type !== \"add\") {\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n }\n else if (keys) {\n var range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n pkRangeSet.add(range);\n }\n else {\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(function (idx) { return getRangeSet(idx.name).add(FULL_RANGE); });\n }\n return res;\n });\n } });\n var getRange = function (_a) {\n var _b, _c;\n var _d = _a.query, index = _d.index, range = _d.range;\n return [\n index,\n new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY),\n ];\n };\n var readSubscribers = {\n get: function (req) { return [primaryKey, new RangeSet(req.key)]; },\n getMany: function (req) { return [primaryKey, new RangeSet().addKeys(req.keys)]; },\n count: getRange,\n query: getRange,\n openCursor: getRange,\n };\n keys(readSubscribers).forEach(function (method) {\n tableClone[method] = function (req) {\n var subscr = PSD.subscr;\n if (subscr) {\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (subscr[part] ||\n (subscr[part] = new RangeSet()));\n };\n var pkRangeSet_1 = getRangeSet(\"\");\n var delsRangeSet_1 = getRangeSet(\":dels\");\n var _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n if (method === \"count\") {\n delsRangeSet_1.add(FULL_RANGE);\n }\n else {\n var keysPromise_1 = method === \"query\" &&\n outbound &&\n req.values &&\n table.query(__assign(__assign({}, req), { values: false }));\n return table[method].apply(this, arguments).then(function (res) {\n if (method === \"query\") {\n if (outbound && req.values) {\n return keysPromise_1.then(function (_a) {\n var resultingKeys = _a.result;\n pkRangeSet_1.addKeys(resultingKeys);\n return res;\n });\n }\n var pKeys = req.values\n ? res.result.map(extractKey)\n : res.result;\n if (req.values) {\n pkRangeSet_1.addKeys(pKeys);\n }\n else {\n delsRangeSet_1.addKeys(pKeys);\n }\n }\n else if (method === \"openCursor\") {\n var cursor_1 = res;\n var wantValues_1 = req.values;\n return (cursor_1 &&\n Object.create(cursor_1, {\n key: {\n get: function () {\n delsRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.key;\n },\n },\n primaryKey: {\n get: function () {\n var pkey = cursor_1.primaryKey;\n delsRangeSet_1.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get: function () {\n wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.value;\n },\n },\n }));\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n } });\n },\n};\nfunction trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n function addAffectedIndex(ix) {\n var rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n var addKeyOrKeys = function (key) { return ix.multiEntry && isArray(key)\n ? key.forEach(function (key) { return rangeSet.addKey(key); })\n : rangeSet.addKey(key); };\n (oldObjs || newObjs).forEach(function (_, i) {\n var oldKey = oldObjs && extractKey(oldObjs[i]);\n var newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n if (oldKey != null)\n addKeyOrKeys(oldKey);\n if (newKey != null)\n addKeyOrKeys(newKey);\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n\nvar Dexie$1 = (function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons, autoOpen: true,\n indexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError)\n DexiePromise.resolve().then(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky)\n subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0)\n console.warn(\"Another connection wants to upgrade database '\" + _this.name + \"'. Closing db now to resume the upgrade.\");\n else\n console.warn(\"Another connection wants to delete database '\" + _this.name + \"'. Closing db now to resume the delete request.\");\n _this.close();\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(\"Dexie.delete('\" + _this.name + \"') was blocked\");\n else\n console.warn(\"Upgrade '\" + _this.name + \"' blocked by other connection holding version \" + ev.oldVersion / 10);\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction); };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections\n .filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n .map(function (c) { return c.on(\"versionchange\").fire(ev); });\n };\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n this.vip = Object.create(this, { _vip: { value: true } });\n addons.forEach(function (addon) { return addon(_this); });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1)\n throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n if (versionInstance)\n return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise(function (resolve, reject) {\n if (_this._state.openComplete) {\n return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n }\n if (!_this._state.isBeingOpened) {\n if (!_this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n if (name)\n this.unuse({ stack: stack, name: name });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n middlewares.sort(function (a, b) { return a.level - b.level; });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack, name = _a.name, create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create :\n name ? mw.name !== name :\n false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n return dexieOpen(this);\n };\n Dexie.prototype._close = function () {\n var state = this._state;\n var idx = connections.indexOf(this);\n if (idx >= 0)\n connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n }\n catch (e) { }\n this._novip.idbdb = null;\n }\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n };\n Dexie.prototype.close = function () {\n this._close();\n var state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n };\n Dexie.prototype.delete = function () {\n var _this = this;\n var hasArguments = arguments.length > 0;\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close();\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n _onDatabaseDeleted(_this._deps, _this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasArguments)\n throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n }\n else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n },\n enumerable: false,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string')\n throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n }\n catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, function (_, reject) { reject(e); }) :\n rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n usePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n this._whenReady(enterTransaction));\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \" + tableName + \" does not exist\");\n }\n return this._allTables[tableName];\n };\n return Dexie;\n}());\n\nvar symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\";\nvar Observable = (function () {\n function Observable(subscribe) {\n this._subscribe = subscribe;\n }\n Observable.prototype.subscribe = function (x, error, complete) {\n return this._subscribe(!x || typeof x === \"function\" ? { next: x, error: error, complete: complete } : x);\n };\n Observable.prototype[symbolObservable] = function () {\n return this;\n };\n return Observable;\n}());\n\nfunction extendObservabilitySet(target, newSet) {\n keys(newSet).forEach(function (part) {\n var rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n\nfunction liveQuery(querier) {\n var hasValue = false;\n var currentValue = undefined;\n var observable = new Observable(function (observer) {\n var scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var exec = function () { return newScope(querier, { subscr: subscr, trans: null }); };\n var rv = PSD.trans\n ?\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n rv.then(decrementExpectedAwaits, decrementExpectedAwaits);\n }\n return rv;\n }\n var closed = false;\n var accumMuts = {};\n var currentObs = {};\n var subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: function () {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n observer.start && observer.start(subscription);\n var querying = false, startedListening = false;\n function shouldNotify() {\n return keys(currentObs).some(function (key) {\n return accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key]);\n });\n }\n var mutationListener = function (parts) {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n var doQuery = function () {\n if (querying || closed)\n return;\n accumMuts = {};\n var subscr = {};\n var ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(function (result) {\n hasValue = true;\n currentValue = result;\n querying = false;\n if (closed)\n return;\n if (shouldNotify()) {\n doQuery();\n }\n else {\n accumMuts = {};\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n }, function (err) {\n querying = false;\n hasValue = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n });\n };\n doQuery();\n return subscription;\n });\n observable.hasValue = function () { return hasValue; };\n observable.getValue = function () { return currentValue; };\n return observable;\n}\n\nvar domDeps;\ntry {\n domDeps = {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n}\ncatch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n\nvar Dexie = Dexie$1;\nprops(Dexie, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie(databaseName, { addons: [] });\n return db.delete();\n },\n exists: function (name) {\n return new Dexie(name, { addons: [] }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () { return false; });\n },\n getDatabaseNames: function (cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n }\n catch (_a) {\n return rejection(new exceptions.MissingAPI());\n }\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n }, ignoreTransaction: function (scopeFunc) {\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) :\n scopeFunc();\n }, vip: vip, async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n };\n }, spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () { return PSD.trans || null; }\n }, waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000);\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () { return debug; },\n set: function (value) {\n setDebug(value, value === 'dexie' ? function () { return true; } : dexieStackFrameFilter);\n }\n },\n derive: derive, extend: extend, props: props, override: override,\n Events: Events, on: globalEvents, liveQuery: liveQuery, extendObservabilitySet: extendObservabilitySet,\n getByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, cmp: cmp, asap: asap$1,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: domDeps,\n semVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n .map(function (n) { return parseInt(n); })\n .reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }) }));\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n if (!propagatingLocally) {\n var event_1;\n if (isIEOrEdge) {\n event_1 = document.createEvent('CustomEvent');\n event_1.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n }\n else {\n event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event_1);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n var detail = _a.detail;\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\nfunction propagateLocally(updateParts) {\n var wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n }\n finally {\n propagatingLocally = wasMe;\n }\n}\nvar propagatingLocally = false;\n\nif (typeof BroadcastChannel !== 'undefined') {\n var bc_1 = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n if (typeof bc_1.unref === 'function') {\n bc_1.unref();\n }\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n if (!propagatingLocally) {\n bc_1.postMessage(changedParts);\n }\n });\n bc_1.onmessage = function (ev) {\n if (ev.data)\n propagateLocally(ev.data);\n };\n}\nelse if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({\n trig: Math.random(),\n changedParts: changedParts,\n }));\n }\n if (typeof self['clients'] === 'object') {\n __spreadArray([], self['clients'].matchAll({ includeUncontrolled: true }), true).forEach(function (client) {\n return client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts: changedParts,\n });\n });\n }\n }\n }\n catch (_a) { }\n });\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', function (ev) {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n var data = JSON.parse(ev.newValue);\n if (data)\n propagateLocally(data.changedParts);\n }\n });\n }\n var swContainer = self.document && navigator.serviceWorker;\n if (swContainer) {\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\nfunction propagateMessageLocally(_a) {\n var data = _a.data;\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug, dexieStackFrameFilter);\n\nexport { Dexie$1 as Dexie, RangeSet, Dexie$1 as default, liveQuery, mergeRanges, rangesOverlap };\n//# sourceMappingURL=dexie.mjs.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","declare var global;\nexport const _global: any =\n typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n","import { _global } from \"../globals/global\";\nexport const keys = Object.keys;\nexport const isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise){\n // In jsdom, this it can be the case that Promise is not put on the global object.\n // If so, we need to patch the global object for the rest of the code to work as expected.\n // Other dexie code expects Promise to be on the global object (like normal browser environments)\n _global.Promise = Promise;\n}\nexport { _global }\n\nexport function extend(obj: T, extension: X): T & X {\n if (typeof extension !== 'object') return obj as T & X;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj as T & X;\n}\n\nexport const getProto = Object.getPrototypeOf;\nexport const _hasOwn = {}.hasOwnProperty;\nexport function hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\n\nexport function props (proto, extension) {\n if (typeof extension === 'function') extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(key => {\n setProp(proto, key, extension[key]);\n });\n}\n\nexport const defineProperty = Object.defineProperty;\n\nexport function setProp(obj, prop, functionOrGetSet, options?) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n {get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true} :\n {value: functionOrGetSet, configurable: true, writable: true}, options));\n}\n\nexport function derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\n\nexport const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\nexport function getPropertyDescriptor(obj, prop) {\n const pd = getOwnPropertyDescriptor(obj, prop);\n let proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor (proto, prop);\n}\n\nconst _slice = [].slice;\nexport function slice(args, start?, end?) {\n return _slice.call(args, start, end);\n}\n\nexport function override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\n\nexport function assert (b) {\n if (!b) throw new Error(\"Assertion Failed\");\n}\n\nexport function asap(fn) {\n // @ts-ignore\n if (_global.setImmediate) setImmediate(fn); else setTimeout(fn, 0);\n}\n\nexport function getUniqueArray(a) {\n return a.filter((value, index, self) => self.indexOf(value) === index);\n}\n\n/** Generate an object (hash map) based on given array.\n * @param extractor Function taking an array item and its index and returning an array of 2 items ([key, value]) to\n * instert on the resulting object for each item in the array. If this function returns a falsy value, the\n * current item wont affect the resulting object.\n */\nexport function arrayToObject (array: T[], extractor: (x:T, idx: number)=>[string, R]): {[name: string]: R} {\n return array.reduce((result, item, i) => {\n var nameAndValue = extractor(item, i);\n if (nameAndValue) result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\n\nexport function trycatcher(fn, reject) {\n return function () {\n try {\n fn.apply(this, arguments);\n } catch (e) {\n reject(e);\n }\n };\n}\n\nexport function tryCatch(fn: (...args: any[])=>void, onerror, args?) : void {\n try {\n fn.apply(null, args);\n } catch (ex) {\n onerror && onerror(ex);\n }\n}\n\nexport function getByKeyPath(obj, keyPath) {\n // http://www.w3.org/TR/IndexedDB/#steps-for-extracting-a-key-from-a-value-using-a-key-path\n if (typeof keyPath === 'string' && hasOwn(obj, keyPath)) return obj[keyPath]; // This line is moved from last to first for optimization purpose.\n if (!keyPath) return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\n\nexport function setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined) return;\n if ('isFrozen' in Object && Object.isFrozen(obj)) return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n } else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) obj.splice(currentKeyPath, 1);\n else delete obj[currentKeyPath];\n } else obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath)) innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n } else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath))) obj.splice(keyPath, 1);\n else delete obj[keyPath];\n } else obj[keyPath] = value;\n }\n }\n}\n\nexport function delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function(kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\n\nexport function shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m)) rv[m] = obj[m];\n }\n return rv;\n}\n\nconst concat = [].concat;\nexport function flatten (a: (T | T[])[]) : T[] {\n return concat.apply([], a);\n}\n\n//https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm\nconst intrinsicTypeNames =\n \"BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(\n flatten([8,16,32,64].map(num=>[\"Int\",\"Uint\",\"Float\"].map(t=>t+num+\"Array\")))\n ).filter(t=>_global[t]);\nconst intrinsicTypes = intrinsicTypeNames.map(t=>_global[t]);\nexport const intrinsicTypeNameSet = arrayToObject(intrinsicTypeNames, x=>[x,true]);\n\nlet circularRefs: null | WeakMap = null;\nexport function deepClone(any: T): T {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n const rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\n\nfunction innerDeepClone(any: T): T {\n if (!any || typeof any !== 'object') return any;\n let rv = circularRefs && circularRefs.get(any); // Resolve circular references\n if (rv) return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n } else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n } else {\n const proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\n\nconst {toString} = {};\nexport function toStringTag(o: Object) {\n return toString.call(o).slice(8, -1);\n}\n\n// If first argument is iterable or array-like, return it as an array\nexport const iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nexport const getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function(x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nexport const asyncIteratorSymbol = typeof Symbol !== 'undefined'\n ? Symbol.asyncIterator || Symbol.for(\"Symbol.asyncIterator\")\n : '@asyncIterator';\n\nexport const NO_CHAR_ARRAY = {};\n// Takes one or several arguments and returns an array based on the following criteras:\n// * If several arguments provided, return arguments converted to an array in a way that\n// still allows javascript engine to optimize the code.\n// * If single argument is an array, return a clone of it.\n// * If this-pointer equals NO_CHAR_ARRAY, don't accept strings as valid iterables as a special\n// case to the two bullets below.\n// * If single argument is an iterable, convert it to an array and return the resulting array.\n// * If single argument is array-like (has length of type number), convert it to an array.\nexport function getArrayOf (arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike)) return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done) a.push(x.value);\n return a;\n }\n if (arrayLike == null) return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--) a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--) a[i] = arguments[i];\n return a;\n}\nexport const isAsyncFunction = typeof Symbol !== 'undefined'\n ? (fn: Function) => fn[Symbol.toStringTag] === 'AsyncFunction'\n : ()=>false;\n","// By default, debug will be true only if platform is a web platform and its page is served from localhost.\n// When debug = true, error's stacks will contain asyncronic long stacks.\nexport var debug = typeof location !== 'undefined' &&\n // By default, use debug mode if served from localhost.\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\n\nexport function setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\n\nexport var libraryFilter = () => true;\n\nexport const NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\n\nexport function getErrorWithStack() {\n \"use strict\";\n if (NEEDS_THROW_FOR_STACK) try {\n // Doing something naughty in strict mode here to trigger a specific error\n // that can be explicitely ignored in debugger's exception settings.\n // If we'd just throw new Error() here, IE's debugger's exception settings\n // will just consider it as \"exception thrown by javascript code\" which is\n // something you wouldn't want it to ignore.\n getErrorWithStack.arguments;\n throw new Error(); // Fallback if above line don't throw.\n } catch(e) {\n return e;\n }\n return new Error();\n}\n\nexport function prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack) return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(frame => \"\\n\" + frame)\n .join('');\n}\n\n// TODO: Replace this in favor of a decorator instead.\nexport function deprecated (what: string, fn: (...args)=>T) {\n return function () {\n console.warn(`${what} is deprecated. See https://dexie.org/docs/Deprecations. ${prettyStack(getErrorWithStack(), 1)}`);\n return fn.apply(this, arguments);\n } as (...args)=>T\n}\n","import { derive, setProp } from '../functions/utils';\nimport { getErrorWithStack, prettyStack } from '../helpers/debug';\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\n\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\n\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\n\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\n\n//\n// DexieError - base class of all out exceptions.\n//\nexport function DexieError (name, msg) {\n // Reason we don't use ES6 classes is because:\n // 1. It bloats transpiled code and increases size of minified code.\n // 2. It doesn't give us much in this case.\n // 3. It would require sub classes to call super(), which\n // is not needed when deriving from Error.\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\n\nderive(DexieError).from(Error).extend({\n stack: {\n get: function() {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function(){ return this.name + \": \" + this.message; }\n});\n\nfunction getMultiErrorMessage (msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(key=>failures[key].toString())\n .filter((v,i,s)=>s.indexOf(v) === i) // Only unique error strings\n .join('\\n');\n}\n\n//\n// ModifyError - thrown in Collection.modify()\n// Specific constructor because it contains members failures and failedKeys.\n//\nexport function ModifyError (msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\n\nexport function BulkError (msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(pos => failures[pos]);\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\n\n//\n//\n// Dynamically generate error names and exception classes based\n// on the names in errorList.\n//\n//\n\n// Map of {ErrorName -> ErrorName + \"Error\"}\nexport var errnames = errorList.reduce((obj,name)=>(obj[name]=name+\"Error\",obj),{});\n\n// Need an alias for DexieError because we're gonna create subclasses with the same name.\nconst BaseException = DexieError;\n// Map of {ErrorName -> exception constructor}\nexport var exceptions = errorList.reduce((obj,name)=>{\n // Let the name be \"DexieError\" because this name may\n // be shown in call stack and when debugging. DexieError is\n // the most true name because it derives from DexieError,\n // and we cannot change Function.name programatically without\n // dynamically create a Function object, which would be considered\n // 'eval-evil'.\n var fullName = name + \"Error\";\n function DexieError (msgOrInner, inner){\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n } else if (typeof msgOrInner === 'string') {\n this.message = `${msgOrInner}${!inner ? '' : '\\n ' + inner}`;\n this.inner = inner || null;\n } else if (typeof msgOrInner === 'object') {\n this.message = `${msgOrInner.name} ${msgOrInner.message}`;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name]=DexieError;\n return obj;\n},{});\n\n// Use ECMASCRIPT standard exceptions where applicable:\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\n\nexport var exceptionMap = idbDomErrorNames.reduce((obj, name)=>{\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nexport function mapError (domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n // Derive stack from inner exception if it has a stack\n setProp(rv, \"stack\", {get: function(){\n return this.inner.stack;\n }});\n }\n return rv;\n}\n\nexport var fullNameExceptions = errorList.reduce((obj, name)=>{\n if ([\"Syntax\",\"Type\",\"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\n\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n","import {extend} from './utils';\n\nexport function nop() { }\nexport function mirror(val) { return val; }\nexport function pureFunctionChain(f1, f2) {\n // Enables chained events that takes ONE argument and returns it to the next function in chain.\n // This pattern is used in the hook(\"reading\") event.\n if (f1 == null || f1 === mirror) return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\n\nexport function callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\n\nexport function hookCreatingChain(f1, f2) {\n // Enables chained events that takes several arguments and may modify first argument by making a modification and then returning the same instance.\n // This pattern is used in the hook(\"creating\") event.\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined) arguments[0] = res;\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\n\nexport function hookDeletingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\n\nexport function hookUpdatingChain(f1, f2) {\n if (f1 === nop) return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res); // If f1 returns new modifications, extend caller's modifications with the result before calling next in chain.\n var onsuccess = this.onsuccess, // In case event listener has set this.onsuccess\n onerror = this.onerror; // In case event listener has set this.onerror\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\n\nexport function reverseStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n if (f2.apply(this, arguments) === false) return false;\n return f1.apply(this, arguments);\n };\n}\n\nexport function nonStoppableEventChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n f1.apply(this, arguments);\n f2.apply(this, arguments);\n };\n}\n\nexport function promisableChain(f1, f2) {\n if (f1 === nop) return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this,\n i = arguments.length,\n args = new Array(i);\n while (i--) args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2014-2017 David Fahlander\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/LICENSE-2.0\n */\nimport { _global } from '../globals/global';\nimport {tryCatch, props, setProp, _global,\n getPropertyDescriptor, getArrayOf, extend, getProto} from '../functions/utils';\nimport {nop, callBoth, mirror} from '../functions/chaining-functions';\nimport {debug, prettyStack, getErrorWithStack} from './debug';\nimport {exceptions} from '../errors';\n\n//\n// Promise and Zone (PSD) for Dexie library\n//\n// I started out writing this Promise class by copying promise-light (https://github.com/taylorhakes/promise-light) by\n// https://github.com/taylorhakes - an A+ and ECMASCRIPT 6 compliant Promise implementation.\n//\n// In previous versions this was fixed by not calling setTimeout when knowing that the resolve() or reject() came from another\n// tick. In Dexie v1.4.0, I've rewritten the Promise class entirely. Just some fragments of promise-light is left. I use\n// another strategy now that simplifies everything a lot: to always execute callbacks in a new micro-task, but have an own micro-task\n// engine that is indexedDB compliant across all browsers.\n// Promise class has also been optimized a lot with inspiration from bluebird - to avoid closures as much as possible.\n// Also with inspiration from bluebird, asyncronic stacks in debug mode.\n//\n// Specific non-standard features of this Promise class:\n// * Custom zone support (a.k.a. PSD) with ability to keep zones also when using native promises as well as\n// native async / await.\n// * Promise.follow() method built upon the custom zone engine, that allows user to track all promises created from current stack frame\n// and below + all promises that those promises creates or awaits.\n// * Detect any unhandled promise in a PSD-scope (PSD.onunhandled). \n//\n// David Fahlander, https://github.com/dfahlander\n//\n\n// Just a pointer that only this module knows about.\n// Used in Promise constructor to emulate a private constructor.\nvar INTERNAL = {};\n\n// Async stacks (long stacks) must not grow infinitely.\nconst\n LONG_STACKS_CLIP_LIMIT = 100,\n // When calling error.stack or promise.stack, limit the number of asyncronic stacks to print out. \n MAX_LONG_STACKS = 20,\n ZONE_ECHO_LIMIT = 100,\n [resolvedNativePromise, nativePromiseProto, resolvedGlobalPromise] = typeof Promise === 'undefined' ?\n [] :\n (()=>{\n let globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n // Generate a native promise (as window.Promise may have been patched)\n const nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(),\n nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\n\nexport const NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nconst patchGlobalPromise = !!resolvedGlobalPromise;\n\nvar stack_being_generated = false;\n\n/* The default function used only for the very first promise in a promise chain.\n As soon as then promise is resolved or rejected, all next tasks will be executed in micro ticks\n emulated in this module. For indexedDB compatibility, this means that every method needs to \n execute at least one promise before doing an indexedDB operation. Dexie will always call \n db.ready().then() for every operation to make sure the indexedDB event is started in an\n indexedDB-compatible emulated micro task loop.\n*/\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n () => {resolvedGlobalPromise.then(physicalTick);}\n :\n _global.setImmediate ? \n // setImmediate supported. Those modern platforms also supports Function.bind().\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n // MutationObserver supported\n () => {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(() => {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n // No support for setImmediate or MutationObserver. No worry, setTimeout is only called\n // once time. Every tick that follows will be our emulated micro tick.\n // Could have uses setTimeout.bind(null, 0, physicalTick) if it wasnt for that FF13 and below has a bug \n ()=>{setTimeout(physicalTick,0);};\n\n// Configurable through Promise.scheduler.\n// Don't export because it would be unsafe to let unknown\n// code call it unless they do try..catch within their callback.\n// This function can be retrieved through getter of Promise.scheduler though,\n// but users must not do Promise.scheduler = myFuncThatThrowsException\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\n\nvar isOutsideMicroTick = true, // True when NOT in a virtual microTick.\n needsNewPhysicalTick = true, // True when a push to microtickQueue must also schedulePhysicalTick()\n unhandledErrors = [], // Rejected promises that has occured. Used for triggering 'unhandledrejection'.\n rejectingErrors = [], // Tracks if errors are being re-rejected during onRejected callback.\n currentFulfiller = null,\n rejectionMapper = mirror; // Remove in next major when removing error mapping of DOMErrors and DOMExceptions\n \nexport var globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(uh => {\n try {\n globalError(uh[0], uh[1]);\n } catch (e) {}\n });\n }\n};\n\nexport var PSD = globalPSD;\n\nexport var microtickQueue = []; // Callbacks to call in this or next physical tick.\nexport var numScheduledCalls = 0; // Number of listener-calls left to do in this physical tick.\nexport var tickFinalizers = []; // Finalizers to call when there are no more async calls scheduled within current physical tick.\n\nexport default function DexiePromise(fn) {\n if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new'); \n this._listeners = [];\n this.onuncatched = nop; // Deprecate in next major. Not needed. Better to use global error handler.\n \n // A library may set `promise._lib = true;` after promise is created to make resolve() or reject()\n // execute the microtask engine implicitely within the call to resolve() or reject().\n // To remain A+ compliant, a library must only set `_lib=true` if it can guarantee that the stack\n // only contains library code when calling resolve() or reject().\n // RULE OF THUMB: ONLY set _lib = true for promises explicitely resolving/rejecting directly from\n // global scope (event handler, timer etc)!\n this._lib = false;\n // Current async scope\n var psd = (this._PSD = PSD);\n\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0; // Number of previous promises (for long stacks)\n }\n \n if (typeof fn !== 'function') {\n if (fn !== INTERNAL) throw new TypeError('Not a function');\n // Private constructor (INTERNAL, state, value).\n // Used internally by Promise.resolve() and Promise.reject().\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value); // Map error, set stack and addPossiblyUnhandledError().\n return;\n }\n \n this._state = null; // null (=pending), false (=rejected) or true (=resolved)\n this._value = null; // error or result\n ++psd.ref; // Refcounting current scope\n executePromiseTask(this, fn);\n}\n\n// Prepare a property descriptor to put onto Promise.prototype.then\nconst thenProp = {\n get: function() {\n var psd = PSD, microTaskId = totalEchoes;\n\n function then (onFulfilled, onRejected) {\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n const cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise((resolve, reject) => {\n propagateToListener(this, new Listener(\n nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup),\n nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup),\n resolve,\n reject,\n psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n\n then.prototype = INTERNAL; // For idempotense, see setter below.\n\n return then;\n },\n // Be idempotent and allow another framework (such as zone.js or another instance of a Dexie.Promise module) to replace Promise.prototype.then\n // and when that framework wants to restore the original property, we must identify that and restore the original property descriptor.\n set: function (value) {\n setProp (this, 'then', value && value.prototype === INTERNAL ?\n thenProp : // Restore to original property descriptor.\n {\n get: function(){\n return value; // Getter returning provided value (behaves like value is just changed)\n },\n set: thenProp.set // Keep a setter that is prepared to restore original.\n }\n );\n }\n};\n\nprops(DexiePromise.prototype, {\n then: thenProp, // Defined above.\n _then: function (onFulfilled, onRejected) {\n // A little tinier version of then() that don't have to create a resulting promise.\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD)); \n },\n\n catch: function (onRejected) {\n if (arguments.length === 1) return this.then(null, onRejected);\n // First argument is the Error type to catch\n var type = arguments[0],\n handler = arguments[1];\n return typeof type === 'function' ? this.then(null, err =>\n // Catching errors by its constructor type (similar to java / c++ / c#)\n // Sample: promise.catch(TypeError, function (e) { ... });\n err instanceof type ? handler(err) : PromiseReject(err))\n : this.then(null, err =>\n // Catching errors by the error.name property. Makes sense for indexedDB where error type\n // is always DOMError but where e.name tells the actual error type.\n // Sample: promise.catch('ConstraintError', function (e) { ... });\n err && err.name === type ? handler(err) : PromiseReject(err));\n },\n\n finally: function (onFinally) {\n return this.then(value => {\n onFinally();\n return value;\n }, err => {\n onFinally();\n return PromiseReject(err);\n });\n },\n \n stack: {\n get: function() {\n if (this._stack) return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack (this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null) this._stack = stack; // Stack may be updated on reject.\n return stack;\n } finally {\n stack_being_generated = false;\n }\n }\n },\n\n timeout: function (ms, msg) {\n return ms < Infinity ?\n new DexiePromise((resolve, reject) => {\n var handle = setTimeout(() => reject(new exceptions.Timeout(msg)), ms);\n this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\n\n// Now that Promise.prototype is defined, we have all it takes to set globalPSD.env.\n// Environment globals snapshotted on leaving global zone\nglobalPSD.env = snapShot();\n\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\n\n// Promise Static Properties\nprops (DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments) // Supports iterables, implicit arguments and array-like.\n .map(onPossibleParallellAsync); // Handle parallell async/awaits \n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0) resolve([]);\n var remaining = values.length;\n values.forEach((a,i) => DexiePromise.resolve(a).then(x => {\n values[i] = x;\n if (!--remaining) resolve(values);\n }, reject));\n });\n },\n \n resolve: value => {\n if (value instanceof DexiePromise) return value;\n if (value && typeof value.then === 'function') return new DexiePromise((resolve, reject)=>{\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n \n reject: PromiseReject,\n \n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n values.map(value => DexiePromise.resolve(value).then(resolve, reject));\n });\n },\n\n PSD: {\n get: ()=>PSD,\n set: value => PSD = value\n },\n\n totalEchoes: {get: ()=>totalEchoes},\n\n //task: {get: ()=>task},\n \n newPSD: newScope,\n \n usePSD: usePSD,\n \n scheduler: {\n get: () => asap,\n set: value => {asap = value}\n },\n \n rejectionMapper: {\n get: () => rejectionMapper,\n set: value => {rejectionMapper = value;} // Map reject failures\n },\n \n follow: (fn, zoneProps) => {\n return new DexiePromise((resolve, reject) => {\n return newScope((resolve, reject) => {\n var psd = PSD;\n psd.unhandleds = []; // For unhandled standard- or 3rd party Promises. Checked at psd.finalize()\n psd.onunhandled = reject; // Triggered directly on unhandled promises of this library.\n psd.finalize = callBoth(function () {\n // Unhandled standard or 3rd part promises are put in PSD.unhandleds and\n // examined upon scope completion while unhandled rejections in this Promise\n // will trigger directly through psd.onunhandled\n run_at_end_of_this_or_next_physical_tick(()=>{\n this.unhandleds.length === 0 ? resolve() : reject(this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\n\nif (NativePromise) {\n if (NativePromise.allSettled) setProp (DexiePromise, \"allSettled\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(resolve => {\n if (possiblePromises.length === 0) resolve([]);\n let remaining = possiblePromises.length;\n const results = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => results[i] = {status: \"fulfilled\", value},\n reason => results[i] = {status: \"rejected\", reason})\n .then(()=>--remaining || resolve(results)));\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined') setProp(DexiePromise, \"any\", function() {\n const possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise((resolve, reject) => {\n if (possiblePromises.length === 0) reject(new AggregateError([]));\n let remaining = possiblePromises.length;\n const failures = new Array(remaining);\n possiblePromises.forEach((p, i) => DexiePromise.resolve(p).then(\n value => resolve(value),\n failure => {\n failures[i] = failure;\n if (!--remaining) reject(new AggregateError(failures));\n }));\n });\n });\n}\n\n/**\n* Take a potentially misbehaving resolver function and make sure\n* onFulfilled and onRejected are only called once.\n*\n* Makes no guarantees about asynchrony.\n*/\nfunction executePromiseTask (promise, fn) {\n // Promise Resolution Procedure:\n // https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n try {\n fn(value => {\n if (promise._state !== null) return; // Already settled\n if (value === promise) throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, (resolve, reject) => {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n } else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick) endMicroTickScope();\n }, handleRejection.bind(null, promise)); // If Function.bind is not supported. Exception is handled in catch below\n } catch (ex) {\n handleRejection(promise, ex);\n }\n}\n\nfunction handleRejection (promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null) return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(()=>{\n var origProp = getPropertyDescriptor(reason, \"stack\"); \n reason._promise = promise; \n setProp(reason, \"stack\", {\n get: () =>\n stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack\n });\n });\n // Add the failure to a list of possibly uncaught errors\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick) endMicroTickScope();\n}\n\nfunction propagateAllListeners (promise) {\n //debug && linkToPreviousPromise(promise);\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize(); // if psd.ref reaches zero, call psd.finalize();\n if (numScheduledCalls === 0) {\n // If numScheduledCalls is 0, it means that our stack is not in a callback of a scheduled call,\n // and that no deferreds where listening to this rejection or success.\n // Since there is a risk that our stack can contain application code that may\n // do stuff after this code is finished that may generate new calls, we cannot\n // call finalizers here.\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick(); // Will detect unhandled errors\n }, []);\n }\n}\n\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n // This Listener doesnt have a listener for the event being triggered (onFulfilled or onReject) so lets forward the event to any eventual listeners on the Promise instance returned by then() or catch()\n return (promise._state ? listener.resolve : listener.reject) (promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap (callListener, [cb, promise, listener]);\n}\n\nfunction callListener (cb, promise, listener) {\n try {\n // Set static variable currentFulfiller to the promise that is being fullfilled,\n // so that we connect the chain of promises (for long stacks support)\n currentFulfiller = promise;\n \n // Call callback and resolve our listener with it's return value.\n var ret, value = promise._value;\n \n if (promise._state) {\n // cb is onResolved\n ret = cb (value);\n } else {\n // cb is onRejected\n if (rejectingErrors.length) rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise); // Callback didnt do Promise.reject(err) nor reject(err) onto another promise.\n }\n listener.resolve(ret);\n } catch (e) {\n // Exception thrown in callback. Reject our listener.\n listener.reject(e);\n } finally {\n // Restore env and currentFulfiller.\n currentFulfiller = null;\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\n\nfunction getStack (promise, stacks, limit) {\n if (stacks.length === limit) return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value,\n errorName,\n message;\n \n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n } else {\n errorName = failure; // If error is undefined or null, show that.\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1) stacks.push(stack);\n if (promise._prev) getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\n\nfunction linkToPreviousPromise(promise, prev) {\n // Support long stacks by linking to previous completed promise.\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) { // Prohibit infinite Promise loops to get an infinite long memory consuming \"tail\".\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\n\n/* The callback to schedule with setImmediate() or setTimeout().\n It runs a virtual microtick and executes any callback registered in microtickQueue.\n */\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\n\nexport function beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\n\n/* Executes micro-ticks without doing try..catch.\n This can be possible because we only use this internally and\n the registered functions are exception-safe (they do try..catch\n internally before calling any external method). If registering\n functions in the microtickQueue that are not exception-safe, this\n would destroy the framework and make it instable. So we don't export\n our asap method.\n*/\nexport function endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\n\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(p => {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0); // Clone first because finalizer may remove itself from list.\n var i = finalizers.length;\n while (i) finalizers[--i](); \n}\n\nfunction run_at_end_of_this_or_next_physical_tick (fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(()=>{\n if (--numScheduledCalls === 0) finalizePhysicalTick();\n }, []);\n}\n\nfunction addPossiblyUnhandledError(promise) {\n // Only add to unhandledErrors if not already there. The first one to add to this list\n // will be upon the first rejection so that the root cause (first promise in the\n // rejection chain) is the one listed.\n if (!unhandledErrors.some(p => p._value === promise._value))\n unhandledErrors.push(promise);\n}\n\nfunction markErrorAsHandled(promise) {\n // Called when a reject handled is actually being called.\n // Search in unhandledErrors for any promise whos _value is this promise_value (list\n // contains only rejected promises, and only one item per error)\n var i = unhandledErrors.length;\n while (i) if (unhandledErrors[--i]._value === promise._value) {\n // Found a promise that failed with this same error object pointer,\n // Remove that since there is a listener that actually takes care of it.\n unhandledErrors.splice(i, 1);\n return;\n }\n}\n\nfunction PromiseReject (reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\n\nexport function wrap (fn, errorCatcher) {\n var psd = PSD;\n return function() {\n var wasRootExec = beginMicroTickScope(),\n outerScope = PSD;\n\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n } catch (e) {\n errorCatcher && errorCatcher(e);\n } finally {\n switchToZone(outerScope, false);\n if (wasRootExec) endMicroTickScope();\n }\n };\n}\n\n\n//\n// variables used for native await support\n//\nconst task = { awaits: 0, echoes: 0, id: 0}; // The ongoing macro-task when using zone-echoing.\nvar taskCounter = 0; // ID counter for macro tasks.\nvar zoneStack = []; // Stack of left zones to restore asynchronically.\nvar zoneEchoes = 0; // zoneEchoes is a must in order to persist zones between native await expressions.\nvar totalEchoes = 0; // ID counter for micro-tasks. Used to detect possible native await in our Promise.prototype.then.\n\n\nvar zone_id_counter = 0;\nexport function newScope (fn, props, a1, a2) {\n var parent = PSD,\n psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n // Prepare for promise patching (done in usePSD):\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise, // Changing window.Promise could be omitted for Chrome and Edge, where IDB+Promise plays well!\n PromiseProp: {value: DexiePromise, configurable: true, writable: true},\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen (globalEnv.nthen, psd), // native then\n gthen: getPatchedPromiseThen (globalEnv.gthen, psd) // global then\n } : {};\n if (props) extend(psd, props);\n \n // unhandleds and onunhandled should not be specifically set here.\n // Leave them on parent prototype.\n // unhandleds.push(err) will push to parent's prototype\n // onunhandled() will call parents onunhandled (with this scope's this-pointer though!)\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n }\n var rv = usePSD (psd, fn, a1, a2);\n if (psd.ref === 0) psd.finalize();\n return rv;\n}\n\n// Function to call if scopeFunc returns NativePromise\n// Also for each NativePromise in the arguments to Promise.all()\nexport function incrementExpectedAwaits() {\n if (!task.id) task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\n\n// Function to call when 'then' calls back on a native promise where onAwaitExpected() had been called.\n// Also call this when a native await calls then method on a promise. In that case, don't supply\n// sourceTaskId because we already know it refers to current task.\nexport function decrementExpectedAwaits() {\n if (!task.awaits) return false;\n if (--task.awaits === 0) task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT; // Will reset echoes to 0 if awaits is 0.\n return true;\n}\n\nif ((''+nativePromiseThen).indexOf('[native code]') === -1) {\n // If the native promise' prototype is patched, we cannot rely on zone echoing.\n // Disable that here:\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\n\n// Call from Promise.all() and Promise.race()\nexport function onPossibleParallellAsync (possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits(); \n return possiblePromise.then(x => {\n decrementExpectedAwaits();\n return x;\n }, e => {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\n\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n //console.log(\"Total echoes \", totalEchoes);\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0; // Cancel zone echoing.\n }\n\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\n\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length-1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\n\nfunction switchToZone (targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n // Enter or leave zone asynchronically as well, so that tasks initiated during current tick\n // will be surrounded by the zone when they are invoked.\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD) return;\n\n PSD = targetZone; // The actual zone switch occurs at this line.\n\n // Snapshot on every leave from global zone.\n if (currentZone === globalPSD) globalPSD.env = snapShot();\n\n if (patchGlobalPromise) {\n // Let's patch the global and native Promises (may be same or may be different)\n var GlobalPromise = globalPSD.env.Promise;\n // Swich environments (may be PSD-zone or the global zone. Both apply.)\n var targetEnv = targetZone.env;\n\n // Change Promise.prototype.then for native and global Promise (they MAY differ on polyfilled environments, but both can be accessed)\n // Must be done on each zone change because the patched method contains targetZone in its closure.\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise.prototype.then = targetEnv.gthen;\n\n if (currentZone.global || targetZone.global) {\n // Leaving or entering global zone. It's time to patch / restore global Promise.\n\n // Set this Promise to window.Promise so that transiled async functions will work on Firefox, Safari and IE, as well as with Zonejs and angular.\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n\n // Support Promise.all() etc to work indexedDB-safe also when people are including es6-promise as a module (they might\n // not be accessing global.Promise but a local reference to it)\n GlobalPromise.all = targetEnv.all;\n GlobalPromise.race = targetEnv.race;\n GlobalPromise.resolve = targetEnv.resolve;\n GlobalPromise.reject = targetEnv.reject;\n if (targetEnv.allSettled) GlobalPromise.allSettled = targetEnv.allSettled;\n if (targetEnv.any) GlobalPromise.any = targetEnv.any;\n }\n }\n}\n\nfunction snapShot () {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\n\nexport function usePSD (psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n } finally {\n switchToZone(outerScope, false);\n }\n}\n\nfunction enqueueNativeMicroTask (job) {\n //\n // Precondition: nativePromiseThen !== undefined\n //\n nativePromiseThen.call(resolvedNativePromise, job);\n}\n\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait) incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n } finally {\n switchToZone(outerZone, false);\n if (cleanup) enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\n\nfunction getPatchedPromiseThen (origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this,\n nativeAwaitCompatibleWrap(onResolved, zone),\n nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\n\nconst UNHANDLEDREJECTION = \"unhandledrejection\";\n\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n } catch (e) {}\n if (rv !== false) try {\n var event, eventData = {promise: promise, reason: err};\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n } else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, {detail: eventData});\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n // No native support for PromiseRejectionEvent but user has set window.onunhandledrejection. Manually call it.\n try {_global.onunhandledrejection(event);} catch (_) {}\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(`Unhandled rejection: ${err.stack || err}`);\n }\n } catch (e) {}\n}\n\nexport var rejection = DexiePromise.reject;\n\nexport {DexiePromise};\n","import { PSD, rejection, newScope } from \"../helpers/promise\";\nimport { DexieOptions } from \"../public/types/dexie-constructor\";\nimport { errnames, exceptions } from \"../errors\";\nimport { nop } from \"./chaining-functions\";\nimport { Transaction } from \"../classes/transaction\";\nimport { Dexie } from '../classes/dexie';\n\n/* Generate a temporary transaction when db operations are done outside a transaction scope.\n*/\nexport function tempTransaction (\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n fn: (resolve, reject, trans: Transaction) => any)\n // Last argument is \"writeLocked\". But this doesnt apply to oneshot direct db operations, so we ignore it.\n{\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n // db.idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n return db._state.dbReadyPromise.then(() => tempTransaction(db, mode, storeNames, fn));\n } else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(()=>tempTransaction(db, mode, storeNames, fn));\n }\n return rejection(ex);\n }\n return trans._promise(mode, (resolve, reject) => {\n return newScope(() => { // OPTIMIZATION POSSIBLE? newScope() not needed because it's already done in _promise.\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(result => {\n // Instead of resolving value directly, wait with resolving it until transaction has completed.\n // Otherwise the data would not be in the DB if requesting it in the then() operation.\n // Specifically, to ensure that the following expression will work:\n //\n // db.friends.put({name: \"Arne\"}).then(function () {\n // db.friends.where(\"name\").equals(\"Arne\").count(function(count) {\n // assert (count === 1);\n // });\n // });\n //\n return trans._completion.then(() => result);\n });/*.catch(err => { // Don't do this as of now. If would affect bulk- and modify methods in a way that could be more intuitive. But wait! Maybe change in next major.\n trans._reject(err);\n return rejection(err);\n });*/\n }\n}\n","import { Dexie } from \"../classes/dexie\";\n\nexport const DEXIE_VERSION = '{version}'; // Replaced by build-script.\nexport const maxString = String.fromCharCode(65535);\nexport const minKey = -Infinity; // minKey can be constant. maxKey must be a prop of Dexie (_maxKey)\nexport const INVALID_KEY_ARGUMENT =\n \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nexport const STRING_EXPECTED = \"String expected.\";\nexport const connections: Dexie[] = [];\nexport const isIEOrEdge =\n typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nexport const hasIEDeleteObjectStoreBug = isIEOrEdge;\nexport const hangsOnDeleteLargeKeyRange = isIEOrEdge;\nexport const dexieStackFrameFilter = frame => !/(dexie\\.js|dexie\\.min\\.js)/.test(frame);\nexport const DBNAMES_DB = '__dbnames';\nexport const READONLY = 'readonly';\nexport const READWRITE = 'readwrite';\n","export function combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n","import { DBCoreKeyRange, DBCoreRangeType } from '../public/types/dbcore';\n\nexport const AnyRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Any,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n}\n\nexport const NeverRange: DBCoreKeyRange = {\n type: DBCoreRangeType.Never,\n lower: -Infinity,\n lowerOpen: true,\n upper: -Infinity,\n upperOpen: true\n}\n","import { deepClone, delByKeyPath, getByKeyPath } from './utils';\n\n// This workaround is needed since obj could be a custom-class instance with an\n// uninitialized keyPath. See the following comment for more context:\n// https://github.com/dfahlander/Dexie.js/issues/1280#issuecomment-823557881\nexport function workaroundForUndefinedPrimKey(keyPath: string | ArrayLike) {\n // Workaround only needed for plain non-dotted keyPaths\n return typeof keyPath === \"string\" && !/\\./.test(keyPath) \n ? (obj: object) => {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n // property exists but is undefined. This will not be liked by Indexeddb.\n // Need to remove the property before adding it but we need to clone it before\n // doing that to not be intrusive.\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : (obj: object) => obj;\n}","import { BulkError, exceptions } from '../../errors';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { DexiePromise as Promise, PSD, newScope, wrap, rejection, beginMicroTickScope, endMicroTickScope } from '../../helpers/promise';\nimport { Transaction } from '../transaction';\nimport { Dexie } from '../dexie';\nimport { tempTransaction } from '../../functions/temp-transaction';\nimport { Collection } from '../collection';\nimport { isArray, keys, getByKeyPath, hasOwn, setByKeyPath, deepClone, tryCatch, arrayToObject, extend } from '../../functions/utils';\nimport { maxString } from '../../globals/constants';\nimport { combine } from '../../functions/combine';\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { IndexableType } from '../../public/types/indexable-type';\nimport { debug } from '../../helpers/debug';\nimport { DBCoreTable } from '../../public/types/dbcore';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { workaroundForUndefinedPrimKey } from '../../functions/workaround-undefined-primkey';\n\n/** class Table\n * \n * https://dexie.org/docs/Table/Table\n */\nexport class Table implements ITable {\n db: Dexie;\n _tx?: Transaction;\n name: string;\n schema: TableSchema;\n hook: TableHooks;\n core: DBCoreTable;\n\n _trans(\n mode: IDBTransactionMode,\n fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike | void,\n writeLocked?: boolean | string) : PromiseExtended\n {\n const trans: Transaction = this._tx || PSD.trans;\n const tableName = this.name;\n \n function checkTableInTransaction(resolve, reject, trans: Transaction) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n // Surround all in a microtick scope.\n // Reason: Browsers (modern Safari + older others)\n // still as of 2018-10-10 has problems keeping a transaction\n // alive between micro ticks. Safari because if transaction\n // is created but not used in same microtick, it will go\n // away. That specific issue could be solved in DBCore\n // by opening the transaction just before using it instead.\n // But older Firefoxes and IE11 (with Promise polyfills)\n // will still have probs.\n // The beginMicrotickScope()/endMicrotickScope() works\n // in cooperation with Dexie.Promise to orchestrate\n // the micro-ticks in endMicrotickScope() rather than\n // in native engine.\n const wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(() => trans._promise(mode, checkTableInTransaction, writeLocked), { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n } finally {\n if (wasRootExec) endMicroTickScope();\n }\n }\n\n /** Table.get()\n * \n * https://dexie.org/docs/Table/Table.get()\n * \n **/\n get(keyOrCrit, cb?) {\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit as { [key: string]: IndexableType }).first(cb);\n\n return this._trans('readonly', (trans) => {\n return this.core.get({trans, key: keyOrCrit})\n .then(res => this.hook.reading.fire(res));\n }).then(cb);\n }\n\n /** Table.where()\n * \n * https://dexie.org/docs/Table/Table.where()\n * \n **/\n where(indexOrCrit: string | string[] | { [key: string]: IndexableType }) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, `[${indexOrCrit.join('+')}]`);\n // indexOrCrit is an object map of {[keyPath]:value} \n const keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n // Only one critera. This was the easy case:\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n\n // Multiple criterias.\n // Let's try finding a compound index that matches all keyPaths in\n // arbritary order:\n const compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(ix => {\n if (\n ix.compound &&\n keyPaths.every(keyPath => ix.keyPath.indexOf(keyPath) >= 0)) {\n for (let i=0; i a.keyPath.length - b.keyPath.length)[0];\n \n if (compoundIndex && this.db._maxKey !== maxString) {\n // Cool! We found such compound index\n // and this browser supports compound indexes (maxKey !== maxString)!\n const keyPathsInValidOrder = (compoundIndex.keyPath as string[]).slice(0, keyPaths.length);\n return this\n .where(keyPathsInValidOrder)\n .equals(keyPathsInValidOrder.map(kp => indexOrCrit[kp]));\n }\n\n if (!compoundIndex && debug) console.warn(\n `The query ${JSON.stringify(indexOrCrit)} on ${this.name} would benefit of a ` +\n `compound index [${keyPaths.join('+')}]`);\n\n // Ok, now let's fallback to finding at least one matching index\n // and filter the rest.\n const { idxByName } = this.schema;\n const idb = this.db._deps.indexedDB;\n\n function equals (a, b) {\n try {\n return idb.cmp(a,b) === 0; // Works with all indexable types including binary keys.\n } catch (e) {\n return false;\n }\n }\n\n const [idx, filterFunction] = keyPaths.reduce(([prevIndex, prevFilterFn], keyPath) => {\n const index = idxByName[keyPath];\n const value = indexOrCrit[keyPath];\n return [\n prevIndex || index, // idx::=Pick index of first matching keypath\n prevIndex || !index ? // filter::=null if not needed, otherwise combine function filter\n combine(\n prevFilterFn,\n index && index.multi ?\n x => {\n const prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(item => equals(value, item));\n } : x => equals(value, getByKeyPath(x, keyPath)))\n : prevFilterFn\n ];\n }, [null, null]);\n\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) : // Has compound but browser bad. Allow filter.\n this.where(keyPaths).equals(''); // No index at all. Fail lazily with \"[a+b+c] is not indexed\"\n }\n\n /** Table.filter()\n * \n * https://dexie.org/docs/Table/Table.filter()\n * \n **/\n filter(filterFunction: (obj: any) => boolean) {\n return this.toCollection().and(filterFunction);\n }\n\n /** Table.count()\n * \n * https://dexie.org/docs/Table/Table.count()\n * \n **/\n count(thenShortcut?: any) {\n return this.toCollection().count(thenShortcut);\n }\n\n /** Table.offset()\n * \n * https://dexie.org/docs/Table/Table.offset()\n * \n **/\n offset(offset: number) {\n return this.toCollection().offset(offset);\n }\n\n /** Table.limit()\n * \n * https://dexie.org/docs/Table/Table.limit()\n * \n **/\n limit(numRows: number) {\n return this.toCollection().limit(numRows);\n }\n\n /** Table.each()\n * \n * https://dexie.org/docs/Table/Table.each()\n * \n **/\n each(callback: (obj: any, cursor: { key: IndexableType, primaryKey: IndexableType }) => any) {\n return this.toCollection().each(callback);\n }\n\n /** Table.toArray()\n * \n * https://dexie.org/docs/Table/Table.toArray()\n * \n **/\n toArray(thenShortcut?: any) {\n return this.toCollection().toArray(thenShortcut);\n }\n\n /** Table.toCollection()\n * \n * https://dexie.org/docs/Table/Table.toCollection()\n * \n **/\n toCollection() {\n return new this.db.Collection(new this.db.WhereClause(this));\n }\n\n /** Table.orderBy()\n * \n * https://dexie.org/docs/Table/Table.orderBy()\n * \n **/\n orderBy(index: string | string[]) {\n return new this.db.Collection(\n new this.db.WhereClause(this, isArray(index) ?\n `[${index.join('+')}]` :\n index));\n }\n\n /** Table.reverse()\n * \n * https://dexie.org/docs/Table/Table.reverse()\n * \n **/\n reverse(): Collection {\n return this.toCollection().reverse();\n }\n\n /** Table.mapToClass()\n * \n * https://dexie.org/docs/Table/Table.mapToClass()\n * \n **/\n mapToClass(constructor: Function) {\n this.schema.mappedClass = constructor;\n // Now, subscribe to the when(\"reading\") event to make all objects that come out from this table inherit from given class\n // no matter which method to use for reading (Table.get() or Table.where(...)... )\n const readHook = obj => {\n if (!obj) return obj; // No valid object. (Value is null). Return as is.\n // Create a new object that derives from constructor:\n const res = Object.create(constructor.prototype);\n // Clone members:\n for (var m in obj) if (hasOwn(obj, m)) try { res[m] = obj[m]; } catch (_) { }\n return res;\n };\n\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n }\n\n /** @deprecated */\n defineClass() {\n function Class (content){\n extend(this, content);\n };\n return this.mapToClass(Class);\n }\n\n /** Table.add()\n * \n * https://dexie.org/docs/Table/Table.add()\n * \n **/\n add(obj, key?: IndexableType): PromiseExtended {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd]});\n }).then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.update()\n * \n * https://dexie.org/docs/Table/Table.update()\n * \n **/\n update(keyOrObject, modifications: { [keyPath: string]: any; } | ((obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean)): PromiseExtended {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n const key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined) return rejection(new exceptions.InvalidArgument(\n \"Given object does not contain its primary key\"));\n // object to modify. Also modify given object with the modifications:\n // This part should be here for backward compatibility.\n // If ever feeling too bad about mutating given object, please wait to a new major before removing it,\n // and document the change thoroughly.\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(keyPath => {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n } else {\n // Now since we support function argument, we should have a similar behavior here as well\n // (as long as we do this mutability stuff on the given object)\n modifications(keyOrObject, {value: keyOrObject, primKey: key});\n }\n } catch {\n // Maybe given object was frozen.\n // This part is not essential. Just move on as nothing happened...\n }\n return this.where(\":id\").equals(key).modify(modifications);\n } else {\n // key to modify\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n }\n\n /** Table.put()\n * \n * https://dexie.org/docs/Table/Table.put()\n * \n **/\n put(obj, key?: IndexableType): PromiseExtended {\n const {auto, keyPath} = this.schema.primKey;\n let objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans(\n 'readwrite',\n trans => this.core.mutate({trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : res.lastResult)\n .then(lastResult => {\n if (keyPath) {\n // This part should be here for backward compatibility.\n // If ever feeling too bad about this, please wait to a new major before removing it,\n // and document the change thoroughly.\n try{setByKeyPath(obj, keyPath, lastResult);}catch(_){};\n }\n return lastResult;\n });\n }\n\n /** Table.delete()\n * \n * https://dexie.org/docs/Table/Table.delete()\n * \n **/\n delete(key: IndexableType): PromiseExtended {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'delete', keys: [key]}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined);\n }\n\n /** Table.clear()\n * \n * https://dexie.org/docs/Table/Table.clear()\n * \n **/\n clear() {\n return this._trans('readwrite',\n trans => this.core.mutate({trans, type: 'deleteRange', range: AnyRange}))\n .then(res => res.numFailures ? Promise.reject(res.failures[0]) : undefined);\n }\n\n /** Table.bulkGet()\n * \n * https://dexie.org/docs/Table/Table.bulkGet()\n * \n * @param keys \n */\n bulkGet(keys: IndexableType[]) {\n return this._trans('readonly', trans => {\n return this.core.getMany({\n keys,\n trans\n }).then(result => result.map(res => this.hook.reading.fire(res)));\n });\n }\n\n /** Table.bulkAdd()\n * \n * https://dexie.org/docs/Table/Table.bulkAdd()\n * \n **/\n bulkAdd(\n objects: any[],\n keysOrOptions?: ReadonlyArray | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return this.core.mutate(\n {trans, type: 'add', keys: keys as IndexableType[], values: objectsToAdd, wantResults}\n )\n .then(({numFailures, results,lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkAdd(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkPut()\n * \n * https://dexie.org/docs/Table/Table.bulkPut()\n * \n **/\n bulkPut(\n objects: any[],\n keysOrOptions?: ReadonlyArray | { allKeys?: boolean },\n options?: { allKeys?: boolean }\n ) { \n const keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions as { allKeys?: boolean });\n const wantResults = options ? options.allKeys : undefined;\n\n return this._trans('readwrite', trans => {\n const {auto, keyPath} = this.schema.primKey;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n\n const numObjects = objects.length; // Pick length here to allow garbage collection of objects later\n let objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n\n return this.core.mutate(\n {trans, type: 'put', keys: keys as IndexableType[], values: objectsToPut, wantResults}\n )\n .then(({numFailures, results, lastResult, failures}) => {\n const result = wantResults ? results : lastResult;\n if (numFailures === 0) return result;\n throw new BulkError(\n `${this.name}.bulkPut(): ${numFailures} of ${numObjects} operations failed`, failures);\n });\n });\n }\n\n /** Table.bulkDelete()\n * \n * https://dexie.org/docs/Table/Table.bulkDelete()\n * \n **/\n bulkDelete(keys: ReadonlyArray): PromiseExtended {\n const numKeys = keys.length;\n return this._trans('readwrite', trans => {\n return this.core.mutate({trans, type: 'delete', keys: keys as IndexableType[]});\n }).then(({numFailures, lastResult, failures}) => {\n if (numFailures === 0) return lastResult;\n throw new BulkError(\n `${this.name}.bulkDelete(): ${numFailures} of ${numKeys} operations failed`, failures);\n });\n }\n}\n","import {keys, isArray, asap} from '../functions/utils';\nimport {nop, mirror, reverseStoppableEventChain} from '../functions/chaining-functions';\nimport {exceptions} from '../errors';\n\nexport default function Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n // Subscribe. If additional arguments than just the subscriber was provided, forward them as well.\n var i = arguments.length, args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n } else if (typeof (eventName) === 'string') {\n // Return interface allowing to fire or unsubscribe from event\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n \n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n \n return rv;\n\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object') return addConfiguredEvents(eventName);\n if (!chainFunction) chainFunction = reverseStoppableEventChain;\n if (!defaultFunction) defaultFunction = nop;\n\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n\n function addConfiguredEvents(cfg) {\n // events(this, {reading: [functionChain, nop]});\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n } else if (args === 'asap') {\n // Rather than approaching event subscription using a functional approach, we here do it in a for-loop where subscriber is executed in its own stack\n // enabling that any exception that occur wont disturb the initiator and also not nescessary be catched and forgotten.\n var context = add(eventName, mirror, function fire() {\n // Optimazation-safe cloning of arguments into args.\n var i = arguments.length, args = new Array(i);\n while (i--) args[i] = arguments[i];\n // All each subscriber:\n context.subscribers.forEach(function (fn) {\n asap(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n } else throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n","import { arrayToObject, derive } from './utils';\n\n\nexport function makeClassConstructor (prototype: Object, constructor: Function) {\n /*const propertyDescriptorMap = arrayToObject(\n Object.getOwnPropertyNames(prototype),\n propKey => [propKey, Object.getOwnPropertyDescriptor(prototype, propKey)]);\n\n // Both derive and clone the prototype.\n // derive: So that x instanceof T returns true when T is the class template.\n // clone: Optimizes method access a bit (but actually not nescessary)\n const derivedPrototypeClone = Object.create(prototype, propertyDescriptorMap);\n derivedPrototypeClone.constructor = constructor;\n constructor.prototype = derivedPrototypeClone;\n return constructor as any as TConstructor;*/\n\n // Keep the above code in case we want to clone AND derive the parent prototype.\n // Reason would be optimization of property access.\n // The code below will only create a prototypal inheritance from given constructor function\n // to given prototype.\n derive(constructor).from({prototype});\n return constructor as any as TConstructor; \n}\n","import { Dexie } from '../dexie';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { Transaction } from '../transaction/transaction';\nimport { hookCreatingChain, pureFunctionChain, nop, mirror, hookUpdatingChain, hookDeletingChain } from '../../functions/chaining-functions';\nimport { TableHooks } from '../../public/types/table-hooks';\nimport { Table } from './table';\nimport Events from '../../helpers/Events';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\n\nexport interface TableConstructor {\n new (name: string, tableSchema: TableSchema, optionalTrans?: Transaction) : Table;\n prototype: Table;\n}\n\n/** Generates a Table constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTableConstructor (db: Dexie) {\n return makeClassConstructor(\n Table.prototype,\n\n function Table (this: Table, name: string, tableSchema: TableSchema, trans?: Transaction) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n }) as TableHooks;\n }\n\n );\n}\n","import { combine } from \"../../functions/combine\";\nimport { exceptions } from \"../../errors\";\nimport { hasOwn } from \"../../functions/utils\";\nimport { wrap } from \"../../helpers/promise\";\nimport { Collection } from './';\nimport { DBCoreCursor, DBCoreTable, DBCoreTransaction, DBCoreTableSchema, DBCoreRangeType } from '../../public/types/dbcore';\nimport { nop } from '../../functions/chaining-functions';\n\ntype CollectionContext = Collection[\"_ctx\"];\n\nexport function isPlainKeyRange (ctx: CollectionContext, ignoreLimitFilter?: boolean) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n} \n\nexport function addFilter(ctx: CollectionContext, fn: Function) {\n ctx.filter = combine(ctx.filter, fn);\n}\n\nexport function addReplayFilter (ctx: CollectionContext, factory, isLimitFilter?) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? ()=>combine(curr(), factory()) : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\n\nexport function addMatchFilter(ctx: CollectionContext, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\n\nexport function getIndexOrStore(ctx: CollectionContext, coreSchema: DBCoreTableSchema) {\n // TODO: Rewrite this. No need to know ctx.isPrimKey. ctx.index should hold the keypath.\n // Still, throw if not found!\n if (ctx.isPrimKey) return coreSchema.primaryKey;\n const index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index) throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\n\nexport function openCursor(ctx: CollectionContext, coreTable: DBCoreTable, trans: DBCoreTransaction) {\n const index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index, \n range: ctx.range\n }\n });\n}\n\nexport function iter (\n ctx: CollectionContext, \n fn: (item, cursor: DBCoreCursor, advance: Function)=>void,\n coreTrans: DBCoreTransaction,\n coreTable: DBCoreTable): Promise\n{\n const filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(\n openCursor(ctx, coreTable, coreTrans),\n combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n } else {\n const set = {};\n\n const union = (item: any, cursor: DBCoreCursor, advance) => {\n if (!filter || filter(cursor, advance, result=>cursor.stop(result), err => cursor.fail(err))) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]') key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set, key)) {\n set[key] = true;\n fn(item, cursor, advance);\n }\n }\n }\n\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\n\nfunction iterate(cursorPromise: Promise, filter, fn, valueMapper): Promise {\n \n // Apply valueMapper (hook('reading') or mappped class)\n var mappedFn = valueMapper ? (x,c,a) => fn(valueMapper(x),c,a) : fn;\n // Wrap fn with PSD and microtick stuff from Promise.\n var wrappedFn = wrap(mappedFn);\n \n return cursorPromise.then(cursor => {\n if (cursor) {\n return cursor.start(()=>{\n var c = ()=>cursor.continue();\n if (!filter || filter(cursor, advancer => c = advancer, val=>{cursor.stop(val);c=nop}, e => {cursor.fail(e);c = nop;}))\n wrappedFn(cursor.value, cursor, advancer => c = advancer);\n c();\n });\n }\n });\n}\n","// Implementation of https://www.w3.org/TR/IndexedDB-3/#compare-two-keys\n\nimport { toStringTag } from './utils';\n\n// ... with the adjustment to return NaN instead of throwing.\nexport function cmp(a: any, b: any): number {\n try {\n const ta = type(a);\n const tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array') return 1;\n if (tb === 'Array') return -1;\n if (ta === 'binary') return 1;\n if (tb === 'binary') return -1;\n if (ta === 'string') return 1;\n if (tb === 'string') return -1;\n if (ta === 'Date') return 1;\n if (tb !== 'Date') return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n } catch {}\n return NaN; // Return value if any given args are valid keys.\n}\n\nexport function compareArrays(a: any[], b: any[]): number {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n const res = cmp(a[i], b[i]);\n if (res !== 0) return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\nexport function compareUint8Arrays(\n a: Uint8Array,\n b: Uint8Array\n) {\n const al = a.length;\n const bl = b.length;\n const l = al < bl ? al : bl;\n for (let i = 0; i < l; ++i) {\n if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\n\n// Implementation of https://www.w3.org/TR/IndexedDB-3/#key-type\nfunction type(x: any) {\n const t = typeof x;\n if (t !== 'object') return t;\n if (ArrayBuffer.isView(x)) return 'binary';\n const tsTag = toStringTag(x); // Cannot use instanceof in Safari\n return tsTag === 'ArrayBuffer' ? 'binary' : (tsTag as 'Array' | 'Date');\n}\n\ntype BinaryType =\n | ArrayBuffer\n | DataView\n | Uint8ClampedArray\n | ArrayBufferView\n | Uint8Array\n | Int8Array\n | Uint16Array\n | Int16Array\n | Uint32Array\n | Int32Array\n | Float32Array\n | Float64Array;\n\nfunction getUint8Array(a: BinaryType): Uint8Array {\n if (a instanceof Uint8Array) return a;\n if (ArrayBuffer.isView(a))\n // TypedArray or DataView\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a); // ArrayBuffer\n}\n","import { Collection as ICollection } from \"../../public/types/collection\";\nimport { Dexie } from \"../dexie\";\nimport { Table } from \"../table\";\nimport { IndexableType, IndexableTypeArrayReadonly } from \"../../public/types/indexable-type\";\nimport { PromiseExtended } from \"../../public/types/promise-extended\";\nimport { iter, isPlainKeyRange, getIndexOrStore, addReplayFilter, addFilter, addMatchFilter } from \"./collection-helpers\";\nimport { rejection } from \"../../helpers/promise\";\nimport { combine } from \"../../functions/combine\";\nimport { extend, hasOwn, deepClone, keys, setByKeyPath, getByKeyPath } from \"../../functions/utils\";\nimport { ModifyError } from \"../../errors\";\nimport { hangsOnDeleteLargeKeyRange } from \"../../globals/constants\";\nimport { ThenShortcut } from \"../../public/types/then-shortcut\";\nimport { Transaction } from '../transaction';\nimport { DBCoreCursor, DBCoreTransaction, DBCoreRangeType, DBCoreMutateResponse, DBCoreKeyRange } from '../../public/types/dbcore';\nimport { cmp } from \"../../functions/cmp\";\n\n/** class Collection\n * \n * https://dexie.org/docs/Collection/Collection\n */\nexport class Collection implements ICollection {\n db: Dexie;\n _ctx: {\n table: Table;\n index?: string | null;\n isPrimKey?: boolean;\n range: DBCoreKeyRange;\n keysOnly: boolean;\n dir: \"next\" | \"prev\";\n unique: \"\" | \"unique\";\n algorithm?: Function | null;\n filter?: Function | null;\n replayFilter: Function | null;\n justLimit: boolean; // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: Function | null;\n offset: number,\n limit: number,\n error: any, // If set, any promise must be rejected with this error\n or: Collection,\n valueMapper: (any) => any\n }\n \n _ondirectionchange?: Function;\n\n _read(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike, cb?): PromiseExtended {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n }\n\n _write(fn: (idbtrans: IDBTransaction, dxTrans: Transaction) => PromiseLike): PromiseExtended {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\"); // When doing write operations on collections, always lock the operation so that upcoming operations gets queued.\n }\n\n _addAlgorithm(fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n }\n\n _iterate(\n fn: (item, cursor: DBCoreCursor, advance: Function) => void,\n coreTrans: DBCoreTransaction) : Promise\n {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n }\n\n /** Collection.clone()\n * \n * https://dexie.org/docs/Collection/Collection.clone()\n * \n **/\n clone(props?) {\n var rv = Object.create(this.constructor.prototype),\n ctx = Object.create(this._ctx);\n if (props) extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n }\n\n /** Collection.raw()\n * \n * https://dexie.org/docs/Collection/Collection.raw()\n * \n **/\n raw() {\n this._ctx.valueMapper = null;\n return this;\n }\n\n /** Collection.each()\n * \n * https://dexie.org/docs/Collection/Collection.each()\n * \n **/\n each(fn: (obj, cursor: DBCoreCursor) => any): PromiseExtended {\n var ctx = this._ctx;\n\n return this._read(trans => iter(ctx, fn, trans, ctx.table.core));\n }\n\n /** Collection.count()\n * \n * https://dexie.org/docs/Collection/Collection.count()\n * \n **/\n count(cb?) {\n return this._read(trans => {\n const ctx = this._ctx;\n const coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n // This is a plain key range. We can use the count() method if the index.\n return coreTable.count({\n trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(count => Math.min(count, ctx.limit));\n } else {\n // Algorithms, filters or expressions are applied. Need to count manually.\n var count = 0;\n return iter(ctx, () => { ++count; return false; }, trans, coreTable)\n .then(()=>count);\n }\n }).then(cb);\n }\n\n /** Collection.sortBy()\n * \n * https://dexie.org/docs/Collection/Collection.sortBy()\n * \n **/\n sortBy(keyPath: string): PromiseExtended;\n sortBy(keyPath: string, thenShortcut: ThenShortcut) : PromiseExtended;\n sortBy(keyPath: string, cb?: ThenShortcut) {\n const parts = keyPath.split('.').reverse(),\n lastPart = parts[0],\n lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i) return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n\n function sorter(a, b) {\n var aVal = getval(a, lastIndex),\n bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n }\n\n /** Collection.toArray()\n * \n * https://dexie.org/docs/Collection/Collection.toArray()\n * \n **/\n toArray(cb?): PromiseExtended {\n return this._read(trans => {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAll() or\n // IDBKeyRange.getAll():\n const {valueMapper} = ctx;\n const index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n limit: ctx.limit,\n values: true,\n query: {\n index,\n range: ctx.range\n }\n }).then(({result}) => valueMapper ? result.map(valueMapper) : result);\n } else {\n // Getting array through a cursor.\n const a = [];\n return iter(ctx, item => a.push(item), trans, ctx.table.core).then(()=>a);\n }\n }, cb);\n }\n\n /** Collection.offset()\n * \n * https://dexie.org/docs/Collection/Collection.offset()\n * \n **/\n offset(offset: number) : Collection{\n var ctx = this._ctx;\n if (offset <= 0) return this;\n ctx.offset += offset; // For count()\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return (cursor, advance) => {\n if (offsetLeft === 0) return true;\n if (offsetLeft === 1) { --offsetLeft; return false; }\n advance(() => {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n } else {\n addReplayFilter(ctx, () => {\n var offsetLeft = offset;\n return () => (--offsetLeft < 0);\n });\n }\n return this;\n }\n\n /** Collection.limit()\n * \n * https://dexie.org/docs/Collection/Collection.limit()\n * \n **/\n limit(numRows: number) : Collection {\n this._ctx.limit = Math.min(this._ctx.limit, numRows); // For count()\n addReplayFilter(this._ctx, () => {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0) advance(resolve); // Stop after this item has been included\n return rowsLeft >= 0; // If numRows is already below 0, return false because then 0 was passed to numRows initially. Otherwise we wouldnt come here.\n };\n }, true);\n return this;\n }\n\n /** Collection.until()\n * \n * https://dexie.org/docs/Collection/Collection.until()\n * \n **/\n until(filterFunction: (x) => boolean, bIncludeStopEntry?) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n } else {\n return true;\n }\n });\n return this;\n }\n\n /** Collection.first()\n * \n * https://dexie.org/docs/Collection/Collection.first()\n * \n **/\n first(cb?) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.last()\n * \n * https://dexie.org/docs/Collection/Collection.last()\n * \n **/\n last(cb?) {\n return this.reverse().first(cb);\n }\n\n /** Collection.filter()\n * \n * https://dexie.org/docs/Collection/Collection.filter()\n * \n **/\n filter(filterFunction: (x) => boolean): Collection {\n /// function(val){return true/false}\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n // match filters not used in Dexie.js but can be used by 3rd part libraries to test a\n // collection for a match without querying DB. Used by Dexie.Observable.\n addMatchFilter(this._ctx, filterFunction);\n return this;\n }\n\n /** Collection.and()\n * \n * https://dexie.org/docs/Collection/Collection.and()\n * \n **/\n and(filter: (x) => boolean) {\n return this.filter(filter);\n }\n\n /** Collection.or()\n * \n * https://dexie.org/docs/Collection/Collection.or()\n * \n **/\n or(indexName: string) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n }\n\n /** Collection.reverse()\n * \n * https://dexie.org/docs/Collection/Collection.reverse()\n * \n **/\n reverse() {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange) this._ondirectionchange(this._ctx.dir);\n return this;\n }\n\n /** Collection.desc()\n * \n * https://dexie.org/docs/Collection/Collection.desc()\n * \n **/\n desc() {\n return this.reverse();\n }\n\n /** Collection.eachKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachKey()\n * \n **/\n eachKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n }\n\n /** Collection.eachUniqueKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachUniqueKey()\n * \n **/\n eachUniqueKey(cb?) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n }\n\n /** Collection.eachPrimaryKey()\n * \n * https://dexie.org/docs/Collection/Collection.eachPrimaryKey()\n * \n **/\n eachPrimaryKey(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n }\n\n /** Collection.keys()\n * \n * https://dexie.org/docs/Collection/Collection.keys()\n * \n **/\n keys(cb?) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.primaryKeys()\n * \n * https://dexie.org/docs/Collection/Collection.primaryKeys()\n * \n **/\n primaryKeys(cb?) : PromiseExtended {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n // Special optimation if we could use IDBObjectStore.getAllKeys() or\n // IDBKeyRange.getAllKeys():\n return this._read(trans => {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans,\n values: false,\n limit: ctx.limit,\n query: {\n index,\n range: ctx.range\n }});\n }).then(({result})=>result).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n }\n\n /** Collection.uniqueKeys()\n * \n * https://dexie.org/docs/Collection/Collection.uniqueKeys()\n * \n **/\n uniqueKeys(cb?) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n }\n\n /** Collection.firstKey()\n * \n * https://dexie.org/docs/Collection/Collection.firstKey()\n * \n **/\n firstKey(cb?) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n }\n\n /** Collection.lastKey()\n * \n * https://dexie.org/docs/Collection/Collection.lastKey()\n * \n **/\n lastKey(cb?) {\n return this.reverse().firstKey(cb);\n }\n\n /** Collection.distinct()\n * \n * https://dexie.org/docs/Collection/Collection.distinct()\n * \n **/\n distinct() {\n var ctx = this._ctx,\n idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi) return this; // distinct() only makes differencies on multiEntry indexes.\n var set = {};\n addFilter(this._ctx, function (cursor: DBCoreCursor) {\n var strKey = cursor.primaryKey.toString(); // Converts any Date to String, String to String, Number to String and Array to comma-separated string\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n }\n\n //\n // Methods that mutate storage\n //\n\n /** Collection.modify()\n * \n * https://dexie.org/docs/Collection/Collection.modify()\n * \n **/\n modify(changes: { [keyPath: string]: any }) : PromiseExtended\n modify(changes: (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean): PromiseExtended {\n var ctx = this._ctx;\n return this._write(trans => {\n var modifyer: (obj: any, ctx:{value: any, primKey: IndexableType}) => void | boolean\n if (typeof changes === 'function') {\n // Changes is a function that may update, add or delete propterties or even require a deletion the object itself (delete this.item)\n modifyer = changes;\n } else {\n // changes is a set of {keyPath: value} and no one is listening to the updating hook.\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val); // Adding {keyPath: undefined} means that the keyPath should be deleted. Handled by setByKeyPath\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n\n const coreTable = ctx.table.core;\n const {outbound, extractKey} = coreTable.schema.primaryKey;\n const limit = this.db._options.modifyChunkSize || 200;\n const totalFailures = [];\n let successCount = 0;\n const failedKeys: IndexableType[] = [];\n const applyMutateResult = (expectedCount: number, res: DBCoreMutateResponse) => {\n const {failures, numFailures} = res;\n successCount += expectedCount - numFailures;\n for (let pos of keys(failures)) {\n totalFailures.push(failures[pos]);\n }\n }\n return this.clone().primaryKeys().then(keys => {\n\n const nextChunk = (offset: number) => {\n const count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\" // Optimize for 2 things:\n // 1) observability-middleware can track changes better.\n // 2) hooks middleware don't have to query the existing values again when tracking changes.\n // We can use \"immutable\" because we promise to not touch the values we retrieve here!\n }).then(values => {\n const addValues = [];\n const putValues = [];\n const putKeys = outbound ? [] : null;\n const deleteKeys = [];\n for (let i=0; i 0 &&\n coreTable.mutate({trans, type: 'add', values: addValues})\n .then(res => {\n for (let pos in res.failures) {\n // Remove from deleteKeys the key of the object that failed to change its primary key\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })\n ).then(()=>(putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(res=>applyMutateResult(putValues.length, res))\n ).then(()=>(deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans,\n type: 'delete',\n keys: deleteKeys,\n criteria\n }).then(res=>applyMutateResult(deleteKeys.length, res))\n ).then(()=>{\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n }\n\n return nextChunk(0).then(()=>{\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys as IndexableTypeArrayReadonly);\n\n return keys.length;\n });\n });\n\n });\n }\n\n /** Collection.delete()\n * \n * https://dexie.org/docs/Collection/Collection.delete()\n * \n **/\n delete() : PromiseExtended {\n var ctx = this._ctx,\n range = ctx.range;\n //deletingHook = ctx.table.hook.deleting.fire,\n //hasDeleteHook = deletingHook !== nop;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === DBCoreRangeType.Any)) // if no range, we'll use clear().\n {\n // May use IDBObjectStore.delete(IDBKeyRange) in this case (Issue #208)\n // For chromium, this is the way most optimized version.\n // For IE/Edge, this could hang the indexedDB engine and make operating system instable\n // (https://gist.github.com/dfahlander/5a39328f029de18222cf2125d56c38f7)\n return this._write(trans => {\n // Our API contract is to return a count of deleted items, so we have to count() before delete().\n const {primaryKey} = ctx.table.core.schema;\n const coreRange = range;\n return ctx.table.core.count({trans, query: {index: primaryKey, range: coreRange}}).then(count => {\n return ctx.table.core.mutate({trans, type: 'deleteRange', range: coreRange})\n .then(({failures, lastResult, results, numFailures}) => {\n if (numFailures) throw new ModifyError(\"Could not delete some values\",\n Object.keys(failures).map(pos => failures[pos]),\n count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n\n return this.modify(deleteCallback);\n }\n}\n\nconst deleteCallback = (value, ctx) => ctx.value = null;\n","import { Dexie } from '../../classes/dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Collection } from './collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { AnyRange } from '../../dbcore/keyrange';\nimport { DBCoreKeyRange } from '../../public/types/dbcore';\nimport { mirror } from '../../functions/chaining-functions';\n\n/** Constructs a Collection instance. */\nexport interface CollectionConstructor {\n new(whereClause?: WhereClause | null, keyRangeGenerator?: () => DBCoreKeyRange): Collection;\n prototype: Collection;\n}\n\n/** Generates a Collection constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createCollectionConstructor(db: Dexie) {\n return makeClassConstructor(\n Collection.prototype,\n\n function Collection(\n this: Collection,\n whereClause?: WhereClause | null,\n keyRangeGenerator?: () => DBCoreKeyRange)\n {\n this.db = db;\n let keyRange = AnyRange, error = null;\n if (keyRangeGenerator) try {\n keyRange = keyRangeGenerator();\n } catch (ex) {\n error = ex;\n }\n\n const whereCtx = whereClause._ctx;\n const table = whereCtx.table;\n const readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true, // True if a replayFilter is just a filter that performs a \"limit\" operation (or none at all)\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error, // If set, any promise must be rejected with this error\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n }\n );\n}\n","import { IndexableType } from '../public/types/indexable-type';\n\nexport function simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\n\nexport function simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n","import { WhereClause } from './where-clause';\nimport { Collection } from '../collection';\nimport { STRING_EXPECTED } from '../../globals/constants';\nimport { simpleCompare, simpleCompareReverse } from '../../functions/compare-functions';\nimport { IndexableType } from '../../public';\nimport { DBCoreKeyRange, DBCoreRangeType } from '../../public/types/dbcore';\n\nexport function fail(collectionOrWhereClause: Collection | WhereClause, err, T?) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection (collectionOrWhereClause) :\n collectionOrWhereClause;\n \n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\n\nexport function emptyCollection(whereClause: WhereClause) {\n return new whereClause.Collection (whereClause, () => rangeEqual(\"\")).limit(0);\n}\n\nexport function upperFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toUpperCase() :\n (s: string) => s.toLowerCase();\n}\n\nexport function lowerFactory(dir: 'next' | 'prev') {\n return dir === \"next\" ?\n (s: string) => s.toLowerCase() :\n (s: string) => s.toUpperCase();\n}\n\nexport function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0) return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0) return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0) return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0) llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\") return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\") return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\n\nexport function addIgnoreCaseAlgorithm(whereClause: WhereClause, match, needles, suffix) {\n /// \n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix,\n needlesLen = needles.length;\n if (!needles.every(s => typeof s === 'string')) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle){\n return {lower: lower(needle), upper: upper(needle)};\n }).sort(function(a,b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb){ return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb){ return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n\n var c = new whereClause.Collection (\n whereClause,\n ()=>createRange(upperNeedles[0], lowerNeedles[needlesLen-1] + suffix)\n );\n\n c._ondirectionchange = function (direction) {\n // This event onlys occur before filter is called the first time.\n initDirection(direction);\n };\n\n var firstPossibleNeedle = 0;\n\n c._addAlgorithm(function (cursor, advance, resolve) {\n /// \n /// \n /// \n var key = cursor.key;\n if (typeof key !== 'string') return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n } else {\n var lowestPossibleCasing = null;\n for (var i=firstPossibleNeedle; i 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n } else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\n\nexport function createRange (lower: IndexableType, upper: IndexableType, lowerOpen?: boolean, upperOpen?: boolean): DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Range,\n lower,\n upper,\n lowerOpen,\n upperOpen\n };\n}\n\nexport function rangeEqual (value: IndexableType) : DBCoreKeyRange {\n return {\n type: DBCoreRangeType.Equal,\n lower: value,\n upper: value\n };\n}\n","import { WhereClause as IWhereClause } from \"../../public/types/where-clause\";\nimport { Collection } from \"../collection\";\nimport { Table } from \"../table\";\nimport { IndexableType } from \"../../public/types/indexable-type\";\nimport { emptyCollection, fail, addIgnoreCaseAlgorithm, createRange, rangeEqual } from './where-clause-helpers';\nimport { INVALID_KEY_ARGUMENT, STRING_EXPECTED, maxString, minKey } from '../../globals/constants';\nimport { getArrayOf, NO_CHAR_ARRAY } from '../../functions/utils';\nimport { exceptions } from '../../errors';\nimport { Dexie } from '../dexie';\nimport { Collection as ICollection} from \"../../public/types/collection\";\n\n/** class WhereClause\n * \n * https://dexie.org/docs/WhereClause/WhereClause\n */\nexport class WhereClause implements IWhereClause {\n db: Dexie;\n _IDBKeyRange: typeof IDBKeyRange;\n _ctx: {\n table: Table;\n index: string;\n or: Collection;\n }\n _cmp: (a: IndexableType, b: IndexableType) => number;\n _ascending: (a: IndexableType, b: IndexableType) => number;\n _descending: (a: IndexableType, b: IndexableType) => number;\n _min: (a: IndexableType, b: IndexableType) => IndexableType;\n _max: (a: IndexableType, b: IndexableType) => IndexableType;\n\n get Collection() {\n return this._ctx.table.db.Collection;\n }\n\n /** WhereClause.between()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.between()\n * \n **/\n between(lower: IndexableType, upper: IndexableType, includeLower?: boolean, includeUpper?: boolean) {\n includeLower = includeLower !== false; // Default to true\n includeUpper = includeUpper === true; // Default to false\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this); // Workaround for idiotic W3C Specification that DataError must be thrown if lower > upper. The natural result would be to return an empty collection.\n return new this.Collection(this, ()=>createRange(lower, upper, !includeLower, !includeUpper));\n } catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n }\n\n /** WhereClause.equals()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equals()\n * \n **/\n equals(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => rangeEqual(value)) as ICollection;\n }\n\n /** WhereClause.above()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.above()\n * \n **/\n above(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, true));\n }\n\n /** WhereClause.aboveOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.aboveOrEqual()\n * \n **/\n aboveOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(value, undefined, false));\n }\n\n /** WhereClause.below()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.below()\n * \n **/\n below(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value, false, true));\n }\n\n /** WhereClause.belowOrEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.belowOrEqual()\n * \n **/\n belowOrEqual(value: IndexableType) {\n if (value == null) return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, () => createRange(undefined, value));\n }\n\n /** WhereClause.startsWith()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWith()\n * \n **/\n startsWith(str: string) {\n if (typeof str !== 'string') return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n }\n\n /** WhereClause.startsWithIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithIgnoreCase()\n * \n **/\n startsWithIgnoreCase(str: string) {\n if (str === \"\") return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, (x, a) => x.indexOf(a[0]) === 0, [str], maxString);\n }\n\n /** WhereClause.equalsIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.equalsIgnoreCase()\n * \n **/\n equalsIgnoreCase(str: string) {\n return addIgnoreCaseAlgorithm(this, (x, a) => x === a[0], [str], \"\");\n }\n\n /** WhereClause.anyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOfIgnoreCase()\n * \n **/\n anyOfIgnoreCase(...values: string[]): Collection;\n anyOfIgnoreCase(values: string[]): Collection;\n anyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.indexOf(x) !== -1, set, \"\");\n }\n\n /** WhereClause.startsWithAnyOfIgnoreCase()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOfIgnoreCase()\n * \n **/\n startsWithAnyOfIgnoreCase(...values: string[]): Collection;\n startsWithAnyOfIgnoreCase(values: string[]): Collection;\n startsWithAnyOfIgnoreCase() {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, (x, a) => a.some(n => x.indexOf(n) === 0), set, maxString);\n }\n\n /** WhereClause.anyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.anyOf()\n * \n **/\n anyOf(...values: string[]): Collection;\n anyOf(values: string[]): Collection;\n anyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n let compare = this._cmp;\n try { set.sort(compare); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n if (set.length === 0) return emptyCollection(this);\n const c = new this.Collection(this, () => createRange(set[0], set[set.length - 1]));\n\n c._ondirectionchange = direction => {\n compare = (direction === \"next\" ?\n this._ascending :\n this._descending);\n set.sort(compare);\n };\n\n let i = 0;\n c._addAlgorithm((cursor, advance, resolve) => {\n const key = cursor.key;\n while (compare(key, set[i]) > 0) {\n // The cursor has passed beyond this key. Check next.\n ++i;\n if (i === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.notEqual()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.notEqual()\n * \n **/\n notEqual(value: IndexableType) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.noneOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.noneOf()\n * \n **/\n noneOf(...values: string[]): Collection;\n noneOf(values: string[]): Collection;\n noneOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0) return new this.Collection(this); // Return entire collection.\n try { set.sort(this._ascending); } catch (e) { return fail(this, INVALID_KEY_ARGUMENT); }\n // Transform [\"a\",\"b\",\"c\"] to a set of ranges for between/above/below: [[minKey,\"a\"], [\"a\",\"b\"], [\"b\",\"c\"], [\"c\",maxKey]]\n const ranges = set.reduce(\n (res, val) => res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]],\n null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n }\n\n /** WhereClause.inAnyRange()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.inAnyRange()\n * \n **/\n inAnyRange(\n ranges: ReadonlyArray<{ 0: IndexableType, 1: IndexableType }>,\n options?: { includeLowers?: boolean, includeUppers?: boolean })\n {\n const cmp = this._cmp,\n ascending = this._ascending,\n descending = this._descending,\n min = this._min,\n max = this._max;\n\n if (ranges.length === 0) return emptyCollection(this);\n if (!ranges.every(range =>\n range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0)) {\n return fail(\n this,\n \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\",\n exceptions.InvalidArgument);\n }\n const includeLowers = !options || options.includeLowers !== false; // Default to true\n const includeUppers = options && options.includeUppers === true; // Default to false\n\n function addRange(ranges, newRange) {\n let i = 0, l = ranges.length;\n for (; i < l; ++i) {\n const range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n\n let sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n\n // Join overlapping ranges\n let set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n } catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n\n let rangePos = 0;\n const keyIsBeyondCurrentEntry = includeUppers ?\n key => ascending(key, set[rangePos][1]) > 0 :\n key => ascending(key, set[rangePos][1]) >= 0;\n\n const keyIsBeforeCurrentEntry = includeLowers ?\n key => descending(key, set[rangePos][0]) > 0 :\n key => descending(key, set[rangePos][0]) >= 0;\n\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n\n let checkKey = keyIsBeyondCurrentEntry;\n\n const c = new this.Collection(\n this,\n () => createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers));\n\n c._ondirectionchange = direction => {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n } else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n\n c._addAlgorithm((cursor, advance, resolve) => {\n var key = cursor.key;\n while (checkKey(key)) {\n // The cursor has passed beyond this key. Check next.\n ++rangePos;\n if (rangePos === set.length) {\n // There is no next. Stop searching.\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n // The current cursor value should be included and we should continue a single step in case next item has the same key or possibly our next key in set.\n return true;\n } else if (this._cmp(key, set[rangePos][1]) === 0 || this._cmp(key, set[rangePos][0]) === 0) {\n // includeUpper or includeLower is false so keyWithinCurrentRange() returns false even though we are at range border.\n // Continue to next key but don't include this one.\n return false;\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n advance(() => {\n if (sortDirection === ascending) cursor.continue(set[rangePos][0]);\n else cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n }\n\n /** WhereClause.startsWithAnyOf()\n * \n * https://dexie.org/docs/WhereClause/WhereClause.startsWithAnyOf()\n * \n **/\n startsWithAnyOf(...prefixes: string[]): Collection;\n startsWithAnyOf(prefixes: string[]): Collection;\n startsWithAnyOf() {\n const set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n\n if (!set.every(s => typeof s === 'string')) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0) return emptyCollection(this);\n\n return this.inAnyRange(set.map((str: string) => [str, str + maxString]));\n }\n\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { WhereClause } from './where-clause';\nimport { Table } from '../table';\nimport { Collection } from '../collection';\nimport { exceptions } from '../../errors';\n\nexport interface WhereClauseConstructor {\n new(table: Table, index?: string, orCollection?: Collection): WhereClause;\n prototype: WhereClause;\n}\n\n/** Generates a WhereClause constructor.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createWhereClauseConstructor(db: Dexie) {\n return makeClassConstructor(\n WhereClause.prototype,\n\n function WhereClause(this: WhereClause, table: Table, index?: string, orCollection?: Collection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n const indexedDB = db._deps.indexedDB;\n if (!indexedDB) throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = (a, b) => indexedDB.cmp(b, a);\n this._max = (a, b) => indexedDB.cmp(a,b) > 0 ? a : b;\n this._min = (a, b) => indexedDB.cmp(a,b) < 0 ? a : b;\n this._IDBKeyRange = db._deps.IDBKeyRange;\n }\n );\n}\n","import { wrap } from \"../helpers/promise\";\n\nexport function eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject (event.target.error);\n return false;\n });\n}\n\nexport function eventSuccessHandler (resolve) {\n return wrap(function (event){\n resolve(event.target.result);\n });\n}\n\nexport function hookedEventRejectHandler (reject) {\n return wrap(function (event) {\n // See comment on hookedEventSuccessHandler() why wrap() is needed only when supporting hooks.\n \n var req = event.target,\n err = req.error,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n hookErrorHandler = ctx && ctx.onerror;\n hookErrorHandler && hookErrorHandler(err);\n preventDefault(event);\n reject (err);\n return false;\n });\n}\n\nexport function hookedEventSuccessHandler(resolve) {\n // wrap() is needed when calling hooks because the rare scenario of:\n // * hook does a db operation that fails immediately (IDB throws exception)\n // For calling db operations on correct transaction, wrap makes sure to set PSD correctly.\n // wrap() will also execute in a virtual tick.\n // * If not wrapped in a virtual tick, direct exception will launch a new physical tick.\n // * If this was the last event in the bulk, the promise will resolve after a physical tick\n // and the transaction will have committed already.\n // If no hook, the virtual tick will be executed in the reject()/resolve of the final promise,\n // because it is always marked with _lib = true when created using Transaction._promise().\n return wrap(function(event) {\n var req = event.target,\n ctx = req._hookCtx,// Contains the hook error handler. Put here instead of closure to boost performance.\n result = ctx.value || req.result, // Pass the object value on updates. The result from IDB is the primary key.\n hookSuccessHandler = ctx && ctx.onsuccess;\n hookSuccessHandler && hookSuccessHandler(result);\n resolve && resolve(result);\n }, resolve);\n}\n\n\nexport function preventDefault(event) {\n if (event.stopPropagation) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.stopPropagation();\n if (event.preventDefault) // IndexedDBShim doesnt support this on Safari 8 and below.\n event.preventDefault();\n}\n\nexport function BulkErrorHandlerCatchAll(errorList, done?, supportHooks?) {\n return (supportHooks ? hookedEventRejectHandler : eventRejectHandler)(e => {\n errorList.push(e);\n done && done();\n });\n}\n\n","import Events from '../helpers/Events';\nimport { GlobalDexieEvents } from '../public/types/db-events';\n\nexport const DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated' as 'storagemutated';\n\n// Name of the global event fired using DOM dispatchEvent (if not in node).\n// Reason for propagating this as a DOM event is for getting reactivity across\n// multiple versions of Dexie within the same app (as long as they are\n// compatible with regards to the event data).\n// If the ObservabilitySet protocol change in a way that would not be backward\n// compatible, make sure also update the event name to a new number at the end\n// so that two Dexie instances of different versions continue to work together\n// - maybe not able to communicate but won't fail due to unexpected data in\n// the detail property of the CustomEvent. If so, also make sure to udpate\n// docs and explain at which Dexie version the new name and format of the event\n// is being used.\nexport const STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\n\nexport const globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME) as GlobalDexieEvents;\n","import { Transaction as ITransaction } from '../../public/types/transaction';\nimport { DexiePromise, wrap, rejection } from \"../../helpers/promise\";\nimport { DbSchema } from '../../public/types/db-schema';\nimport { assert, hasOwn } from '../../functions/utils';\nimport { PSD, usePSD } from '../../helpers/promise';\nimport { Dexie } from '../dexie';\nimport { exceptions } from '../../errors';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { preventDefault } from '../../functions/event-wrappers';\nimport { newScope } from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { Table } from '../table';\nimport { globalEvents } from '../../globals/global-events';\n\n/** Transaction\n * \n * https://dexie.org/docs/Transaction/Transaction\n * \n **/\nexport class Transaction implements ITransaction {\n db: Dexie;\n active: boolean;\n mode: IDBTransactionMode;\n chromeTransactionDurability: ChromeTransactionDurability;\n idbtrans: IDBTransaction;\n storeNames: string[];\n on: any;\n parent?: Transaction;\n schema: DbSchema;\n _memoizedTables: {[tableName: string]: Table};\n\n _reculock: number;\n _blockedFuncs: { 0: () => any, 1: any }[];\n _resolve: () => void;\n _reject: (Error) => void;\n _waitingFor: DexiePromise; // for waitFor()\n _waitingQueue: Function[]; // for waitFor()\n _spinCount: number; // Just for debugging waitFor()\n _completion: DexiePromise;\n\n //\n // Transaction internal methods (not required by API users, but needed internally and eventually by dexie extensions)\n //\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _lock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n // Temporary set all requests into a pending queue if they are called before database is ready.\n ++this._reculock; // Recursive read/write lock pattern using PSD (Promise Specific Data) instead of TLS (Thread Local Storage)\n if (this._reculock === 1 && !PSD.global) PSD.lockOwnerFor = this;\n return this;\n }\n\n /** Transaction._unlock()\n * \n * Internal method.\n */\n _unlock() {\n assert(!PSD.global); // Locking and unlocking reuires to be within a PSD scope.\n if (--this._reculock === 0) {\n if (!PSD.global) PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try { usePSD(fnAndPSD[1], fnAndPSD[0]); } catch (e) { }\n }\n }\n return this;\n }\n\n /** Transaction._lock()\n * \n * Internal method.\n */\n _locked() {\n // Checks if any write-lock is applied on this transaction.\n // To simplify the Dexie API for extension implementations, we support recursive locks.\n // This is accomplished by using \"Promise Specific Data\" (PSD).\n // PSD data is bound to a Promise and any child Promise emitted through then() or resolve( new Promise() ).\n // PSD is local to code executing on top of the call stacks of any of any code executed by Promise():\n // * callback given to the Promise() constructor (function (resolve, reject){...})\n // * callbacks given to then()/catch()/finally() methods (function (value){...})\n // If creating a new independant Promise instance from within a Promise call stack, the new Promise will derive the PSD from the call stack of the parent Promise.\n // Derivation is done so that the inner PSD __proto__ points to the outer PSD.\n // PSD.lockOwnerFor will point to current transaction object if the currently executing PSD scope owns the lock.\n return this._reculock && PSD.lockOwnerFor !== this;\n }\n\n /** Transaction.create()\n * \n * Internal method.\n * \n */\n create(idbtrans?: IDBTransaction) {\n if (!this.mode) return this;\n const idbdb = this.db.idbdb;\n const dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n // Errors where it is no difference whether it was caused by the user operation or an earlier call to db.open()\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n // Make it clear that the user operation was not what caused the error - the error had occurred earlier on db.open()!\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active) throw new exceptions.TransactionInactive();\n assert(this._completion._state === null); // Completion Promise must still be pending.\n\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core \n ? this.db.core.transaction(this.storeNames, this.mode as 'readwrite' | 'readonly', { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n ) as IDBTransaction;\n\n idbtrans.onerror = wrap(ev => {\n preventDefault(ev);// Prohibit default bubbling to window.error\n this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(ev => {\n preventDefault(ev);\n this.active && this._reject(new exceptions.Abort(idbtrans.error));\n this.active = false;\n this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(() => {\n this.active = false;\n this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n }\n\n /** Transaction._promise()\n * \n * Internal method.\n */\n _promise(\n mode: IDBTransactionMode,\n fn: (resolve, reject, trans: Transaction) => PromiseLike | void,\n bWriteLock?: string | boolean): DexiePromise\n {\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n\n if (this._locked()) {\n return new DexiePromise((resolve, reject) => {\n this._blockedFuncs.push([() => {\n this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n\n } else if (bWriteLock) {\n return newScope(() => {\n var p = new DexiePromise((resolve, reject) => {\n this._lock();\n const rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p.finally(() => this._unlock());\n p._lib = true;\n return p;\n });\n\n } else {\n var p = new DexiePromise((resolve, reject) => {\n var rv = fn(resolve, reject, this);\n if (rv && rv.then) rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n }\n\n /** Transaction._root()\n * \n * Internal method. Retrieves the root transaction in the tree of sub transactions.\n */\n _root() {\n return this.parent ? this.parent._root() : this;\n }\n\n /** Transaction.waitFor()\n * \n * Internal method. Can be accessed from the public API through\n * Dexie.waitFor(): https://dexie.org/docs/Dexie/Dexie.waitFor()\n * \n **/\n waitFor(promiseLike: PromiseLike) {\n // Always operate on the root transaction (in case this is a sub stransaction)\n var root = this._root();\n // For stability reasons, convert parameter to promise no matter what type is passed to waitFor().\n // (We must be able to call .then() on it.)\n const promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n // Already called waitFor(). Wait for both to complete.\n root._waitingFor = root._waitingFor.then(() => promise);\n } else {\n // We're not in waiting state. Start waiting state.\n root._waitingFor = promise;\n root._waitingQueue = [];\n // Start interacting with indexedDB until promise completes:\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount; // For debugging only\n while (root._waitingQueue.length) (root._waitingQueue.shift())();\n if (root._waitingFor) store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise((resolve, reject) => {\n promise.then(\n res => root._waitingQueue.push(wrap(resolve.bind(null, res))),\n err => root._waitingQueue.push(wrap(reject.bind(null, err)))\n ).finally(() => {\n if (root._waitingFor === currentWaitPromise) {\n // No one added a wait after us. Safe to stop the spinning.\n root._waitingFor = null;\n }\n });\n });\n } \n\n /** Transaction.abort()\n * \n * https://dexie.org/docs/Transaction/Transaction.abort()\n */\n abort() {\n if (this.active) {\n this.active = false;\n if (this.idbtrans) this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n }\n\n /** Transaction.table()\n * \n * https://dexie.org/docs/Transaction/Transaction.table()\n */\n table(tableName: string) {\n const memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n const tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\"); \n }\n\n const transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Transaction } from './transaction';\nimport { DbSchema } from '../../public/types/db-schema';\nimport Events from '../../helpers/Events';\nimport Promise, { rejection } from '../../helpers/promise';\n\nexport interface TransactionConstructor {\n new (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: ChromeTransactionDurability,\n parent?: Transaction) : T;\n prototype: T;\n}\n\n/** Generates a Transaction constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createTransactionConstructor(db: Dexie) {\n return makeClassConstructor>(\n Transaction.prototype,\n function Transaction (\n this: Transaction,\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n chromeTransactionDurability: ChromeTransactionDurability,\n parent?: Transaction)\n {\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0; // Just for debugging waitFor()\n this._completion = new Promise ((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n \n this._completion.then(\n ()=> {\n this.active = false;\n this.on.complete.fire();\n },\n e => {\n var wasActive = this.active;\n this.active = false;\n this.on.error.fire(e);\n this.parent ?\n this.parent._reject(e) :\n wasActive && this.idbtrans && this.idbtrans.abort();\n return rejection(e); // Indicate we actually DO NOT catch this error.\n });\n \n });\n}\n","import { IndexSpec } from '../public/types/index-spec';\n\nexport function createIndexSpec(\n name: string,\n keyPath: string | string[],\n unique: boolean,\n multi: boolean,\n auto: boolean,\n compound: boolean,\n isPrimKey: boolean\n): IndexSpec {\n return {\n name,\n keyPath,\n unique,\n multi,\n auto,\n compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n }\n}\n\nexport function nameFromKeyPath (keyPath?: string | string[]): string {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n","import { IndexSpec } from '../public/types/index-spec';\nimport { TableSchema } from '../public/types/table-schema';\nimport { createIndexSpec } from './index-spec';\nimport { arrayToObject } from '../functions/utils';\n\nexport function createTableSchema (\n name: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n): TableSchema {\n return {\n name,\n primKey,\n indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, index => [index.name, index])\n };\n}\n","import { maxString } from '../globals/constants';\n\nexport function safariMultiStoreFix(storeNames: string[]) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\n\nexport function getNativeGetDatabaseNamesFn(indexedDB) {\n var fn = indexedDB && (indexedDB.getDatabaseNames || indexedDB.webkitGetDatabaseNames);\n return fn && fn.bind(indexedDB);\n}\n\nexport let getMaxKey = (IdbKeyRange: typeof IDBKeyRange) => {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = () => [[]];\n return [[]];\n } catch (e) {\n getMaxKey = () => maxString;\n return maxString;\n }\n}\n","import { getByKeyPath } from '../functions/utils';\n\nexport function getKeyExtractor (keyPath: null | string | string[]) : (a: any) => any {\n if (keyPath == null) {\n return () => undefined;\n } else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n\nexport function getSinglePathKeyExtractor(keyPath: string) {\n const split = keyPath.split('.');\n if (split.length === 1) {\n return obj => obj[keyPath];\n } else {\n return obj => getByKeyPath(obj, keyPath);\n }\n}\n","import {\n DBCore,\n DBCoreCursor,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryResponse,\n DBCoreRangeType,\n DBCoreSchema,\n DBCoreTableSchema,\n DBCoreTable,\n DBCoreMutateResponse,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { eventRejectHandler, preventDefault } from '../functions/event-wrappers';\nimport { wrap } from '../helpers/promise';\nimport { getMaxKey } from '../functions/quirks';\nimport { getKeyExtractor } from './get-key-extractor';\n\nexport function arrayify(arrayLike: {length: number, [index: number]: T}): T[] {\n return [].slice.call(arrayLike);\n}\nexport function pick(obj: T, props: Prop[]): Pick {\n const result = {} as Pick;\n props.forEach(prop => result[prop] = obj[prop]);\n return result;\n}\n\nlet _id_counter = 0;\n\nexport function getKeyPathAlias(keyPath: null | string | string[]) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n `[${keyPath.join('+')}]`;\n}\n\nexport function createDBCore (\n db: IDBDatabase,\n IdbKeyRange: typeof IDBKeyRange,\n tmpTrans: IDBTransaction) : DBCore\n{\n function extractSchema(db: IDBDatabase, trans: IDBTransaction) : {schema: DBCoreSchema, hasGetAll: boolean} {\n const tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(table => trans.objectStore(table)).map(store => {\n const {keyPath, autoIncrement} = store;\n const compound = isArray(keyPath);\n const outbound = keyPath == null;\n const indexByKeyPath: {[keyPathAlias: string]: DBCoreIndex} = {};\n const result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound,\n compound,\n keyPath,\n autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n } as DBCoreIndex,\n indexes: arrayify(store.indexNames).map(indexName => store.index(indexName))\n .map(index => {\n const {name, unique, multiEntry, keyPath} = index;\n const compound = isArray(keyPath);\n const result: DBCoreIndex = {\n name,\n compound,\n keyPath,\n unique,\n multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: (keyPath: null | string | string[]) => indexByKeyPath[getKeyPathAlias(keyPath)]\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) // Bug with getAll() on Safari ver<604. See discussion following PR #579\n };\n }\n\n function makeIDBKeyRange (range: DBCoreKeyRange) : IDBKeyRange | null {\n if (range.type === DBCoreRangeType.Any) return null;\n if (range.type === DBCoreRangeType.Never) throw new Error(\"Cannot convert never type to IDBKeyRange\");\n const {lower, upper, lowerOpen, upperOpen} = range;\n const idbRange = lower === undefined ?\n upper === undefined ?\n null : //IDBKeyRange.lowerBound(-Infinity, false) : // Any range (TODO: Should we return null instead?)\n IdbKeyRange.upperBound(upper, !!upperOpen) : // below\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) : // above\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n\n function createDbCoreTable(tableSchema: DBCoreTableSchema): DBCoreTable {\n const tableName = tableSchema.name;\n\n function mutate ({trans, type, keys, values, range}) {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const outbound = store.keyPath == null;\n const isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error (\"Invalid operation type: \" + type);\n\n const {length} = keys || values || {length: 1}; // keys.length if keys. values.length if values. 1 if range.\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n // No items to write. Don't even bother!\n return resolve({numFailures: 0, failures: {}, results: [], lastResult: undefined});\n\n let req: IDBRequest;\n const reqs: IDBRequest[] = [];\n \n const failures: {[operationNumber: number]: Error} = [];\n let numFailures = 0;\n const errorHandler = \n event => {\n ++numFailures;\n preventDefault(event);\n };\n \n if (type === 'deleteRange') {\n // Here the argument is the range\n if (range.type === DBCoreRangeType.Never)\n return resolve({numFailures, failures, results: [], lastResult: undefined}); // Deleting the Never range shoulnt do anything.\n if (range.type === DBCoreRangeType.Any)\n reqs.push(req = store.clear()); // Deleting the Any range is equivalent to store.clear()\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n } else {\n // No matter add, put or delete - find out arrays of first and second arguments to it.\n const [args1, args2] = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null];\n\n if (isAddOrPut) {\n for (let i=0; i {\n const lastResult = event.target.result;\n reqs.forEach((req, i) => req.error != null && (failures[i] = req.error));\n resolve({\n numFailures,\n failures,\n results: type === \"delete\" ? keys : reqs.map(req => req.result),\n lastResult\n });\n };\n \n req.onerror = event => { // wrap() not needed. All paths calling outside will wrap!\n errorHandler(event);\n done(event);\n };\n \n req.onsuccess = done;\n });\n }\n \n function openCursor ({trans, values, query, reverse, unique}: DBCoreOpenCursorRequest): Promise\n {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n // source\n const source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n // direction\n const direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n // request\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n \n // iteration\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(ev => {\n\n const cursor = req.result as unknown as DBCoreCursor;\n if (!cursor) {\n resolve(null);\n return;\n }\n (cursor as any).___id = ++_id_counter;\n (cursor as any).done = false;\n const _cursorContinue = cursor.continue.bind(cursor);\n let _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey) _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n const _cursorAdvance = cursor.advance.bind(cursor);\n const doThrowCursorIsNotStarted = ()=>{throw new Error(\"Cursor not started\");}\n const doThrowCursorIsStopped = ()=>{throw new Error(\"Cursor not stopped\");}\n (cursor as any).trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function (this: DBCoreCursor) {\n // next() must work with \"this\" pointer in order to function correctly for ProxyCursors (derived objects)\n // without having to re-define next() on each child.\n let gotOne = 1;\n return this.start(() => gotOne-- ? this.continue() : this.stop()).then(() => this);\n };\n cursor.start = (callback) => {\n //console.log(\"Starting cursor\", (cursor as any).___id);\n const iterationPromise = new Promise((resolveIteration, rejectIteration) =>{\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = value => {\n //console.log(\"Cursor stop\", cursor);\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n // Now change req.onsuccess to a callback that doesn't call initCursor but just observer.next()\n const guardedCallback = () => {\n if (req.result) {\n //console.log(\"Next result\", cursor);\n try {\n callback();\n } catch (err) {\n cursor.fail(err);\n }\n } else {\n (cursor as any).done = true;\n cursor.start = ()=>{throw new Error(\"Cursor behind last entry\");}\n cursor.stop();\n }\n }\n req.onsuccess = wrap(ev => {\n //cursor.continue = _cursorContinue;\n //cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n //cursor.advance = _cursorAdvance;\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject); \n });\n }\n \n function query (hasGetAll: boolean) {\n return (request: DBCoreQueryRequest) => {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const {trans, values, limit, query} = request;\n const nonInfinitLimit = limit === Infinity ? undefined : limit;\n const {index, range} = query;\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0) return resolve({result: []});\n if (hasGetAll) {\n const req = values ?\n (source as any).getAll(idbKeyRange, nonInfinitLimit) :\n (source as any).getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = event => resolve({result: event.target.result});\n req.onerror = eventRejectHandler(reject);\n } else {\n let count = 0;\n const req = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange)\n const result = [];\n req.onsuccess = event => {\n const cursor = req.result as IDBCursorWithValue;\n if (!cursor) return resolve({result});\n result.push(values ? cursor.value : cursor.primaryKey);\n if (++count === limit) return resolve({result});\n cursor.continue();\n };\n req.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n \n return {\n name: tableName,\n schema: tableSchema,\n \n mutate,\n\n getMany ({trans, keys}) {\n return new Promise((resolve, reject) => {\n resolve = wrap(resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const length = keys.length;\n const result = new Array(length);\n let keyCount = 0;\n let callbackCount = 0;\n let valueCount = 0;\n let req: IDBRequest & {_pos?: number};\n \n const successHandler = event => {\n const req = event.target;\n if ((result[req._pos] = req.result) != null) ++valueCount;\n if (++callbackCount === keyCount) resolve(result);\n };\n const errorHandler = eventRejectHandler(reject);\n \n for (let i=0; i((resolve, reject) => {\n resolve = wrap (resolve);\n const store = (trans as IDBTransaction).objectStore(tableName);\n const req = store.get(key);\n req.onsuccess = event => resolve((event.target as any).result);\n req.onerror = eventRejectHandler(reject);\n });\n },\n\n query: query(hasGetAll),\n \n openCursor,\n\n count ({query, trans}) {\n const {index, range} = query;\n return new Promise((resolve, reject) => {\n const store = (trans as IDBTransaction).objectStore(tableName);\n const source = index.isPrimaryKey ? store : store.index(index.name);\n const idbKeyRange = makeIDBKeyRange(range);\n const req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(ev => resolve((ev.target as IDBRequest).result));\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n\n const {schema, hasGetAll} = extractSchema(db, tmpTrans);\n const tables = schema.tables.map(tableSchema => createDbCoreTable(tableSchema));\n const tableMap: {[name: string]: DBCoreTable} = {};\n tables.forEach(table => tableMap[table.name] = table);\n return {\n stack: \"dbcore\",\n \n transaction: db.transaction.bind(db),\n\n table(name: string) {\n const result = tableMap[name];\n if (!result) throw new Error(`Table '${name}' not found`);\n return tableMap[name];\n },\n\n MIN_KEY: -Infinity,\n\n MAX_KEY: getMaxKey(IdbKeyRange),\n\n schema\n\n };\n}\n","import { Dexie } from './';\nimport { createDBCore } from '../../dbcore/dbcore-indexeddb';\nimport { DBCore } from '../../public/types/dbcore';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { DexieStacks, Middleware } from '../../public/types/middleware';\nimport { exceptions } from '../../errors';\n\nfunction createMiddlewareStack(\n stackImpl: {stack: string},\n middlewares: Middleware<{stack: string}>[]): TStack {\n return middlewares.reduce((down, {create}) => ({...down, ...create(down)}), stackImpl) as TStack;\n} \n\nfunction createMiddlewareStacks(\n middlewares: {[StackName in keyof DexieStacks]?: Middleware[]},\n idbdb: IDBDatabase,\n {IDBKeyRange, indexedDB}: DexieDOMDependencies,\n tmpTrans: IDBTransaction): {[StackName in keyof DexieStacks]?: DexieStacks[StackName]}\n{\n const dbcore = createMiddlewareStack(\n createDBCore(idbdb, IDBKeyRange, tmpTrans),\n middlewares.dbcore);\n \n // TODO: Create other stacks the same way as above. They might be dependant on the result\n // of creating dbcore stack.\n\n return {\n dbcore\n };\n}\n\nexport function generateMiddlewareStacks({_novip: db}: Dexie, tmpTrans: IDBTransaction) {\n const idbdb = tmpTrans.db;\n const stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore!;\n db.tables.forEach(table => {\n const tableName = table.name;\n if (db.core.schema.tables.some(tbl => tbl.name === tableName)) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n","import { Dexie } from '../dexie';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { _global } from \"../../globals/global\";\nimport { setProp, keys, slice, isArray, shallowClone, isAsyncFunction, defineProperty, getPropertyDescriptor } from '../../functions/utils';\nimport { Transaction } from '../transaction';\nimport { Version } from './version';\nimport Promise, { PSD, newScope, NativePromise, decrementExpectedAwaits, incrementExpectedAwaits } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { TableSchema } from '../../public/types/table-schema';\nimport { IndexSpec } from '../../public/types/index-spec';\nimport { hasIEDeleteObjectStoreBug, isIEOrEdge } from '../../globals/constants';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { createIndexSpec, nameFromKeyPath } from '../../helpers/index-spec';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { generateMiddlewareStacks } from '../dexie/generate-middleware-stacks';\n\nexport function setApiOnPlace({_novip: db}: Dexie, objs: Object[], tableNames: string[], dbschema: DbSchema) {\n tableNames.forEach(tableName => {\n const schema = dbschema[tableName];\n objs.forEach(obj => {\n const propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n // Either the prop is not declared, or it is initialized to undefined.\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n // obj is a Transaction prototype (or prototype of a subclass to Transaction)\n // Make the API a getter that returns this.table(tableName)\n setProp(obj, tableName, {\n get(this: Transaction) { return this.table(tableName); },\n set(value: any) {\n // Issue #1039\n // Let \"this.schema = dbschema;\" and other props in transaction constructor work even if there's a name collision with the table name.\n defineProperty(this, tableName, {value, writable: true, configurable: true, enumerable: true});\n }\n });\n } else {\n // Table will not be bound to a transaction (will use Dexie.currentTransaction)\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\n\nexport function removeTablesApi({_novip: db}: Dexie, objs: Object[]) {\n objs.forEach(obj => {\n for (let key in obj) {\n if (obj[key] instanceof db.Table) delete obj[key];\n }\n });\n}\n\nexport function lowerVersionFirst(a: Version, b: Version) {\n return a._cfg.version - b._cfg.version;\n}\n\nexport function runUpgraders(db: Dexie, oldVersion: number, idbUpgradeTrans: IDBTransaction, reject) {\n const globalSchema = db._dbSchema;\n const trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n const rejectTransaction = trans._reject.bind(trans);\n const transless = PSD.transless || PSD;\n newScope(() => {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n // Create tables:\n keys(globalSchema).forEach(tableName => {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n Promise.follow(() => db.on.populate.fire(trans)).catch(rejectTransaction);\n } else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\n\nexport type UpgradeQueueItem = (idbtrans: IDBTransaction) => PromiseLike | void;\n\nexport function updateTablesAndIndexes(\n {_novip: db}: Dexie,\n oldVersion: number,\n trans: Transaction,\n idbUpgradeTrans: IDBTransaction)\n{\n // Upgrade version to version, step-by-step from oldest to newest version.\n // Each transaction object will contain the table set that was current in that version (but also not-yet-deleted tables from its previous version)\n const queue: UpgradeQueueItem[] = [];\n const versions = db._versions;\n let globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n let anyContentUpgraderHasRun = false;\n\n const versToRun = versions.filter(v => v._cfg.version >= oldVersion);\n versToRun.forEach(version => {\n queue.push(() => {\n const oldSchema = globalSchema;\n const newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n\n globalSchema = db._dbSchema = newSchema;\n\n const diff = getSchemaDiff(oldSchema, newSchema);\n // Add tables \n diff.add.forEach(tuple => {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n // Change tables\n diff.change.forEach(change => {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n } else {\n const store = idbUpgradeTrans.objectStore(change.name);\n // Add indexes\n change.add.forEach(idx => addIndex(store, idx));\n // Update indexes\n change.change.forEach(idx => {\n store.deleteIndex(idx.name);\n addIndex(store, idx);\n });\n // Delete indexes\n change.del.forEach(idxName => store.deleteIndex(idxName));\n }\n });\n\n const contentUpgrade = version._cfg.contentUpgrade;\n\n if (contentUpgrade && version._cfg.version > oldVersion) {\n // Update db.core with new tables and indexes:\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {}; // Invalidate memoization as transaction shape may change between versions.\n\n anyContentUpgraderHasRun = true;\n\n // Add to-be-deleted tables to contentUpgrade transaction\n let upgradeSchema = shallowClone(newSchema);\n diff.del.forEach(table => {\n upgradeSchema[table] = oldSchema[table];\n });\n\n // Safe to affect Transaction.prototype globally in this moment,\n // because when this code runs, there may not be any other code\n // that can access any transaction instance, else than this particular\n // upgrader function.\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema), upgradeSchema);\n trans.schema = upgradeSchema;\n\n // Support for native async await.\n const contentUpgradeIsAsync = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync) {\n incrementExpectedAwaits();\n }\n \n let returnValue: any;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = contentUpgrade(trans);\n if (returnValue) {\n if (contentUpgradeIsAsync) {\n // contentUpgrade is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue && typeof returnValue.then === 'function' ?\n Promise.resolve(returnValue) : promiseFollowed.then(()=>returnValue));\n }\n });\n queue.push(idbtrans => {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) { // Dont delete old tables if ieBug is present and a content upgrader has run. Let tables be left in DB so far. This needs to be taken care of.\n const newSchema = version._cfg.dbschema;\n // Delete old tables\n deleteRemovedTables(newSchema, idbtrans);\n }\n // Restore the final API\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n\n // Now, create a queue execution engine\n function runQueue() {\n return queue.length ? Promise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n Promise.resolve();\n }\n\n return runQueue().then(() => {\n createMissingTables(globalSchema, idbUpgradeTrans); // At last, make sure to create any missing tables. (Needed by addons that add stores to DB without specifying version)\n });\n}\n\nexport interface SchemaDiff {\n del: string[],\n add: [string, TableSchema][];\n change: TableSchemaDiff[];\n}\n\nexport interface TableSchemaDiff {\n name: string,\n recreate: boolean,\n del: string[],\n add: IndexSpec[],\n change: IndexSpec[]\n}\n\nexport function getSchemaDiff(oldSchema: DbSchema, newSchema: DbSchema): SchemaDiff {\n const diff: SchemaDiff = {\n del: [], // Array of table names\n add: [], // Array of [tableName, newDefinition]\n change: [] // Array of {name: tableName, recreate: newDefinition, del: delIndexNames, add: newIndexDefs, change: changedIndexDefs}\n };\n let table: string;\n for (table in oldSchema) {\n if (!newSchema[table]) diff.del.push(table);\n }\n for (table in newSchema) {\n const oldDef = oldSchema[table],\n newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n } else {\n const change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if (\n (\n // compare keyPaths no matter if string or string[]\n // compare falsy keypaths same no matter if they are null or empty string.\n ''+(oldDef.primKey.keyPath||'')\n ) !== (\n ''+(newDef.primKey.keyPath||'')\n ) ||\n // Compare the autoIncrement flag also\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge)) // IE has bug reading autoIncrement prop.\n {\n // Primary key has changed. Remove and re-add table.\n change.recreate = true;\n diff.change.push(change);\n } else {\n // Same primary key. Just find out what differs:\n const oldIndexes = oldDef.idxByName;\n const newIndexes = newDef.idxByName;\n let idxName: string;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName]) change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n const oldIdx = oldIndexes[idxName],\n newIdx = newIndexes[idxName];\n if (!oldIdx) change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src) change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\n\nexport function createTable(\n idbtrans: IDBTransaction,\n tableName: string,\n primKey: IndexSpec,\n indexes: IndexSpec[]\n) {\n const store = idbtrans.db.createObjectStore(\n tableName,\n primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto }\n );\n indexes.forEach(idx => addIndex(store, idx));\n return store;\n}\n\nexport function createMissingTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n keys(newSchema).forEach(tableName => {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\n\nexport function deleteRemovedTables(newSchema: DbSchema, idbtrans: IDBTransaction) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(storeName =>\n newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName));\n}\n\nexport function addIndex(store: IDBObjectStore, idx: IndexSpec) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\n\nfunction buildGlobalSchema(\n db: Dexie,\n idbdb: IDBDatabase,\n tmpTrans: IDBTransaction\n) {\n const globalSchema = {};\n const dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(storeName => {\n const store = tmpTrans.objectStore(storeName);\n let keyPath = store.keyPath;\n const primKey = createIndexSpec(\n nameFromKeyPath(keyPath),\n keyPath || \"\",\n false,\n false,\n !!store.autoIncrement,\n keyPath && typeof keyPath !== \"string\",\n true\n );\n const indexes: IndexSpec[] = [];\n for (let j = 0; j < store.indexNames.length; ++j) {\n const idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(\n idbindex.name,\n keyPath,\n !!idbindex.unique,\n !!idbindex.multiEntry,\n false,\n keyPath && typeof keyPath !== \"string\",\n false\n );\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\n\nexport function readGlobalSchema({_novip: db}: Dexie, idbdb: IDBDatabase, tmpTrans: IDBTransaction) {\n db.verno = idbdb.version / 10;\n const globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\n\nexport function verifyInstalledSchema(db: Dexie, tmpTrans: IDBTransaction): boolean {\n const installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n const diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(ch => ch.add.length || ch.change.length));\n}\n\nexport function adjustToExistingIndexNames({_novip: db}: Dexie, schema: DbSchema, idbtrans: IDBTransaction) {\n // Issue #30 Problem with existing db - adjust to existing index names when migrating from non-dexie db\n const storeNames = idbtrans.db.objectStoreNames;\n\n for (let i = 0; i < storeNames.length; ++i) {\n const storeName = storeNames[i];\n const store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n\n for (let j = 0; j < store.indexNames.length; ++j) {\n const indexName = store.indexNames[j];\n const keyPath = store.index(indexName).keyPath;\n const dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n const indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n\n // Bug with getAll() on Safari ver<604 on Workers only, see discussion following PR #579\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n {\n db._hasGetAll = false;\n }\n}\n\nexport function parseIndexSyntax(primKeyAndIndexes: string): IndexSpec[] {\n return primKeyAndIndexes.split(',').map((index, indexNum) => {\n index = index.trim();\n const name = index.replace(/([&*]|\\+\\+)/g, \"\"); // Remove \"&\", \"++\" and \"*\"\n // Let keyPath of \"[a+b]\" be [\"a\",\"b\"]:\n const keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n\n return createIndexSpec(\n name,\n keyPath || null,\n /\\&/.test(index),\n /\\*/.test(index),\n /\\+\\+/.test(index),\n isArray(keyPath),\n indexNum === 0\n );\n });\n}\n","import { Version as IVersion } from '../../public/types/version';\nimport { DbSchema } from '../../public/types/db-schema';\nimport { extend, keys } from '../../functions/utils';\nimport { Dexie } from '../dexie';\nimport { Transaction } from '../transaction';\nimport { removeTablesApi, setApiOnPlace, parseIndexSyntax } from './schema-helpers';\nimport { exceptions } from '../../errors';\nimport { createTableSchema } from '../../helpers/table-schema';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\n\n/** class Version\n *\n * https://dexie.org/docs/Version/Version\n */\nexport class Version implements IVersion {\n db: Dexie;\n _cfg: {\n version: number,\n storesSource: { [tableName: string]: string | null },\n dbschema: DbSchema,\n tables: {},\n contentUpgrade: Function | null\n }\n\n _parseStoresSpec(stores: { [tableName: string]: string | null }, outSchema: DbSchema): any {\n keys(stores).forEach(tableName => {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi) throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(idx => {\n if (idx.auto) throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath) throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n }\n\n stores(stores: { [key: string]: string | null; }): IVersion {\n const db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n const versions = db._versions;\n\n // Derive stores from earlier versions if they are not explicitely specified as null or a new syntax.\n const storesSpec: { [key: string]: string; } = {};\n let dbschema = {};\n versions.forEach(version => { // 'versions' is always sorted by lowest version first.\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n // Update the latest schema to this version\n db._dbSchema = dbschema;\n // Update APIs\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n }\n\n upgrade(upgradeFunction: (trans: Transaction) => PromiseLike | void): Version {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n }\n}\n","import { Dexie } from '../dexie';\nimport { makeClassConstructor } from '../../functions/make-class-constructor';\nimport { Version } from './version';\n\nexport interface VersionConstructor {\n new(versionNumber: number): Version;\n prototype: Version;\n}\n\n/** Generates a Version constructor bound to given Dexie instance.\n * \n * The purpose of having dynamically created constructors, is to allow\n * addons to extend classes for a certain Dexie instance without affecting\n * other db instances.\n */\nexport function createVersionConstructor(db: Dexie) {\n return makeClassConstructor(\n Version.prototype,\n\n function Version(this: Version, versionNumber: number) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n\n}\n","import { Dexie } from \"../classes/dexie/dexie\";\nimport { Table } from \"../public/types/table\";\nimport { DBNAMES_DB } from \"../globals/constants\";\nimport { DexieDOMDependencies } from \"../public/types/dexie-dom-dependencies\";\nimport { nop } from \"../functions/chaining-functions\";\n\ntype IDBKeyNamesVar = typeof IDBKeyRange;\n\nfunction getDbNamesTable(indexedDB: IDBFactory, IDBKeyRange: IDBKeyNamesVar) {\n let dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie(DBNAMES_DB, {\n addons: [],\n indexedDB,\n IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\") as Table<{ name: string }, string>;\n}\n\nfunction hasDatabasesNative(indexedDB: IDBFactory) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\n\nexport function getDatabaseNames({\n indexedDB,\n IDBKeyRange,\n}: DexieDOMDependencies) {\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then((infos) =>\n infos\n // Select name prop of infos:\n .map((info) => info.name)\n // Filter out DBNAMES_DB as previous Dexie or browser version would not have included it in the result.\n .filter((name) => name !== DBNAMES_DB)\n )\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\n\nexport function _onDatabaseCreated(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({name}).catch(nop);\n}\n\nexport function _onDatabaseDeleted(\n { indexedDB, IDBKeyRange }: DexieDOMDependencies,\n name: string\n) {\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n","import { newScope } from '../../helpers/promise';\nimport { PSD } from '../../helpers/promise';\n\nexport function vip (fn) {\n // To be used by subscribers to the on('ready') event.\n // This will let caller through to access DB even when it is blocked while the db.ready() subscribers are firing.\n // This would have worked automatically if we were certain that the Provider was using Dexie.Promise for all asyncronic operations. The promise PSD\n // from the provider.connect() call would then be derived all the way to when provider would call localDatabase.applyChanges(). But since\n // the provider more likely is using non-promise async APIs or other thenable implementations, we cannot assume that.\n // Note that this method is only useful for on('ready') subscribers that is returning a Promise from the event. If not using vip()\n // the database could deadlock since it wont open until the returned Promise is resolved, and any non-VIPed operation started by\n // the caller will not resolve until database is opened.\n return newScope(function () {\n PSD.letThrough = true; // Make sure we are let through if still blocking db due to onready is firing.\n return fn();\n });\n}\n\n","/**\n * Work around Safari 14 IndexedDB open bug.\n *\n * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547\n * The only solution is to keep nudging it until it's awake.\n */\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n // No point putting other browsers or older versions of Safari through this mess.\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nexport default idbReady;\n","import { Dexie } from './dexie';\nimport * as Debug from '../../helpers/debug';\nimport { rejection } from '../../helpers/promise';\nimport { exceptions } from '../../errors';\nimport { eventRejectHandler, preventDefault } from '../../functions/event-wrappers';\nimport Promise, { wrap } from '../../helpers/promise';\nimport { connections } from '../../globals/constants';\nimport { runUpgraders, readGlobalSchema, adjustToExistingIndexNames, verifyInstalledSchema } from '../version/schema-helpers';\nimport { safariMultiStoreFix } from '../../functions/quirks';\nimport { _onDatabaseCreated } from '../../helpers/database-enumerator';\nimport { vip } from './vip';\nimport { promisableChain, nop } from '../../functions/chaining-functions';\nimport { generateMiddlewareStacks } from './generate-middleware-stacks';\nimport { slice } from '../../functions/utils';\nimport safari14Workaround from 'safari-14-idb-fix';\n\nexport function dexieOpen (db: Dexie) {\n const state = db._state;\n const {indexedDB} = db._deps;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(() => state.dbOpenError ?\n rejection (state.dbOpenError) :\n db);\n Debug.debug && (state.openCanceller._stackHolder = Debug.getErrorWithStack()); // Let stacks point to when open() was called rather than where new Dexie() was called.\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n const openCanceller = state.openCanceller;\n\n function throwIfCancelled() {\n // If state.openCanceller object reference is replaced, it means db.close() has been called,\n // meaning this open flow should be cancelled.\n if (state.openCanceller !== openCanceller) throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n \n // Function pointers to call when the core opening process completes.\n let resolveDbReady = state.dbReadyResolve,\n // upgradeTransaction to abort on failure.\n upgradeTransaction: (IDBTransaction | null) = null,\n wasCreated = false;\n\n const tryOpenDB = () => new Promise((resolve, reject) => {\n // Multiply db.verno with 10 will be needed to workaround upgrading bug in IE:\n // IE fails when deleting objectStore after reading from it.\n // A future version of Dexie.js will stopover an intermediate version to workaround this.\n // At that point, we want to be backward compatible. Could have been multiplied with 2, but by using 10, it is easier to map the number to the real version number.\n \n throwIfCancelled();\n // If no API, throw!\n if (!indexedDB) throw new exceptions.MissingAPI();\n const dbName = db.name;\n \n const req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req) throw new exceptions.MissingAPI(); // May happen in Safari private mode, see https://github.com/dfahlander/Dexie.js/issues/134\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap (e => {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) { // Unless an addon has specified db._allowEmptyDB, lets make the call fail.\n // Caller did not specify a version or schema. Doing that is only acceptable for opening alread existing databases.\n // If onupgradeneeded is called it means database did not exist. Reject the open() promise and make sure that we\n // do not create a new database by accident here.\n req.onerror = preventDefault; // Prohibit onabort error from firing before we're done!\n upgradeTransaction.abort(); // Abort transaction (would hope that this would make DB disappear but it doesnt.)\n // Close database and delete it.\n req.result.close();\n const delreq = indexedDB.deleteDatabase(dbName); // The upgrade transaction is atomic, and javascript is single threaded - meaning that there is no risk that we delete someone elses database here!\n delreq.onsuccess = delreq.onerror = wrap(() => {\n reject (new exceptions.NoSuchDatabase(`Database ${dbName} doesnt exist`));\n });\n } else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion; // Safari 8 fix.\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;// db._novip is because db can be an Object.create(origDb).\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n \n req.onsuccess = wrap (() => {\n // Core opening procedure complete. Now let's just record some stuff.\n upgradeTransaction = null;\n const idbdb = db._novip.idbdb = req.result; // db._novip is because db can be an Object.create(origDb).\n\n const objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0) try {\n const tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema) readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`);\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n } catch (e) {\n // Safari 8 may bail out if > 1 store names. However, this shouldnt be a showstopper. Issue #120.\n // BUGBUG: It will bail out anyway as of Dexie 3.\n // Should we support Safari 8 anymore? Believe all\n // Dexie users use the shim for that platform anyway?!\n // If removing Safari 8 support, go ahead and remove the safariMultiStoreFix() function\n // as well as absurd upgrade version quirk for Safari.\n }\n \n connections.push(db); // Used for emulating versionchange event on IE/Edge/Safari.\n \n idbdb.onversionchange = wrap(ev => {\n state.vcFired = true; // detect implementations that not support versionchange (IE/Edge/Safari)\n db.on(\"versionchange\").fire(ev);\n });\n \n idbdb.onclose = wrap(ev => {\n db.on(\"close\").fire(ev);\n });\n\n if (wasCreated) _onDatabaseCreated(db._deps, dbName);\n\n resolve();\n\n }, reject);\n }).catch(err => {\n if (err && err.name === 'UnknownError' && state.PR1398_maxLoop > 0) {\n // Bug in Chrome after clearing site data\n // https://github.com/dexie/Dexie.js/issues/543#issuecomment-1795736695\n state.PR1398_maxLoop--;\n console.warn('Dexie: Workaround for Chrome UnknownError on open()');\n return tryOpenDB();\n } else {\n return Promise.reject(err);\n }\n });\n \n // safari14Workaround = Workaround by jakearchibald for new nasty bug in safari 14.\n return Promise.race([\n openCanceller,\n (typeof navigator === 'undefined' ? Promise.resolve() : safari14Workaround()).then(tryOpenDB)\n ]).then(() => {\n // Before finally resolving the dbReadyPromise and this promise,\n // call and await all on('ready') subscribers:\n // Dexie.vip() makes subscribers able to use the database while being opened.\n // This is a must since these subscribers take part of the opening procedure.\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>db.on.ready.fire(db.vip))).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n // In case additional subscribers to db.on('ready') were added during the time db.on.ready.fire was executed.\n let remainders = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return Promise.resolve(vip(()=>remainders(db.vip))).then(fireRemainders)\n }\n });\n }).finally(()=>{\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(()=>{\n // Resolve the db.open() with the db instance.\n return db;\n }).catch(err => {\n state.dbOpenError = err; // Record the error. It will be used to reject further promises of db operations.\n try {\n // Did we fail within onupgradeneeded? Make sure to abort the upgrade transaction so it doesnt commit.\n upgradeTransaction && upgradeTransaction.abort();\n } catch { }\n if (openCanceller === state.openCanceller) {\n // Still in the same open flow - The error reason was not due to external call to db.close().\n // Make sure to call db.close() to finalize resources.\n db._close(); // Closes and resets idbdb, removes connections, resets dbReadyPromise and openCanceller so that a later db.open() is fresh.\n }\n return rejection (err);\n }).finally(()=>{\n state.openComplete = true;\n resolveDbReady(); // dbReadyPromise is resolved no matter if open() rejects or resolved. It's just to wake up waiters.\n });\n}\n","import { isArray } from '../functions/utils';\n\nexport function awaitIterator (iterator: Iterator) {\n var callNext = result => iterator.next(result),\n doThrow = error => iterator.throw(error),\n onSuccess = step(callNext),\n onError = step(doThrow);\n\n function step(getNext: (any)=>any) {\n return (val?) => {\n var next = getNext(val),\n value = next.value;\n\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n\n return step(callNext)();\n}\n","import { TransactionMode } from '../../public/types/transaction-mode';\nimport { errnames, exceptions } from '../../errors';\nimport { flatten, isAsyncFunction } from '../../functions/utils';\nimport { Dexie } from './dexie';\nimport { Transaction } from '../transaction';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise, {\n PSD,\n NativePromise,\n decrementExpectedAwaits,\n rejection,\n incrementExpectedAwaits\n} from '../../helpers/promise';\n\nexport function extractTransactionArgs(mode: TransactionMode, _tableArgs_, scopeFunc) {\n // Let table arguments be all arguments between mode and last argument.\n var i = arguments.length;\n if (i < 2) throw new exceptions.InvalidArgument(\"Too few arguments\");\n // Prevent optimzation killer (https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments)\n // and clone arguments except the first one into local var 'args'.\n var args = new Array(i - 1);\n while (--i) args[i - 1] = arguments[i];\n // Let scopeFunc be the last argument and pop it so that args now only contain the table arguments.\n scopeFunc = args.pop();\n var tables = flatten(args); // Support using array as middle argument, or a mix of arrays and non-arrays.\n return [mode, tables, scopeFunc];\n}\n\nexport function enterTransactionScope(\n db: Dexie,\n mode: IDBTransactionMode,\n storeNames: string[],\n parentTransaction: Transaction | undefined,\n scopeFunc: ()=>PromiseLike | any\n) {\n return Promise.resolve().then(() => {\n // Keep a pointer to last non-transactional PSD to use if someone calls Dexie.ignoreTransaction().\n const transless = PSD.transless || PSD;\n // Our transaction.\n //return new Promise((resolve, reject) => {\n const trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n // Let the transaction instance be part of a Promise-specific data (PSD) value.\n const zoneProps = {\n trans: trans,\n transless: transless\n };\n\n if (parentTransaction) {\n // Emulate transaction commit awareness for inner transaction (must 'commit' when the inner transaction has no more operations ongoing)\n trans.idbtrans = parentTransaction.idbtrans;\n } else {\n try {\n trans.create(); // Create the native transaction so that complete() or error() will trigger even if no operation is made upon it.\n db._state.PR1398_maxLoop = 3;\n } catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(() => enterTransactionScope(\n db,\n mode,\n storeNames,\n null,\n scopeFunc\n ));\n }\n return rejection(ex);\n }\n }\n\n // Support for native async await.\n const scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n\n let returnValue;\n const promiseFollowed = Promise.follow(() => {\n // Finally, call the scope function with our table and transaction arguments.\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n // scopeFunc is a native async function - we know for sure returnValue is native promise.\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n } else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n // scopeFunc returned an iterator with throw-support. Handle yield as await.\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n // Promise returned. User uses promise-style transactions.\n Promise.resolve(returnValue).then(x => trans.active ?\n x // Transaction still active. Continue.\n : rejection(new exceptions.PrematureCommit(\n \"Transaction committed too early. See http://bit.ly/2kdckMn\")))\n // No promise returned. Wait for all outstanding promises before continuing. \n : promiseFollowed.then(() => returnValue)\n ).then(x => {\n // sub transactions don't react to idbtrans.oncomplete. We must trigger a completion:\n if (parentTransaction) trans._resolve();\n // wait for trans._completion\n // (if root transaction, this means 'complete' event. If sub-transaction, we've just fired it ourselves)\n return trans._completion.then(() => x);\n }).catch(e => {\n trans._reject(e); // Yes, above then-handler were maybe not called because of an unhandled rejection in scopeFunc!\n return rejection(e);\n });\n });\n}\n","import {\n DBCore,\n DBCoreIndex,\n DBCoreKeyRange,\n DBCoreQueryRequest,\n DBCoreRangeType,\n DBCoreOpenCursorRequest,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreTable,\n} from \"../public/types/dbcore\";\nimport { isArray } from '../functions/utils';\nimport { getKeyExtractor } from './get-key-extractor';\nimport { getKeyPathAlias } from './dbcore-indexeddb';\nimport { Middleware } from '../public/types/middleware';\n\ninterface VirtualIndex extends DBCoreIndex {\n /** True if this index is virtual, i.e. represents a compound index internally,\n * but makes it act as as having a subset of its keyPaths.\n */\n isVirtual: boolean;\n\n /** Number of keypaths that this index comprises. Can be 0..N.\n * Note: This is the length of the *virtual index*, not the real index.\n */\n keyLength: number;\n\n /** Number of popped keypaths from the real index.\n */\n keyTail: number;\n}\n\n// Move into some util:\nexport function pad (a: any | any[], value: any, count: number) {\n const result = isArray(a) ? a.slice() : [a];\n for (let i=0; i 0;\n const virtualIndex = {\n ...lowLevelIndex,\n isVirtual,\n keyTail,\n keyLength,\n extractKey: getKeyExtractor(keyPath),\n unique: !isVirtual && lowLevelIndex.unique\n };\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n const virtualKeyPath = keyLength === 2 ?\n keyPath[0] : // This is a compound [a, b]. Add a virtual normal index a.\n keyPath.slice(0, keyLength - 1); // This is compound [a,b,c]. Add virtual compound [a,b].\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort((a,b) => a.keyTail - b.keyTail); // Shortest keyTail is the best one (represents real index)\n return virtualIndex;\n }\n \n const primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (const index of schema.indexes) {\n addVirtualIndexes(index.keyPath, 0, index);\n }\n \n function findBestIndex(keyPath: null | string | string[]): VirtualIndex {\n const result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n \n function translateRange (range: DBCoreKeyRange, keyTail: number): DBCoreKeyRange {\n return {\n type: range.type === DBCoreRangeType.Equal ?\n DBCoreRangeType.Range :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true, // doesn't matter true or false\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true // doesn't matter true or false\n };\n }\n \n function translateRequest (req: DBCoreQueryRequest): DBCoreQueryRequest;\n function translateRequest (req: DBCoreOpenCursorRequest): DBCoreOpenCursorRequest;\n function translateRequest (req: DBCoreCountRequest): DBCoreCountRequest {\n const index = req.query.index as VirtualIndex;\n return index.isVirtual ? {\n ...req,\n query: {\n index,\n range: translateRange(req.query.range, index.keyTail)\n }\n } : req;\n }\n \n const result: DBCoreTable = {\n ...table,\n schema: {\n ...schema,\n primaryKey,\n indexes: allVirtualIndexes,\n getIndexByKeyPath: findBestIndex\n },\n\n count(req) {\n return table.count(translateRequest(req));\n }, \n \n query(req) {\n return table.query(translateRequest(req));\n },\n \n openCursor(req) {\n const {keyTail, isVirtual, keyLength} = (req.query.index as VirtualIndex);\n if (!isVirtual) return table.openCursor(req);\n \n function createVirtualCursor(cursor: DBCoreCursor) : DBCoreCursor {\n function _continue (key?: any) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(\n cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)\n ) :\n cursor.continue()\n }\n const virtualCursor = Object.create(cursor, {\n continue: {value: _continue},\n continuePrimaryKey: {\n value(key: any, primaryKey: any) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get() {\n return cursor.primaryKey;\n }\n },\n key: {\n get() {\n const key = cursor.key as any[]; // A virtual cursor always operates on compound key\n return keyLength === 1 ?\n key[0] : // Cursor.key should not be an array.\n key.slice(0, keyLength); // Cursor.key should be first part of array.\n }\n },\n value: {\n get() {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n \n return table.openCursor(translateRequest(req))\n .then(cursor => cursor && createVirtualCursor(cursor));\n }\n };\n return result;\n }\n }\n}\n\nexport const virtualIndexMiddleware : Middleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\n","import { keys, hasOwn, toStringTag } from './utils';\n\nexport function getObjectDiff(a: any, b: any, rv?: any, prfx?: string) {\n // Compares objects a and b and produces a diff object.\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach((prop) => {\n if (!hasOwn(b, prop)) {\n // Property removed\n rv[prfx + prop] = undefined;\n } else {\n var ap = a[prop],\n bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n const apTypeName = toStringTag(ap);\n const bpTypeName = toStringTag(bp);\n\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop]; // Property changed to other type\n } else if (apTypeName === 'Object') {\n // Pojo objects (not Date, ArrayBuffer, Array etc). Go deep.\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n } else if (ap !== bp) {\n // Values differ.\n // Could have checked if Date, arrays or binary types have same\n // content here but I think that would be a suboptimation.\n // Prefer simplicity.\n rv[prfx + prop] = b[prop];\n }\n } else if (ap !== bp) rv[prfx + prop] = b[prop]; // Primitive value changed\n }\n });\n keys(b).forEach((prop) => {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop]; // Property added\n }\n });\n return rv;\n}\n","import {\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreIndex,\n DBCoreTable,\n} from \"../public/types/dbcore\";\n\nexport function getEffectiveKeys (\n primaryKey: DBCoreIndex,\n req: (Pick & {keys?: any[]}) | Pick)\n{\n //const {outbound} = primaryKey;\n if (req.type === 'delete') return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey)\n}\n","import {\n DBCore,\n DBCoreTable,\n DBCoreMutateResponse,\n DBCoreDeleteRangeRequest,\n DBCoreAddRequest,\n DBCorePutRequest,\n DBCoreDeleteRequest,\n DBCoreTransaction,\n DBCoreKeyRange\n} from \"../public/types/dbcore\";\nimport { nop } from '../functions/chaining-functions';\nimport { hasOwn, setByKeyPath } from '../functions/utils';\nimport { getObjectDiff } from \"../functions/get-object-diff\";\nimport { PSD } from '../helpers/promise';\n//import { LockableTableMiddleware } from '../dbcore/lockable-table-middleware';\nimport { getEffectiveKeys } from '../dbcore/get-effective-keys';\nimport { Middleware } from '../public/types/middleware';\nimport { Transaction } from '../classes/transaction';\n\nexport const hooksMiddleware: Middleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: (downCore: DBCore) => ({\n ...downCore,\n table(tableName: string) {\n const downTable = downCore.table(tableName);\n const {primaryKey} = downTable.schema;\n \n const tableMiddleware: DBCoreTable = {\n ...downTable,\n mutate(req):Promise {\n const dxTrans = PSD.trans as Transaction;\n // Hooks can be transaction-bound. Need to grab them from transaction.table and not\n // db.table!\n const {deleting, creating, updating} = dxTrans.table(tableName).hook;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'delete':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>addPutOrDelete(req), true);\n case 'deleteRange':\n if (deleting.fire === nop) break;\n return dxTrans._promise('readwrite', ()=>deleteRange(req), true);\n }\n // Any of the breaks above happened (no hooks) - do the default:\n return downTable.mutate(req);\n\n\n function addPutOrDelete(req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest): Promise {\n const dxTrans = PSD.trans;\n const keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys) throw new Error(\"Keys missing\");\n // Clone Request and set keys arg\n req = req.type === 'add' || req.type === 'put' ?\n {...req, keys} :\n {...req};\n if (req.type !== 'delete') req.values = [...req.values];\n if (req.keys) req.keys = [...req.keys];\n \n return getExistingValues(downTable, req, keys).then (existingValues => {\n const contexts = keys.map((key, i) => {\n const existingValue = existingValues[i];\n const ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n // delete operation\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n } else if (req.type === 'add' || existingValue === undefined) {\n // The add() or put() resulted in a create\n const generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n } else {\n // The put() operation resulted in an update\n const objectDiff = getObjectDiff(existingValue, req.values[i]);\n const additionalChanges = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges) {\n const requestedValue = req.values[i];\n Object.keys(additionalChanges).forEach(keyPath => {\n if (hasOwn(requestedValue, keyPath)) {\n // keyPath is already present as a literal property of the object\n requestedValue[keyPath] = additionalChanges[keyPath];\n } else {\n // keyPath represents a new or existing path into the object\n setByKeyPath(requestedValue, keyPath, additionalChanges[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(({failures, results, numFailures, lastResult}) => {\n for (let i=0; i {\n contexts.forEach(ctx => ctx.onerror && ctx.onerror(error));\n return Promise.reject(error);\n });\n });\n }\n \n function deleteRange(req: DBCoreDeleteRangeRequest): Promise {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n \n function deleteNextChunk(trans: DBCoreTransaction, range: DBCoreKeyRange, limit: number) {\n // Query what keys in the DB within the given range\n return downTable.query({trans, values: false, query: {index: primaryKey, range}, limit})\n .then(({result}) => {\n // Given a set of keys, bulk delete those using the same procedure as in addPutOrDelete().\n // This will make sure that deleting hook is called.\n return addPutOrDelete({type: 'delete', keys: result, trans}).then(res => {\n if (res.numFailures > 0) return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return {failures: [], numFailures: 0, lastResult: undefined} as DBCoreMutateResponse;\n } else {\n return deleteNextChunk(trans, {...range, lower: result[result.length - 1], lowerOpen: true}, limit);\n }\n });\n })\n }\n }\n };\n //const {lock, lockableMiddleware} = LockableTableMiddleware(tableMiddleware);\n\n return tableMiddleware;\n },\n }) as DBCore\n};\n\nfunction getExistingValues(\n table: DBCoreTable,\n req: DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest,\n effectiveKeys: any[]\n) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n","import { deepClone } from \"../functions/utils\";\nimport { DBCore } from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\nimport Promise from \"../helpers/promise\";\nimport { cmp } from '../functions/cmp';\n\nexport function getFromTransactionCache(\n keys: any[],\n cache: { keys: any[]; values: any[] } | undefined | null,\n clone?: boolean\n) {\n try {\n if (!cache) return null;\n if (cache.keys.length < keys.length) return null;\n const result: any[] = [];\n // Compare if the exact same order of keys was retrieved in same transaction:\n // Allow some cached keys to be omitted from provided set of keys\n // Use case: 1. getMany(keys) 2. update a subset of those 3. call put with the updated ones ==> middlewares should be able to find old values\n for (let i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0) continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n // If got all keys caller was looking for, return result.\n return result.length === keys.length ? result : null;\n } catch {\n return null;\n }\n}\n\nexport const cacheExistingValuesMiddleware: Middleware = {\n stack: \"dbcore\",\n level: -1,\n create: (core) => {\n return {\n table: (tableName) => {\n const table = core.table(tableName);\n return {\n ...table,\n getMany: (req) => {\n if (!req.cache) {\n return table.getMany(req);\n }\n const cachedResult = getFromTransactionCache(\n req.keys,\n req.trans[\"_cache\"],\n req.cache === \"clone\"\n );\n if (cachedResult) {\n return Promise.resolve(cachedResult);\n }\n return table.getMany(req).then((res) => {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n },\n mutate: (req) => {\n // Invalidate cache on any mutate except \"add\" which can't change existing values:\n if (req.type !== \"add\") req.trans[\"_cache\"] = null;\n return table.mutate(req);\n },\n };\n },\n };\n },\n};\n","import { cmp } from \"../functions/cmp\";\nimport { extend, iteratorSymbol, props } from '../functions/utils';\nimport { IndexableType } from '../public';\nimport {\n EmptyRange,\n IntervalTree,\n IntervalTreeNode,\n RangeSetConstructor,\n RangeSetPrototype,\n} from \"../public/types/rangeset\";\n\n/* An interval tree implementation to efficiently detect overlapping ranges of queried indexes.\n *\n * https://en.wikipedia.org/wiki/Interval_tree\n * \n */\n\nfunction isEmptyRange(node: IntervalTree | {from: IndexableType, to: IndexableType}): node is EmptyRange {\n return !(\"from\" in node);\n}\n\nexport type RangeSet = RangeSetPrototype & IntervalTree;\n\nexport const RangeSet = function(fromOrTree: any, to?: any) {\n if (this) {\n // Called with new()\n extend(this, arguments.length ? {d:1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree} : {d:0});\n } else {\n // Called without new()\n const rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n} as RangeSetConstructor;\n\nprops(RangeSet.prototype, {\n add(rangeSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey(key: IndexableType) {\n addRange(this, key, key);\n return this;\n },\n addKeys(keys: IndexableType[]) {\n keys.forEach(key => addRange(this, key, key));\n return this;\n },\n\n [iteratorSymbol](): Iterator {\n return getRangeSetIterator(this);\n }\n});\n\nfunction addRange(target: IntervalTree, from: IndexableType, to: IndexableType) {\n const diff = cmp(from, to);\n // cmp() returns NaN if one of the args are IDB-invalid keys.\n // Avoid storing invalid keys in rangeset:\n if (isNaN(diff)) return;\n\n // Caller is trying to add a range where from is greater than to:\n if (diff > 0) throw RangeError();\n \n if (isEmptyRange(target)) return extend(target, { from, to, d: 1 });\n const left = target.l;\n const right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from, to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n // Now we have some kind of overlap. We will be able to merge the new range into the node or let it be swallowed.\n\n // Grow left?\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null; // Cut off for now. Re-add later.\n target.d = right ? right.d + 1 : 1;\n }\n // Grow right?\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null; // Cut off for now. Re-add later.\n target.d = target.l ? target.l.d + 1 : 1;\n }\n const rightWasCutOff = !target.r;\n // Re-add left?\n if (left && !target.l) {\n //Ranges to the left may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, left);\n }\n // Re-add right?\n if (right && rightWasCutOff) {\n //Ranges to the right may be swallowed. Cut it of and re-add all.\n //Could probably be done more efficiently!\n mergeRanges(target, right);\n }\n}\n\nexport function mergeRanges(target: IntervalTree, newSet: IntervalTree | {from: IndexableType, to: IndexableType}) {\n function _addRangeSet(\n target: IntervalTree,\n { from, to, l, r }: IntervalTreeNode | {from: IndexableType, to: IndexableType, l?: undefined, r?: undefined}\n ) {\n addRange(target, from, to);\n if (l) _addRangeSet(target, l);\n if (r) _addRangeSet(target, r);\n }\n\n if(!isEmptyRange(newSet)) _addRangeSet(target, newSet);\n}\n\nexport function rangesOverlap(\n rangeSet1: IntervalTree,\n rangeSet2: IntervalTree\n): boolean {\n // Start iterating other from scratch.\n const i1 = getRangeSetIterator(rangeSet2);\n let nextResult1 = i1.next();\n if (nextResult1.done) return false;\n let a = nextResult1.value;\n\n // Start iterating this from start of other\n const i2 = getRangeSetIterator(rangeSet1);\n let nextResult2 = i2.next(a.from); // Start from beginning of other range\n let b = nextResult2.value;\n\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b!.from, a.to) <= 0 && cmp(b!.to, a.from) >= 0) return true;\n cmp(a.from, b!.from) < 0\n ? (a = (nextResult1 = i1.next(b!.from)).value!) // a is behind. forward it to beginning of next b-range\n : (b = (nextResult2 = i2.next(a.from)).value); // b is behind. forward it to beginning of next a-range\n }\n return false;\n}\n\ntype RangeSetIteratorState =\n | {\n up?: RangeSetIteratorState;\n n: IntervalTreeNode;\n s: 0 | 1 | 2 | 3;\n }\n | undefined\n | null;\nexport function getRangeSetIterator(\n node: EmptyRange | IntervalTreeNode\n): Generator {\n let state: RangeSetIteratorState = isEmptyRange(node) ? null : { s: 0, n: node };\n\n return {\n next(key?) {\n const keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n // Initial state for node.\n // Fast forward to leftmost node.\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n } else {\n while (state.n.l) state = { up: state, n: state.n.l, s: 1 };\n }\n // intentionally fall into case 1:\n case 1:\n // We're on a node where it's left part is already handled or does not exist.\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n // We've emitted our node and should continue with the right part or let parent take over from it's state 1\n if (state.n.r) {\n state.s = 3; // So when child is done, we know we're done.\n state = { up: state, n: state.n.r, s: 0 };\n continue; // Will fall in to case 0 with fast forward to left leaf of this subtree.\n }\n // intentionally fall into case 3:\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n } as Generator;\n}\n\nfunction rebalance(target: IntervalTreeNode) {\n const diff = (target.r?.d || 0) - (target.l?.d || 0);\n const r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n\n // Rotate (https://en.wikipedia.org/wiki/Tree_rotation)\n //\n // \n // [OLDROOT]\n // [OLDROOT.L] [NEWROOT]\n // [NEWROOT.L] [NEWROOT.R]\n //\n // Is going to become:\n //\n // \n // [NEWROOT]\n // [OLDROOT] [NEWROOT.R]\n // [OLDROOT.L] [NEWROOT.L] \n\n // * clone now has the props of OLDROOT\n // Plan:\n // * target must be given the props of NEWROOT\n // * target[l] must point to a new OLDROOT\n // * target[r] must point to NEWROOT.R\n // * OLDROOT[r] must point to NEWROOT.L\n const l = r === \"r\" ? \"l\" : \"r\"; // Support both left/right rotation\n const rootClone = { ...target };\n // We're gonna copy props from target's right node into target so that target will\n // have same range as old target[r] (instead of changing pointers, we copy values.\n // that way we do not need to adjust pointers in parents).\n const oldRootRight = target[r]; \n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\n\nfunction computeDepth({ r, l }: Pick) {\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n","import { getFromTransactionCache } from \"../dbcore/cache-existing-values-middleware\";\nimport { cmp } from \"../functions/cmp\";\nimport { isArray, keys } from \"../functions/utils\";\nimport { PSD } from \"../helpers/promise\";\nimport { RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport {\n DBCore,\n DBCoreCountRequest,\n DBCoreCursor,\n DBCoreGetManyRequest,\n DBCoreGetRequest,\n DBCoreIndex,\n DBCoreOpenCursorRequest,\n DBCoreQueryRequest,\n DBCoreQueryResponse,\n DBCoreTable,\n DBCoreTableSchema,\n DBCoreTransaction,\n} from \"../public/types/dbcore\";\nimport { Middleware } from \"../public/types/middleware\";\n\nexport const observabilityMiddleware: Middleware = {\n stack: \"dbcore\",\n level: 0,\n create: (core) => {\n const dbName = core.schema.name;\n const FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n\n return {\n ...core,\n table: (tableName) => {\n const table = core.table(tableName);\n const { schema } = table;\n const { primaryKey } = schema;\n const { extractKey, outbound } = primaryKey;\n const tableClone: DBCoreTable = {\n ...table,\n mutate: (req) => {\n const trans = req.trans as DBCoreTransaction & {\n mutatedParts?: ObservabilitySet;\n };\n const mutatedParts =\n trans.mutatedParts || (trans.mutatedParts = {});\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n\n const { type } = req;\n let [keys, newObjs] =\n req.type === \"deleteRange\"\n ? [req.range] // keys will be an DBCoreKeyRange object - transformed later on to a [from,to]-style range.\n : req.type === \"delete\"\n ? [req.keys] // keys known already here. newObjs will be undefined.\n : req.values.length < 50\n ? [[], req.values] // keys = empty array - will be resolved in mutate().then(...).\n : []; // keys and newObjs will both be undefined - changeSpec will become true (changed for entire table)\n const oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then((res) => {\n // Add the mutated table and optionally keys to the mutatedTables set on the transaction.\n // Used by subscribers to txcommit event and for Collection.prototype.subscribe().\n if (isArray(keys)) {\n // keys is an array - delete, add or put of less than 50 rows.\n if (type !== \"delete\") keys = res.results;\n // individual keys (add put or delete)\n pkRangeSet.addKeys(keys);\n // Only get oldObjs if they have been cached recently\n // (This applies to Collection.modify() only, but also if updating/deleting hooks have subscribers)\n const oldObjs = getFromTransactionCache(keys, oldCache);\n\n // Supply detailed values per index for both old and new objects:\n if (!oldObjs && type !== \"add\") {\n // delete or put and we don't know old values.\n // Indicate this in the \":dels\" part, for the sake of count() queries only!\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n // No matter if knowning oldObjs or not, track the indices if it's a put, add or delete.\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n } else if (keys) {\n // As we can't know deleted index ranges, mark index-based subscriptions must trigger.\n const range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n // deleteRange. keys is a DBCoreKeyRange objects. Transform it to [from,to]-style range.\n pkRangeSet.add(range);\n } else {\n // Too many requests to record the details without slowing down write performance.\n // Let's just record a generic large range on primary key, the virtual :dels index and\n // all secondary indices:\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(idx => getRangeSet(idx.name).add(FULL_RANGE));\n }\n return res;\n });\n },\n };\n\n const getRange: (req: any) => [DBCoreIndex, RangeSet] = ({\n query: { index, range },\n }:\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest) => [\n index,\n new RangeSet(range.lower ?? core.MIN_KEY, range.upper ?? core.MAX_KEY),\n ];\n\n const readSubscribers: {[method in\n Exclude]: \n (req: any) => [DBCoreIndex, RangeSet]\n } = {\n get: (req) => [primaryKey, new RangeSet(req.key)],\n getMany: (req) => [primaryKey, new RangeSet().addKeys(req.keys)],\n count: getRange,\n query: getRange,\n openCursor: getRange,\n }\n\n keys(readSubscribers).forEach(method => {\n tableClone[method] = function (\n req:\n | DBCoreGetRequest\n | DBCoreGetManyRequest\n | DBCoreQueryRequest\n | DBCoreCountRequest\n | DBCoreOpenCursorRequest\n ) {\n const { subscr } = PSD;\n if (subscr) {\n // Current zone want's to track all queries so they can be subscribed to.\n // (The query is executed within a \"liveQuery\" zone)\n // Check whether the query applies to a certain set of ranges:\n // Track what we should be observing:\n const getRangeSet = (indexName: string) => {\n const part = `idb://${dbName}/${tableName}/${indexName}`;\n return (subscr[part] ||\n (subscr[part] = new RangeSet())) as RangeSet;\n };\n const pkRangeSet = getRangeSet(\"\");\n const delsRangeSet = getRangeSet(\":dels\");\n const [queriedIndex, queriedRanges] = readSubscribers[method](req);\n // A generic rule here: queried ranges should always be subscribed to.\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n // Only count(), query() and openCursor() operates on secondary indices.\n // Since put(), delete() and deleteRange() mutations may happen without knowing oldObjs,\n // the mutate() method will be missing what secondary indices that are being deleted from\n // the subscribed range. We are working around this issue by recording all the resulting\n // primary keys from the queries. This only works for those kinds of queries where we can\n // derive the primary key from the result.\n // In this block we are accomplishing this using various strategies depending on the properties\n // of the query result.\n\n if (method === \"count\") {\n // We've got a problem! Delete and put mutations happen without known the oldObjs.\n // Those mutation could change the count.\n // Solution: Dedicated \":dels\" url represends a subscription to all mutations without oldObjs\n // (specially triggered in the mutators put(), delete() and deleteRange() when they don't know oldObject)\n delsRangeSet.add(FULL_RANGE);\n } else {\n // openCursor() or query()\n\n // Prepare a keysPromise in case the we're doing an IDBIndex.getAll() on a store with outbound keys.\n const keysPromise =\n method === \"query\" &&\n outbound &&\n (req as DBCoreQueryRequest).values &&\n table.query({\n ...(req as DBCoreQueryRequest),\n values: false,\n });\n\n return table[method].apply(this, arguments).then((res) => {\n if (method === \"query\") {\n if (outbound && (req as DBCoreQueryRequest).values) {\n // If keys are outbound, we can't use extractKey to map what keys to observe.\n // We've queried an index (like 'dateTime') on an outbound table\n // and retrieve a list of objects\n // from who we cannot know their primary keys.\n // \"Luckily\" though, we've prepared the keysPromise to assist us in exact this condition.\n return keysPromise.then(\n ({ result: resultingKeys }: DBCoreQueryResponse) => {\n pkRangeSet.addKeys(resultingKeys);\n return res;\n }\n );\n }\n // query() inbound values, keys or outbound keys. Secondary indexes only since\n // for primary keys we would only add results within the already registered range.\n const pKeys = (req as DBCoreQueryRequest).values\n ? (res as DBCoreQueryResponse).result.map(extractKey)\n : (res as DBCoreQueryResponse).result;\n if ((req as DBCoreQueryRequest).values) {\n // Subscribe to any mutation made on the returned keys,\n // so that we detect both deletions and updated properties.\n pkRangeSet.addKeys(pKeys);\n } else {\n // Subscribe only to mutations on the returned keys\n // in case the mutator was unable to know oldObjs.\n // If it has oldObj, the mutator won't put anything in \":dels\" because\n // it can more fine-grained put the exact removed and added index value in the correct\n // index range that we subscribe to in the queried range sets.\n // We don't load values so a change on a property outside our index will not\n // require us to re-execute the query.\n delsRangeSet.addKeys(pKeys);\n }\n } else if (method === \"openCursor\") {\n // Caller requests a cursor.\n // For the same reason as when method===\"query\", we only need to observe\n // those keys whose values are possibly used or rendered - which could\n // only happen on keys where they get the cursor's key, primaryKey or value.\n const cursor: DBCoreCursor | null = res;\n const wantValues = (req as DBCoreOpenCursorRequest).values;\n return (\n cursor &&\n Object.create(cursor, {\n key: {\n get() {\n delsRangeSet.addKey(cursor.primaryKey);\n return cursor.key;\n },\n },\n primaryKey: {\n get() {\n const pkey = cursor.primaryKey;\n delsRangeSet.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get() {\n wantValues && pkRangeSet.addKey(cursor.primaryKey);\n return cursor.value;\n },\n },\n })\n );\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n },\n };\n },\n};\n\nfunction trackAffectedIndexes(\n getRangeSet: (index: string) => RangeSet,\n schema: DBCoreTableSchema,\n oldObjs: any[] | undefined,\n newObjs: any[] | undefined\n) {\n function addAffectedIndex(ix: DBCoreIndex) {\n const rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj: any) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n const addKeyOrKeys = (key: any) => ix.multiEntry && isArray(key)\n // multiEntry and the old property was an array - add each array entry to the rangeSet:\n ? key.forEach(key => rangeSet.addKey(key))\n // Not multiEntry or the old property was not an array - add each array entry to the rangeSet:\n : rangeSet.addKey(key);\n\n (oldObjs || newObjs).forEach((_, i) => {\n const oldKey = oldObjs && extractKey(oldObjs[i]);\n const newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n // The index has changed. Add both old and new value of the index.\n if (oldKey != null) addKeyOrKeys(oldKey); // If oldKey is invalid key, addKey() will be a noop.\n if (newKey != null) addKeyOrKeys(newKey); // If newKey is invalid key, addKey() will be a noop.\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n","// Import types from the public API\nimport { Dexie as IDexie } from \"../../public/types/dexie\";\nimport { DexieOptions, DexieConstructor } from \"../../public/types/dexie-constructor\";\nimport { DbEvents } from \"../../public/types/db-events\";\n//import { PromiseExtended, PromiseExtendedConstructor } from '../../public/types/promise-extended';\nimport { Table as ITable } from '../../public/types/table';\nimport { TableSchema } from \"../../public/types/table-schema\";\nimport { DbSchema } from '../../public/types/db-schema';\n\n// Internal imports\nimport { Table, TableConstructor, createTableConstructor } from \"../table\";\nimport { Collection, CollectionConstructor, createCollectionConstructor } from '../collection';\nimport { WhereClause } from '../where-clause/where-clause';\nimport { WhereClauseConstructor, createWhereClauseConstructor } from '../where-clause/where-clause-constructor';\nimport { Transaction } from '../transaction';\nimport { TransactionConstructor, createTransactionConstructor } from '../transaction/transaction-constructor';\nimport { Version } from \"../version/version\";\nimport { VersionConstructor, createVersionConstructor } from '../version/version-constructor';\n\n// Other imports...\nimport { DexieEventSet } from '../../public/types/dexie-event-set';\nimport { DexieExceptionClasses } from '../../public/types/errors';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\nimport { nop, promisableChain } from '../../functions/chaining-functions';\nimport Promise, { PSD } from '../../helpers/promise';\nimport { extend, override, keys, hasOwn } from '../../functions/utils';\nimport Events from '../../helpers/Events';\nimport { maxString, connections, READONLY, READWRITE } from '../../globals/constants';\nimport { getMaxKey } from '../../functions/quirks';\nimport { exceptions } from '../../errors';\nimport { lowerVersionFirst } from '../version/schema-helpers';\nimport { dexieOpen } from './dexie-open';\nimport { wrap } from '../../helpers/promise';\nimport { _onDatabaseDeleted } from '../../helpers/database-enumerator';\nimport { eventRejectHandler } from '../../functions/event-wrappers';\nimport { extractTransactionArgs, enterTransactionScope } from './transaction-helpers';\nimport { TransactionMode } from '../../public/types/transaction-mode';\nimport { rejection } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { DBCore } from '../../public/types/dbcore';\nimport { Middleware, DexieStacks } from '../../public/types/middleware';\nimport { virtualIndexMiddleware } from '../../dbcore/virtual-index-middleware';\nimport { hooksMiddleware } from '../../hooks/hooks-middleware';\nimport { IndexableType } from '../../public';\nimport { observabilityMiddleware } from '../../live-query/observability-middleware';\nimport { cacheExistingValuesMiddleware } from '../../dbcore/cache-existing-values-middleware';\n\nexport interface DbReadyState {\n dbOpenError: any;\n isBeingOpened: boolean;\n onReadyBeingFired: undefined | Function[];\n openComplete: boolean;\n dbReadyResolve: () => void;\n dbReadyPromise: Promise;\n cancelOpen: (reason?: Error) => void;\n openCanceller: Promise & { _stackHolder?: Error };\n autoSchema: boolean;\n vcFired?: boolean;\n PR1398_maxLoop?: number;\n}\n\nexport class Dexie implements IDexie {\n _options: DexieOptions;\n _state: DbReadyState;\n _versions: Version[];\n _storeNames: string[];\n _deps: DexieDOMDependencies;\n _allTables: { [name: string]: Table; };\n _createTransaction: (this: Dexie, mode: IDBTransactionMode, storeNames: ArrayLike, dbschema: { [tableName: string]: TableSchema; }, parentTransaction?: Transaction) => Transaction;\n _dbSchema: { [tableName: string]: TableSchema; };\n _hasGetAll?: boolean;\n _maxKey: IndexableType;\n _fireOnBlocked: (ev: Event) => void;\n _middlewares: {[StackName in keyof DexieStacks]?: Middleware[]} = {};\n _vip?: boolean;\n _novip?: Dexie;// db._novip is to escape to orig db from db.vip.\n core: DBCore;\n\n name: string;\n verno: number = 0;\n idbdb: IDBDatabase | null;\n vip: Dexie;\n on: DbEvents;\n\n Table: TableConstructor;\n WhereClause: WhereClauseConstructor;\n Collection: CollectionConstructor;\n Version: VersionConstructor;\n Transaction: TransactionConstructor;\n\n constructor(name: string, options?: DexieOptions) {\n const deps = (Dexie as any as DexieConstructor).dependencies;\n this._options = options = {\n // Default Options\n addons: (Dexie as any as DexieConstructor).addons, // Pick statically registered addons by default\n autoOpen: true, // Don't require db.open() explicitely.\n // Default DOM dependency implementations from static prop.\n indexedDB: deps.indexedDB, // Backend IndexedDB api. Default to browser env.\n IDBKeyRange: deps.IDBKeyRange, // Backend IDBKeyRange api. Default to browser env.\n ...options\n };\n this._deps = {\n indexedDB: options.indexedDB as IDBFactory,\n IDBKeyRange: options.IDBKeyRange as typeof IDBKeyRange\n };\n const {\n addons,\n } = options;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n const state: DbReadyState = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null as Promise,\n cancelOpen: nop,\n openCanceller: null as Promise,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] }) as DbEvents;\n this.on.ready.subscribe = override(this.on.ready.subscribe, subscribe => {\n return (subscriber, bSticky) => {\n (Dexie as any as DexieConstructor).vip(() => {\n const state = this._state;\n if (state.openComplete) {\n // Database already open. Call subscriber asap.\n if (!state.dbOpenError) Promise.resolve().then(subscriber);\n // bSticky: Also subscribe to future open sucesses (after close / reopen) \n if (bSticky) subscribe(subscriber);\n } else if (state.onReadyBeingFired) {\n // db.on('ready') subscribers are currently being executed and have not yet resolved or rejected\n state.onReadyBeingFired.push(subscriber);\n if (bSticky) subscribe(subscriber);\n } else {\n // Database not yet open. Subscribe to it.\n subscribe(subscriber);\n // If bSticky is falsy, make sure to unsubscribe subscriber when fired once.\n const db = this;\n if (!bSticky) subscribe(function unsubscribe() {\n db.on.ready.unsubscribe(subscriber);\n db.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n }\n });\n\n // Create derived classes bound to this instance of Dexie:\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n\n // Default subscribers to \"versionchange\" and \"blocked\".\n // Can be overridden by custom handlers. If custom handlers return false, these default\n // behaviours will be prevented.\n this.on(\"versionchange\", ev => {\n // Default behavior for versionchange event is to close database connection.\n // Caller can override this behavior by doing db.on(\"versionchange\", function(){ return false; });\n // Let's not block the other window from making it's delete() or open() call.\n // NOTE! This event is never fired in IE,Edge or Safari.\n if (ev.newVersion > 0)\n console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`);\n else\n console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`);\n this.close();\n // In many web applications, it would be recommended to force window.reload()\n // when this event occurs. To do that, subscribe to the versionchange event\n // and call window.location.reload(true) if ev.newVersion > 0 (not a deletion)\n // The reason for this is that your current web app obviously has old schema code that needs\n // to be updated. Another window got a newer version of the app and needs to upgrade DB but\n // your window is blocking it unless we close it here.\n });\n this.on(\"blocked\", ev => {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(`Dexie.delete('${this.name}') was blocked`);\n else\n console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${ev.oldVersion / 10}`);\n });\n\n this._maxKey = getMaxKey(options.IDBKeyRange as typeof IDBKeyRange);\n\n this._createTransaction = (\n mode: IDBTransactionMode,\n storeNames: string[],\n dbschema: DbSchema,\n parentTransaction?: Transaction) => new this.Transaction(mode, storeNames, dbschema, this._options.chromeTransactionDurability, parentTransaction);\n\n this._fireOnBlocked = ev => {\n this.on(\"blocked\").fire(ev);\n // Workaround (not fully*) for missing \"versionchange\" event in IE,Edge and Safari:\n connections\n .filter(c => c.name === this.name && c !== this && !c._state.vcFired)\n .map(c => c.on(\"versionchange\").fire(ev));\n }\n\n // Default middlewares:\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n\n this.vip = Object.create(this, {_vip: {value: true}}) as Dexie;\n\n // Call each addon:\n addons.forEach(addon => addon(this));\n }\n\n version(versionNumber: number): Version {\n if (isNaN(versionNumber) || versionNumber < 0.1) throw new exceptions.Type(`Given version is not a positive number`);\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n const versions = this._versions;\n var versionInstance = versions.filter(\n v => v._cfg.version === versionNumber)[0];\n if (versionInstance) return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({}); // Derive earlier schemas by default.\n // Disable autoschema mode, as at least one version is specified.\n this._state.autoSchema = false;\n return versionInstance;\n }\n\n _whenReady(fn: () => Promise): Promise {\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new Promise((resolve, reject) => {\n if (this._state.openComplete) {\n // idbdb is falsy but openComplete is true. Must have been an exception durin open.\n // Don't wait for openComplete as it would lead to infinite loop.\n return reject(new exceptions.DatabaseClosed(this._state.dbOpenError));\n }\n if (!this._state.isBeingOpened) {\n if (!this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n this.open().catch(nop); // Open in background. If if fails, it will be catched by the final promise anyway.\n }\n this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n }\n\n use({stack, create, level, name}: Middleware): this {\n if (name) this.unuse({stack, name}); // Be able to replace existing middleware.\n const middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({stack, create, level: level == null ? 10 : level, name});\n middlewares.sort((a, b) => a.level - b.level);\n // Todo update db.core and db.tables...core ? Or should be expect this to have effect\n // only after next open()?\n return this;\n }\n\n unuse({stack, create}: Middleware<{stack: keyof DexieStacks}>): this;\n unuse({stack, name}: {stack: keyof DexieStacks, name: string}): this;\n unuse({stack, name, create}: {stack: keyof DexieStacks, name?: string, create?: Function}) {\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(mw =>\n create ? mw.create !== create : // Given middleware has a create method. Match that exactly.\n name ? mw.name !== name : // Given middleware spec \n false);\n }\n return this;\n }\n\n open() {\n return dexieOpen(this);\n }\n\n _close(): void {\n const state = this._state;\n const idx = connections.indexOf(this);\n if (idx >= 0) connections.splice(idx, 1);\n if (this.idbdb) {\n try { this.idbdb.close(); } catch (e) { }\n this._novip.idbdb = null; // db._novip is because db can be an Object.create(origDb).\n } \n // Reset dbReadyPromise promise:\n state.dbReadyPromise = new Promise(resolve => {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new Promise((_, reject) => {\n state.cancelOpen = reject;\n });\n }\n\n close(): void {\n this._close();\n const state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n }\n\n delete(): Promise {\n const hasArguments = arguments.length > 0;\n const state = this._state;\n return new Promise((resolve, reject) => {\n const doDelete = () => {\n this.close();\n var req = this._deps.indexedDB.deleteDatabase(this.name);\n req.onsuccess = wrap(() => {\n _onDatabaseDeleted(this._deps, this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = this._fireOnBlocked;\n }\n\n if (hasArguments) throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n } else {\n doDelete();\n }\n });\n }\n\n backendDB() {\n return this.idbdb;\n }\n\n isOpen() {\n return this.idbdb !== null;\n }\n\n hasBeenClosed() {\n const dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n }\n\n hasFailed() {\n return this._state.dbOpenError !== null;\n }\n\n dynamicallyOpened() {\n return this._state.autoSchema;\n }\n\n get tables () {\n return keys(this._allTables).map(name => this._allTables[name]);\n }\n\n transaction(): Promise {\n const args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n }\n\n _transaction(mode: TransactionMode, tables: Array, scopeFunc: Function) {\n let parentTransaction = PSD.trans as Transaction | undefined;\n // Check if parent transactions is bound to this db instance, and if caller wants to reuse it\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) parentTransaction = null;\n const onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '') as TransactionMode; // Ok. Will change arguments[0] as well but we wont touch arguments henceforth.\n let idbMode: IDBTransactionMode,\n storeNames;\n\n try {\n //\n // Get storeNames from arguments. Either through given table instances, or through given table names.\n //\n storeNames = tables.map(table => {\n var storeName = table instanceof this.Table ? table.name : table;\n if (typeof storeName !== 'string') throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n\n //\n // Resolve mode. Allow shortcuts \"r\" and \"rw\".\n //\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n\n if (parentTransaction) {\n // Basic checks\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(storeName => {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n // Spawn new transaction instead.\n parentTransaction = null; \n }\n else throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n // '?' mode should not keep using an inactive transaction.\n parentTransaction = null;\n }\n }\n } catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, (_, reject) => {reject(e);}) :\n rejection (e);\n }\n // If this is a sub-transaction, lock the parent and then launch the sub-transaction.\n const enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n // no parent transaction despite PSD.trans exists. Make sure also\n // that the zone we create is not a sub-zone of current, because\n // Promise.follow() should not wait for it if so.\n usePSD(PSD.transless, ()=>this._whenReady(enterTransaction)) :\n this._whenReady (enterTransaction));\n }\n\n table(tableName: string): Table;\n table(tableName: string): ITable;\n table(tableName: string): Table {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(`Table ${tableName} does not exist`); }\n return this._allTables[tableName];\n }\n}\n","import {\n Observable as IObservable,\n Observer,\n Subscription,\n} from \"../../public/types/observable\";\n\nconst symbolObservable: typeof Symbol.observable =\n typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\" as any;\n\nexport class Observable implements IObservable {\n private _subscribe: (observer: Observer) => Subscription;\n hasValue?: ()=>boolean;\n getValue?: ()=>T;\n\n constructor(subscribe: (observer: Observer) => Subscription) {\n this._subscribe = subscribe;\n }\n\n subscribe(\n onNext?: ((value: T) => void) | null,\n onError?: ((error: any) => void) | null,\n onComplete?: (() => void) | null\n ): Subscription;\n subscribe(observer?: Observer | null): Subscription;\n subscribe(x?: any, error?: any, complete?: any): Subscription {\n return this._subscribe(\n !x || typeof x === \"function\" ? { next: x, error, complete } : x\n );\n }\n\n [symbolObservable]() {\n return this;\n }\n}\n","import { deepClone, keys } from \"../functions/utils\";\nimport { mergeRanges, RangeSet } from \"../helpers/rangeset\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\n\nexport function extendObservabilitySet(\n target: ObservabilitySet,\n newSet: ObservabilitySet\n): ObservabilitySet {\n keys(newSet).forEach(part => {\n const rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n","import { isAsyncFunction, keys } from \"../functions/utils\";\nimport { globalEvents, DEXIE_STORAGE_MUTATED_EVENT_NAME } from \"../globals/global-events\";\nimport {\n decrementExpectedAwaits,\n incrementExpectedAwaits,\n newScope,\n PSD,\n usePSD,\n} from \"../helpers/promise\";\nimport { ObservabilitySet } from \"../public/types/db-events\";\nimport {\n Observable as IObservable,\n Subscription,\n} from \"../public/types/observable\";\nimport { Observable } from \"../classes/observable/observable\";\nimport { extendObservabilitySet } from \"./extend-observability-set\";\nimport { rangesOverlap } from \"../helpers/rangeset\";\n\nexport function liveQuery(querier: () => T | Promise): IObservable {\n let hasValue = false;\n let currentValue: T = undefined as any;\n const observable = new Observable((observer) => {\n const scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr: ObservabilitySet) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n const exec = () => newScope(querier, { subscr, trans: null });\n const rv = PSD.trans\n ? // Ignore current transaction if active when calling subscribe().\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n (rv as Promise).then(\n decrementExpectedAwaits,\n decrementExpectedAwaits\n );\n }\n return rv;\n }\n\n let closed = false;\n\n let accumMuts: ObservabilitySet = {};\n let currentObs: ObservabilitySet = {};\n\n const subscription: Subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: () => {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n\n observer.start && observer.start(subscription); // https://github.com/tc39/proposal-observable\n\n let querying = false,\n startedListening = false;\n\n function shouldNotify() {\n return keys(currentObs).some(\n (key) =>\n accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key])\n );\n }\n\n const mutationListener = (parts: ObservabilitySet) => {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n\n const doQuery = () => {\n if (querying || closed) return;\n accumMuts = {};\n const subscr: ObservabilitySet = {};\n const ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(\n (result) => {\n hasValue = true;\n currentValue = result;\n querying = false;\n if (closed) return;\n if (shouldNotify()) {\n // Mutations has happened while we were querying. Redo query.\n doQuery();\n } else {\n accumMuts = {};\n // Update what we are subscribing for based on this last run:\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n },\n (err) => {\n querying = false;\n hasValue = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n }\n );\n };\n\n doQuery();\n return subscription;\n });\n observable.hasValue = () => hasValue;\n observable.getValue = () => currentValue;\n return observable;\n}\n","import { _global } from '../../globals/global';\nimport { DexieDOMDependencies } from '../../public/types/dexie-dom-dependencies';\n\nexport let domDeps: DexieDOMDependencies\n\ntry {\n domDeps = {\n // Required:\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n} catch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n","import { Dexie as _Dexie } from './dexie';\nimport { _global } from '../../globals/global';\nimport { props, derive, extend, override, getByKeyPath, setByKeyPath, delByKeyPath, shallowClone, deepClone, asap } from '../../functions/utils';\nimport { getObjectDiff } from \"../../functions/get-object-diff\";\nimport { fullNameExceptions } from '../../errors';\nimport { DexieConstructor } from '../../public/types/dexie-constructor';\nimport { getDatabaseNames } from '../../helpers/database-enumerator';\nimport { PSD } from '../../helpers/promise';\nimport { usePSD } from '../../helpers/promise';\nimport { newScope } from '../../helpers/promise';\nimport { rejection } from '../../helpers/promise';\nimport { awaitIterator } from '../../helpers/yield-support';\nimport Promise from '../../helpers/promise';\nimport * as Debug from '../../helpers/debug';\nimport { dexieStackFrameFilter, minKey, connections, DEXIE_VERSION } from '../../globals/constants';\nimport Events from '../../helpers/Events';\nimport { exceptions } from '../../errors';\nimport { errnames } from '../../errors';\nimport { getMaxKey } from '../../functions/quirks';\nimport { vip } from './vip';\nimport { globalEvents } from '../../globals/global-events';\nimport { liveQuery } from '../../live-query/live-query';\nimport { extendObservabilitySet } from '../../live-query/extend-observability-set';\nimport { domDeps } from './dexie-dom-dependencies';\nimport { cmp } from '../../functions/cmp';\n\n/* (Dexie) is an instance of DexieConstructor, as defined in public/types/dexie-constructor.d.ts\n* (new Dexie()) is an instance of Dexie, as defined in public/types/dexie.d.ts\n* \n* Why we're doing this?\n\n* Because we've choosen to define the public Dexie API using a DexieConstructor interface\n* rather than declaring a class. On that interface, all static props are defined.\n* In practice, class Dexie's constructor implements DexieConstructor and all member props\n* are defined in interface Dexie. We could say, it's a typescript limitation of not being\n* able to define a static interface that forces us to do the cast below.\n*/\nconst Dexie = _Dexie as any as DexieConstructor;\n\n//\n// Set all static methods and properties onto Dexie:\n// \nprops(Dexie, {\n\n // Dexie.BulkError = class BulkError {...};\n // Dexie.XXXError = class XXXError {...};\n ...fullNameExceptions,\n\n //\n // Static delete() method.\n //\n delete(databaseName: string) {\n const db = new Dexie(databaseName, {addons: []});\n return db.delete();\n },\n\n //\n // Static exists() method.\n //\n exists(name: string) {\n return new Dexie(name, { addons: [] }).open().then(db => {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', () => false);\n },\n\n //\n // Static method for retrieving a list of all existing databases at current host.\n //\n getDatabaseNames(cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n } catch {\n return rejection(new exceptions.MissingAPI());\n }\n },\n\n /** @deprecated */\n defineClass() {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n },\n\n ignoreTransaction(scopeFunc) {\n // In case caller is within a transaction but needs to create a separate transaction.\n // Example of usage:\n //\n // Let's say we have a logger function in our app. Other application-logic should be unaware of the\n // logger function and not need to include the 'logentries' table in all transaction it performs.\n // The logging should always be done in a separate transaction and not be dependant on the current\n // running transaction context. Then you could use Dexie.ignoreTransaction() to run code that starts a new transaction.\n //\n // Dexie.ignoreTransaction(function() {\n // db.logentries.add(newLogEntry);\n // });\n //\n // Unless using Dexie.ignoreTransaction(), the above example would try to reuse the current transaction\n // in current Promise-scope.\n //\n // An alternative to Dexie.ignoreTransaction() would be setImmediate() or setTimeout(). The reason we still provide an\n // API for this because\n // 1) The intention of writing the statement could be unclear if using setImmediate() or setTimeout().\n // 2) setTimeout() would wait unnescessary until firing. This is however not the case with setImmediate().\n // 3) setImmediate() is not supported in the ES standard.\n // 4) You might want to keep other PSD state that was set in a parent PSD, such as PSD.letThrough.\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) : // Use the closest parent that was non-transactional.\n scopeFunc(); // No need to change scope because there is no ongoing transaction.\n },\n\n vip,\n\n async: function (generatorFn: Function) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n };\n },\n\n spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return Promise.resolve(rv);\n return rv;\n } catch (e) {\n return rejection(e);\n }\n },\n\n // Dexie.currentTransaction property\n currentTransaction: {\n get: () => PSD.trans || null\n },\n\n waitFor: function (promiseOrFunction, optionalTimeout) {\n // If a function is provided, invoke it and pass the returning value to Transaction.waitFor()\n const promise = Promise.resolve(\n typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000); // Default the timeout to one minute. Caller may specify Infinity if required. \n\n // Run given promise on current transaction. If no current transaction, just return a Dexie promise based\n // on given value.\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n\n // Export our Promise implementation since it can be handy as a standalone Promise implementation\n Promise: Promise,\n\n // Dexie.debug proptery:\n // Dexie.debug = false\n // Dexie.debug = true\n // Dexie.debug = \"dexie\" - don't hide dexie's stack frames.\n debug: {\n get: () => Debug.debug,\n set: value => {\n Debug.setDebug(value, value === 'dexie' ? () => true : dexieStackFrameFilter);\n }\n },\n\n // Export our derive/extend/override methodology\n derive: derive, // Deprecate?\n extend: extend, // Deprecate?\n props: props,\n override: override, // Deprecate?\n // Export our Events() function - can be handy as a toolkit\n Events: Events,\n on: globalEvents,\n liveQuery,\n extendObservabilitySet,\n // Utilities\n getByKeyPath: getByKeyPath,\n setByKeyPath: setByKeyPath,\n delByKeyPath: delByKeyPath,\n shallowClone: shallowClone,\n deepClone: deepClone,\n getObjectDiff: getObjectDiff,\n cmp,\n asap: asap,\n //maxKey: new Dexie('',{addons:[]})._maxKey,\n minKey: minKey,\n // Addon registry\n addons: [],\n // Global DB connection list\n connections: connections,\n\n //MultiModifyError: exceptions.Modify, // Obsolete!\n errnames: errnames,\n\n // Export other static classes\n //IndexSpec: IndexSpec, Obsolete!\n //TableSchema: TableSchema, Obsolete!\n\n //\n // Dependencies\n //\n // These will automatically work in browsers with indexedDB support, or where an indexedDB polyfill has been included.\n //\n // In node.js, however, these properties must be set \"manually\" before instansiating a new Dexie().\n // For node.js, you need to require indexeddb-js or similar and then set these deps.\n //\n dependencies: domDeps,\n\n // API Version Number: Type Number, make sure to always set a version number that can be comparable correctly. Example: 0.9, 0.91, 0.92, 1.0, 1.01, 1.1, 1.2, 1.21, etc.\n semVer: DEXIE_VERSION,\n version: DEXIE_VERSION.split('.')\n .map(n => parseInt(n))\n .reduce((p, c, i) => p + (c / Math.pow(10, i * 2))),\n\n // https://github.com/dfahlander/Dexie.js/issues/186\n // typescript compiler tsc in mode ts-->es5 & commonJS, will expect require() to return\n // x.default. Workaround: Set Dexie.default = Dexie.\n // default: Dexie, // Commented because solved in index-umd.ts instead.\n // Make it possible to import {Dexie} (non-default import)\n // Reason 1: May switch to that in future.\n // Reason 2: We declare it both default and named exported in d.ts to make it possible\n // to let addons extend the Dexie interface with Typescript 2.1 (works only when explicitely\n // exporting the symbol, not just default exporting)\n // Dexie: Dexie // Commented because solved in index-umd.ts instead.\n});\n\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n","import { isIEOrEdge } from '../globals/constants';\nimport { globalEvents, DEXIE_STORAGE_MUTATED_EVENT_NAME, STORAGE_MUTATED_DOM_EVENT_NAME } from '../globals/global-events';\nimport { ObservabilitySet } from \"../public/types/db-events\";\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, updatedParts => {\n if (!propagatingLocally) {\n let event: CustomEvent;\n if (isIEOrEdge) {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n } else {\n event = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, ({detail}: CustomEvent) => {\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\n\nexport function propagateLocally(updateParts: ObservabilitySet) {\n let wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n } finally {\n propagatingLocally = wasMe;\n }\n}\n\nexport let propagatingLocally = false;\n","import {\n globalEvents,\n STORAGE_MUTATED_DOM_EVENT_NAME,\n DEXIE_STORAGE_MUTATED_EVENT_NAME,\n} from '../globals/global-events';\nimport { propagateLocally, propagatingLocally } from './propagate-locally';\n\nif (typeof BroadcastChannel !== 'undefined') {\n const bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n\n /**\n * The Node.js BroadcastChannel will prevent the node process from exiting\n * if the BroadcastChannel is not closed.\n * Therefore we have to call unref() which allows the process to finish\n * properly even when the BroadcastChannel is never closed.\n * @link https://nodejs.org/api/worker_threads.html#broadcastchannelunref\n * @link https://github.com/dexie/Dexie.js/pull/1576\n */\n if (typeof (bc as any).unref === 'function') {\n (bc as any).unref();\n } \n \n //\n // Propagate local changes to remote tabs, windows and workers via BroadcastChannel\n //\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => {\n if (!propagatingLocally) {\n bc.postMessage(changedParts);\n }\n });\n\n //\n // Propagate remote changes locally via storage event:\n //\n bc.onmessage = (ev) => {\n if (ev.data) propagateLocally(ev.data);\n };\n} else if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n // DOM verified - when typeof self !== \"undefined\", we are a window or worker. Not a Node process.\n\n //\n // Propagate local changes to remote tabs/windows via storage event and service worker\n // via messages. We have this code here because of https://bugs.webkit.org/show_bug.cgi?id=161472.\n //\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, (changedParts) => {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n // We're a browsing window or tab. Propagate to other windows/tabs via storage event:\n localStorage.setItem(\n STORAGE_MUTATED_DOM_EVENT_NAME,\n JSON.stringify({\n trig: Math.random(),\n changedParts,\n })\n );\n }\n if (typeof self['clients'] === 'object') {\n // We're a service worker. Propagate to our browser clients.\n [...self['clients'].matchAll({ includeUncontrolled: true })].forEach(\n (client) =>\n client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts,\n })\n );\n }\n }\n } catch {}\n });\n\n //\n // Propagate remote changes locally via storage event:\n //\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', (ev: StorageEvent) => {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n const data = JSON.parse(ev.newValue);\n if (data) propagateLocally(data.changedParts);\n }\n });\n }\n\n //\n // Propagate messages from service worker\n //\n const swContainer = self.document && navigator.serviceWorker; // self.document is to verify we're not the SW ourself\n if (swContainer) {\n // We're a browser window and want to propagate message from the SW:\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\n\nfunction propagateMessageLocally({ data }: MessageEvent) {\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n","import { Dexie } from './classes/dexie';\nimport { DexieConstructor } from './public/types/dexie-constructor';\nimport { DexiePromise } from './helpers/promise';\nimport { mapError } from './errors';\nimport * as Debug from './helpers/debug';\nimport { dexieStackFrameFilter } from './globals/constants';\n\n// Generate all static properties such as Dexie.maxKey etc\n// (implement interface DexieConstructor):\nimport './classes/dexie/dexie-static-props';\nimport './live-query/enable-broadcast';\nimport { liveQuery } from './live-query/live-query';\n\n// Set rejectionMapper of DexiePromise so that it generally tries to map\n// DOMErrors and DOMExceptions to a DexieError instance with same name but with\n// async stack support and with a prototypal inheritance from DexieError and Error.\n// of Map DOMErrors and DOMExceptions to corresponding Dexie errors.\nDexiePromise.rejectionMapper = mapError;\n\n// Let the async stack filter focus on app code and filter away frames from dexie.min.js:\nDebug.setDebug(Debug.debug, dexieStackFrameFilter);\n\nexport { RangeSet, mergeRanges, rangesOverlap } from \"./helpers/rangeset\";\nexport { Dexie, liveQuery }; // Comply with public/index.d.ts.\nexport default Dexie;\n","import * as YAML from 'js-yaml'\n\nimport SecureLS from 'secure-ls'\n\nfunction loadResource(type, url, base) {\n if (url.match(/(https?)?:\\/\\//i)) {\n if (type === 'script') {\n return ``\n } else {\n return ``\n }\n }\n\n const absoluteURL = new URL(url, base).toString()\n\n return `\n `\n}\n\nfunction replace(code, baseURL) {\n try {\n let head = code.match(/.*?<\\/head>/is)[0]\n\n head = head.replace(\n /.*?<\\/script>/gims,\n (pat) => {\n let url = pat.match(/src=(?:'|\")([^\"']+)(?:'|\")/is)\n\n if (url) {\n url = url[1]\n\n if (!(url.startsWith('https://') || url.startsWith('http://'))) {\n return loadResource('script', url, baseURL)\n }\n }\n\n return pat\n }\n )\n\n head = head.replace(\n //gims,\n (pat) => {\n let url = pat.match(/href=(?:'|\")([^\"']+)(?:'|\")/is)\n\n if (url) {\n url = url[1]\n\n if (!(url.startsWith('https://') || url.startsWith('http://'))) {\n return loadResource('css', url, baseURL)\n }\n }\n\n return pat\n }\n )\n\n return code.replace(/.*?<\\/head>/is, head)\n } catch (e) {\n console.warn('problems parsing html:', e)\n }\n}\n\nexport function copyToClipboard(str: string) {\n navigator.clipboard.writeText(str)\n}\n\nexport function parseClassroom(config: string) {\n let classroom\n\n console.warn('parse Classroom', config)\n\n try {\n classroom = parse(config)\n\n if (classroom) {\n // guarantees that older modules without a custom show can be loaded\n for (let i = 0; i < classroom.modules; i++) {\n classroom.modules[i].showInCustom =\n classroom.modules[i].showInCustom || classroom.modules[i].showIn || ''\n }\n }\n } catch (e) {\n console.warn('could not parse classroom', e.message)\n }\n\n return classroom\n}\n\nexport function parse(config: string): any {\n let data: any = undefined\n\n try {\n data = JSON.parse(config)\n } catch (e) {\n data = YAML.load(config)\n }\n\n return data\n}\n\nexport function stringify(config: any): string {\n return YAML.dump(config)\n}\n\nexport async function scrapeModule(module) {\n try {\n const response = await fetch(module.url)\n const content = await response.text()\n\n if (module.url.match(/\\.ya?ml$/i)) {\n try {\n const yaml = YAML.load(content)\n\n const links = yaml.load?.links || []\n const scripts = yaml.load?.scripts || []\n\n const code = `\n \n \n ${links\n .map((url) => {\n return loadResource('css', url, module.url)\n })\n .join('\\n')}\n \n ${scripts\n .map((url) => {\n return loadResource('script', url, module.url)\n })\n .join('\\n')}\n\n \n \n \n \n ${yaml.body || ''}\n \n \n `\n\n return {\n ...module,\n name: yaml.name,\n description: yaml.description,\n icon: yaml.icon || 'mdi-package',\n shownIn: yaml['show-in'] || ['*'],\n srcdoc: 'data:text/html,' + escape(code),\n origin: '*',\n }\n } catch (error) {\n console.warn('loading yaml:', error)\n\n throw new Error('Could not load the YAML-declaration: ' + error.message)\n }\n } else {\n const moduleEl = document.createElement('html')\n moduleEl.innerHTML = content\n const meta = Object.fromEntries(\n Object.values(moduleEl.getElementsByTagName('meta')).map((m) => [\n m.name,\n m.content,\n ])\n )\n\n if (meta['fetch'] && meta['fetch'] !== 'false') {\n return {\n ...module,\n name:\n moduleEl.getElementsByTagName('title')[0].innerText || meta['name'],\n description: meta['description'],\n icon: meta['icon'] || 'mdi-package',\n shownIn: (meta['show-in'] || '*').replace(/\\s+/g, '').split(','), // or 'station'\n srcdoc: 'data:text/html,' + escape(replace(content, module.url)),\n origin: '*',\n }\n }\n\n try {\n return {\n ...module,\n name:\n moduleEl.getElementsByTagName('title')[0].innerText || meta['name'],\n description: meta['description'],\n icon: meta['icon'] || 'mdi-package',\n shownIn: (meta['show-in'] || '*').replace(/\\s+/g, '').split(','), // or 'station'\n }\n } catch (error) {\n throw new Error(\n 'This does not seem to be a valid module declaration, check the URL manually.'\n )\n }\n }\n } catch (error) {\n return {\n ...module,\n name: '',\n description: error,\n icon: 'mdi-alert',\n shownIn: '',\n }\n }\n}\n\nexport function download(filename, text) {\n /**\n * https://stackoverflow.com/questions/3665115/how-to-create-a-file-in-memory-for-user-to-download-but-not-through-server\n */\n const element = document.createElement('a')\n element.setAttribute(\n 'href',\n 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)\n )\n element.setAttribute('download', filename)\n\n element.style.display = 'none'\n document.body.appendChild(element)\n\n element.click()\n\n document.body.removeChild(element)\n}\n\nexport function debounce(func, wait, immediate) {\n /**\n * https://davidwalsh.name/javascript-debounce-function\n */\n let timeout\n return function () {\n const context = this,\n args = arguments\n const later = function () {\n timeout = null\n if (!immediate) func.apply(context, args)\n }\n const callNow = immediate && !timeout\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) func.apply(context, args)\n }\n}\n\nexport function setToValue(obj, pathArr, value) {\n let i = 0\n\n for (i = 0; i < pathArr.length - 1; i++) {\n obj = obj[pathArr[i]]\n if (!obj[pathArr[i + 1]]) obj[pathArr[i + 1]] = {}\n }\n obj[pathArr[i]] = value\n // if (value == undefined)\n // delete obj[pathArr[i]]\n}\n\nexport function validateUrl(string: string) {\n try {\n const url = new URL(string)\n\n // URL: allows to define protocols such as `abc:` or `bla:`\n const protocols = [\n 'http:',\n 'https:',\n 'file:',\n 'ipfs:',\n 'ipns:',\n 'blob:',\n 'dat:',\n 'hyper:',\n ]\n if (protocols.includes(url.protocol)) {\n return true\n }\n } catch (err) {}\n\n return false\n}\n\nexport function infoHash(length = 40) {\n let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\n\n // Pick characters randomly\n let str = ''\n for (let i = 0; i < length; i++) {\n str += chars.charAt(Math.floor(Math.random() * chars.length))\n }\n\n return str\n}\n\nvar SessionID: string | null = null\nconst ls = new SecureLS({ encodingType: 'aes' })\n\nexport function getPeerID(withSession = true) {\n let peerID = ls.get('peerID_')\n\n if (!peerID) {\n peerID = infoHash(12)\n ls.set('peerID_', peerID)\n }\n\n if (!SessionID) {\n SessionID = infoHash(6)\n }\n\n return withSession ? peerID + '_' + SessionID : peerID\n}\n\nexport function getShortPeerID(id: string) {\n const ids = id.split('_')\n\n // peerID_sessionID\n if (ids.length == 2) {\n return ids[0].slice(-6)\n }\n\n return id\n}\n\nexport function clone(object: any) {\n if (object !== undefined) return JSON.parse(JSON.stringify(object))\n}\n\nexport function removeKeysStartingWithSecret(obj: any) {\n for (let key in obj) {\n if (typeof obj[key] === 'object') {\n // Recursively call the function if the value is an object or an array\n removeKeysStartingWithSecret(obj[key])\n\n if (JSON.stringify(obj[key]) === '{}') {\n delete obj[key]\n }\n }\n // If the key starts with \"secret\", delete the key-value pair\n if (key.toLocaleLowerCase().startsWith('secret')) {\n delete obj[key]\n }\n }\n}\n\nexport function deepEqual(object1, object2) {\n const keys1 = Object.keys(object1)\n const keys2 = Object.keys(object2)\n if (keys1.length !== keys2.length) {\n return false\n }\n for (const key of keys1) {\n const val1 = object1[key]\n const val2 = object2[key]\n const areObjects = isObject(val1) && isObject(val2)\n if (\n (areObjects && !deepEqual(val1, val2)) ||\n (!areObjects && val1 !== val2)\n ) {\n return false\n }\n }\n return true\n}\nfunction isObject(object) {\n return object != null && typeof object === 'object'\n}\n\nexport async function hashJsonObject(jsonObject: any) {\n const msgUint8 = new TextEncoder().encode(JSON.stringify(jsonObject))\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n return hashHex\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n\n if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\nexport { _object_spread_props as _ };\n","\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n // used for this specific key only because Object.defineProperty is slow\n if (keyNode === '__proto__') {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","/*!\n * secure-ls - v1.2.6\n * URL - https://github.com/softvar/secure-ls\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2016-2024 Varun Malhotra\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n *\n * Dependencies used -\n * 1. crypto-js - ^4.2.0\n * 2. lz-string - ^1.5.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n // CommonJS2\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();\n // AMD\n else if (typeof define === 'function' && define.amd) define([], factory);\n // CommonJS\n else if (typeof exports === 'object') exports['SecureLS'] = factory();\n // Root\n else root['SecureLS'] = factory();\n})(this, () => {\n return /******/ (() => {\n // webpackBootstrap\n /******/ var __webpack_modules__ = {\n /***/ './src/Base64.js':\n /*!***********************!*\\\n !*** ./src/Base64.js ***!\n \\***********************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n const Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n encode: function (e) {\n let t = '';\n let n, r, i, s, o, u, a;\n let f = 0;\n e = Base64._utf8Encode(e);\n while (f < e.length) {\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = ((n & 3) << 4) | (r >> 4);\n u = ((r & 15) << 2) | (i >> 6);\n a = i & 63;\n if (isNaN(r)) {\n u = a = 64;\n } else if (isNaN(i)) {\n a = 64;\n }\n t =\n t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function (e) {\n let t = '';\n let n, r, i;\n let s, o, u, a;\n let f = 0;\n e = e.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = (s << 2) | (o >> 4);\n r = ((o & 15) << 4) | (u >> 2);\n i = ((u & 3) << 6) | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) {\n t = t + String.fromCharCode(r);\n }\n if (a !== 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function (e) {\n e = e.replace(/\\r\\n/g, '\\n');\n let t = '';\n for (let n = 0; n < e.length; n++) {\n let r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n } else if (r > 127 && r < 2048) {\n t += String.fromCharCode((r >> 6) | 192);\n t += String.fromCharCode((r & 63) | 128);\n } else {\n t += String.fromCharCode((r >> 12) | 224);\n t += String.fromCharCode(((r >> 6) & 63) | 128);\n t += String.fromCharCode((r & 63) | 128);\n }\n }\n return t;\n },\n _utf8Decode: function (e) {\n let t = '';\n let n = 0;\n let r, c2, c3;\n r = c2 = 0;\n while (n < e.length) {\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode(((r & 31) << 6) | (c2 & 63));\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode(((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n n += 3;\n }\n }\n return t;\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = Base64;\n\n /***/\n },\n\n /***/ './src/SecureLS.js':\n /*!*************************!*\\\n !*** ./src/SecureLS.js ***!\n \\*************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ SecureLS: () => /* binding */ SecureLS,\n /* harmony export */\n });\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./constants */ './src/constants.js',\n );\n /* harmony import */ var _enc_utf8__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./enc-utf8 */ './src/enc-utf8.js',\n );\n /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./utils */ './src/utils.js',\n );\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! crypto-js/aes */ './node_modules/crypto-js/aes.js',\n );\n /* harmony import */ var crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\n /*! crypto-js/rabbit */ './node_modules/crypto-js/rabbit.js',\n );\n /* harmony import */ var crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\n /*! crypto-js/rc4 */ './node_modules/crypto-js/rc4.js',\n );\n /* harmony import */ var crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__);\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\n /*! crypto-js/tripledes */ './node_modules/crypto-js/tripledes.js',\n );\n /* harmony import */ var crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__);\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\n /*! lz-string/libs/lz-string */ './node_modules/lz-string/libs/lz-string.js',\n );\n /* harmony import */ var lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7___default =\n /*#__PURE__*/ __webpack_require__.n(lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__);\n /* harmony import */ var _Base64__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\n /*! ./Base64 */ './src/Base64.js',\n );\n\n const encryptors = {\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.AES]:\n crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.DES]:\n crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RABBIT]:\n crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n [_constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RC4]:\n crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n };\n class SecureLS {\n constructor({\n encryptionSecret = '',\n encryptionNamespace = '',\n isCompression = true,\n encodingType = _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64,\n storage = localStorage,\n metaKey = _constants__WEBPACK_IMPORTED_MODULE_0__['default'].metaKey,\n } = {}) {\n // Assign libraries and utilities\n Object.assign(this, {\n _name: 'secure-ls',\n Base64: _Base64__WEBPACK_IMPORTED_MODULE_8__['default'],\n LZString: {\n compressToUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.compressToUTF16,\n decompressFromUTF16: lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__.decompressFromUTF16,\n },\n AES: crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default(),\n DES: crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default(),\n RABBIT: crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default(),\n RC4: crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default(),\n enc: _enc_utf8__WEBPACK_IMPORTED_MODULE_1__['default'],\n });\n\n // Configuration and property assignment\n this.config = {\n encryptionSecret,\n encryptionNamespace,\n isCompression,\n encodingType: encodingType.toLowerCase(),\n storage,\n metaKey,\n };\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n\n // Initialize the class\n this.init();\n }\n init() {\n let metaData = this.getMetaData();\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n _isBase64EncryptionType() {\n return (\n _Base64__WEBPACK_IMPORTED_MODULE_8__['default'] &&\n (typeof this.config.encodingType === 'undefined' ||\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64)\n );\n }\n _isAESEncryptionType() {\n return (\n crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.AES\n );\n }\n _isDESEncryptionType() {\n return (\n crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.DES\n );\n }\n _isRabbitEncryptionType() {\n return (\n crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RABBIT\n );\n }\n _isRC4EncryptionType() {\n return (\n crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default() &&\n this.config.encodingType === _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.RC4\n );\n }\n _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n getEncryptionSecret(key) {\n let metaData = this.getMetaData();\n let obj = _utils__WEBPACK_IMPORTED_MODULE_2__['default'].getObjectFromKey(metaData.keys, key);\n if (!obj) {\n return;\n }\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === 'undefined') {\n this.encryptionSecret = obj.s;\n if (!this.encryptionSecret) {\n this.encryptionSecret = _utils__WEBPACK_IMPORTED_MODULE_2__['default'].generateSecretKey();\n this.setMetaData();\n }\n } else {\n this.encryptionSecret = this.config.encryptionSecret || obj.s || '';\n }\n }\n }\n getEncryptionType() {\n const encodingType = this.config.encodingType;\n return encodingType\n ? encodingType.toLowerCase()\n : _constants__WEBPACK_IMPORTED_MODULE_0__['default'].EncrytionTypes.BASE64;\n }\n getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n setMetaData() {\n let dataToStore = this.processData(\n {\n keys: this.allKeys,\n },\n true,\n );\n\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? '__' + this.config.encryptionNamespace : '');\n }\n resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === '') {\n return '';\n }\n let jsonData;\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error('Could not stringify data', err);\n }\n\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n let encodedData = jsonData;\n if (this._isBase64 || isAllKeysData) {\n encodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__['default'].encode(jsonData);\n } else {\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n }\n encodedData = encodedData && encodedData.toString();\n }\n\n // Compress data if set to true\n let compressedData = encodedData;\n if (this._isCompression || isAllKeysData) {\n compressedData = this.LZString.compressToUTF16(encodedData);\n }\n return compressedData;\n }\n\n // PUBLIC APIs\n getAllKeys() {\n let data = this.getMetaData();\n return _utils__WEBPACK_IMPORTED_MODULE_2__['default'].extractKeyNames(data) || [];\n }\n get(key, isAllKeysData) {\n let decodedData = '';\n let jsonData = '';\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return jsonData;\n }\n let data = this.getDataFromLocalStorage(key);\n if (!data) {\n return jsonData;\n }\n let deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) {\n // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n }\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) {\n // meta data always Base64\n decodedData = _Base64__WEBPACK_IMPORTED_MODULE_8__['default'].decode(deCompressedData);\n } else {\n this.getEncryptionSecret(key);\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n const bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n if (bytes) {\n decodedData = bytes.toString(_enc_utf8__WEBPACK_IMPORTED_MODULE_1__['default']._Utf8);\n }\n }\n }\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error('Could not parse JSON', err);\n }\n return jsonData;\n }\n set(key, data) {\n let dataToStore = '';\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return;\n }\n this.getEncryptionSecret(key);\n\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret,\n });\n this.setMetaData();\n }\n }\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n remove(key) {\n if (!_utils__WEBPACK_IMPORTED_MODULE_2__['default'].is(key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.KEY_NOT_PROVIDED,\n );\n return;\n }\n if (key === this.metaKey && this.getAllKeys().length) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].warn(\n _constants__WEBPACK_IMPORTED_MODULE_0__['default'].WarningEnum.META_KEY_REMOVE,\n );\n return;\n }\n if (_utils__WEBPACK_IMPORTED_MODULE_2__['default'].isKeyPresent(this.allKeys, key)) {\n _utils__WEBPACK_IMPORTED_MODULE_2__['default'].removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n removeAll() {\n let keys = this.getAllKeys();\n for (let i = 0; i < keys.length; i++) {\n this.storage.removeItem(keys[i]);\n }\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n }\n\n /***/\n },\n\n /***/ './src/WordArray.js':\n /*!**************************!*\\\n !*** ./src/WordArray.js ***!\n \\**************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n\n let CryptoJSWordArray = {\n random: function (nBytes) {\n let words = [];\n let r = function (mw) {\n let mz = 0x3ade68b1;\n let mask = 0xffffffff;\n return function () {\n mz = (0x9069 * (mz & 0xffff) + (mz >> 0x10)) & mask;\n mw = (0x4650 * (mw & 0xffff) + (mw >> 0x10)) & mask;\n let result = ((mz << 0x10) + mw) & mask;\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n for (let i = 0, rcache; i < nBytes; i += 4) {\n let _r = r((rcache || Math.random()) * 0x100000000);\n rcache = _r() * 0x3ade67b7;\n words.push((_r() * 0x100000000) | 0);\n }\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n Set: function (words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = CryptoJSWordArray;\n\n /***/\n },\n\n /***/ './src/constants.js':\n /*!**************************!*\\\n !*** ./src/constants.js ***!\n \\**************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n const WarningEnum = {\n KEY_NOT_PROVIDED: 'keyNotProvided',\n META_KEY_REMOVE: 'metaKeyRemove',\n DEFAULT_TEXT: 'defaultText',\n };\n const WarningTypes = {};\n WarningTypes[WarningEnum.KEY_NOT_PROVIDED] = 'Secure LS: Key not provided. Aborting operation!';\n WarningTypes[WarningEnum.META_KEY_REMOVE] = `Secure LS: Meta key can not be removed\nunless all keys created by Secure LS are removed!`;\n WarningTypes[WarningEnum.DEFAULT_TEXT] = `Unexpected output`;\n const constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: 'base64',\n AES: 'aes',\n DES: 'des',\n RABBIT: 'rabbit',\n RC4: 'rc4',\n },\n metaKey: '_secure__ls__metadata',\n secretPhrase: 's3cr3t$#@135^&*246',\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = constants;\n\n /***/\n },\n\n /***/ './src/enc-utf8.js':\n /*!*************************!*\\\n !*** ./src/enc-utf8.js ***!\n \\*************************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n const enc = {\n Latin1: {\n stringify: (wordArray) => {\n // Shortcuts\n let words = wordArray.words;\n let sigBytes = wordArray.sigBytes;\n let latin1Chars = [],\n i,\n bite;\n\n // Convert\n for (i = 0; i < sigBytes; i++) {\n bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join('');\n },\n },\n _Utf8: {\n stringify: (wordArray) => {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error('Malformed UTF-8 data', err);\n }\n },\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = enc;\n\n /***/\n },\n\n /***/ './src/utils.js':\n /*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/\n /***/ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n 'use strict';\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! crypto-js/pbkdf2 */ './node_modules/crypto-js/pbkdf2.js',\n );\n /* harmony import */ var crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default =\n /*#__PURE__*/ __webpack_require__.n(crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./constants */ './src/constants.js',\n );\n /* harmony import */ var _WordArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./WordArray */ './src/WordArray.js',\n );\n\n const utils = {\n is: (key) => !!key,\n warn: (reason = _constants__WEBPACK_IMPORTED_MODULE_1__['default'].WarningEnum.DEFAULT_TEXT) => {\n console.warn(_constants__WEBPACK_IMPORTED_MODULE_1__['default'].WarningTypes[reason]);\n },\n generateSecretKey: () => {\n const salt = _WordArray__WEBPACK_IMPORTED_MODULE_2__['default'].random(128 / 8);\n const key128Bits = crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default()(\n _constants__WEBPACK_IMPORTED_MODULE_1__['default'].secretPhrase,\n salt,\n {\n keySize: 128 / 32,\n },\n );\n return key128Bits.toString();\n },\n getObjectFromKey: (data = [], key) => {\n return data.find((item) => item.k === key) || {};\n },\n extractKeyNames: ({ keys = [] } = {}) => {\n return keys.map(({ k }) => k);\n },\n isKeyPresent: (allKeys = [], key) => {\n return allKeys.some((item) => String(item.k) === String(key));\n },\n removeFromKeysList: (allKeys = [], key) => {\n const index = allKeys.findIndex((item) => item.k === key);\n if (index !== -1) {\n allKeys.splice(index, 1);\n }\n return index;\n },\n };\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = utils;\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/aes.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/aes.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n\n // Lookup tables\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n\n // Compute lookup tables\n (function () {\n // Compute double table\n var d = [];\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = (i << 1) ^ 0x11b;\n }\n }\n\n // Walk GF(2^8)\n var x = 0;\n var xi = 0;\n for (var i = 0; i < 256; i++) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n\n // Compute multiplication\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n SUB_MIX_3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n INV_SUB_MIX_3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n\n // Precomputed Rcon lookup\n var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n /**\n * AES block cipher algorithm.\n */\n var AES = (C_algo.AES = BlockCipher.extend({\n _doReset: function () {\n var t;\n\n // Skip reset of nRounds has been set before and key did not change\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n }\n\n // Shortcuts\n var key = (this._keyPriorReset = this._key);\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n\n // Compute number of rounds\n var nRounds = (this._nRounds = keySize + 6);\n\n // Compute number of key schedule rows\n var ksRows = (nRounds + 1) * 4;\n\n // Compute key schedule\n var keySchedule = (this._keySchedule = []);\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n\n if (!(ksRow % keySize)) {\n // Rot word\n t = (t << 8) | (t >>> 24);\n\n // Sub word\n t =\n (SBOX[t >>> 24] << 24) |\n (SBOX[(t >>> 16) & 0xff] << 16) |\n (SBOX[(t >>> 8) & 0xff] << 8) |\n SBOX[t & 0xff];\n\n // Mix Rcon\n t ^= RCON[(ksRow / keySize) | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n // Sub word\n t =\n (SBOX[t >>> 24] << 24) |\n (SBOX[(t >>> 16) & 0xff] << 16) |\n (SBOX[(t >>> 8) & 0xff] << 8) |\n SBOX[t & 0xff];\n }\n\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n }\n\n // Compute inv key schedule\n var invKeySchedule = (this._invKeySchedule = []);\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] =\n INV_SUB_MIX_0[SBOX[t >>> 24]] ^\n INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^\n INV_SUB_MIX_3[SBOX[t & 0xff]];\n }\n }\n },\n\n encryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n\n decryptBlock: function (M, offset) {\n // Swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n\n this._doCryptBlock(\n M,\n offset,\n this._invKeySchedule,\n INV_SUB_MIX_0,\n INV_SUB_MIX_1,\n INV_SUB_MIX_2,\n INV_SUB_MIX_3,\n INV_SBOX,\n );\n\n // Inv swap 2nd and 4th rows\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n\n _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n // Shortcut\n var nRounds = this._nRounds;\n\n // Get input, add round key\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n\n // Key schedule row counter\n var ksRow = 4;\n\n // Rounds\n for (var round = 1; round < nRounds; round++) {\n // Shift rows, sub bytes, mix columns, add round key\n var t0 =\n SUB_MIX_0[s0 >>> 24] ^\n SUB_MIX_1[(s1 >>> 16) & 0xff] ^\n SUB_MIX_2[(s2 >>> 8) & 0xff] ^\n SUB_MIX_3[s3 & 0xff] ^\n keySchedule[ksRow++];\n var t1 =\n SUB_MIX_0[s1 >>> 24] ^\n SUB_MIX_1[(s2 >>> 16) & 0xff] ^\n SUB_MIX_2[(s3 >>> 8) & 0xff] ^\n SUB_MIX_3[s0 & 0xff] ^\n keySchedule[ksRow++];\n var t2 =\n SUB_MIX_0[s2 >>> 24] ^\n SUB_MIX_1[(s3 >>> 16) & 0xff] ^\n SUB_MIX_2[(s0 >>> 8) & 0xff] ^\n SUB_MIX_3[s1 & 0xff] ^\n keySchedule[ksRow++];\n var t3 =\n SUB_MIX_0[s3 >>> 24] ^\n SUB_MIX_1[(s0 >>> 16) & 0xff] ^\n SUB_MIX_2[(s1 >>> 8) & 0xff] ^\n SUB_MIX_3[s2 & 0xff] ^\n keySchedule[ksRow++];\n\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n\n // Shift rows, sub bytes, add round key\n var t0 =\n ((SBOX[s0 >>> 24] << 24) |\n (SBOX[(s1 >>> 16) & 0xff] << 16) |\n (SBOX[(s2 >>> 8) & 0xff] << 8) |\n SBOX[s3 & 0xff]) ^\n keySchedule[ksRow++];\n var t1 =\n ((SBOX[s1 >>> 24] << 24) |\n (SBOX[(s2 >>> 16) & 0xff] << 16) |\n (SBOX[(s3 >>> 8) & 0xff] << 8) |\n SBOX[s0 & 0xff]) ^\n keySchedule[ksRow++];\n var t2 =\n ((SBOX[s2 >>> 24] << 24) |\n (SBOX[(s3 >>> 16) & 0xff] << 16) |\n (SBOX[(s0 >>> 8) & 0xff] << 8) |\n SBOX[s1 & 0xff]) ^\n keySchedule[ksRow++];\n var t3 =\n ((SBOX[s3 >>> 24] << 24) |\n (SBOX[(s0 >>> 16) & 0xff] << 16) |\n (SBOX[(s1 >>> 8) & 0xff] << 8) |\n SBOX[s2 & 0xff]) ^\n keySchedule[ksRow++];\n\n // Set output\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n\n keySize: 256 / 32,\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n */\n C.AES = BlockCipher._createHelper(AES);\n })();\n\n return CryptoJS.AES;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/cipher-core.js':\n /*!***********************************************!*\\\n !*** ./node_modules/crypto-js/cipher-core.js ***!\n \\***********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n /**\n * Cipher core components.\n */\n CryptoJS.lib.Cipher ||\n (function (undefined) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var Base64 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n\n /**\n * Abstract base cipher template.\n *\n * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n */\n var Cipher = (C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function (key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function (key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function (xformMode, key, cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Store transform mode and key\n this._xformMode = xformMode;\n this._key = key;\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-cipher logic\n this._doReset();\n },\n\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function (dataUpdate) {\n // Append\n this._append(dataUpdate);\n\n // Process available blocks\n return this._process();\n },\n\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function (dataUpdate) {\n // Final data update\n if (dataUpdate) {\n this._append(dataUpdate);\n }\n\n // Perform concrete-cipher logic\n var finalProcessedData = this._doFinalize();\n\n return finalProcessedData;\n },\n\n keySize: 128 / 32,\n\n ivSize: 128 / 32,\n\n _ENC_XFORM_MODE: 1,\n\n _DEC_XFORM_MODE: 2,\n\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: (function () {\n function selectCipherStrategy(key) {\n if (typeof key == 'string') {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n\n return function (cipher) {\n return {\n encrypt: function (message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n\n decrypt: function (ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n },\n };\n };\n })(),\n }));\n\n /**\n * Abstract base stream cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n */\n var StreamCipher = (C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function () {\n // Process partial blocks\n var finalProcessedBlocks = this._process(!!'flush');\n\n return finalProcessedBlocks;\n },\n\n blockSize: 1,\n }));\n\n /**\n * Mode namespace.\n */\n var C_mode = (C.mode = {});\n\n /**\n * Abstract base block cipher mode template.\n */\n var BlockCipherMode = (C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function (cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function (cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function (cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n },\n }));\n\n /**\n * Cipher Block Chaining mode.\n */\n var CBC = (C_mode.CBC = (function () {\n /**\n * Abstract base CBC mode.\n */\n var CBC = BlockCipherMode.extend();\n\n /**\n * CBC encryptor.\n */\n CBC.Encryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // XOR and encrypt\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n\n // Remember this block to use with next block\n this._prevBlock = words.slice(offset, offset + blockSize);\n },\n });\n\n /**\n * CBC decryptor.\n */\n CBC.Decryptor = CBC.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function (words, offset) {\n // Shortcuts\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n\n // Remember this block to use with next block\n var thisBlock = words.slice(offset, offset + blockSize);\n\n // Decrypt and XOR\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n\n // This block becomes the previous block\n this._prevBlock = thisBlock;\n },\n });\n\n function xorBlock(words, offset, blockSize) {\n var block;\n\n // Shortcut\n var iv = this._iv;\n\n // Choose mixing block\n if (iv) {\n block = iv;\n\n // Remove IV for subsequent blocks\n this._iv = undefined;\n } else {\n block = this._prevBlock;\n }\n\n // XOR blocks\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n\n return CBC;\n })());\n\n /**\n * Padding namespace.\n */\n var C_pad = (C.pad = {});\n\n /**\n * PKCS #5/7 padding strategy.\n */\n var Pkcs7 = (C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function (data, blockSize) {\n // Shortcut\n var blockSizeBytes = blockSize * 4;\n\n // Count padding bytes\n var nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);\n\n // Create padding word\n var paddingWord =\n (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n // Create padding\n var paddingWords = [];\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n // Add padding\n data.concat(padding);\n },\n\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function (data) {\n // Get number of padding bytes from last byte\n var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n // Remove padding\n data.sigBytes -= nPaddingBytes;\n },\n });\n\n /**\n * Abstract base block cipher template.\n *\n * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n */\n var BlockCipher = (C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7,\n }),\n\n reset: function () {\n var modeCreator;\n\n // Reset cipher\n Cipher.reset.call(this);\n\n // Shortcuts\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n\n // Reset block mode\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {\n modeCreator = mode.createDecryptor;\n // Keep at least one block in the buffer for unpadding\n this._minBufferSize = 1;\n }\n\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n\n _doProcessBlock: function (words, offset) {\n this._mode.processBlock(words, offset);\n },\n\n _doFinalize: function () {\n var finalProcessedBlocks;\n\n // Shortcut\n var padding = this.cfg.padding;\n\n // Finalize\n if (this._xformMode == this._ENC_XFORM_MODE) {\n // Pad data\n padding.pad(this._data, this.blockSize);\n\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {\n // Process final blocks\n finalProcessedBlocks = this._process(!!'flush');\n\n // Unpad data\n padding.unpad(finalProcessedBlocks);\n }\n\n return finalProcessedBlocks;\n },\n\n blockSize: 128 / 32,\n }));\n\n /**\n * A collection of cipher parameters.\n *\n * @property {WordArray} ciphertext The raw ciphertext.\n * @property {WordArray} key The key to this ciphertext.\n * @property {WordArray} iv The IV used in the ciphering operation.\n * @property {WordArray} salt The salt used with a key derivation function.\n * @property {Cipher} algorithm The cipher algorithm.\n * @property {Mode} mode The block mode used in the ciphering operation.\n * @property {Padding} padding The padding scheme used in the ciphering operation.\n * @property {number} blockSize The block size of the cipher.\n * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n */\n var CipherParams = (C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function (cipherParams) {\n this.mixIn(cipherParams);\n },\n\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function (formatter) {\n return (formatter || this.formatter).stringify(this);\n },\n }));\n\n /**\n * Format namespace.\n */\n var C_format = (C.format = {});\n\n /**\n * OpenSSL formatting strategy.\n */\n var OpenSSLFormatter = (C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function (cipherParams) {\n var wordArray;\n\n // Shortcuts\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n\n // Format\n if (salt) {\n wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n\n return wordArray.toString(Base64);\n },\n\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function (openSSLStr) {\n var salt;\n\n // Parse base64\n var ciphertext = Base64.parse(openSSLStr);\n\n // Shortcut\n var ciphertextWords = ciphertext.words;\n\n // Test for salt\n if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n // Extract salt\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n // Remove salt from ciphertext\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n\n return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n },\n });\n\n /**\n * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n */\n var SerializableCipher = (C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter,\n }),\n\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Encrypt\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n\n // Shortcut\n var cipherCfg = encryptor.cfg;\n\n // Create and return serializable cipher params\n return CipherParams.create({\n ciphertext: ciphertext,\n key: key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format,\n });\n },\n\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, key, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Decrypt\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n return plaintext;\n },\n\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function (ciphertext, format) {\n if (typeof ciphertext == 'string') {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n },\n }));\n\n /**\n * Key derivation function namespace.\n */\n var C_kdf = (C.kdf = {});\n\n /**\n * OpenSSL key derivation function.\n */\n var OpenSSLKdf = (C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function (password, keySize, ivSize, salt, hasher) {\n // Generate random salt\n if (!salt) {\n salt = WordArray.random(64 / 8);\n }\n\n // Derive key and IV\n if (!hasher) {\n var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n } else {\n var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n }\n\n // Separate key and IV\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n\n // Return params\n return CipherParams.create({ key: key, iv: iv, salt: salt });\n },\n });\n\n /**\n * A serializable cipher wrapper that derives the key from a password,\n * and returns ciphertext as a serializable cipher params object.\n */\n var PasswordBasedCipher = (C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf,\n }),\n\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function (cipher, message, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Encrypt\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n // Mix in derived params\n ciphertext.mixIn(derivedParams);\n\n return ciphertext;\n },\n\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function (cipher, ciphertext, password, cfg) {\n // Apply config defaults\n cfg = this.cfg.extend(cfg);\n\n // Convert string to CipherParams\n ciphertext = this._parse(ciphertext, cfg.format);\n\n // Derive key and other params\n var derivedParams = cfg.kdf.execute(\n password,\n cipher.keySize,\n cipher.ivSize,\n ciphertext.salt,\n cfg.hasher,\n );\n\n // Add IV to config\n cfg.iv = derivedParams.iv;\n\n // Decrypt\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n return plaintext;\n },\n }));\n })();\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/core.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/core.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory();\n } else {\n }\n })(this, function () {\n /*globals window, global, require*/\n\n /**\n * CryptoJS core components.\n */\n var CryptoJS =\n CryptoJS ||\n (function (Math, undefined) {\n var crypto;\n\n // Native crypto from window (Browser)\n if (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n }\n\n // Native crypto in web worker (Browser)\n if (typeof self !== 'undefined' && self.crypto) {\n crypto = self.crypto;\n }\n\n // Native crypto from worker\n if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n crypto = globalThis.crypto;\n }\n\n // Native (experimental IE 11) crypto from window (Browser)\n if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n }\n\n // Native crypto from global (NodeJS)\n if (!crypto && typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.crypto) {\n crypto = __webpack_require__.g.crypto;\n }\n\n // Native crypto import via require (NodeJS)\n if (!crypto && 'function' === 'function') {\n try {\n crypto = __webpack_require__(/*! crypto */ '?9157');\n } catch (err) {}\n }\n\n /*\n * Cryptographically secure pseudorandom number generator\n *\n * As Math.random() is cryptographically not safe to use\n */\n var cryptoSecureRandomInt = function () {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n }\n\n // Use randomBytes method (NodeJS)\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n };\n\n /*\n\t * Local polyfill of Object.create\n\n\t */\n var create =\n Object.create ||\n (function () {\n function F() {}\n\n return function (obj) {\n var subtype;\n\n F.prototype = obj;\n\n subtype = new F();\n\n F.prototype = null;\n\n return subtype;\n };\n })();\n\n /**\n * CryptoJS namespace.\n */\n var C = {};\n\n /**\n * Library namespace.\n */\n var C_lib = (C.lib = {});\n\n /**\n * Base object for prototypal inheritance.\n */\n var Base = (C_lib.Base = (function () {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function (overrides) {\n // Spawn\n var subtype = create(this);\n\n // Augment\n if (overrides) {\n subtype.mixIn(overrides);\n }\n\n // Create default initializer\n if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n subtype.init = function () {\n subtype.$super.init.apply(this, arguments);\n };\n }\n\n // Initializer's prototype is the subtype object\n subtype.init.prototype = subtype;\n\n // Reference supertype\n subtype.$super = this;\n\n return subtype;\n },\n\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function () {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n\n return instance;\n },\n\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function () {},\n\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function (properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n }\n\n // IE won't copy toString using the loop above\n if (properties.hasOwnProperty('toString')) {\n this.toString = properties.toString;\n }\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function () {\n return this.init.prototype.extend(this);\n },\n };\n })());\n\n /**\n * An array of 32-bit words.\n *\n * @property {Array} words The array of 32-bit words.\n * @property {number} sigBytes The number of significant bytes in this word array.\n */\n var WordArray = (C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function (words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function (encoder) {\n return (encoder || Hex).stringify(this);\n },\n\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function (wordArray) {\n // Shortcuts\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n\n // Clamp excess bits\n this.clamp();\n\n // Concat\n if (thisSigBytes % 4) {\n // Copy one byte at a time\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n }\n } else {\n // Copy one word at a time\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n }\n }\n this.sigBytes += thatSigBytes;\n\n // Chainable\n return this;\n },\n\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function () {\n // Shortcuts\n var words = this.words;\n var sigBytes = this.sigBytes;\n\n // Clamp\n words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n words.length = Math.ceil(sigBytes / 4);\n },\n\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n\n return clone;\n },\n\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function (nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray.init(words, nBytes);\n },\n }));\n\n /**\n * Encoder namespace.\n */\n var C_enc = (C.enc = {});\n\n /**\n * Hex encoding strategy.\n */\n var Hex = (C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n },\n\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function (hexStr) {\n // Shortcut\n var hexStrLength = hexStr.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n }\n\n return new WordArray.init(words, hexStrLength / 2);\n },\n });\n\n /**\n * Latin1 encoding strategy.\n */\n var Latin1 = (C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n\n // Convert\n var latin1Chars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function (latin1Str) {\n // Shortcut\n var latin1StrLength = latin1Str.length;\n\n // Convert\n var words = [];\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n }\n\n return new WordArray.init(words, latin1StrLength);\n },\n });\n\n /**\n * UTF-8 encoding strategy.\n */\n var Utf8 = (C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function (wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error('Malformed UTF-8 data');\n }\n },\n\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function (utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n },\n });\n\n /**\n * Abstract buffered block algorithm template.\n *\n * The property blockSize must be implemented in a concrete subtype.\n *\n * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n */\n var BufferedBlockAlgorithm = (C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function () {\n // Initial values\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function (data) {\n // Convert string to WordArray, else assume WordArray already\n if (typeof data == 'string') {\n data = Utf8.parse(data);\n }\n\n // Append\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function (doFlush) {\n var processedWords;\n\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n\n // Count blocks ready\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) {\n // Round up to include partial blocks\n nBlocksReady = Math.ceil(nBlocksReady);\n } else {\n // Round down to include only full blocks,\n // less the number of blocks that must remain in the buffer\n nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n }\n\n // Count words ready\n var nWordsReady = nBlocksReady * blockSize;\n\n // Count bytes ready\n var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n // Process blocks\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n // Perform concrete-algorithm logic\n this._doProcessBlock(dataWords, offset);\n }\n\n // Remove processed words\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n\n // Return processed words\n return new WordArray.init(processedWords, nBytesReady);\n },\n\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function () {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n\n return clone;\n },\n\n _minBufferSize: 0,\n }));\n\n /**\n * Abstract hasher template.\n *\n * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n */\n var Hasher = (C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function (cfg) {\n // Apply config defaults\n this.cfg = this.cfg.extend(cfg);\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function () {\n // Reset data buffer\n BufferedBlockAlgorithm.reset.call(this);\n\n // Perform concrete-hasher logic\n this._doReset();\n },\n\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function (messageUpdate) {\n // Append\n this._append(messageUpdate);\n\n // Update the hash\n this._process();\n\n // Chainable\n return this;\n },\n\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Final message update\n if (messageUpdate) {\n this._append(messageUpdate);\n }\n\n // Perform concrete-hasher logic\n var hash = this._doFinalize();\n\n return hash;\n },\n\n blockSize: 512 / 32,\n\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function (hasher) {\n return function (message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function (hasher) {\n return function (message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n },\n }));\n\n /**\n * Algorithm namespace.\n */\n var C_algo = (C.algo = {});\n\n return C;\n })(Math);\n\n return CryptoJS;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/enc-base64.js':\n /*!**********************************************!*\\\n !*** ./node_modules/crypto-js/enc-base64.js ***!\n \\**********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n\n /**\n * Base64 encoding strategy.\n */\n var Base64 = (C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function (wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n\n // Clamp excess bits\n wordArray.clamp();\n\n // Convert\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n }\n }\n\n // Add padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n\n return base64Chars.join('');\n },\n\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function (base64Str) {\n // Shortcuts\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n }\n\n // Ignore padding\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n }\n\n // Convert\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n });\n\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n }\n })();\n\n return CryptoJS.enc.Base64;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/evpkdf.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/evpkdf.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./sha1 */ './node_modules/crypto-js/sha1.js'),\n __webpack_require__(/*! ./hmac */ './node_modules/crypto-js/hmac.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD5 = C_algo.MD5;\n\n /**\n * This key derivation function is meant to conform with EVP_BytesToKey.\n * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n */\n var EvpKDF = (C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD5,\n iterations: 1,\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function (cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function (password, salt) {\n var block;\n\n // Shortcut\n var cfg = this.cfg;\n\n // Init hasher\n var hasher = cfg.hasher.create();\n\n // Initial values\n var derivedKey = WordArray.create();\n\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n\n // Generate key\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n\n // Iterations\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n\n return derivedKey;\n },\n }));\n\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.EvpKDF(password, salt);\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n */\n C.EvpKDF = function (password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.EvpKDF;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/hmac.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/hmac.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n\n /**\n * HMAC algorithm.\n */\n var HMAC = (C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function (hasher, key) {\n // Init hasher\n hasher = this._hasher = new hasher.init();\n\n // Convert string to WordArray, else assume WordArray already\n if (typeof key == 'string') {\n key = Utf8.parse(key);\n }\n\n // Shortcuts\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n // Allow arbitrary length keys\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n }\n\n // Clamp excess bits\n key.clamp();\n\n // Clone key for inner and outer pads\n var oKey = (this._oKey = key.clone());\n var iKey = (this._iKey = key.clone());\n\n // Shortcuts\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n\n // XOR keys with pad constants\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 0x5c5c5c5c;\n iKeyWords[i] ^= 0x36363636;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n // Set initial values\n this.reset();\n },\n\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function () {\n // Shortcut\n var hasher = this._hasher;\n\n // Reset\n hasher.reset();\n hasher.update(this._iKey);\n },\n\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function (messageUpdate) {\n this._hasher.update(messageUpdate);\n\n // Chainable\n return this;\n },\n\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function (messageUpdate) {\n // Shortcut\n var hasher = this._hasher;\n\n // Compute HMAC\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n return hmac;\n },\n }));\n })();\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/md5.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/md5.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Constants table\n var T = [];\n\n // Compute constants\n (function () {\n for (var i = 0; i < 64; i++) {\n T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n }\n })();\n\n /**\n * MD5 hash algorithm.\n */\n var MD5 = (C_algo.MD5 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n },\n\n _doProcessBlock: function (M, offset) {\n // Swap endian\n for (var i = 0; i < 16; i++) {\n // Shortcuts\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n\n M[offset_i] =\n (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00);\n }\n\n // Shortcuts\n var H = this._hash.words;\n\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n\n // Computation\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n\n var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n var nBitsTotalL = nBitsTotal;\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] =\n (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] =\n (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00);\n\n data.sigBytes = (dataWords.length + 1) * 4;\n\n // Hash final blocks\n this._process();\n\n // Shortcuts\n var hash = this._hash;\n var H = hash.words;\n\n // Swap endian\n for (var i = 0; i < 4; i++) {\n // Shortcut\n var H_i = H[i];\n\n H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n }\n\n // Return final computed hash\n return hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n function FF(a, b, c, d, x, s, t) {\n var n = a + ((b & c) | (~b & d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function GG(a, b, c, d, x, s, t) {\n var n = a + ((b & d) | (c & ~d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return ((n << s) | (n >>> (32 - s))) + b;\n }\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.MD5('message');\n * var hash = CryptoJS.MD5(wordArray);\n */\n C.MD5 = Hasher._createHelper(MD5);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacMD5(message, key);\n */\n C.HmacMD5 = Hasher._createHmacHelper(MD5);\n })(Math);\n\n return CryptoJS.MD5;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/pbkdf2.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/pbkdf2.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./sha256 */ './node_modules/crypto-js/sha256.js'),\n __webpack_require__(/*! ./hmac */ './node_modules/crypto-js/hmac.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var HMAC = C_algo.HMAC;\n\n /**\n * Password-Based Key Derivation Function 2 algorithm.\n */\n var PBKDF2 = (C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA256\n * @property {number} iterations The number of iterations to perform. Default: 250000\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: SHA256,\n iterations: 250000,\n }),\n\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */\n init: function (cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function (password, salt) {\n // Shortcut\n var cfg = this.cfg;\n\n // Init HMAC\n var hmac = HMAC.create(cfg.hasher, password);\n\n // Initial values\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([0x00000001]);\n\n // Shortcuts\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n\n // Generate key\n while (derivedKeyWords.length < keySize) {\n var block = hmac.update(salt).finalize(blockIndex);\n hmac.reset();\n\n // Shortcuts\n var blockWords = block.words;\n var blockWordsLength = blockWords.length;\n\n // Iterations\n var intermediate = block;\n for (var i = 1; i < iterations; i++) {\n intermediate = hmac.finalize(intermediate);\n hmac.reset();\n\n // Shortcut\n var intermediateWords = intermediate.words;\n\n // XOR intermediate with block\n for (var j = 0; j < blockWordsLength; j++) {\n blockWords[j] ^= intermediateWords[j];\n }\n }\n\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n derivedKey.sigBytes = keySize * 4;\n\n return derivedKey;\n },\n }));\n\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n * @param {Object} cfg (Optional) The configuration options to use for this computation.\n *\n * @return {WordArray} The derived key.\n *\n * @static\n *\n * @example\n *\n * var key = CryptoJS.PBKDF2(password, salt);\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n */\n C.PBKDF2 = function (password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n\n return CryptoJS.PBKDF2;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/rabbit.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/rabbit.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n\n // Reusable objects\n var S = [];\n var C_ = [];\n var G = [];\n\n /**\n * Rabbit stream cipher algorithm\n */\n var Rabbit = (C_algo.Rabbit = StreamCipher.extend({\n _doReset: function () {\n // Shortcuts\n var K = this._key.words;\n var iv = this.cfg.iv;\n\n // Swap endian\n for (var i = 0; i < 4; i++) {\n K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n }\n\n // Generate initial state values\n var X = (this._X = [\n K[0],\n (K[3] << 16) | (K[2] >>> 16),\n K[1],\n (K[0] << 16) | (K[3] >>> 16),\n K[2],\n (K[1] << 16) | (K[0] >>> 16),\n K[3],\n (K[2] << 16) | (K[1] >>> 16),\n ]);\n\n // Generate initial counter values\n var C = (this._C = [\n (K[2] << 16) | (K[2] >>> 16),\n (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n (K[3] << 16) | (K[3] >>> 16),\n (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n (K[0] << 16) | (K[0] >>> 16),\n (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n (K[1] << 16) | (K[1] >>> 16),\n (K[3] & 0xffff0000) | (K[0] & 0x0000ffff),\n ]);\n\n // Carry bit\n this._b = 0;\n\n // Iterate the system four times\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n\n // Modify the counters\n for (var i = 0; i < 8; i++) {\n C[i] ^= X[(i + 4) & 7];\n }\n\n // IV setup\n if (iv) {\n // Shortcuts\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n\n // Generate four subvectors\n var i0 =\n (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n var i2 =\n (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n // Modify counter values\n C[0] ^= i0;\n C[1] ^= i1;\n C[2] ^= i2;\n C[3] ^= i3;\n C[4] ^= i0;\n C[5] ^= i1;\n C[6] ^= i2;\n C[7] ^= i3;\n\n // Iterate the system four times\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var X = this._X;\n\n // Iterate the system\n nextState.call(this);\n\n // Generate four keystream words\n S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n for (var i = 0; i < 4; i++) {\n // Swap endian\n S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n // Encrypt\n M[offset + i] ^= S[i];\n }\n },\n\n blockSize: 128 / 32,\n\n ivSize: 64 / 32,\n }));\n\n function nextState() {\n // Shortcuts\n var X = this._X;\n var C = this._C;\n\n // Save old counter values\n for (var i = 0; i < 8; i++) {\n C_[i] = C[i];\n }\n\n // Calculate new counter values\n C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n C[1] = (C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0)) | 0;\n C[2] = (C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0)) | 0;\n C[3] = (C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0)) | 0;\n C[4] = (C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0)) | 0;\n C[5] = (C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0)) | 0;\n C[6] = (C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0)) | 0;\n C[7] = (C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0)) | 0;\n this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n\n // Calculate the g-values\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C[i];\n\n // Construct high and low argument for squaring\n var ga = gx & 0xffff;\n var gb = gx >>> 16;\n\n // Calculate high and low result of squaring\n var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n // High XOR low\n G[i] = gh ^ gl;\n }\n\n // Calculate new state values\n X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n */\n C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n\n return CryptoJS.Rabbit;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/rc4.js':\n /*!***************************************!*\\\n !*** ./node_modules/crypto-js/rc4.js ***!\n \\***************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n\n /**\n * RC4 stream cipher algorithm.\n */\n var RC4 = (C_algo.RC4 = StreamCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes;\n\n // Init sbox\n var S = (this._S = []);\n for (var i = 0; i < 256; i++) {\n S[i] = i;\n }\n\n // Key setup\n for (var i = 0, j = 0; i < 256; i++) {\n var keyByteIndex = i % keySigBytes;\n var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n j = (j + S[i] + keyByte) % 256;\n\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n }\n\n // Counters\n this._i = this._j = 0;\n },\n\n _doProcessBlock: function (M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n\n keySize: 256 / 32,\n\n ivSize: 0,\n }));\n\n function generateKeystreamWord() {\n // Shortcuts\n var S = this._S;\n var i = this._i;\n var j = this._j;\n\n // Generate keystream word\n var keystreamWord = 0;\n for (var n = 0; n < 4; n++) {\n i = (i + 1) % 256;\n j = (j + S[i]) % 256;\n\n // Swap\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n\n keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n }\n\n // Update counters\n this._i = i;\n this._j = j;\n\n return keystreamWord;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n */\n C.RC4 = StreamCipher._createHelper(RC4);\n\n /**\n * Modified RC4 stream cipher algorithm.\n */\n var RC4Drop = (C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */\n cfg: RC4.cfg.extend({\n drop: 192,\n }),\n\n _doReset: function () {\n RC4._doReset.call(this);\n\n // Drop\n for (var i = this.cfg.drop; i > 0; i--) {\n generateKeystreamWord.call(this);\n }\n },\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n */\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n\n return CryptoJS.RC4;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/sha1.js':\n /*!****************************************!*\\\n !*** ./node_modules/crypto-js/sha1.js ***!\n \\****************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-1 hash algorithm.\n */\n var SHA1 = (C_algo.SHA1 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]);\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n // Computation\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = (n << 1) | (n >>> 31);\n }\n\n var t = ((a << 5) | (a >>> 27)) + e + W[i];\n if (i < 20) {\n t += ((b & c) | (~b & d)) + 0x5a827999;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 0x6ed9eba1;\n } else if (i < 60) {\n t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n } /* if (i < 80) */ else {\n t += (b ^ c ^ d) - 0x359d3e2a;\n }\n\n e = d;\n d = c;\n c = (b << 30) | (b >>> 2);\n b = a;\n a = t;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA1('message');\n * var hash = CryptoJS.SHA1(wordArray);\n */\n C.SHA1 = Hasher._createHelper(SHA1);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA1(message, key);\n */\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n\n return CryptoJS.SHA1;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/sha256.js':\n /*!******************************************!*\\\n !*** ./node_modules/crypto-js/sha256.js ***!\n \\******************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(__webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'));\n } else {\n }\n })(this, function (CryptoJS) {\n (function (Math) {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n\n // Initialization and round constants tables\n var H = [];\n var K = [];\n\n // Compute constants\n (function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) {\n return false;\n }\n }\n\n return true;\n }\n\n function getFractionalBits(n) {\n return ((n - (n | 0)) * 0x100000000) | 0;\n }\n\n var n = 2;\n var nPrime = 0;\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n }\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n nPrime++;\n }\n\n n++;\n }\n })();\n\n // Reusable object\n var W = [];\n\n /**\n * SHA-256 hash algorithm.\n */\n var SHA256 = (C_algo.SHA256 = Hasher.extend({\n _doReset: function () {\n this._hash = new WordArray.init(H.slice(0));\n },\n\n _doProcessBlock: function (M, offset) {\n // Shortcut\n var H = this._hash.words;\n\n // Working variables\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n var f = H[5];\n var g = H[6];\n var h = H[7];\n\n // Computation\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 =\n ((gamma0x << 25) | (gamma0x >>> 7)) ^ ((gamma0x << 14) | (gamma0x >>> 18)) ^ (gamma0x >>> 3);\n\n var gamma1x = W[i - 2];\n var gamma1 =\n ((gamma1x << 15) | (gamma1x >>> 17)) ^ ((gamma1x << 13) | (gamma1x >>> 19)) ^ (gamma1x >>> 10);\n\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = (e & f) ^ (~e & g);\n var maj = (a & b) ^ (a & c) ^ (b & c);\n\n var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n H[5] = (H[5] + f) | 0;\n H[6] = (H[6] + g) | 0;\n H[7] = (H[7] + h) | 0;\n },\n\n _doFinalize: function () {\n // Shortcuts\n var data = this._data;\n var dataWords = data.words;\n\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n\n // Add padding\n dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n\n // Hash final blocks\n this._process();\n\n // Return final computed hash\n return this._hash;\n },\n\n clone: function () {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n\n return clone;\n },\n }));\n\n /**\n * Shortcut function to the hasher's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n *\n * @return {WordArray} The hash.\n *\n * @static\n *\n * @example\n *\n * var hash = CryptoJS.SHA256('message');\n * var hash = CryptoJS.SHA256(wordArray);\n */\n C.SHA256 = Hasher._createHelper(SHA256);\n\n /**\n * Shortcut function to the HMAC's object interface.\n *\n * @param {WordArray|string} message The message to hash.\n * @param {WordArray|string} key The secret key.\n *\n * @return {WordArray} The HMAC.\n *\n * @static\n *\n * @example\n *\n * var hmac = CryptoJS.HmacSHA256(message, key);\n */\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n\n return CryptoJS.SHA256;\n });\n\n /***/\n },\n\n /***/ './node_modules/crypto-js/tripledes.js':\n /*!*********************************************!*\\\n !*** ./node_modules/crypto-js/tripledes.js ***!\n \\*********************************************/\n /***/ function (module, exports, __webpack_require__) {\n (function (root, factory, undef) {\n if (true) {\n // CommonJS\n module.exports = exports = factory(\n __webpack_require__(/*! ./core */ './node_modules/crypto-js/core.js'),\n __webpack_require__(/*! ./enc-base64 */ './node_modules/crypto-js/enc-base64.js'),\n __webpack_require__(/*! ./md5 */ './node_modules/crypto-js/md5.js'),\n __webpack_require__(/*! ./evpkdf */ './node_modules/crypto-js/evpkdf.js'),\n __webpack_require__(/*! ./cipher-core */ './node_modules/crypto-js/cipher-core.js'),\n );\n } else {\n }\n })(this, function (CryptoJS) {\n (function () {\n // Shortcuts\n var C = CryptoJS;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n\n // Permuted Choice 1 constants\n var PC1 = [\n 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44,\n 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20,\n 12, 4,\n ];\n\n // Permuted Choice 2 constants\n var PC2 = [\n 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37,\n 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32,\n ];\n\n // Cumulative bit shift constants\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n // SBOXes and round permutation constants\n var SBOX_P = [\n {\n 0x0: 0x808200,\n 0x10000000: 0x8000,\n 0x20000000: 0x808002,\n 0x30000000: 0x2,\n 0x40000000: 0x200,\n 0x50000000: 0x808202,\n 0x60000000: 0x800202,\n 0x70000000: 0x800000,\n 0x80000000: 0x202,\n 0x90000000: 0x800200,\n 0xa0000000: 0x8200,\n 0xb0000000: 0x808000,\n 0xc0000000: 0x8002,\n 0xd0000000: 0x800002,\n 0xe0000000: 0x0,\n 0xf0000000: 0x8202,\n 0x8000000: 0x0,\n 0x18000000: 0x808202,\n 0x28000000: 0x8202,\n 0x38000000: 0x8000,\n 0x48000000: 0x808200,\n 0x58000000: 0x200,\n 0x68000000: 0x808002,\n 0x78000000: 0x2,\n 0x88000000: 0x800200,\n 0x98000000: 0x8200,\n 0xa8000000: 0x808000,\n 0xb8000000: 0x800202,\n 0xc8000000: 0x800002,\n 0xd8000000: 0x8002,\n 0xe8000000: 0x202,\n 0xf8000000: 0x800000,\n 0x1: 0x8000,\n 0x10000001: 0x2,\n 0x20000001: 0x808200,\n 0x30000001: 0x800000,\n 0x40000001: 0x808002,\n 0x50000001: 0x8200,\n 0x60000001: 0x200,\n 0x70000001: 0x800202,\n 0x80000001: 0x808202,\n 0x90000001: 0x808000,\n 0xa0000001: 0x800002,\n 0xb0000001: 0x8202,\n 0xc0000001: 0x202,\n 0xd0000001: 0x800200,\n 0xe0000001: 0x8002,\n 0xf0000001: 0x0,\n 0x8000001: 0x808202,\n 0x18000001: 0x808000,\n 0x28000001: 0x800000,\n 0x38000001: 0x200,\n 0x48000001: 0x8000,\n 0x58000001: 0x800002,\n 0x68000001: 0x2,\n 0x78000001: 0x8202,\n 0x88000001: 0x8002,\n 0x98000001: 0x800202,\n 0xa8000001: 0x202,\n 0xb8000001: 0x808200,\n 0xc8000001: 0x800200,\n 0xd8000001: 0x0,\n 0xe8000001: 0x8200,\n 0xf8000001: 0x808002,\n },\n {\n 0x0: 0x40084010,\n 0x1000000: 0x4000,\n 0x2000000: 0x80000,\n 0x3000000: 0x40080010,\n 0x4000000: 0x40000010,\n 0x5000000: 0x40084000,\n 0x6000000: 0x40004000,\n 0x7000000: 0x10,\n 0x8000000: 0x84000,\n 0x9000000: 0x40004010,\n 0xa000000: 0x40000000,\n 0xb000000: 0x84010,\n 0xc000000: 0x80010,\n 0xd000000: 0x0,\n 0xe000000: 0x4010,\n 0xf000000: 0x40080000,\n 0x800000: 0x40004000,\n 0x1800000: 0x84010,\n 0x2800000: 0x10,\n 0x3800000: 0x40004010,\n 0x4800000: 0x40084010,\n 0x5800000: 0x40000000,\n 0x6800000: 0x80000,\n 0x7800000: 0x40080010,\n 0x8800000: 0x80010,\n 0x9800000: 0x0,\n 0xa800000: 0x4000,\n 0xb800000: 0x40080000,\n 0xc800000: 0x40000010,\n 0xd800000: 0x84000,\n 0xe800000: 0x40084000,\n 0xf800000: 0x4010,\n 0x10000000: 0x0,\n 0x11000000: 0x40080010,\n 0x12000000: 0x40004010,\n 0x13000000: 0x40084000,\n 0x14000000: 0x40080000,\n 0x15000000: 0x10,\n 0x16000000: 0x84010,\n 0x17000000: 0x4000,\n 0x18000000: 0x4010,\n 0x19000000: 0x80000,\n 0x1a000000: 0x80010,\n 0x1b000000: 0x40000010,\n 0x1c000000: 0x84000,\n 0x1d000000: 0x40004000,\n 0x1e000000: 0x40000000,\n 0x1f000000: 0x40084010,\n 0x10800000: 0x84010,\n 0x11800000: 0x80000,\n 0x12800000: 0x40080000,\n 0x13800000: 0x4000,\n 0x14800000: 0x40004000,\n 0x15800000: 0x40084010,\n 0x16800000: 0x10,\n 0x17800000: 0x40000000,\n 0x18800000: 0x40084000,\n 0x19800000: 0x40000010,\n 0x1a800000: 0x40004010,\n 0x1b800000: 0x80010,\n 0x1c800000: 0x0,\n 0x1d800000: 0x4010,\n 0x1e800000: 0x40080010,\n 0x1f800000: 0x84000,\n },\n {\n 0x0: 0x104,\n 0x100000: 0x0,\n 0x200000: 0x4000100,\n 0x300000: 0x10104,\n 0x400000: 0x10004,\n 0x500000: 0x4000004,\n 0x600000: 0x4010104,\n 0x700000: 0x4010000,\n 0x800000: 0x4000000,\n 0x900000: 0x4010100,\n 0xa00000: 0x10100,\n 0xb00000: 0x4010004,\n 0xc00000: 0x4000104,\n 0xd00000: 0x10000,\n 0xe00000: 0x4,\n 0xf00000: 0x100,\n 0x80000: 0x4010100,\n 0x180000: 0x4010004,\n 0x280000: 0x0,\n 0x380000: 0x4000100,\n 0x480000: 0x4000004,\n 0x580000: 0x10000,\n 0x680000: 0x10004,\n 0x780000: 0x104,\n 0x880000: 0x4,\n 0x980000: 0x100,\n 0xa80000: 0x4010000,\n 0xb80000: 0x10104,\n 0xc80000: 0x10100,\n 0xd80000: 0x4000104,\n 0xe80000: 0x4010104,\n 0xf80000: 0x4000000,\n 0x1000000: 0x4010100,\n 0x1100000: 0x10004,\n 0x1200000: 0x10000,\n 0x1300000: 0x4000100,\n 0x1400000: 0x100,\n 0x1500000: 0x4010104,\n 0x1600000: 0x4000004,\n 0x1700000: 0x0,\n 0x1800000: 0x4000104,\n 0x1900000: 0x4000000,\n 0x1a00000: 0x4,\n 0x1b00000: 0x10100,\n 0x1c00000: 0x4010000,\n 0x1d00000: 0x104,\n 0x1e00000: 0x10104,\n 0x1f00000: 0x4010004,\n 0x1080000: 0x4000000,\n 0x1180000: 0x104,\n 0x1280000: 0x4010100,\n 0x1380000: 0x0,\n 0x1480000: 0x10004,\n 0x1580000: 0x4000100,\n 0x1680000: 0x100,\n 0x1780000: 0x4010004,\n 0x1880000: 0x10000,\n 0x1980000: 0x4010104,\n 0x1a80000: 0x10104,\n 0x1b80000: 0x4000004,\n 0x1c80000: 0x4000104,\n 0x1d80000: 0x4010000,\n 0x1e80000: 0x4,\n 0x1f80000: 0x10100,\n },\n {\n 0x0: 0x80401000,\n 0x10000: 0x80001040,\n 0x20000: 0x401040,\n 0x30000: 0x80400000,\n 0x40000: 0x0,\n 0x50000: 0x401000,\n 0x60000: 0x80000040,\n 0x70000: 0x400040,\n 0x80000: 0x80000000,\n 0x90000: 0x400000,\n 0xa0000: 0x40,\n 0xb0000: 0x80001000,\n 0xc0000: 0x80400040,\n 0xd0000: 0x1040,\n 0xe0000: 0x1000,\n 0xf0000: 0x80401040,\n 0x8000: 0x80001040,\n 0x18000: 0x40,\n 0x28000: 0x80400040,\n 0x38000: 0x80001000,\n 0x48000: 0x401000,\n 0x58000: 0x80401040,\n 0x68000: 0x0,\n 0x78000: 0x80400000,\n 0x88000: 0x1000,\n 0x98000: 0x80401000,\n 0xa8000: 0x400000,\n 0xb8000: 0x1040,\n 0xc8000: 0x80000000,\n 0xd8000: 0x400040,\n 0xe8000: 0x401040,\n 0xf8000: 0x80000040,\n 0x100000: 0x400040,\n 0x110000: 0x401000,\n 0x120000: 0x80000040,\n 0x130000: 0x0,\n 0x140000: 0x1040,\n 0x150000: 0x80400040,\n 0x160000: 0x80401000,\n 0x170000: 0x80001040,\n 0x180000: 0x80401040,\n 0x190000: 0x80000000,\n 0x1a0000: 0x80400000,\n 0x1b0000: 0x401040,\n 0x1c0000: 0x80001000,\n 0x1d0000: 0x400000,\n 0x1e0000: 0x40,\n 0x1f0000: 0x1000,\n 0x108000: 0x80400000,\n 0x118000: 0x80401040,\n 0x128000: 0x0,\n 0x138000: 0x401000,\n 0x148000: 0x400040,\n 0x158000: 0x80000000,\n 0x168000: 0x80001040,\n 0x178000: 0x40,\n 0x188000: 0x80000040,\n 0x198000: 0x1000,\n 0x1a8000: 0x80001000,\n 0x1b8000: 0x80400040,\n 0x1c8000: 0x1040,\n 0x1d8000: 0x80401000,\n 0x1e8000: 0x400000,\n 0x1f8000: 0x401040,\n },\n {\n 0x0: 0x80,\n 0x1000: 0x1040000,\n 0x2000: 0x40000,\n 0x3000: 0x20000000,\n 0x4000: 0x20040080,\n 0x5000: 0x1000080,\n 0x6000: 0x21000080,\n 0x7000: 0x40080,\n 0x8000: 0x1000000,\n 0x9000: 0x20040000,\n 0xa000: 0x20000080,\n 0xb000: 0x21040080,\n 0xc000: 0x21040000,\n 0xd000: 0x0,\n 0xe000: 0x1040080,\n 0xf000: 0x21000000,\n 0x800: 0x1040080,\n 0x1800: 0x21000080,\n 0x2800: 0x80,\n 0x3800: 0x1040000,\n 0x4800: 0x40000,\n 0x5800: 0x20040080,\n 0x6800: 0x21040000,\n 0x7800: 0x20000000,\n 0x8800: 0x20040000,\n 0x9800: 0x0,\n 0xa800: 0x21040080,\n 0xb800: 0x1000080,\n 0xc800: 0x20000080,\n 0xd800: 0x21000000,\n 0xe800: 0x1000000,\n 0xf800: 0x40080,\n 0x10000: 0x40000,\n 0x11000: 0x80,\n 0x12000: 0x20000000,\n 0x13000: 0x21000080,\n 0x14000: 0x1000080,\n 0x15000: 0x21040000,\n 0x16000: 0x20040080,\n 0x17000: 0x1000000,\n 0x18000: 0x21040080,\n 0x19000: 0x21000000,\n 0x1a000: 0x1040000,\n 0x1b000: 0x20040000,\n 0x1c000: 0x40080,\n 0x1d000: 0x20000080,\n 0x1e000: 0x0,\n 0x1f000: 0x1040080,\n 0x10800: 0x21000080,\n 0x11800: 0x1000000,\n 0x12800: 0x1040000,\n 0x13800: 0x20040080,\n 0x14800: 0x20000000,\n 0x15800: 0x1040080,\n 0x16800: 0x80,\n 0x17800: 0x21040000,\n 0x18800: 0x40080,\n 0x19800: 0x21040080,\n 0x1a800: 0x0,\n 0x1b800: 0x21000000,\n 0x1c800: 0x1000080,\n 0x1d800: 0x40000,\n 0x1e800: 0x20040000,\n 0x1f800: 0x20000080,\n },\n {\n 0x0: 0x10000008,\n 0x100: 0x2000,\n 0x200: 0x10200000,\n 0x300: 0x10202008,\n 0x400: 0x10002000,\n 0x500: 0x200000,\n 0x600: 0x200008,\n 0x700: 0x10000000,\n 0x800: 0x0,\n 0x900: 0x10002008,\n 0xa00: 0x202000,\n 0xb00: 0x8,\n 0xc00: 0x10200008,\n 0xd00: 0x202008,\n 0xe00: 0x2008,\n 0xf00: 0x10202000,\n 0x80: 0x10200000,\n 0x180: 0x10202008,\n 0x280: 0x8,\n 0x380: 0x200000,\n 0x480: 0x202008,\n 0x580: 0x10000008,\n 0x680: 0x10002000,\n 0x780: 0x2008,\n 0x880: 0x200008,\n 0x980: 0x2000,\n 0xa80: 0x10002008,\n 0xb80: 0x10200008,\n 0xc80: 0x0,\n 0xd80: 0x10202000,\n 0xe80: 0x202000,\n 0xf80: 0x10000000,\n 0x1000: 0x10002000,\n 0x1100: 0x10200008,\n 0x1200: 0x10202008,\n 0x1300: 0x2008,\n 0x1400: 0x200000,\n 0x1500: 0x10000000,\n 0x1600: 0x10000008,\n 0x1700: 0x202000,\n 0x1800: 0x202008,\n 0x1900: 0x0,\n 0x1a00: 0x8,\n 0x1b00: 0x10200000,\n 0x1c00: 0x2000,\n 0x1d00: 0x10002008,\n 0x1e00: 0x10202000,\n 0x1f00: 0x200008,\n 0x1080: 0x8,\n 0x1180: 0x202000,\n 0x1280: 0x200000,\n 0x1380: 0x10000008,\n 0x1480: 0x10002000,\n 0x1580: 0x2008,\n 0x1680: 0x10202008,\n 0x1780: 0x10200000,\n 0x1880: 0x10202000,\n 0x1980: 0x10200008,\n 0x1a80: 0x2000,\n 0x1b80: 0x202008,\n 0x1c80: 0x200008,\n 0x1d80: 0x0,\n 0x1e80: 0x10000000,\n 0x1f80: 0x10002008,\n },\n {\n 0x0: 0x100000,\n 0x10: 0x2000401,\n 0x20: 0x400,\n 0x30: 0x100401,\n 0x40: 0x2100401,\n 0x50: 0x0,\n 0x60: 0x1,\n 0x70: 0x2100001,\n 0x80: 0x2000400,\n 0x90: 0x100001,\n 0xa0: 0x2000001,\n 0xb0: 0x2100400,\n 0xc0: 0x2100000,\n 0xd0: 0x401,\n 0xe0: 0x100400,\n 0xf0: 0x2000000,\n 0x8: 0x2100001,\n 0x18: 0x0,\n 0x28: 0x2000401,\n 0x38: 0x2100400,\n 0x48: 0x100000,\n 0x58: 0x2000001,\n 0x68: 0x2000000,\n 0x78: 0x401,\n 0x88: 0x100401,\n 0x98: 0x2000400,\n 0xa8: 0x2100000,\n 0xb8: 0x100001,\n 0xc8: 0x400,\n 0xd8: 0x2100401,\n 0xe8: 0x1,\n 0xf8: 0x100400,\n 0x100: 0x2000000,\n 0x110: 0x100000,\n 0x120: 0x2000401,\n 0x130: 0x2100001,\n 0x140: 0x100001,\n 0x150: 0x2000400,\n 0x160: 0x2100400,\n 0x170: 0x100401,\n 0x180: 0x401,\n 0x190: 0x2100401,\n 0x1a0: 0x100400,\n 0x1b0: 0x1,\n 0x1c0: 0x0,\n 0x1d0: 0x2100000,\n 0x1e0: 0x2000001,\n 0x1f0: 0x400,\n 0x108: 0x100400,\n 0x118: 0x2000401,\n 0x128: 0x2100001,\n 0x138: 0x1,\n 0x148: 0x2000000,\n 0x158: 0x100000,\n 0x168: 0x401,\n 0x178: 0x2100400,\n 0x188: 0x2000001,\n 0x198: 0x2100000,\n 0x1a8: 0x0,\n 0x1b8: 0x2100401,\n 0x1c8: 0x100401,\n 0x1d8: 0x400,\n 0x1e8: 0x2000400,\n 0x1f8: 0x100001,\n },\n {\n 0x0: 0x8000820,\n 0x1: 0x20000,\n 0x2: 0x8000000,\n 0x3: 0x20,\n 0x4: 0x20020,\n 0x5: 0x8020820,\n 0x6: 0x8020800,\n 0x7: 0x800,\n 0x8: 0x8020000,\n 0x9: 0x8000800,\n 0xa: 0x20800,\n 0xb: 0x8020020,\n 0xc: 0x820,\n 0xd: 0x0,\n 0xe: 0x8000020,\n 0xf: 0x20820,\n 0x80000000: 0x800,\n 0x80000001: 0x8020820,\n 0x80000002: 0x8000820,\n 0x80000003: 0x8000000,\n 0x80000004: 0x8020000,\n 0x80000005: 0x20800,\n 0x80000006: 0x20820,\n 0x80000007: 0x20,\n 0x80000008: 0x8000020,\n 0x80000009: 0x820,\n 0x8000000a: 0x20020,\n 0x8000000b: 0x8020800,\n 0x8000000c: 0x0,\n 0x8000000d: 0x8020020,\n 0x8000000e: 0x8000800,\n 0x8000000f: 0x20000,\n 0x10: 0x20820,\n 0x11: 0x8020800,\n 0x12: 0x20,\n 0x13: 0x800,\n 0x14: 0x8000800,\n 0x15: 0x8000020,\n 0x16: 0x8020020,\n 0x17: 0x20000,\n 0x18: 0x0,\n 0x19: 0x20020,\n 0x1a: 0x8020000,\n 0x1b: 0x8000820,\n 0x1c: 0x8020820,\n 0x1d: 0x20800,\n 0x1e: 0x820,\n 0x1f: 0x8000000,\n 0x80000010: 0x20000,\n 0x80000011: 0x800,\n 0x80000012: 0x8020020,\n 0x80000013: 0x20820,\n 0x80000014: 0x20,\n 0x80000015: 0x8020000,\n 0x80000016: 0x8000000,\n 0x80000017: 0x8000820,\n 0x80000018: 0x8020820,\n 0x80000019: 0x8000020,\n 0x8000001a: 0x8000800,\n 0x8000001b: 0x0,\n 0x8000001c: 0x20800,\n 0x8000001d: 0x820,\n 0x8000001e: 0x20020,\n 0x8000001f: 0x8020800,\n },\n ];\n\n // Masks that select the SBOX input\n var SBOX_MASK = [\n 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f,\n ];\n\n /**\n * DES block cipher algorithm.\n */\n var DES = (C_algo.DES = BlockCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n\n // Select 56 bits according to PC1\n var keyBits = [];\n for (var i = 0; i < 56; i++) {\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - (keyBitPos % 32))) & 1;\n }\n\n // Assemble 16 subkeys\n var subKeys = (this._subKeys = []);\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n // Create subkey\n var subKey = (subKeys[nSubKey] = []);\n\n // Shortcut\n var bitShift = BIT_SHIFTS[nSubKey];\n\n // Select 48 bits according to PC2\n for (var i = 0; i < 24; i++) {\n // Select from the left 28 key bits\n subKey[(i / 6) | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << (31 - (i % 6));\n\n // Select from the right 28 key bits\n subKey[4 + ((i / 6) | 0)] |= keyBits[28 + ((PC2[i + 24] - 1 + bitShift) % 28)] << (31 - (i % 6));\n }\n\n // Since each subkey is applied to an expanded 32-bit input,\n // the subkey can be broken into 8 values scaled to 32-bits,\n // which allows the key to be used without expansion\n subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n for (var i = 1; i < 7; i++) {\n subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n }\n subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n }\n\n // Compute inverse subkeys\n var invSubKeys = (this._invSubKeys = []);\n for (var i = 0; i < 16; i++) {\n invSubKeys[i] = subKeys[15 - i];\n }\n },\n\n encryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n\n decryptBlock: function (M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n\n _doCryptBlock: function (M, offset, subKeys) {\n // Get input\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1];\n\n // Initial permutation\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeLR.call(this, 1, 0x55555555);\n\n // Rounds\n for (var round = 0; round < 16; round++) {\n // Shortcuts\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock;\n\n // Feistel function\n var f = 0;\n for (var i = 0; i < 8; i++) {\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n }\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n }\n\n // Undo swap from last round\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t;\n\n // Final permutation\n exchangeLR.call(this, 1, 0x55555555);\n exchangeRL.call(this, 8, 0x00ff00ff);\n exchangeRL.call(this, 2, 0x33333333);\n exchangeLR.call(this, 16, 0x0000ffff);\n exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n // Set output\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n\n keySize: 64 / 32,\n\n ivSize: 64 / 32,\n\n blockSize: 64 / 32,\n }));\n\n // Swap bits across the left and right words\n function exchangeLR(offset, mask) {\n var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n\n function exchangeRL(offset, mask) {\n var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n */\n C.DES = BlockCipher._createHelper(DES);\n\n /**\n * Triple-DES block cipher algorithm.\n */\n var TripleDES = (C_algo.TripleDES = BlockCipher.extend({\n _doReset: function () {\n // Shortcuts\n var key = this._key;\n var keyWords = key.words;\n // Make sure the key length is valid (64, 128 or >= 192 bit)\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n }\n\n // Extend the key according to the keying options defined in 3DES standard\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n // Create DES instances\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n\n encryptBlock: function (M, offset) {\n this._des1.encryptBlock(M, offset);\n this._des2.decryptBlock(M, offset);\n this._des3.encryptBlock(M, offset);\n },\n\n decryptBlock: function (M, offset) {\n this._des3.decryptBlock(M, offset);\n this._des2.encryptBlock(M, offset);\n this._des1.decryptBlock(M, offset);\n },\n\n keySize: 192 / 32,\n\n ivSize: 64 / 32,\n\n blockSize: 64 / 32,\n }));\n\n /**\n * Shortcut functions to the cipher's object interface.\n *\n * @example\n *\n * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n */\n C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n\n return CryptoJS.TripleDES;\n });\n\n /***/\n },\n\n /***/ './node_modules/lz-string/libs/lz-string.js':\n /*!**************************************************!*\\\n !*** ./node_modules/lz-string/libs/lz-string.js ***!\n \\**************************************************/\n /***/ (module, exports, __webpack_require__) => {\n var __WEBPACK_AMD_DEFINE_RESULT__; // Copyright (c) 2013 Pieroxy \n // This work is free. You can redistribute it and/or modify it\n // under the terms of the WTFPL, Version 2\n // For more information see LICENSE.txt or http://www.wtfpl.net/\n //\n // For more information, the home page:\n // http://pieroxy.net/blog/pages/lz-string/testing.html\n //\n // LZ-based compression algorithm, version 1.4.5\n var LZString = (function () {\n // private property\n var f = String.fromCharCode;\n var keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var keyStrUriSafe = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$';\n var baseReverseDic = {};\n\n function getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n }\n\n var LZString = {\n compressToBase64: function (input) {\n if (input == null) return '';\n var res = LZString._compress(input, 6, function (a) {\n return keyStrBase64.charAt(a);\n });\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res;\n case 1:\n return res + '===';\n case 2:\n return res + '==';\n case 3:\n return res + '=';\n }\n },\n\n decompressFromBase64: function (input) {\n if (input == null) return '';\n if (input == '') return null;\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrBase64, input.charAt(index));\n });\n },\n\n compressToUTF16: function (input) {\n if (input == null) return '';\n return (\n LZString._compress(input, 15, function (a) {\n return f(a + 32);\n }) + ' '\n );\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 16384, function (index) {\n return compressed.charCodeAt(index) - 32;\n });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n\n for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i * 2] = current_value >>> 8;\n buf[i * 2 + 1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array: function (compressed) {\n if (compressed === null || compressed === undefined) {\n return LZString.decompress(compressed);\n } else {\n var buf = new Array(compressed.length / 2); // 2 bytes per character\n for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) {\n buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n }\n },\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return '';\n return LZString._compress(input, 6, function (a) {\n return keyStrUriSafe.charAt(a);\n });\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent: function (input) {\n if (input == null) return '';\n if (input == '') return null;\n input = input.replace(/ /g, '+');\n return LZString._decompress(input.length, 32, function (index) {\n return getBaseValue(keyStrUriSafe, input.charAt(index));\n });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function (a) {\n return f(a);\n });\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return '';\n var i,\n value,\n context_dictionary = {},\n context_dictionaryToCreate = {},\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data = [],\n context_data_val = 0,\n context_data_position = 0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1);\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1;\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n } else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return '';\n if (compressed == '') return null;\n return LZString._decompress(compressed.length, 32768, function (index) {\n return compressed.charCodeAt(index);\n });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = '',\n result = [],\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c,\n data = { val: getNextValue(0), position: resetValue, index: 1 };\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2, 2);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch ((next = bits)) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return '';\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return '';\n }\n\n bits = 0;\n maxpower = Math.pow(2, numBits);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2, 8);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2, 16);\n power = 1;\n while (power != maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb > 0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize - 1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n }\n },\n };\n return LZString;\n })();\n\n if (true) {\n !((__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return LZString;\n }.call(exports, __webpack_require__, exports, module)),\n __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {\n }\n\n /***/\n },\n\n /***/ '?9157':\n /*!************************!*\\\n !*** crypto (ignored) ***!\n \\************************/\n /***/ () => {\n /* (ignored) */\n /***/\n },\n\n /******/\n };\n /************************************************************************/\n /******/ // The module cache\n /******/ var __webpack_module_cache__ = {};\n /******/\n /******/ // The require function\n /******/ function __webpack_require__(moduleId) {\n /******/ // Check if module is in cache\n /******/ var cachedModule = __webpack_module_cache__[moduleId];\n /******/ if (cachedModule !== undefined) {\n /******/ return cachedModule.exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/ var module = (__webpack_module_cache__[moduleId] = {\n /******/ // no module.id needed\n /******/ // no module.loaded needed\n /******/ exports: {},\n /******/\n });\n /******/\n /******/ // Execute the module function\n /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Return the exports of the module\n /******/ return module.exports;\n /******/\n }\n /******/\n /************************************************************************/\n /******/ /* webpack/runtime/compat get default export */\n /******/ (() => {\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __webpack_require__.n = (module) => {\n /******/ var getter = module && module.__esModule ? /******/ () => module['default'] : /******/ () => module;\n /******/ __webpack_require__.d(getter, { a: getter });\n /******/ return getter;\n /******/\n };\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/define property getters */\n /******/ (() => {\n /******/ // define getter functions for harmony exports\n /******/ __webpack_require__.d = (exports, definition) => {\n /******/ for (var key in definition) {\n /******/ if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n /******/\n }\n /******/\n }\n /******/\n };\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/global */\n /******/ (() => {\n /******/ __webpack_require__.g = (function () {\n /******/ if (typeof globalThis === 'object') return globalThis;\n /******/ try {\n /******/ return this || new Function('return this')();\n /******/\n } catch (e) {\n /******/ if (typeof window === 'object') return window;\n /******/\n }\n /******/\n })();\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/hasOwnProperty shorthand */\n /******/ (() => {\n /******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\n /******/\n })();\n /******/\n /******/ /* webpack/runtime/make namespace object */\n /******/ (() => {\n /******/ // define __esModule on exports\n /******/ __webpack_require__.r = (exports) => {\n /******/ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n /******/\n }\n /******/ Object.defineProperty(exports, '__esModule', { value: true });\n /******/\n };\n /******/\n })();\n /******/\n /************************************************************************/\n var __webpack_exports__ = {};\n // This entry need to be wrapped in an IIFE because it need to be in strict mode.\n (() => {\n 'use strict';\n /*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n __webpack_require__.r(__webpack_exports__);\n /* harmony export */ __webpack_require__.d(__webpack_exports__, {\n /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,\n /* harmony export */\n });\n /* harmony import */ var _SecureLS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./SecureLS */ './src/SecureLS.js',\n );\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = _SecureLS__WEBPACK_IMPORTED_MODULE_0__.SecureLS;\n })();\n\n /******/ return __webpack_exports__;\n /******/\n })();\n});\n//# sourceMappingURL=secure-ls.js.map\n","(function webpackUniversalModuleDefinition(root, factory) {\n\t// CommonJS2\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\t// AMD\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\t// CommonJS\n\telse if(typeof exports === 'object')\n\t\texports[\"SecureLS\"] = factory();\n\t// Root\n\telse\n\t\troot[\"SecureLS\"] = factory();\n})(this, () => {\nreturn ","const Base64 = {\n _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n encode: function (e) {\n let t = '';\n let n, r, i, s, o, u, a;\n let f = 0;\n\n e = Base64._utf8Encode(e);\n while (f < e.length) {\n n = e.charCodeAt(f++);\n r = e.charCodeAt(f++);\n i = e.charCodeAt(f++);\n s = n >> 2;\n o = ((n & 3) << 4) | (r >> 4);\n u = ((r & 15) << 2) | (i >> 6);\n a = i & 63;\n if (isNaN(r)) {\n u = a = 64;\n } else if (isNaN(i)) {\n a = 64;\n }\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\n }\n return t;\n },\n decode: function (e) {\n let t = '';\n let n, r, i;\n let s, o, u, a;\n let f = 0;\n\n e = e.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = this._keyStr.indexOf(e.charAt(f++));\n o = this._keyStr.indexOf(e.charAt(f++));\n u = this._keyStr.indexOf(e.charAt(f++));\n a = this._keyStr.indexOf(e.charAt(f++));\n n = (s << 2) | (o >> 4);\n r = ((o & 15) << 4) | (u >> 2);\n i = ((u & 3) << 6) | a;\n t = t + String.fromCharCode(n);\n if (u !== 64) {\n t = t + String.fromCharCode(r);\n }\n if (a !== 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = Base64._utf8Decode(t);\n return t;\n },\n _utf8Encode: function (e) {\n e = e.replace(/\\r\\n/g, '\\n');\n let t = '';\n\n for (let n = 0; n < e.length; n++) {\n let r = e.charCodeAt(n);\n\n if (r < 128) {\n t += String.fromCharCode(r);\n } else if (r > 127 && r < 2048) {\n t += String.fromCharCode((r >> 6) | 192);\n t += String.fromCharCode((r & 63) | 128);\n } else {\n t += String.fromCharCode((r >> 12) | 224);\n t += String.fromCharCode(((r >> 6) & 63) | 128);\n t += String.fromCharCode((r & 63) | 128);\n }\n }\n return t;\n },\n _utf8Decode: function (e) {\n let t = '';\n let n = 0;\n let r, c2, c3;\n\n r = c2 = 0;\n while (n < e.length) {\n r = e.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n n++;\n } else if (r > 191 && r < 224) {\n c2 = e.charCodeAt(n + 1);\n t += String.fromCharCode(((r & 31) << 6) | (c2 & 63));\n n += 2;\n } else {\n c2 = e.charCodeAt(n + 1);\n c3 = e.charCodeAt(n + 2);\n t += String.fromCharCode(((r & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n n += 3;\n }\n }\n return t;\n },\n};\n\nexport default Base64;\n","import constants from './constants';\nimport enc from './enc-utf8';\nimport utils from './utils';\n\nimport AES from 'crypto-js/aes';\nimport RABBIT from 'crypto-js/rabbit';\nimport RC4 from 'crypto-js/rc4';\nimport DES from 'crypto-js/tripledes';\nimport { compressToUTF16, decompressFromUTF16 } from 'lz-string/libs/lz-string';\nimport Base64 from './Base64';\n\nconst encryptors = {\n [constants.EncrytionTypes.AES]: AES,\n [constants.EncrytionTypes.DES]: DES,\n [constants.EncrytionTypes.RABBIT]: RABBIT,\n [constants.EncrytionTypes.RC4]: RC4,\n};\n\nexport class SecureLS {\n constructor({\n encryptionSecret = '',\n encryptionNamespace = '',\n isCompression = true,\n encodingType = constants.EncrytionTypes.BASE64,\n storage = localStorage,\n metaKey = constants.metaKey\n } = {}) {\n // Assign libraries and utilities\n Object.assign(this, {\n _name: 'secure-ls',\n Base64,\n LZString: { compressToUTF16, decompressFromUTF16 },\n AES,\n DES,\n RABBIT,\n RC4,\n enc,\n });\n\n // Configuration and property assignment\n this.config = { encryptionSecret, encryptionNamespace, isCompression, encodingType: encodingType.toLowerCase(), storage, metaKey};\n this.encryptionSecret = encryptionSecret;\n this.storage = storage;\n this.metaKey = metaKey;\n\n // Initialize the class\n this.init();\n }\n\n init() {\n let metaData = this.getMetaData();\n\n this._isBase64 = this._isBase64EncryptionType();\n this._isAES = this._isAESEncryptionType();\n this._isDES = this._isDESEncryptionType();\n this._isRabbit = this._isRabbitEncryptionType();\n this._isRC4 = this._isRC4EncryptionType();\n this._isCompression = this._isDataCompressionEnabled();\n\n // fill the already present keys to the list of keys being used by secure-ls\n this.allKeys = metaData.keys || this.resetAllKeys();\n }\n\n _isBase64EncryptionType() {\n return (\n Base64 &&\n (typeof this.config.encodingType === 'undefined' || this.config.encodingType === constants.EncrytionTypes.BASE64)\n );\n }\n\n _isAESEncryptionType() {\n return AES && this.config.encodingType === constants.EncrytionTypes.AES;\n }\n\n _isDESEncryptionType() {\n return DES && this.config.encodingType === constants.EncrytionTypes.DES;\n }\n\n _isRabbitEncryptionType() {\n return RABBIT && this.config.encodingType === constants.EncrytionTypes.RABBIT;\n }\n\n _isRC4EncryptionType() {\n return RC4 && this.config.encodingType === constants.EncrytionTypes.RC4;\n }\n\n _isDataCompressionEnabled() {\n return this.config.isCompression;\n }\n\n getEncryptionSecret(key) {\n let metaData = this.getMetaData();\n let obj = utils.getObjectFromKey(metaData.keys, key);\n\n if (!obj) {\n return;\n }\n\n if (this._isAES || this._isDES || this._isRabbit || this._isRC4) {\n if (typeof this.config.encryptionSecret === 'undefined') {\n this.encryptionSecret = obj.s;\n\n if (!this.encryptionSecret) {\n this.encryptionSecret = utils.generateSecretKey();\n this.setMetaData();\n }\n } else {\n this.encryptionSecret = this.config.encryptionSecret || obj.s || '';\n }\n }\n }\n\n getEncryptionType() {\n const encodingType = this.config.encodingType;\n return encodingType ? encodingType.toLowerCase() : constants.EncrytionTypes.BASE64;\n }\n\n getDataFromLocalStorage(key) {\n return this.storage.getItem(key, true);\n }\n\n setDataToLocalStorage(key, data) {\n this.storage.setItem(key, data);\n }\n\n setMetaData() {\n let dataToStore = this.processData(\n {\n keys: this.allKeys,\n },\n true,\n );\n\n // Store the data to localStorage\n this.setDataToLocalStorage(this.getMetaKey(), dataToStore);\n }\n\n getMetaData() {\n return this.get(this.getMetaKey(), true) || {};\n }\n\n getMetaKey() {\n return this.metaKey + (this.config.encryptionNamespace ? '__' + this.config.encryptionNamespace : '');\n }\n\n resetAllKeys() {\n this.allKeys = [];\n return [];\n }\n\n processData(data, isAllKeysData) {\n if (data === null || data === undefined || data === '') {\n return '';\n }\n\n let jsonData;\n\n try {\n jsonData = JSON.stringify(data);\n } catch (err) {\n throw new Error('Could not stringify data', err);\n }\n\n // Encode Based on encoding type\n // If not set, default to Base64 for securing data\n let encodedData = jsonData;\n\n if (this._isBase64 || isAllKeysData) {\n encodedData = Base64.encode(jsonData);\n } else {\n const encryptor = encryptors[this.getEncryptionType()];\n if (encryptor) {\n encodedData = encryptor.encrypt(jsonData, this.encryptionSecret);\n }\n\n encodedData = encodedData && encodedData.toString();\n }\n\n // Compress data if set to true\n let compressedData = encodedData;\n if (this._isCompression || isAllKeysData) {\n compressedData = this.LZString.compressToUTF16(encodedData);\n }\n\n return compressedData;\n }\n\n\n // PUBLIC APIs\n getAllKeys() {\n let data = this.getMetaData();\n\n return utils.extractKeyNames(data) || [];\n }\n\n get(key, isAllKeysData) {\n let decodedData = '';\n let jsonData = '';\n\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return jsonData;\n }\n\n let data = this.getDataFromLocalStorage(key);\n\n if (!data) {\n return jsonData;\n }\n\n let deCompressedData = data; // saves else\n if (this._isCompression || isAllKeysData) {\n // meta data always compressed\n deCompressedData = this.LZString.decompressFromUTF16(data);\n }\n\n decodedData = deCompressedData; // saves else\n if (this._isBase64 || isAllKeysData) {\n // meta data always Base64\n decodedData = Base64.decode(deCompressedData);\n } else {\n this.getEncryptionSecret(key);\n const encryptor = encryptors[this.getEncryptionType()];\n\n if (encryptor) {\n const bytes = encryptor.decrypt(deCompressedData.toString(), this.encryptionSecret);\n\n if (bytes) {\n decodedData = bytes.toString(enc._Utf8);\n }\n }\n }\n\n try {\n jsonData = JSON.parse(decodedData);\n } catch (err) {\n throw new Error('Could not parse JSON', err);\n }\n\n return jsonData;\n }\n\n set(key, data) {\n let dataToStore = '';\n\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n\n this.getEncryptionSecret(key);\n\n // add key(s) to Array if not already added, only for keys other than meta key\n if (!(String(key) === String(this.metaKey))) {\n if (!utils.isKeyPresent(this.allKeys, key)) {\n this.allKeys.push({\n k: key,\n s: this.encryptionSecret,\n });\n this.setMetaData();\n }\n }\n\n dataToStore = this.processData(data);\n // Store the data to localStorage\n this.setDataToLocalStorage(key, dataToStore);\n }\n\n remove(key) {\n if (!utils.is(key)) {\n utils.warn(constants.WarningEnum.KEY_NOT_PROVIDED);\n return;\n }\n\n if (key === this.metaKey && this.getAllKeys().length) {\n utils.warn(constants.WarningEnum.META_KEY_REMOVE);\n return;\n }\n\n if (utils.isKeyPresent(this.allKeys, key)) {\n utils.removeFromKeysList(this.allKeys, key);\n this.setMetaData();\n }\n this.storage.removeItem(key);\n }\n\n removeAll() {\n let keys = this.getAllKeys();\n\n for (let i = 0; i < keys.length; i++) {\n this.storage.removeItem(keys[i]);\n }\n\n this.storage.removeItem(this.metaKey);\n this.resetAllKeys();\n }\n\n clear() {\n this.storage.clear();\n this.resetAllKeys();\n }\n}\n","/*\n ES6 compatible port of CryptoJS - WordArray for PBKDF2 password key generation\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\n\nlet CryptoJSWordArray = {\n random: function (nBytes) {\n let words = [];\n let r = function (mw) {\n let mz = 0x3ade68b1;\n let mask = 0xffffffff;\n\n return function () {\n mz = (0x9069 * (mz & 0xffff) + (mz >> 0x10)) & mask;\n mw = (0x4650 * (mw & 0xffff) + (mw >> 0x10)) & mask;\n let result = ((mz << 0x10) + mw) & mask;\n\n result /= 0x100000000;\n result += 0.5;\n return result * (Math.random() > 0.5 ? 1 : -1);\n };\n };\n\n for (let i = 0, rcache; i < nBytes; i += 4) {\n let _r = r((rcache || Math.random()) * 0x100000000);\n\n rcache = _r() * 0x3ade67b7;\n words.push((_r() * 0x100000000) | 0);\n }\n\n return new CryptoJSWordArray.Set(words, nBytes);\n },\n\n Set: function (words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n};\n\nexport default CryptoJSWordArray;\n","const WarningEnum = {\n KEY_NOT_PROVIDED: 'keyNotProvided',\n META_KEY_REMOVE: 'metaKeyRemove',\n DEFAULT_TEXT: 'defaultText',\n};\n\nconst WarningTypes = {};\n\nWarningTypes[WarningEnum.KEY_NOT_PROVIDED] = 'Secure LS: Key not provided. Aborting operation!';\nWarningTypes[WarningEnum.META_KEY_REMOVE] = `Secure LS: Meta key can not be removed\nunless all keys created by Secure LS are removed!`;\nWarningTypes[WarningEnum.DEFAULT_TEXT] = `Unexpected output`;\n\nconst constants = {\n WarningEnum: WarningEnum,\n WarningTypes: WarningTypes,\n EncrytionTypes: {\n BASE64: 'base64',\n AES: 'aes',\n DES: 'des',\n RABBIT: 'rabbit',\n RC4: 'rc4',\n },\n metaKey: '_secure__ls__metadata',\n secretPhrase: 's3cr3t$#@135^&*246'\n};\n\nexport default constants;\n","/*\n ES6 compatible port of CryptoJS - encoding\n\n Source: https://github.com/brix/crypto-js\n LICENSE: MIT\n */\nconst enc = {\n Latin1: {\n stringify: (wordArray) => {\n // Shortcuts\n let words = wordArray.words;\n let sigBytes = wordArray.sigBytes;\n let latin1Chars = [],\n i,\n bite;\n\n // Convert\n for (i = 0; i < sigBytes; i++) {\n bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n latin1Chars.push(String.fromCharCode(bite));\n }\n\n return latin1Chars.join('');\n },\n },\n\n _Utf8: {\n stringify: (wordArray) => {\n try {\n return decodeURIComponent(escape(enc.Latin1.stringify(wordArray)));\n } catch (err) {\n throw new Error('Malformed UTF-8 data', err);\n }\n },\n },\n};\n\nexport default enc;\n","import PBKDF2 from 'crypto-js/pbkdf2';\nimport constants from './constants';\nimport CryptoJSWordArray from './WordArray';\n\nconst utils = {\n is: (key) => !!key,\n\n warn: (reason = constants.WarningEnum.DEFAULT_TEXT) => {\n console.warn(constants.WarningTypes[reason]);\n },\n\n generateSecretKey: () => {\n const salt = CryptoJSWordArray.random(128 / 8);\n const key128Bits = PBKDF2(constants.secretPhrase, salt, { keySize: 128 / 32 });\n return key128Bits.toString();\n },\n\n getObjectFromKey: (data = [], key) => {\n return data.find(item => item.k === key) || {};\n },\n\n extractKeyNames: ({ keys = [] } = {}) => {\n return keys.map(({ k }) => k);\n },\n\n isKeyPresent: (allKeys = [], key) => {\n return allKeys.some(item => String(item.k) === String(key));\n },\n\n removeFromKeysList: (allKeys = [], key) => {\n const index = allKeys.findIndex(item => item.k === key);\n if (index !== -1) {\n allKeys.splice(index, 1);\n }\n return index;\n },\n};\n\n\nexport default utils;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","/* (ignored) */","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { SecureLS } from './SecureLS';\n\nexport default SecureLS;\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([, \"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"vue\"), require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Vue\"], root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"00ee\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"057f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar nativeGetOwnPropertyNames = __webpack_require__(\"241c\").f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ \"159b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar DOMIterables = __webpack_require__(\"fdbc\");\nvar forEach = __webpack_require__(\"17c2\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"25f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(\"6eeb\");\nvar anObject = __webpack_require__(\"825a\");\nvar fails = __webpack_require__(\"d039\");\nvar flags = __webpack_require__(\"ad6d\");\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"2ca0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar toLength = __webpack_require__(\"50c4\");\nvar notARegExp = __webpack_require__(\"5a34\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar correctIsRegExpLogic = __webpack_require__(\"ab13\");\nvar IS_PURE = __webpack_require__(\"c430\");\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"35a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"f5df\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"3bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"3ca3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(\"6547\").charAt;\nvar InternalStateModule = __webpack_require__(\"69f3\");\nvar defineIterator = __webpack_require__(\"7dd0\");\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"3f8c\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"428f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"44d2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar create = __webpack_require__(\"7c73\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"44e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar classof = __webpack_require__(\"c6b6\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"4930\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4df4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(\"0366\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar callWithSafeIterationClosing = __webpack_require__(\"9bdd\");\nvar isArrayIteratorMethod = __webpack_require__(\"e95a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar createProperty = __webpack_require__(\"8418\");\nvar getIteratorMethod = __webpack_require__(\"35a1\");\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"4fad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(\"23e7\");\nvar $entries = __webpack_require__(\"6f53\").entries;\n\n// `Object.entries` method\n// https://tc39.github.io/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"5a34\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(\"44e7\");\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5db7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar flattenIntoArray = __webpack_require__(\"a2bf\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar aFunction = __webpack_require__(\"1c0b\");\nvar arraySpeciesCreate = __webpack_require__(\"65f0\");\n\n// `Array.prototype.flatMap` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"6f53\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar objectKeys = __webpack_require__(\"df75\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar propertyIsEnumerable = __webpack_require__(\"d1e7\").f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"73d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = __webpack_require__(\"44d2\");\n\naddToUnscopables('flatMap');\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"7dd0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar createIteratorConstructor = __webpack_require__(\"9ed3\");\nvar getPrototypeOf = __webpack_require__(\"e163\");\nvar setPrototypeOf = __webpack_require__(\"d2bb\");\nvar setToStringTag = __webpack_require__(\"d44e\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar IS_PURE = __webpack_require__(\"c430\");\nvar Iterators = __webpack_require__(\"3f8c\");\nvar IteratorsCore = __webpack_require__(\"ae93\");\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"8875\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\n","\n\n\n","import { defineComponent, h } from 'vue';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar KEYCODE_ENTER = 13;\nvar KEYCODE_TAB = 9;\nvar KEYCODE_BACKSPACE = 8;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar KEYCODE_ESCAPE = 27;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' && navigator && /*#__PURE__*/ /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' && navigator && /*#__PURE__*/ /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar PrismEditor = /*#__PURE__*/defineComponent({\n props: {\n lineNumbers: {\n type: Boolean,\n \"default\": false\n },\n autoStyleLineNumbers: {\n type: Boolean,\n \"default\": true\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n modelValue: {\n type: String,\n \"default\": ''\n },\n highlight: {\n type: Function,\n required: true\n },\n tabSize: {\n type: Number,\n \"default\": 2\n },\n insertSpaces: {\n type: Boolean,\n \"default\": true\n },\n ignoreTabKey: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": ''\n }\n },\n data: function data() {\n return {\n capture: true,\n history: {\n stack: [],\n offset: -1\n },\n lineNumbersHeight: '20px',\n codeData: ''\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler: function handler(newVal) {\n if (!newVal) {\n this.codeData = '';\n } else {\n this.codeData = newVal;\n }\n }\n },\n content: {\n immediate: true,\n handler: function handler() {\n var _this = this;\n\n if (this.lineNumbers) {\n this.$nextTick(function () {\n _this.setLineNumbersHeight();\n });\n }\n }\n },\n lineNumbers: function lineNumbers() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.styleLineNumbers();\n\n _this2.setLineNumbersHeight();\n });\n }\n },\n computed: {\n isEmpty: function isEmpty() {\n return this.codeData.length === 0;\n },\n content: function content() {\n var result = this.highlight(this.codeData) + '
    '; // todo: VNode support?\n\n return result;\n },\n lineNumbersCount: function lineNumbersCount() {\n var totalLines = this.codeData.split(/\\r\\n|\\n/).length;\n return totalLines;\n }\n },\n mounted: function mounted() {\n this._recordCurrentState();\n\n this.styleLineNumbers();\n },\n methods: {\n setLineNumbersHeight: function setLineNumbersHeight() {\n this.lineNumbersHeight = getComputedStyle(this.$refs.pre).height;\n },\n styleLineNumbers: function styleLineNumbers() {\n if (!this.lineNumbers || !this.autoStyleLineNumbers) return;\n var $editor = this.$refs.pre;\n var $lineNumbers = this.$el.querySelector('.prism-editor__line-numbers');\n var editorStyles = window.getComputedStyle($editor);\n this.$nextTick(function () {\n var btlr = 'border-top-left-radius';\n var bblr = 'border-bottom-left-radius';\n if (!$lineNumbers) return;\n $lineNumbers.style[btlr] = editorStyles[btlr];\n $lineNumbers.style[bblr] = editorStyles[bblr];\n $editor.style[btlr] = '0';\n $editor.style[bblr] = '0';\n var stylesList = ['background-color', 'margin-top', 'padding-top', 'font-family', 'font-size', 'line-height'];\n stylesList.forEach(function (style) {\n $lineNumbers.style[style] = editorStyles[style];\n });\n $lineNumbers.style['margin-bottom'] = '-' + editorStyles['padding-top'];\n });\n },\n _recordCurrentState: function _recordCurrentState() {\n var input = this.$refs.textarea;\n if (!input) return; // Save current state of the input\n\n var value = input.value,\n selectionStart = input.selectionStart,\n selectionEnd = input.selectionEnd;\n\n this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n },\n _getLines: function _getLines(text, position) {\n return text.substring(0, position).split('\\n');\n },\n _applyEdits: function _applyEdits(record) {\n // Save last selection state\n var input = this.$refs.textarea;\n var last = this.history.stack[this.history.offset];\n\n if (last && input) {\n this.history.stack[this.history.offset] = _extends({}, last, {\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd\n });\n } // Save the changes\n\n\n this._recordChange(record);\n\n this._updateInput(record);\n },\n _recordChange: function _recordChange(record, overwrite) {\n if (overwrite === void 0) {\n overwrite = false;\n }\n\n var _this$history = this.history,\n stack = _this$history.stack,\n offset = _this$history.offset;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n this.history.stack = stack.slice(0, offset + 1); // Limit the number of operations to 100\n\n var count = this.history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n var extras = count - HISTORY_LIMIT;\n this.history.stack = stack.slice(extras, count);\n this.history.offset = Math.max(this.history.offset - extras, 0);\n }\n }\n\n var timestamp = Date.now();\n\n if (overwrite) {\n var last = this.history.stack[this.history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n var _this$_getLines$pop, _this$_getLines$pop2;\n\n // A previous entry exists and was in short interval\n // Match the last word in the line\n var re = /[^a-z0-9]([a-z0-9]+)$/i; // Get the previous line\n\n var previous = (_this$_getLines$pop = this._getLines(last.value, last.selectionStart).pop()) === null || _this$_getLines$pop === void 0 ? void 0 : _this$_getLines$pop.match(re); // Get the current line\n\n var current = (_this$_getLines$pop2 = this._getLines(record.value, record.selectionStart).pop()) === null || _this$_getLines$pop2 === void 0 ? void 0 : _this$_getLines$pop2.match(re);\n\n if (previous && current && current[1].startsWith(previous[1])) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n this.history.stack[this.history.offset] = _extends({}, record, {\n timestamp: timestamp\n });\n return;\n }\n }\n } // Add the new operation to the stack\n\n\n this.history.stack.push(_extends({}, record, {\n timestamp: timestamp\n }));\n this.history.offset++;\n },\n _updateInput: function _updateInput(record) {\n var input = this.$refs.textarea;\n if (!input) return; // Update values and selection state\n\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n this.$emit('update:modelValue', record.value); // this.props.onValueChange(record.value);\n },\n handleChange: function handleChange(e) {\n var _e$target = e.target,\n value = _e$target.value,\n selectionStart = _e$target.selectionStart,\n selectionEnd = _e$target.selectionEnd;\n\n this._recordChange({\n value: value,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n }, true);\n\n this.$emit('update:modelValue', value); // this.props.onValueChange(value);\n },\n _undoEdit: function _undoEdit() {\n var _this$history2 = this.history,\n stack = _this$history2.stack,\n offset = _this$history2.offset; // Get the previous edit\n\n var record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n\n this.history.offset = Math.max(offset - 1, 0);\n }\n },\n _redoEdit: function _redoEdit() {\n var _this$history3 = this.history,\n stack = _this$history3.stack,\n offset = _this$history3.offset; // Get the next edit\n\n var record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n\n this.history.offset = Math.min(offset + 1, stack.length - 1);\n }\n },\n handleKeyDown: function handleKeyDown(e) {\n // console.log(navigator.platform);\n var tabSize = this.tabSize,\n insertSpaces = this.insertSpaces,\n ignoreTabKey = this.ignoreTabKey; // onKeyDown(e);\n\n this.$emit('keydown', e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n e.target.blur();\n this.$emit('blur', e);\n }\n\n var _e$target2 = e.target,\n value = _e$target2.value,\n selectionStart = _e$target2.selectionStart,\n selectionEnd = _e$target2.selectionEnd;\n var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && this.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n var linesBeforeCaret = this._getLines(value, selectionStart);\n\n var startLine = linesBeforeCaret.length - 1;\n var endLine = this._getLines(value, selectionEnd).length - 1;\n var nextValue = value.split('\\n').map(function (line, i) {\n if (i >= startLine && i <= endLine && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n }).join('\\n');\n\n if (value !== nextValue) {\n var startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: startLineText.startsWith(tabCharacter) ? selectionStart - tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length)\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n var _linesBeforeCaret = this._getLines(value, selectionStart);\n\n var _startLine = _linesBeforeCaret.length - 1;\n\n var _endLine = this._getLines(value, selectionEnd).length - 1;\n\n var _startLineText = _linesBeforeCaret[_startLine];\n\n this._applyEdits({\n value: value.split('\\n').map(function (line, i) {\n if (i >= _startLine && i <= _endLine) {\n return tabCharacter + line;\n }\n\n return line;\n }).join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: /\\S/.test(_startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (_endLine - _startLine + 1)\n });\n } else {\n var updatedSelection = selectionStart + tabCharacter.length;\n\n this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n var hasSelection = selectionStart !== selectionEnd;\n var textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n\n var _updatedSelection = selectionStart - tabCharacter.length;\n\n this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: _updatedSelection,\n selectionEnd: _updatedSelection\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n var line = this._getLines(value, selectionStart).pop();\n\n var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n\n if (matches && matches[0]) {\n e.preventDefault(); // Preserve indentation on inserting a new line\n\n var indent = '\\n' + matches[0];\n\n var _updatedSelection2 = selectionStart + indent.length;\n\n this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: _updatedSelection2,\n selectionEnd: _updatedSelection2\n });\n }\n }\n } else if (e.keyCode === KEYCODE_PARENS || e.keyCode === KEYCODE_BRACKETS || e.keyCode === KEYCODE_QUOTE || e.keyCode === KEYCODE_BACK_QUOTE) {\n var chars;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n } // console.log(isMacLike, \"navigator\" in global && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n // If text is selected, wrap them in the characters\n\n\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n this._applyEdits({\n value: value.substring(0, selectionStart) + chars[0] + value.substring(selectionStart, selectionEnd) + chars[1] + value.substring(selectionEnd),\n // Update caret position\n selectionStart: selectionStart,\n selectionEnd: selectionEnd + 2\n });\n }\n } else if ((isMacLike ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) && !e.shiftKey && !e.altKey) {\n e.preventDefault();\n\n this._undoEdit();\n } else if ((isMacLike ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey : isWindows ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) && !e.altKey) {\n e.preventDefault();\n\n this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault(); // Toggle capturing tab key so users can focus away\n\n this.capture = !this.capture;\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var lineNumberWidthCalculator = h('div', {\n \"class\": 'prism-editor__line-width-calc',\n style: 'height: 0px; visibility: hidden; pointer-events: none;'\n }, '999');\n var lineNumbers = h('div', {\n \"class\": 'prism-editor__line-numbers',\n style: {\n 'min-height': this.lineNumbersHeight\n },\n 'aria-hidden': 'true'\n }, [lineNumberWidthCalculator, Array.from(Array(this.lineNumbersCount).keys()).map(function (_, index) {\n return h('div', {\n \"class\": 'prism-editor__line-number token comment'\n }, \"\" + ++index);\n })]);\n var textarea = h('textarea', {\n ref: 'textarea',\n onInput: this.handleChange,\n onKeydown: this.handleKeyDown,\n onClick: function onClick($event) {\n _this3.$emit('click', $event);\n },\n onKeyup: function onKeyup($event) {\n _this3.$emit('keyup', $event);\n },\n onFocus: function onFocus($event) {\n _this3.$emit('focus', $event);\n },\n onBlur: function onBlur($event) {\n _this3.$emit('blur', $event);\n },\n \"class\": {\n 'prism-editor__textarea': true,\n 'prism-editor__textarea--empty': this.isEmpty\n },\n spellCheck: 'false',\n autocapitalize: 'off',\n autocomplete: 'off',\n autocorrect: 'off',\n 'data-gramm': 'false',\n placeholder: this.placeholder,\n 'data-testid': 'textarea',\n readonly: this.readonly,\n value: this.codeData\n });\n var preview = h('pre', {\n ref: 'pre',\n \"class\": 'prism-editor__editor',\n 'data-testid': 'preview',\n innerHTML: this.content\n });\n var editorContainer = h('div', {\n \"class\": 'prism-editor__container'\n }, [textarea, preview]);\n return h('div', {\n \"class\": 'prism-editor-wrapper'\n }, [this.lineNumbers && lineNumbers, editorContainer]);\n }\n});\n\nexport { PrismEditor };\n//# sourceMappingURL=prismeditor.esm.js.map\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { defineComponent, h } from 'vue';\n\nimport './styles.css';\nconst KEYCODE_ENTER = 13;\nconst KEYCODE_TAB = 9;\nconst KEYCODE_BACKSPACE = 8;\nconst KEYCODE_Y = 89;\nconst KEYCODE_Z = 90;\nconst KEYCODE_M = 77;\nconst KEYCODE_PARENS = 57;\nconst KEYCODE_BRACKETS = 219;\nconst KEYCODE_QUOTE = 222;\nconst KEYCODE_BACK_QUOTE = 192;\nconst KEYCODE_ESCAPE = 27;\n\nconst HISTORY_LIMIT = 100;\nconst HISTORY_TIME_GAP = 3000;\n\nconst isWindows = typeof window !== 'undefined' && navigator && /Win/i.test(navigator.platform);\nconst isMacLike = typeof window !== 'undefined' && navigator && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n\nexport interface EditorProps {\n lineNumbers: boolean;\n autoStyleLineNumbers: boolean;\n readonly: boolean;\n value: string;\n highlight: () => string;\n tabSize: number;\n insertSpaces: boolean;\n ignoreTabKey: boolean;\n placeholder: string;\n}\nexport interface Record {\n value: string;\n selectionStart: number;\n selectionEnd: number;\n}\n\nexport interface History {\n stack: Array;\n offset: number;\n}\n\nexport const PrismEditor = defineComponent({\n props: {\n lineNumbers: {\n type: Boolean,\n default: false,\n },\n autoStyleLineNumbers: {\n type: Boolean,\n default: true,\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: String,\n default: '',\n },\n highlight: {\n type: Function,\n required: true,\n },\n tabSize: {\n type: Number,\n default: 2,\n },\n insertSpaces: {\n type: Boolean,\n default: true,\n },\n ignoreTabKey: {\n type: Boolean,\n default: false,\n },\n placeholder: {\n type: String,\n default: '',\n },\n },\n data() {\n return {\n capture: true,\n history: {\n stack: [],\n offset: -1,\n } as History,\n lineNumbersHeight: '20px',\n codeData: '',\n };\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal: string): void {\n if (!newVal) {\n this.codeData = '';\n } else {\n this.codeData = newVal;\n }\n },\n },\n content: {\n immediate: true,\n handler(): void {\n if (this.lineNumbers) {\n this.$nextTick(() => {\n this.setLineNumbersHeight();\n });\n }\n },\n },\n lineNumbers(): void {\n this.$nextTick(() => {\n this.styleLineNumbers();\n this.setLineNumbersHeight();\n });\n },\n },\n computed: {\n isEmpty(): boolean {\n return this.codeData.length === 0;\n },\n content(): string {\n const result = this.highlight(this.codeData) + '
    ';\n // todo: VNode support?\n return result;\n },\n lineNumbersCount(): number {\n const totalLines = this.codeData.split(/\\r\\n|\\n/).length;\n return totalLines;\n },\n },\n mounted() {\n this._recordCurrentState();\n this.styleLineNumbers();\n },\n\n methods: {\n setLineNumbersHeight(): void {\n this.lineNumbersHeight = getComputedStyle(this.$refs.pre as HTMLTextAreaElement).height;\n },\n styleLineNumbers(): void {\n if (!this.lineNumbers || !this.autoStyleLineNumbers) return;\n\n const $editor = this.$refs.pre as HTMLTextAreaElement;\n const $lineNumbers: HTMLDivElement | null = this.$el.querySelector('.prism-editor__line-numbers');\n const editorStyles = window.getComputedStyle($editor);\n\n this.$nextTick(() => {\n const btlr: any = 'border-top-left-radius';\n const bblr: any = 'border-bottom-left-radius';\n if (!$lineNumbers) return;\n $lineNumbers.style[btlr] = editorStyles[btlr];\n $lineNumbers.style[bblr] = editorStyles[bblr];\n $editor.style[btlr] = '0';\n $editor.style[bblr] = '0';\n\n const stylesList = ['background-color', 'margin-top', 'padding-top', 'font-family', 'font-size', 'line-height'];\n stylesList.forEach((style: any) => {\n $lineNumbers.style[style] = editorStyles[style];\n });\n $lineNumbers.style['margin-bottom' as any] = '-' + editorStyles['padding-top' as any];\n });\n },\n _recordCurrentState(): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n // Save current state of the input\n const { value, selectionStart, selectionEnd } = input;\n\n this._recordChange({\n value,\n selectionStart,\n selectionEnd,\n });\n },\n _getLines(text: string, position: number): Array {\n return text.substring(0, position).split('\\n');\n },\n _applyEdits(record: Record): void {\n // Save last selection state\n const input = this.$refs.textarea as HTMLTextAreaElement;\n const last = this.history.stack[this.history.offset];\n\n if (last && input) {\n this.history.stack[this.history.offset] = {\n ...last,\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd,\n };\n }\n\n // Save the changes\n this._recordChange(record);\n this._updateInput(record);\n },\n _recordChange(record: Record, overwrite = false): void {\n const { stack, offset } = this.history;\n\n if (stack.length && offset > -1) {\n // When something updates, drop the redo operations\n this.history.stack = stack.slice(0, offset + 1);\n\n // Limit the number of operations to 100\n const count = this.history.stack.length;\n\n if (count > HISTORY_LIMIT) {\n const extras = count - HISTORY_LIMIT;\n\n this.history.stack = stack.slice(extras, count);\n this.history.offset = Math.max(this.history.offset - extras, 0);\n }\n }\n\n const timestamp = Date.now();\n\n if (overwrite) {\n const last = this.history.stack[this.history.offset];\n\n if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n // A previous entry exists and was in short interval\n\n // Match the last word in the line\n const re = /[^a-z0-9]([a-z0-9]+)$/i;\n\n // Get the previous line\n const previous = this._getLines(last.value, last.selectionStart).pop()?.match(re);\n\n // Get the current line\n const current = this._getLines(record.value, record.selectionStart).pop()?.match(re);\n\n if (previous && current && current[1].startsWith(previous[1])) {\n // The last word of the previous line and current line match\n // Overwrite previous entry so that undo will remove whole word\n this.history.stack[this.history.offset] = {\n ...record,\n timestamp,\n };\n\n return;\n }\n }\n }\n\n // Add the new operation to the stack\n this.history.stack.push({ ...record, timestamp });\n this.history.offset++;\n },\n\n _updateInput(record: Record): void {\n const input = this.$refs.textarea as HTMLTextAreaElement;\n\n if (!input) return;\n\n // Update values and selection state\n input.value = record.value;\n input.selectionStart = record.selectionStart;\n input.selectionEnd = record.selectionEnd;\n\n this.$emit('update:modelValue', record.value);\n // this.props.onValueChange(record.value);\n },\n handleChange(e: KeyboardEvent): void {\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n this._recordChange(\n {\n value,\n selectionStart,\n selectionEnd,\n },\n true\n );\n this.$emit('update:modelValue', value);\n // this.props.onValueChange(value);\n },\n _undoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the previous edit\n const record = stack[offset - 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.max(offset - 1, 0);\n }\n },\n _redoEdit(): void {\n const { stack, offset } = this.history;\n\n // Get the next edit\n const record = stack[offset + 1];\n\n if (record) {\n // Apply the changes and update the offset\n this._updateInput(record);\n this.history.offset = Math.min(offset + 1, stack.length - 1);\n }\n },\n handleKeyDown(e: KeyboardEvent): void {\n // console.log(navigator.platform);\n const { tabSize, insertSpaces, ignoreTabKey } = this;\n\n // onKeyDown(e);\n this.$emit('keydown', e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (e.keyCode === KEYCODE_ESCAPE) {\n (e.target).blur();\n this.$emit('blur', e);\n }\n\n const { value, selectionStart, selectionEnd } = e.target as HTMLTextAreaElement;\n\n const tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n\n if (e.keyCode === KEYCODE_TAB && !ignoreTabKey && this.capture) {\n // Prevent focus change\n e.preventDefault();\n\n if (e.shiftKey) {\n // Unindent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const nextValue = value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine && line.startsWith(tabCharacter)) {\n return line.substring(tabCharacter.length);\n }\n\n return line;\n })\n .join('\\n');\n\n if (value !== nextValue) {\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: nextValue,\n // Move the start cursor if first line in selection was modified\n // It was modified only if it started with a tab\n selectionStart: startLineText.startsWith(tabCharacter)\n ? selectionStart - tabCharacter.length\n : selectionStart,\n // Move the end cursor by total number of characters removed\n selectionEnd: selectionEnd - (value.length - nextValue.length),\n });\n }\n } else if (selectionStart !== selectionEnd) {\n // Indent selected lines\n const linesBeforeCaret = this._getLines(value, selectionStart);\n const startLine = linesBeforeCaret.length - 1;\n const endLine = this._getLines(value, selectionEnd).length - 1;\n const startLineText = linesBeforeCaret[startLine];\n\n this._applyEdits({\n value: value\n .split('\\n')\n .map((line, i) => {\n if (i >= startLine && i <= endLine) {\n return tabCharacter + line;\n }\n\n return line;\n })\n .join('\\n'),\n // Move the start cursor by number of characters added in first line of selection\n // Don't move it if it there was no text before cursor\n selectionStart: /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n // Move the end cursor by total number of characters added\n selectionEnd: selectionEnd + tabCharacter.length * (endLine - startLine + 1),\n });\n } else {\n const updatedSelection = selectionStart + tabCharacter.length;\n\n this._applyEdits({\n // Insert tab character at caret\n value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_BACKSPACE) {\n const hasSelection = selectionStart !== selectionEnd;\n const textBeforeCaret = value.substring(0, selectionStart);\n\n if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n // Prevent default delete behaviour\n e.preventDefault();\n\n const updatedSelection = selectionStart - tabCharacter.length;\n\n this._applyEdits({\n // Remove tab character at caret\n value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n } else if (e.keyCode === KEYCODE_ENTER) {\n // Ignore selections\n if (selectionStart === selectionEnd) {\n // Get the current line\n const line = this._getLines(value, selectionStart).pop();\n const matches = line?.match(/^\\s+/);\n\n if (matches && matches[0]) {\n e.preventDefault();\n\n // Preserve indentation on inserting a new line\n const indent = '\\n' + matches[0];\n const updatedSelection = selectionStart + indent.length;\n\n this._applyEdits({\n // Insert indentation character at caret\n value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n // Update caret position\n selectionStart: updatedSelection,\n selectionEnd: updatedSelection,\n });\n }\n }\n } else if (\n e.keyCode === KEYCODE_PARENS ||\n e.keyCode === KEYCODE_BRACKETS ||\n e.keyCode === KEYCODE_QUOTE ||\n e.keyCode === KEYCODE_BACK_QUOTE\n ) {\n let chars;\n\n if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n chars = ['(', ')'];\n } else if (e.keyCode === KEYCODE_BRACKETS) {\n if (e.shiftKey) {\n chars = ['{', '}'];\n } else {\n chars = ['[', ']'];\n }\n } else if (e.keyCode === KEYCODE_QUOTE) {\n if (e.shiftKey) {\n chars = ['\"', '\"'];\n } else {\n chars = [\"'\", \"'\"];\n }\n } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n chars = ['`', '`'];\n }\n\n // console.log(isMacLike, \"navigator\" in global && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform));\n\n // If text is selected, wrap them in the characters\n if (selectionStart !== selectionEnd && chars) {\n e.preventDefault();\n\n this._applyEdits({\n value:\n value.substring(0, selectionStart) +\n chars[0] +\n value.substring(selectionStart, selectionEnd) +\n chars[1] +\n value.substring(selectionEnd),\n // Update caret position\n selectionStart,\n selectionEnd: selectionEnd + 2,\n });\n }\n } else if (\n (isMacLike\n ? // Trigger undo with ⌘+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z\n : // Trigger undo with Ctrl+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z) &&\n !e.shiftKey &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._undoEdit();\n } else if (\n (isMacLike\n ? // Trigger redo with ⌘+Shift+Z on Mac\n e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey\n : isWindows\n ? // Trigger redo with Ctrl+Y on Windows\n e.ctrlKey && e.keyCode === KEYCODE_Y\n : // Trigger redo with Ctrl+Shift+Z on other platforms\n e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) &&\n !e.altKey\n ) {\n e.preventDefault();\n\n this._redoEdit();\n } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n e.preventDefault();\n\n // Toggle capturing tab key so users can focus away\n this.capture = !this.capture;\n }\n },\n },\n render() {\n const lineNumberWidthCalculator = h(\n 'div',\n {\n class: 'prism-editor__line-width-calc',\n style: 'height: 0px; visibility: hidden; pointer-events: none;',\n },\n '999'\n );\n const lineNumbers = h(\n 'div',\n {\n class: 'prism-editor__line-numbers',\n style: {\n 'min-height': this.lineNumbersHeight,\n },\n 'aria-hidden': 'true',\n },\n [\n lineNumberWidthCalculator,\n Array.from(Array(this.lineNumbersCount).keys()).map((_, index) => {\n return h('div', { class: 'prism-editor__line-number token comment' }, `${++index}`);\n }),\n ]\n );\n\n const textarea = h('textarea', {\n ref: 'textarea',\n onInput: this.handleChange,\n onKeydown: this.handleKeyDown,\n onClick: ($event: MouseEvent) => {\n this.$emit('click', $event);\n },\n onKeyup: ($event: KeyboardEvent) => {\n this.$emit('keyup', $event);\n },\n onFocus: ($event: FocusEvent) => {\n this.$emit('focus', $event);\n },\n onBlur: ($event: FocusEvent) => {\n this.$emit('blur', $event);\n },\n class: {\n 'prism-editor__textarea': true,\n 'prism-editor__textarea--empty': this.isEmpty,\n },\n spellCheck: 'false',\n autocapitalize: 'off',\n autocomplete: 'off',\n autocorrect: 'off',\n 'data-gramm': 'false',\n placeholder: this.placeholder,\n 'data-testid': 'textarea',\n readonly: this.readonly,\n value: this.codeData,\n });\n const preview = h('pre', {\n ref: 'pre',\n class: 'prism-editor__editor',\n 'data-testid': 'preview',\n innerHTML: this.content,\n });\n const editorContainer = h('div', { class: 'prism-editor__container' }, [textarea, preview]);\n return h('div', { class: 'prism-editor-wrapper' }, [this.lineNumbers && lineNumbers, editorContainer]);\n },\n});\n","/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n","\n\n\n","\n\n\n\n\n","export { default } from './lib/index.mjs'\n","// Main parser class\n\nimport * as utils from './common/utils.mjs'\nimport * as helpers from './helpers/index.mjs'\nimport Renderer from './renderer.mjs'\nimport ParserCore from './parser_core.mjs'\nimport ParserBlock from './parser_block.mjs'\nimport ParserInline from './parser_inline.mjs'\nimport LinkifyIt from 'linkify-it'\nimport * as mdurl from 'mdurl'\nimport punycode from 'punycode.js'\n\nimport cfg_default from './presets/default.mjs'\nimport cfg_zero from './presets/zero.mjs'\nimport cfg_commonmark from './presets/commonmark.mjs'\n\nconst config = {\n default: cfg_default,\n zero: cfg_zero,\n commonmark: cfg_commonmark\n}\n\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nconst BAD_PROTO_RE = /^(vbscript|javascript|file|data):/\nconst GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/\n\nfunction validateLink (url) {\n // url should be normalized at this point, and existing entities are decoded\n const str = url.trim().toLowerCase()\n\n return BAD_PROTO_RE.test(str) ? GOOD_DATA_RE.test(str) : true\n}\n\nconst RECODE_HOSTNAME_FOR = ['http:', 'https:', 'mailto:']\n\nfunction normalizeLink (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed))\n}\n\nfunction normalizeLinkText (url) {\n const parsed = mdurl.parse(url, true)\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname)\n } catch (er) { /**/ }\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl.decode(mdurl.format(parsed), mdurl.decode.defaultChars + '%')\n}\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.mjs) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.mjs) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.mjs) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
    `). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
    `.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with ` or ``):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
    ' +\n *                hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n *                '
    ';\n * } catch (__) {}\n * }\n *\n * return '
    ' + md.utils.escapeHtml(str) + '
    ';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt (presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options)\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {}\n presetName = 'default'\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline()\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock()\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore()\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs).\n **/\n this.renderer = new Renderer()\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs)\n * rule.\n **/\n this.linkify = new LinkifyIt()\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs).\n **/\n this.utils = utils\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers)\n\n this.options = {}\n this.configure(presetName)\n\n if (options) { this.set(options) }\n}\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options)\n return this\n}\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n const self = this\n\n if (utils.isString(presets)) {\n const presetName = presets\n presets = config[presetName]\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name') }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty') }\n\n if (presets.options) { self.set(presets.options) }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules)\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2)\n }\n })\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.enable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed)\n }\n\n return this\n}\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n let result = []\n\n if (!Array.isArray(list)) { list = [list] }\n\n ['core', 'block', 'inline'].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true))\n }, this)\n\n result = result.concat(this.inline.ruler2.disable(list, true))\n\n const missed = list.filter(function (name) { return result.indexOf(name) < 0 })\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed)\n }\n return this\n}\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n const args = [this].concat(Array.prototype.slice.call(arguments, 1))\n plugin.apply(plugin, args)\n return this\n}\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String')\n }\n\n const state = new this.core.State(src, this, env)\n\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parse(src, env), this.options, env)\n}\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n const state = new this.core.State(src, this, env)\n\n state.inlineMode = true\n this.core.process(state)\n\n return state.tokens\n}\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

    ` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {}\n\n return this.renderer.render(this.parseInline(src, env), this.options, env)\n}\n\nexport default MarkdownIt\n","// Utilities\n//\n\nimport * as mdurl from 'mdurl'\nimport * as ucmicro from 'uc.micro'\nimport { decodeHTML } from 'entities'\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\n\nfunction isString (obj) { return _class(obj) === '[object String]' }\n\nconst _hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction has (object, key) {\n return _hasOwnProperty.call(object, key)\n}\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object')\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt (src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1))\n}\n\nfunction isValidEntityCode (c) {\n /* eslint no-bitwise:0 */\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false }\n if (c === 0x0B) { return false }\n if (c >= 0x0E && c <= 0x1F) { return false }\n if (c >= 0x7F && c <= 0x9F) { return false }\n // out of range\n if (c > 0x10FFFF) { return false }\n return true\n}\n\nfunction fromCodePoint (c) {\n /* eslint no-bitwise:0 */\n if (c > 0xffff) {\n c -= 0x10000\n const surrogate1 = 0xd800 + (c >> 10)\n const surrogate2 = 0xdc00 + (c & 0x3ff)\n\n return String.fromCharCode(surrogate1, surrogate2)\n }\n return String.fromCharCode(c)\n}\n\nconst UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g\nconst ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi\nconst UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi')\n\nconst DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i\n\nfunction replaceEntityPattern (match, name) {\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n const code = name[1].toLowerCase() === 'x'\n ? parseInt(name.slice(2), 16)\n : parseInt(name.slice(1), 10)\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code)\n }\n\n return match\n }\n\n const decoded = decodeHTML(match)\n if (decoded !== match) {\n return decoded\n }\n\n return match\n}\n\n/* function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n} */\n\nfunction unescapeMd (str) {\n if (str.indexOf('\\\\') < 0) { return str }\n return str.replace(UNESCAPE_MD_RE, '$1')\n}\n\nfunction unescapeAll (str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped }\n return replaceEntityPattern(match, entity)\n })\n}\n\nconst HTML_ESCAPE_TEST_RE = /[&<>\"]/\nconst HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g\nconst HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n}\n\nfunction replaceUnsafeChar (ch) {\n return HTML_REPLACEMENTS[ch]\n}\n\nfunction escapeHtml (str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar)\n }\n return str\n}\n\nconst REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g\n\nfunction escapeRE (str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&')\n}\n\nfunction isSpace (code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true\n }\n return false\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace (code) {\n if (code >= 0x2000 && code <= 0x200A) { return true }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true\n }\n return false\n}\n\n/* eslint-disable max-len */\n\n// Currently without astral characters support.\nfunction isPunctChar (ch) {\n return ucmicro.P.test(ch) || ucmicro.S.test(ch)\n}\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct (ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference (str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ')\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß')\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase()\n}\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nconst lib = { mdurl, ucmicro }\n\nexport {\n lib,\n assign,\n isString,\n has,\n unescapeMd,\n unescapeAll,\n isValidEntityCode,\n fromCodePoint,\n escapeHtml,\n arrayReplaceAt,\n isSpace,\n isWhiteSpace,\n isMdAsciiPunct,\n isPunctChar,\n escapeRE,\n normalizeReference\n}\n","import decode from './lib/decode.mjs'\nimport encode from './lib/encode.mjs'\nimport format from './lib/format.mjs'\nimport parse from './lib/parse.mjs'\n\nexport {\n decode,\n encode,\n format,\n parse\n}\n","/* eslint-disable no-bitwise */\n\nconst decodeCache = {}\n\nfunction getDecodeCache (exclude) {\n let cache = decodeCache[exclude]\n if (cache) { return cache }\n\n cache = decodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n cache.push(ch)\n }\n\n for (let i = 0; i < exclude.length; i++) {\n const ch = exclude.charCodeAt(i)\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2)\n }\n\n return cache\n}\n\n// Decode percent-encoded string.\n//\nfunction decode (string, exclude) {\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars\n }\n\n const cache = getDecodeCache(exclude)\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {\n let result = ''\n\n for (let i = 0, l = seq.length; i < l; i += 3) {\n const b1 = parseInt(seq.slice(i + 1, i + 3), 16)\n\n if (b1 < 0x80) {\n result += cache[b1]\n continue\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n\n if ((b2 & 0xC0) === 0x80) {\n const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F)\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 3\n continue\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F)\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 6\n continue\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n const b4 = parseInt(seq.slice(i + 10, i + 12), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F)\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd'\n } else {\n chr -= 0x10000\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF))\n }\n\n i += 9\n continue\n }\n }\n\n result += '\\ufffd'\n }\n\n return result\n })\n}\n\ndecode.defaultChars = ';/?:@&=+$,#'\ndecode.componentChars = ''\n\nexport default decode\n","const encodeCache = {}\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache (exclude) {\n let cache = encodeCache[exclude]\n if (cache) { return cache }\n\n cache = encodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch)\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2))\n }\n }\n\n for (let i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i]\n }\n\n return cache\n}\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode (string, exclude, keepEscaped) {\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude\n exclude = encode.defaultChars\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true\n }\n\n const cache = getEncodeCache(exclude)\n let result = ''\n\n for (let i = 0, l = string.length; i < l; i++) {\n const code = string.charCodeAt(i)\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3)\n i += 2\n continue\n }\n }\n\n if (code < 128) {\n result += cache[code]\n continue\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n const nextCode = string.charCodeAt(i + 1)\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1])\n i++\n continue\n }\n }\n result += '%EF%BF%BD'\n continue\n }\n\n result += encodeURIComponent(string[i])\n }\n\n return result\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\"\nencode.componentChars = \"-_.!~*'()\"\n\nexport default encode\n","export default function format (url) {\n let result = ''\n\n result += url.protocol || ''\n result += url.slashes ? '//' : ''\n result += url.auth ? url.auth + '@' : ''\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']'\n } else {\n result += url.hostname || ''\n }\n\n result += url.port ? ':' + url.port : ''\n result += url.pathname || ''\n result += url.search || ''\n result += url.hash || ''\n\n return result\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\nfunction Url () {\n this.protocol = null\n this.slashes = null\n this.auth = null\n this.port = null\n this.hostname = null\n this.hash = null\n this.search = null\n this.pathname = null\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nconst protocolPattern = /^([a-z0-9.+-]+:)/i\nconst portPattern = /:[0-9]*$/\n\n// Special case for a simple path URL\n/* eslint-disable-next-line no-useless-escape */\nconst simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/\n\n// RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\nconst delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t']\n\n// RFC 2396: characters not allowed for various reasons.\nconst unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims)\n\n// Allowed by RFCs, but cause of XSS attacks. Always escape these.\nconst autoEscape = ['\\''].concat(unwise)\n// Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nconst nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape)\nconst hostEndingChars = ['/', '?', '#']\nconst hostnameMaxLen = 255\nconst hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/\nconst hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/\n// protocols that can allow \"unsafe\" and \"unwise\" chars.\n// protocols that never have a hostname.\nconst hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n}\n// protocols that always contain a // bit.\nconst slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n}\n\nfunction urlParse (url, slashesDenoteHost) {\n if (url && url instanceof Url) return url\n\n const u = new Url()\n u.parse(url, slashesDenoteHost)\n return u\n}\n\nUrl.prototype.parse = function (url, slashesDenoteHost) {\n let lowerProto, hec, slashes\n let rest = url\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim()\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n const simplePath = simplePathPattern.exec(rest)\n if (simplePath) {\n this.pathname = simplePath[1]\n if (simplePath[2]) {\n this.search = simplePath[2]\n }\n return this\n }\n }\n\n let proto = protocolPattern.exec(rest)\n if (proto) {\n proto = proto[0]\n lowerProto = proto.toLowerCase()\n this.protocol = proto\n rest = rest.substr(proto.length)\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n /* eslint-disable-next-line no-useless-escape */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//'\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2)\n this.slashes = true\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n let hostEnd = -1\n for (let i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n let auth, atSign\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@')\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd)\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign)\n rest = rest.slice(atSign + 1)\n this.auth = auth\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1\n for (let i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i])\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd-- }\n const host = rest.slice(0, hostEnd)\n rest = rest.slice(hostEnd)\n\n // pull out port.\n this.parseHost(host)\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || ''\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n const ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']'\n\n // validate a little.\n if (!ipv6Hostname) {\n const hostparts = this.hostname.split(/\\./)\n for (let i = 0, l = hostparts.length; i < l; i++) {\n const part = hostparts[i]\n if (!part) { continue }\n if (!part.match(hostnamePartPattern)) {\n let newpart = ''\n for (let j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x'\n } else {\n newpart += part[j]\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n const validParts = hostparts.slice(0, i)\n const notHost = hostparts.slice(i + 1)\n const bit = part.match(hostnamePartStart)\n if (bit) {\n validParts.push(bit[1])\n notHost.unshift(bit[2])\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest\n }\n this.hostname = validParts.join('.')\n break\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = ''\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2)\n }\n }\n\n // chop off from the tail first.\n const hash = rest.indexOf('#')\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash)\n rest = rest.slice(0, hash)\n }\n const qm = rest.indexOf('?')\n if (qm !== -1) {\n this.search = rest.substr(qm)\n rest = rest.slice(0, qm)\n }\n if (rest) { this.pathname = rest }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = ''\n }\n\n return this\n}\n\nUrl.prototype.parseHost = function (host) {\n let port = portPattern.exec(host)\n if (port) {\n port = port[0]\n if (port !== ':') {\n this.port = port.substr(1)\n }\n host = host.substr(0, host.length - port.length)\n }\n if (host) { this.hostname = host }\n}\n\nexport default urlParse\n","import Any from './properties/Any/regex.mjs';\nimport Cc from './categories/Cc/regex.mjs';\nimport Cf from './categories/Cf/regex.mjs';\nimport P from './categories/P/regex.mjs';\nimport S from './categories/S/regex.mjs';\nimport Z from './categories/Z/regex.mjs';\n\nexport { Any, Cc, Cf, P, S, Z };\n","export default /[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","export default /[\\0-\\x1F\\x7F-\\x9F]/","export default /[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","export default /[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDEAD\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDEB9\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDD44-\\uDD46\\uDDE2\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2\\uDF00-\\uDF09]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8\\uDF43-\\uDF4F\\uDFFF]|\\uD809[\\uDC70-\\uDC74]|\\uD80B[\\uDFF1\\uDFF2]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A\\uDFE2]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","export default /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u0888\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20C0\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFF\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u31EF\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC2\\uFD40-\\uFD4F\\uFDCF\\uFDFC-\\uFDFF\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD833[\\uDF50-\\uDFC3]|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDEA\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEDC-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF76\\uDF7B-\\uDFD9\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC5\\uDECE-\\uDEDB\\uDEE0-\\uDEE8\\uDEF0-\\uDEF8\\uDF00-\\uDF92\\uDF94-\\uDFCA]/","export default /[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nexport function decode(data, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(data, mode);\n }\n return decodeXML(data);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(data, options = EntityLevel.XML) {\n var _a;\n const opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = DecodingMode.Strict);\n return decode(data, opts);\n}\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nexport function encode(data, options = EntityLevel.XML) {\n const opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return escapeUTF8(data);\n if (opts.mode === EncodingMode.Attribute)\n return escapeAttribute(data);\n if (opts.mode === EncodingMode.Text)\n return escapeText(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return encodeNonAsciiHTML(data);\n }\n return encodeHTML(data);\n }\n // ASCII and Extensive are equivalent\n return encodeXML(data);\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map",null,"import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map",null,"// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map",null,"// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map",null,"// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map",null,"import htmlTrie from \"./generated/encode-html.js\";\nimport { xmlReplacer, getCodePoint } from \"./escape.js\";\nconst htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nexport function encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nexport function encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(xmlReplacer, data);\n}\nfunction encodeHTMLTrieRe(regExp, str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = regExp.exec(str)) !== null) {\n const i = match.index;\n ret += str.substring(lastIdx, i);\n const char = str.charCodeAt(i);\n let next = htmlTrie.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n const nextChar = str.charCodeAt(i + 1);\n const value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n const cp = getCodePoint(str, i);\n ret += `&#x${cp.toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map",null,"// Generated using scripts/write-encode-map.ts\nfunction restoreDiff(arr) {\n for (let i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexport default new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map",null,"export const xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? (str, index) => str.codePointAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(str) {\n let ret = \"\";\n let lastIdx = 0;\n let match;\n while ((match = xmlReplacer.exec(str)) !== null) {\n const i = match.index;\n const char = str.charCodeAt(i);\n const next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += `${str.substring(lastIdx, i)}&#x${getCodePoint(str, i).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIdx = xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIdx = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map",null,"// Just a shortcut for bulk export\n\nimport parseLinkLabel from './parse_link_label.mjs'\nimport parseLinkDestination from './parse_link_destination.mjs'\nimport parseLinkTitle from './parse_link_title.mjs'\n\nexport {\n parseLinkLabel,\n parseLinkDestination,\n parseLinkTitle\n}\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n\nexport default function parseLinkLabel (state, start, disableNested) {\n let level, found, marker, prevPos\n\n const max = state.posMax\n const oldPos = state.pos\n\n state.pos = start + 1\n level = 1\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos)\n if (marker === 0x5D /* ] */) {\n level--\n if (level === 0) {\n found = true\n break\n }\n }\n\n prevPos = state.pos\n state.md.inline.skipToken(state)\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++\n } else if (disableNested) {\n state.pos = oldPos\n return -1\n }\n }\n }\n\n let labelEnd = -1\n\n if (found) {\n labelEnd = state.pos\n }\n\n // restore old state\n state.pos = oldPos\n\n return labelEnd\n}\n","// Parse link destination\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\nexport default function parseLinkDestination (str, start, max) {\n let code\n let pos = start\n\n const result = {\n ok: false,\n pos: 0,\n str: ''\n }\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === 0x0A /* \\n */) { return result }\n if (code === 0x3C /* < */) { return result }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1\n result.str = unescapeAll(str.slice(start + 1, pos))\n result.ok = true\n return result\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2\n continue\n }\n\n pos++\n }\n\n // no closing '>'\n return result\n }\n\n // this should be ... } else { ... branch\n\n let level = 0\n while (pos < max) {\n code = str.charCodeAt(pos)\n\n if (code === 0x20) { break }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) { break }\n pos += 2\n continue\n }\n\n if (code === 0x28 /* ( */) {\n level++\n if (level > 32) { return result }\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break }\n level--\n }\n\n pos++\n }\n\n if (start === pos) { return result }\n if (level !== 0) { return result }\n\n result.str = unescapeAll(str.slice(start, pos))\n result.pos = pos\n result.ok = true\n return result\n}\n","// Parse link title\n//\n\nimport { unescapeAll } from '../common/utils.mjs'\n\n// Parse link title within `str` in [start, max] range,\n// or continue previous parsing if `prev_state` is defined (equal to result of last execution).\n//\nexport default function parseLinkTitle (str, start, max, prev_state) {\n let code\n let pos = start\n\n const state = {\n // if `true`, this is a valid link title\n ok: false,\n // if `true`, this link can be continued on the next line\n can_continue: false,\n // if `ok`, it's the position of the first character after the closing marker\n pos: 0,\n // if `ok`, it's the unescaped title\n str: '',\n // expected closing marker character code\n marker: 0\n }\n\n if (prev_state) {\n // this is a continuation of a previous parseLinkTitle call on the next line,\n // used in reference links only\n state.str = prev_state.str\n state.marker = prev_state.marker\n } else {\n if (pos >= max) { return state }\n\n let marker = str.charCodeAt(pos)\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return state }\n\n start++\n pos++\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29 }\n\n state.marker = marker\n }\n\n while (pos < max) {\n code = str.charCodeAt(pos)\n if (code === state.marker) {\n state.pos = pos + 1\n state.str += unescapeAll(str.slice(start, pos))\n state.ok = true\n return state\n } else if (code === 0x28 /* ( */ && state.marker === 0x29 /* ) */) {\n return state\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++\n }\n\n pos++\n }\n\n // no closing marker found, but this link title may continue on the next line (for references)\n state.can_continue = true\n state.str += unescapeAll(str.slice(start, pos))\n return state\n}\n","/**\n * class Renderer\n *\n * Generates HTML from parsed token stream. Each instance has independent\n * copy of rules. Those can be rewritten with ease. Also, you can add new\n * rules if you create plugin and adds new token types.\n **/\n\nimport { assign, unescapeAll, escapeHtml } from './common/utils.mjs'\n\nconst default_rules = {}\n\ndefault_rules.code_inline = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '' +\n escapeHtml(token.content) +\n ''\n}\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n'\n}\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n const info = token.info ? unescapeAll(token.info).trim() : ''\n let langName = ''\n let langAttrs = ''\n\n if (info) {\n const arr = info.split(/(\\s+)/g)\n langName = arr[0]\n langAttrs = arr.slice(2).join('')\n }\n\n let highlighted\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content)\n } else {\n highlighted = escapeHtml(token.content)\n }\n\n if (highlighted.indexOf('${highlighted}\\n`\n }\n\n return `

    ${highlighted}
    \\n`\n}\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n const token = tokens[idx]\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env)\n\n return slf.renderToken(tokens, idx, options)\n}\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
    \\n' : '
    \\n'\n}\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
    \\n' : '
    \\n') : '\\n'\n}\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content)\n}\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content\n}\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer () {\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules)\n}\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs (token) {\n let i, l, result\n\n if (!token.attrs) { return '' }\n\n result = ''\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"'\n }\n\n return result\n}\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken (tokens, idx, options) {\n const token = tokens[idx]\n let result = ''\n\n // Tight list paragraphs\n if (token.hidden) {\n return ''\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n'\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>'\n\n return result\n}\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options)\n }\n }\n\n return result\n}\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n let result = ''\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n switch (tokens[i].type) {\n case 'text':\n result += tokens[i].content\n break\n case 'image':\n result += this.renderInlineAsText(tokens[i].children, options, env)\n break\n case 'html_inline':\n case 'html_block':\n result += tokens[i].content\n break\n case 'softbreak':\n case 'hardbreak':\n result += '\\n'\n break\n default:\n // all other tokens are skipped\n }\n }\n\n return result\n}\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n let result = ''\n const rules = this.rules\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const type = tokens[i].type\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env)\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this)\n } else {\n result += this.renderToken(tokens, i, options, env)\n }\n }\n\n return result\n}\n\nexport default Renderer\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateCore from './rules_core/state_core.mjs'\n\nimport r_normalize from './rules_core/normalize.mjs'\nimport r_block from './rules_core/block.mjs'\nimport r_inline from './rules_core/inline.mjs'\nimport r_linkify from './rules_core/linkify.mjs'\nimport r_replacements from './rules_core/replacements.mjs'\nimport r_smartquotes from './rules_core/smartquotes.mjs'\nimport r_text_join from './rules_core/text_join.mjs'\n\nconst _rules = [\n ['normalize', r_normalize],\n ['block', r_block],\n ['inline', r_inline],\n ['linkify', r_linkify],\n ['replacements', r_replacements],\n ['smartquotes', r_smartquotes],\n // `text_join` finds `text_special` tokens (for escape sequences)\n // and joins them with the rest of the text\n ['text_join', r_text_join]\n]\n\n/**\n * new Core()\n **/\nfunction Core () {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n}\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n const rules = this.ruler.getRules('')\n\n for (let i = 0, l = rules.length; i < l; i++) {\n rules[i](state)\n }\n}\n\nCore.prototype.State = StateCore\n\nexport default Core\n","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n\n/**\n * new Ruler()\n **/\nfunction Ruler () {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = []\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null\n}\n\n// Helper methods, should not be used directly\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (let i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i\n }\n }\n return -1\n}\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n const self = this\n const chains = ['']\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName)\n }\n })\n })\n\n self.__cache__ = {}\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = []\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return }\n\n self.__cache__[chain].push(rule.fn)\n })\n })\n}\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n const index = this.__find__(name)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name) }\n\n this.__rules__[index].fn = fn\n this.__rules__[index].alt = opt.alt || []\n this.__cache__ = null\n}\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n const index = this.__find__(beforeName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName) }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n const index = this.__find__(afterName)\n const opt = options || {}\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName) }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n const opt = options || {}\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn,\n alt: opt.alt || []\n })\n\n this.__cache__ = null\n}\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and enable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = true\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false })\n\n this.enable(list, ignoreInvalid)\n}\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [list] }\n\n const result = []\n\n // Search by name and disable\n list.forEach(function (name) {\n const idx = this.__find__(name)\n\n if (idx < 0) {\n if (ignoreInvalid) { return }\n throw new Error('Rules manager: invalid rule name ' + name)\n }\n this.__rules__[idx].enabled = false\n result.push(name)\n }, this)\n\n this.__cache__ = null\n return result\n}\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__()\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || []\n}\n\nexport default Ruler\n","// Core state object\n//\n\nimport Token from '../token.mjs'\n\nfunction StateCore (src, md, env) {\n this.src = src\n this.env = env\n this.tokens = []\n this.inlineMode = false\n this.md = md // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token\n\nexport default StateCore\n","// Token class\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token (type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = ''\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = ''\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = ''\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false\n}\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex (name) {\n if (!this.attrs) { return -1 }\n\n const attrs = this.attrs\n\n for (let i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i }\n }\n return -1\n}\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush (attrData) {\n if (this.attrs) {\n this.attrs.push(attrData)\n } else {\n this.attrs = [attrData]\n }\n}\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet (name, value) {\n const idx = this.attrIndex(name)\n const attrData = [name, value]\n\n if (idx < 0) {\n this.attrPush(attrData)\n } else {\n this.attrs[idx] = attrData\n }\n}\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet (name) {\n const idx = this.attrIndex(name)\n let value = null\n if (idx >= 0) {\n value = this.attrs[idx][1]\n }\n return value\n}\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin (name, value) {\n const idx = this.attrIndex(name)\n\n if (idx < 0) {\n this.attrPush([name, value])\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value\n }\n}\n\nexport default Token\n","// Normalize input string\n\n// https://spec.commonmark.org/0.29/#line-ending\nconst NEWLINES_RE = /\\r\\n?|\\n/g\nconst NULL_RE = /\\0/g\n\nexport default function normalize (state) {\n let str\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n')\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD')\n\n state.src = str\n}\n","export default function block (state) {\n let token\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0)\n token.content = state.src\n token.map = [0, 1]\n token.children = []\n state.tokens.push(token)\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens)\n }\n}\n","export default function inline (state) {\n const tokens = state.tokens\n\n // Parse inlines\n for (let i = 0, l = tokens.length; i < l; i++) {\n const tok = tokens[i]\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children)\n }\n }\n}\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n\nimport { arrayReplaceAt } from '../common/utils.mjs'\n\nfunction isLinkOpen (str) {\n return /^\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nexport default function linkify (state) {\n const blockTokens = state.tokens\n\n if (!state.md.options.linkify) { return }\n\n for (let j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue\n }\n\n let tokens = blockTokens[j].children\n\n let htmlLinkLevel = 0\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (let i = tokens.length - 1; i >= 0; i--) {\n const currentToken = tokens[i]\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--\n }\n continue\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++\n }\n }\n if (htmlLinkLevel > 0) { continue }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n const text = currentToken.content\n let links = state.md.linkify.match(text)\n\n // Now split string to nodes\n const nodes = []\n let level = currentToken.level\n let lastPos = 0\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http://example.com/\n if (links.length > 0 &&\n links[0].index === 0 &&\n i > 0 &&\n tokens[i - 1].type === 'text_special') {\n links = links.slice(1)\n }\n\n for (let ln = 0; ln < links.length; ln++) {\n const url = links[ln].url\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { continue }\n\n let urlText = links[ln].text\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '')\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '')\n } else {\n urlText = state.md.normalizeLinkText(urlText)\n }\n\n const pos = links[ln].index\n\n if (pos > lastPos) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos, pos)\n token.level = level\n nodes.push(token)\n }\n\n const token_o = new state.Token('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.level = level++\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n nodes.push(token_o)\n\n const token_t = new state.Token('text', '', 0)\n token_t.content = urlText\n token_t.level = level\n nodes.push(token_t)\n\n const token_c = new state.Token('link_close', 'a', -1)\n token_c.level = --level\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n nodes.push(token_c)\n\n lastPos = links[ln].lastIndex\n }\n if (lastPos < text.length) {\n const token = new state.Token('text', '', 0)\n token.content = text.slice(lastPos)\n token.level = level\n nodes.push(token)\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes)\n }\n }\n }\n}\n","// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nconst RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nconst SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i\n\nconst SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig\nconst SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n}\n\nfunction replaceFn (match, name) {\n return SCOPED_ABBR[name.toLowerCase()]\n}\n\nfunction replace_scoped (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn)\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nfunction replace_rare (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013')\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nexport default function replace (state) {\n let blkIdx\n\n if (!state.md.options.typographer) { return }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') { continue }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children)\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children)\n }\n }\n}\n","// Convert straight quotation marks to typographic ones\n//\n\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nconst QUOTE_TEST_RE = /['\"]/\nconst QUOTE_RE = /['\"]/g\nconst APOSTROPHE = '\\u2019' /* ’ */\n\nfunction replaceAt (str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1)\n}\n\nfunction process_inlines (tokens, state) {\n let j\n\n const stack = []\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]\n\n const thisLevel = tokens[i].level\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break }\n }\n stack.length = j + 1\n\n if (token.type !== 'text') { continue }\n\n let text = token.content\n let pos = 0\n let max = text.length\n\n /* eslint no-labels:0,block-scoped-var:0 */\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos\n const t = QUOTE_RE.exec(text)\n if (!t) { break }\n\n let canOpen = true\n let canClose = true\n pos = t.index + 1\n const isSingle = (t[0] === \"'\")\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n let lastChar = 0x20\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1)\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // lastChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1)\n break\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n let nextChar = 0x20\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos)\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break // nextChar defaults to 0x20\n if (!tokens[j].content) continue // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0)\n break\n }\n }\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n if (isNextWhiteSpace) {\n canOpen = false\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar\n canClose = isNextPunctChar\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n continue\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n let item = stack[j]\n if (stack[j].level < thisLevel) { break }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j]\n\n let openQuote\n let closeQuote\n if (isSingle) {\n openQuote = state.md.options.quotes[2]\n closeQuote = state.md.options.quotes[3]\n } else {\n openQuote = state.md.options.quotes[0]\n closeQuote = state.md.options.quotes[1]\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote)\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote)\n\n pos += closeQuote.length - 1\n if (item.token === i) { pos += openQuote.length - 1 }\n\n text = token.content\n max = text.length\n\n stack.length = j\n continue OUTER\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n })\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE)\n }\n }\n }\n}\n\nexport default function smartquotes (state) {\n /* eslint max-depth:0 */\n if (!state.md.options.typographer) { return }\n\n for (let blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue\n }\n\n process_inlines(state.tokens[blkIdx].children, state)\n }\n}\n","// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n\nexport default function text_join (state) {\n let curr, last\n const blockTokens = state.tokens\n const l = blockTokens.length\n\n for (let j = 0; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue\n\n const tokens = blockTokens[j].children\n const max = tokens.length\n\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text'\n }\n }\n\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n }\n}\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateBlock from './rules_block/state_block.mjs'\n\nimport r_table from './rules_block/table.mjs'\nimport r_code from './rules_block/code.mjs'\nimport r_fence from './rules_block/fence.mjs'\nimport r_blockquote from './rules_block/blockquote.mjs'\nimport r_hr from './rules_block/hr.mjs'\nimport r_list from './rules_block/list.mjs'\nimport r_reference from './rules_block/reference.mjs'\nimport r_html_block from './rules_block/html_block.mjs'\nimport r_heading from './rules_block/heading.mjs'\nimport r_lheading from './rules_block/lheading.mjs'\nimport r_paragraph from './rules_block/paragraph.mjs'\n\nconst _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n ['table', r_table, ['paragraph', 'reference']],\n ['code', r_code],\n ['fence', r_fence, ['paragraph', 'reference', 'blockquote', 'list']],\n ['blockquote', r_blockquote, ['paragraph', 'reference', 'blockquote', 'list']],\n ['hr', r_hr, ['paragraph', 'reference', 'blockquote', 'list']],\n ['list', r_list, ['paragraph', 'reference', 'blockquote']],\n ['reference', r_reference],\n ['html_block', r_html_block, ['paragraph', 'reference', 'blockquote']],\n ['heading', r_heading, ['paragraph', 'reference', 'blockquote']],\n ['lheading', r_lheading],\n ['paragraph', r_paragraph]\n]\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock () {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() })\n }\n}\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n let line = startLine\n let hasEmptyLines = false\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line)\n if (line >= endLine) { break }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine\n break\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n const prevLine = state.line\n let ok = false\n\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false)\n if (ok) {\n if (prevLine >= state.line) {\n throw new Error(\"block rule didn't increment state.line\")\n }\n break\n }\n }\n\n // this can only happen if user disables paragraph rule\n if (!ok) throw new Error('none of the block rules matched')\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true\n }\n\n line = state.line\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true\n line++\n state.line = line\n }\n }\n}\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n if (!src) { return }\n\n const state = new this.State(src, md, env, outTokens)\n\n this.tokenize(state, state.line, state.lineMax)\n}\n\nParserBlock.prototype.State = StateBlock\n\nexport default ParserBlock\n","// Parser state class\n\nimport Token from '../token.mjs'\nimport { isSpace } from '../common/utils.mjs'\n\nfunction StateBlock (src, md, env, tokens) {\n this.src = src\n\n // link to parser instance\n this.md = md\n\n this.env = env\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens\n\n this.bMarks = [] // line begin offsets for fast jumps\n this.eMarks = [] // line end offsets for fast jumps\n this.tShift = [] // offsets of the first non-space characters (tabs not expanded)\n this.sCount = [] // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = []\n\n // block parser variables\n\n // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.blkIndent = 0\n this.line = 0 // line index in src\n this.lineMax = 0 // lines count\n this.tight = false // loose/tight mode for lists\n this.ddIndent = -1 // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1 // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root'\n\n this.level = 0\n\n // Create caches\n // Generate markers.\n const s = this.src\n\n for (let start = 0, pos = 0, indent = 0, offset = 0, len = s.length, indent_found = false; pos < len; pos++) {\n const ch = s.charCodeAt(pos)\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++\n\n if (ch === 0x09) {\n offset += 4 - offset % 4\n } else {\n offset++\n }\n continue\n } else {\n indent_found = true\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++ }\n this.bMarks.push(start)\n this.eMarks.push(pos)\n this.tShift.push(indent)\n this.sCount.push(offset)\n this.bsCount.push(0)\n\n indent_found = false\n indent = 0\n offset = 0\n start = pos + 1\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length)\n this.eMarks.push(s.length)\n this.tShift.push(0)\n this.sCount.push(0)\n this.bsCount.push(0)\n\n this.lineMax = this.bMarks.length - 1 // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n const token = new Token(type, tag, nesting)\n token.block = true\n\n if (nesting < 0) this.level-- // closing tag\n token.level = this.level\n if (nesting > 0) this.level++ // opening tag\n\n this.tokens.push(token)\n return token\n}\n\nStateBlock.prototype.isEmpty = function isEmpty (line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line]\n}\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines (from) {\n for (let max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break\n }\n }\n return from\n}\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces (pos) {\n for (let max = this.src.length; pos < max; pos++) {\n const ch = this.src.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n }\n return pos\n}\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack (pos, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1 }\n }\n return pos\n}\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars (pos, code) {\n for (let max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break }\n }\n return pos\n}\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack (pos, code, min) {\n if (pos <= min) { return pos }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1 }\n }\n return pos\n}\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines (begin, end, indent, keepLastLF) {\n if (begin >= end) {\n return ''\n }\n\n const queue = new Array(end - begin)\n\n for (let i = 0, line = begin; line < end; line++, i++) {\n let lineIndent = 0\n const lineStart = this.bMarks[line]\n let first = lineStart\n let last\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1\n } else {\n last = this.eMarks[line]\n }\n\n while (first < last && lineIndent < indent) {\n const ch = this.src.charCodeAt(first)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4\n } else {\n lineIndent++\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++\n } else {\n break\n }\n\n first++\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last)\n } else {\n queue[i] = this.src.slice(first, last)\n }\n }\n\n return queue.join('')\n}\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token\n\nexport default StateBlock\n","// GFM table, https://github.github.com/gfm/#tables-extension-\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Limit the amount of empty autocompleted cells in a table,\n// see https://github.com/markdown-it/markdown-it/issues/1000,\n//\n// Both pulldown-cmark and commonmark-hs limit the number of cells this way to ~200k.\n// We set it to 65k, which can expand user input by a factor of x370\n// (256x256 square is 1.8kB expanded into 650kB).\nconst MAX_AUTOCOMPLETED_CELLS = 0x10000\n\nfunction getLine (state, line) {\n const pos = state.bMarks[line] + state.tShift[line]\n const max = state.eMarks[line]\n\n return state.src.slice(pos, max)\n}\n\nfunction escapedSplit (str) {\n const result = []\n const max = str.length\n\n let pos = 0\n let ch = str.charCodeAt(pos)\n let isEscaped = false\n let lastPos = 0\n let current = ''\n\n while (pos < max) {\n if (ch === 0x7c/* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos))\n current = ''\n lastPos = pos + 1\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1)\n lastPos = pos\n }\n }\n\n isEscaped = (ch === 0x5c/* \\ */)\n pos++\n\n ch = str.charCodeAt(pos)\n }\n\n result.push(current + str.substring(lastPos))\n\n return result\n}\n\nexport default function table (state, startLine, endLine, silent) {\n // should have at least two lines\n if (startLine + 2 > endLine) { return false }\n\n let nextLine = startLine + 1\n\n if (state.sCount[nextLine] < state.blkIndent) { return false }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const firstCh = state.src.charCodeAt(pos++)\n if (firstCh !== 0x7C/* | */ && firstCh !== 0x2D/* - */ && firstCh !== 0x3A/* : */) { return false }\n\n if (pos >= state.eMarks[nextLine]) { return false }\n\n const secondCh = state.src.charCodeAt(pos++)\n if (secondCh !== 0x7C/* | */ && secondCh !== 0x2D/* - */ && secondCh !== 0x3A/* : */ && !isSpace(secondCh)) {\n return false\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D/* - */ && isSpace(secondCh)) { return false }\n\n while (pos < state.eMarks[nextLine]) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false }\n\n pos++\n }\n\n let lineText = getLine(state, startLine + 1)\n let columns = lineText.split('|')\n const aligns = []\n for (let i = 0; i < columns.length; i++) {\n const t = columns[i].trim()\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue\n } else {\n return false\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right')\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left')\n } else {\n aligns.push('')\n }\n }\n\n lineText = getLine(state, startLine).trim()\n if (lineText.indexOf('|') === -1) { return false }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n const columnCount = columns.length\n if (columnCount === 0 || columnCount !== aligns.length) { return false }\n\n if (silent) { return true }\n\n const oldParentType = state.parentType\n state.parentType = 'table'\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const token_to = state.push('table_open', 'table', 1)\n const tableLines = [startLine, 0]\n token_to.map = tableLines\n\n const token_tho = state.push('thead_open', 'thead', 1)\n token_tho.map = [startLine, startLine + 1]\n\n const token_htro = state.push('tr_open', 'tr', 1)\n token_htro.map = [startLine, startLine + 1]\n\n for (let i = 0; i < columns.length; i++) {\n const token_ho = state.push('th_open', 'th', 1)\n if (aligns[i]) {\n token_ho.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i].trim()\n token_il.children = []\n\n state.push('th_close', 'th', -1)\n }\n\n state.push('tr_close', 'tr', -1)\n state.push('thead_close', 'thead', -1)\n\n let tbodyLines\n let autocompletedCells = 0\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) { break }\n lineText = getLine(state, nextLine).trim()\n if (!lineText) { break }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n columns = escapedSplit(lineText)\n if (columns.length && columns[0] === '') columns.shift()\n if (columns.length && columns[columns.length - 1] === '') columns.pop()\n\n // note: autocomplete count can be negative if user specifies more columns than header,\n // but that does not affect intended use (which is limiting expansion)\n autocompletedCells += columnCount - columns.length\n if (autocompletedCells > MAX_AUTOCOMPLETED_CELLS) { break }\n\n if (nextLine === startLine + 2) {\n const token_tbo = state.push('tbody_open', 'tbody', 1)\n token_tbo.map = tbodyLines = [startLine + 2, 0]\n }\n\n const token_tro = state.push('tr_open', 'tr', 1)\n token_tro.map = [nextLine, nextLine + 1]\n\n for (let i = 0; i < columnCount; i++) {\n const token_tdo = state.push('td_open', 'td', 1)\n if (aligns[i]) {\n token_tdo.attrs = [['style', 'text-align:' + aligns[i]]]\n }\n\n const token_il = state.push('inline', '', 0)\n token_il.content = columns[i] ? columns[i].trim() : ''\n token_il.children = []\n\n state.push('td_close', 'td', -1)\n }\n state.push('tr_close', 'tr', -1)\n }\n\n if (tbodyLines) {\n state.push('tbody_close', 'tbody', -1)\n tbodyLines[1] = nextLine\n }\n\n state.push('table_close', 'table', -1)\n tableLines[1] = nextLine\n\n state.parentType = oldParentType\n state.line = nextLine\n return true\n}\n","// Code block (4 spaces padded)\n\nexport default function code (state, startLine, endLine/*, silent */) {\n if (state.sCount[startLine] - state.blkIndent < 4) { return false }\n\n let nextLine = startLine + 1\n let last = nextLine\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++\n continue\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++\n last = nextLine\n continue\n }\n break\n }\n\n state.line = last\n\n const token = state.push('code_block', 'code', 0)\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n'\n token.map = [startLine, state.line]\n\n return true\n}\n","// fences (``` lang, ~~~ lang)\n\nexport default function fence (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (pos + 3 > max) { return false }\n\n const marker = state.src.charCodeAt(pos)\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false\n }\n\n // scan marker length\n let mem = pos\n pos = state.skipChars(pos, marker)\n\n let len = pos - mem\n\n if (len < 3) { return false }\n\n const markup = state.src.slice(mem, pos)\n const params = state.src.slice(pos, max)\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true }\n\n // search end of block\n let nextLine = startLine\n let haveEndMarker = false\n\n for (;;) {\n nextLine++\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue\n }\n\n pos = state.skipChars(pos, marker)\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos)\n\n if (pos < max) { continue }\n\n haveEndMarker = true\n // found!\n break\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine]\n\n state.line = nextLine + (haveEndMarker ? 1 : 0)\n\n const token = state.push('fence', 'code', 0)\n token.info = params\n token.content = state.getLines(startLine + 1, nextLine, len, true)\n token.markup = markup\n token.map = [startLine, state.line]\n\n return true\n}\n","// Block quotes\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function blockquote (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n const oldLineMax = state.lineMax\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos) !== 0x3E/* > */) { return false }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true }\n\n const oldBMarks = []\n const oldBSCount = []\n const oldSCount = []\n const oldTShift = []\n\n const terminatorRules = state.md.block.ruler.getRules('blockquote')\n\n const oldParentType = state.parentType\n state.parentType = 'blockquote'\n let lastLineEmpty = false\n let nextLine\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n const isOutdented = state.sCount[nextLine] < state.blkIndent\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n let initial = state.sCount[nextLine] + 1\n let spaceAfterMarker\n let adjustTab\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++\n initial++\n adjustTab = false\n spaceAfterMarker = true\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true\n\n if ((state.bsCount[nextLine] + initial) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++\n initial++\n adjustTab = false\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true\n }\n } else {\n spaceAfterMarker = false\n }\n\n let offset = initial\n oldBMarks.push(state.bMarks[nextLine])\n state.bMarks[nextLine] = pos\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4\n } else {\n offset++\n }\n } else {\n break\n }\n\n pos++\n }\n\n lastLineEmpty = pos >= max\n\n oldBSCount.push(state.bsCount[nextLine])\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0)\n\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] = offset - initial\n\n oldTShift.push(state.tShift[nextLine])\n state.tShift[nextLine] = pos - state.bMarks[nextLine]\n continue\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break }\n\n // Case 3: another tag found.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n state.sCount[nextLine] -= state.blkIndent\n }\n\n break\n }\n\n oldBMarks.push(state.bMarks[nextLine])\n oldBSCount.push(state.bsCount[nextLine])\n oldTShift.push(state.tShift[nextLine])\n oldSCount.push(state.sCount[nextLine])\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1\n }\n\n const oldIndent = state.blkIndent\n state.blkIndent = 0\n\n const token_o = state.push('blockquote_open', 'blockquote', 1)\n token_o.markup = '>'\n const lines = [startLine, 0]\n token_o.map = lines\n\n state.md.block.tokenize(state, startLine, nextLine)\n\n const token_c = state.push('blockquote_close', 'blockquote', -1)\n token_c.markup = '>'\n\n state.lineMax = oldLineMax\n state.parentType = oldParentType\n lines[1] = state.line\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (let i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i]\n state.tShift[i + startLine] = oldTShift[i]\n state.sCount[i + startLine] = oldSCount[i]\n state.bsCount[i + startLine] = oldBSCount[i]\n }\n state.blkIndent = oldIndent\n\n return true\n}\n","// Horizontal rule\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function hr (state, startLine, endLine, silent) {\n const max = state.eMarks[startLine]\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n const marker = state.src.charCodeAt(pos++)\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n let cnt = 1\n while (pos < max) {\n const ch = state.src.charCodeAt(pos++)\n if (ch !== marker && !isSpace(ch)) { return false }\n if (ch === marker) { cnt++ }\n }\n\n if (cnt < 3) { return false }\n\n if (silent) { return true }\n\n state.line = startLine + 1\n\n const token = state.push('hr', 'hr', 0)\n token.map = [startLine, state.line]\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker))\n\n return true\n}\n","// Lists\n\nimport { isSpace } from '../common/utils.mjs'\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker (state, startLine) {\n const max = state.eMarks[startLine]\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n\n const marker = state.src.charCodeAt(pos++)\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1\n }\n\n if (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1\n }\n }\n\n return pos\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker (state, startLine) {\n const start = state.bMarks[startLine] + state.tShift[startLine]\n const max = state.eMarks[startLine]\n let pos = start\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1 }\n\n let ch = state.src.charCodeAt(pos++)\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1 }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1 }\n\n ch = state.src.charCodeAt(pos++)\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1 }\n\n continue\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break\n }\n\n return -1\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos)\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1\n }\n }\n return pos\n}\n\nfunction markTightParagraphs (state, idx) {\n const level = state.level + 2\n\n for (let i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true\n state.tokens[i].hidden = true\n i += 2\n }\n }\n}\n\nexport default function list (state, startLine, endLine, silent) {\n let max, pos, start, token\n let nextLine = startLine\n let tight = true\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[nextLine] - state.listIndent >= 4 &&\n state.sCount[nextLine] < state.blkIndent) {\n return false\n }\n\n let isTerminatingParagraph = false\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n isTerminatingParagraph = true\n }\n }\n\n // Detect list type and position after marker\n let isOrdered\n let markerValue\n let posAfterMarker\n if ((posAfterMarker = skipOrderedListMarker(state, nextLine)) >= 0) {\n isOrdered = true\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n markerValue = Number(state.src.slice(start, posAfterMarker - 1))\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false\n } else if ((posAfterMarker = skipBulletListMarker(state, nextLine)) >= 0) {\n isOrdered = false\n } else {\n return false\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[nextLine]) return false\n }\n\n // For validation mode we can terminate immediately\n if (silent) { return true }\n\n // We should terminate list on style change. Remember first one to compare.\n const markerCharCode = state.src.charCodeAt(posAfterMarker - 1)\n\n // Start list\n const listTokIdx = state.tokens.length\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1)\n if (markerValue !== 1) {\n token.attrs = [['start', markerValue]]\n }\n } else {\n token = state.push('bullet_list_open', 'ul', 1)\n }\n\n const listLines = [nextLine, 0]\n token.map = listLines\n token.markup = String.fromCharCode(markerCharCode)\n\n //\n // Iterate list items\n //\n\n let prevEmptyEnd = false\n const terminatorRules = state.md.block.ruler.getRules('list')\n\n const oldParentType = state.parentType\n state.parentType = 'list'\n\n while (nextLine < endLine) {\n pos = posAfterMarker\n max = state.eMarks[nextLine]\n\n const initial = state.sCount[nextLine] + posAfterMarker - (state.bMarks[nextLine] + state.tShift[nextLine])\n let offset = initial\n\n while (pos < max) {\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4\n } else if (ch === 0x20) {\n offset++\n } else {\n break\n }\n\n pos++\n }\n\n const contentStart = pos\n let indentAfterMarker\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1\n } else {\n indentAfterMarker = offset - initial\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1 }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n const indent = initial + indentAfterMarker\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1)\n token.markup = String.fromCharCode(markerCharCode)\n const itemLines = [nextLine, 0]\n token.map = itemLines\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1)\n }\n\n // change current state, then restore it after parser subcall\n const oldTight = state.tight\n const oldTShift = state.tShift[nextLine]\n const oldSCount = state.sCount[nextLine]\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n const oldListIndent = state.listIndent\n state.listIndent = state.blkIndent\n state.blkIndent = indent\n\n state.tight = true\n state.tShift[nextLine] = contentStart - state.bMarks[nextLine]\n state.sCount[nextLine] = offset\n\n if (contentStart >= max && state.isEmpty(nextLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine)\n } else {\n state.md.block.tokenize(state, nextLine, endLine, true)\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - nextLine) > 1 && state.isEmpty(state.line - 1)\n\n state.blkIndent = state.listIndent\n state.listIndent = oldListIndent\n state.tShift[nextLine] = oldTShift\n state.sCount[nextLine] = oldSCount\n state.tight = oldTight\n\n token = state.push('list_item_close', 'li', -1)\n token.markup = String.fromCharCode(markerCharCode)\n\n nextLine = state.line\n itemLines[1] = nextLine\n\n if (nextLine >= endLine) { break }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break }\n\n // fail if terminating block found\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n start = state.bMarks[nextLine] + state.tShift[nextLine]\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine)\n if (posAfterMarker < 0) { break }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1)\n } else {\n token = state.push('bullet_list_close', 'ul', -1)\n }\n token.markup = String.fromCharCode(markerCharCode)\n\n listLines[1] = nextLine\n state.line = nextLine\n\n state.parentType = oldParentType\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx)\n }\n\n return true\n}\n","import { isSpace, normalizeReference } from '../common/utils.mjs'\n\nexport default function reference (state, startLine, _endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n let nextLine = startLine + 1\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false }\n\n function getNextLine (nextLine) {\n const endLine = state.lineMax\n\n if (nextLine >= endLine || state.isEmpty(nextLine)) {\n // empty line or end of input\n return null\n }\n\n let isContinuation = false\n\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { isContinuation = true }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { isContinuation = true }\n\n if (!isContinuation) {\n const terminatorRules = state.md.block.ruler.getRules('reference')\n const oldParentType = state.parentType\n state.parentType = 'reference'\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n\n state.parentType = oldParentType\n if (terminate) {\n // terminated by another block\n return null\n }\n }\n\n const pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n // max + 1 explicitly includes the newline\n return state.src.slice(pos, max + 1)\n }\n\n let str = state.src.slice(pos, max + 1)\n\n max = str.length\n let labelEnd = -1\n\n for (pos = 1; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x5B /* [ */) {\n return false\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos\n break\n } else if (ch === 0x0A /* \\n */) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (ch === 0x5C /* \\ */) {\n pos++\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n const destRes = state.md.helpers.parseLinkDestination(str, pos, max)\n if (!destRes.ok) { return false }\n\n const href = state.md.normalizeLink(destRes.str)\n if (!state.md.validateLink(href)) { return false }\n\n pos = destRes.pos\n\n // save cursor state, we could require to rollback later\n const destEndPos = pos\n const destEndLineNo = nextLine\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n const start = pos\n for (; pos < max; pos++) {\n const ch = str.charCodeAt(pos)\n if (ch === 0x0A) {\n const lineContent = getNextLine(nextLine)\n if (lineContent !== null) {\n str += lineContent\n max = str.length\n nextLine++\n }\n } else if (isSpace(ch)) {\n /* eslint no-empty:0 */\n } else {\n break\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n let titleRes = state.md.helpers.parseLinkTitle(str, pos, max)\n while (titleRes.can_continue) {\n const lineContent = getNextLine(nextLine)\n if (lineContent === null) break\n str += lineContent\n pos = max\n max = str.length\n nextLine++\n titleRes = state.md.helpers.parseLinkTitle(str, pos, max, titleRes)\n }\n let title\n\n if (pos < max && start !== pos && titleRes.ok) {\n title = titleRes.str\n pos = titleRes.pos\n } else {\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = ''\n pos = destEndPos\n nextLine = destEndLineNo\n while (pos < max) {\n const ch = str.charCodeAt(pos)\n if (!isSpace(ch)) { break }\n pos++\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false\n }\n\n const label = normalizeReference(str.slice(1, labelEnd))\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /* istanbul ignore if */\n if (silent) { return true }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {}\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title, href }\n }\n\n state.line = nextLine\n return true\n}\n","// HTML block\n\nimport block_names from '../common/html_blocks.mjs'\nimport { HTML_OPEN_CLOSE_TAG_RE } from '../common/html_re.mjs'\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nconst HTML_SEQUENCES = [\n [/^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true],\n [/^/, true],\n [/^<\\?/, /\\?>/, true],\n [/^/, true],\n [/^/, true],\n [new RegExp('^|$))', 'i'), /^$/, true],\n [new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false]\n]\n\nexport default function html_block (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n if (!state.md.options.html) { return false }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n let lineText = state.src.slice(pos, max)\n\n let i = 0\n for (; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break }\n }\n if (i === HTML_SEQUENCES.length) { return false }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2]\n }\n\n let nextLine = startLine + 1\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine]\n max = state.eMarks[nextLine]\n lineText = state.src.slice(pos, max)\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++ }\n break\n }\n }\n }\n\n state.line = nextLine\n\n const token = state.push('html_block', '', 0)\n token.map = [startLine, nextLine]\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true)\n\n return true\n}\n","// List of valid html blocks names, according to commonmark spec\n// https://spec.commonmark.org/0.30/#html-blocks\n\nexport default [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n","// Regexps to match html elements\n\nconst attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*'\n\nconst unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+'\nconst single_quoted = \"'[^']*'\"\nconst double_quoted = '\"[^\"]*\"'\n\nconst attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')'\n\nconst attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)'\n\nconst open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>'\n\nconst close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>'\nconst comment = ''\nconst processing = '<[?][\\\\s\\\\S]*?[?]>'\nconst declaration = ']*>'\nconst cdata = ''\n\nconst HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')')\nconst HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')')\n\nexport { HTML_TAG_RE, HTML_OPEN_CLOSE_TAG_RE }\n","// heading (#, ##, ...)\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function heading (state, startLine, endLine, silent) {\n let pos = state.bMarks[startLine] + state.tShift[startLine]\n let max = state.eMarks[startLine]\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n let ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x23/* # */ || pos >= max) { return false }\n\n // count heading level\n let level = 1\n ch = state.src.charCodeAt(++pos)\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++\n ch = state.src.charCodeAt(++pos)\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false }\n\n if (silent) { return true }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos)\n const tmp = state.skipCharsBack(max, 0x23, pos) // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp\n }\n\n state.line = startLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = '########'.slice(0, level)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = state.src.slice(pos, max).trim()\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = '########'.slice(0, level)\n\n return true\n}\n","// lheading (---, ===)\n\nexport default function lheading (state, startLine, endLine/*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n const oldParentType = state.parentType\n state.parentType = 'paragraph' // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0\n let marker\n let nextLine = startLine + 1\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos)\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker)\n pos = state.skipSpaces(pos)\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2)\n break\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = String.fromCharCode(marker)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line - 1]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = String.fromCharCode(marker)\n\n state.parentType = oldParentType\n\n return true\n}\n","// Paragraph\n\nexport default function paragraph (state, startLine, endLine) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n const oldParentType = state.parentType\n let nextLine = startLine + 1\n state.parentType = 'paragraph'\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine\n\n const token_o = state.push('paragraph_open', 'p', 1)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line]\n token_i.children = []\n\n state.push('paragraph_close', 'p', -1)\n\n state.parentType = oldParentType\n\n return true\n}\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n\nimport Ruler from './ruler.mjs'\nimport StateInline from './rules_inline/state_inline.mjs'\n\nimport r_text from './rules_inline/text.mjs'\nimport r_linkify from './rules_inline/linkify.mjs'\nimport r_newline from './rules_inline/newline.mjs'\nimport r_escape from './rules_inline/escape.mjs'\nimport r_backticks from './rules_inline/backticks.mjs'\nimport r_strikethrough from './rules_inline/strikethrough.mjs'\nimport r_emphasis from './rules_inline/emphasis.mjs'\nimport r_link from './rules_inline/link.mjs'\nimport r_image from './rules_inline/image.mjs'\nimport r_autolink from './rules_inline/autolink.mjs'\nimport r_html_inline from './rules_inline/html_inline.mjs'\nimport r_entity from './rules_inline/entity.mjs'\n\nimport r_balance_pairs from './rules_inline/balance_pairs.mjs'\nimport r_fragments_join from './rules_inline/fragments_join.mjs'\n\n// Parser rules\n\nconst _rules = [\n ['text', r_text],\n ['linkify', r_linkify],\n ['newline', r_newline],\n ['escape', r_escape],\n ['backticks', r_backticks],\n ['strikethrough', r_strikethrough.tokenize],\n ['emphasis', r_emphasis.tokenize],\n ['link', r_link],\n ['image', r_image],\n ['autolink', r_autolink],\n ['html_inline', r_html_inline],\n ['entity', r_entity]\n]\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nconst _rules2 = [\n ['balance_pairs', r_balance_pairs],\n ['strikethrough', r_strikethrough.postProcess],\n ['emphasis', r_emphasis.postProcess],\n // rules for pairs separate '**' into its own text tokens, which may be left unused,\n // rule below merges unused segments back with the rest of the text\n ['fragments_join', r_fragments_join]\n]\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline () {\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler()\n\n for (let i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1])\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler()\n\n for (let i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1])\n }\n}\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n const pos = state.pos\n const rules = this.ruler.getRules('')\n const len = rules.length\n const maxNesting = state.md.options.maxNesting\n const cache = state.cache\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos]\n return\n }\n\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++\n ok = rules[i](state, true)\n state.level--\n\n if (ok) {\n if (pos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax\n }\n\n if (!ok) { state.pos++ }\n cache[pos] = state.pos\n}\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n const rules = this.ruler.getRules('')\n const len = rules.length\n const end = state.posMax\n const maxNesting = state.md.options.maxNesting\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n const prevPos = state.pos\n let ok = false\n\n if (state.level < maxNesting) {\n for (let i = 0; i < len; i++) {\n ok = rules[i](state, false)\n if (ok) {\n if (prevPos >= state.pos) { throw new Error(\"inline rule didn't increment state.pos\") }\n break\n }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break }\n continue\n }\n\n state.pending += state.src[state.pos++]\n }\n\n if (state.pending) {\n state.pushPending()\n }\n}\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n const state = new this.State(str, md, env, outTokens)\n\n this.tokenize(state)\n\n const rules = this.ruler2.getRules('')\n const len = rules.length\n\n for (let i = 0; i < len; i++) {\n rules[i](state)\n }\n}\n\nParserInline.prototype.State = StateInline\n\nexport default ParserInline\n","// Inline parser state\n\nimport Token from '../token.mjs'\nimport { isWhiteSpace, isPunctChar, isMdAsciiPunct } from '../common/utils.mjs'\n\nfunction StateInline (src, md, env, outTokens) {\n this.src = src\n this.env = env\n this.md = md\n this.tokens = outTokens\n this.tokens_meta = Array(outTokens.length)\n\n this.pos = 0\n this.posMax = this.src.length\n this.level = 0\n this.pending = ''\n this.pendingLevel = 0\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {}\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = []\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = []\n\n // backtick length => last seen position\n this.backticks = {}\n this.backticksScanned = false\n\n // Counter used to disable inline linkify-it execution\n // inside and markdown links\n this.linkLevel = 0\n}\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n const token = new Token('text', '', 0)\n token.content = this.pending\n token.level = this.pendingLevel\n this.tokens.push(token)\n this.pending = ''\n return token\n}\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending()\n }\n\n const token = new Token(type, tag, nesting)\n let token_meta = null\n\n if (nesting < 0) {\n // closing tag\n this.level--\n this.delimiters = this._prev_delimiters.pop()\n }\n\n token.level = this.level\n\n if (nesting > 0) {\n // opening tag\n this.level++\n this._prev_delimiters.push(this.delimiters)\n this.delimiters = []\n token_meta = { delimiters: this.delimiters }\n }\n\n this.pendingLevel = this.level\n this.tokens.push(token)\n this.tokens_meta.push(token_meta)\n return token\n}\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n const max = this.posMax\n const marker = this.src.charCodeAt(start)\n\n // treat beginning of the line as a whitespace\n const lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20\n\n let pos = start\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++ }\n\n const count = pos - start\n\n // treat end of the line as a whitespace\n const nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20\n\n const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar))\n const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar))\n\n const isLastWhiteSpace = isWhiteSpace(lastChar)\n const isNextWhiteSpace = isWhiteSpace(nextChar)\n\n const left_flanking =\n !isNextWhiteSpace && (!isNextPunctChar || isLastWhiteSpace || isLastPunctChar)\n const right_flanking =\n !isLastWhiteSpace && (!isLastPunctChar || isNextWhiteSpace || isNextPunctChar)\n\n const can_open = left_flanking && (canSplitWord || !right_flanking || isLastPunctChar)\n const can_close = right_flanking && (canSplitWord || !left_flanking || isNextPunctChar)\n\n return { can_open, can_close, length: count }\n}\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token\n\nexport default StateInline\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar (ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\nexport default function text (state, silent) {\n let pos = state.pos\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++\n }\n\n if (pos === state.pos) { return false }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos) }\n\n state.pos = pos\n\n return true\n}\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParserInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n}; */\n","// Process links like https://example.org/\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nconst SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i\n\nexport default function linkify (state, silent) {\n if (!state.md.options.linkify) return false\n if (state.linkLevel > 0) return false\n\n const pos = state.pos\n const max = state.posMax\n\n if (pos + 3 > max) return false\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false\n\n const match = state.pending.match(SCHEME_RE)\n if (!match) return false\n\n const proto = match[1]\n\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length))\n if (!link) return false\n\n let url = link.url\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '')\n\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) return false\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length)\n\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n }\n\n state.pos += url.length - proto.length\n return true\n}\n","// Proceess '\\n'\n\nimport { isSpace } from '../common/utils.mjs'\n\nexport default function newline (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false }\n\n const pmax = state.pending.length - 1\n const max = state.posMax\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n let ws = pmax - 1\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--\n\n state.pending = state.pending.slice(0, ws)\n state.push('hardbreak', 'br', 0)\n } else {\n state.pending = state.pending.slice(0, -1)\n state.push('softbreak', 'br', 0)\n }\n } else {\n state.push('softbreak', 'br', 0)\n }\n }\n\n pos++\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++ }\n\n state.pos = pos\n return true\n}\n","// Process escaped chars and hardbreaks\n\nimport { isSpace } from '../common/utils.mjs'\n\nconst ESCAPED = []\n\nfor (let i = 0; i < 256; i++) { ESCAPED.push(0) }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1 })\n\nexport default function escape (state, silent) {\n let pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) return false\n pos++\n\n // '\\' at the end of the inline block\n if (pos >= max) return false\n\n let ch1 = state.src.charCodeAt(pos)\n\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0)\n }\n\n pos++\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos)\n if (!isSpace(ch1)) break\n pos++\n }\n\n state.pos = pos\n return true\n }\n\n let escapedStr = state.src[pos]\n\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n const ch2 = state.src.charCodeAt(pos + 1)\n\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1]\n pos++\n }\n }\n\n const origStr = '\\\\' + escapedStr\n\n if (!silent) {\n const token = state.push('text_special', '', 0)\n\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr\n } else {\n token.content = origStr\n }\n\n token.markup = origStr\n token.info = 'escape'\n }\n\n state.pos = pos + 1\n return true\n}\n","// Parse backticks\n\nexport default function backtick (state, silent) {\n let pos = state.pos\n const ch = state.src.charCodeAt(pos)\n\n if (ch !== 0x60/* ` */) { return false }\n\n const start = pos\n pos++\n const max = state.posMax\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++ }\n\n const marker = state.src.slice(start, pos)\n const openerLength = marker.length\n\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n }\n\n let matchEnd = pos\n let matchStart\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++ }\n\n const closerLength = matchEnd - matchStart\n\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n const token = state.push('code_inline', 'code', 0)\n token.markup = marker\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1')\n }\n state.pos = matchEnd\n return true\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true\n\n if (!silent) state.pending += marker\n state.pos += openerLength\n return true\n}\n","// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x7E/* ~ */) { return false }\n\n const scanned = state.scanDelims(state.pos, true)\n let len = scanned.length\n const ch = String.fromCharCode(marker)\n\n if (len < 2) { return false }\n\n let token\n\n if (len % 2) {\n token = state.push('text', '', 0)\n token.content = ch\n len--\n }\n\n for (let i = 0; i < len; i += 2) {\n token = state.push('text', '', 0)\n token.content = ch + ch\n\n state.delimiters.push({\n marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n let token\n const loneMarkers = []\n const max = delimiters.length\n\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue\n }\n\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n token = state.tokens[startDelim.token]\n token.type = 's_open'\n token.tag = 's'\n token.nesting = 1\n token.markup = '~~'\n token.content = ''\n\n token = state.tokens[endDelim.token]\n token.type = 's_close'\n token.tag = 's'\n token.nesting = -1\n token.markup = '~~'\n token.content = ''\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1)\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n const i = loneMarkers.pop()\n let j = i + 1\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++\n }\n\n j--\n\n if (i !== j) {\n token = state.tokens[j]\n state.tokens[j] = state.tokens[i]\n state.tokens[i] = token\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: strikethrough_tokenize,\n postProcess: strikethrough_postProcess\n}\n","// Process *this* and _that_\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction emphasis_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false }\n\n const scanned = state.scanDelims(state.pos, marker === 0x2A)\n\n for (let i = 0; i < scanned.length; i++) {\n const token = state.push('text', '', 0)\n token.content = String.fromCharCode(marker)\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n const max = delimiters.length\n\n for (let i = max - 1; i >= 0; i--) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n const isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1\n\n const ch = String.fromCharCode(startDelim.marker)\n\n const token_o = state.tokens[startDelim.token]\n token_o.type = isStrong ? 'strong_open' : 'em_open'\n token_o.tag = isStrong ? 'strong' : 'em'\n token_o.nesting = 1\n token_o.markup = isStrong ? ch + ch : ch\n token_o.content = ''\n\n const token_c = state.tokens[endDelim.token]\n token_c.type = isStrong ? 'strong_close' : 'em_close'\n token_c.tag = isStrong ? 'strong' : 'em'\n token_c.nesting = -1\n token_c.markup = isStrong ? ch + ch : ch\n token_c.content = ''\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = ''\n state.tokens[delimiters[startDelim.end + 1].token].content = ''\n i--\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction emphasis_post_process (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: emphasis_tokenize,\n postProcess: emphasis_post_process\n}\n","// Process [link]( \"stuff\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function link (state, silent) {\n let code, label, res, ref\n let href = ''\n let title = ''\n let start = state.pos\n let parseReference = true\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false }\n\n const oldPos = state.pos\n const max = state.posMax\n const labelStart = state.pos + 1\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n let pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true\n }\n pos++\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart\n state.posMax = labelEnd\n\n const token_o = state.push('link_open', 'a', 1)\n const attrs = [['href', href]]\n token_o.attrs = attrs\n if (title) {\n attrs.push(['title', title])\n }\n\n state.linkLevel++\n state.md.inline.tokenize(state)\n state.linkLevel--\n\n state.push('link_close', 'a', -1)\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process ![image]( \"title\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function image (state, silent) {\n let code, content, label, pos, ref, res, title, start\n let href = ''\n const oldPos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false }\n\n const labelStart = state.pos + 2\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n } else {\n title = ''\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos\n return false\n }\n pos++\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd)\n\n const tokens = []\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens\n )\n\n const token = state.push('image', 'img', 0)\n const attrs = [['src', href], ['alt', '']]\n token.attrs = attrs\n token.children = tokens\n token.content = content\n\n if (title) {\n attrs.push(['title', title])\n }\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n","// Process autolinks ''\n\n/* eslint max-len:0 */\nconst EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/\n/* eslint-disable-next-line no-control-regex */\nconst AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\\x00-\\x20]*)$/\n\nexport default function autolink (state, silent) {\n let pos = state.pos\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false }\n\n const start = state.pos\n const max = state.posMax\n\n for (;;) {\n if (++pos >= max) return false\n\n const ch = state.src.charCodeAt(pos)\n\n if (ch === 0x3C /* < */) return false\n if (ch === 0x3E /* > */) break\n }\n\n const url = state.src.slice(start + 1, pos)\n\n if (AUTOLINK_RE.test(url)) {\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n if (EMAIL_RE.test(url)) {\n const fullUrl = state.md.normalizeLink('mailto:' + url)\n if (!state.md.validateLink(fullUrl)) { return false }\n\n if (!silent) {\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'autolink'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'autolink'\n token_c.info = 'auto'\n }\n\n state.pos += url.length + 2\n return true\n }\n\n return false\n}\n","// Process html tags\n\nimport { HTML_TAG_RE } from '../common/html_re.mjs'\n\nfunction isLinkOpen (str) {\n return /^\\s]/i.test(str)\n}\nfunction isLinkClose (str) {\n return /^<\\/a\\s*>/i.test(str)\n}\n\nfunction isLetter (ch) {\n /* eslint no-bitwise:0 */\n const lc = ch | 0x20 // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */)\n}\n\nexport default function html_inline (state, silent) {\n if (!state.md.options.html) { return false }\n\n // Check start\n const max = state.posMax\n const pos = state.pos\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false\n }\n\n // Quick fail on second char\n const ch = state.src.charCodeAt(pos + 1)\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false\n }\n\n const match = state.src.slice(pos).match(HTML_TAG_RE)\n if (!match) { return false }\n\n if (!silent) {\n const token = state.push('html_inline', '', 0)\n token.content = match[0]\n\n if (isLinkOpen(token.content)) state.linkLevel++\n if (isLinkClose(token.content)) state.linkLevel--\n }\n state.pos += match[0].length\n return true\n}\n","// Process html entity - {, ¯, ", ...\n\nimport { decodeHTML } from 'entities'\nimport { isValidEntityCode, fromCodePoint } from '../common/utils.mjs'\n\nconst DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i\nconst NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i\n\nexport default function entity (state, silent) {\n const pos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) return false\n\n if (pos + 1 >= max) return false\n\n const ch = state.src.charCodeAt(pos + 1)\n\n if (ch === 0x23 /* # */) {\n const match = state.src.slice(pos).match(DIGITAL_RE)\n if (match) {\n if (!silent) {\n const code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10)\n\n const token = state.push('text_special', '', 0)\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD)\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n } else {\n const match = state.src.slice(pos).match(NAMED_RE)\n if (match) {\n const decoded = decodeHTML(match[0])\n if (decoded !== match[0]) {\n if (!silent) {\n const token = state.push('text_special', '', 0)\n token.content = decoded\n token.markup = match[0]\n token.info = 'entity'\n }\n state.pos += match[0].length\n return true\n }\n }\n }\n\n return false\n}\n","// For each opening emphasis-like marker find a matching closing one\n//\n\nfunction processDelimiters (delimiters) {\n const openersBottom = {}\n const max = delimiters.length\n\n if (!max) return\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n let headerIdx = 0\n let lastTokenIdx = -2 // needs any value lower than -1\n const jumps = []\n\n for (let closerIdx = 0; closerIdx < max; closerIdx++) {\n const closer = delimiters[closerIdx]\n\n jumps.push(0)\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx\n }\n\n lastTokenIdx = closer.token\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0\n\n if (!closer.close) continue\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n /* eslint-disable-next-line no-prototype-builtins */\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [-1, -1, -1, -1, -1, -1]\n }\n\n const minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length % 3)]\n\n let openerIdx = headerIdx - jumps[headerIdx] - 1\n\n let newMinOpenerIdx = openerIdx\n\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n const opener = delimiters[openerIdx]\n\n if (opener.marker !== closer.marker) continue\n\n if (opener.open && opener.end < 0) {\n let isOddMatch = false\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n const lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open\n ? jumps[openerIdx - 1] + 1\n : 0\n\n jumps[closerIdx] = closerIdx - openerIdx + lastJump\n jumps[openerIdx] = lastJump\n\n closer.open = false\n opener.end = closerIdx\n opener.close = false\n newMinOpenerIdx = -1\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2\n break\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + ((closer.length || 0) % 3)] = newMinOpenerIdx\n }\n }\n}\n\nexport default function link_pairs (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n processDelimiters(state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(tokens_meta[curr].delimiters)\n }\n }\n}\n","// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n\nexport default function fragments_join (state) {\n let curr, last\n let level = 0\n const tokens = state.tokens\n const max = state.tokens.length\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level-- // closing tag\n tokens[curr].level = level\n if (tokens[curr].nesting > 0) level++ // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content\n } else {\n if (curr !== last) { tokens[last] = tokens[curr] }\n\n last++\n }\n }\n\n if (curr !== last) {\n tokens.length = last\n }\n}\n","import reFactory from './lib/re.mjs'\n\n//\n// Helpers\n//\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\nfunction isString (obj) { return _class(obj) === '[object String]' }\nfunction isObject (obj) { return _class(obj) === '[object Object]' }\nfunction isRegExp (obj) { return _class(obj) === '[object RegExp]' }\nfunction isFunction (obj) { return _class(obj) === '[object Function]' }\n\nfunction escapeRE (str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&') }\n\n//\n\nconst defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n}\n\nfunction isOptionsObj (obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n /* eslint-disable-next-line no-prototype-builtins */\n return acc || defaultOptions.hasOwnProperty(k)\n }, false)\n}\n\nconst defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n )\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length\n }\n return 0\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n )\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0 }\n if (pos >= 3 && text[pos - 3] === '/') { return 0 }\n return tail.match(self.re.no_http)[0].length\n }\n return 0\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n const tail = text.slice(pos)\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n )\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length\n }\n return 0\n }\n }\n}\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\n/* eslint-disable-next-line max-len */\nconst tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]'\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nconst tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|')\n\nfunction resetScanCache (self) {\n self.__index__ = -1\n self.__text_cache__ = ''\n}\n\nfunction createValidator (re) {\n return function (text, pos) {\n const tail = text.slice(pos)\n\n if (re.test(tail)) {\n return tail.match(re)[0].length\n }\n return 0\n }\n}\n\nfunction createNormalizer () {\n return function (match, self) {\n self.normalize(match)\n }\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile (self) {\n // Load & clone RE patterns.\n const re = self.re = reFactory(self.__opts__)\n\n // Define dynamic patterns\n const tlds = self.__tlds__.slice()\n\n self.onCompile()\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re)\n }\n tlds.push(re.src_xn)\n\n re.src_tlds = tlds.join('|')\n\n function untpl (tpl) { return tpl.replace('%TLDS%', re.src_tlds) }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i')\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i')\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i')\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i')\n\n //\n // Compile each schema\n //\n\n const aliases = []\n\n self.__compiled__ = {} // Reset compiled data\n\n function schemaError (name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val)\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n const val = self.__schemas__[name]\n\n // skip disabled methods\n if (val === null) { return }\n\n const compiled = { validate: null, link: null }\n\n self.__compiled__[name] = compiled\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate)\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate\n } else {\n schemaError(name, val)\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer()\n } else {\n schemaError(name, val)\n }\n\n return\n }\n\n if (isString(val)) {\n aliases.push(name)\n return\n }\n\n schemaError(name, val)\n })\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize\n })\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() }\n\n //\n // Build schema condition\n //\n const slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name]\n })\n .map(escapeRE)\n .join('|')\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i')\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig')\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i')\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n )\n\n //\n // Cleanup\n //\n\n resetScanCache(self)\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match (self, shift) {\n const start = self.__index__\n const end = self.__last_index__\n const text = self.__text_cache__.slice(start, end)\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase()\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text\n}\n\nfunction createMatch (self, shift) {\n const match = new Match(self, shift)\n\n self.__compiled__[match.schema].normalize(match, self)\n\n return match\n}\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt (schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options)\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas\n schemas = {}\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options)\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1\n this.__last_index__ = -1 // Next scan position\n this.__schema__ = ''\n this.__text_cache__ = ''\n\n this.__schemas__ = assign({}, defaultSchemas, schemas)\n this.__compiled__ = {}\n\n this.__tlds__ = tlds_default\n this.__tlds_replaced__ = false\n\n this.re = {}\n\n compile(this)\n}\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add (schema, definition) {\n this.__schemas__[schema] = definition\n compile(this)\n return this\n}\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set (options) {\n this.__opts__ = assign(this.__opts__, options)\n return this\n}\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) { return false }\n\n let m, ml, me, len, shift, next, re, tld_pos, at_pos\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search\n re.lastIndex = 0\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex)\n if (len) {\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n break\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test)\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n shift = ml.index + ml[1].length\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = ''\n this.__index__ = shift\n this.__last_index__ = ml.index + ml[0].length\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@')\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n shift = me.index + me[1].length\n next = me.index + me[0].length\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:'\n this.__index__ = shift\n this.__last_index__ = next\n }\n }\n }\n }\n\n return this.__index__ >= 0\n}\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest (text) {\n return this.re.pretest.test(text)\n}\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt (text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this)\n}\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match (text) {\n const result = []\n let shift = 0\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift))\n shift = this.__last_index__\n }\n\n // Cut head if cache was used\n let tail = shift ? text.slice(shift) : text\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift))\n\n tail = tail.slice(this.__last_index__)\n shift += this.__last_index__\n }\n\n if (result.length) {\n return result\n }\n\n return null\n}\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart (text) {\n // Reset scan cache\n this.__text_cache__ = text\n this.__index__ = -1\n\n if (!text.length) return null\n\n const m = this.re.schema_at_start.exec(text)\n if (!m) return null\n\n const len = this.testSchemaAt(text, m[2], m[0].length)\n if (!len) return null\n\n this.__schema__ = m[2]\n this.__index__ = m.index + m[1].length\n this.__last_index__ = m.index + m[0].length + len\n\n return createMatch(this, 0)\n}\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds (list, keepOld) {\n list = Array.isArray(list) ? list : [list]\n\n if (!keepOld) {\n this.__tlds__ = list.slice()\n this.__tlds_replaced__ = true\n compile(this)\n return this\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1]\n })\n .reverse()\n\n compile(this)\n return this\n}\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize (match) {\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url\n }\n}\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile () {\n}\n\nexport default LinkifyIt\n","import { Any, Cc, Z, P } from 'uc.micro'\n\nexport default function (opts) {\n const re = {}\n opts = opts || {}\n\n re.src_Any = Any.source\n re.src_Cc = Cc.source\n re.src_Z = Z.source\n re.src_P = P.source\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [re.src_Z, re.src_P, re.src_Cc].join('|')\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [re.src_Z, re.src_Cc].join('|')\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n const text_separators = '[><\\uff5c]'\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')'\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?'\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?'\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))'\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n\n // allow `I'm_king` if no pair found\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' +\n\n // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.{2,}[a-zA-Z0-9%/&]|' +\n\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---']\n ? '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n : '\\\\-+|'\n ) +\n // allow `,,,` in paths\n ',(?!' + re.src_ZCc + '|$)|' +\n\n // allow `;` if not followed by space-like char\n ';(?!' + re.src_ZCc + '|$)|' +\n\n // allow `!!!` in paths, but not at the end\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' +\n\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?'\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*'\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}'\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')'\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')'\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/* _root */ + ')' +\n ')'\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')'\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))'\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator\n\n //\n // Main rules\n //\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))'\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')'\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')'\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')'\n\n return re\n}\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.3.1',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","// markdown-it default options\n\nexport default {\n options: {\n // Enable HTML tags in source\n html: false,\n\n // Use '/' to close single tags (
    )\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: false,\n\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n xhtmlOut: true,\n\n // Convert '\\n' in paragraphs into
    \n breaks: false,\n\n // CSS language prefix for fenced blocks\n langPrefix: 'language-',\n\n // autoconvert URL-like texts to links\n linkify: false,\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '
    ';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.10.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov \nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n // общий паттерн для определения идентификаторов\n const UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';\n\n // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword\n const v7_keywords =\n 'далее ';\n\n // v8 ключевые слова ==> keyword\n const v8_keywords =\n 'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли '\n + 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';\n\n // keyword : ключевые слова\n const KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword\n const v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword\n const v8_meta_keywords =\n 'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер '\n + 'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед '\n + 'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях\n const METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 системные константы ==> built_in\n const v7_system_constants =\n 'разделительстраниц разделительстрок символтабуляции ';\n\n // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in\n const v7_global_context_methods =\n 'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов '\n + 'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя '\n + 'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца '\n + 'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид '\n + 'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца '\n + 'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов '\n + 'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута '\n + 'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта '\n + 'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына '\n + 'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента '\n + 'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';\n\n // v8 методы глобального контекста ==> built_in\n const v8_global_context_methods =\n 'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока '\n + 'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение '\n + 'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации '\n + 'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода '\n + 'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы '\n + 'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации '\n + 'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию '\n + 'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла '\n + 'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке '\n + 'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку '\n + 'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты '\n + 'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы '\n + 'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти '\n + 'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы '\n + 'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя '\n + 'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты '\n + 'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов '\n + 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя '\n + 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога '\n + 'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией '\n + 'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы '\n + 'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения '\n + 'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении '\n + 'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения '\n + 'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально '\n + 'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа '\n + 'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту '\n + 'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения '\n + 'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки '\n + 'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение '\n + 'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя '\n + 'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса '\n + 'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора '\n + 'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса '\n + 'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации '\n + 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла '\n + 'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации '\n + 'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления '\n + 'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу '\n + 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы '\n + 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет '\n + 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима '\n + 'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения '\n + 'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути '\n + 'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы '\n + 'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю '\n + 'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных '\n + 'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию '\n + 'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище '\n + 'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода '\n + 'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение '\n + 'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока '\n + 'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных '\n + 'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени '\n + 'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить '\n + 'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс '\n + 'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '\n + 'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах '\n + 'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации '\n + 'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы '\n + 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим '\n + 'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту '\n + 'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных '\n + 'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации '\n + 'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения '\n + 'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования '\n + 'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима '\n + 'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим '\n + 'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией '\n + 'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы '\n + 'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса '\n + 'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';\n\n // v8 свойства глобального контекста ==> built_in\n const v8_global_context_property =\n 'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы '\n + 'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль '\n + 'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты '\n + 'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений '\n + 'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик '\n + 'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок '\n + 'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений '\n + 'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа '\n + 'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек '\n + 'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков '\n + 'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';\n\n // built_in : встроенные или библиотечные объекты (константы, классы, функции)\n const BUILTIN =\n v7_system_constants\n + v7_global_context_methods + v8_global_context_methods\n + v8_global_context_property;\n\n // v8 системные наборы значений ==> class\n const v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';\n\n // v8 системные перечисления - интерфейсные ==> class\n const v8_system_enums_interface =\n 'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий '\n + 'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы '\n + 'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы '\n + 'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя '\n + 'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение '\n + 'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы '\n + 'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания '\n + 'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки '\n + 'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы '\n + 'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева '\n + 'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы '\n + 'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме '\n + 'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы '\n + 'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы '\n + 'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы '\n + 'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска '\n + 'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования '\n + 'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта '\n + 'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы '\n + 'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы '\n + 'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы '\n + 'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы '\n + 'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы '\n + 'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском '\n + 'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы '\n + 'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта '\n + 'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты '\n + 'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения '\n + 'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра '\n + 'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения '\n + 'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы '\n + 'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки '\n + 'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание '\n + 'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы '\n + 'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление '\n + 'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы '\n + 'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы '\n + 'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления '\n + 'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы '\n + 'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы '\n + 'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений '\n + 'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы '\n + 'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы '\n + 'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы '\n + 'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени '\n + 'форматкартинки ширинаподчиненныхэлементовформы ';\n\n // v8 системные перечисления - свойства прикладных объектов ==> class\n const v8_system_enums_objects_properties =\n 'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса '\n + 'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения '\n + 'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';\n\n // v8 системные перечисления - планы обмена ==> class\n const v8_system_enums_exchange_plans =\n 'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';\n\n // v8 системные перечисления - табличный документ ==> class\n const v8_system_enums_tabular_document =\n 'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы '\n + 'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента '\n + 'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента '\n + 'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента '\n + 'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы '\n + 'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента '\n + 'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';\n\n // v8 системные перечисления - планировщик ==> class\n const v8_system_enums_sheduler =\n 'отображениевремениэлементовпланировщика ';\n\n // v8 системные перечисления - форматированный документ ==> class\n const v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 системные перечисления - запрос ==> class\n const v8_system_enums_query =\n 'обходрезультатазапроса типзаписизапроса ';\n\n // v8 системные перечисления - построитель отчета ==> class\n const v8_system_enums_report_builder =\n 'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';\n\n // v8 системные перечисления - работа с файлами ==> class\n const v8_system_enums_files =\n 'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';\n\n // v8 системные перечисления - построитель запроса ==> class\n const v8_system_enums_query_builder =\n 'типизмеренияпостроителязапроса ';\n\n // v8 системные перечисления - анализ данных ==> class\n const v8_system_enums_data_analysis =\n 'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных '\n + 'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений '\n + 'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций '\n + 'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных '\n + 'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных '\n + 'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';\n\n // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class\n const v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto '\n + 'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs '\n + 'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs '\n + 'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs '\n + 'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson '\n + 'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs '\n + 'форматдатыjson экранированиесимволовjson ';\n\n // v8 системные перечисления - система компоновки данных ==> class\n const v8_system_enums_data_composition_system =\n 'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных '\n + 'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных '\n + 'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных '\n + 'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных '\n + 'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных '\n + 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных '\n + 'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных '\n + 'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных '\n + 'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных '\n + 'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '\n + 'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных '\n + 'использованиеусловногооформлениякомпоновкиданных ';\n\n // v8 системные перечисления - почта ==> class\n const v8_system_enums_email =\n 'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения '\n + 'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты '\n + 'статусразборапочтовогосообщения ';\n\n // v8 системные перечисления - журнал регистрации ==> class\n const v8_system_enums_logbook =\n 'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';\n\n // v8 системные перечисления - криптография ==> class\n const v8_system_enums_cryptography =\n 'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии '\n + 'типхранилищасертификатовкриптографии ';\n\n // v8 системные перечисления - ZIP ==> class\n const v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip '\n + 'режимсохраненияпутейzip уровеньсжатияzip ';\n\n // v8 системные перечисления -\n // Блокировка данных, Фоновые задания, Автоматизированное тестирование,\n // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class\n const v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных '\n + 'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';\n\n // v8 системные перечисления - схема запроса ==> class\n const v8_system_enums_request_schema =\n 'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса '\n + 'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';\n\n // v8 системные перечисления - свойства объектов метаданных ==> class\n const v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления '\n + 'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование '\n + 'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения '\n + 'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита '\n + 'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных '\n + 'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи '\n + 'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении '\n + 'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений '\n + 'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение '\n + 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '\n + 'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности '\n + 'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов '\n + 'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса '\n + 'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов '\n + 'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования '\n + 'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса '\n + 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 системные перечисления - разные ==> class\n const v8_system_enums_differents =\n 'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения '\n + 'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки '\n + 'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак '\n + 'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога '\n + 'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных '\n + 'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения '\n + 'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных '\n + 'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter '\n + 'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';\n\n // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)\n const CLASS =\n v8_system_sets_of_values\n + v8_system_enums_interface\n + v8_system_enums_objects_properties\n + v8_system_enums_exchange_plans\n + v8_system_enums_tabular_document\n + v8_system_enums_sheduler\n + v8_system_enums_formatted_document\n + v8_system_enums_query\n + v8_system_enums_report_builder\n + v8_system_enums_files\n + v8_system_enums_query_builder\n + v8_system_enums_data_analysis\n + v8_system_enums_xml_json_xs_dom_xdto_ws\n + v8_system_enums_data_composition_system\n + v8_system_enums_email\n + v8_system_enums_logbook\n + v8_system_enums_cryptography\n + v8_system_enums_zip\n + v8_system_enums_other\n + v8_system_enums_request_schema\n + v8_system_enums_properties_of_metadata_objects\n + v8_system_enums_differents;\n\n // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type\n const v8_shared_object =\n 'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs '\n + 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема '\n + 'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма '\n + 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания '\n + 'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление '\n + 'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom '\n + 'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта '\n + 'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs '\n + 'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных '\n + 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла '\n + 'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных '\n + 'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных '\n + 'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson '\n + 'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs '\n + 'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации '\n + 'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных '\n + 'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs '\n + 'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom '\n + 'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных '\n + 'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных '\n + 'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных '\n + 'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml '\n + 'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент '\n + 'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml '\n + 'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto '\n + 'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows '\n + 'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш '\n + 'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент '\n + 'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток '\n + 'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs '\n + 'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs '\n + 'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs '\n + 'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент '\n + 'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла '\n + 'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';\n\n // v8 универсальные коллекции значений ==> type\n const v8_universal_collection =\n 'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура '\n + 'фиксированноесоответствие фиксированныймассив ';\n\n // type : встроенные типы\n const TYPE =\n v8_shared_object\n + v8_universal_collection;\n\n // literal : примитивные типы\n const LITERAL = 'null истина ложь неопределено';\n\n // number : числа\n const NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : строки\n const STRINGS = {\n className: 'string',\n begin: '\"|\\\\|',\n end: '\"|$',\n contains: [ { begin: '\"\"' } ]\n };\n\n // number : даты\n const DATE = {\n begin: \"'\",\n end: \"'\",\n excludeBegin: true,\n excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n const PUNCTUATION = {\n match: /[;()+\\-:=,]/,\n className: \"punctuation\",\n relevance: 0\n };\n\n // comment : комментарии\n const COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инструкции препроцессора, директивы компиляции\n const META = {\n className: 'meta',\n\n begin: '#|&',\n end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD + METAKEYWORD\n },\n contains: [ COMMENTS ]\n };\n\n // symbol : метка goto\n const SYMBOL = {\n className: 'symbol',\n begin: '~',\n end: ';|:',\n excludeEnd: true\n };\n\n // function : объявление процедур и функций\n const FUNCTION = {\n className: 'function',\n variants: [\n {\n begin: 'процедура|функция',\n end: '\\\\)',\n keywords: 'процедура функция'\n },\n {\n begin: 'конецпроцедуры|конецфункции',\n keywords: 'конецпроцедуры конецфункции'\n }\n ],\n contains: [\n {\n begin: '\\\\(',\n end: '\\\\)',\n endsParent: true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE,\n end: ',',\n excludeEnd: true,\n endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, { begin: UNDERSCORE_IDENT_RE })\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE,\n PUNCTUATION\n ]\n };\n}\n\nmodule.exports = _1c;\n","/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben \nWebsite: https://tools.ietf.org/html/rfc5234\nCategory: syntax\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regex = hljs.regex;\n const IDENT = /^[a-zA-Z][a-zA-Z0-9-]*/;\n\n const KEYWORDS = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const COMMENT = hljs.COMMENT(/;/, /$/);\n\n const TERMINAL_BINARY = {\n scope: \"symbol\",\n match: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+)?/\n };\n\n const TERMINAL_DECIMAL = {\n scope: \"symbol\",\n match: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+)?/\n };\n\n const TERMINAL_HEXADECIMAL = {\n scope: \"symbol\",\n match: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+)?/\n };\n\n const CASE_SENSITIVITY = {\n scope: \"symbol\",\n match: /%[si](?=\".*\")/\n };\n\n const RULE_DECLARATION = {\n scope: \"attribute\",\n match: regex.concat(IDENT, /(?=\\s*=)/)\n };\n\n const ASSIGNMENT = {\n scope: \"operator\",\n match: /=\\/?/\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: /[!@#$^&',?+~`|:]/,\n keywords: KEYWORDS,\n contains: [\n ASSIGNMENT,\n RULE_DECLARATION,\n COMMENT,\n TERMINAL_BINARY,\n TERMINAL_DECIMAL,\n TERMINAL_HEXADECIMAL,\n CASE_SENSITIVITY,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/*\n Language: Apache Access Log\n Author: Oleg Efimov \n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Category: web, logs\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(hljs) {\n const regex = hljs.regex;\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: regex.concat(/\"/, regex.either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel \nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const PKG_NAME_RE = regex.concat(\n IDENT_RE,\n regex.concat(\"(\\\\.\", IDENT_RE, \")*\")\n );\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n const KEYWORDS = [\n \"as\",\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"const\",\n \"continue\",\n \"default\",\n \"delete\",\n \"do\",\n \"dynamic\",\n \"each\",\n \"else\",\n \"extends\",\n \"final\",\n \"finally\",\n \"for\",\n \"function\",\n \"get\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"include\",\n \"instanceof\",\n \"interface\",\n \"internal\",\n \"is\",\n \"namespace\",\n \"native\",\n \"new\",\n \"override\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"this\",\n \"throw\",\n \"try\",\n \"typeof\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"with\"\n ];\n const LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\"\n ];\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n match: [\n /\\bpackage/,\n /\\s+/,\n PKG_NAME_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n match: [\n /\\b(?:class|interface|extends|implements)/,\n /\\s+/,\n IDENT_RE\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { keyword: 'import include' }\n },\n {\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { className: \"title.function\" }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: regex.concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna \nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n const KEYWORDS = [\n \"abort\",\n \"else\",\n \"new\",\n \"return\",\n \"abs\",\n \"elsif\",\n \"not\",\n \"reverse\",\n \"abstract\",\n \"end\",\n \"accept\",\n \"entry\",\n \"select\",\n \"access\",\n \"exception\",\n \"of\",\n \"separate\",\n \"aliased\",\n \"exit\",\n \"or\",\n \"some\",\n \"all\",\n \"others\",\n \"subtype\",\n \"and\",\n \"for\",\n \"out\",\n \"synchronized\",\n \"array\",\n \"function\",\n \"overriding\",\n \"at\",\n \"tagged\",\n \"generic\",\n \"package\",\n \"task\",\n \"begin\",\n \"goto\",\n \"pragma\",\n \"terminate\",\n \"body\",\n \"private\",\n \"then\",\n \"if\",\n \"procedure\",\n \"type\",\n \"case\",\n \"in\",\n \"protected\",\n \"constant\",\n \"interface\",\n \"is\",\n \"raise\",\n \"use\",\n \"declare\",\n \"range\",\n \"delay\",\n \"limited\",\n \"record\",\n \"when\",\n \"delta\",\n \"loop\",\n \"rem\",\n \"while\",\n \"digits\",\n \"renames\",\n \"with\",\n \"do\",\n \"mod\",\n \"requeue\",\n \"xor\"\n ];\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: [\n \"True\",\n \"False\"\n ]\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n {\n begin: /\"\"/,\n relevance: 0\n }\n ]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels \nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n const builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)'\n };\n\n const objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n const genericMode = {\n className: 'keyword',\n begin: '<',\n end: '>',\n contains: [\n builtInTypeMode,\n objectHandleMode\n ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n const KEYWORDS = [\n \"for\",\n \"in|0\",\n \"break\",\n \"continue\",\n \"while\",\n \"do|0\",\n \"return\",\n \"if\",\n \"else\",\n \"case\",\n \"switch\",\n \"namespace\",\n \"is\",\n \"cast\",\n \"or\",\n \"and\",\n \"xor\",\n \"not\",\n \"get|0\",\n \"in\",\n \"inout|10\",\n \"out\",\n \"override\",\n \"set|0\",\n \"private\",\n \"public\",\n \"const\",\n \"default|0\",\n \"final\",\n \"shared\",\n \"external\",\n \"mixin|10\",\n \"enum\",\n \"typedef\",\n \"funcdef\",\n \"this\",\n \"super\",\n \"import\",\n \"from\",\n \"interface\",\n \"abstract|0\",\n \"try\",\n \"catch\",\n \"protected\",\n \"explicit\",\n \"property\"\n ];\n\n return {\n name: 'AngelScript',\n aliases: [ 'asc' ],\n\n keywords: KEYWORDS,\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[',\n end: '\\\\]'\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class',\n end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba \nContributors: Ivan Sagalaev \nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: config, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\b\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: { _: [\n \"order\",\n \"deny\",\n \"allow\",\n \"setenv\",\n \"rewriterule\",\n \"rewriteengine\",\n \"rewritecond\",\n \"documentroot\",\n \"sethandler\",\n \"errordocument\",\n \"loadmodule\",\n \"options\",\n \"header\",\n \"listen\",\n \"serverroot\",\n \"servername\"\n ] },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/*\nLanguage: AppleScript\nAuthors: Nathan Grigg , Dr. Drang \nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const regex = hljs.regex;\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, { illegal: null });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n { contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ] }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning '\n + 'behind below beneath beside between but by considering '\n + 'contain contains continue copy div does eighth else end equal '\n + 'equals error every exit fifth first for fourth from front '\n + 'get given global if ignoring in into is it its last local me '\n + 'middle mod my ninth not of on onto or over prop property put ref '\n + 'reference repeat returning script second set seventh since '\n + 'sixth some tell tenth that the|0 then third through thru '\n + 'timeout times to transaction try until where while whose with '\n + 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list '\n + 'number real record string text '\n + 'activate beep count delay launch log offset read round '\n + 'run say summarize write '\n + 'character characters contents day frontmost id item length '\n + 'month name|0 paragraph paragraphs rest reverse running time version '\n + 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: regex.concat(\n /\\b/,\n regex.either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: regex.concat(\n /\\b/,\n regex.either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster \n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"do\",\n \"else\",\n \"export\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"in\",\n \"new\",\n \"return\",\n \"switch\",\n \"try\",\n \"var\",\n \"void\",\n \"while\"\n ],\n literal: [\n \"BackSlash\",\n \"DoubleQuote\",\n \"ForwardSlash\",\n \"Infinity\",\n \"NaN\",\n \"NewLine\",\n \"PI\",\n \"SingleQuote\",\n \"Tab\",\n \"TextFormatting\",\n \"false\",\n \"null\",\n \"true\",\n \"undefined\"\n ],\n built_in: [\n \"Abs\",\n \"Acos\",\n \"All\",\n \"Angle\",\n \"Any\",\n \"Area\",\n \"AreaGeodetic\",\n \"Array\",\n \"Asin\",\n \"Atan\",\n \"Atan2\",\n \"Attachments\",\n \"Average\",\n \"Back\",\n \"Bearing\",\n \"Boolean\",\n \"Buffer\",\n \"BufferGeodetic\",\n \"Ceil\",\n \"Centroid\",\n \"ChangeTimeZone\",\n \"Clip\",\n \"Concatenate\",\n \"Console\",\n \"Constrain\",\n \"Contains\",\n \"ConvertDirection\",\n \"ConvexHull\",\n \"Cos\",\n \"Count\",\n \"Crosses\",\n \"Cut\",\n \"Date|0\",\n \"DateAdd\",\n \"DateDiff\",\n \"DateOnly\",\n \"Day\",\n \"Decode\",\n \"DefaultValue\",\n \"Densify\",\n \"DensifyGeodetic\",\n \"Dictionary\",\n \"Difference\",\n \"Disjoint\",\n \"Distance\",\n \"DistanceGeodetic\",\n \"Distinct\",\n \"Domain\",\n \"DomainCode\",\n \"DomainName\",\n \"EnvelopeIntersects\",\n \"Equals\",\n \"Erase\",\n \"Exp\",\n \"Expects\",\n \"Extent\",\n \"Feature\",\n \"FeatureSet\",\n \"FeatureSetByAssociation\",\n \"FeatureSetById\",\n \"FeatureSetByName\",\n \"FeatureSetByPortalItem\",\n \"FeatureSetByRelationshipClass\",\n \"FeatureSetByRelationshipName\",\n \"Filter\",\n \"Find\",\n \"First|0\",\n \"Floor\",\n \"FromCharCode\",\n \"FromCodePoint\",\n \"FromJSON\",\n \"Front\",\n \"GdbVersion\",\n \"Generalize\",\n \"Geometry\",\n \"GetEnvironment\",\n \"GetFeatureSet\",\n \"GetFeatureSetInfo\",\n \"GetUser\",\n \"GroupBy\",\n \"Guid\",\n \"HasKey\",\n \"HasValue\",\n \"Hash\",\n \"Hour\",\n \"IIf\",\n \"ISOMonth\",\n \"ISOWeek\",\n \"ISOWeekday\",\n \"ISOYear\",\n \"Includes\",\n \"IndexOf\",\n \"Insert\",\n \"Intersection\",\n \"Intersects\",\n \"IsEmpty\",\n \"IsNan\",\n \"IsSelfIntersecting\",\n \"IsSimple\",\n \"Left|0\",\n \"Length\",\n \"Length3D\",\n \"LengthGeodetic\",\n \"Log\",\n \"Lower\",\n \"Map\",\n \"Max\",\n \"Mean\",\n \"Mid\",\n \"Millisecond\",\n \"Min\",\n \"Minute\",\n \"Month\",\n \"MultiPartToSinglePart\",\n \"Multipoint\",\n \"NearestCoordinate\",\n \"NearestVertex\",\n \"NextSequenceValue\",\n \"None\",\n \"Now\",\n \"Number\",\n \"Offset\",\n \"OrderBy\",\n \"Overlaps\",\n \"Point\",\n \"Polygon\",\n \"Polyline\",\n \"Pop\",\n \"Portal\",\n \"Pow\",\n \"Proper\",\n \"Push\",\n \"Random\",\n \"Reduce\",\n \"Relate\",\n \"Replace\",\n \"Resize\",\n \"Reverse\",\n \"Right|0\",\n \"RingIsClockwise\",\n \"Rotate\",\n \"Round\",\n \"Schema\",\n \"Second\",\n \"SetGeometry\",\n \"Simplify\",\n \"Sin\",\n \"Slice\",\n \"Sort\",\n \"Splice\",\n \"Split\",\n \"Sqrt\",\n \"StandardizeGuid\",\n \"Stdev\",\n \"SubtypeCode\",\n \"SubtypeName\",\n \"Subtypes\",\n \"Sum\",\n \"SymmetricDifference\",\n \"Tan\",\n \"Text\",\n \"Time\",\n \"TimeZone\",\n \"TimeZoneOffset\",\n \"Timestamp\",\n \"ToCharCode\",\n \"ToCodePoint\",\n \"ToHex\",\n \"ToLocal\",\n \"ToUTC\",\n \"Today\",\n \"Top|0\",\n \"Touches\",\n \"TrackAccelerationAt\",\n \"TrackAccelerationWindow\",\n \"TrackCurrentAcceleration\",\n \"TrackCurrentDistance\",\n \"TrackCurrentSpeed\",\n \"TrackCurrentTime\",\n \"TrackDistanceAt\",\n \"TrackDistanceWindow\",\n \"TrackDuration\",\n \"TrackFieldWindow\",\n \"TrackGeometryWindow\",\n \"TrackIndex\",\n \"TrackSpeedAt\",\n \"TrackSpeedWindow\",\n \"TrackStartTime\",\n \"TrackWindow\",\n \"Trim\",\n \"TypeOf\",\n \"Union\",\n \"Upper\",\n \"UrlEncode\",\n \"Variance\",\n \"Week\",\n \"Weekday\",\n \"When|0\",\n \"Within\",\n \"Year|0\",\n ]\n };\n const PROFILE_VARS = [\n \"aggregatedFeatures\",\n \"analytic\",\n \"config\",\n \"datapoint\",\n \"datastore\",\n \"editcontext\",\n \"feature\",\n \"featureSet\",\n \"feedfeature\",\n \"fencefeature\",\n \"fencenotificationtype\",\n \"join\",\n \"layer\",\n \"locationupdate\",\n \"map\",\n \"measure\",\n \"measure\",\n \"originalFeature\",\n \"record\",\n \"reference\",\n \"rowindex\",\n \"sourcedatastore\",\n \"sourcefeature\",\n \"sourcelayer\",\n \"target\",\n \"targetdatastore\",\n \"targetfeature\",\n \"targetlayer\",\n \"value\",\n \"view\"\n ];\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$' + regex.either(...PROFILE_VARS)\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: '\\\\b(0[bB][01]+)' },\n { begin: '\\\\b(0[oO][0-7]+)' },\n { begin: hljs.C_NUMBER_RE }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [\n {\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }\n ]\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n { begin: IDENT_RE },\n { begin: /\\(\\s*\\)/ },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n className: \"title.function\",\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n { begin: /\\$[(.]/ }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n const regex = hljs.regex;\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\\\\n/ } ] });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(?!struct)('\n + DECLTYPE_AUTO_RE + '|'\n + regex.optional(NAMESPACE_RE)\n + '[a-zA-Z_]\\\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)\n + ')';\n\n const CPP_PRIMITIVE_TYPES = {\n className: 'type',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + '|.)',\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n // Floating-point literal.\n { begin:\n \"[+-]?(?:\" // Leading sign.\n // Decimal.\n + \"(?:\"\n +\"[0-9](?:'?[0-9])*\\\\.(?:[0-9](?:'?[0-9])*)?\"\n + \"|\\\\.[0-9](?:'?[0-9])*\"\n + \")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?\"\n + \"|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*\"\n // Hexadecimal.\n + \"|0[Xx](?:\"\n +\"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?\"\n + \"|\\\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*\"\n + \")[Pp][+-]?[0-9](?:'?[0-9])*\"\n + \")(?:\" // Literal suffixes.\n + \"[Ff](?:16|32|64|128)?\"\n + \"|(BF|bf)16\"\n + \"|[Ll]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n },\n // Integer literal.\n { begin:\n \"[+-]?\\\\b(?:\" // Leading sign.\n + \"0[Bb][01](?:'?[01])*\" // Binary.\n + \"|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*\" // Hexadecimal.\n + \"|0(?:'?[0-7])*\" // Octal or just a lone zero.\n + \"|[1-9](?:'?[0-9])*\" // Decimal.\n + \")(?:\" // Literal suffixes.\n + \"[Uu](?:LL?|ll?)\"\n + \"|[Uu][Zz]?\"\n + \"|(?:LL?|ll?)[Uu]?\"\n + \"|[Zz][Uu]\"\n + \"|\" // Literal suffix is optional.\n + \")\"\n // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the\n // literal highlight actually makes it stand out more.\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: { keyword:\n 'if else elif endif define undef warning error line '\n + 'pragma _Pragma ifdef ifndef include' },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, { className: 'string' }),\n {\n className: 'string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_KEYWORDS = [\n 'alignas',\n 'alignof',\n 'and',\n 'and_eq',\n 'asm',\n 'atomic_cancel',\n 'atomic_commit',\n 'atomic_noexcept',\n 'auto',\n 'bitand',\n 'bitor',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'co_await',\n 'co_return',\n 'co_yield',\n 'compl',\n 'concept',\n 'const_cast|10',\n 'consteval',\n 'constexpr',\n 'constinit',\n 'continue',\n 'decltype',\n 'default',\n 'delete',\n 'do',\n 'dynamic_cast|10',\n 'else',\n 'enum',\n 'explicit',\n 'export',\n 'extern',\n 'false',\n 'final',\n 'for',\n 'friend',\n 'goto',\n 'if',\n 'import',\n 'inline',\n 'module',\n 'mutable',\n 'namespace',\n 'new',\n 'noexcept',\n 'not',\n 'not_eq',\n 'nullptr',\n 'operator',\n 'or',\n 'or_eq',\n 'override',\n 'private',\n 'protected',\n 'public',\n 'reflexpr',\n 'register',\n 'reinterpret_cast|10',\n 'requires',\n 'return',\n 'sizeof',\n 'static_assert',\n 'static_cast|10',\n 'struct',\n 'switch',\n 'synchronized',\n 'template',\n 'this',\n 'thread_local',\n 'throw',\n 'transaction_safe',\n 'transaction_safe_dynamic',\n 'true',\n 'try',\n 'typedef',\n 'typeid',\n 'typename',\n 'union',\n 'using',\n 'virtual',\n 'volatile',\n 'while',\n 'xor',\n 'xor_eq'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const RESERVED_TYPES = [\n 'bool',\n 'char',\n 'char16_t',\n 'char32_t',\n 'char8_t',\n 'double',\n 'float',\n 'int',\n 'long',\n 'short',\n 'void',\n 'wchar_t',\n 'unsigned',\n 'signed',\n 'const',\n 'static'\n ];\n\n const TYPE_HINTS = [\n 'any',\n 'auto_ptr',\n 'barrier',\n 'binary_semaphore',\n 'bitset',\n 'complex',\n 'condition_variable',\n 'condition_variable_any',\n 'counting_semaphore',\n 'deque',\n 'false_type',\n 'future',\n 'imaginary',\n 'initializer_list',\n 'istringstream',\n 'jthread',\n 'latch',\n 'lock_guard',\n 'multimap',\n 'multiset',\n 'mutex',\n 'optional',\n 'ostringstream',\n 'packaged_task',\n 'pair',\n 'promise',\n 'priority_queue',\n 'queue',\n 'recursive_mutex',\n 'recursive_timed_mutex',\n 'scoped_lock',\n 'set',\n 'shared_future',\n 'shared_lock',\n 'shared_mutex',\n 'shared_timed_mutex',\n 'shared_ptr',\n 'stack',\n 'string_view',\n 'stringstream',\n 'timed_mutex',\n 'thread',\n 'true_type',\n 'tuple',\n 'unique_lock',\n 'unique_ptr',\n 'unordered_map',\n 'unordered_multimap',\n 'unordered_multiset',\n 'unordered_set',\n 'variant',\n 'vector',\n 'weak_ptr',\n 'wstring',\n 'wstring_view'\n ];\n\n const FUNCTION_HINTS = [\n 'abort',\n 'abs',\n 'acos',\n 'apply',\n 'as_const',\n 'asin',\n 'atan',\n 'atan2',\n 'calloc',\n 'ceil',\n 'cerr',\n 'cin',\n 'clog',\n 'cos',\n 'cosh',\n 'cout',\n 'declval',\n 'endl',\n 'exchange',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'forward',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'fscanf',\n 'future',\n 'invoke',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'labs',\n 'launder',\n 'ldexp',\n 'log',\n 'log10',\n 'make_pair',\n 'make_shared',\n 'make_shared_for_overwrite',\n 'make_tuple',\n 'make_unique',\n 'malloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'move',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'realloc',\n 'scanf',\n 'sin',\n 'sinh',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'std',\n 'stderr',\n 'stdin',\n 'stdout',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'swap',\n 'tan',\n 'tanh',\n 'terminate',\n 'to_underlying',\n 'tolower',\n 'toupper',\n 'vfprintf',\n 'visit',\n 'vprintf',\n 'vsprintf'\n ];\n\n const LITERALS = [\n 'NULL',\n 'false',\n 'nullopt',\n 'nullptr',\n 'true'\n ];\n\n // https://en.cppreference.com/w/cpp/keyword\n const BUILT_IN = [ '_Pragma' ];\n\n const CPP_KEYWORDS = {\n type: RESERVED_TYPES,\n keyword: RESERVED_KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_IN,\n _type_hints: TYPE_HINTS\n };\n\n const FUNCTION_DISPATCH = {\n className: 'function.dispatch',\n relevance: 0,\n keywords: {\n // Only for relevance, not highlighting.\n _hint: FUNCTION_HINTS },\n begin: regex.concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!switch)/,\n /(?!while)/,\n hljs.IDENT_RE,\n regex.lookahead(/(<[^<>]+>|)\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n // allow for multiple declarations, e.g.:\n // extern void f(int), g(char);\n {\n relevance: 0,\n match: /,/\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: ' rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n match: [\n // extra complexity to deal with `enum class` and `enum struct`\n /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n /\\s+/,\n /\\w+/\n ],\n className: {\n 1: 'keyword',\n 3: 'title.class'\n }\n }\n ])\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai \nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\nCategory: system\n*/\n\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n type: [\n \"boolean\",\n \"byte\",\n \"word\",\n \"String\"\n ],\n built_in: [\n \"KeyboardController\",\n \"MouseController\",\n \"SoftwareSerial\",\n \"EthernetServer\",\n \"EthernetClient\",\n \"LiquidCrystal\",\n \"RobotControl\",\n \"GSMVoiceCall\",\n \"EthernetUDP\",\n \"EsploraTFT\",\n \"HttpClient\",\n \"RobotMotor\",\n \"WiFiClient\",\n \"GSMScanner\",\n \"FileSystem\",\n \"Scheduler\",\n \"GSMServer\",\n \"YunClient\",\n \"YunServer\",\n \"IPAddress\",\n \"GSMClient\",\n \"GSMModem\",\n \"Keyboard\",\n \"Ethernet\",\n \"Console\",\n \"GSMBand\",\n \"Esplora\",\n \"Stepper\",\n \"Process\",\n \"WiFiUDP\",\n \"GSM_SMS\",\n \"Mailbox\",\n \"USBHost\",\n \"Firmata\",\n \"PImage\",\n \"Client\",\n \"Server\",\n \"GSMPIN\",\n \"FileIO\",\n \"Bridge\",\n \"Serial\",\n \"EEPROM\",\n \"Stream\",\n \"Mouse\",\n \"Audio\",\n \"Servo\",\n \"File\",\n \"Task\",\n \"GPRS\",\n \"WiFi\",\n \"Wire\",\n \"TFT\",\n \"GSM\",\n \"SPI\",\n \"SD\"\n ],\n _hints: [\n \"setup\",\n \"loop\",\n \"runShellCommandAsynchronously\",\n \"analogWriteResolution\",\n \"retrieveCallingNumber\",\n \"printFirmwareVersion\",\n \"analogReadResolution\",\n \"sendDigitalPortPair\",\n \"noListenOnLocalhost\",\n \"readJoystickButton\",\n \"setFirmwareVersion\",\n \"readJoystickSwitch\",\n \"scrollDisplayRight\",\n \"getVoiceCallStatus\",\n \"scrollDisplayLeft\",\n \"writeMicroseconds\",\n \"delayMicroseconds\",\n \"beginTransmission\",\n \"getSignalStrength\",\n \"runAsynchronously\",\n \"getAsynchronously\",\n \"listenOnLocalhost\",\n \"getCurrentCarrier\",\n \"readAccelerometer\",\n \"messageAvailable\",\n \"sendDigitalPorts\",\n \"lineFollowConfig\",\n \"countryNameWrite\",\n \"runShellCommand\",\n \"readStringUntil\",\n \"rewindDirectory\",\n \"readTemperature\",\n \"setClockDivider\",\n \"readLightSensor\",\n \"endTransmission\",\n \"analogReference\",\n \"detachInterrupt\",\n \"countryNameRead\",\n \"attachInterrupt\",\n \"encryptionType\",\n \"readBytesUntil\",\n \"robotNameWrite\",\n \"readMicrophone\",\n \"robotNameRead\",\n \"cityNameWrite\",\n \"userNameWrite\",\n \"readJoystickY\",\n \"readJoystickX\",\n \"mouseReleased\",\n \"openNextFile\",\n \"scanNetworks\",\n \"noInterrupts\",\n \"digitalWrite\",\n \"beginSpeaker\",\n \"mousePressed\",\n \"isActionDone\",\n \"mouseDragged\",\n \"displayLogos\",\n \"noAutoscroll\",\n \"addParameter\",\n \"remoteNumber\",\n \"getModifiers\",\n \"keyboardRead\",\n \"userNameRead\",\n \"waitContinue\",\n \"processInput\",\n \"parseCommand\",\n \"printVersion\",\n \"readNetworks\",\n \"writeMessage\",\n \"blinkVersion\",\n \"cityNameRead\",\n \"readMessage\",\n \"setDataMode\",\n \"parsePacket\",\n \"isListening\",\n \"setBitOrder\",\n \"beginPacket\",\n \"isDirectory\",\n \"motorsWrite\",\n \"drawCompass\",\n \"digitalRead\",\n \"clearScreen\",\n \"serialEvent\",\n \"rightToLeft\",\n \"setTextSize\",\n \"leftToRight\",\n \"requestFrom\",\n \"keyReleased\",\n \"compassRead\",\n \"analogWrite\",\n \"interrupts\",\n \"WiFiServer\",\n \"disconnect\",\n \"playMelody\",\n \"parseFloat\",\n \"autoscroll\",\n \"getPINUsed\",\n \"setPINUsed\",\n \"setTimeout\",\n \"sendAnalog\",\n \"readSlider\",\n \"analogRead\",\n \"beginWrite\",\n \"createChar\",\n \"motorsStop\",\n \"keyPressed\",\n \"tempoWrite\",\n \"readButton\",\n \"subnetMask\",\n \"debugPrint\",\n \"macAddress\",\n \"writeGreen\",\n \"randomSeed\",\n \"attachGPRS\",\n \"readString\",\n \"sendString\",\n \"remotePort\",\n \"releaseAll\",\n \"mouseMoved\",\n \"background\",\n \"getXChange\",\n \"getYChange\",\n \"answerCall\",\n \"getResult\",\n \"voiceCall\",\n \"endPacket\",\n \"constrain\",\n \"getSocket\",\n \"writeJSON\",\n \"getButton\",\n \"available\",\n \"connected\",\n \"findUntil\",\n \"readBytes\",\n \"exitValue\",\n \"readGreen\",\n \"writeBlue\",\n \"startLoop\",\n \"IPAddress\",\n \"isPressed\",\n \"sendSysex\",\n \"pauseMode\",\n \"gatewayIP\",\n \"setCursor\",\n \"getOemKey\",\n \"tuneWrite\",\n \"noDisplay\",\n \"loadImage\",\n \"switchPIN\",\n \"onRequest\",\n \"onReceive\",\n \"changePIN\",\n \"playFile\",\n \"noBuffer\",\n \"parseInt\",\n \"overflow\",\n \"checkPIN\",\n \"knobRead\",\n \"beginTFT\",\n \"bitClear\",\n \"updateIR\",\n \"bitWrite\",\n \"position\",\n \"writeRGB\",\n \"highByte\",\n \"writeRed\",\n \"setSpeed\",\n \"readBlue\",\n \"noStroke\",\n \"remoteIP\",\n \"transfer\",\n \"shutdown\",\n \"hangCall\",\n \"beginSMS\",\n \"endWrite\",\n \"attached\",\n \"maintain\",\n \"noCursor\",\n \"checkReg\",\n \"checkPUK\",\n \"shiftOut\",\n \"isValid\",\n \"shiftIn\",\n \"pulseIn\",\n \"connect\",\n \"println\",\n \"localIP\",\n \"pinMode\",\n \"getIMEI\",\n \"display\",\n \"noBlink\",\n \"process\",\n \"getBand\",\n \"running\",\n \"beginSD\",\n \"drawBMP\",\n \"lowByte\",\n \"setBand\",\n \"release\",\n \"bitRead\",\n \"prepare\",\n \"pointTo\",\n \"readRed\",\n \"setMode\",\n \"noFill\",\n \"remove\",\n \"listen\",\n \"stroke\",\n \"detach\",\n \"attach\",\n \"noTone\",\n \"exists\",\n \"buffer\",\n \"height\",\n \"bitSet\",\n \"circle\",\n \"config\",\n \"cursor\",\n \"random\",\n \"IRread\",\n \"setDNS\",\n \"endSMS\",\n \"getKey\",\n \"micros\",\n \"millis\",\n \"begin\",\n \"print\",\n \"write\",\n \"ready\",\n \"flush\",\n \"width\",\n \"isPIN\",\n \"blink\",\n \"clear\",\n \"press\",\n \"mkdir\",\n \"rmdir\",\n \"close\",\n \"point\",\n \"yield\",\n \"image\",\n \"BSSID\",\n \"click\",\n \"delay\",\n \"read\",\n \"text\",\n \"move\",\n \"peek\",\n \"beep\",\n \"rect\",\n \"line\",\n \"open\",\n \"seek\",\n \"fill\",\n \"size\",\n \"turn\",\n \"stop\",\n \"home\",\n \"find\",\n \"step\",\n \"tone\",\n \"sqrt\",\n \"RSSI\",\n \"SSID\",\n \"end\",\n \"bit\",\n \"tan\",\n \"cos\",\n \"sin\",\n \"pow\",\n \"map\",\n \"abs\",\n \"max\",\n \"min\",\n \"get\",\n \"run\",\n \"put\"\n ],\n literal: [\n \"DIGITAL_MESSAGE\",\n \"FIRMATA_STRING\",\n \"ANALOG_MESSAGE\",\n \"REPORT_DIGITAL\",\n \"REPORT_ANALOG\",\n \"INPUT_PULLUP\",\n \"SET_PIN_MODE\",\n \"INTERNAL2V56\",\n \"SYSTEM_RESET\",\n \"LED_BUILTIN\",\n \"INTERNAL1V1\",\n \"SYSEX_START\",\n \"INTERNAL\",\n \"EXTERNAL\",\n \"DEFAULT\",\n \"OUTPUT\",\n \"INPUT\",\n \"HIGH\",\n \"LOW\"\n ]\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record} */ (ARDUINO.keywords);\n\n kws.type = [\n ...kws.type,\n ...ARDUINO_KW.type\n ];\n kws.literal = [\n ...kws.literal,\n ...ARDUINO_KW.literal\n ];\n kws.built_in = [\n ...kws.built_in,\n ...ARDUINO_KW.built_in\n ];\n kws._hints = ARDUINO_KW._hints;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = [ 'ino' ];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella \nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = { variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', { relevance: 0 }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ] };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: [ 'arm' ],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '\n // ARM directives\n + 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' // standard registers\n + 'w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 ' // 32 bit ARMv8 registers\n + 'w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 '\n + 'x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 ' // 64 bit ARMv8 registers\n + 'x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 '\n + 'pc lr sp ip sl sb fp ' // typical regs plus backward compatibility\n + 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' // more regs and fp\n + 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' // coprocessor regs\n + 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' // more coproc\n + 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' // advanced SIMD NEON regs\n\n // program status registers\n + 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '\n + 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '\n\n // NEON and VFP registers\n + 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '\n + 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '\n + 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '\n + 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 '\n\n + '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' // mnemonics\n + 'adc|'\n + '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'\n + 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'\n + 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'\n + 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'\n + 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'\n + 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'\n + 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'\n + 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'\n + 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'\n + 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'\n + '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'\n + 'wfe|wfi|yield'\n + ')'\n + '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' // condition codes\n + '[sptrx]?' // legal postfixes\n + '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+' },\n { // bin\n begin: '[#$=]?0b[01]+' },\n { // literal\n begin: '[#$=]\\\\d+' },\n { // bare number\n begin: '\\\\b\\\\d+' }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:' },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+' },\n { // label reference\n begin: '[=#]\\\\w+' }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common, web\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n const regex = hljs.regex;\n // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar\n // OTHER_NAME_CHARS = /[:\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]/;\n // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);;\n // const XML_IDENT_RE = /[A-Z_a-z:\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+/;\n // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/, regex.optional(/[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:/), /[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*/);\n // however, to cater for performance and more Unicode support rely simply on the Unicode letter class\n const TAG_NAME_RE = regex.concat(/[\\p{L}_]/u, regex.optional(/[\\p{L}0-9_.-]*:/u), /[\\p{L}0-9_.-]*/u);\n const XML_IDENT_RE = /[\\p{L}0-9._:-]+/u;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { className: 'string' });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { className: 'string' });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /`]+/ }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n unicodeRegex: true,\n contains: [\n {\n className: 'meta',\n begin: //,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: //,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n //,\n { relevance: 10 }\n ),\n {\n begin: //,\n relevance: 10\n },\n XML_ENTITIES,\n // xml processing instructions\n {\n className: 'meta',\n end: /\\?>/,\n variants: [\n {\n begin: /<\\?xml/,\n relevance: 10,\n contains: [\n QUOTE_META_STRING_MODE\n ]\n },\n {\n begin: /<\\?[a-z][a-z0-9]+/,\n }\n ]\n\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n ')/,\n end: />/,\n keywords: { name: 'style' },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the \n","\n\n\n\n\n","import { ObservableV2 } from 'lib0/observable';\nimport * as array from 'lib0/array';\nimport * as math from 'lib0/math';\nimport * as map from 'lib0/map';\nimport * as encoding from 'lib0/encoding';\nimport * as decoding from 'lib0/decoding';\nimport * as random from 'lib0/random';\nimport * as promise from 'lib0/promise';\nimport * as buffer from 'lib0/buffer';\nimport * as error from 'lib0/error';\nimport * as binary from 'lib0/binary';\nimport * as f from 'lib0/function';\nimport { callAll } from 'lib0/function';\nimport * as set from 'lib0/set';\nimport * as logging from 'lib0/logging';\nimport * as time from 'lib0/time';\nimport * as string from 'lib0/string';\nimport * as iterator from 'lib0/iterator';\nimport * as object from 'lib0/object';\nimport * as env from 'lib0/environment';\n\n/**\n * This is an abstract interface that all Connectors should implement to keep them interchangeable.\n *\n * @note This interface is experimental and it is not advised to actually inherit this class.\n * It just serves as typing information.\n *\n * @extends {ObservableV2}\n */\nclass AbstractConnector extends ObservableV2 {\n /**\n * @param {Doc} ydoc\n * @param {any} awareness\n */\n constructor (ydoc, awareness) {\n super();\n this.doc = ydoc;\n this.awareness = awareness;\n }\n}\n\nclass DeleteItem {\n /**\n * @param {number} clock\n * @param {number} len\n */\n constructor (clock, len) {\n /**\n * @type {number}\n */\n this.clock = clock;\n /**\n * @type {number}\n */\n this.len = len;\n }\n}\n\n/**\n * We no longer maintain a DeleteStore. DeleteSet is a temporary object that is created when needed.\n * - When created in a transaction, it must only be accessed after sorting, and merging\n * - This DeleteSet is send to other clients\n * - We do not create a DeleteSet when we send a sync message. The DeleteSet message is created directly from StructStore\n * - We read a DeleteSet as part of a sync/update message. In this case the DeleteSet is already sorted and merged.\n */\nclass DeleteSet {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map();\n }\n}\n\n/**\n * Iterate over all structs that the DeleteSet gc's.\n *\n * @param {Transaction} transaction\n * @param {DeleteSet} ds\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nconst iterateDeletedStructs = (transaction, ds, f) =>\n ds.clients.forEach((deletes, clientid) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(clientid));\n for (let i = 0; i < deletes.length; i++) {\n const del = deletes[i];\n iterateStructs(transaction, structs, del.clock, del.len, f);\n }\n });\n\n/**\n * @param {Array} dis\n * @param {number} clock\n * @return {number|null}\n *\n * @private\n * @function\n */\nconst findIndexDS = (dis, clock) => {\n let left = 0;\n let right = dis.length - 1;\n while (left <= right) {\n const midindex = math.floor((left + right) / 2);\n const mid = dis[midindex];\n const midclock = mid.clock;\n if (midclock <= clock) {\n if (clock < midclock + mid.len) {\n return midindex\n }\n left = midindex + 1;\n } else {\n right = midindex - 1;\n }\n }\n return null\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {ID} id\n * @return {boolean}\n *\n * @private\n * @function\n */\nconst isDeleted = (ds, id) => {\n const dis = ds.clients.get(id.client);\n return dis !== undefined && findIndexDS(dis, id.clock) !== null\n};\n\n/**\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nconst sortAndMergeDeleteSet = ds => {\n ds.clients.forEach(dels => {\n dels.sort((a, b) => a.clock - b.clock);\n // merge items without filtering or splicing the array\n // i is the current pointer\n // j refers to the current insert position for the pointed item\n // try to merge dels[i] into dels[j-1] or set dels[j]=dels[i]\n let i, j;\n for (i = 1, j = 1; i < dels.length; i++) {\n const left = dels[j - 1];\n const right = dels[i];\n if (left.clock + left.len >= right.clock) {\n left.len = math.max(left.len, right.clock + right.len - left.clock);\n } else {\n if (j < i) {\n dels[j] = right;\n }\n j++;\n }\n }\n dels.length = j;\n });\n};\n\n/**\n * @param {Array} dss\n * @return {DeleteSet} A fresh DeleteSet\n */\nconst mergeDeleteSets = dss => {\n const merged = new DeleteSet();\n for (let dssI = 0; dssI < dss.length; dssI++) {\n dss[dssI].clients.forEach((delsLeft, client) => {\n if (!merged.clients.has(client)) {\n // Write all missing keys from current ds and all following.\n // If merged already contains `client` current ds has already been added.\n /**\n * @type {Array}\n */\n const dels = delsLeft.slice();\n for (let i = dssI + 1; i < dss.length; i++) {\n array.appendTo(dels, dss[i].clients.get(client) || []);\n }\n merged.clients.set(client, dels);\n }\n });\n }\n sortAndMergeDeleteSet(merged);\n return merged\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {number} client\n * @param {number} clock\n * @param {number} length\n *\n * @private\n * @function\n */\nconst addToDeleteSet = (ds, client, clock, length) => {\n map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([])).push(new DeleteItem(clock, length));\n};\n\nconst createDeleteSet = () => new DeleteSet();\n\n/**\n * @param {StructStore} ss\n * @return {DeleteSet} Merged and sorted DeleteSet\n *\n * @private\n * @function\n */\nconst createDeleteSetFromStructStore = ss => {\n const ds = createDeleteSet();\n ss.clients.forEach((structs, client) => {\n /**\n * @type {Array}\n */\n const dsitems = [];\n for (let i = 0; i < structs.length; i++) {\n const struct = structs[i];\n if (struct.deleted) {\n const clock = struct.id.clock;\n let len = struct.length;\n if (i + 1 < structs.length) {\n for (let next = structs[i + 1]; i + 1 < structs.length && next.deleted; next = structs[++i + 1]) {\n len += next.length;\n }\n }\n dsitems.push(new DeleteItem(clock, len));\n }\n }\n if (dsitems.length > 0) {\n ds.clients.set(client, dsitems);\n }\n });\n return ds\n};\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nconst writeDeleteSet = (encoder, ds) => {\n encoding.writeVarUint(encoder.restEncoder, ds.clients.size);\n\n // Ensure that the delete set is written in a deterministic order\n array.from(ds.clients.entries())\n .sort((a, b) => b[0] - a[0])\n .forEach(([client, dsitems]) => {\n encoder.resetDsCurVal();\n encoding.writeVarUint(encoder.restEncoder, client);\n const len = dsitems.length;\n encoding.writeVarUint(encoder.restEncoder, len);\n for (let i = 0; i < len; i++) {\n const item = dsitems[i];\n encoder.writeDsClock(item.clock);\n encoder.writeDsLen(item.len);\n }\n });\n};\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {DeleteSet}\n *\n * @private\n * @function\n */\nconst readDeleteSet = decoder => {\n const ds = new DeleteSet();\n const numClients = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal();\n const client = decoding.readVarUint(decoder.restDecoder);\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder);\n if (numberOfDeletes > 0) {\n const dsField = map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([]));\n for (let i = 0; i < numberOfDeletes; i++) {\n dsField.push(new DeleteItem(decoder.readDsClock(), decoder.readDsLen()));\n }\n }\n }\n return ds\n};\n\n/**\n * @todo YDecoder also contains references to String and other Decoders. Would make sense to exchange YDecoder.toUint8Array for YDecoder.DsToUint8Array()..\n */\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {Uint8Array|null} Returns a v2 update containing all deletes that couldn't be applied yet; or null if all deletes were applied successfully.\n *\n * @private\n * @function\n */\nconst readAndApplyDeleteSet = (decoder, transaction, store) => {\n const unappliedDS = new DeleteSet();\n const numClients = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal();\n const client = decoding.readVarUint(decoder.restDecoder);\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder);\n const structs = store.clients.get(client) || [];\n const state = getState(store, client);\n for (let i = 0; i < numberOfDeletes; i++) {\n const clock = decoder.readDsClock();\n const clockEnd = clock + decoder.readDsLen();\n if (clock < state) {\n if (state < clockEnd) {\n addToDeleteSet(unappliedDS, client, state, clockEnd - state);\n }\n let index = findIndexSS(structs, clock);\n /**\n * We can ignore the case of GC and Delete structs, because we are going to skip them\n * @type {Item}\n */\n // @ts-ignore\n let struct = structs[index];\n // split the first item if necessary\n if (!struct.deleted && struct.id.clock < clock) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock));\n index++; // increase we now want to use the next struct\n }\n while (index < structs.length) {\n // @ts-ignore\n struct = structs[index++];\n if (struct.id.clock < clockEnd) {\n if (!struct.deleted) {\n if (clockEnd < struct.id.clock + struct.length) {\n structs.splice(index, 0, splitItem(transaction, struct, clockEnd - struct.id.clock));\n }\n struct.delete(transaction);\n }\n } else {\n break\n }\n }\n } else {\n addToDeleteSet(unappliedDS, client, clock, clockEnd - clock);\n }\n }\n }\n if (unappliedDS.clients.size > 0) {\n const ds = new UpdateEncoderV2();\n encoding.writeVarUint(ds.restEncoder, 0); // encode 0 structs\n writeDeleteSet(ds, unappliedDS);\n return ds.toUint8Array()\n }\n return null\n};\n\n/**\n * @param {DeleteSet} ds1\n * @param {DeleteSet} ds2\n */\nconst equalDeleteSets = (ds1, ds2) => {\n if (ds1.clients.size !== ds2.clients.size) return false\n for (const [client, deleteItems1] of ds1.clients.entries()) {\n const deleteItems2 = /** @type {Array} */ (ds2.clients.get(client));\n if (deleteItems2 === undefined || deleteItems1.length !== deleteItems2.length) return false\n for (let i = 0; i < deleteItems1.length; i++) {\n const di1 = deleteItems1[i];\n const di2 = deleteItems2[i];\n if (di1.clock !== di2.clock || di1.len !== di2.len) {\n return false\n }\n }\n }\n return true\n};\n\n/**\n * @module Y\n */\n\n\nconst generateNewClientId = random.uint32;\n\n/**\n * @typedef {Object} DocOpts\n * @property {boolean} [DocOpts.gc=true] Disable garbage collection (default: gc=true)\n * @property {function(Item):boolean} [DocOpts.gcFilter] Will be called before an Item is garbage collected. Return false to keep the Item.\n * @property {string} [DocOpts.guid] Define a globally unique identifier for this document\n * @property {string | null} [DocOpts.collectionid] Associate this document with a collection. This only plays a role if your provider has a concept of collection.\n * @property {any} [DocOpts.meta] Any kind of meta information you want to associate with this document. If this is a subdocument, remote peers will store the meta information as well.\n * @property {boolean} [DocOpts.autoLoad] If a subdocument, automatically load document. If this is a subdocument, remote peers will load the document as well automatically.\n * @property {boolean} [DocOpts.shouldLoad] Whether the document should be synced by the provider now. This is toggled to true when you call ydoc.load()\n */\n\n/**\n * @typedef {Object} DocEvents\n * @property {function(Doc):void} DocEvents.destroy\n * @property {function(Doc):void} DocEvents.load\n * @property {function(boolean, Doc):void} DocEvents.sync\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.update\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.updateV2\n * @property {function(Doc):void} DocEvents.beforeAllTransactions\n * @property {function(Transaction, Doc):void} DocEvents.beforeTransaction\n * @property {function(Transaction, Doc):void} DocEvents.beforeObserverCalls\n * @property {function(Transaction, Doc):void} DocEvents.afterTransaction\n * @property {function(Transaction, Doc):void} DocEvents.afterTransactionCleanup\n * @property {function(Doc, Array):void} DocEvents.afterAllTransactions\n * @property {function({ loaded: Set, added: Set, removed: Set }, Doc, Transaction):void} DocEvents.subdocs\n */\n\n/**\n * A Yjs instance handles the state of shared data.\n * @extends ObservableV2\n */\nclass Doc extends ObservableV2 {\n /**\n * @param {DocOpts} opts configuration\n */\n constructor ({ guid = random.uuidv4(), collectionid = null, gc = true, gcFilter = () => true, meta = null, autoLoad = false, shouldLoad = true } = {}) {\n super();\n this.gc = gc;\n this.gcFilter = gcFilter;\n this.clientID = generateNewClientId();\n this.guid = guid;\n this.collectionid = collectionid;\n /**\n * @type {Map>>}\n */\n this.share = new Map();\n this.store = new StructStore();\n /**\n * @type {Transaction | null}\n */\n this._transaction = null;\n /**\n * @type {Array}\n */\n this._transactionCleanups = [];\n /**\n * @type {Set}\n */\n this.subdocs = new Set();\n /**\n * If this document is a subdocument - a document integrated into another document - then _item is defined.\n * @type {Item?}\n */\n this._item = null;\n this.shouldLoad = shouldLoad;\n this.autoLoad = autoLoad;\n this.meta = meta;\n /**\n * This is set to true when the persistence provider loaded the document from the database or when the `sync` event fires.\n * Note that not all providers implement this feature. Provider authors are encouraged to fire the `load` event when the doc content is loaded from the database.\n *\n * @type {boolean}\n */\n this.isLoaded = false;\n /**\n * This is set to true when the connection provider has successfully synced with a backend.\n * Note that when using peer-to-peer providers this event may not provide very useful.\n * Also note that not all providers implement this feature. Provider authors are encouraged to fire\n * the `sync` event when the doc has been synced (with `true` as a parameter) or if connection is\n * lost (with false as a parameter).\n */\n this.isSynced = false;\n this.isDestroyed = false;\n /**\n * Promise that resolves once the document has been loaded from a presistence provider.\n */\n this.whenLoaded = promise.create(resolve => {\n this.on('load', () => {\n this.isLoaded = true;\n resolve(this);\n });\n });\n const provideSyncedPromise = () => promise.create(resolve => {\n /**\n * @param {boolean} isSynced\n */\n const eventHandler = (isSynced) => {\n if (isSynced === undefined || isSynced === true) {\n this.off('sync', eventHandler);\n resolve();\n }\n };\n this.on('sync', eventHandler);\n });\n this.on('sync', isSynced => {\n if (isSynced === false && this.isSynced) {\n this.whenSynced = provideSyncedPromise();\n }\n this.isSynced = isSynced === undefined || isSynced === true;\n if (this.isSynced && !this.isLoaded) {\n this.emit('load', [this]);\n }\n });\n /**\n * Promise that resolves once the document has been synced with a backend.\n * This promise is recreated when the connection is lost.\n * Note the documentation about the `isSynced` property.\n */\n this.whenSynced = provideSyncedPromise();\n }\n\n /**\n * Notify the parent document that you request to load data into this subdocument (if it is a subdocument).\n *\n * `load()` might be used in the future to request any provider to load the most current data.\n *\n * It is safe to call `load()` multiple times.\n */\n load () {\n const item = this._item;\n if (item !== null && !this.shouldLoad) {\n transact(/** @type {any} */ (item.parent).doc, transaction => {\n transaction.subdocsLoaded.add(this);\n }, null, true);\n }\n this.shouldLoad = true;\n }\n\n getSubdocs () {\n return this.subdocs\n }\n\n getSubdocGuids () {\n return new Set(array.from(this.subdocs).map(doc => doc.guid))\n }\n\n /**\n * Changes that happen inside of a transaction are bundled. This means that\n * the observer fires _after_ the transaction is finished and that all changes\n * that happened inside of the transaction are sent as one message to the\n * other peers.\n *\n * @template T\n * @param {function(Transaction):T} f The function that should be executed as a transaction\n * @param {any} [origin] Origin of who started the transaction. Will be stored on transaction.origin\n * @return T\n *\n * @public\n */\n transact (f, origin = null) {\n return transact(this, f, origin)\n }\n\n /**\n * Define a shared data type.\n *\n * Multiple calls of `ydoc.get(name, TypeConstructor)` yield the same result\n * and do not overwrite each other. I.e.\n * `ydoc.get(name, Y.Array) === ydoc.get(name, Y.Array)`\n *\n * After this method is called, the type is also available on `ydoc.share.get(name)`.\n *\n * *Best Practices:*\n * Define all types right after the Y.Doc instance is created and store them in a separate object.\n * Also use the typed methods `getText(name)`, `getArray(name)`, ..\n *\n * @template {typeof AbstractType} Type\n * @example\n * const ydoc = new Y.Doc(..)\n * const appState = {\n * document: ydoc.getText('document')\n * comments: ydoc.getArray('comments')\n * }\n *\n * @param {string} name\n * @param {Type} TypeConstructor The constructor of the type definition. E.g. Y.Text, Y.Array, Y.Map, ...\n * @return {InstanceType} The created type. Constructed with TypeConstructor\n *\n * @public\n */\n get (name, TypeConstructor = /** @type {any} */ (AbstractType)) {\n const type = map.setIfUndefined(this.share, name, () => {\n // @ts-ignore\n const t = new TypeConstructor();\n t._integrate(this, null);\n return t\n });\n const Constr = type.constructor;\n if (TypeConstructor !== AbstractType && Constr !== TypeConstructor) {\n if (Constr === AbstractType) {\n // @ts-ignore\n const t = new TypeConstructor();\n t._map = type._map;\n type._map.forEach(/** @param {Item?} n */ n => {\n for (; n !== null; n = n.left) {\n // @ts-ignore\n n.parent = t;\n }\n });\n t._start = type._start;\n for (let n = t._start; n !== null; n = n.right) {\n n.parent = t;\n }\n t._length = type._length;\n this.share.set(name, t);\n t._integrate(this, null);\n return /** @type {InstanceType} */ (t)\n } else {\n throw new Error(`Type with the name ${name} has already been defined with a different constructor`)\n }\n }\n return /** @type {InstanceType} */ (type)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YArray}\n *\n * @public\n */\n getArray (name = '') {\n return /** @type {YArray} */ (this.get(name, YArray))\n }\n\n /**\n * @param {string} [name]\n * @return {YText}\n *\n * @public\n */\n getText (name = '') {\n return this.get(name, YText)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YMap}\n *\n * @public\n */\n getMap (name = '') {\n return /** @type {YMap} */ (this.get(name, YMap))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlElement}\n *\n * @public\n */\n getXmlElement (name = '') {\n return /** @type {YXmlElement<{[key:string]:string}>} */ (this.get(name, YXmlElement))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlFragment}\n *\n * @public\n */\n getXmlFragment (name = '') {\n return this.get(name, YXmlFragment)\n }\n\n /**\n * Converts the entire document into a js object, recursively traversing each yjs type\n * Doesn't log types that have not been defined (using ydoc.getType(..)).\n *\n * @deprecated Do not use this method and rather call toJSON directly on the shared types.\n *\n * @return {Object}\n */\n toJSON () {\n /**\n * @type {Object}\n */\n const doc = {};\n\n this.share.forEach((value, key) => {\n doc[key] = value.toJSON();\n });\n\n return doc\n }\n\n /**\n * Emit `destroy` event and unregister all event handlers.\n */\n destroy () {\n this.isDestroyed = true;\n array.from(this.subdocs).forEach(subdoc => subdoc.destroy());\n const item = this._item;\n if (item !== null) {\n this._item = null;\n const content = /** @type {ContentDoc} */ (item.content);\n content.doc = new Doc({ guid: this.guid, ...content.opts, shouldLoad: false });\n content.doc._item = item;\n transact(/** @type {any} */ (item).parent.doc, transaction => {\n const doc = content.doc;\n if (!item.deleted) {\n transaction.subdocsAdded.add(doc);\n }\n transaction.subdocsRemoved.add(this);\n }, null, true);\n }\n // @ts-ignore\n this.emit('destroyed', [true]); // DEPRECATED!\n this.emit('destroy', [this]);\n super.destroy();\n }\n}\n\nclass DSDecoderV1 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n this.restDecoder = decoder;\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n}\n\nclass UpdateDecoderV1 extends DSDecoderV1 {\n /**\n * @return {ID}\n */\n readLeftID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return decoding.readUint8(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readString () {\n return decoding.readVarString(this.restDecoder)\n }\n\n /**\n * @return {boolean} isKey\n */\n readParentInfo () {\n return decoding.readVarUint(this.restDecoder) === 1\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readTypeRef () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number} len\n */\n readLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return buffer.copyUint8Array(decoding.readVarUint8Array(this.restDecoder))\n }\n\n /**\n * Legacy implementation uses JSON parse. We use any-decoding in v2.\n *\n * @return {any}\n */\n readJSON () {\n return JSON.parse(decoding.readVarString(this.restDecoder))\n }\n\n /**\n * @return {string}\n */\n readKey () {\n return decoding.readVarString(this.restDecoder)\n }\n}\n\nclass DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n /**\n * @private\n */\n this.dsCurrVal = 0;\n this.restDecoder = decoder;\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0;\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n this.dsCurrVal += decoding.readVarUint(this.restDecoder);\n return this.dsCurrVal\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n const diff = decoding.readVarUint(this.restDecoder) + 1;\n this.dsCurrVal += diff;\n return diff\n }\n}\n\nclass UpdateDecoderV2 extends DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n super(decoder);\n /**\n * List of cached keys. If the keys[id] does not exist, we read a new key\n * from stringEncoder and push it to keys.\n *\n * @type {Array}\n */\n this.keys = [];\n decoding.readVarUint(decoder); // read feature flag - currently unused\n this.keyClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.clientDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.leftClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.rightClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.infoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8);\n this.stringDecoder = new decoding.StringDecoder(decoding.readVarUint8Array(decoder));\n this.parentInfoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8);\n this.typeRefDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n this.lenDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder));\n }\n\n /**\n * @return {ID}\n */\n readLeftID () {\n return new ID(this.clientDecoder.read(), this.leftClockDecoder.read())\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return new ID(this.clientDecoder.read(), this.rightClockDecoder.read())\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return this.clientDecoder.read()\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return /** @type {number} */ (this.infoDecoder.read())\n }\n\n /**\n * @return {string}\n */\n readString () {\n return this.stringDecoder.read()\n }\n\n /**\n * @return {boolean}\n */\n readParentInfo () {\n return this.parentInfoDecoder.read() === 1\n }\n\n /**\n * @return {number} An unsigned 8-bit integer\n */\n readTypeRef () {\n return this.typeRefDecoder.read()\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number}\n */\n readLen () {\n return this.lenDecoder.read()\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return decoding.readVarUint8Array(this.restDecoder)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @return {any}\n */\n readJSON () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readKey () {\n const keyClock = this.keyClockDecoder.read();\n if (keyClock < this.keys.length) {\n return this.keys[keyClock]\n } else {\n const key = this.stringDecoder.read();\n this.keys.push(key);\n return key\n }\n }\n}\n\nclass DSEncoderV1 {\n constructor () {\n this.restEncoder = encoding.createEncoder();\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n encoding.writeVarUint(this.restEncoder, clock);\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n encoding.writeVarUint(this.restEncoder, len);\n }\n}\n\nclass UpdateEncoderV1 extends DSEncoderV1 {\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n encoding.writeVarUint(this.restEncoder, id.client);\n encoding.writeVarUint(this.restEncoder, id.clock);\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n encoding.writeVarUint(this.restEncoder, id.client);\n encoding.writeVarUint(this.restEncoder, id.clock);\n }\n\n /**\n * Use writeClient and writeClock instead of writeID if possible.\n * @param {number} client\n */\n writeClient (client) {\n encoding.writeVarUint(this.restEncoder, client);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n encoding.writeUint8(this.restEncoder, info);\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n encoding.writeVarString(this.restEncoder, s);\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n encoding.writeVarUint(this.restEncoder, isYKey ? 1 : 0);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n encoding.writeVarUint(this.restEncoder, info);\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n encoding.writeVarUint(this.restEncoder, len);\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any);\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf);\n }\n\n /**\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeVarString(this.restEncoder, JSON.stringify(embed));\n }\n\n /**\n * @param {string} key\n */\n writeKey (key) {\n encoding.writeVarString(this.restEncoder, key);\n }\n}\n\nclass DSEncoderV2 {\n constructor () {\n this.restEncoder = encoding.createEncoder(); // encodes all the rest / non-optimized\n this.dsCurrVal = 0;\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0;\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n const diff = clock - this.dsCurrVal;\n this.dsCurrVal = clock;\n encoding.writeVarUint(this.restEncoder, diff);\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n if (len === 0) {\n error.unexpectedCase();\n }\n encoding.writeVarUint(this.restEncoder, len - 1);\n this.dsCurrVal += len;\n }\n}\n\nclass UpdateEncoderV2 extends DSEncoderV2 {\n constructor () {\n super();\n /**\n * @type {Map}\n */\n this.keyMap = new Map();\n /**\n * Refers to the next uniqe key-identifier to me used.\n * See writeKey method for more information.\n *\n * @type {number}\n */\n this.keyClock = 0;\n this.keyClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.clientEncoder = new encoding.UintOptRleEncoder();\n this.leftClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.rightClockEncoder = new encoding.IntDiffOptRleEncoder();\n this.infoEncoder = new encoding.RleEncoder(encoding.writeUint8);\n this.stringEncoder = new encoding.StringEncoder();\n this.parentInfoEncoder = new encoding.RleEncoder(encoding.writeUint8);\n this.typeRefEncoder = new encoding.UintOptRleEncoder();\n this.lenEncoder = new encoding.UintOptRleEncoder();\n }\n\n toUint8Array () {\n const encoder = encoding.createEncoder();\n encoding.writeVarUint(encoder, 0); // this is a feature flag that we might use in the future\n encoding.writeVarUint8Array(encoder, this.keyClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.clientEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.leftClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.rightClockEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.infoEncoder));\n encoding.writeVarUint8Array(encoder, this.stringEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.parentInfoEncoder));\n encoding.writeVarUint8Array(encoder, this.typeRefEncoder.toUint8Array());\n encoding.writeVarUint8Array(encoder, this.lenEncoder.toUint8Array());\n // @note The rest encoder is appended! (note the missing var)\n encoding.writeUint8Array(encoder, encoding.toUint8Array(this.restEncoder));\n return encoding.toUint8Array(encoder)\n }\n\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n this.clientEncoder.write(id.client);\n this.leftClockEncoder.write(id.clock);\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n this.clientEncoder.write(id.client);\n this.rightClockEncoder.write(id.clock);\n }\n\n /**\n * @param {number} client\n */\n writeClient (client) {\n this.clientEncoder.write(client);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n this.infoEncoder.write(info);\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n this.stringEncoder.write(s);\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n this.parentInfoEncoder.write(isYKey ? 1 : 0);\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n this.typeRefEncoder.write(info);\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n this.lenEncoder.write(len);\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any);\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf);\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeAny(this.restEncoder, embed);\n }\n\n /**\n * Property keys are often reused. For example, in y-prosemirror the key `bold` might\n * occur very often. For a 3d application, the key `position` might occur very often.\n *\n * We cache these keys in a Map and refer to them via a unique number.\n *\n * @param {string} key\n */\n writeKey (key) {\n const clock = this.keyMap.get(key);\n if (clock === undefined) {\n /**\n * @todo uncomment to introduce this feature finally\n *\n * Background. The ContentFormat object was always encoded using writeKey, but the decoder used to use readString.\n * Furthermore, I forgot to set the keyclock. So everything was working fine.\n *\n * However, this feature here is basically useless as it is not being used (it actually only consumes extra memory).\n *\n * I don't know yet how to reintroduce this feature..\n *\n * Older clients won't be able to read updates when we reintroduce this feature. So this should probably be done using a flag.\n *\n */\n // this.keyMap.set(key, this.keyClock)\n this.keyClockEncoder.write(this.keyClock++);\n this.stringEncoder.write(key);\n } else {\n this.keyClockEncoder.write(clock);\n }\n }\n}\n\n/**\n * @module encoding\n */\n/*\n * We use the first five bits in the info flag for determining the type of the struct.\n *\n * 0: GC\n * 1: Item with Deleted content\n * 2: Item with JSON content\n * 3: Item with Binary content\n * 4: Item with String content\n * 5: Item with Embed content (for richtext content)\n * 6: Item with Format content (a formatting marker for richtext content)\n * 7: Item with Type\n */\n\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Array} structs All structs by `client`\n * @param {number} client\n * @param {number} clock write structs starting with `ID(client,clock)`\n *\n * @function\n */\nconst writeStructs = (encoder, structs, client, clock) => {\n // write first id\n clock = math.max(clock, structs[0].id.clock); // make sure the first id exists\n const startNewStructs = findIndexSS(structs, clock);\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, structs.length - startNewStructs);\n encoder.writeClient(client);\n encoding.writeVarUint(encoder.restEncoder, clock);\n const firstStruct = structs[startNewStructs];\n // write first struct with an offset\n firstStruct.write(encoder, clock - firstStruct.id.clock);\n for (let i = startNewStructs + 1; i < structs.length; i++) {\n structs[i].write(encoder, 0);\n }\n};\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {StructStore} store\n * @param {Map} _sm\n *\n * @private\n * @function\n */\nconst writeClientsStructs = (encoder, store, _sm) => {\n // we filter all valid _sm entries into sm\n const sm = new Map();\n _sm.forEach((clock, client) => {\n // only write if new structs are available\n if (getState(store, client) > clock) {\n sm.set(client, clock);\n }\n });\n getStateVector(store).forEach((_clock, client) => {\n if (!_sm.has(client)) {\n sm.set(client, 0);\n }\n });\n // write # states that were updated\n encoding.writeVarUint(encoder.restEncoder, sm.size);\n // Write items with higher client ids first\n // This heavily improves the conflict algorithm.\n array.from(sm.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n writeStructs(encoder, /** @type {Array} */ (store.clients.get(client)), client, clock);\n });\n};\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder The decoder object to read data from.\n * @param {Doc} doc\n * @return {Map }>}\n *\n * @private\n * @function\n */\nconst readClientsStructRefs = (decoder, doc) => {\n /**\n * @type {Map }>}\n */\n const clientRefs = map.create();\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder);\n /**\n * @type {Array}\n */\n const refs = new Array(numberOfStructs);\n const client = decoder.readClient();\n let clock = decoding.readVarUint(decoder.restDecoder);\n // const start = performance.now()\n clientRefs.set(client, { i: 0, refs });\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo();\n switch (binary.BITS5 & info) {\n case 0: { // GC\n const len = decoder.readLen();\n refs[i] = new GC(createID(client, clock), len);\n clock += len;\n break\n }\n case 10: { // Skip Struct (nothing to apply)\n // @todo we could reduce the amount of checks by adding Skip struct to clientRefs so we know that something is missing.\n const len = decoding.readVarUint(decoder.restDecoder);\n refs[i] = new Skip(createID(client, clock), len);\n clock += len;\n break\n }\n default: { // Item with content\n /**\n * The optimized implementation doesn't use any variables because inlining variables is faster.\n * Below a non-optimized version is shown that implements the basic algorithm with\n * a few comments\n */\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0;\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n cantCopyParentInfo ? (decoder.readParentInfo() ? doc.get(decoder.readString()) : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n );\n /* A non-optimized implementation of the above algorithm:\n\n // The item that was originally to the left of this item.\n const origin = (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null\n // The item that was originally to the right of this item.\n const rightOrigin = (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n const hasParentYKey = cantCopyParentInfo ? decoder.readParentInfo() : false\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const parentYKey = cantCopyParentInfo && hasParentYKey ? decoder.readString() : null\n\n const struct = new Item(\n createID(client, clock),\n null, // left\n origin, // origin\n null, // right\n rightOrigin, // right origin\n cantCopyParentInfo && !hasParentYKey ? decoder.readLeftID() : (parentYKey !== null ? doc.get(parentYKey) : null), // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n */\n refs[i] = struct;\n clock += struct.length;\n }\n }\n }\n // console.log('time to read: ', performance.now() - start) // @todo remove\n }\n return clientRefs\n};\n\n/**\n * Resume computing structs generated by struct readers.\n *\n * While there is something to do, we integrate structs in this order\n * 1. top element on stack, if stack is not empty\n * 2. next element from current struct reader (if empty, use next struct reader)\n *\n * If struct causally depends on another struct (ref.missing), we put next reader of\n * `ref.id.client` on top of stack.\n *\n * At some point we find a struct that has no causal dependencies,\n * then we start emptying the stack.\n *\n * It is not possible to have circles: i.e. struct1 (from client1) depends on struct2 (from client2)\n * depends on struct3 (from client1). Therefore the max stack size is eqaul to `structReaders.length`.\n *\n * This method is implemented in a way so that we can resume computation if this update\n * causally depends on another update.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {Map} clientsStructRefs\n * @return { null | { update: Uint8Array, missing: Map } }\n *\n * @private\n * @function\n */\nconst integrateStructs = (transaction, store, clientsStructRefs) => {\n /**\n * @type {Array}\n */\n const stack = [];\n // sort them so that we take the higher id first, in case of conflicts the lower id will probably not conflict with the id from the higher user.\n let clientsStructRefsIds = array.from(clientsStructRefs.keys()).sort((a, b) => a - b);\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n const getNextStructTarget = () => {\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n let nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]));\n while (nextStructsTarget.refs.length === nextStructsTarget.i) {\n clientsStructRefsIds.pop();\n if (clientsStructRefsIds.length > 0) {\n nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]));\n } else {\n return null\n }\n }\n return nextStructsTarget\n };\n let curStructsTarget = getNextStructTarget();\n if (curStructsTarget === null) {\n return null\n }\n\n /**\n * @type {StructStore}\n */\n const restStructs = new StructStore();\n const missingSV = new Map();\n /**\n * @param {number} client\n * @param {number} clock\n */\n const updateMissingSv = (client, clock) => {\n const mclock = missingSV.get(client);\n if (mclock == null || mclock > clock) {\n missingSV.set(client, clock);\n }\n };\n /**\n * @type {GC|Item}\n */\n let stackHead = /** @type {any} */ (curStructsTarget).refs[/** @type {any} */ (curStructsTarget).i++];\n // caching the state because it is used very often\n const state = new Map();\n\n const addStackToRestSS = () => {\n for (const item of stack) {\n const client = item.id.client;\n const unapplicableItems = clientsStructRefs.get(client);\n if (unapplicableItems) {\n // decrement because we weren't able to apply previous operation\n unapplicableItems.i--;\n restStructs.clients.set(client, unapplicableItems.refs.slice(unapplicableItems.i));\n clientsStructRefs.delete(client);\n unapplicableItems.i = 0;\n unapplicableItems.refs = [];\n } else {\n // item was the last item on clientsStructRefs and the field was already cleared. Add item to restStructs and continue\n restStructs.clients.set(client, [item]);\n }\n // remove client from clientsStructRefsIds to prevent users from applying the same update again\n clientsStructRefsIds = clientsStructRefsIds.filter(c => c !== client);\n }\n stack.length = 0;\n };\n\n // iterate over all struct readers until we are done\n while (true) {\n if (stackHead.constructor !== Skip) {\n const localClock = map.setIfUndefined(state, stackHead.id.client, () => getState(store, stackHead.id.client));\n const offset = localClock - stackHead.id.clock;\n if (offset < 0) {\n // update from the same client is missing\n stack.push(stackHead);\n updateMissingSv(stackHead.id.client, stackHead.id.clock - 1);\n // hid a dead wall, add all items from stack to restSS\n addStackToRestSS();\n } else {\n const missing = stackHead.getMissing(transaction, store);\n if (missing !== null) {\n stack.push(stackHead);\n // get the struct reader that has the missing struct\n /**\n * @type {{ refs: Array, i: number }}\n */\n const structRefs = clientsStructRefs.get(/** @type {number} */ (missing)) || { refs: [], i: 0 };\n if (structRefs.refs.length === structRefs.i) {\n // This update message causally depends on another update message that doesn't exist yet\n updateMissingSv(/** @type {number} */ (missing), getState(store, missing));\n addStackToRestSS();\n } else {\n stackHead = structRefs.refs[structRefs.i++];\n continue\n }\n } else if (offset === 0 || offset < stackHead.length) {\n // all fine, apply the stackhead\n stackHead.integrate(transaction, offset);\n state.set(stackHead.id.client, stackHead.id.clock + stackHead.length);\n }\n }\n }\n // iterate to next stackHead\n if (stack.length > 0) {\n stackHead = /** @type {GC|Item} */ (stack.pop());\n } else if (curStructsTarget !== null && curStructsTarget.i < curStructsTarget.refs.length) {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++]);\n } else {\n curStructsTarget = getNextStructTarget();\n if (curStructsTarget === null) {\n // we are done!\n break\n } else {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++]);\n }\n }\n }\n if (restStructs.clients.size > 0) {\n const encoder = new UpdateEncoderV2();\n writeClientsStructs(encoder, restStructs, new Map());\n // write empty deleteset\n // writeDeleteSet(encoder, new DeleteSet())\n encoding.writeVarUint(encoder.restEncoder, 0); // => no need for an extra function call, just write 0 deletes\n return { missing: missingSV, update: encoder.toUint8Array() }\n }\n return null\n};\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nconst writeStructsFromTransaction = (encoder, transaction) => writeClientsStructs(encoder, transaction.doc.store, transaction.beforeState);\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {UpdateDecoderV1 | UpdateDecoderV2} [structDecoder]\n *\n * @function\n */\nconst readUpdateV2 = (decoder, ydoc, transactionOrigin, structDecoder = new UpdateDecoderV2(decoder)) =>\n transact(ydoc, transaction => {\n // force that transaction.local is set to non-local\n transaction.local = false;\n let retry = false;\n const doc = transaction.doc;\n const store = doc.store;\n // let start = performance.now()\n const ss = readClientsStructRefs(structDecoder, doc);\n // console.log('time to read structs: ', performance.now() - start) // @todo remove\n // start = performance.now()\n // console.log('time to merge: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const restStructs = integrateStructs(transaction, store, ss);\n const pending = store.pendingStructs;\n if (pending) {\n // check if we can apply something\n for (const [client, clock] of pending.missing) {\n if (clock < getState(store, client)) {\n retry = true;\n break\n }\n }\n if (restStructs) {\n // merge restStructs into store.pending\n for (const [client, clock] of restStructs.missing) {\n const mclock = pending.missing.get(client);\n if (mclock == null || mclock > clock) {\n pending.missing.set(client, clock);\n }\n }\n pending.update = mergeUpdatesV2([pending.update, restStructs.update]);\n }\n } else {\n store.pendingStructs = restStructs;\n }\n // console.log('time to integrate: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const dsRest = readAndApplyDeleteSet(structDecoder, transaction, store);\n if (store.pendingDs) {\n // @todo we could make a lower-bound state-vector check as we do above\n const pendingDSUpdate = new UpdateDecoderV2(decoding.createDecoder(store.pendingDs));\n decoding.readVarUint(pendingDSUpdate.restDecoder); // read 0 structs, because we only encode deletes in pendingdsupdate\n const dsRest2 = readAndApplyDeleteSet(pendingDSUpdate, transaction, store);\n if (dsRest && dsRest2) {\n // case 1: ds1 != null && ds2 != null\n store.pendingDs = mergeUpdatesV2([dsRest, dsRest2]);\n } else {\n // case 2: ds1 != null\n // case 3: ds2 != null\n // case 4: ds1 == null && ds2 == null\n store.pendingDs = dsRest || dsRest2;\n }\n } else {\n // Either dsRest == null && pendingDs == null OR dsRest != null\n store.pendingDs = dsRest;\n }\n // console.log('time to cleanup: ', performance.now() - start) // @todo remove\n // start = performance.now()\n\n // console.log('time to resume delete readers: ', performance.now() - start) // @todo remove\n // start = performance.now()\n if (retry) {\n const update = /** @type {{update: Uint8Array}} */ (store.pendingStructs).update;\n store.pendingStructs = null;\n applyUpdateV2(transaction.doc, update);\n }\n }, transactionOrigin, false);\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nconst readUpdate = (decoder, ydoc, transactionOrigin) => readUpdateV2(decoder, ydoc, transactionOrigin, new UpdateDecoderV1(decoder));\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n *\n * @function\n */\nconst applyUpdateV2 = (ydoc, update, transactionOrigin, YDecoder = UpdateDecoderV2) => {\n const decoder = decoding.createDecoder(update);\n readUpdateV2(decoder, ydoc, transactionOrigin, new YDecoder(decoder));\n};\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nconst applyUpdate = (ydoc, update, transactionOrigin) => applyUpdateV2(ydoc, update, transactionOrigin, UpdateDecoderV1);\n\n/**\n * Write all the document as a single update message. If you specify the state of the remote client (`targetStateVector`) it will\n * only write the operations that are missing.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Doc} doc\n * @param {Map} [targetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n *\n * @function\n */\nconst writeStateAsUpdate = (encoder, doc, targetStateVector = new Map()) => {\n writeClientsStructs(encoder, doc.store, targetStateVector);\n writeDeleteSet(encoder, createDeleteSetFromStructStore(doc.store));\n};\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @param {UpdateEncoderV1 | UpdateEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateAsUpdateV2 = (doc, encodedTargetStateVector = new Uint8Array([0]), encoder = new UpdateEncoderV2()) => {\n const targetStateVector = decodeStateVector(encodedTargetStateVector);\n writeStateAsUpdate(encoder, doc, targetStateVector);\n const updates = [encoder.toUint8Array()];\n // also add the pending updates (if there are any)\n if (doc.store.pendingDs) {\n updates.push(doc.store.pendingDs);\n }\n if (doc.store.pendingStructs) {\n updates.push(diffUpdateV2(doc.store.pendingStructs.update, encodedTargetStateVector));\n }\n if (updates.length > 1) {\n if (encoder.constructor === UpdateEncoderV1) {\n return mergeUpdates(updates.map((update, i) => i === 0 ? update : convertUpdateFormatV2ToV1(update)))\n } else if (encoder.constructor === UpdateEncoderV2) {\n return mergeUpdatesV2(updates)\n }\n }\n return updates[0]\n};\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateAsUpdate = (doc, encodedTargetStateVector) => encodeStateAsUpdateV2(doc, encodedTargetStateVector, new UpdateEncoderV1());\n\n/**\n * Read state vector from Decoder and return as Map\n *\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nconst readStateVector = decoder => {\n const ss = new Map();\n const ssLength = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < ssLength; i++) {\n const client = decoding.readVarUint(decoder.restDecoder);\n const clock = decoding.readVarUint(decoder.restDecoder);\n ss.set(client, clock);\n }\n return ss\n};\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\n// export const decodeStateVectorV2 = decodedState => readStateVector(new DSDecoderV2(decoding.createDecoder(decodedState)))\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nconst decodeStateVector = decodedState => readStateVector(new DSDecoderV1(decoding.createDecoder(decodedState)));\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Map} sv\n * @function\n */\nconst writeStateVector = (encoder, sv) => {\n encoding.writeVarUint(encoder.restEncoder, sv.size);\n array.from(sv.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n encoding.writeVarUint(encoder.restEncoder, client); // @todo use a special client decoder that is based on mapping\n encoding.writeVarUint(encoder.restEncoder, clock);\n });\n return encoder\n};\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Doc} doc\n *\n * @function\n */\nconst writeDocumentStateVector = (encoder, doc) => writeStateVector(encoder, getStateVector(doc.store));\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateVectorV2 = (doc, encoder = new DSEncoderV2()) => {\n if (doc instanceof Map) {\n writeStateVector(encoder, doc);\n } else {\n writeDocumentStateVector(encoder, doc);\n }\n return encoder.toUint8Array()\n};\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @return {Uint8Array}\n *\n * @function\n */\nconst encodeStateVector = doc => encodeStateVectorV2(doc, new DSEncoderV1());\n\n/**\n * General event handler implementation.\n *\n * @template ARG0, ARG1\n *\n * @private\n */\nclass EventHandler {\n constructor () {\n /**\n * @type {Array}\n */\n this.l = [];\n }\n}\n\n/**\n * @template ARG0,ARG1\n * @returns {EventHandler}\n *\n * @private\n * @function\n */\nconst createEventHandler = () => new EventHandler();\n\n/**\n * Adds an event listener that is called when\n * {@link EventHandler#callEventListeners} is called.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler.\n *\n * @private\n * @function\n */\nconst addEventHandlerListener = (eventHandler, f) =>\n eventHandler.l.push(f);\n\n/**\n * Removes an event listener.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler that was added with\n * {@link EventHandler#addEventListener}\n *\n * @private\n * @function\n */\nconst removeEventHandlerListener = (eventHandler, f) => {\n const l = eventHandler.l;\n const len = l.length;\n eventHandler.l = l.filter(g => f !== g);\n if (len === eventHandler.l.length) {\n console.error('[yjs] Tried to remove event handler that doesn\\'t exist.');\n }\n};\n\n/**\n * Call all event listeners that were added via\n * {@link EventHandler#addEventListener}.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {ARG0} arg0\n * @param {ARG1} arg1\n *\n * @private\n * @function\n */\nconst callEventHandlerListeners = (eventHandler, arg0, arg1) =>\n f.callAll(eventHandler.l, [arg0, arg1]);\n\nclass ID {\n /**\n * @param {number} client client id\n * @param {number} clock unique per client id, continuous number\n */\n constructor (client, clock) {\n /**\n * Client id\n * @type {number}\n */\n this.client = client;\n /**\n * unique per client id, continuous number\n * @type {number}\n */\n this.clock = clock;\n }\n}\n\n/**\n * @param {ID | null} a\n * @param {ID | null} b\n * @return {boolean}\n *\n * @function\n */\nconst compareIDs = (a, b) => a === b || (a !== null && b !== null && a.client === b.client && a.clock === b.clock);\n\n/**\n * @param {number} client\n * @param {number} clock\n *\n * @private\n * @function\n */\nconst createID = (client, clock) => new ID(client, clock);\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {ID} id\n *\n * @private\n * @function\n */\nconst writeID = (encoder, id) => {\n encoding.writeVarUint(encoder, id.client);\n encoding.writeVarUint(encoder, id.clock);\n};\n\n/**\n * Read ID.\n * * If first varUint read is 0xFFFFFF a RootID is returned.\n * * Otherwise an ID is returned\n *\n * @param {decoding.Decoder} decoder\n * @return {ID}\n *\n * @private\n * @function\n */\nconst readID = decoder =>\n createID(decoding.readVarUint(decoder), decoding.readVarUint(decoder));\n\n/**\n * The top types are mapped from y.share.get(keyname) => type.\n * `type` does not store any information about the `keyname`.\n * This function finds the correct `keyname` for `type` and throws otherwise.\n *\n * @param {AbstractType} type\n * @return {string}\n *\n * @private\n * @function\n */\nconst findRootTypeKey = type => {\n // @ts-ignore _y must be defined, otherwise unexpected case\n for (const [key, value] of type.doc.share.entries()) {\n if (value === type) {\n return key\n }\n }\n throw error.unexpectedCase()\n};\n\n/**\n * Check if `parent` is a parent of `child`.\n *\n * @param {AbstractType} parent\n * @param {Item|null} child\n * @return {Boolean} Whether `parent` is a parent of `child`.\n *\n * @private\n * @function\n */\nconst isParentOf = (parent, child) => {\n while (child !== null) {\n if (child.parent === parent) {\n return true\n }\n child = /** @type {AbstractType} */ (child.parent)._item;\n }\n return false\n};\n\n/**\n * Convenient helper to log type information.\n *\n * Do not use in productive systems as the output can be immense!\n *\n * @param {AbstractType} type\n */\nconst logType = type => {\n const res = [];\n let n = type._start;\n while (n) {\n res.push(n);\n n = n.right;\n }\n console.log('Children: ', res);\n console.log('Children content: ', res.filter(m => !m.deleted).map(m => m.content));\n};\n\nclass PermanentUserData {\n /**\n * @param {Doc} doc\n * @param {YMap} [storeType]\n */\n constructor (doc, storeType = doc.getMap('users')) {\n /**\n * @type {Map}\n */\n const dss = new Map();\n this.yusers = storeType;\n this.doc = doc;\n /**\n * Maps from clientid to userDescription\n *\n * @type {Map}\n */\n this.clients = new Map();\n this.dss = dss;\n /**\n * @param {YMap} user\n * @param {string} userDescription\n */\n const initUser = (user, userDescription) => {\n /**\n * @type {YArray}\n */\n const ds = user.get('ds');\n const ids = user.get('ids');\n const addClientId = /** @param {number} clientid */ clientid => this.clients.set(clientid, userDescription);\n ds.observe(/** @param {YArrayEvent} event */ event => {\n event.changes.added.forEach(item => {\n item.content.getContent().forEach(encodedDs => {\n if (encodedDs instanceof Uint8Array) {\n this.dss.set(userDescription, mergeDeleteSets([this.dss.get(userDescription) || createDeleteSet(), readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs)))]));\n }\n });\n });\n });\n this.dss.set(userDescription, mergeDeleteSets(ds.map(encodedDs => readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs))))));\n ids.observe(/** @param {YArrayEvent} event */ event =>\n event.changes.added.forEach(item => item.content.getContent().forEach(addClientId))\n );\n ids.forEach(addClientId);\n };\n // observe users\n storeType.observe(event => {\n event.keysChanged.forEach(userDescription =>\n initUser(storeType.get(userDescription), userDescription)\n );\n });\n // add intial data\n storeType.forEach(initUser);\n }\n\n /**\n * @param {Doc} doc\n * @param {number} clientid\n * @param {string} userDescription\n * @param {Object} conf\n * @param {function(Transaction, DeleteSet):boolean} [conf.filter]\n */\n setUserMapping (doc, clientid, userDescription, { filter = () => true } = {}) {\n const users = this.yusers;\n let user = users.get(userDescription);\n if (!user) {\n user = new YMap();\n user.set('ids', new YArray());\n user.set('ds', new YArray());\n users.set(userDescription, user);\n }\n user.get('ids').push([clientid]);\n users.observe(_event => {\n setTimeout(() => {\n const userOverwrite = users.get(userDescription);\n if (userOverwrite !== user) {\n // user was overwritten, port all data over to the next user object\n // @todo Experiment with Y.Sets here\n user = userOverwrite;\n // @todo iterate over old type\n this.clients.forEach((_userDescription, clientid) => {\n if (userDescription === _userDescription) {\n user.get('ids').push([clientid]);\n }\n });\n const encoder = new DSEncoderV1();\n const ds = this.dss.get(userDescription);\n if (ds) {\n writeDeleteSet(encoder, ds);\n user.get('ds').push([encoder.toUint8Array()]);\n }\n }\n }, 0);\n });\n doc.on('afterTransaction', /** @param {Transaction} transaction */ transaction => {\n setTimeout(() => {\n const yds = user.get('ds');\n const ds = transaction.deleteSet;\n if (transaction.local && ds.clients.size > 0 && filter(transaction, ds)) {\n const encoder = new DSEncoderV1();\n writeDeleteSet(encoder, ds);\n yds.push([encoder.toUint8Array()]);\n }\n });\n });\n }\n\n /**\n * @param {number} clientid\n * @return {any}\n */\n getUserByClientId (clientid) {\n return this.clients.get(clientid) || null\n }\n\n /**\n * @param {ID} id\n * @return {string | null}\n */\n getUserByDeletedId (id) {\n for (const [userDescription, ds] of this.dss.entries()) {\n if (isDeleted(ds, id)) {\n return userDescription\n }\n }\n return null\n }\n}\n\n/**\n * A relative position is based on the Yjs model and is not affected by document changes.\n * E.g. If you place a relative position before a certain character, it will always point to this character.\n * If you place a relative position at the end of a type, it will always point to the end of the type.\n *\n * A numeric position is often unsuited for user selections, because it does not change when content is inserted\n * before or after.\n *\n * ```Insert(0, 'x')('a|bc') = 'xa|bc'``` Where | is the relative position.\n *\n * One of the properties must be defined.\n *\n * @example\n * // Current cursor position is at position 10\n * const relativePosition = createRelativePositionFromIndex(yText, 10)\n * // modify yText\n * yText.insert(0, 'abc')\n * yText.delete(3, 10)\n * // Compute the cursor position\n * const absolutePosition = createAbsolutePositionFromRelativePosition(y, relativePosition)\n * absolutePosition.type === yText // => true\n * console.log('cursor location is ' + absolutePosition.index) // => cursor location is 3\n *\n */\nclass RelativePosition {\n /**\n * @param {ID|null} type\n * @param {string|null} tname\n * @param {ID|null} item\n * @param {number} assoc\n */\n constructor (type, tname, item, assoc = 0) {\n /**\n * @type {ID|null}\n */\n this.type = type;\n /**\n * @type {string|null}\n */\n this.tname = tname;\n /**\n * @type {ID | null}\n */\n this.item = item;\n /**\n * A relative position is associated to a specific character. By default\n * assoc >= 0, the relative position is associated to the character\n * after the meant position.\n * I.e. position 1 in 'ab' is associated to character 'b'.\n *\n * If assoc < 0, then the relative position is associated to the caharacter\n * before the meant position.\n *\n * @type {number}\n */\n this.assoc = assoc;\n }\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {any}\n */\nconst relativePositionToJSON = rpos => {\n const json = {};\n if (rpos.type) {\n json.type = rpos.type;\n }\n if (rpos.tname) {\n json.tname = rpos.tname;\n }\n if (rpos.item) {\n json.item = rpos.item;\n }\n if (rpos.assoc != null) {\n json.assoc = rpos.assoc;\n }\n return json\n};\n\n/**\n * @param {any} json\n * @return {RelativePosition}\n *\n * @function\n */\nconst createRelativePositionFromJSON = json => new RelativePosition(json.type == null ? null : createID(json.type.client, json.type.clock), json.tname ?? null, json.item == null ? null : createID(json.item.client, json.item.clock), json.assoc == null ? 0 : json.assoc);\n\nclass AbsolutePosition {\n /**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n */\n constructor (type, index, assoc = 0) {\n /**\n * @type {AbstractType}\n */\n this.type = type;\n /**\n * @type {number}\n */\n this.index = index;\n this.assoc = assoc;\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n *\n * @function\n */\nconst createAbsolutePosition = (type, index, assoc = 0) => new AbsolutePosition(type, index, assoc);\n\n/**\n * @param {AbstractType} type\n * @param {ID|null} item\n * @param {number} [assoc]\n *\n * @function\n */\nconst createRelativePosition = (type, item, assoc) => {\n let typeid = null;\n let tname = null;\n if (type._item === null) {\n tname = findRootTypeKey(type);\n } else {\n typeid = createID(type._item.id.client, type._item.id.clock);\n }\n return new RelativePosition(typeid, tname, item, assoc)\n};\n\n/**\n * Create a relativePosition based on a absolute position.\n *\n * @param {AbstractType} type The base type (e.g. YText or YArray).\n * @param {number} index The absolute position.\n * @param {number} [assoc]\n * @return {RelativePosition}\n *\n * @function\n */\nconst createRelativePositionFromTypeIndex = (type, index, assoc = 0) => {\n let t = type._start;\n if (assoc < 0) {\n // associated to the left character or the beginning of a type, increment index if possible.\n if (index === 0) {\n return createRelativePosition(type, null, assoc)\n }\n index--;\n }\n while (t !== null) {\n if (!t.deleted && t.countable) {\n if (t.length > index) {\n // case 1: found position somewhere in the linked list\n return createRelativePosition(type, createID(t.id.client, t.id.clock + index), assoc)\n }\n index -= t.length;\n }\n if (t.right === null && assoc < 0) {\n // left-associated position, return last available id\n return createRelativePosition(type, t.lastId, assoc)\n }\n t = t.right;\n }\n return createRelativePosition(type, null, assoc)\n};\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {RelativePosition} rpos\n *\n * @function\n */\nconst writeRelativePosition = (encoder, rpos) => {\n const { type, tname, item, assoc } = rpos;\n if (item !== null) {\n encoding.writeVarUint(encoder, 0);\n writeID(encoder, item);\n } else if (tname !== null) {\n // case 2: found position at the end of the list and type is stored in y.share\n encoding.writeUint8(encoder, 1);\n encoding.writeVarString(encoder, tname);\n } else if (type !== null) {\n // case 3: found position at the end of the list and type is attached to an item\n encoding.writeUint8(encoder, 2);\n writeID(encoder, type);\n } else {\n throw error.unexpectedCase()\n }\n encoding.writeVarInt(encoder, assoc);\n return encoder\n};\n\n/**\n * @param {RelativePosition} rpos\n * @return {Uint8Array}\n */\nconst encodeRelativePosition = rpos => {\n const encoder = encoding.createEncoder();\n writeRelativePosition(encoder, rpos);\n return encoding.toUint8Array(encoder)\n};\n\n/**\n * @param {decoding.Decoder} decoder\n * @return {RelativePosition}\n *\n * @function\n */\nconst readRelativePosition = decoder => {\n let type = null;\n let tname = null;\n let itemID = null;\n switch (decoding.readVarUint(decoder)) {\n case 0:\n // case 1: found position somewhere in the linked list\n itemID = readID(decoder);\n break\n case 1:\n // case 2: found position at the end of the list and type is stored in y.share\n tname = decoding.readVarString(decoder);\n break\n case 2: {\n // case 3: found position at the end of the list and type is attached to an item\n type = readID(decoder);\n }\n }\n const assoc = decoding.hasContent(decoder) ? decoding.readVarInt(decoder) : 0;\n return new RelativePosition(type, tname, itemID, assoc)\n};\n\n/**\n * @param {Uint8Array} uint8Array\n * @return {RelativePosition}\n */\nconst decodeRelativePosition = uint8Array => readRelativePosition(decoding.createDecoder(uint8Array));\n\n/**\n * Transform a relative position to an absolute position.\n *\n * If you want to share the relative position with other users, you should set\n * `followUndoneDeletions` to false to get consistent results across all clients.\n *\n * When calculating the absolute position, we try to follow the \"undone deletions\". This yields\n * better results for the user who performed undo. However, only the user who performed the undo\n * will get the better results, the other users don't know which operations recreated a deleted\n * range of content. There is more information in this ticket: https://github.com/yjs/yjs/issues/638\n *\n * @param {RelativePosition} rpos\n * @param {Doc} doc\n * @param {boolean} followUndoneDeletions - whether to follow undone deletions - see https://github.com/yjs/yjs/issues/638\n * @return {AbsolutePosition|null}\n *\n * @function\n */\nconst createAbsolutePositionFromRelativePosition = (rpos, doc, followUndoneDeletions = true) => {\n const store = doc.store;\n const rightID = rpos.item;\n const typeID = rpos.type;\n const tname = rpos.tname;\n const assoc = rpos.assoc;\n let type = null;\n let index = 0;\n if (rightID !== null) {\n if (getState(store, rightID.client) <= rightID.clock) {\n return null\n }\n const res = followUndoneDeletions ? followRedone(store, rightID) : { item: getItem(store, rightID), diff: 0 };\n const right = res.item;\n if (!(right instanceof Item)) {\n return null\n }\n type = /** @type {AbstractType} */ (right.parent);\n if (type._item === null || !type._item.deleted) {\n index = (right.deleted || !right.countable) ? 0 : (res.diff + (assoc >= 0 ? 0 : 1)); // adjust position based on left association if necessary\n let n = right.left;\n while (n !== null) {\n if (!n.deleted && n.countable) {\n index += n.length;\n }\n n = n.left;\n }\n }\n } else {\n if (tname !== null) {\n type = doc.get(tname);\n } else if (typeID !== null) {\n if (getState(store, typeID.client) <= typeID.clock) {\n // type does not exist yet\n return null\n }\n const { item } = followUndoneDeletions ? followRedone(store, typeID) : { item: getItem(store, typeID) };\n if (item instanceof Item && item.content instanceof ContentType) {\n type = item.content.type;\n } else {\n // struct is garbage collected\n return null\n }\n } else {\n throw error.unexpectedCase()\n }\n if (assoc >= 0) {\n index = type._length;\n } else {\n index = 0;\n }\n }\n return createAbsolutePosition(type, index, rpos.assoc)\n};\n\n/**\n * @param {RelativePosition|null} a\n * @param {RelativePosition|null} b\n * @return {boolean}\n *\n * @function\n */\nconst compareRelativePositions = (a, b) => a === b || (\n a !== null && b !== null && a.tname === b.tname && compareIDs(a.item, b.item) && compareIDs(a.type, b.type) && a.assoc === b.assoc\n);\n\nclass Snapshot {\n /**\n * @param {DeleteSet} ds\n * @param {Map} sv state map\n */\n constructor (ds, sv) {\n /**\n * @type {DeleteSet}\n */\n this.ds = ds;\n /**\n * State Map\n * @type {Map}\n */\n this.sv = sv;\n }\n}\n\n/**\n * @param {Snapshot} snap1\n * @param {Snapshot} snap2\n * @return {boolean}\n */\nconst equalSnapshots = (snap1, snap2) => {\n const ds1 = snap1.ds.clients;\n const ds2 = snap2.ds.clients;\n const sv1 = snap1.sv;\n const sv2 = snap2.sv;\n if (sv1.size !== sv2.size || ds1.size !== ds2.size) {\n return false\n }\n for (const [key, value] of sv1.entries()) {\n if (sv2.get(key) !== value) {\n return false\n }\n }\n for (const [client, dsitems1] of ds1.entries()) {\n const dsitems2 = ds2.get(client) || [];\n if (dsitems1.length !== dsitems2.length) {\n return false\n }\n for (let i = 0; i < dsitems1.length; i++) {\n const dsitem1 = dsitems1[i];\n const dsitem2 = dsitems2[i];\n if (dsitem1.clock !== dsitem2.clock || dsitem1.len !== dsitem2.len) {\n return false\n }\n }\n }\n return true\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n */\nconst encodeSnapshotV2 = (snapshot, encoder = new DSEncoderV2()) => {\n writeDeleteSet(encoder, snapshot.ds);\n writeStateVector(encoder, snapshot.sv);\n return encoder.toUint8Array()\n};\n\n/**\n * @param {Snapshot} snapshot\n * @return {Uint8Array}\n */\nconst encodeSnapshot = snapshot => encodeSnapshotV2(snapshot, new DSEncoderV1());\n\n/**\n * @param {Uint8Array} buf\n * @param {DSDecoderV1 | DSDecoderV2} [decoder]\n * @return {Snapshot}\n */\nconst decodeSnapshotV2 = (buf, decoder = new DSDecoderV2(decoding.createDecoder(buf))) => {\n return new Snapshot(readDeleteSet(decoder), readStateVector(decoder))\n};\n\n/**\n * @param {Uint8Array} buf\n * @return {Snapshot}\n */\nconst decodeSnapshot = buf => decodeSnapshotV2(buf, new DSDecoderV1(decoding.createDecoder(buf)));\n\n/**\n * @param {DeleteSet} ds\n * @param {Map} sm\n * @return {Snapshot}\n */\nconst createSnapshot = (ds, sm) => new Snapshot(ds, sm);\n\nconst emptySnapshot = createSnapshot(createDeleteSet(), new Map());\n\n/**\n * @param {Doc} doc\n * @return {Snapshot}\n */\nconst snapshot = doc => createSnapshot(createDeleteSetFromStructStore(doc.store), getStateVector(doc.store));\n\n/**\n * @param {Item} item\n * @param {Snapshot|undefined} snapshot\n *\n * @protected\n * @function\n */\nconst isVisible = (item, snapshot) => snapshot === undefined\n ? !item.deleted\n : snapshot.sv.has(item.id.client) && (snapshot.sv.get(item.id.client) || 0) > item.id.clock && !isDeleted(snapshot.ds, item.id);\n\n/**\n * @param {Transaction} transaction\n * @param {Snapshot} snapshot\n */\nconst splitSnapshotAffectedStructs = (transaction, snapshot) => {\n const meta = map.setIfUndefined(transaction.meta, splitSnapshotAffectedStructs, set.create);\n const store = transaction.doc.store;\n // check if we already split for this snapshot\n if (!meta.has(snapshot)) {\n snapshot.sv.forEach((clock, client) => {\n if (clock < getState(store, client)) {\n getItemCleanStart(transaction, createID(client, clock));\n }\n });\n iterateDeletedStructs(transaction, snapshot.ds, _item => {});\n meta.add(snapshot);\n }\n};\n\n/**\n * @example\n * const ydoc = new Y.Doc({ gc: false })\n * ydoc.getText().insert(0, 'world!')\n * const snapshot = Y.snapshot(ydoc)\n * ydoc.getText().insert(0, 'hello ')\n * const restored = Y.createDocFromSnapshot(ydoc, snapshot)\n * assert(restored.getText().toString() === 'world!')\n *\n * @param {Doc} originDoc\n * @param {Snapshot} snapshot\n * @param {Doc} [newDoc] Optionally, you may define the Yjs document that receives the data from originDoc\n * @return {Doc}\n */\nconst createDocFromSnapshot = (originDoc, snapshot, newDoc = new Doc()) => {\n if (originDoc.gc) {\n // we should not try to restore a GC-ed document, because some of the restored items might have their content deleted\n throw new Error('Garbage-collection must be disabled in `originDoc`!')\n }\n const { sv, ds } = snapshot;\n\n const encoder = new UpdateEncoderV2();\n originDoc.transact(transaction => {\n let size = 0;\n sv.forEach(clock => {\n if (clock > 0) {\n size++;\n }\n });\n encoding.writeVarUint(encoder.restEncoder, size);\n // splitting the structs before writing them to the encoder\n for (const [client, clock] of sv) {\n if (clock === 0) {\n continue\n }\n if (clock < getState(originDoc.store, client)) {\n getItemCleanStart(transaction, createID(client, clock));\n }\n const structs = originDoc.store.clients.get(client) || [];\n const lastStructIndex = findIndexSS(structs, clock - 1);\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, lastStructIndex + 1);\n encoder.writeClient(client);\n // first clock written is 0\n encoding.writeVarUint(encoder.restEncoder, 0);\n for (let i = 0; i <= lastStructIndex; i++) {\n structs[i].write(encoder, 0);\n }\n }\n writeDeleteSet(encoder, ds);\n });\n\n applyUpdateV2(newDoc, encoder.toUint8Array(), 'snapshot');\n return newDoc\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n */\nconst snapshotContainsUpdateV2 = (snapshot, update, YDecoder = UpdateDecoderV2) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n if ((snapshot.sv.get(curr.id.client) || 0) < curr.id.clock + curr.length) {\n return false\n }\n }\n const mergedDS = mergeDeleteSets([snapshot.ds, readDeleteSet(updateDecoder)]);\n return equalDeleteSets(snapshot.ds, mergedDS)\n};\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n */\nconst snapshotContainsUpdate = (snapshot, update) => snapshotContainsUpdateV2(snapshot, update, UpdateDecoderV1);\n\nclass StructStore {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map();\n /**\n * @type {null | { missing: Map, update: Uint8Array }}\n */\n this.pendingStructs = null;\n /**\n * @type {null | Uint8Array}\n */\n this.pendingDs = null;\n }\n}\n\n/**\n * Return the states as a Map.\n * Note that clock refers to the next expected clock id.\n *\n * @param {StructStore} store\n * @return {Map}\n *\n * @public\n * @function\n */\nconst getStateVector = store => {\n const sm = new Map();\n store.clients.forEach((structs, client) => {\n const struct = structs[structs.length - 1];\n sm.set(client, struct.id.clock + struct.length);\n });\n return sm\n};\n\n/**\n * @param {StructStore} store\n * @param {number} client\n * @return {number}\n *\n * @public\n * @function\n */\nconst getState = (store, client) => {\n const structs = store.clients.get(client);\n if (structs === undefined) {\n return 0\n }\n const lastStruct = structs[structs.length - 1];\n return lastStruct.id.clock + lastStruct.length\n};\n\n/**\n * @param {StructStore} store\n * @param {GC|Item} struct\n *\n * @private\n * @function\n */\nconst addStruct = (store, struct) => {\n let structs = store.clients.get(struct.id.client);\n if (structs === undefined) {\n structs = [];\n store.clients.set(struct.id.client, structs);\n } else {\n const lastStruct = structs[structs.length - 1];\n if (lastStruct.id.clock + lastStruct.length !== struct.id.clock) {\n throw error.unexpectedCase()\n }\n }\n structs.push(struct);\n};\n\n/**\n * Perform a binary search on a sorted array\n * @param {Array} structs\n * @param {number} clock\n * @return {number}\n *\n * @private\n * @function\n */\nconst findIndexSS = (structs, clock) => {\n let left = 0;\n let right = structs.length - 1;\n let mid = structs[right];\n let midclock = mid.id.clock;\n if (midclock === clock) {\n return right\n }\n // @todo does it even make sense to pivot the search?\n // If a good split misses, it might actually increase the time to find the correct item.\n // Currently, the only advantage is that search with pivoting might find the item on the first try.\n let midindex = math.floor((clock / (midclock + mid.length - 1)) * right); // pivoting the search\n while (left <= right) {\n mid = structs[midindex];\n midclock = mid.id.clock;\n if (midclock <= clock) {\n if (clock < midclock + mid.length) {\n return midindex\n }\n left = midindex + 1;\n } else {\n right = midindex - 1;\n }\n midindex = math.floor((left + right) / 2);\n }\n // Always check state before looking for a struct in StructStore\n // Therefore the case of not finding a struct is unexpected\n throw error.unexpectedCase()\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {GC|Item}\n *\n * @private\n * @function\n */\nconst find = (store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client);\n return structs[findIndexSS(structs, id.clock)]\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n * @private\n * @function\n */\nconst getItem = /** @type {function(StructStore,ID):Item} */ (find);\n\n/**\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clock\n */\nconst findIndexCleanStart = (transaction, structs, clock) => {\n const index = findIndexSS(structs, clock);\n const struct = structs[index];\n if (struct.id.clock < clock && struct instanceof Item) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock));\n return index + 1\n }\n return index\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nconst getItemCleanStart = (transaction, id) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(id.client));\n return structs[findIndexCleanStart(transaction, structs, id.clock)]\n};\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nconst getItemCleanEnd = (transaction, store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client);\n const index = findIndexSS(structs, id.clock);\n const struct = structs[index];\n if (id.clock !== struct.id.clock + struct.length - 1 && struct.constructor !== GC) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, id.clock - struct.id.clock + 1));\n }\n return struct\n};\n\n/**\n * Replace `item` with `newitem` in store\n * @param {StructStore} store\n * @param {GC|Item} struct\n * @param {GC|Item} newStruct\n *\n * @private\n * @function\n */\nconst replaceStruct = (store, struct, newStruct) => {\n const structs = /** @type {Array} */ (store.clients.get(struct.id.client));\n structs[findIndexSS(structs, struct.id.clock)] = newStruct;\n};\n\n/**\n * Iterate over a range of structs\n *\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clockStart Inclusive start\n * @param {number} len\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nconst iterateStructs = (transaction, structs, clockStart, len, f) => {\n if (len === 0) {\n return\n }\n const clockEnd = clockStart + len;\n let index = findIndexCleanStart(transaction, structs, clockStart);\n let struct;\n do {\n struct = structs[index++];\n if (clockEnd < struct.id.clock + struct.length) {\n findIndexCleanStart(transaction, structs, clockEnd);\n }\n f(struct);\n } while (index < structs.length && structs[index].id.clock < clockEnd)\n};\n\n/**\n * A transaction is created for every change on the Yjs model. It is possible\n * to bundle changes on the Yjs model in a single transaction to\n * minimize the number on messages sent and the number of observer calls.\n * If possible the user of this library should bundle as many changes as\n * possible. Here is an example to illustrate the advantages of bundling:\n *\n * @example\n * const ydoc = new Y.Doc()\n * const map = ydoc.getMap('map')\n * // Log content when change is triggered\n * map.observe(() => {\n * console.log('change triggered')\n * })\n * // Each change on the map type triggers a log message:\n * map.set('a', 0) // => \"change triggered\"\n * map.set('b', 0) // => \"change triggered\"\n * // When put in a transaction, it will trigger the log after the transaction:\n * ydoc.transact(() => {\n * map.set('a', 1)\n * map.set('b', 1)\n * }) // => \"change triggered\"\n *\n * @public\n */\nclass Transaction {\n /**\n * @param {Doc} doc\n * @param {any} origin\n * @param {boolean} local\n */\n constructor (doc, origin, local) {\n /**\n * The Yjs instance.\n * @type {Doc}\n */\n this.doc = doc;\n /**\n * Describes the set of deleted items by ids\n * @type {DeleteSet}\n */\n this.deleteSet = new DeleteSet();\n /**\n * Holds the state before the transaction started.\n * @type {Map}\n */\n this.beforeState = getStateVector(doc.store);\n /**\n * Holds the state after the transaction.\n * @type {Map}\n */\n this.afterState = new Map();\n /**\n * All types that were directly modified (property added or child\n * inserted/deleted). New types are not included in this Set.\n * Maps from type to parentSubs (`item.parentSub = null` for YArray)\n * @type {Map>,Set>}\n */\n this.changed = new Map();\n /**\n * Stores the events for the types that observe also child elements.\n * It is mainly used by `observeDeep`.\n * @type {Map>,Array>>}\n */\n this.changedParentTypes = new Map();\n /**\n * @type {Array}\n */\n this._mergeStructs = [];\n /**\n * @type {any}\n */\n this.origin = origin;\n /**\n * Stores meta information on the transaction\n * @type {Map}\n */\n this.meta = new Map();\n /**\n * Whether this change originates from this doc.\n * @type {boolean}\n */\n this.local = local;\n /**\n * @type {Set}\n */\n this.subdocsAdded = new Set();\n /**\n * @type {Set}\n */\n this.subdocsRemoved = new Set();\n /**\n * @type {Set}\n */\n this.subdocsLoaded = new Set();\n /**\n * @type {boolean}\n */\n this._needFormattingCleanup = false;\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n * @return {boolean} Whether data was written.\n */\nconst writeUpdateMessageFromTransaction = (encoder, transaction) => {\n if (transaction.deleteSet.clients.size === 0 && !map.any(transaction.afterState, (clock, client) => transaction.beforeState.get(client) !== clock)) {\n return false\n }\n sortAndMergeDeleteSet(transaction.deleteSet);\n writeStructsFromTransaction(encoder, transaction);\n writeDeleteSet(encoder, transaction.deleteSet);\n return true\n};\n\n/**\n * If `type.parent` was added in current transaction, `type` technically\n * did not change, it was just added and we should not fire events for `type`.\n *\n * @param {Transaction} transaction\n * @param {AbstractType>} type\n * @param {string|null} parentSub\n */\nconst addChangedTypeToTransaction = (transaction, type, parentSub) => {\n const item = type._item;\n if (item === null || (item.id.clock < (transaction.beforeState.get(item.id.client) || 0) && !item.deleted)) {\n map.setIfUndefined(transaction.changed, type, set.create).add(parentSub);\n }\n};\n\n/**\n * @param {Array} structs\n * @param {number} pos\n * @return {number} # of merged structs\n */\nconst tryToMergeWithLefts = (structs, pos) => {\n let right = structs[pos];\n let left = structs[pos - 1];\n let i = pos;\n for (; i > 0; right = left, left = structs[--i - 1]) {\n if (left.deleted === right.deleted && left.constructor === right.constructor) {\n if (left.mergeWith(right)) {\n if (right instanceof Item && right.parentSub !== null && /** @type {AbstractType} */ (right.parent)._map.get(right.parentSub) === right) {\n /** @type {AbstractType} */ (right.parent)._map.set(right.parentSub, /** @type {Item} */ (left));\n }\n continue\n }\n }\n break\n }\n const merged = pos - i;\n if (merged) {\n // remove all merged structs from the array\n structs.splice(pos + 1 - merged, merged);\n }\n return merged\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGcDeleteSet = (ds, store, gcFilter) => {\n for (const [client, deleteItems] of ds.clients.entries()) {\n const structs = /** @type {Array} */ (store.clients.get(client));\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di];\n const endDeleteItemClock = deleteItem.clock + deleteItem.len;\n for (\n let si = findIndexSS(structs, deleteItem.clock), struct = structs[si];\n si < structs.length && struct.id.clock < endDeleteItemClock;\n struct = structs[++si]\n ) {\n const struct = structs[si];\n if (deleteItem.clock + deleteItem.len <= struct.id.clock) {\n break\n }\n if (struct instanceof Item && struct.deleted && !struct.keep && gcFilter(struct)) {\n struct.gc(store, false);\n }\n }\n }\n }\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n */\nconst tryMergeDeleteSet = (ds, store) => {\n // try to merge deleted / gc'd items\n // merge from right to left for better efficiency and so we don't miss any merge targets\n ds.clients.forEach((deleteItems, client) => {\n const structs = /** @type {Array} */ (store.clients.get(client));\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di];\n // start with merging the item next to the last deleted item\n const mostRightIndexToCheck = math.min(structs.length - 1, 1 + findIndexSS(structs, deleteItem.clock + deleteItem.len - 1));\n for (\n let si = mostRightIndexToCheck, struct = structs[si];\n si > 0 && struct.id.clock >= deleteItem.clock;\n struct = structs[si]\n ) {\n si -= 1 + tryToMergeWithLefts(structs, si);\n }\n }\n });\n};\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGc = (ds, store, gcFilter) => {\n tryGcDeleteSet(ds, store, gcFilter);\n tryMergeDeleteSet(ds, store);\n};\n\n/**\n * @param {Array} transactionCleanups\n * @param {number} i\n */\nconst cleanupTransactions = (transactionCleanups, i) => {\n if (i < transactionCleanups.length) {\n const transaction = transactionCleanups[i];\n const doc = transaction.doc;\n const store = doc.store;\n const ds = transaction.deleteSet;\n const mergeStructs = transaction._mergeStructs;\n try {\n sortAndMergeDeleteSet(ds);\n transaction.afterState = getStateVector(transaction.doc.store);\n doc.emit('beforeObserverCalls', [transaction, doc]);\n /**\n * An array of event callbacks.\n *\n * Each callback is called even if the other ones throw errors.\n *\n * @type {Array}\n */\n const fs = [];\n // observe events on changed types\n transaction.changed.forEach((subs, itemtype) =>\n fs.push(() => {\n if (itemtype._item === null || !itemtype._item.deleted) {\n itemtype._callObserver(transaction, subs);\n }\n })\n );\n fs.push(() => {\n // deep observe events\n transaction.changedParentTypes.forEach((events, type) => {\n // We need to think about the possibility that the user transforms the\n // Y.Doc in the event.\n if (type._dEH.l.length > 0 && (type._item === null || !type._item.deleted)) {\n events = events\n .filter(event =>\n event.target._item === null || !event.target._item.deleted\n );\n events\n .forEach(event => {\n event.currentTarget = type;\n // path is relative to the current target\n event._path = null;\n });\n // sort events by path length so that top-level events are fired first.\n events\n .sort((event1, event2) => event1.path.length - event2.path.length);\n // We don't need to check for events.length\n // because we know it has at least one element\n callEventHandlerListeners(type._dEH, events, transaction);\n }\n });\n });\n fs.push(() => doc.emit('afterTransaction', [transaction, doc]));\n callAll(fs, []);\n if (transaction._needFormattingCleanup) {\n cleanupYTextAfterTransaction(transaction);\n }\n } finally {\n // Replace deleted items with ItemDeleted / GC.\n // This is where content is actually remove from the Yjs Doc.\n if (doc.gc) {\n tryGcDeleteSet(ds, store, doc.gcFilter);\n }\n tryMergeDeleteSet(ds, store);\n\n // on all affected store.clients props, try to merge\n transaction.afterState.forEach((clock, client) => {\n const beforeClock = transaction.beforeState.get(client) || 0;\n if (beforeClock !== clock) {\n const structs = /** @type {Array} */ (store.clients.get(client));\n // we iterate from right to left so we can safely remove entries\n const firstChangePos = math.max(findIndexSS(structs, beforeClock), 1);\n for (let i = structs.length - 1; i >= firstChangePos;) {\n i -= 1 + tryToMergeWithLefts(structs, i);\n }\n }\n });\n // try to merge mergeStructs\n // @todo: it makes more sense to transform mergeStructs to a DS, sort it, and merge from right to left\n // but at the moment DS does not handle duplicates\n for (let i = mergeStructs.length - 1; i >= 0; i--) {\n const { client, clock } = mergeStructs[i].id;\n const structs = /** @type {Array} */ (store.clients.get(client));\n const replacedStructPos = findIndexSS(structs, clock);\n if (replacedStructPos + 1 < structs.length) {\n if (tryToMergeWithLefts(structs, replacedStructPos + 1) > 1) {\n continue // no need to perform next check, both are already merged\n }\n }\n if (replacedStructPos > 0) {\n tryToMergeWithLefts(structs, replacedStructPos);\n }\n }\n if (!transaction.local && transaction.afterState.get(doc.clientID) !== transaction.beforeState.get(doc.clientID)) {\n logging.print(logging.ORANGE, logging.BOLD, '[yjs] ', logging.UNBOLD, logging.RED, 'Changed the client-id because another client seems to be using it.');\n doc.clientID = generateNewClientId();\n }\n // @todo Merge all the transactions into one and provide send the data as a single update message\n doc.emit('afterTransactionCleanup', [transaction, doc]);\n if (doc._observers.has('update')) {\n const encoder = new UpdateEncoderV1();\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction);\n if (hasContent) {\n doc.emit('update', [encoder.toUint8Array(), transaction.origin, doc, transaction]);\n }\n }\n if (doc._observers.has('updateV2')) {\n const encoder = new UpdateEncoderV2();\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction);\n if (hasContent) {\n doc.emit('updateV2', [encoder.toUint8Array(), transaction.origin, doc, transaction]);\n }\n }\n const { subdocsAdded, subdocsLoaded, subdocsRemoved } = transaction;\n if (subdocsAdded.size > 0 || subdocsRemoved.size > 0 || subdocsLoaded.size > 0) {\n subdocsAdded.forEach(subdoc => {\n subdoc.clientID = doc.clientID;\n if (subdoc.collectionid == null) {\n subdoc.collectionid = doc.collectionid;\n }\n doc.subdocs.add(subdoc);\n });\n subdocsRemoved.forEach(subdoc => doc.subdocs.delete(subdoc));\n doc.emit('subdocs', [{ loaded: subdocsLoaded, added: subdocsAdded, removed: subdocsRemoved }, doc, transaction]);\n subdocsRemoved.forEach(subdoc => subdoc.destroy());\n }\n\n if (transactionCleanups.length <= i + 1) {\n doc._transactionCleanups = [];\n doc.emit('afterAllTransactions', [doc, transactionCleanups]);\n } else {\n cleanupTransactions(transactionCleanups, i + 1);\n }\n }\n }\n};\n\n/**\n * Implements the functionality of `y.transact(()=>{..})`\n *\n * @template T\n * @param {Doc} doc\n * @param {function(Transaction):T} f\n * @param {any} [origin=true]\n * @return {T}\n *\n * @function\n */\nconst transact = (doc, f, origin = null, local = true) => {\n const transactionCleanups = doc._transactionCleanups;\n let initialCall = false;\n /**\n * @type {any}\n */\n let result = null;\n if (doc._transaction === null) {\n initialCall = true;\n doc._transaction = new Transaction(doc, origin, local);\n transactionCleanups.push(doc._transaction);\n if (transactionCleanups.length === 1) {\n doc.emit('beforeAllTransactions', [doc]);\n }\n doc.emit('beforeTransaction', [doc._transaction, doc]);\n }\n try {\n result = f(doc._transaction);\n } finally {\n if (initialCall) {\n const finishCleanup = doc._transaction === transactionCleanups[0];\n doc._transaction = null;\n if (finishCleanup) {\n // The first transaction ended, now process observer calls.\n // Observer call may create new transactions for which we need to call the observers and do cleanup.\n // We don't want to nest these calls, so we execute these calls one after\n // another.\n // Also we need to ensure that all cleanups are called, even if the\n // observes throw errors.\n // This file is full of hacky try {} finally {} blocks to ensure that an\n // event can throw errors and also that the cleanup is called.\n cleanupTransactions(transactionCleanups, 0);\n }\n }\n }\n return result\n};\n\nclass StackItem {\n /**\n * @param {DeleteSet} deletions\n * @param {DeleteSet} insertions\n */\n constructor (deletions, insertions) {\n this.insertions = insertions;\n this.deletions = deletions;\n /**\n * Use this to save and restore metadata like selection range\n */\n this.meta = new Map();\n }\n}\n/**\n * @param {Transaction} tr\n * @param {UndoManager} um\n * @param {StackItem} stackItem\n */\nconst clearUndoManagerStackItem = (tr, um, stackItem) => {\n iterateDeletedStructs(tr, stackItem.deletions, item => {\n if (item instanceof Item && um.scope.some(type => isParentOf(type, item))) {\n keepItem(item, false);\n }\n });\n};\n\n/**\n * @param {UndoManager} undoManager\n * @param {Array} stack\n * @param {'undo'|'redo'} eventType\n * @return {StackItem?}\n */\nconst popStackItem = (undoManager, stack, eventType) => {\n /**\n * Keep a reference to the transaction so we can fire the event with the changedParentTypes\n * @type {any}\n */\n let _tr = null;\n const doc = undoManager.doc;\n const scope = undoManager.scope;\n transact(doc, transaction => {\n while (stack.length > 0 && undoManager.currStackItem === null) {\n const store = doc.store;\n const stackItem = /** @type {StackItem} */ (stack.pop());\n /**\n * @type {Set}\n */\n const itemsToRedo = new Set();\n /**\n * @type {Array}\n */\n const itemsToDelete = [];\n let performedChange = false;\n iterateDeletedStructs(transaction, stackItem.insertions, struct => {\n if (struct instanceof Item) {\n if (struct.redone !== null) {\n let { item, diff } = followRedone(store, struct.id);\n if (diff > 0) {\n item = getItemCleanStart(transaction, createID(item.id.client, item.id.clock + diff));\n }\n struct = item;\n }\n if (!struct.deleted && scope.some(type => isParentOf(type, /** @type {Item} */ (struct)))) {\n itemsToDelete.push(struct);\n }\n }\n });\n iterateDeletedStructs(transaction, stackItem.deletions, struct => {\n if (\n struct instanceof Item &&\n scope.some(type => isParentOf(type, struct)) &&\n // Never redo structs in stackItem.insertions because they were created and deleted in the same capture interval.\n !isDeleted(stackItem.insertions, struct.id)\n ) {\n itemsToRedo.add(struct);\n }\n });\n itemsToRedo.forEach(struct => {\n performedChange = redoItem(transaction, struct, itemsToRedo, stackItem.insertions, undoManager.ignoreRemoteMapChanges, undoManager) !== null || performedChange;\n });\n // We want to delete in reverse order so that children are deleted before\n // parents, so we have more information available when items are filtered.\n for (let i = itemsToDelete.length - 1; i >= 0; i--) {\n const item = itemsToDelete[i];\n if (undoManager.deleteFilter(item)) {\n item.delete(transaction);\n performedChange = true;\n }\n }\n undoManager.currStackItem = performedChange ? stackItem : null;\n }\n transaction.changed.forEach((subProps, type) => {\n // destroy search marker if necessary\n if (subProps.has(null) && type._searchMarker) {\n type._searchMarker.length = 0;\n }\n });\n _tr = transaction;\n }, undoManager);\n const res = undoManager.currStackItem;\n if (res != null) {\n const changedParentTypes = _tr.changedParentTypes;\n undoManager.emit('stack-item-popped', [{ stackItem: res, type: eventType, changedParentTypes, origin: undoManager }, undoManager]);\n undoManager.currStackItem = null;\n }\n return res\n};\n\n/**\n * @typedef {Object} UndoManagerOptions\n * @property {number} [UndoManagerOptions.captureTimeout=500]\n * @property {function(Transaction):boolean} [UndoManagerOptions.captureTransaction] Do not capture changes of a Transaction if result false.\n * @property {function(Item):boolean} [UndoManagerOptions.deleteFilter=()=>true] Sometimes\n * it is necessary to filter what an Undo/Redo operation can delete. If this\n * filter returns false, the type/item won't be deleted even it is in the\n * undo/redo scope.\n * @property {Set} [UndoManagerOptions.trackedOrigins=new Set([null])]\n * @property {boolean} [ignoreRemoteMapChanges] Experimental. By default, the UndoManager will never overwrite remote changes. Enable this property to enable overwriting remote changes on key-value changes (Y.Map, properties on Y.Xml, etc..).\n * @property {Doc} [doc] The document that this UndoManager operates on. Only needed if typeScope is empty.\n */\n\n/**\n * @typedef {Object} StackItemEvent\n * @property {StackItem} StackItemEvent.stackItem\n * @property {any} StackItemEvent.origin\n * @property {'undo'|'redo'} StackItemEvent.type\n * @property {Map>,Array>>} StackItemEvent.changedParentTypes\n */\n\n/**\n * Fires 'stack-item-added' event when a stack item was added to either the undo- or\n * the redo-stack. You may store additional stack information via the\n * metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties).\n * Fires 'stack-item-popped' event when a stack item was popped from either the\n * undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.\n *\n * @extends {ObservableV2<{'stack-item-added':function(StackItemEvent, UndoManager):void, 'stack-item-popped': function(StackItemEvent, UndoManager):void, 'stack-cleared': function({ undoStackCleared: boolean, redoStackCleared: boolean }):void, 'stack-item-updated': function(StackItemEvent, UndoManager):void }>}\n */\nclass UndoManager extends ObservableV2 {\n /**\n * @param {AbstractType|Array>} typeScope Accepts either a single type, or an array of types\n * @param {UndoManagerOptions} options\n */\n constructor (typeScope, {\n captureTimeout = 500,\n captureTransaction = _tr => true,\n deleteFilter = () => true,\n trackedOrigins = new Set([null]),\n ignoreRemoteMapChanges = false,\n doc = /** @type {Doc} */ (array.isArray(typeScope) ? typeScope[0].doc : typeScope.doc)\n } = {}) {\n super();\n /**\n * @type {Array>}\n */\n this.scope = [];\n this.doc = doc;\n this.addToScope(typeScope);\n this.deleteFilter = deleteFilter;\n trackedOrigins.add(this);\n this.trackedOrigins = trackedOrigins;\n this.captureTransaction = captureTransaction;\n /**\n * @type {Array}\n */\n this.undoStack = [];\n /**\n * @type {Array}\n */\n this.redoStack = [];\n /**\n * Whether the client is currently undoing (calling UndoManager.undo)\n *\n * @type {boolean}\n */\n this.undoing = false;\n this.redoing = false;\n /**\n * The currently popped stack item if UndoManager.undoing or UndoManager.redoing\n *\n * @type {StackItem|null}\n */\n this.currStackItem = null;\n this.lastChange = 0;\n this.ignoreRemoteMapChanges = ignoreRemoteMapChanges;\n this.captureTimeout = captureTimeout;\n /**\n * @param {Transaction} transaction\n */\n this.afterTransactionHandler = transaction => {\n // Only track certain transactions\n if (\n !this.captureTransaction(transaction) ||\n !this.scope.some(type => transaction.changedParentTypes.has(type)) ||\n (!this.trackedOrigins.has(transaction.origin) && (!transaction.origin || !this.trackedOrigins.has(transaction.origin.constructor)))\n ) {\n return\n }\n const undoing = this.undoing;\n const redoing = this.redoing;\n const stack = undoing ? this.redoStack : this.undoStack;\n if (undoing) {\n this.stopCapturing(); // next undo should not be appended to last stack item\n } else if (!redoing) {\n // neither undoing nor redoing: delete redoStack\n this.clear(false, true);\n }\n const insertions = new DeleteSet();\n transaction.afterState.forEach((endClock, client) => {\n const startClock = transaction.beforeState.get(client) || 0;\n const len = endClock - startClock;\n if (len > 0) {\n addToDeleteSet(insertions, client, startClock, len);\n }\n });\n const now = time.getUnixTime();\n let didAdd = false;\n if (this.lastChange > 0 && now - this.lastChange < this.captureTimeout && stack.length > 0 && !undoing && !redoing) {\n // append change to last stack op\n const lastOp = stack[stack.length - 1];\n lastOp.deletions = mergeDeleteSets([lastOp.deletions, transaction.deleteSet]);\n lastOp.insertions = mergeDeleteSets([lastOp.insertions, insertions]);\n } else {\n // create a new stack op\n stack.push(new StackItem(transaction.deleteSet, insertions));\n didAdd = true;\n }\n if (!undoing && !redoing) {\n this.lastChange = now;\n }\n // make sure that deleted structs are not gc'd\n iterateDeletedStructs(transaction, transaction.deleteSet, /** @param {Item|GC} item */ item => {\n if (item instanceof Item && this.scope.some(type => isParentOf(type, item))) {\n keepItem(item, true);\n }\n });\n /**\n * @type {[StackItemEvent, UndoManager]}\n */\n const changeEvent = [{ stackItem: stack[stack.length - 1], origin: transaction.origin, type: undoing ? 'redo' : 'undo', changedParentTypes: transaction.changedParentTypes }, this];\n if (didAdd) {\n this.emit('stack-item-added', changeEvent);\n } else {\n this.emit('stack-item-updated', changeEvent);\n }\n };\n this.doc.on('afterTransaction', this.afterTransactionHandler);\n this.doc.on('destroy', () => {\n this.destroy();\n });\n }\n\n /**\n * @param {Array> | AbstractType} ytypes\n */\n addToScope (ytypes) {\n ytypes = array.isArray(ytypes) ? ytypes : [ytypes];\n ytypes.forEach(ytype => {\n if (this.scope.every(yt => yt !== ytype)) {\n if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc'); // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509\n this.scope.push(ytype);\n }\n });\n }\n\n /**\n * @param {any} origin\n */\n addTrackedOrigin (origin) {\n this.trackedOrigins.add(origin);\n }\n\n /**\n * @param {any} origin\n */\n removeTrackedOrigin (origin) {\n this.trackedOrigins.delete(origin);\n }\n\n clear (clearUndoStack = true, clearRedoStack = true) {\n if ((clearUndoStack && this.canUndo()) || (clearRedoStack && this.canRedo())) {\n this.doc.transact(tr => {\n if (clearUndoStack) {\n this.undoStack.forEach(item => clearUndoManagerStackItem(tr, this, item));\n this.undoStack = [];\n }\n if (clearRedoStack) {\n this.redoStack.forEach(item => clearUndoManagerStackItem(tr, this, item));\n this.redoStack = [];\n }\n this.emit('stack-cleared', [{ undoStackCleared: clearUndoStack, redoStackCleared: clearRedoStack }]);\n });\n }\n }\n\n /**\n * UndoManager merges Undo-StackItem if they are created within time-gap\n * smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next\n * StackItem won't be merged.\n *\n *\n * @example\n * // without stopCapturing\n * ytext.insert(0, 'a')\n * ytext.insert(1, 'b')\n * um.undo()\n * ytext.toString() // => '' (note that 'ab' was removed)\n * // with stopCapturing\n * ytext.insert(0, 'a')\n * um.stopCapturing()\n * ytext.insert(0, 'b')\n * um.undo()\n * ytext.toString() // => 'a' (note that only 'b' was removed)\n *\n */\n stopCapturing () {\n this.lastChange = 0;\n }\n\n /**\n * Undo last changes on type.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n undo () {\n this.undoing = true;\n let res;\n try {\n res = popStackItem(this, this.undoStack, 'undo');\n } finally {\n this.undoing = false;\n }\n return res\n }\n\n /**\n * Redo last undo operation.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n redo () {\n this.redoing = true;\n let res;\n try {\n res = popStackItem(this, this.redoStack, 'redo');\n } finally {\n this.redoing = false;\n }\n return res\n }\n\n /**\n * Are undo steps available?\n *\n * @return {boolean} `true` if undo is possible\n */\n canUndo () {\n return this.undoStack.length > 0\n }\n\n /**\n * Are redo steps available?\n *\n * @return {boolean} `true` if redo is possible\n */\n canRedo () {\n return this.redoStack.length > 0\n }\n\n destroy () {\n this.trackedOrigins.delete(this);\n this.doc.off('afterTransaction', this.afterTransactionHandler);\n super.destroy();\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n */\nfunction * lazyStructReaderGenerator (decoder) {\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder);\n const client = decoder.readClient();\n let clock = decoding.readVarUint(decoder.restDecoder);\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo();\n // @todo use switch instead of ifs\n if (info === 10) {\n const len = decoding.readVarUint(decoder.restDecoder);\n yield new Skip(createID(client, clock), len);\n clock += len;\n } else if ((binary.BITS5 & info) !== 0) {\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0;\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n // @ts-ignore Force writing a string here.\n cantCopyParentInfo ? (decoder.readParentInfo() ? decoder.readString() : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n );\n yield struct;\n clock += struct.length;\n } else {\n const len = decoder.readLen();\n yield new GC(createID(client, clock), len);\n clock += len;\n }\n }\n }\n}\n\nclass LazyStructReader {\n /**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {boolean} filterSkips\n */\n constructor (decoder, filterSkips) {\n this.gen = lazyStructReaderGenerator(decoder);\n /**\n * @type {null | Item | Skip | GC}\n */\n this.curr = null;\n this.done = false;\n this.filterSkips = filterSkips;\n this.next();\n }\n\n /**\n * @return {Item | GC | Skip |null}\n */\n next () {\n // ignore \"Skip\" structs\n do {\n this.curr = this.gen.next().value || null;\n } while (this.filterSkips && this.curr !== null && this.curr.constructor === Skip)\n return this.curr\n }\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nconst logUpdate = update => logUpdateV2(update, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nconst logUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = [];\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr);\n }\n logging.print('Structs: ', structs);\n const ds = readDeleteSet(updateDecoder);\n logging.print('DeleteSet: ', ds);\n};\n\n/**\n * @param {Uint8Array} update\n *\n */\nconst decodeUpdate = (update) => decodeUpdateV2(update, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nconst decodeUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = [];\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr);\n }\n return {\n structs,\n ds: readDeleteSet(updateDecoder)\n }\n};\n\nclass LazyStructWriter {\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n constructor (encoder) {\n this.currClient = 0;\n this.startClock = 0;\n this.written = 0;\n this.encoder = encoder;\n /**\n * We want to write operations lazily, but also we need to know beforehand how many operations we want to write for each client.\n *\n * This kind of meta-information (#clients, #structs-per-client-written) is written to the restEncoder.\n *\n * We fragment the restEncoder and store a slice of it per-client until we know how many clients there are.\n * When we flush (toUint8Array) we write the restEncoder using the fragments and the meta-information.\n *\n * @type {Array<{ written: number, restEncoder: Uint8Array }>}\n */\n this.clientStructs = [];\n }\n}\n\n/**\n * @param {Array} updates\n * @return {Uint8Array}\n */\nconst mergeUpdates = updates => mergeUpdatesV2(updates, UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof DSEncoderV1 | typeof DSEncoderV2} YEncoder\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {Uint8Array}\n */\nconst encodeStateVectorFromUpdateV2 = (update, YEncoder = DSEncoderV2, YDecoder = UpdateDecoderV2) => {\n const encoder = new YEncoder();\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false);\n let curr = updateDecoder.curr;\n if (curr !== null) {\n let size = 0;\n let currClient = curr.id.client;\n let stopCounting = curr.id.clock !== 0; // must start at 0\n let currClock = stopCounting ? 0 : curr.id.clock + curr.length;\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n if (currClock !== 0) {\n size++;\n // We found a new client\n // write what we have to the encoder\n encoding.writeVarUint(encoder.restEncoder, currClient);\n encoding.writeVarUint(encoder.restEncoder, currClock);\n }\n currClient = curr.id.client;\n currClock = 0;\n stopCounting = curr.id.clock !== 0;\n }\n // we ignore skips\n if (curr.constructor === Skip) {\n stopCounting = true;\n }\n if (!stopCounting) {\n currClock = curr.id.clock + curr.length;\n }\n }\n // write what we have\n if (currClock !== 0) {\n size++;\n encoding.writeVarUint(encoder.restEncoder, currClient);\n encoding.writeVarUint(encoder.restEncoder, currClock);\n }\n // prepend the size of the state vector\n const enc = encoding.createEncoder();\n encoding.writeVarUint(enc, size);\n encoding.writeBinaryEncoder(enc, encoder.restEncoder);\n encoder.restEncoder = enc;\n return encoder.toUint8Array()\n } else {\n encoding.writeVarUint(encoder.restEncoder, 0);\n return encoder.toUint8Array()\n }\n};\n\n/**\n * @param {Uint8Array} update\n * @return {Uint8Array}\n */\nconst encodeStateVectorFromUpdate = update => encodeStateVectorFromUpdateV2(update, DSEncoderV1, UpdateDecoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {{ from: Map, to: Map }}\n */\nconst parseUpdateMetaV2 = (update, YDecoder = UpdateDecoderV2) => {\n /**\n * @type {Map}\n */\n const from = new Map();\n /**\n * @type {Map}\n */\n const to = new Map();\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false);\n let curr = updateDecoder.curr;\n if (curr !== null) {\n let currClient = curr.id.client;\n let currClock = curr.id.clock;\n // write the beginning to `from`\n from.set(currClient, currClock);\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n // We found a new client\n // write the end to `to`\n to.set(currClient, currClock);\n // write the beginning to `from`\n from.set(curr.id.client, curr.id.clock);\n // update currClient\n currClient = curr.id.client;\n }\n currClock = curr.id.clock + curr.length;\n }\n // write the end to `to`\n to.set(currClient, currClock);\n }\n return { from, to }\n};\n\n/**\n * @param {Uint8Array} update\n * @return {{ from: Map, to: Map }}\n */\nconst parseUpdateMeta = update => parseUpdateMetaV2(update, UpdateDecoderV1);\n\n/**\n * This method is intended to slice any kind of struct and retrieve the right part.\n * It does not handle side-effects, so it should only be used by the lazy-encoder.\n *\n * @param {Item | GC | Skip} left\n * @param {number} diff\n * @return {Item | GC}\n */\nconst sliceStruct = (left, diff) => {\n if (left.constructor === GC) {\n const { client, clock } = left.id;\n return new GC(createID(client, clock + diff), left.length - diff)\n } else if (left.constructor === Skip) {\n const { client, clock } = left.id;\n return new Skip(createID(client, clock + diff), left.length - diff)\n } else {\n const leftItem = /** @type {Item} */ (left);\n const { client, clock } = leftItem.id;\n return new Item(\n createID(client, clock + diff),\n null,\n createID(client, clock + diff - 1),\n null,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n }\n};\n\n/**\n *\n * This function works similarly to `readUpdateV2`.\n *\n * @param {Array} updates\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n * @return {Uint8Array}\n */\nconst mergeUpdatesV2 = (updates, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n if (updates.length === 1) {\n return updates[0]\n }\n const updateDecoders = updates.map(update => new YDecoder(decoding.createDecoder(update)));\n let lazyStructDecoders = updateDecoders.map(decoder => new LazyStructReader(decoder, true));\n\n /**\n * @todo we don't need offset because we always slice before\n * @type {null | { struct: Item | GC | Skip, offset: number }}\n */\n let currWrite = null;\n\n const updateEncoder = new YEncoder();\n // write structs lazily\n const lazyStructEncoder = new LazyStructWriter(updateEncoder);\n\n // Note: We need to ensure that all lazyStructDecoders are fully consumed\n // Note: Should merge document updates whenever possible - even from different updates\n // Note: Should handle that some operations cannot be applied yet ()\n\n while (true) {\n // Write higher clients first ⇒ sort by clientID & clock and remove decoders without content\n lazyStructDecoders = lazyStructDecoders.filter(dec => dec.curr !== null);\n lazyStructDecoders.sort(\n /** @type {function(any,any):number} */ (dec1, dec2) => {\n if (dec1.curr.id.client === dec2.curr.id.client) {\n const clockDiff = dec1.curr.id.clock - dec2.curr.id.clock;\n if (clockDiff === 0) {\n // @todo remove references to skip since the structDecoders must filter Skips.\n return dec1.curr.constructor === dec2.curr.constructor\n ? 0\n : dec1.curr.constructor === Skip ? 1 : -1 // we are filtering skips anyway.\n } else {\n return clockDiff\n }\n } else {\n return dec2.curr.id.client - dec1.curr.id.client\n }\n }\n );\n if (lazyStructDecoders.length === 0) {\n break\n }\n const currDecoder = lazyStructDecoders[0];\n // write from currDecoder until the next operation is from another client or if filler-struct\n // then we need to reorder the decoders and find the next operation to write\n const firstClient = /** @type {Item | GC} */ (currDecoder.curr).id.client;\n\n if (currWrite !== null) {\n let curr = /** @type {Item | GC | null} */ (currDecoder.curr);\n let iterated = false;\n\n // iterate until we find something that we haven't written already\n // remember: first the high client-ids are written\n while (curr !== null && curr.id.clock + curr.length <= currWrite.struct.id.clock + currWrite.struct.length && curr.id.client >= currWrite.struct.id.client) {\n curr = currDecoder.next();\n iterated = true;\n }\n if (\n curr === null || // current decoder is empty\n curr.id.client !== firstClient || // check whether there is another decoder that has has updates from `firstClient`\n (iterated && curr.id.clock > currWrite.struct.id.clock + currWrite.struct.length) // the above while loop was used and we are potentially missing updates\n ) {\n continue\n }\n\n if (firstClient !== currWrite.struct.id.client) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: curr, offset: 0 };\n currDecoder.next();\n } else {\n if (currWrite.struct.id.clock + currWrite.struct.length < curr.id.clock) {\n // @todo write currStruct & set currStruct = Skip(clock = currStruct.id.clock + currStruct.length, length = curr.id.clock - self.clock)\n if (currWrite.struct.constructor === Skip) {\n // extend existing skip\n currWrite.struct.length = curr.id.clock + curr.length - currWrite.struct.id.clock;\n } else {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n const diff = curr.id.clock - currWrite.struct.id.clock - currWrite.struct.length;\n /**\n * @type {Skip}\n */\n const struct = new Skip(createID(firstClient, currWrite.struct.id.clock + currWrite.struct.length), diff);\n currWrite = { struct, offset: 0 };\n }\n } else { // if (currWrite.struct.id.clock + currWrite.struct.length >= curr.id.clock) {\n const diff = currWrite.struct.id.clock + currWrite.struct.length - curr.id.clock;\n if (diff > 0) {\n if (currWrite.struct.constructor === Skip) {\n // prefer to slice Skip because the other struct might contain more information\n currWrite.struct.length -= diff;\n } else {\n curr = sliceStruct(curr, diff);\n }\n }\n if (!currWrite.struct.mergeWith(/** @type {any} */ (curr))) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: curr, offset: 0 };\n currDecoder.next();\n }\n }\n }\n } else {\n currWrite = { struct: /** @type {Item | GC} */ (currDecoder.curr), offset: 0 };\n currDecoder.next();\n }\n for (\n let next = currDecoder.curr;\n next !== null && next.id.client === firstClient && next.id.clock === currWrite.struct.id.clock + currWrite.struct.length && next.constructor !== Skip;\n next = currDecoder.next()\n ) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = { struct: next, offset: 0 };\n }\n }\n if (currWrite !== null) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset);\n currWrite = null;\n }\n finishLazyStructWriting(lazyStructEncoder);\n\n const dss = updateDecoders.map(decoder => readDeleteSet(decoder));\n const ds = mergeDeleteSets(dss);\n writeDeleteSet(updateEncoder, ds);\n return updateEncoder.toUint8Array()\n};\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n */\nconst diffUpdateV2 = (update, sv, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n const state = decodeStateVector(sv);\n const encoder = new YEncoder();\n const lazyStructWriter = new LazyStructWriter(encoder);\n const decoder = new YDecoder(decoding.createDecoder(update));\n const reader = new LazyStructReader(decoder, false);\n while (reader.curr) {\n const curr = reader.curr;\n const currClient = curr.id.client;\n const svClock = state.get(currClient) || 0;\n if (reader.curr.constructor === Skip) {\n // the first written struct shouldn't be a skip\n reader.next();\n continue\n }\n if (curr.id.clock + curr.length > svClock) {\n writeStructToLazyStructWriter(lazyStructWriter, curr, math.max(svClock - curr.id.clock, 0));\n reader.next();\n while (reader.curr && reader.curr.id.client === currClient) {\n writeStructToLazyStructWriter(lazyStructWriter, reader.curr, 0);\n reader.next();\n }\n } else {\n // read until something new comes up\n while (reader.curr && reader.curr.id.client === currClient && reader.curr.id.clock + reader.curr.length <= svClock) {\n reader.next();\n }\n }\n }\n finishLazyStructWriting(lazyStructWriter);\n // write ds\n const ds = readDeleteSet(decoder);\n writeDeleteSet(encoder, ds);\n return encoder.toUint8Array()\n};\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n */\nconst diffUpdate = (update, sv) => diffUpdateV2(update, sv, UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {LazyStructWriter} lazyWriter\n */\nconst flushLazyStructWriter = lazyWriter => {\n if (lazyWriter.written > 0) {\n lazyWriter.clientStructs.push({ written: lazyWriter.written, restEncoder: encoding.toUint8Array(lazyWriter.encoder.restEncoder) });\n lazyWriter.encoder.restEncoder = encoding.createEncoder();\n lazyWriter.written = 0;\n }\n};\n\n/**\n * @param {LazyStructWriter} lazyWriter\n * @param {Item | GC} struct\n * @param {number} offset\n */\nconst writeStructToLazyStructWriter = (lazyWriter, struct, offset) => {\n // flush curr if we start another client\n if (lazyWriter.written > 0 && lazyWriter.currClient !== struct.id.client) {\n flushLazyStructWriter(lazyWriter);\n }\n if (lazyWriter.written === 0) {\n lazyWriter.currClient = struct.id.client;\n // write next client\n lazyWriter.encoder.writeClient(struct.id.client);\n // write startClock\n encoding.writeVarUint(lazyWriter.encoder.restEncoder, struct.id.clock + offset);\n }\n struct.write(lazyWriter.encoder, offset);\n lazyWriter.written++;\n};\n/**\n * Call this function when we collected all parts and want to\n * put all the parts together. After calling this method,\n * you can continue using the UpdateEncoder.\n *\n * @param {LazyStructWriter} lazyWriter\n */\nconst finishLazyStructWriting = (lazyWriter) => {\n flushLazyStructWriter(lazyWriter);\n\n // this is a fresh encoder because we called flushCurr\n const restEncoder = lazyWriter.encoder.restEncoder;\n\n /**\n * Now we put all the fragments together.\n * This works similarly to `writeClientsStructs`\n */\n\n // write # states that were updated - i.e. the clients\n encoding.writeVarUint(restEncoder, lazyWriter.clientStructs.length);\n\n for (let i = 0; i < lazyWriter.clientStructs.length; i++) {\n const partStructs = lazyWriter.clientStructs[i];\n /**\n * Works similarly to `writeStructs`\n */\n // write # encoded structs\n encoding.writeVarUint(restEncoder, partStructs.written);\n // write the rest of the fragment\n encoding.writeUint8Array(restEncoder, partStructs.restEncoder);\n }\n};\n\n/**\n * @param {Uint8Array} update\n * @param {function(Item|GC|Skip):Item|GC|Skip} blockTransformer\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} YDecoder\n * @param {typeof UpdateEncoderV2 | typeof UpdateEncoderV1 } YEncoder\n */\nconst convertUpdateFormat = (update, blockTransformer, YDecoder, YEncoder) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update));\n const lazyDecoder = new LazyStructReader(updateDecoder, false);\n const updateEncoder = new YEncoder();\n const lazyWriter = new LazyStructWriter(updateEncoder);\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n writeStructToLazyStructWriter(lazyWriter, blockTransformer(curr), 0);\n }\n finishLazyStructWriting(lazyWriter);\n const ds = readDeleteSet(updateDecoder);\n writeDeleteSet(updateEncoder, ds);\n return updateEncoder.toUint8Array()\n};\n\n/**\n * @typedef {Object} ObfuscatorOptions\n * @property {boolean} [ObfuscatorOptions.formatting=true]\n * @property {boolean} [ObfuscatorOptions.subdocs=true]\n * @property {boolean} [ObfuscatorOptions.yxml=true] Whether to obfuscate nodeName / hookName\n */\n\n/**\n * @param {ObfuscatorOptions} obfuscator\n */\nconst createObfuscator = ({ formatting = true, subdocs = true, yxml = true } = {}) => {\n let i = 0;\n const mapKeyCache = map.create();\n const nodeNameCache = map.create();\n const formattingKeyCache = map.create();\n const formattingValueCache = map.create();\n formattingValueCache.set(null, null); // end of a formatting range should always be the end of a formatting range\n /**\n * @param {Item|GC|Skip} block\n * @return {Item|GC|Skip}\n */\n return block => {\n switch (block.constructor) {\n case GC:\n case Skip:\n return block\n case Item: {\n const item = /** @type {Item} */ (block);\n const content = item.content;\n switch (content.constructor) {\n case ContentDeleted:\n break\n case ContentType: {\n if (yxml) {\n const type = /** @type {ContentType} */ (content).type;\n if (type instanceof YXmlElement) {\n type.nodeName = map.setIfUndefined(nodeNameCache, type.nodeName, () => 'node-' + i);\n }\n if (type instanceof YXmlHook) {\n type.hookName = map.setIfUndefined(nodeNameCache, type.hookName, () => 'hook-' + i);\n }\n }\n break\n }\n case ContentAny: {\n const c = /** @type {ContentAny} */ (content);\n c.arr = c.arr.map(() => i);\n break\n }\n case ContentBinary: {\n const c = /** @type {ContentBinary} */ (content);\n c.content = new Uint8Array([i]);\n break\n }\n case ContentDoc: {\n const c = /** @type {ContentDoc} */ (content);\n if (subdocs) {\n c.opts = {};\n c.doc.guid = i + '';\n }\n break\n }\n case ContentEmbed: {\n const c = /** @type {ContentEmbed} */ (content);\n c.embed = {};\n break\n }\n case ContentFormat: {\n const c = /** @type {ContentFormat} */ (content);\n if (formatting) {\n c.key = map.setIfUndefined(formattingKeyCache, c.key, () => i + '');\n c.value = map.setIfUndefined(formattingValueCache, c.value, () => ({ i }));\n }\n break\n }\n case ContentJSON: {\n const c = /** @type {ContentJSON} */ (content);\n c.arr = c.arr.map(() => i);\n break\n }\n case ContentString: {\n const c = /** @type {ContentString} */ (content);\n c.str = string.repeat((i % 10) + '', c.str.length);\n break\n }\n default:\n // unknown content type\n error.unexpectedCase();\n }\n if (item.parentSub) {\n item.parentSub = map.setIfUndefined(mapKeyCache, item.parentSub, () => i + '');\n }\n i++;\n return block\n }\n default:\n // unknown block-type\n error.unexpectedCase();\n }\n }\n};\n\n/**\n * This function obfuscates the content of a Yjs update. This is useful to share\n * buggy Yjs documents while significantly limiting the possibility that a\n * developer can on the user. Note that it might still be possible to deduce\n * some information by analyzing the \"structure\" of the document or by analyzing\n * the typing behavior using the CRDT-related metadata that is still kept fully\n * intact.\n *\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nconst obfuscateUpdate = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV1, UpdateEncoderV1);\n\n/**\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nconst obfuscateUpdateV2 = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV2, UpdateEncoderV2);\n\n/**\n * @param {Uint8Array} update\n */\nconst convertUpdateFormatV1ToV2 = update => convertUpdateFormat(update, f.id, UpdateDecoderV1, UpdateEncoderV2);\n\n/**\n * @param {Uint8Array} update\n */\nconst convertUpdateFormatV2ToV1 = update => convertUpdateFormat(update, f.id, UpdateDecoderV2, UpdateEncoderV1);\n\nconst errorComputeChanges = 'You must not compute changes after the event-handler fired.';\n\n/**\n * @template {AbstractType} T\n * YEvent describes the changes on a YType.\n */\nclass YEvent {\n /**\n * @param {T} target The changed type.\n * @param {Transaction} transaction\n */\n constructor (target, transaction) {\n /**\n * The type on which this event was created on.\n * @type {T}\n */\n this.target = target;\n /**\n * The current target on which the observe callback is called.\n * @type {AbstractType}\n */\n this.currentTarget = target;\n /**\n * The transaction that triggered this event.\n * @type {Transaction}\n */\n this.transaction = transaction;\n /**\n * @type {Object|null}\n */\n this._changes = null;\n /**\n * @type {null | Map}\n */\n this._keys = null;\n /**\n * @type {null | Array<{ insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object }>}\n */\n this._delta = null;\n /**\n * @type {Array|null}\n */\n this._path = null;\n }\n\n /**\n * Computes the path from `y` to the changed type.\n *\n * @todo v14 should standardize on path: Array<{parent, index}> because that is easier to work with.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(dir => {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n */\n get path () {\n return this._path || (this._path = getPathTo(this.currentTarget, this.target))\n }\n\n /**\n * Check if a struct is deleted by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n deletes (struct) {\n return isDeleted(this.transaction.deleteSet, struct.id)\n }\n\n /**\n * @type {Map}\n */\n get keys () {\n if (this._keys === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const keys = new Map();\n const target = this.target;\n const changed = /** @type Set */ (this.transaction.changed.get(target));\n changed.forEach(key => {\n if (key !== null) {\n const item = /** @type {Item} */ (target._map.get(key));\n /**\n * @type {'delete' | 'add' | 'update'}\n */\n let action;\n let oldValue;\n if (this.adds(item)) {\n let prev = item.left;\n while (prev !== null && this.adds(prev)) {\n prev = prev.left;\n }\n if (this.deletes(item)) {\n if (prev !== null && this.deletes(prev)) {\n action = 'delete';\n oldValue = array.last(prev.content.getContent());\n } else {\n return\n }\n } else {\n if (prev !== null && this.deletes(prev)) {\n action = 'update';\n oldValue = array.last(prev.content.getContent());\n } else {\n action = 'add';\n oldValue = undefined;\n }\n }\n } else {\n if (this.deletes(item)) {\n action = 'delete';\n oldValue = array.last(/** @type {Item} */ item.content.getContent());\n } else {\n return // nop\n }\n }\n keys.set(key, { action, oldValue });\n }\n });\n this._keys = keys;\n }\n return this._keys\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {Array<{insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object}>}\n */\n get delta () {\n return this.changes.delta\n }\n\n /**\n * Check if a struct is added by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n adds (struct) {\n return struct.id.clock >= (this.transaction.beforeState.get(struct.id.client) || 0)\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n let changes = this._changes;\n if (changes === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const target = this.target;\n const added = set.create();\n const deleted = set.create();\n /**\n * @type {Array<{insert:Array}|{delete:number}|{retain:number}>}\n */\n const delta = [];\n changes = {\n added,\n deleted,\n delta,\n keys: this.keys\n };\n const changed = /** @type Set */ (this.transaction.changed.get(target));\n if (changed.has(null)) {\n /**\n * @type {any}\n */\n let lastOp = null;\n const packOp = () => {\n if (lastOp) {\n delta.push(lastOp);\n }\n };\n for (let item = target._start; item !== null; item = item.right) {\n if (item.deleted) {\n if (this.deletes(item) && !this.adds(item)) {\n if (lastOp === null || lastOp.delete === undefined) {\n packOp();\n lastOp = { delete: 0 };\n }\n lastOp.delete += item.length;\n deleted.add(item);\n } // else nop\n } else {\n if (this.adds(item)) {\n if (lastOp === null || lastOp.insert === undefined) {\n packOp();\n lastOp = { insert: [] };\n }\n lastOp.insert = lastOp.insert.concat(item.content.getContent());\n added.add(item);\n } else {\n if (lastOp === null || lastOp.retain === undefined) {\n packOp();\n lastOp = { retain: 0 };\n }\n lastOp.retain += item.length;\n }\n }\n }\n if (lastOp !== null && lastOp.retain === undefined) {\n packOp();\n }\n }\n this._changes = changes;\n }\n return /** @type {any} */ (changes)\n }\n}\n\n/**\n * Compute the path from this type to the specified target.\n *\n * @example\n * // `child` should be accessible via `type.get(path[0]).get(path[1])..`\n * const path = type.getPathTo(child)\n * // assuming `type instanceof YArray`\n * console.log(path) // might look like => [2, 'key1']\n * child === type.get(path[0]).get(path[1])\n *\n * @param {AbstractType} parent\n * @param {AbstractType} child target\n * @return {Array} Path to the target\n *\n * @private\n * @function\n */\nconst getPathTo = (parent, child) => {\n const path = [];\n while (child._item !== null && child !== parent) {\n if (child._item.parentSub !== null) {\n // parent is map-ish\n path.unshift(child._item.parentSub);\n } else {\n // parent is array-ish\n let i = 0;\n let c = /** @type {AbstractType} */ (child._item.parent)._start;\n while (c !== child._item && c !== null) {\n if (!c.deleted && c.countable) {\n i += c.length;\n }\n c = c.right;\n }\n path.unshift(i);\n }\n child = /** @type {AbstractType} */ (child._item.parent);\n }\n return path\n};\n\n/**\n * https://docs.yjs.dev/getting-started/working-with-shared-types#caveats\n */\nconst warnPrematureAccess = () => { logging.warn('Invalid access: Add Yjs type to a document before reading data.'); };\n\nconst maxSearchMarker = 80;\n\n/**\n * A unique timestamp that identifies each marker.\n *\n * Time is relative,.. this is more like an ever-increasing clock.\n *\n * @type {number}\n */\nlet globalSearchMarkerTimestamp = 0;\n\nclass ArraySearchMarker {\n /**\n * @param {Item} p\n * @param {number} index\n */\n constructor (p, index) {\n p.marker = true;\n this.p = p;\n this.index = index;\n this.timestamp = globalSearchMarkerTimestamp++;\n }\n}\n\n/**\n * @param {ArraySearchMarker} marker\n */\nconst refreshMarkerTimestamp = marker => { marker.timestamp = globalSearchMarkerTimestamp++; };\n\n/**\n * This is rather complex so this function is the only thing that should overwrite a marker\n *\n * @param {ArraySearchMarker} marker\n * @param {Item} p\n * @param {number} index\n */\nconst overwriteMarker = (marker, p, index) => {\n marker.p.marker = false;\n marker.p = p;\n p.marker = true;\n marker.index = index;\n marker.timestamp = globalSearchMarkerTimestamp++;\n};\n\n/**\n * @param {Array} searchMarker\n * @param {Item} p\n * @param {number} index\n */\nconst markPosition = (searchMarker, p, index) => {\n if (searchMarker.length >= maxSearchMarker) {\n // override oldest marker (we don't want to create more objects)\n const marker = searchMarker.reduce((a, b) => a.timestamp < b.timestamp ? a : b);\n overwriteMarker(marker, p, index);\n return marker\n } else {\n // create new marker\n const pm = new ArraySearchMarker(p, index);\n searchMarker.push(pm);\n return pm\n }\n};\n\n/**\n * Search marker help us to find positions in the associative array faster.\n *\n * They speed up the process of finding a position without much bookkeeping.\n *\n * A maximum of `maxSearchMarker` objects are created.\n *\n * This function always returns a refreshed marker (updated timestamp)\n *\n * @param {AbstractType} yarray\n * @param {number} index\n */\nconst findMarker = (yarray, index) => {\n if (yarray._start === null || index === 0 || yarray._searchMarker === null) {\n return null\n }\n const marker = yarray._searchMarker.length === 0 ? null : yarray._searchMarker.reduce((a, b) => math.abs(index - a.index) < math.abs(index - b.index) ? a : b);\n let p = yarray._start;\n let pindex = 0;\n if (marker !== null) {\n p = marker.p;\n pindex = marker.index;\n refreshMarkerTimestamp(marker); // we used it, we might need to use it again\n }\n // iterate to right if possible\n while (p.right !== null && pindex < index) {\n if (!p.deleted && p.countable) {\n if (index < pindex + p.length) {\n break\n }\n pindex += p.length;\n }\n p = p.right;\n }\n // iterate to left if necessary (might be that pindex > index)\n while (p.left !== null && pindex > index) {\n p = p.left;\n if (!p.deleted && p.countable) {\n pindex -= p.length;\n }\n }\n // we want to make sure that p can't be merged with left, because that would screw up everything\n // in that cas just return what we have (it is most likely the best marker anyway)\n // iterate to left until p can't be merged with left\n while (p.left !== null && p.left.id.client === p.id.client && p.left.id.clock + p.left.length === p.id.clock) {\n p = p.left;\n if (!p.deleted && p.countable) {\n pindex -= p.length;\n }\n }\n\n // @todo remove!\n // assure position\n // {\n // let start = yarray._start\n // let pos = 0\n // while (start !== p) {\n // if (!start.deleted && start.countable) {\n // pos += start.length\n // }\n // start = /** @type {Item} */ (start.right)\n // }\n // if (pos !== pindex) {\n // debugger\n // throw new Error('Gotcha position fail!')\n // }\n // }\n // if (marker) {\n // if (window.lengthes == null) {\n // window.lengthes = []\n // window.getLengthes = () => window.lengthes.sort((a, b) => a - b)\n // }\n // window.lengthes.push(marker.index - pindex)\n // console.log('distance', marker.index - pindex, 'len', p && p.parent.length)\n // }\n if (marker !== null && math.abs(marker.index - pindex) < /** @type {YText|YArray} */ (p.parent).length / maxSearchMarker) {\n // adjust existing marker\n overwriteMarker(marker, p, pindex);\n return marker\n } else {\n // create new marker\n return markPosition(yarray._searchMarker, p, pindex)\n }\n};\n\n/**\n * Update markers when a change happened.\n *\n * This should be called before doing a deletion!\n *\n * @param {Array} searchMarker\n * @param {number} index\n * @param {number} len If insertion, len is positive. If deletion, len is negative.\n */\nconst updateMarkerChanges = (searchMarker, index, len) => {\n for (let i = searchMarker.length - 1; i >= 0; i--) {\n const m = searchMarker[i];\n if (len > 0) {\n /**\n * @type {Item|null}\n */\n let p = m.p;\n p.marker = false;\n // Ideally we just want to do a simple position comparison, but this will only work if\n // search markers don't point to deleted items for formats.\n // Iterate marker to prev undeleted countable position so we know what to do when updating a position\n while (p && (p.deleted || !p.countable)) {\n p = p.left;\n if (p && !p.deleted && p.countable) {\n // adjust position. the loop should break now\n m.index -= p.length;\n }\n }\n if (p === null || p.marker === true) {\n // remove search marker if updated position is null or if position is already marked\n searchMarker.splice(i, 1);\n continue\n }\n m.p = p;\n p.marker = true;\n }\n if (index < m.index || (len > 0 && index === m.index)) { // a simple index <= m.index check would actually suffice\n m.index = math.max(index, m.index + len);\n }\n }\n};\n\n/**\n * Accumulate all (list) children of a type and return them as an Array.\n *\n * @param {AbstractType} t\n * @return {Array}\n */\nconst getTypeChildren = t => {\n t.doc ?? warnPrematureAccess();\n let s = t._start;\n const arr = [];\n while (s) {\n arr.push(s);\n s = s.right;\n }\n return arr\n};\n\n/**\n * Call event listeners with an event. This will also add an event to all\n * parents (for `.observeDeep` handlers).\n *\n * @template EventType\n * @param {AbstractType} type\n * @param {Transaction} transaction\n * @param {EventType} event\n */\nconst callTypeObservers = (type, transaction, event) => {\n const changedType = type;\n const changedParentTypes = transaction.changedParentTypes;\n while (true) {\n // @ts-ignore\n map.setIfUndefined(changedParentTypes, type, () => []).push(event);\n if (type._item === null) {\n break\n }\n type = /** @type {AbstractType} */ (type._item.parent);\n }\n callEventHandlerListeners(changedType._eH, event, transaction);\n};\n\n/**\n * @template EventType\n * Abstract Yjs Type class\n */\nclass AbstractType {\n constructor () {\n /**\n * @type {Item|null}\n */\n this._item = null;\n /**\n * @type {Map}\n */\n this._map = new Map();\n /**\n * @type {Item|null}\n */\n this._start = null;\n /**\n * @type {Doc|null}\n */\n this.doc = null;\n this._length = 0;\n /**\n * Event handlers\n * @type {EventHandler}\n */\n this._eH = createEventHandler();\n /**\n * Deep event handlers\n * @type {EventHandler>,Transaction>}\n */\n this._dEH = createEventHandler();\n /**\n * @type {null | Array}\n */\n this._searchMarker = null;\n }\n\n /**\n * @return {AbstractType|null}\n */\n get parent () {\n return this._item ? /** @type {AbstractType} */ (this._item.parent) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item|null} item\n */\n _integrate (y, item) {\n this.doc = y;\n this._item = item;\n }\n\n /**\n * @return {AbstractType}\n */\n _copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {AbstractType}\n */\n clone () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n */\n _write (_encoder) { }\n\n /**\n * The first non-deleted item\n */\n get _first () {\n let n = this._start;\n while (n !== null && n.deleted) {\n n = n.right;\n }\n return n\n }\n\n /**\n * Creates YEvent and calls all type observers.\n * Must be implemented by each type.\n *\n * @param {Transaction} transaction\n * @param {Set} _parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, _parentSubs) {\n if (!transaction.local && this._searchMarker) {\n this._searchMarker.length = 0;\n }\n }\n\n /**\n * Observe all events that are created on this type.\n *\n * @param {function(EventType, Transaction):void} f Observer function\n */\n observe (f) {\n addEventHandlerListener(this._eH, f);\n }\n\n /**\n * Observe all events that are created by this type and its children.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n observeDeep (f) {\n addEventHandlerListener(this._dEH, f);\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(EventType,Transaction):void} f Observer function\n */\n unobserve (f) {\n removeEventHandlerListener(this._eH, f);\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n unobserveDeep (f) {\n removeEventHandlerListener(this._dEH, f);\n }\n\n /**\n * @abstract\n * @return {any}\n */\n toJSON () {}\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} start\n * @param {number} end\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListSlice = (type, start, end) => {\n type.doc ?? warnPrematureAccess();\n if (start < 0) {\n start = type._length + start;\n }\n if (end < 0) {\n end = type._length + end;\n }\n let len = end - start;\n const cs = [];\n let n = type._start;\n while (n !== null && len > 0) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n if (c.length <= start) {\n start -= c.length;\n } else {\n for (let i = start; i < c.length && len > 0; i++) {\n cs.push(c[i]);\n len--;\n }\n start = 0;\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * @param {AbstractType} type\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListToArray = type => {\n type.doc ?? warnPrematureAccess();\n const cs = [];\n let n = type._start;\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i]);\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * @param {AbstractType} type\n * @param {Snapshot} snapshot\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListToArraySnapshot = (type, snapshot) => {\n const cs = [];\n let n = type._start;\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i]);\n }\n }\n n = n.right;\n }\n return cs\n};\n\n/**\n * Executes a provided function on once on every element of this YArray.\n *\n * @param {AbstractType} type\n * @param {function(any,number,any):void} f A function to execute on every element of this YArray.\n *\n * @private\n * @function\n */\nconst typeListForEach = (type, f) => {\n let index = 0;\n let n = type._start;\n type.doc ?? warnPrematureAccess();\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent();\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type);\n }\n }\n n = n.right;\n }\n};\n\n/**\n * @template C,R\n * @param {AbstractType} type\n * @param {function(C,number,AbstractType):R} f\n * @return {Array}\n *\n * @private\n * @function\n */\nconst typeListMap = (type, f) => {\n /**\n * @type {Array}\n */\n const result = [];\n typeListForEach(type, (c, i) => {\n result.push(f(c, i, type));\n });\n return result\n};\n\n/**\n * @param {AbstractType} type\n * @return {IterableIterator}\n *\n * @private\n * @function\n */\nconst typeListCreateIterator = type => {\n let n = type._start;\n /**\n * @type {Array|null}\n */\n let currentContent = null;\n let currentContentIndex = 0;\n return {\n [Symbol.iterator] () {\n return this\n },\n next: () => {\n // find some content\n if (currentContent === null) {\n while (n !== null && n.deleted) {\n n = n.right;\n }\n // check if we reached the end, no need to check currentContent, because it does not exist\n if (n === null) {\n return {\n done: true,\n value: undefined\n }\n }\n // we found n, so we can set currentContent\n currentContent = n.content.getContent();\n currentContentIndex = 0;\n n = n.right; // we used the content of n, now iterate to next\n }\n const value = currentContent[currentContentIndex++];\n // check if we need to empty currentContent\n if (currentContent.length <= currentContentIndex) {\n currentContent = null;\n }\n return {\n done: false,\n value\n }\n }\n }\n};\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @return {any}\n *\n * @private\n * @function\n */\nconst typeListGet = (type, index) => {\n type.doc ?? warnPrematureAccess();\n const marker = findMarker(type, index);\n let n = type._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n return n.content.getContent()[index]\n }\n index -= n.length;\n }\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Item?} referenceItem\n * @param {Array|Array|boolean|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListInsertGenericsAfter = (transaction, parent, referenceItem, content) => {\n let left = referenceItem;\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n const store = doc.store;\n const right = referenceItem === null ? parent._start : referenceItem.right;\n /**\n * @type {Array|number|null>}\n */\n let jsonContent = [];\n const packJsonContent = () => {\n if (jsonContent.length > 0) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentAny(jsonContent));\n left.integrate(transaction, 0);\n jsonContent = [];\n }\n };\n content.forEach(c => {\n if (c === null) {\n jsonContent.push(c);\n } else {\n switch (c.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n jsonContent.push(c);\n break\n default:\n packJsonContent();\n switch (c.constructor) {\n case Uint8Array:\n case ArrayBuffer:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentBinary(new Uint8Array(/** @type {Uint8Array} */ (c))));\n left.integrate(transaction, 0);\n break\n case Doc:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentDoc(/** @type {Doc} */ (c)));\n left.integrate(transaction, 0);\n break\n default:\n if (c instanceof AbstractType) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentType(c));\n left.integrate(transaction, 0);\n } else {\n throw new Error('Unexpected content type in insert operation')\n }\n }\n }\n }\n });\n packJsonContent();\n};\n\nconst lengthExceeded = () => error.create('Length exceeded!');\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListInsertGenerics = (transaction, parent, index, content) => {\n if (index > parent._length) {\n throw lengthExceeded()\n }\n if (index === 0) {\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, index, content.length);\n }\n return typeListInsertGenericsAfter(transaction, parent, null, content)\n }\n const startIndex = index;\n const marker = findMarker(parent, index);\n let n = parent._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n // we need to iterate one to the left so that the algorithm works\n if (index === 0) {\n // @todo refactor this as it actually doesn't consider formats\n n = n.prev; // important! get the left undeleted item so that we can actually decrease index\n index += (n && n.countable && !n.deleted) ? n.length : 0;\n }\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index <= n.length) {\n if (index < n.length) {\n // insert in-between\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index));\n }\n break\n }\n index -= n.length;\n }\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, content.length);\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n};\n\n/**\n * Pushing content is special as we generally want to push after the last item. So we don't have to update\n * the serach marker.\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nconst typeListPushGenerics = (transaction, parent, content) => {\n // Use the marker with the highest index and iterate to the right.\n const marker = (parent._searchMarker || []).reduce((maxMarker, currMarker) => currMarker.index > maxMarker.index ? currMarker : maxMarker, { index: 0, p: parent._start });\n let n = marker.p;\n if (n) {\n while (n.right) {\n n = n.right;\n }\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {number} length\n *\n * @private\n * @function\n */\nconst typeListDelete = (transaction, parent, index, length) => {\n if (length === 0) { return }\n const startIndex = index;\n const startLength = length;\n const marker = findMarker(parent, index);\n let n = parent._start;\n if (marker !== null) {\n n = marker.p;\n index -= marker.index;\n }\n // compute the first item to be deleted\n for (; n !== null && index > 0; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index));\n }\n index -= n.length;\n }\n }\n // delete all items until done\n while (length > 0 && n !== null) {\n if (!n.deleted) {\n if (length < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + length));\n }\n n.delete(transaction);\n length -= n.length;\n }\n n = n.right;\n }\n if (length > 0) {\n throw lengthExceeded()\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, -startLength + length /* in case we remove the above exception */);\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n *\n * @private\n * @function\n */\nconst typeMapDelete = (transaction, parent, key) => {\n const c = parent._map.get(key);\n if (c !== undefined) {\n c.delete(transaction);\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Object|number|null|Array|string|Uint8Array|AbstractType} value\n *\n * @private\n * @function\n */\nconst typeMapSet = (transaction, parent, key, value) => {\n const left = parent._map.get(key) || null;\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n let content;\n if (value == null) {\n content = new ContentAny([value]);\n } else {\n switch (value.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n content = new ContentAny([value]);\n break\n case Uint8Array:\n content = new ContentBinary(/** @type {Uint8Array} */ (value));\n break\n case Doc:\n content = new ContentDoc(/** @type {Doc} */ (value));\n break\n default:\n if (value instanceof AbstractType) {\n content = new ContentType(value);\n } else {\n throw new Error('Unexpected content type')\n }\n }\n }\n new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, null, null, parent, key, content).integrate(transaction, 0);\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nconst typeMapGet = (parent, key) => {\n parent.doc ?? warnPrematureAccess();\n const val = parent._map.get(key);\n return val !== undefined && !val.deleted ? val.content.getContent()[val.length - 1] : undefined\n};\n\n/**\n * @param {AbstractType} parent\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nconst typeMapGetAll = (parent) => {\n /**\n * @type {Object}\n */\n const res = {};\n parent.doc ?? warnPrematureAccess();\n parent._map.forEach((value, key) => {\n if (!value.deleted) {\n res[key] = value.content.getContent()[value.length - 1];\n }\n });\n return res\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {boolean}\n *\n * @private\n * @function\n */\nconst typeMapHas = (parent, key) => {\n parent.doc ?? warnPrematureAccess();\n const val = parent._map.get(key);\n return val !== undefined && !val.deleted\n};\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nconst typeMapGetSnapshot = (parent, key, snapshot) => {\n let v = parent._map.get(key) || null;\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left;\n }\n return v !== null && isVisible(v, snapshot) ? v.content.getContent()[v.length - 1] : undefined\n};\n\n/**\n * @param {AbstractType} parent\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nconst typeMapGetAllSnapshot = (parent, snapshot) => {\n /**\n * @type {Object}\n */\n const res = {};\n parent._map.forEach((value, key) => {\n /**\n * @type {Item|null}\n */\n let v = value;\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left;\n }\n if (v !== null && isVisible(v, snapshot)) {\n res[key] = v.content.getContent()[v.length - 1];\n }\n });\n return res\n};\n\n/**\n * @param {AbstractType & { _map: Map }} type\n * @return {IterableIterator>}\n *\n * @private\n * @function\n */\nconst createMapIterator = type => {\n type.doc ?? warnPrematureAccess();\n return iterator.iteratorFilter(type._map.entries(), /** @param {any} entry */ entry => !entry[1].deleted)\n};\n\n/**\n * @module YArray\n */\n\n\n/**\n * Event that describes the changes on a YArray\n * @template T\n * @extends YEvent>\n */\nclass YArrayEvent extends YEvent {}\n\n/**\n * A shared Array implementation.\n * @template T\n * @extends AbstractType>\n * @implements {Iterable}\n */\nclass YArray extends AbstractType {\n constructor () {\n super();\n /**\n * @type {Array?}\n * @private\n */\n this._prelimContent = [];\n /**\n * @type {Array}\n */\n this._searchMarker = [];\n }\n\n /**\n * Construct a new YArray containing the specified items.\n * @template {Object|Array|number|null|string|Uint8Array} T\n * @param {Array} items\n * @return {YArray}\n */\n static from (items) {\n /**\n * @type {YArray}\n */\n const a = new YArray();\n a.push(items);\n return a\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n this.insert(0, /** @type {Array} */ (this._prelimContent));\n this._prelimContent = null;\n }\n\n /**\n * @return {YArray}\n */\n _copy () {\n return new YArray()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YArray}\n */\n clone () {\n /**\n * @type {YArray}\n */\n const arr = new YArray();\n arr.insert(0, this.toArray().map(el =>\n el instanceof AbstractType ? /** @type {typeof el} */ (el.clone()) : el\n ));\n return arr\n }\n\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._length\n }\n\n /**\n * Creates YArrayEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs);\n callTypeObservers(this, transaction, new YArrayEvent(this, transaction));\n }\n\n /**\n * Inserts new content at an index.\n *\n * Important: This function expects an array of content. Not just a content\n * object. The reason for this \"weirdness\" is that inserting several elements\n * is very efficient when it is done as a single operation.\n *\n * @example\n * // Insert character 'a' at position 0\n * yarray.insert(0, ['a'])\n * // Insert numbers 1, 2 at position 1\n * yarray.insert(1, [1, 2])\n *\n * @param {number} index The index to insert content at.\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, /** @type {any} */ (content));\n });\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, 0, ...content);\n }\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n *\n * @todo Use the following implementation in all types.\n */\n push (content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListPushGenerics(transaction, this, /** @type {any} */ (content));\n });\n } else {\n /** @type {Array} */ (this._prelimContent).push(...content);\n }\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content);\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} length The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length);\n });\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, length);\n }\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {T}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Returns a portion of this YArray into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Array}\n */\n toJSON () {\n return this.map(c => c instanceof AbstractType ? c.toJSON() : c)\n }\n\n /**\n * Returns an Array with the result of calling a provided function on every\n * element of this YArray.\n *\n * @template M\n * @param {function(T,number,YArray):M} f Function that produces an element of the new Array\n * @return {Array} A new array with each element being the result of the\n * callback function\n */\n map (f) {\n return typeListMap(this, /** @type {any} */ (f))\n }\n\n /**\n * Executes a provided function once on every element of this YArray.\n *\n * @param {function(T,number,YArray):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f);\n }\n\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return typeListCreateIterator(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YArrayRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nconst readYArray = _decoder => new YArray();\n\n/**\n * @module YMap\n */\n\n\n/**\n * @template T\n * @extends YEvent>\n * Event that describes the changes on a YMap.\n */\nclass YMapEvent extends YEvent {\n /**\n * @param {YMap} ymap The YArray that changed.\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed.\n */\n constructor (ymap, transaction, subs) {\n super(ymap, transaction);\n this.keysChanged = subs;\n }\n}\n\n/**\n * @template MapType\n * A shared Map implementation.\n *\n * @extends AbstractType>\n * @implements {Iterable<[string, MapType]>}\n */\nclass YMap extends AbstractType {\n /**\n *\n * @param {Iterable=} entries - an optional iterable to initialize the YMap\n */\n constructor (entries) {\n super();\n /**\n * @type {Map?}\n * @private\n */\n this._prelimContent = null;\n\n if (entries === undefined) {\n this._prelimContent = new Map();\n } else {\n this._prelimContent = new Map(entries);\n }\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;/** @type {Map} */ (this._prelimContent).forEach((value, key) => {\n this.set(key, value);\n });\n this._prelimContent = null;\n }\n\n /**\n * @return {YMap}\n */\n _copy () {\n return new YMap()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YMap}\n */\n clone () {\n /**\n * @type {YMap}\n */\n const map = new YMap();\n this.forEach((value, key) => {\n map.set(key, value instanceof AbstractType ? /** @type {typeof value} */ (value.clone()) : value);\n });\n return map\n }\n\n /**\n * Creates YMapEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YMapEvent(this, transaction, parentSubs));\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Object}\n */\n toJSON () {\n this.doc ?? warnPrematureAccess();\n /**\n * @type {Object}\n */\n const map = {};\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n const v = item.content.getContent()[item.length - 1];\n map[key] = v instanceof AbstractType ? v.toJSON() : v;\n }\n });\n return map\n }\n\n /**\n * Returns the size of the YMap (count of key/value pairs)\n *\n * @return {number}\n */\n get size () {\n return [...createMapIterator(this)].length\n }\n\n /**\n * Returns the keys for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n keys () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[0])\n }\n\n /**\n * Returns the values for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n values () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[1].content.getContent()[v[1].length - 1])\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n entries () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => /** @type {any} */ ([v[0], v[1].content.getContent()[v[1].length - 1]]))\n }\n\n /**\n * Executes a provided function on once on every key-value pair.\n *\n * @param {function(MapType,string,YMap):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n this.doc ?? warnPrematureAccess();\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n f(item.content.getContent()[item.length - 1], key, this);\n }\n });\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n [Symbol.iterator] () {\n return this.entries()\n }\n\n /**\n * Remove a specified element from this YMap.\n *\n * @param {string} key The key of the element to remove.\n */\n delete (key) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, key);\n });\n } else {\n /** @type {Map} */ (this._prelimContent).delete(key);\n }\n }\n\n /**\n * Adds or updates an element with a specified key and value.\n * @template {MapType} VAL\n *\n * @param {string} key The key of the element to add to this YMap\n * @param {VAL} value The value of the element to add\n * @return {VAL}\n */\n set (key, value) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, key, /** @type {any} */ (value));\n });\n } else {\n /** @type {Map} */ (this._prelimContent).set(key, value);\n }\n return value\n }\n\n /**\n * Returns a specified element from this YMap.\n *\n * @param {string} key\n * @return {MapType|undefined}\n */\n get (key) {\n return /** @type {any} */ (typeMapGet(this, key))\n }\n\n /**\n * Returns a boolean indicating whether the specified key exists or not.\n *\n * @param {string} key The key to test.\n * @return {boolean}\n */\n has (key) {\n return typeMapHas(this, key)\n }\n\n /**\n * Removes all elements from this YMap.\n */\n clear () {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n this.forEach(function (_value, key, map) {\n typeMapDelete(transaction, map, key);\n });\n });\n } else {\n /** @type {Map} */ (this._prelimContent).clear();\n }\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YMapRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nconst readYMap = _decoder => new YMap();\n\n/**\n * @module YText\n */\n\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst equalAttrs = (a, b) => a === b || (typeof a === 'object' && typeof b === 'object' && a && b && object.equalFlat(a, b));\n\nclass ItemTextListPosition {\n /**\n * @param {Item|null} left\n * @param {Item|null} right\n * @param {number} index\n * @param {Map} currentAttributes\n */\n constructor (left, right, index, currentAttributes) {\n this.left = left;\n this.right = right;\n this.index = index;\n this.currentAttributes = currentAttributes;\n }\n\n /**\n * Only call this if you know that this.right is defined\n */\n forward () {\n if (this.right === null) {\n error.unexpectedCase();\n }\n switch (this.right.content.constructor) {\n case ContentFormat:\n if (!this.right.deleted) {\n updateCurrentAttributes(this.currentAttributes, /** @type {ContentFormat} */ (this.right.content));\n }\n break\n default:\n if (!this.right.deleted) {\n this.index += this.right.length;\n }\n break\n }\n this.left = this.right;\n this.right = this.right.right;\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} pos\n * @param {number} count steps to move forward\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findNextPosition = (transaction, pos, count) => {\n while (pos.right !== null && count > 0) {\n switch (pos.right.content.constructor) {\n case ContentFormat:\n if (!pos.right.deleted) {\n updateCurrentAttributes(pos.currentAttributes, /** @type {ContentFormat} */ (pos.right.content));\n }\n break\n default:\n if (!pos.right.deleted) {\n if (count < pos.right.length) {\n // split right\n getItemCleanStart(transaction, createID(pos.right.id.client, pos.right.id.clock + count));\n }\n pos.index += pos.right.length;\n count -= pos.right.length;\n }\n break\n }\n pos.left = pos.right;\n pos.right = pos.right.right;\n // pos.forward() - we don't forward because that would halve the performance because we already do the checks above\n }\n return pos\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {boolean} useSearchMarker\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findPosition = (transaction, parent, index, useSearchMarker) => {\n const currentAttributes = new Map();\n const marker = useSearchMarker ? findMarker(parent, index) : null;\n if (marker) {\n const pos = new ItemTextListPosition(marker.p.left, marker.p, marker.index, currentAttributes);\n return findNextPosition(transaction, pos, index - marker.index)\n } else {\n const pos = new ItemTextListPosition(null, parent._start, 0, currentAttributes);\n return findNextPosition(transaction, pos, index)\n }\n};\n\n/**\n * Negate applied formats\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Map} negatedAttributes\n *\n * @private\n * @function\n */\nconst insertNegatedAttributes = (transaction, parent, currPos, negatedAttributes) => {\n // check if we really need to remove attributes\n while (\n currPos.right !== null && (\n currPos.right.deleted === true || (\n currPos.right.content.constructor === ContentFormat &&\n equalAttrs(negatedAttributes.get(/** @type {ContentFormat} */ (currPos.right.content).key), /** @type {ContentFormat} */ (currPos.right.content).value)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n negatedAttributes.delete(/** @type {ContentFormat} */ (currPos.right.content).key);\n }\n currPos.forward();\n }\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n negatedAttributes.forEach((val, key) => {\n const left = currPos.left;\n const right = currPos.right;\n const nextFormat = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val));\n nextFormat.integrate(transaction, 0);\n currPos.right = nextFormat;\n currPos.forward();\n });\n};\n\n/**\n * @param {Map} currentAttributes\n * @param {ContentFormat} format\n *\n * @private\n * @function\n */\nconst updateCurrentAttributes = (currentAttributes, format) => {\n const { key, value } = format;\n if (value === null) {\n currentAttributes.delete(key);\n } else {\n currentAttributes.set(key, value);\n }\n};\n\n/**\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst minimizeAttributeChanges = (currPos, attributes) => {\n // go right while attributes[right.key] === right.value (or right is deleted)\n while (true) {\n if (currPos.right === null) {\n break\n } else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] ?? null, /** @type {ContentFormat} */ (currPos.right.content).value))) ; else {\n break\n }\n currPos.forward();\n }\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n * @return {Map}\n *\n * @private\n * @function\n **/\nconst insertAttributes = (transaction, parent, currPos, attributes) => {\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n const negatedAttributes = new Map();\n // insert format-start items\n for (const key in attributes) {\n const val = attributes[key];\n const currentVal = currPos.currentAttributes.get(key) ?? null;\n if (!equalAttrs(currentVal, val)) {\n // save negated attribute (set null if currentVal undefined)\n negatedAttributes.set(key, currentVal);\n const { left, right } = currPos;\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val));\n currPos.right.integrate(transaction, 0);\n currPos.forward();\n }\n }\n return negatedAttributes\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {string|object|AbstractType} text\n * @param {Object} attributes\n *\n * @private\n * @function\n **/\nconst insertText = (transaction, parent, currPos, text, attributes) => {\n currPos.currentAttributes.forEach((_val, key) => {\n if (attributes[key] === undefined) {\n attributes[key] = null;\n }\n });\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n minimizeAttributeChanges(currPos, attributes);\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes);\n // insert content\n const content = text.constructor === String ? new ContentString(/** @type {string} */ (text)) : (text instanceof AbstractType ? new ContentType(text) : new ContentEmbed(text));\n let { left, right, index } = currPos;\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, content.getLength());\n }\n right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, content);\n right.integrate(transaction, 0);\n currPos.right = right;\n currPos.index = index;\n currPos.forward();\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes);\n};\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst formatText = (transaction, parent, currPos, length, attributes) => {\n const doc = transaction.doc;\n const ownClientId = doc.clientID;\n minimizeAttributeChanges(currPos, attributes);\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes);\n // iterate until first non-format or null is found\n // delete all formats with attributes[format.key] != null\n // also check the attributes after the first non-format as we do not want to insert redundant negated attributes there\n // eslint-disable-next-line no-labels\n iterationLoop: while (\n currPos.right !== null &&\n (length > 0 ||\n (\n negatedAttributes.size > 0 &&\n (currPos.right.deleted || currPos.right.content.constructor === ContentFormat)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n switch (currPos.right.content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (currPos.right.content);\n const attr = attributes[key];\n if (attr !== undefined) {\n if (equalAttrs(attr, value)) {\n negatedAttributes.delete(key);\n } else {\n if (length === 0) {\n // no need to further extend negatedAttributes\n // eslint-disable-next-line no-labels\n break iterationLoop\n }\n negatedAttributes.set(key, value);\n }\n currPos.right.delete(transaction);\n } else {\n currPos.currentAttributes.set(key, value);\n }\n break\n }\n default:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length));\n }\n length -= currPos.right.length;\n break\n }\n }\n currPos.forward();\n }\n // Quill just assumes that the editor starts with a newline and that it always\n // ends with a newline. We only insert that newline when a new newline is\n // inserted - i.e when length is bigger than type.length\n if (length > 0) {\n let newlines = '';\n for (; length > 0; length--) {\n newlines += '\\n';\n }\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), currPos.left, currPos.left && currPos.left.lastId, currPos.right, currPos.right && currPos.right.id, parent, null, new ContentString(newlines));\n currPos.right.integrate(transaction, 0);\n currPos.forward();\n }\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes);\n};\n\n/**\n * Call this function after string content has been deleted in order to\n * clean up formatting Items.\n *\n * @param {Transaction} transaction\n * @param {Item} start\n * @param {Item|null} curr exclusive end, automatically iterates to the next Content Item\n * @param {Map} startAttributes\n * @param {Map} currAttributes\n * @return {number} The amount of formatting Items deleted.\n *\n * @function\n */\nconst cleanupFormattingGap = (transaction, start, curr, startAttributes, currAttributes) => {\n /**\n * @type {Item|null}\n */\n let end = start;\n /**\n * @type {Map}\n */\n const endFormats = map.create();\n while (end && (!end.countable || end.deleted)) {\n if (!end.deleted && end.content.constructor === ContentFormat) {\n const cf = /** @type {ContentFormat} */ (end.content);\n endFormats.set(cf.key, cf);\n }\n end = end.right;\n }\n let cleanups = 0;\n let reachedCurr = false;\n while (start !== end) {\n if (curr === start) {\n reachedCurr = true;\n }\n if (!start.deleted) {\n const content = start.content;\n switch (content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (content);\n const startAttrValue = startAttributes.get(key) ?? null;\n if (endFormats.get(key) !== content || startAttrValue === value) {\n // Either this format is overwritten or it is not necessary because the attribute already existed.\n start.delete(transaction);\n cleanups++;\n if (!reachedCurr && (currAttributes.get(key) ?? null) === value && startAttrValue !== value) {\n if (startAttrValue === null) {\n currAttributes.delete(key);\n } else {\n currAttributes.set(key, startAttrValue);\n }\n }\n }\n if (!reachedCurr && !start.deleted) {\n updateCurrentAttributes(currAttributes, /** @type {ContentFormat} */ (content));\n }\n break\n }\n }\n }\n start = /** @type {Item} */ (start.right);\n }\n return cleanups\n};\n\n/**\n * @param {Transaction} transaction\n * @param {Item | null} item\n */\nconst cleanupContextlessFormattingGap = (transaction, item) => {\n // iterate until item.right is null or content\n while (item && item.right && (item.right.deleted || !item.right.countable)) {\n item = item.right;\n }\n const attrs = new Set();\n // iterate back until a content item is found\n while (item && (item.deleted || !item.countable)) {\n if (!item.deleted && item.content.constructor === ContentFormat) {\n const key = /** @type {ContentFormat} */ (item.content).key;\n if (attrs.has(key)) {\n item.delete(transaction);\n } else {\n attrs.add(key);\n }\n }\n item = item.left;\n }\n};\n\n/**\n * This function is experimental and subject to change / be removed.\n *\n * Ideally, we don't need this function at all. Formatting attributes should be cleaned up\n * automatically after each change. This function iterates twice over the complete YText type\n * and removes unnecessary formatting attributes. This is also helpful for testing.\n *\n * This function won't be exported anymore as soon as there is confidence that the YText type works as intended.\n *\n * @param {YText} type\n * @return {number} How many formatting attributes have been cleaned up.\n */\nconst cleanupYTextFormatting = type => {\n let res = 0;\n transact(/** @type {Doc} */ (type.doc), transaction => {\n let start = /** @type {Item} */ (type._start);\n let end = type._start;\n let startAttributes = map.create();\n const currentAttributes = map.copy(startAttributes);\n while (end) {\n if (end.deleted === false) {\n switch (end.content.constructor) {\n case ContentFormat:\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (end.content));\n break\n default:\n res += cleanupFormattingGap(transaction, start, end, startAttributes, currentAttributes);\n startAttributes = map.copy(currentAttributes);\n start = end;\n break\n }\n }\n end = end.right;\n }\n });\n return res\n};\n\n/**\n * This will be called by the transction once the event handlers are called to potentially cleanup\n * formatting attributes.\n *\n * @param {Transaction} transaction\n */\nconst cleanupYTextAfterTransaction = transaction => {\n /**\n * @type {Set}\n */\n const needFullCleanup = new Set();\n // check if another formatting item was inserted\n const doc = transaction.doc;\n for (const [client, afterClock] of transaction.afterState.entries()) {\n const clock = transaction.beforeState.get(client) || 0;\n if (afterClock === clock) {\n continue\n }\n iterateStructs(transaction, /** @type {Array} */ (doc.store.clients.get(client)), clock, afterClock, item => {\n if (\n !item.deleted && /** @type {Item} */ (item).content.constructor === ContentFormat && item.constructor !== GC\n ) {\n needFullCleanup.add(/** @type {any} */ (item).parent);\n }\n });\n }\n // cleanup in a new transaction\n transact(doc, (t) => {\n iterateDeletedStructs(transaction, transaction.deleteSet, item => {\n if (item instanceof GC || !(/** @type {YText} */ (item.parent)._hasFormatting) || needFullCleanup.has(/** @type {YText} */ (item.parent))) {\n return\n }\n const parent = /** @type {YText} */ (item.parent);\n if (item.content.constructor === ContentFormat) {\n needFullCleanup.add(parent);\n } else {\n // If no formatting attribute was inserted or deleted, we can make due with contextless\n // formatting cleanups.\n // Contextless: it is not necessary to compute currentAttributes for the affected position.\n cleanupContextlessFormattingGap(t, item);\n }\n });\n // If a formatting item was inserted, we simply clean the whole type.\n // We need to compute currentAttributes for the current position anyway.\n for (const yText of needFullCleanup) {\n cleanupYTextFormatting(yText);\n }\n });\n};\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst deleteText = (transaction, currPos, length) => {\n const startLength = length;\n const startAttrs = map.copy(currPos.currentAttributes);\n const start = currPos.right;\n while (length > 0 && currPos.right !== null) {\n if (currPos.right.deleted === false) {\n switch (currPos.right.content.constructor) {\n case ContentType:\n case ContentEmbed:\n case ContentString:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length));\n }\n length -= currPos.right.length;\n currPos.right.delete(transaction);\n break\n }\n }\n currPos.forward();\n }\n if (start) {\n cleanupFormattingGap(transaction, start, currPos.right, startAttrs, currPos.currentAttributes);\n }\n const parent = /** @type {AbstractType} */ (/** @type {Item} */ (currPos.left || currPos.right).parent);\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, -startLength + length);\n }\n return currPos\n};\n\n/**\n * The Quill Delta format represents changes on a text document with\n * formatting information. For mor information visit {@link https://quilljs.com/docs/delta/|Quill Delta}\n *\n * @example\n * {\n * ops: [\n * { insert: 'Gandalf', attributes: { bold: true } },\n * { insert: ' the ' },\n * { insert: 'Grey', attributes: { color: '#cccccc' } }\n * ]\n * }\n *\n */\n\n/**\n * Attributes that can be assigned to a selection of text.\n *\n * @example\n * {\n * bold: true,\n * font-size: '40px'\n * }\n *\n * @typedef {Object} TextAttributes\n */\n\n/**\n * @extends YEvent\n * Event that describes the changes on a YText type.\n */\nclass YTextEvent extends YEvent {\n /**\n * @param {YText} ytext\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed\n */\n constructor (ytext, transaction, subs) {\n super(ytext, transaction);\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false;\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.keysChanged = new Set();\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true;\n } else {\n this.keysChanged.add(sub);\n }\n });\n }\n\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n if (this._changes === null) {\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string|AbstractType|object, delete?:number, retain?:number}>}}\n */\n const changes = {\n keys: this.keys,\n delta: this.delta,\n added: new Set(),\n deleted: new Set()\n };\n this._changes = changes;\n }\n return /** @type {any} */ (this._changes)\n }\n\n /**\n * Compute the changes in the delta format.\n * A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.\n *\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n *\n * @public\n */\n get delta () {\n if (this._delta === null) {\n const y = /** @type {Doc} */ (this.target.doc);\n /**\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n */\n const delta = [];\n transact(y, transaction => {\n const currentAttributes = new Map(); // saves all current attributes for insert\n const oldAttributes = new Map();\n let item = this.target._start;\n /**\n * @type {string?}\n */\n let action = null;\n /**\n * @type {Object}\n */\n const attributes = {}; // counts added or removed new attributes for retain\n /**\n * @type {string|object}\n */\n let insert = '';\n let retain = 0;\n let deleteLen = 0;\n const addOp = () => {\n if (action !== null) {\n /**\n * @type {any}\n */\n let op = null;\n switch (action) {\n case 'delete':\n if (deleteLen > 0) {\n op = { delete: deleteLen };\n }\n deleteLen = 0;\n break\n case 'insert':\n if (typeof insert === 'object' || insert.length > 0) {\n op = { insert };\n if (currentAttributes.size > 0) {\n op.attributes = {};\n currentAttributes.forEach((value, key) => {\n if (value !== null) {\n op.attributes[key] = value;\n }\n });\n }\n }\n insert = '';\n break\n case 'retain':\n if (retain > 0) {\n op = { retain };\n if (!object.isEmpty(attributes)) {\n op.attributes = object.assign({}, attributes);\n }\n }\n retain = 0;\n break\n }\n if (op) delta.push(op);\n action = null;\n }\n };\n while (item !== null) {\n switch (item.content.constructor) {\n case ContentType:\n case ContentEmbed:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n addOp();\n action = 'insert';\n insert = item.content.getContent()[0];\n addOp();\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp();\n action = 'delete';\n }\n deleteLen += 1;\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp();\n action = 'retain';\n }\n retain += 1;\n }\n break\n case ContentString:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n if (action !== 'insert') {\n addOp();\n action = 'insert';\n }\n insert += /** @type {ContentString} */ (item.content).str;\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp();\n action = 'delete';\n }\n deleteLen += item.length;\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp();\n action = 'retain';\n }\n retain += item.length;\n }\n break\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (item.content);\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n const curVal = currentAttributes.get(key) ?? null;\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp();\n }\n if (equalAttrs(value, (oldAttributes.get(key) ?? null))) {\n delete attributes[key];\n } else {\n attributes[key] = value;\n }\n } else if (value !== null) {\n item.delete(transaction);\n }\n }\n } else if (this.deletes(item)) {\n oldAttributes.set(key, value);\n const curVal = currentAttributes.get(key) ?? null;\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp();\n }\n attributes[key] = curVal;\n }\n } else if (!item.deleted) {\n oldAttributes.set(key, value);\n const attr = attributes[key];\n if (attr !== undefined) {\n if (!equalAttrs(attr, value)) {\n if (action === 'retain') {\n addOp();\n }\n if (value === null) {\n delete attributes[key];\n } else {\n attributes[key] = value;\n }\n } else if (attr !== null) { // this will be cleaned up automatically by the contextless cleanup function\n item.delete(transaction);\n }\n }\n }\n if (!item.deleted) {\n if (action === 'insert') {\n addOp();\n }\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (item.content));\n }\n break\n }\n }\n item = item.right;\n }\n addOp();\n while (delta.length > 0) {\n const lastOp = delta[delta.length - 1];\n if (lastOp.retain !== undefined && lastOp.attributes === undefined) {\n // retain delta's if they don't assign attributes\n delta.pop();\n } else {\n break\n }\n }\n });\n this._delta = delta;\n }\n return /** @type {any} */ (this._delta)\n }\n}\n\n/**\n * Type that represents text with formatting information.\n *\n * This type replaces y-richtext as this implementation is able to handle\n * block formats (format information on a paragraph), embeds (complex elements\n * like pictures and videos), and text formats (**bold**, *italic*).\n *\n * @extends AbstractType\n */\nclass YText extends AbstractType {\n /**\n * @param {String} [string] The initial value of the YText.\n */\n constructor (string) {\n super();\n /**\n * Array of pending operations on this type\n * @type {Array?}\n */\n this._pending = string !== undefined ? [() => this.insert(0, string)] : [];\n /**\n * @type {Array|null}\n */\n this._searchMarker = [];\n /**\n * Whether this YText contains formatting attributes.\n * This flag is updated when a formatting item is integrated (see ContentFormat.integrate)\n */\n this._hasFormatting = false;\n }\n\n /**\n * Number of characters of this text type.\n *\n * @type {number}\n */\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._length\n }\n\n /**\n * @param {Doc} y\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n try {\n /** @type {Array} */ (this._pending).forEach(f => f());\n } catch (e) {\n console.error(e);\n }\n this._pending = null;\n }\n\n _copy () {\n return new YText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YText}\n */\n clone () {\n const text = new YText();\n text.applyDelta(this.toDelta());\n return text\n }\n\n /**\n * Creates YTextEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs);\n const event = new YTextEvent(this, transaction, parentSubs);\n callTypeObservers(this, transaction, event);\n // If a remote change happened, we try to cleanup potential formatting duplicates.\n if (!transaction.local && this._hasFormatting) {\n transaction._needFormattingCleanup = true;\n }\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @public\n */\n toString () {\n this.doc ?? warnPrematureAccess();\n let str = '';\n /**\n * @type {Item|null}\n */\n let n = this._start;\n while (n !== null) {\n if (!n.deleted && n.countable && n.content.constructor === ContentString) {\n str += /** @type {ContentString} */ (n.content).str;\n }\n n = n.right;\n }\n return str\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @return {string}\n * @public\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Apply a {@link Delta} on this shared YText type.\n *\n * @param {any} delta The changes to apply on this element.\n * @param {object} opts\n * @param {boolean} [opts.sanitize] Sanitize input delta. Removes ending newlines if set to true.\n *\n *\n * @public\n */\n applyDelta (delta, { sanitize = true } = {}) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const currPos = new ItemTextListPosition(null, this._start, 0, new Map());\n for (let i = 0; i < delta.length; i++) {\n const op = delta[i];\n if (op.insert !== undefined) {\n // Quill assumes that the content starts with an empty paragraph.\n // Yjs/Y.Text assumes that it starts empty. We always hide that\n // there is a newline at the end of the content.\n // If we omit this step, clients will see a different number of\n // paragraphs, but nothing bad will happen.\n const ins = (!sanitize && typeof op.insert === 'string' && i === delta.length - 1 && currPos.right === null && op.insert.slice(-1) === '\\n') ? op.insert.slice(0, -1) : op.insert;\n if (typeof ins !== 'string' || ins.length > 0) {\n insertText(transaction, this, currPos, ins, op.attributes || {});\n }\n } else if (op.retain !== undefined) {\n formatText(transaction, this, currPos, op.retain, op.attributes || {});\n } else if (op.delete !== undefined) {\n deleteText(transaction, currPos, op.delete);\n }\n }\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.applyDelta(delta));\n }\n }\n\n /**\n * Returns the Delta representation of this YText type.\n *\n * @param {Snapshot} [snapshot]\n * @param {Snapshot} [prevSnapshot]\n * @param {function('removed' | 'added', ID):any} [computeYChange]\n * @return {any} The Delta representation of this type.\n *\n * @public\n */\n toDelta (snapshot, prevSnapshot, computeYChange) {\n this.doc ?? warnPrematureAccess();\n /**\n * @type{Array}\n */\n const ops = [];\n const currentAttributes = new Map();\n const doc = /** @type {Doc} */ (this.doc);\n let str = '';\n let n = this._start;\n function packStr () {\n if (str.length > 0) {\n // pack str with attributes to ops\n /**\n * @type {Object}\n */\n const attributes = {};\n let addAttributes = false;\n currentAttributes.forEach((value, key) => {\n addAttributes = true;\n attributes[key] = value;\n });\n /**\n * @type {Object}\n */\n const op = { insert: str };\n if (addAttributes) {\n op.attributes = attributes;\n }\n ops.push(op);\n str = '';\n }\n }\n const computeDelta = () => {\n while (n !== null) {\n if (isVisible(n, snapshot) || (prevSnapshot !== undefined && isVisible(n, prevSnapshot))) {\n switch (n.content.constructor) {\n case ContentString: {\n const cur = currentAttributes.get('ychange');\n if (snapshot !== undefined && !isVisible(n, snapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'removed') {\n packStr();\n currentAttributes.set('ychange', computeYChange ? computeYChange('removed', n.id) : { type: 'removed' });\n }\n } else if (prevSnapshot !== undefined && !isVisible(n, prevSnapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'added') {\n packStr();\n currentAttributes.set('ychange', computeYChange ? computeYChange('added', n.id) : { type: 'added' });\n }\n } else if (cur !== undefined) {\n packStr();\n currentAttributes.delete('ychange');\n }\n str += /** @type {ContentString} */ (n.content).str;\n break\n }\n case ContentType:\n case ContentEmbed: {\n packStr();\n /**\n * @type {Object}\n */\n const op = {\n insert: n.content.getContent()[0]\n };\n if (currentAttributes.size > 0) {\n const attrs = /** @type {Object} */ ({});\n op.attributes = attrs;\n currentAttributes.forEach((value, key) => {\n attrs[key] = value;\n });\n }\n ops.push(op);\n break\n }\n case ContentFormat:\n if (isVisible(n, snapshot)) {\n packStr();\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (n.content));\n }\n break\n }\n }\n n = n.right;\n }\n packStr();\n };\n if (snapshot || prevSnapshot) {\n // snapshots are merged again after the transaction, so we need to keep the\n // transaction alive until we are done\n transact(doc, transaction => {\n if (snapshot) {\n splitSnapshotAffectedStructs(transaction, snapshot);\n }\n if (prevSnapshot) {\n splitSnapshotAffectedStructs(transaction, prevSnapshot);\n }\n computeDelta();\n }, 'cleanup');\n } else {\n computeDelta();\n }\n return ops\n }\n\n /**\n * Insert text at a given index.\n *\n * @param {number} index The index at which to start inserting.\n * @param {String} text The text to insert at the specified position.\n * @param {TextAttributes} [attributes] Optionally define some formatting\n * information to apply on the inserted\n * Text.\n * @public\n */\n insert (index, text, attributes) {\n if (text.length <= 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes);\n if (!attributes) {\n attributes = {};\n // @ts-ignore\n pos.currentAttributes.forEach((v, k) => { attributes[k] = v; });\n }\n insertText(transaction, this, pos, text, attributes);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insert(index, text, attributes));\n }\n }\n\n /**\n * Inserts an embed at a index.\n *\n * @param {number} index The index to insert the embed at.\n * @param {Object | AbstractType} embed The Object that represents the embed.\n * @param {TextAttributes} [attributes] Attribute information to apply on the\n * embed\n *\n * @public\n */\n insertEmbed (index, embed, attributes) {\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes);\n insertText(transaction, this, pos, embed, attributes || {});\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insertEmbed(index, embed, attributes || {}));\n }\n }\n\n /**\n * Deletes text starting from an index.\n *\n * @param {number} index Index at which to start deleting.\n * @param {number} length The number of characters to remove. Defaults to 1.\n *\n * @public\n */\n delete (index, length) {\n if (length === 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n deleteText(transaction, findPosition(transaction, this, index, true), length);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.delete(index, length));\n }\n }\n\n /**\n * Assigns properties to a range of text.\n *\n * @param {number} index The position where to start formatting.\n * @param {number} length The amount of characters to assign properties to.\n * @param {TextAttributes} attributes Attribute information to apply on the\n * text.\n *\n * @public\n */\n format (index, length, attributes) {\n if (length === 0) {\n return\n }\n const y = this.doc;\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, false);\n if (pos.right === null) {\n return\n }\n formatText(transaction, this, pos, length, attributes);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.format(index, length, attributes));\n }\n }\n\n /**\n * Removes an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.removeAttribute(attributeName));\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be set.\n * @param {any} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue);\n });\n } else {\n /** @type {Array} */ (this._pending).push(() => this.setAttribute(attributeName, attributeValue));\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that identifies the\n * queried value.\n * @return {any} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @return {Object} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes () {\n return typeMapGetAll(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YTextRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YText}\n *\n * @private\n * @function\n */\nconst readYText = _decoder => new YText();\n\n/**\n * @module YXml\n */\n\n\n/**\n * Define the elements to which a set of CSS queries apply.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors|CSS_Selectors}\n *\n * @example\n * query = '.classSelector'\n * query = 'nodeSelector'\n * query = '#idSelector'\n *\n * @typedef {string} CSS_Selector\n */\n\n/**\n * Dom filter function.\n *\n * @callback domFilter\n * @param {string} nodeName The nodeName of the element\n * @param {Map} attributes The map of attributes.\n * @return {boolean} Whether to include the Dom node in the YXmlElement.\n */\n\n/**\n * Represents a subset of the nodes of a YXmlElement / YXmlFragment and a\n * position within them.\n *\n * Can be created with {@link YXmlFragment#createTreeWalker}\n *\n * @public\n * @implements {Iterable}\n */\nclass YXmlTreeWalker {\n /**\n * @param {YXmlFragment | YXmlElement} root\n * @param {function(AbstractType):boolean} [f]\n */\n constructor (root, f = () => true) {\n this._filter = f;\n this._root = root;\n /**\n * @type {Item}\n */\n this._currentNode = /** @type {Item} */ (root._start);\n this._firstCall = true;\n root.doc ?? warnPrematureAccess();\n }\n\n [Symbol.iterator] () {\n return this\n }\n\n /**\n * Get the next node.\n *\n * @return {IteratorResult} The next node.\n *\n * @public\n */\n next () {\n /**\n * @type {Item|null}\n */\n let n = this._currentNode;\n let type = n && n.content && /** @type {any} */ (n.content).type;\n if (n !== null && (!this._firstCall || n.deleted || !this._filter(type))) { // if first call, we check if we can use the first item\n do {\n type = /** @type {any} */ (n.content).type;\n if (!n.deleted && (type.constructor === YXmlElement || type.constructor === YXmlFragment) && type._start !== null) {\n // walk down in the tree\n n = type._start;\n } else {\n // walk right or up in the tree\n while (n !== null) {\n if (n.right !== null) {\n n = n.right;\n break\n } else if (n.parent === this._root) {\n n = null;\n } else {\n n = /** @type {AbstractType} */ (n.parent)._item;\n }\n }\n }\n } while (n !== null && (n.deleted || !this._filter(/** @type {ContentType} */ (n.content).type)))\n }\n this._firstCall = false;\n if (n === null) {\n // @ts-ignore\n return { value: undefined, done: true }\n }\n this._currentNode = n;\n return { value: /** @type {any} */ (n.content).type, done: false }\n }\n}\n\n/**\n * Represents a list of {@link YXmlElement}.and {@link YXmlText} types.\n * A YxmlFragment is similar to a {@link YXmlElement}, but it does not have a\n * nodeName and it does not have attributes. Though it can be bound to a DOM\n * element - in this case the attributes and the nodeName are not shared.\n *\n * @public\n * @extends AbstractType\n */\nclass YXmlFragment extends AbstractType {\n constructor () {\n super();\n /**\n * @type {Array|null}\n */\n this._prelimContent = [];\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get firstChild () {\n const first = this._first;\n return first ? first.content.getContent()[0] : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item);\n this.insert(0, /** @type {Array} */ (this._prelimContent));\n this._prelimContent = null;\n }\n\n _copy () {\n return new YXmlFragment()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlFragment}\n */\n clone () {\n const el = new YXmlFragment();\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item));\n return el\n }\n\n get length () {\n this.doc ?? warnPrematureAccess();\n return this._prelimContent === null ? this._length : this._prelimContent.length\n }\n\n /**\n * Create a subtree of childNodes.\n *\n * @example\n * const walker = elem.createTreeWalker(dom => dom.nodeName === 'div')\n * for (let node in walker) {\n * // `node` is a div node\n * nop(node)\n * }\n *\n * @param {function(AbstractType):boolean} filter Function that is called on each child element and\n * returns a Boolean indicating whether the child\n * is to be included in the subtree.\n * @return {YXmlTreeWalker} A subtree and a position within it.\n *\n * @public\n */\n createTreeWalker (filter) {\n return new YXmlTreeWalker(this, filter)\n }\n\n /**\n * Returns the first YXmlElement that matches the query.\n * Similar to DOM's {@link querySelector}.\n *\n * Query support:\n * - tagname\n * TODO:\n * - id\n * - attribute\n *\n * @param {CSS_Selector} query The query on the children.\n * @return {YXmlElement|YXmlText|YXmlHook|null} The first element that matches the query or null.\n *\n * @public\n */\n querySelector (query) {\n query = query.toUpperCase();\n // @ts-ignore\n const iterator = new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query);\n const next = iterator.next();\n if (next.done) {\n return null\n } else {\n return next.value\n }\n }\n\n /**\n * Returns all YXmlElements that match the query.\n * Similar to Dom's {@link querySelectorAll}.\n *\n * @todo Does not yet support all queries. Currently only query by tagName.\n *\n * @param {CSS_Selector} query The query on the children\n * @return {Array} The elements that match this query.\n *\n * @public\n */\n querySelectorAll (query) {\n query = query.toUpperCase();\n // @ts-ignore\n return array.from(new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query))\n }\n\n /**\n * Creates YXmlEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YXmlEvent(this, parentSubs, transaction));\n }\n\n /**\n * Get the string representation of all the children of this YXmlFragment.\n *\n * @return {string} The string representation of all children.\n */\n toString () {\n return typeListMap(this, xml => xml.toString()).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const fragment = _document.createDocumentFragment();\n if (binding !== undefined) {\n binding._createAssociation(fragment, this);\n }\n typeListForEach(this, xmlType => {\n fragment.insertBefore(xmlType.toDOM(_document, hooks, binding), null);\n });\n return fragment\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {number} index The index to insert content at\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, content);\n });\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, 0, ...content);\n }\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {null|Item|YXmlElement|YXmlText} ref The index to insert content at\n * @param {Array} content The array of content\n */\n insertAfter (ref, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const refItem = (ref && ref instanceof AbstractType) ? ref._item : ref;\n typeListInsertGenericsAfter(transaction, this, refItem, content);\n });\n } else {\n const pc = /** @type {Array} */ (this._prelimContent);\n const index = ref === null ? 0 : pc.findIndex(el => el === ref) + 1;\n if (index === 0 && ref !== null) {\n throw error.create('Reference item not found')\n }\n pc.splice(index, 0, ...content);\n }\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} [length=1] The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length);\n });\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, length);\n }\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n */\n push (content) {\n this.insert(this.length, content);\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content);\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {YXmlElement|YXmlText}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Returns a portion of this YXmlFragment into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Executes a provided function on once on every child element.\n *\n * @param {function(YXmlElement|YXmlText,number, typeof self):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f);\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlFragmentRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YXmlFragment}\n *\n * @private\n * @function\n */\nconst readYXmlFragment = _decoder => new YXmlFragment();\n\n/**\n * @typedef {Object|number|null|Array|string|Uint8Array|AbstractType} ValueTypes\n */\n\n/**\n * An YXmlElement imitates the behavior of a\n * https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element\n *\n * * An YXmlElement has attributes (key value pairs)\n * * An YXmlElement has childElements that must inherit from YXmlElement\n *\n * @template {{ [key: string]: ValueTypes }} [KV={ [key: string]: string }]\n */\nclass YXmlElement extends YXmlFragment {\n constructor (nodeName = 'UNDEFINED') {\n super();\n this.nodeName = nodeName;\n /**\n * @type {Map|null}\n */\n this._prelimAttrs = new Map();\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;(/** @type {Map} */ (this._prelimAttrs)).forEach((value, key) => {\n this.setAttribute(key, value);\n });\n this._prelimAttrs = null;\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n *\n * @return {YXmlElement}\n */\n _copy () {\n return new YXmlElement(this.nodeName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlElement}\n */\n clone () {\n /**\n * @type {YXmlElement}\n */\n const el = new YXmlElement(this.nodeName);\n const attrs = this.getAttributes();\n object.forEach(attrs, (value, key) => {\n if (typeof value === 'string') {\n el.setAttribute(key, value);\n }\n });\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item));\n return el\n }\n\n /**\n * Returns the XML serialization of this YXmlElement.\n * The attributes are ordered by attribute-name, so you can easily use this\n * method to compare YXmlElements\n *\n * @return {string} The string representation of this type.\n *\n * @public\n */\n toString () {\n const attrs = this.getAttributes();\n const stringBuilder = [];\n const keys = [];\n for (const key in attrs) {\n keys.push(key);\n }\n keys.sort();\n const keysLen = keys.length;\n for (let i = 0; i < keysLen; i++) {\n const key = keys[i];\n stringBuilder.push(key + '=\"' + attrs[key] + '\"');\n }\n const nodeName = this.nodeName.toLocaleLowerCase();\n const attrsString = stringBuilder.length > 0 ? ' ' + stringBuilder.join(' ') : '';\n return `<${nodeName}${attrsString}>${super.toString()}`\n }\n\n /**\n * Removes an attribute from this YXmlElement.\n *\n * @param {string} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName);\n });\n } else {\n /** @type {Map} */ (this._prelimAttrs).delete(attributeName);\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that is to be set.\n * @param {KV[KEY]} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue);\n });\n } else {\n /** @type {Map} */ (this._prelimAttrs).set(attributeName, attributeValue);\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that identifies the\n * queried value.\n * @return {KV[KEY]|undefined} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns whether an attribute exists\n *\n * @param {string} attributeName The attribute name to check for existence.\n * @return {boolean} whether the attribute exists.\n *\n * @public\n */\n hasAttribute (attributeName) {\n return /** @type {any} */ (typeMapHas(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @param {Snapshot} [snapshot]\n * @return {{ [Key in Extract]?: KV[Key]}} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes (snapshot) {\n return /** @type {any} */ (snapshot ? typeMapGetAllSnapshot(this, snapshot) : typeMapGetAll(this))\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const dom = _document.createElement(this.nodeName);\n const attrs = this.getAttributes();\n for (const key in attrs) {\n const value = attrs[key];\n if (typeof value === 'string') {\n dom.setAttribute(key, value);\n }\n }\n typeListForEach(this, yxml => {\n dom.appendChild(yxml.toDOM(_document, hooks, binding));\n });\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlElementRefID);\n encoder.writeKey(this.nodeName);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlElement}\n *\n * @function\n */\nconst readYXmlElement = decoder => new YXmlElement(decoder.readKey());\n\n/**\n * @extends YEvent\n * An Event that describes changes on a YXml Element or Yxml Fragment\n */\nclass YXmlEvent extends YEvent {\n /**\n * @param {YXmlElement|YXmlText|YXmlFragment} target The target on which the event is created.\n * @param {Set} subs The set of changed attributes. `null` is included if the\n * child list changed.\n * @param {Transaction} transaction The transaction instance with wich the\n * change was created.\n */\n constructor (target, subs, transaction) {\n super(target, transaction);\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false;\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.attributesChanged = new Set();\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true;\n } else {\n this.attributesChanged.add(sub);\n }\n });\n }\n}\n\n/**\n * You can manage binding to a custom type with YXmlHook.\n *\n * @extends {YMap}\n */\nclass YXmlHook extends YMap {\n /**\n * @param {string} hookName nodeName of the Dom Node.\n */\n constructor (hookName) {\n super();\n /**\n * @type {string}\n */\n this.hookName = hookName;\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n */\n _copy () {\n return new YXmlHook(this.hookName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlHook}\n */\n clone () {\n const el = new YXmlHook(this.hookName);\n this.forEach((value, key) => {\n el.set(key, value);\n });\n return el\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object.} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type\n * @return {Element} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const hook = hooks[this.hookName];\n let dom;\n if (hook !== undefined) {\n dom = hook.createDom(this);\n } else {\n dom = document.createElement(this.hookName);\n }\n dom.setAttribute('data-yjs-hook', this.hookName);\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlHookRefID);\n encoder.writeKey(this.hookName);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlHook}\n *\n * @private\n * @function\n */\nconst readYXmlHook = decoder =>\n new YXmlHook(decoder.readKey());\n\n/**\n * Represents text in a Dom Element. In the future this type will also handle\n * simple formatting information like bold and italic.\n */\nclass YXmlText extends YText {\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null;\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n _copy () {\n return new YXmlText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlText}\n */\n clone () {\n const text = new YXmlText();\n text.applyDelta(this.toDelta());\n return text\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlText.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Text} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks, binding) {\n const dom = _document.createTextNode(this.toString());\n if (binding !== undefined) {\n binding._createAssociation(dom, this);\n }\n return dom\n }\n\n toString () {\n // @ts-ignore\n return this.toDelta().map(delta => {\n const nestedNodes = [];\n for (const nodeName in delta.attributes) {\n const attrs = [];\n for (const key in delta.attributes[nodeName]) {\n attrs.push({ key, value: delta.attributes[nodeName][key] });\n }\n // sort attributes to get a unique order\n attrs.sort((a, b) => a.key < b.key ? -1 : 1);\n nestedNodes.push({ nodeName, attrs });\n }\n // sort node order to get a unique order\n nestedNodes.sort((a, b) => a.nodeName < b.nodeName ? -1 : 1);\n // now convert to dom string\n let str = '';\n for (let i = 0; i < nestedNodes.length; i++) {\n const node = nestedNodes[i];\n str += `<${node.nodeName}`;\n for (let j = 0; j < node.attrs.length; j++) {\n const attr = node.attrs[j];\n str += ` ${attr.key}=\"${attr.value}\"`;\n }\n str += '>';\n }\n str += delta.insert;\n for (let i = nestedNodes.length - 1; i >= 0; i--) {\n str += ``;\n }\n return str\n }).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlTextRefID);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlText}\n *\n * @private\n * @function\n */\nconst readYXmlText = decoder => new YXmlText();\n\nclass AbstractStruct {\n /**\n * @param {ID} id\n * @param {number} length\n */\n constructor (id, length) {\n this.id = id;\n this.length = length;\n }\n\n /**\n * @type {boolean}\n */\n get deleted () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Merge this struct with the item to the right.\n * This method is already assuming that `this.id.clock + this.length === this.id.clock`.\n * Also this method does *not* remove right from StructStore!\n * @param {AbstractStruct} right\n * @return {boolean} wether this merged with right\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n * @param {number} encodingRef\n */\n write (encoder, offset, encodingRef) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n throw error.methodUnimplemented()\n }\n}\n\nconst structGCRefNumber = 0;\n\n/**\n * @private\n */\nclass GC extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {GC} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset;\n this.length -= offset;\n }\n addStruct(transaction.doc.store, this);\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structGCRefNumber);\n encoder.writeLen(this.length - offset);\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n\nclass ContentBinary {\n /**\n * @param {Uint8Array} content\n */\n constructor (content) {\n this.content = content;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.content]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentBinary}\n */\n copy () {\n return new ContentBinary(this.content)\n }\n\n /**\n * @param {number} offset\n * @return {ContentBinary}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentBinary} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeBuf(this.content);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 3\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentBinary}\n */\nconst readContentBinary = decoder => new ContentBinary(decoder.readBuf());\n\nclass ContentDeleted {\n /**\n * @param {number} len\n */\n constructor (len) {\n this.len = len;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.len\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentDeleted}\n */\n copy () {\n return new ContentDeleted(this.len)\n }\n\n /**\n * @param {number} offset\n * @return {ContentDeleted}\n */\n splice (offset) {\n const right = new ContentDeleted(this.len - offset);\n this.len = offset;\n return right\n }\n\n /**\n * @param {ContentDeleted} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.len += right.len;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n addToDeleteSet(transaction.deleteSet, item.id.client, item.id.clock, this.len);\n item.markDeleted();\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeLen(this.len - offset);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 1\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentDeleted}\n */\nconst readContentDeleted = decoder => new ContentDeleted(decoder.readLen());\n\n/**\n * @param {string} guid\n * @param {Object} opts\n */\nconst createDocFromOpts = (guid, opts) => new Doc({ guid, ...opts, shouldLoad: opts.shouldLoad || opts.autoLoad || false });\n\n/**\n * @private\n */\nclass ContentDoc {\n /**\n * @param {Doc} doc\n */\n constructor (doc) {\n if (doc._item) {\n console.error('This document was already integrated as a sub-document. You should create a second instance instead with the same guid.');\n }\n /**\n * @type {Doc}\n */\n this.doc = doc;\n /**\n * @type {any}\n */\n const opts = {};\n this.opts = opts;\n if (!doc.gc) {\n opts.gc = false;\n }\n if (doc.autoLoad) {\n opts.autoLoad = true;\n }\n if (doc.meta !== null) {\n opts.meta = doc.meta;\n }\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.doc]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentDoc}\n */\n copy () {\n return new ContentDoc(createDocFromOpts(this.doc.guid, this.opts))\n }\n\n /**\n * @param {number} offset\n * @return {ContentDoc}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentDoc} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n // this needs to be reflected in doc.destroy as well\n this.doc._item = item;\n transaction.subdocsAdded.add(this.doc);\n if (this.doc.shouldLoad) {\n transaction.subdocsLoaded.add(this.doc);\n }\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (transaction.subdocsAdded.has(this.doc)) {\n transaction.subdocsAdded.delete(this.doc);\n } else {\n transaction.subdocsRemoved.add(this.doc);\n }\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) { }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(this.doc.guid);\n encoder.writeAny(this.opts);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 9\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentDoc}\n */\nconst readContentDoc = decoder => new ContentDoc(createDocFromOpts(decoder.readString(), decoder.readAny()));\n\n/**\n * @private\n */\nclass ContentEmbed {\n /**\n * @param {Object} embed\n */\n constructor (embed) {\n this.embed = embed;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.embed]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentEmbed}\n */\n copy () {\n return new ContentEmbed(this.embed)\n }\n\n /**\n * @param {number} offset\n * @return {ContentEmbed}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentEmbed} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeJSON(this.embed);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 5\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentEmbed}\n */\nconst readContentEmbed = decoder => new ContentEmbed(decoder.readJSON());\n\n/**\n * @private\n */\nclass ContentFormat {\n /**\n * @param {string} key\n * @param {Object} value\n */\n constructor (key, value) {\n this.key = key;\n this.value = value;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentFormat}\n */\n copy () {\n return new ContentFormat(this.key, this.value)\n }\n\n /**\n * @param {number} _offset\n * @return {ContentFormat}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentFormat} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n return false\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} item\n */\n integrate (_transaction, item) {\n // @todo searchmarker are currently unsupported for rich text documents\n const p = /** @type {YText} */ (item.parent);\n p._searchMarker = null;\n p._hasFormatting = true;\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeKey(this.key);\n encoder.writeJSON(this.value);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 6\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentFormat}\n */\nconst readContentFormat = decoder => new ContentFormat(decoder.readKey(), decoder.readJSON());\n\n/**\n * @private\n */\nclass ContentJSON {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentJSON}\n */\n copy () {\n return new ContentJSON(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentJSON}\n */\n splice (offset) {\n const right = new ContentJSON(this.arr.slice(offset));\n this.arr = this.arr.slice(0, offset);\n return right\n }\n\n /**\n * @param {ContentJSON} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr);\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length;\n encoder.writeLen(len - offset);\n for (let i = offset; i < len; i++) {\n const c = this.arr[i];\n encoder.writeString(c === undefined ? 'undefined' : JSON.stringify(c));\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 2\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentJSON}\n */\nconst readContentJSON = decoder => {\n const len = decoder.readLen();\n const cs = [];\n for (let i = 0; i < len; i++) {\n const c = decoder.readString();\n if (c === 'undefined') {\n cs.push(undefined);\n } else {\n cs.push(JSON.parse(c));\n }\n }\n return new ContentJSON(cs)\n};\n\nconst isDevMode = env.getVariable('node_env') === 'development';\n\nclass ContentAny {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr;\n isDevMode && object.deepFreeze(arr);\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentAny}\n */\n copy () {\n return new ContentAny(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentAny}\n */\n splice (offset) {\n const right = new ContentAny(this.arr.slice(offset));\n this.arr = this.arr.slice(0, offset);\n return right\n }\n\n /**\n * @param {ContentAny} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr);\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length;\n encoder.writeLen(len - offset);\n for (let i = offset; i < len; i++) {\n const c = this.arr[i];\n encoder.writeAny(c);\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 8\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentAny}\n */\nconst readContentAny = decoder => {\n const len = decoder.readLen();\n const cs = [];\n for (let i = 0; i < len; i++) {\n cs.push(decoder.readAny());\n }\n return new ContentAny(cs)\n};\n\n/**\n * @private\n */\nclass ContentString {\n /**\n * @param {string} str\n */\n constructor (str) {\n /**\n * @type {string}\n */\n this.str = str;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.str.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.str.split('')\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentString}\n */\n copy () {\n return new ContentString(this.str)\n }\n\n /**\n * @param {number} offset\n * @return {ContentString}\n */\n splice (offset) {\n const right = new ContentString(this.str.slice(offset));\n this.str = this.str.slice(0, offset);\n\n // Prevent encoding invalid documents because of splitting of surrogate pairs: https://github.com/yjs/yjs/issues/248\n const firstCharCode = this.str.charCodeAt(offset - 1);\n if (firstCharCode >= 0xD800 && firstCharCode <= 0xDBFF) {\n // Last character of the left split is the start of a surrogate utf16/ucs2 pair.\n // We don't support splitting of surrogate pairs because this may lead to invalid documents.\n // Replace the invalid character with a unicode replacement character (� / U+FFFD)\n this.str = this.str.slice(0, offset - 1) + '�';\n // replace right as well\n right.str = '�' + right.str.slice(1);\n }\n return right\n }\n\n /**\n * @param {ContentString} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.str += right.str;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(offset === 0 ? this.str : this.str.slice(offset));\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 4\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentString}\n */\nconst readContentString = decoder => new ContentString(decoder.readString());\n\n/**\n * @type {Array>}\n * @private\n */\nconst typeRefs = [\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText\n];\n\nconst YArrayRefID = 0;\nconst YMapRefID = 1;\nconst YTextRefID = 2;\nconst YXmlElementRefID = 3;\nconst YXmlFragmentRefID = 4;\nconst YXmlHookRefID = 5;\nconst YXmlTextRefID = 6;\n\n/**\n * @private\n */\nclass ContentType {\n /**\n * @param {AbstractType} type\n */\n constructor (type) {\n /**\n * @type {AbstractType}\n */\n this.type = type;\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.type]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentType}\n */\n copy () {\n return new ContentType(this.type._copy())\n }\n\n /**\n * @param {number} offset\n * @return {ContentType}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentType} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n this.type._integrate(transaction.doc, item);\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n let item = this.type._start;\n while (item !== null) {\n if (!item.deleted) {\n item.delete(transaction);\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // This will be gc'd later and we want to merge it if possible\n // We try to merge all deleted items after each transaction,\n // but we have no knowledge about that this needs to be merged\n // since it is not in transaction.ds. Hence we add it to transaction._mergeStructs\n transaction._mergeStructs.push(item);\n }\n item = item.right;\n }\n this.type._map.forEach(item => {\n if (!item.deleted) {\n item.delete(transaction);\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // same as above\n transaction._mergeStructs.push(item);\n }\n });\n transaction.changed.delete(this.type);\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) {\n let item = this.type._start;\n while (item !== null) {\n item.gc(store, true);\n item = item.right;\n }\n this.type._start = null;\n this.type._map.forEach(/** @param {Item | null} item */ (item) => {\n while (item !== null) {\n item.gc(store, true);\n item = item.left;\n }\n });\n this.type._map = new Map();\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n this.type._write(encoder);\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 7\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentType}\n */\nconst readContentType = decoder => new ContentType(typeRefs[decoder.readTypeRef()](decoder));\n\n/**\n * @todo This should return several items\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {{item:Item, diff:number}}\n */\nconst followRedone = (store, id) => {\n /**\n * @type {ID|null}\n */\n let nextID = id;\n let diff = 0;\n let item;\n do {\n if (diff > 0) {\n nextID = createID(nextID.client, nextID.clock + diff);\n }\n item = getItem(store, nextID);\n diff = nextID.clock - item.id.clock;\n nextID = item.redone;\n } while (nextID !== null && item instanceof Item)\n return {\n item, diff\n }\n};\n\n/**\n * Make sure that neither item nor any of its parents is ever deleted.\n *\n * This property does not persist when storing it into a database or when\n * sending it to other peers\n *\n * @param {Item|null} item\n * @param {boolean} keep\n */\nconst keepItem = (item, keep) => {\n while (item !== null && item.keep !== keep) {\n item.keep = keep;\n item = /** @type {AbstractType} */ (item.parent)._item;\n }\n};\n\n/**\n * Split leftItem into two items\n * @param {Transaction} transaction\n * @param {Item} leftItem\n * @param {number} diff\n * @return {Item}\n *\n * @function\n * @private\n */\nconst splitItem = (transaction, leftItem, diff) => {\n // create rightItem\n const { client, clock } = leftItem.id;\n const rightItem = new Item(\n createID(client, clock + diff),\n leftItem,\n createID(client, clock + diff - 1),\n leftItem.right,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n );\n if (leftItem.deleted) {\n rightItem.markDeleted();\n }\n if (leftItem.keep) {\n rightItem.keep = true;\n }\n if (leftItem.redone !== null) {\n rightItem.redone = createID(leftItem.redone.client, leftItem.redone.clock + diff);\n }\n // update left (do not set leftItem.rightOrigin as it will lead to problems when syncing)\n leftItem.right = rightItem;\n // update right\n if (rightItem.right !== null) {\n rightItem.right.left = rightItem;\n }\n // right is more specific.\n transaction._mergeStructs.push(rightItem);\n // update parent._map\n if (rightItem.parentSub !== null && rightItem.right === null) {\n /** @type {AbstractType} */ (rightItem.parent)._map.set(rightItem.parentSub, rightItem);\n }\n leftItem.length = diff;\n return rightItem\n};\n\n/**\n * @param {Array} stack\n * @param {ID} id\n */\nconst isDeletedByUndoStack = (stack, id) => array.some(stack, /** @param {StackItem} s */ s => isDeleted(s.deletions, id));\n\n/**\n * Redoes the effect of this operation.\n *\n * @param {Transaction} transaction The Yjs instance.\n * @param {Item} item\n * @param {Set} redoitems\n * @param {DeleteSet} itemsToDelete\n * @param {boolean} ignoreRemoteMapChanges\n * @param {import('../utils/UndoManager.js').UndoManager} um\n *\n * @return {Item|null}\n *\n * @private\n */\nconst redoItem = (transaction, item, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) => {\n const doc = transaction.doc;\n const store = doc.store;\n const ownClientID = doc.clientID;\n const redone = item.redone;\n if (redone !== null) {\n return getItemCleanStart(transaction, redone)\n }\n let parentItem = /** @type {AbstractType} */ (item.parent)._item;\n /**\n * @type {Item|null}\n */\n let left = null;\n /**\n * @type {Item|null}\n */\n let right;\n // make sure that parent is redone\n if (parentItem !== null && parentItem.deleted === true) {\n // try to undo parent if it will be undone anyway\n if (parentItem.redone === null && (!redoitems.has(parentItem) || redoItem(transaction, parentItem, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) === null)) {\n return null\n }\n while (parentItem.redone !== null) {\n parentItem = getItemCleanStart(transaction, parentItem.redone);\n }\n }\n const parentType = parentItem === null ? /** @type {AbstractType} */ (item.parent) : /** @type {ContentType} */ (parentItem.content).type;\n\n if (item.parentSub === null) {\n // Is an array item. Insert at the old position\n left = item.left;\n right = item;\n // find next cloned_redo items\n while (left !== null) {\n /**\n * @type {Item|null}\n */\n let leftTrace = left;\n // trace redone until parent matches\n while (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item !== parentItem) {\n leftTrace = leftTrace.redone === null ? null : getItemCleanStart(transaction, leftTrace.redone);\n }\n if (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item === parentItem) {\n left = leftTrace;\n break\n }\n left = left.left;\n }\n while (right !== null) {\n /**\n * @type {Item|null}\n */\n let rightTrace = right;\n // trace redone until parent matches\n while (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item !== parentItem) {\n rightTrace = rightTrace.redone === null ? null : getItemCleanStart(transaction, rightTrace.redone);\n }\n if (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item === parentItem) {\n right = rightTrace;\n break\n }\n right = right.right;\n }\n } else {\n right = null;\n if (item.right && !ignoreRemoteMapChanges) {\n left = item;\n // Iterate right while right is in itemsToDelete\n // If it is intended to delete right while item is redone, we can expect that item should replace right.\n while (left !== null && left.right !== null && (left.right.redone || isDeleted(itemsToDelete, left.right.id) || isDeletedByUndoStack(um.undoStack, left.right.id) || isDeletedByUndoStack(um.redoStack, left.right.id))) {\n left = left.right;\n // follow redone\n while (left.redone) left = getItemCleanStart(transaction, left.redone);\n }\n if (left && left.right !== null) {\n // It is not possible to redo this item because it conflicts with a\n // change from another client\n return null\n }\n } else {\n left = parentType._map.get(item.parentSub) || null;\n }\n }\n const nextClock = getState(store, ownClientID);\n const nextId = createID(ownClientID, nextClock);\n const redoneItem = new Item(\n nextId,\n left, left && left.lastId,\n right, right && right.id,\n parentType,\n item.parentSub,\n item.content.copy()\n );\n item.redone = nextId;\n keepItem(redoneItem, true);\n redoneItem.integrate(transaction, 0);\n return redoneItem\n};\n\n/**\n * Abstract class that represents any content.\n */\nclass Item extends AbstractStruct {\n /**\n * @param {ID} id\n * @param {Item | null} left\n * @param {ID | null} origin\n * @param {Item | null} right\n * @param {ID | null} rightOrigin\n * @param {AbstractType|ID|null} parent Is a type if integrated, is null if it is possible to copy parent from left or right, is ID before integration to search for it.\n * @param {string | null} parentSub\n * @param {AbstractContent} content\n */\n constructor (id, left, origin, right, rightOrigin, parent, parentSub, content) {\n super(id, content.getLength());\n /**\n * The item that was originally to the left of this item.\n * @type {ID | null}\n */\n this.origin = origin;\n /**\n * The item that is currently to the left of this item.\n * @type {Item | null}\n */\n this.left = left;\n /**\n * The item that is currently to the right of this item.\n * @type {Item | null}\n */\n this.right = right;\n /**\n * The item that was originally to the right of this item.\n * @type {ID | null}\n */\n this.rightOrigin = rightOrigin;\n /**\n * @type {AbstractType|ID|null}\n */\n this.parent = parent;\n /**\n * If the parent refers to this item with some kind of key (e.g. YMap, the\n * key is specified here. The key is then used to refer to the list in which\n * to insert this item. If `parentSub = null` type._start is the list in\n * which to insert to. Otherwise it is `parent._map`.\n * @type {String | null}\n */\n this.parentSub = parentSub;\n /**\n * If this type's effect is redone this type refers to the type that undid\n * this operation.\n * @type {ID | null}\n */\n this.redone = null;\n /**\n * @type {AbstractContent}\n */\n this.content = content;\n /**\n * bit1: keep\n * bit2: countable\n * bit3: deleted\n * bit4: mark - mark node as fast-search-marker\n * @type {number} byte\n */\n this.info = this.content.isCountable() ? binary.BIT2 : 0;\n }\n\n /**\n * This is used to mark the item as an indexed fast-search marker\n *\n * @type {boolean}\n */\n set marker (isMarked) {\n if (((this.info & binary.BIT4) > 0) !== isMarked) {\n this.info ^= binary.BIT4;\n }\n }\n\n get marker () {\n return (this.info & binary.BIT4) > 0\n }\n\n /**\n * If true, do not garbage collect this Item.\n */\n get keep () {\n return (this.info & binary.BIT1) > 0\n }\n\n set keep (doKeep) {\n if (this.keep !== doKeep) {\n this.info ^= binary.BIT1;\n }\n }\n\n get countable () {\n return (this.info & binary.BIT2) > 0\n }\n\n /**\n * Whether this item was deleted or not.\n * @type {Boolean}\n */\n get deleted () {\n return (this.info & binary.BIT3) > 0\n }\n\n set deleted (doDelete) {\n if (this.deleted !== doDelete) {\n this.info ^= binary.BIT3;\n }\n }\n\n markDeleted () {\n this.info |= binary.BIT3;\n }\n\n /**\n * Return the creator clientID of the missing op or define missing items and return null.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n if (this.origin && this.origin.client !== this.id.client && this.origin.clock >= getState(store, this.origin.client)) {\n return this.origin.client\n }\n if (this.rightOrigin && this.rightOrigin.client !== this.id.client && this.rightOrigin.clock >= getState(store, this.rightOrigin.client)) {\n return this.rightOrigin.client\n }\n if (this.parent && this.parent.constructor === ID && this.id.client !== this.parent.client && this.parent.clock >= getState(store, this.parent.client)) {\n return this.parent.client\n }\n\n // We have all missing ids, now find the items\n\n if (this.origin) {\n this.left = getItemCleanEnd(transaction, store, this.origin);\n this.origin = this.left.lastId;\n }\n if (this.rightOrigin) {\n this.right = getItemCleanStart(transaction, this.rightOrigin);\n this.rightOrigin = this.right.id;\n }\n if ((this.left && this.left.constructor === GC) || (this.right && this.right.constructor === GC)) {\n this.parent = null;\n } else if (!this.parent) {\n // only set parent if this shouldn't be garbage collected\n if (this.left && this.left.constructor === Item) {\n this.parent = this.left.parent;\n this.parentSub = this.left.parentSub;\n }\n if (this.right && this.right.constructor === Item) {\n this.parent = this.right.parent;\n this.parentSub = this.right.parentSub;\n }\n } else if (this.parent.constructor === ID) {\n const parentItem = getItem(store, this.parent);\n if (parentItem.constructor === GC) {\n this.parent = null;\n } else {\n this.parent = /** @type {ContentType} */ (parentItem.content).type;\n }\n }\n return null\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset;\n this.left = getItemCleanEnd(transaction, transaction.doc.store, createID(this.id.client, this.id.clock - 1));\n this.origin = this.left.lastId;\n this.content = this.content.splice(offset);\n this.length -= offset;\n }\n\n if (this.parent) {\n if ((!this.left && (!this.right || this.right.left !== null)) || (this.left && this.left.right !== this.right)) {\n /**\n * @type {Item|null}\n */\n let left = this.left;\n\n /**\n * @type {Item|null}\n */\n let o;\n // set o to the first conflicting item\n if (left !== null) {\n o = left.right;\n } else if (this.parentSub !== null) {\n o = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null;\n while (o !== null && o.left !== null) {\n o = o.left;\n }\n } else {\n o = /** @type {AbstractType} */ (this.parent)._start;\n }\n // TODO: use something like DeleteSet here (a tree implementation would be best)\n // @todo use global set definitions\n /**\n * @type {Set}\n */\n const conflictingItems = new Set();\n /**\n * @type {Set}\n */\n const itemsBeforeOrigin = new Set();\n // Let c in conflictingItems, b in itemsBeforeOrigin\n // ***{origin}bbbb{this}{c,b}{c,b}{o}***\n // Note that conflictingItems is a subset of itemsBeforeOrigin\n while (o !== null && o !== this.right) {\n itemsBeforeOrigin.add(o);\n conflictingItems.add(o);\n if (compareIDs(this.origin, o.origin)) {\n // case 1\n if (o.id.client < this.id.client) {\n left = o;\n conflictingItems.clear();\n } else if (compareIDs(this.rightOrigin, o.rightOrigin)) {\n // this and o are conflicting and point to the same integration points. The id decides which item comes first.\n // Since this is to the left of o, we can break here\n break\n } // else, o might be integrated before an item that this conflicts with. If so, we will find it in the next iterations\n } else if (o.origin !== null && itemsBeforeOrigin.has(getItem(transaction.doc.store, o.origin))) { // use getItem instead of getItemCleanEnd because we don't want / need to split items.\n // case 2\n if (!conflictingItems.has(getItem(transaction.doc.store, o.origin))) {\n left = o;\n conflictingItems.clear();\n }\n } else {\n break\n }\n o = o.right;\n }\n this.left = left;\n }\n // reconnect left/right + update parent map/start if necessary\n if (this.left !== null) {\n const right = this.left.right;\n this.right = right;\n this.left.right = this;\n } else {\n let r;\n if (this.parentSub !== null) {\n r = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null;\n while (r !== null && r.left !== null) {\n r = r.left;\n }\n } else {\n r = /** @type {AbstractType} */ (this.parent)._start\n ;/** @type {AbstractType} */ (this.parent)._start = this;\n }\n this.right = r;\n }\n if (this.right !== null) {\n this.right.left = this;\n } else if (this.parentSub !== null) {\n // set as current parent value if right === null and this is parentSub\n /** @type {AbstractType} */ (this.parent)._map.set(this.parentSub, this);\n if (this.left !== null) {\n // this is the current attribute value of parent. delete right\n this.left.delete(transaction);\n }\n }\n // adjust length of parent\n if (this.parentSub === null && this.countable && !this.deleted) {\n /** @type {AbstractType} */ (this.parent)._length += this.length;\n }\n addStruct(transaction.doc.store, this);\n this.content.integrate(transaction, this);\n // add parent to transaction.changed\n addChangedTypeToTransaction(transaction, /** @type {AbstractType} */ (this.parent), this.parentSub);\n if ((/** @type {AbstractType} */ (this.parent)._item !== null && /** @type {AbstractType} */ (this.parent)._item.deleted) || (this.parentSub !== null && this.right !== null)) {\n // delete if parent is deleted or if this is not the current attribute value of parent\n this.delete(transaction);\n }\n } else {\n // parent is not defined. Integrate GC struct instead\n new GC(this.id, this.length).integrate(transaction, 0);\n }\n }\n\n /**\n * Returns the next non-deleted item\n */\n get next () {\n let n = this.right;\n while (n !== null && n.deleted) {\n n = n.right;\n }\n return n\n }\n\n /**\n * Returns the previous non-deleted item\n */\n get prev () {\n let n = this.left;\n while (n !== null && n.deleted) {\n n = n.left;\n }\n return n\n }\n\n /**\n * Computes the last content address of this Item.\n */\n get lastId () {\n // allocating ids is pretty costly because of the amount of ids created, so we try to reuse whenever possible\n return this.length === 1 ? this.id : createID(this.id.client, this.id.clock + this.length - 1)\n }\n\n /**\n * Try to merge two items\n *\n * @param {Item} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (\n this.constructor === right.constructor &&\n compareIDs(right.origin, this.lastId) &&\n this.right === right &&\n compareIDs(this.rightOrigin, right.rightOrigin) &&\n this.id.client === right.id.client &&\n this.id.clock + this.length === right.id.clock &&\n this.deleted === right.deleted &&\n this.redone === null &&\n right.redone === null &&\n this.content.constructor === right.content.constructor &&\n this.content.mergeWith(right.content)\n ) {\n const searchMarker = /** @type {AbstractType} */ (this.parent)._searchMarker;\n if (searchMarker) {\n searchMarker.forEach(marker => {\n if (marker.p === right) {\n // right is going to be \"forgotten\" so we need to update the marker\n marker.p = this;\n // adjust marker index\n if (!this.deleted && this.countable) {\n marker.index -= this.length;\n }\n }\n });\n }\n if (right.keep) {\n this.keep = true;\n }\n this.right = right.right;\n if (this.right !== null) {\n this.right.left = this;\n }\n this.length += right.length;\n return true\n }\n return false\n }\n\n /**\n * Mark this Item as deleted.\n *\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (!this.deleted) {\n const parent = /** @type {AbstractType} */ (this.parent);\n // adjust the length of parent\n if (this.countable && this.parentSub === null) {\n parent._length -= this.length;\n }\n this.markDeleted();\n addToDeleteSet(transaction.deleteSet, this.id.client, this.id.clock, this.length);\n addChangedTypeToTransaction(transaction, parent, this.parentSub);\n this.content.delete(transaction);\n }\n }\n\n /**\n * @param {StructStore} store\n * @param {boolean} parentGCd\n */\n gc (store, parentGCd) {\n if (!this.deleted) {\n throw error.unexpectedCase()\n }\n this.content.gc(store);\n if (parentGCd) {\n replaceStruct(store, this, new GC(this.id, this.length));\n } else {\n this.content = new ContentDeleted(this.length);\n }\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n */\n write (encoder, offset) {\n const origin = offset > 0 ? createID(this.id.client, this.id.clock + offset - 1) : this.origin;\n const rightOrigin = this.rightOrigin;\n const parentSub = this.parentSub;\n const info = (this.content.getRef() & binary.BITS5) |\n (origin === null ? 0 : binary.BIT8) | // origin is defined\n (rightOrigin === null ? 0 : binary.BIT7) | // right origin is defined\n (parentSub === null ? 0 : binary.BIT6); // parentSub is non-null\n encoder.writeInfo(info);\n if (origin !== null) {\n encoder.writeLeftID(origin);\n }\n if (rightOrigin !== null) {\n encoder.writeRightID(rightOrigin);\n }\n if (origin === null && rightOrigin === null) {\n const parent = /** @type {AbstractType} */ (this.parent);\n if (parent._item !== undefined) {\n const parentItem = parent._item;\n if (parentItem === null) {\n // parent type on y._map\n // find the correct key\n const ykey = findRootTypeKey(parent);\n encoder.writeParentInfo(true); // write parentYKey\n encoder.writeString(ykey);\n } else {\n encoder.writeParentInfo(false); // write parent id\n encoder.writeLeftID(parentItem.id);\n }\n } else if (parent.constructor === String) { // this edge case was added by differential updates\n encoder.writeParentInfo(true); // write parentYKey\n encoder.writeString(parent);\n } else if (parent.constructor === ID) {\n encoder.writeParentInfo(false); // write parent id\n encoder.writeLeftID(parent);\n } else {\n error.unexpectedCase();\n }\n if (parentSub !== null) {\n encoder.writeString(parentSub);\n }\n }\n this.content.write(encoder, offset);\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {number} info\n */\nconst readItemContent = (decoder, info) => contentRefs[info & binary.BITS5](decoder);\n\n/**\n * A lookup map for reading Item content.\n *\n * @type {Array}\n */\nconst contentRefs = [\n () => { error.unexpectedCase(); }, // GC is not ItemContent\n readContentDeleted, // 1\n readContentJSON, // 2\n readContentBinary, // 3\n readContentString, // 4\n readContentEmbed, // 5\n readContentFormat, // 6\n readContentType, // 7\n readContentAny, // 8\n readContentDoc, // 9\n () => { error.unexpectedCase(); } // 10 - Skip is not ItemContent\n];\n\nconst structSkipRefNumber = 10;\n\n/**\n * @private\n */\nclass Skip extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {Skip} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length;\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n // skip structs cannot be integrated\n error.unexpectedCase();\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structSkipRefNumber);\n // write as VarUint because Skips can't make use of predictable length-encoding\n encoding.writeVarUint(encoder.restEncoder, this.length - offset);\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n\n/** eslint-env browser */\n\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {});\n\nconst importIdentifier = '__ $YJS$ __';\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438');\n}\nglo[importIdentifier] = true;\n\nexport { AbsolutePosition, AbstractConnector, AbstractStruct, AbstractType, YArray as Array, ContentAny, ContentBinary, ContentDeleted, ContentDoc, ContentEmbed, ContentFormat, ContentJSON, ContentString, ContentType, Doc, GC, ID, Item, YMap as Map, PermanentUserData, RelativePosition, Skip, Snapshot, YText as Text, Transaction, UndoManager, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, YXmlElement as XmlElement, YXmlFragment as XmlFragment, YXmlHook as XmlHook, YXmlText as XmlText, YArrayEvent, YEvent, YMapEvent, YTextEvent, YXmlEvent, applyUpdate, applyUpdateV2, cleanupYTextFormatting, compareIDs, compareRelativePositions, convertUpdateFormatV1ToV2, convertUpdateFormatV2ToV1, createAbsolutePositionFromRelativePosition, createDeleteSet, createDeleteSetFromStructStore, createDocFromSnapshot, createID, createRelativePositionFromJSON, createRelativePositionFromTypeIndex, createSnapshot, decodeRelativePosition, decodeSnapshot, decodeSnapshotV2, decodeStateVector, decodeUpdate, decodeUpdateV2, diffUpdate, diffUpdateV2, emptySnapshot, encodeRelativePosition, encodeSnapshot, encodeSnapshotV2, encodeStateAsUpdate, encodeStateAsUpdateV2, encodeStateVector, encodeStateVectorFromUpdate, encodeStateVectorFromUpdateV2, equalDeleteSets, equalSnapshots, findIndexSS, findRootTypeKey, getItem, getState, getTypeChildren, isDeleted, isParentOf, iterateDeletedStructs, logType, logUpdate, logUpdateV2, mergeDeleteSets, mergeUpdates, mergeUpdatesV2, obfuscateUpdate, obfuscateUpdateV2, parseUpdateMeta, parseUpdateMetaV2, readUpdate, readUpdateV2, relativePositionToJSON, snapshot, snapshotContainsUpdate, transact, tryGc, typeListToArraySnapshot, typeMapGetAllSnapshot, typeMapGetSnapshot };\n//# sourceMappingURL=yjs.mjs.map\n","import { ObservableV2 } from 'lib0/observable'\n\nimport {\n Doc // eslint-disable-line\n} from '../internals.js'\n\n/**\n * This is an abstract interface that all Connectors should implement to keep them interchangeable.\n *\n * @note This interface is experimental and it is not advised to actually inherit this class.\n * It just serves as typing information.\n *\n * @extends {ObservableV2}\n */\nexport class AbstractConnector extends ObservableV2 {\n /**\n * @param {Doc} ydoc\n * @param {any} awareness\n */\n constructor (ydoc, awareness) {\n super()\n this.doc = ydoc\n this.awareness = awareness\n }\n}\n","import {\n findIndexSS,\n getState,\n splitItem,\n iterateStructs,\n UpdateEncoderV2,\n DSDecoderV1, DSEncoderV1, DSDecoderV2, DSEncoderV2, Item, GC, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\n\nimport * as array from 'lib0/array'\nimport * as math from 'lib0/math'\nimport * as map from 'lib0/map'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport class DeleteItem {\n /**\n * @param {number} clock\n * @param {number} len\n */\n constructor (clock, len) {\n /**\n * @type {number}\n */\n this.clock = clock\n /**\n * @type {number}\n */\n this.len = len\n }\n}\n\n/**\n * We no longer maintain a DeleteStore. DeleteSet is a temporary object that is created when needed.\n * - When created in a transaction, it must only be accessed after sorting, and merging\n * - This DeleteSet is send to other clients\n * - We do not create a DeleteSet when we send a sync message. The DeleteSet message is created directly from StructStore\n * - We read a DeleteSet as part of a sync/update message. In this case the DeleteSet is already sorted and merged.\n */\nexport class DeleteSet {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map()\n }\n}\n\n/**\n * Iterate over all structs that the DeleteSet gc's.\n *\n * @param {Transaction} transaction\n * @param {DeleteSet} ds\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nexport const iterateDeletedStructs = (transaction, ds, f) =>\n ds.clients.forEach((deletes, clientid) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(clientid))\n for (let i = 0; i < deletes.length; i++) {\n const del = deletes[i]\n iterateStructs(transaction, structs, del.clock, del.len, f)\n }\n })\n\n/**\n * @param {Array} dis\n * @param {number} clock\n * @return {number|null}\n *\n * @private\n * @function\n */\nexport const findIndexDS = (dis, clock) => {\n let left = 0\n let right = dis.length - 1\n while (left <= right) {\n const midindex = math.floor((left + right) / 2)\n const mid = dis[midindex]\n const midclock = mid.clock\n if (midclock <= clock) {\n if (clock < midclock + mid.len) {\n return midindex\n }\n left = midindex + 1\n } else {\n right = midindex - 1\n }\n }\n return null\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {ID} id\n * @return {boolean}\n *\n * @private\n * @function\n */\nexport const isDeleted = (ds, id) => {\n const dis = ds.clients.get(id.client)\n return dis !== undefined && findIndexDS(dis, id.clock) !== null\n}\n\n/**\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nexport const sortAndMergeDeleteSet = ds => {\n ds.clients.forEach(dels => {\n dels.sort((a, b) => a.clock - b.clock)\n // merge items without filtering or splicing the array\n // i is the current pointer\n // j refers to the current insert position for the pointed item\n // try to merge dels[i] into dels[j-1] or set dels[j]=dels[i]\n let i, j\n for (i = 1, j = 1; i < dels.length; i++) {\n const left = dels[j - 1]\n const right = dels[i]\n if (left.clock + left.len >= right.clock) {\n left.len = math.max(left.len, right.clock + right.len - left.clock)\n } else {\n if (j < i) {\n dels[j] = right\n }\n j++\n }\n }\n dels.length = j\n })\n}\n\n/**\n * @param {Array} dss\n * @return {DeleteSet} A fresh DeleteSet\n */\nexport const mergeDeleteSets = dss => {\n const merged = new DeleteSet()\n for (let dssI = 0; dssI < dss.length; dssI++) {\n dss[dssI].clients.forEach((delsLeft, client) => {\n if (!merged.clients.has(client)) {\n // Write all missing keys from current ds and all following.\n // If merged already contains `client` current ds has already been added.\n /**\n * @type {Array}\n */\n const dels = delsLeft.slice()\n for (let i = dssI + 1; i < dss.length; i++) {\n array.appendTo(dels, dss[i].clients.get(client) || [])\n }\n merged.clients.set(client, dels)\n }\n })\n }\n sortAndMergeDeleteSet(merged)\n return merged\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {number} client\n * @param {number} clock\n * @param {number} length\n *\n * @private\n * @function\n */\nexport const addToDeleteSet = (ds, client, clock, length) => {\n map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([])).push(new DeleteItem(clock, length))\n}\n\nexport const createDeleteSet = () => new DeleteSet()\n\n/**\n * @param {StructStore} ss\n * @return {DeleteSet} Merged and sorted DeleteSet\n *\n * @private\n * @function\n */\nexport const createDeleteSetFromStructStore = ss => {\n const ds = createDeleteSet()\n ss.clients.forEach((structs, client) => {\n /**\n * @type {Array}\n */\n const dsitems = []\n for (let i = 0; i < structs.length; i++) {\n const struct = structs[i]\n if (struct.deleted) {\n const clock = struct.id.clock\n let len = struct.length\n if (i + 1 < structs.length) {\n for (let next = structs[i + 1]; i + 1 < structs.length && next.deleted; next = structs[++i + 1]) {\n len += next.length\n }\n }\n dsitems.push(new DeleteItem(clock, len))\n }\n }\n if (dsitems.length > 0) {\n ds.clients.set(client, dsitems)\n }\n })\n return ds\n}\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {DeleteSet} ds\n *\n * @private\n * @function\n */\nexport const writeDeleteSet = (encoder, ds) => {\n encoding.writeVarUint(encoder.restEncoder, ds.clients.size)\n\n // Ensure that the delete set is written in a deterministic order\n array.from(ds.clients.entries())\n .sort((a, b) => b[0] - a[0])\n .forEach(([client, dsitems]) => {\n encoder.resetDsCurVal()\n encoding.writeVarUint(encoder.restEncoder, client)\n const len = dsitems.length\n encoding.writeVarUint(encoder.restEncoder, len)\n for (let i = 0; i < len; i++) {\n const item = dsitems[i]\n encoder.writeDsClock(item.clock)\n encoder.writeDsLen(item.len)\n }\n })\n}\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {DeleteSet}\n *\n * @private\n * @function\n */\nexport const readDeleteSet = decoder => {\n const ds = new DeleteSet()\n const numClients = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal()\n const client = decoding.readVarUint(decoder.restDecoder)\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder)\n if (numberOfDeletes > 0) {\n const dsField = map.setIfUndefined(ds.clients, client, () => /** @type {Array} */ ([]))\n for (let i = 0; i < numberOfDeletes; i++) {\n dsField.push(new DeleteItem(decoder.readDsClock(), decoder.readDsLen()))\n }\n }\n }\n return ds\n}\n\n/**\n * @todo YDecoder also contains references to String and other Decoders. Would make sense to exchange YDecoder.toUint8Array for YDecoder.DsToUint8Array()..\n */\n\n/**\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {Uint8Array|null} Returns a v2 update containing all deletes that couldn't be applied yet; or null if all deletes were applied successfully.\n *\n * @private\n * @function\n */\nexport const readAndApplyDeleteSet = (decoder, transaction, store) => {\n const unappliedDS = new DeleteSet()\n const numClients = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numClients; i++) {\n decoder.resetDsCurVal()\n const client = decoding.readVarUint(decoder.restDecoder)\n const numberOfDeletes = decoding.readVarUint(decoder.restDecoder)\n const structs = store.clients.get(client) || []\n const state = getState(store, client)\n for (let i = 0; i < numberOfDeletes; i++) {\n const clock = decoder.readDsClock()\n const clockEnd = clock + decoder.readDsLen()\n if (clock < state) {\n if (state < clockEnd) {\n addToDeleteSet(unappliedDS, client, state, clockEnd - state)\n }\n let index = findIndexSS(structs, clock)\n /**\n * We can ignore the case of GC and Delete structs, because we are going to skip them\n * @type {Item}\n */\n // @ts-ignore\n let struct = structs[index]\n // split the first item if necessary\n if (!struct.deleted && struct.id.clock < clock) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock))\n index++ // increase we now want to use the next struct\n }\n while (index < structs.length) {\n // @ts-ignore\n struct = structs[index++]\n if (struct.id.clock < clockEnd) {\n if (!struct.deleted) {\n if (clockEnd < struct.id.clock + struct.length) {\n structs.splice(index, 0, splitItem(transaction, struct, clockEnd - struct.id.clock))\n }\n struct.delete(transaction)\n }\n } else {\n break\n }\n }\n } else {\n addToDeleteSet(unappliedDS, client, clock, clockEnd - clock)\n }\n }\n }\n if (unappliedDS.clients.size > 0) {\n const ds = new UpdateEncoderV2()\n encoding.writeVarUint(ds.restEncoder, 0) // encode 0 structs\n writeDeleteSet(ds, unappliedDS)\n return ds.toUint8Array()\n }\n return null\n}\n\n/**\n * @param {DeleteSet} ds1\n * @param {DeleteSet} ds2\n */\nexport const equalDeleteSets = (ds1, ds2) => {\n if (ds1.clients.size !== ds2.clients.size) return false\n for (const [client, deleteItems1] of ds1.clients.entries()) {\n const deleteItems2 = /** @type {Array} */ (ds2.clients.get(client))\n if (deleteItems2 === undefined || deleteItems1.length !== deleteItems2.length) return false\n for (let i = 0; i < deleteItems1.length; i++) {\n const di1 = deleteItems1[i]\n const di2 = deleteItems2[i]\n if (di1.clock !== di2.clock || di1.len !== di2.len) {\n return false\n }\n }\n }\n return true\n}\n","/**\n * @module Y\n */\n\nimport {\n StructStore,\n AbstractType,\n YArray,\n YText,\n YMap,\n YXmlElement,\n YXmlFragment,\n transact,\n ContentDoc, Item, Transaction, YEvent // eslint-disable-line\n} from '../internals.js'\n\nimport { ObservableV2 } from 'lib0/observable'\nimport * as random from 'lib0/random'\nimport * as map from 'lib0/map'\nimport * as array from 'lib0/array'\nimport * as promise from 'lib0/promise'\n\nexport const generateNewClientId = random.uint32\n\n/**\n * @typedef {Object} DocOpts\n * @property {boolean} [DocOpts.gc=true] Disable garbage collection (default: gc=true)\n * @property {function(Item):boolean} [DocOpts.gcFilter] Will be called before an Item is garbage collected. Return false to keep the Item.\n * @property {string} [DocOpts.guid] Define a globally unique identifier for this document\n * @property {string | null} [DocOpts.collectionid] Associate this document with a collection. This only plays a role if your provider has a concept of collection.\n * @property {any} [DocOpts.meta] Any kind of meta information you want to associate with this document. If this is a subdocument, remote peers will store the meta information as well.\n * @property {boolean} [DocOpts.autoLoad] If a subdocument, automatically load document. If this is a subdocument, remote peers will load the document as well automatically.\n * @property {boolean} [DocOpts.shouldLoad] Whether the document should be synced by the provider now. This is toggled to true when you call ydoc.load()\n */\n\n/**\n * @typedef {Object} DocEvents\n * @property {function(Doc):void} DocEvents.destroy\n * @property {function(Doc):void} DocEvents.load\n * @property {function(boolean, Doc):void} DocEvents.sync\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.update\n * @property {function(Uint8Array, any, Doc, Transaction):void} DocEvents.updateV2\n * @property {function(Doc):void} DocEvents.beforeAllTransactions\n * @property {function(Transaction, Doc):void} DocEvents.beforeTransaction\n * @property {function(Transaction, Doc):void} DocEvents.beforeObserverCalls\n * @property {function(Transaction, Doc):void} DocEvents.afterTransaction\n * @property {function(Transaction, Doc):void} DocEvents.afterTransactionCleanup\n * @property {function(Doc, Array):void} DocEvents.afterAllTransactions\n * @property {function({ loaded: Set, added: Set, removed: Set }, Doc, Transaction):void} DocEvents.subdocs\n */\n\n/**\n * A Yjs instance handles the state of shared data.\n * @extends ObservableV2\n */\nexport class Doc extends ObservableV2 {\n /**\n * @param {DocOpts} opts configuration\n */\n constructor ({ guid = random.uuidv4(), collectionid = null, gc = true, gcFilter = () => true, meta = null, autoLoad = false, shouldLoad = true } = {}) {\n super()\n this.gc = gc\n this.gcFilter = gcFilter\n this.clientID = generateNewClientId()\n this.guid = guid\n this.collectionid = collectionid\n /**\n * @type {Map>>}\n */\n this.share = new Map()\n this.store = new StructStore()\n /**\n * @type {Transaction | null}\n */\n this._transaction = null\n /**\n * @type {Array}\n */\n this._transactionCleanups = []\n /**\n * @type {Set}\n */\n this.subdocs = new Set()\n /**\n * If this document is a subdocument - a document integrated into another document - then _item is defined.\n * @type {Item?}\n */\n this._item = null\n this.shouldLoad = shouldLoad\n this.autoLoad = autoLoad\n this.meta = meta\n /**\n * This is set to true when the persistence provider loaded the document from the database or when the `sync` event fires.\n * Note that not all providers implement this feature. Provider authors are encouraged to fire the `load` event when the doc content is loaded from the database.\n *\n * @type {boolean}\n */\n this.isLoaded = false\n /**\n * This is set to true when the connection provider has successfully synced with a backend.\n * Note that when using peer-to-peer providers this event may not provide very useful.\n * Also note that not all providers implement this feature. Provider authors are encouraged to fire\n * the `sync` event when the doc has been synced (with `true` as a parameter) or if connection is\n * lost (with false as a parameter).\n */\n this.isSynced = false\n this.isDestroyed = false\n /**\n * Promise that resolves once the document has been loaded from a presistence provider.\n */\n this.whenLoaded = promise.create(resolve => {\n this.on('load', () => {\n this.isLoaded = true\n resolve(this)\n })\n })\n const provideSyncedPromise = () => promise.create(resolve => {\n /**\n * @param {boolean} isSynced\n */\n const eventHandler = (isSynced) => {\n if (isSynced === undefined || isSynced === true) {\n this.off('sync', eventHandler)\n resolve()\n }\n }\n this.on('sync', eventHandler)\n })\n this.on('sync', isSynced => {\n if (isSynced === false && this.isSynced) {\n this.whenSynced = provideSyncedPromise()\n }\n this.isSynced = isSynced === undefined || isSynced === true\n if (this.isSynced && !this.isLoaded) {\n this.emit('load', [this])\n }\n })\n /**\n * Promise that resolves once the document has been synced with a backend.\n * This promise is recreated when the connection is lost.\n * Note the documentation about the `isSynced` property.\n */\n this.whenSynced = provideSyncedPromise()\n }\n\n /**\n * Notify the parent document that you request to load data into this subdocument (if it is a subdocument).\n *\n * `load()` might be used in the future to request any provider to load the most current data.\n *\n * It is safe to call `load()` multiple times.\n */\n load () {\n const item = this._item\n if (item !== null && !this.shouldLoad) {\n transact(/** @type {any} */ (item.parent).doc, transaction => {\n transaction.subdocsLoaded.add(this)\n }, null, true)\n }\n this.shouldLoad = true\n }\n\n getSubdocs () {\n return this.subdocs\n }\n\n getSubdocGuids () {\n return new Set(array.from(this.subdocs).map(doc => doc.guid))\n }\n\n /**\n * Changes that happen inside of a transaction are bundled. This means that\n * the observer fires _after_ the transaction is finished and that all changes\n * that happened inside of the transaction are sent as one message to the\n * other peers.\n *\n * @template T\n * @param {function(Transaction):T} f The function that should be executed as a transaction\n * @param {any} [origin] Origin of who started the transaction. Will be stored on transaction.origin\n * @return T\n *\n * @public\n */\n transact (f, origin = null) {\n return transact(this, f, origin)\n }\n\n /**\n * Define a shared data type.\n *\n * Multiple calls of `ydoc.get(name, TypeConstructor)` yield the same result\n * and do not overwrite each other. I.e.\n * `ydoc.get(name, Y.Array) === ydoc.get(name, Y.Array)`\n *\n * After this method is called, the type is also available on `ydoc.share.get(name)`.\n *\n * *Best Practices:*\n * Define all types right after the Y.Doc instance is created and store them in a separate object.\n * Also use the typed methods `getText(name)`, `getArray(name)`, ..\n *\n * @template {typeof AbstractType} Type\n * @example\n * const ydoc = new Y.Doc(..)\n * const appState = {\n * document: ydoc.getText('document')\n * comments: ydoc.getArray('comments')\n * }\n *\n * @param {string} name\n * @param {Type} TypeConstructor The constructor of the type definition. E.g. Y.Text, Y.Array, Y.Map, ...\n * @return {InstanceType} The created type. Constructed with TypeConstructor\n *\n * @public\n */\n get (name, TypeConstructor = /** @type {any} */ (AbstractType)) {\n const type = map.setIfUndefined(this.share, name, () => {\n // @ts-ignore\n const t = new TypeConstructor()\n t._integrate(this, null)\n return t\n })\n const Constr = type.constructor\n if (TypeConstructor !== AbstractType && Constr !== TypeConstructor) {\n if (Constr === AbstractType) {\n // @ts-ignore\n const t = new TypeConstructor()\n t._map = type._map\n type._map.forEach(/** @param {Item?} n */ n => {\n for (; n !== null; n = n.left) {\n // @ts-ignore\n n.parent = t\n }\n })\n t._start = type._start\n for (let n = t._start; n !== null; n = n.right) {\n n.parent = t\n }\n t._length = type._length\n this.share.set(name, t)\n t._integrate(this, null)\n return /** @type {InstanceType} */ (t)\n } else {\n throw new Error(`Type with the name ${name} has already been defined with a different constructor`)\n }\n }\n return /** @type {InstanceType} */ (type)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YArray}\n *\n * @public\n */\n getArray (name = '') {\n return /** @type {YArray} */ (this.get(name, YArray))\n }\n\n /**\n * @param {string} [name]\n * @return {YText}\n *\n * @public\n */\n getText (name = '') {\n return this.get(name, YText)\n }\n\n /**\n * @template T\n * @param {string} [name]\n * @return {YMap}\n *\n * @public\n */\n getMap (name = '') {\n return /** @type {YMap} */ (this.get(name, YMap))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlElement}\n *\n * @public\n */\n getXmlElement (name = '') {\n return /** @type {YXmlElement<{[key:string]:string}>} */ (this.get(name, YXmlElement))\n }\n\n /**\n * @param {string} [name]\n * @return {YXmlFragment}\n *\n * @public\n */\n getXmlFragment (name = '') {\n return this.get(name, YXmlFragment)\n }\n\n /**\n * Converts the entire document into a js object, recursively traversing each yjs type\n * Doesn't log types that have not been defined (using ydoc.getType(..)).\n *\n * @deprecated Do not use this method and rather call toJSON directly on the shared types.\n *\n * @return {Object}\n */\n toJSON () {\n /**\n * @type {Object}\n */\n const doc = {}\n\n this.share.forEach((value, key) => {\n doc[key] = value.toJSON()\n })\n\n return doc\n }\n\n /**\n * Emit `destroy` event and unregister all event handlers.\n */\n destroy () {\n this.isDestroyed = true\n array.from(this.subdocs).forEach(subdoc => subdoc.destroy())\n const item = this._item\n if (item !== null) {\n this._item = null\n const content = /** @type {ContentDoc} */ (item.content)\n content.doc = new Doc({ guid: this.guid, ...content.opts, shouldLoad: false })\n content.doc._item = item\n transact(/** @type {any} */ (item).parent.doc, transaction => {\n const doc = content.doc\n if (!item.deleted) {\n transaction.subdocsAdded.add(doc)\n }\n transaction.subdocsRemoved.add(this)\n }, null, true)\n }\n // @ts-ignore\n this.emit('destroyed', [true]) // DEPRECATED!\n this.emit('destroy', [this])\n super.destroy()\n }\n}\n","import * as buffer from 'lib0/buffer'\nimport * as decoding from 'lib0/decoding'\nimport {\n ID, createID\n} from '../internals.js'\n\nexport class DSDecoderV1 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n this.restDecoder = decoder\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n}\n\nexport class UpdateDecoderV1 extends DSDecoderV1 {\n /**\n * @return {ID}\n */\n readLeftID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return decoding.readUint8(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readString () {\n return decoding.readVarString(this.restDecoder)\n }\n\n /**\n * @return {boolean} isKey\n */\n readParentInfo () {\n return decoding.readVarUint(this.restDecoder) === 1\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readTypeRef () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number} len\n */\n readLen () {\n return decoding.readVarUint(this.restDecoder)\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return buffer.copyUint8Array(decoding.readVarUint8Array(this.restDecoder))\n }\n\n /**\n * Legacy implementation uses JSON parse. We use any-decoding in v2.\n *\n * @return {any}\n */\n readJSON () {\n return JSON.parse(decoding.readVarString(this.restDecoder))\n }\n\n /**\n * @return {string}\n */\n readKey () {\n return decoding.readVarString(this.restDecoder)\n }\n}\n\nexport class DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n /**\n * @private\n */\n this.dsCurrVal = 0\n this.restDecoder = decoder\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0\n }\n\n /**\n * @return {number}\n */\n readDsClock () {\n this.dsCurrVal += decoding.readVarUint(this.restDecoder)\n return this.dsCurrVal\n }\n\n /**\n * @return {number}\n */\n readDsLen () {\n const diff = decoding.readVarUint(this.restDecoder) + 1\n this.dsCurrVal += diff\n return diff\n }\n}\n\nexport class UpdateDecoderV2 extends DSDecoderV2 {\n /**\n * @param {decoding.Decoder} decoder\n */\n constructor (decoder) {\n super(decoder)\n /**\n * List of cached keys. If the keys[id] does not exist, we read a new key\n * from stringEncoder and push it to keys.\n *\n * @type {Array}\n */\n this.keys = []\n decoding.readVarUint(decoder) // read feature flag - currently unused\n this.keyClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.clientDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.leftClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.rightClockDecoder = new decoding.IntDiffOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.infoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8)\n this.stringDecoder = new decoding.StringDecoder(decoding.readVarUint8Array(decoder))\n this.parentInfoDecoder = new decoding.RleDecoder(decoding.readVarUint8Array(decoder), decoding.readUint8)\n this.typeRefDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n this.lenDecoder = new decoding.UintOptRleDecoder(decoding.readVarUint8Array(decoder))\n }\n\n /**\n * @return {ID}\n */\n readLeftID () {\n return new ID(this.clientDecoder.read(), this.leftClockDecoder.read())\n }\n\n /**\n * @return {ID}\n */\n readRightID () {\n return new ID(this.clientDecoder.read(), this.rightClockDecoder.read())\n }\n\n /**\n * Read the next client id.\n * Use this in favor of readID whenever possible to reduce the number of objects created.\n */\n readClient () {\n return this.clientDecoder.read()\n }\n\n /**\n * @return {number} info An unsigned 8-bit integer\n */\n readInfo () {\n return /** @type {number} */ (this.infoDecoder.read())\n }\n\n /**\n * @return {string}\n */\n readString () {\n return this.stringDecoder.read()\n }\n\n /**\n * @return {boolean}\n */\n readParentInfo () {\n return this.parentInfoDecoder.read() === 1\n }\n\n /**\n * @return {number} An unsigned 8-bit integer\n */\n readTypeRef () {\n return this.typeRefDecoder.read()\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @return {number}\n */\n readLen () {\n return this.lenDecoder.read()\n }\n\n /**\n * @return {any}\n */\n readAny () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {Uint8Array}\n */\n readBuf () {\n return decoding.readVarUint8Array(this.restDecoder)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @return {any}\n */\n readJSON () {\n return decoding.readAny(this.restDecoder)\n }\n\n /**\n * @return {string}\n */\n readKey () {\n const keyClock = this.keyClockDecoder.read()\n if (keyClock < this.keys.length) {\n return this.keys[keyClock]\n } else {\n const key = this.stringDecoder.read()\n this.keys.push(key)\n return key\n }\n }\n}\n","import * as error from 'lib0/error'\nimport * as encoding from 'lib0/encoding'\n\nimport {\n ID // eslint-disable-line\n} from '../internals.js'\n\nexport class DSEncoderV1 {\n constructor () {\n this.restEncoder = encoding.createEncoder()\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n // nop\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n encoding.writeVarUint(this.restEncoder, clock)\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n encoding.writeVarUint(this.restEncoder, len)\n }\n}\n\nexport class UpdateEncoderV1 extends DSEncoderV1 {\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n encoding.writeVarUint(this.restEncoder, id.client)\n encoding.writeVarUint(this.restEncoder, id.clock)\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n encoding.writeVarUint(this.restEncoder, id.client)\n encoding.writeVarUint(this.restEncoder, id.clock)\n }\n\n /**\n * Use writeClient and writeClock instead of writeID if possible.\n * @param {number} client\n */\n writeClient (client) {\n encoding.writeVarUint(this.restEncoder, client)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n encoding.writeUint8(this.restEncoder, info)\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n encoding.writeVarString(this.restEncoder, s)\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n encoding.writeVarUint(this.restEncoder, isYKey ? 1 : 0)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n encoding.writeVarUint(this.restEncoder, info)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n encoding.writeVarUint(this.restEncoder, len)\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any)\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf)\n }\n\n /**\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeVarString(this.restEncoder, JSON.stringify(embed))\n }\n\n /**\n * @param {string} key\n */\n writeKey (key) {\n encoding.writeVarString(this.restEncoder, key)\n }\n}\n\nexport class DSEncoderV2 {\n constructor () {\n this.restEncoder = encoding.createEncoder() // encodes all the rest / non-optimized\n this.dsCurrVal = 0\n }\n\n toUint8Array () {\n return encoding.toUint8Array(this.restEncoder)\n }\n\n resetDsCurVal () {\n this.dsCurrVal = 0\n }\n\n /**\n * @param {number} clock\n */\n writeDsClock (clock) {\n const diff = clock - this.dsCurrVal\n this.dsCurrVal = clock\n encoding.writeVarUint(this.restEncoder, diff)\n }\n\n /**\n * @param {number} len\n */\n writeDsLen (len) {\n if (len === 0) {\n error.unexpectedCase()\n }\n encoding.writeVarUint(this.restEncoder, len - 1)\n this.dsCurrVal += len\n }\n}\n\nexport class UpdateEncoderV2 extends DSEncoderV2 {\n constructor () {\n super()\n /**\n * @type {Map}\n */\n this.keyMap = new Map()\n /**\n * Refers to the next uniqe key-identifier to me used.\n * See writeKey method for more information.\n *\n * @type {number}\n */\n this.keyClock = 0\n this.keyClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.clientEncoder = new encoding.UintOptRleEncoder()\n this.leftClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.rightClockEncoder = new encoding.IntDiffOptRleEncoder()\n this.infoEncoder = new encoding.RleEncoder(encoding.writeUint8)\n this.stringEncoder = new encoding.StringEncoder()\n this.parentInfoEncoder = new encoding.RleEncoder(encoding.writeUint8)\n this.typeRefEncoder = new encoding.UintOptRleEncoder()\n this.lenEncoder = new encoding.UintOptRleEncoder()\n }\n\n toUint8Array () {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, 0) // this is a feature flag that we might use in the future\n encoding.writeVarUint8Array(encoder, this.keyClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.clientEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.leftClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.rightClockEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.infoEncoder))\n encoding.writeVarUint8Array(encoder, this.stringEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, encoding.toUint8Array(this.parentInfoEncoder))\n encoding.writeVarUint8Array(encoder, this.typeRefEncoder.toUint8Array())\n encoding.writeVarUint8Array(encoder, this.lenEncoder.toUint8Array())\n // @note The rest encoder is appended! (note the missing var)\n encoding.writeUint8Array(encoder, encoding.toUint8Array(this.restEncoder))\n return encoding.toUint8Array(encoder)\n }\n\n /**\n * @param {ID} id\n */\n writeLeftID (id) {\n this.clientEncoder.write(id.client)\n this.leftClockEncoder.write(id.clock)\n }\n\n /**\n * @param {ID} id\n */\n writeRightID (id) {\n this.clientEncoder.write(id.client)\n this.rightClockEncoder.write(id.clock)\n }\n\n /**\n * @param {number} client\n */\n writeClient (client) {\n this.clientEncoder.write(client)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeInfo (info) {\n this.infoEncoder.write(info)\n }\n\n /**\n * @param {string} s\n */\n writeString (s) {\n this.stringEncoder.write(s)\n }\n\n /**\n * @param {boolean} isYKey\n */\n writeParentInfo (isYKey) {\n this.parentInfoEncoder.write(isYKey ? 1 : 0)\n }\n\n /**\n * @param {number} info An unsigned 8-bit integer\n */\n writeTypeRef (info) {\n this.typeRefEncoder.write(info)\n }\n\n /**\n * Write len of a struct - well suited for Opt RLE encoder.\n *\n * @param {number} len\n */\n writeLen (len) {\n this.lenEncoder.write(len)\n }\n\n /**\n * @param {any} any\n */\n writeAny (any) {\n encoding.writeAny(this.restEncoder, any)\n }\n\n /**\n * @param {Uint8Array} buf\n */\n writeBuf (buf) {\n encoding.writeVarUint8Array(this.restEncoder, buf)\n }\n\n /**\n * This is mainly here for legacy purposes.\n *\n * Initial we incoded objects using JSON. Now we use the much faster lib0/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.\n *\n * @param {any} embed\n */\n writeJSON (embed) {\n encoding.writeAny(this.restEncoder, embed)\n }\n\n /**\n * Property keys are often reused. For example, in y-prosemirror the key `bold` might\n * occur very often. For a 3d application, the key `position` might occur very often.\n *\n * We cache these keys in a Map and refer to them via a unique number.\n *\n * @param {string} key\n */\n writeKey (key) {\n const clock = this.keyMap.get(key)\n if (clock === undefined) {\n /**\n * @todo uncomment to introduce this feature finally\n *\n * Background. The ContentFormat object was always encoded using writeKey, but the decoder used to use readString.\n * Furthermore, I forgot to set the keyclock. So everything was working fine.\n *\n * However, this feature here is basically useless as it is not being used (it actually only consumes extra memory).\n *\n * I don't know yet how to reintroduce this feature..\n *\n * Older clients won't be able to read updates when we reintroduce this feature. So this should probably be done using a flag.\n *\n */\n // this.keyMap.set(key, this.keyClock)\n this.keyClockEncoder.write(this.keyClock++)\n this.stringEncoder.write(key)\n } else {\n this.keyClockEncoder.write(clock)\n }\n }\n}\n","/**\n * @module encoding\n */\n/*\n * We use the first five bits in the info flag for determining the type of the struct.\n *\n * 0: GC\n * 1: Item with Deleted content\n * 2: Item with JSON content\n * 3: Item with Binary content\n * 4: Item with String content\n * 5: Item with Embed content (for richtext content)\n * 6: Item with Format content (a formatting marker for richtext content)\n * 7: Item with Type\n */\n\nimport {\n findIndexSS,\n getState,\n createID,\n getStateVector,\n readAndApplyDeleteSet,\n writeDeleteSet,\n createDeleteSetFromStructStore,\n transact,\n readItemContent,\n UpdateDecoderV1,\n UpdateDecoderV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n DSEncoderV2,\n DSDecoderV1,\n DSEncoderV1,\n mergeUpdates,\n mergeUpdatesV2,\n Skip,\n diffUpdateV2,\n convertUpdateFormatV2ToV1,\n DSDecoderV2, Doc, Transaction, GC, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as binary from 'lib0/binary'\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as array from 'lib0/array'\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Array} structs All structs by `client`\n * @param {number} client\n * @param {number} clock write structs starting with `ID(client,clock)`\n *\n * @function\n */\nconst writeStructs = (encoder, structs, client, clock) => {\n // write first id\n clock = math.max(clock, structs[0].id.clock) // make sure the first id exists\n const startNewStructs = findIndexSS(structs, clock)\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, structs.length - startNewStructs)\n encoder.writeClient(client)\n encoding.writeVarUint(encoder.restEncoder, clock)\n const firstStruct = structs[startNewStructs]\n // write first struct with an offset\n firstStruct.write(encoder, clock - firstStruct.id.clock)\n for (let i = startNewStructs + 1; i < structs.length; i++) {\n structs[i].write(encoder, 0)\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {StructStore} store\n * @param {Map} _sm\n *\n * @private\n * @function\n */\nexport const writeClientsStructs = (encoder, store, _sm) => {\n // we filter all valid _sm entries into sm\n const sm = new Map()\n _sm.forEach((clock, client) => {\n // only write if new structs are available\n if (getState(store, client) > clock) {\n sm.set(client, clock)\n }\n })\n getStateVector(store).forEach((_clock, client) => {\n if (!_sm.has(client)) {\n sm.set(client, 0)\n }\n })\n // write # states that were updated\n encoding.writeVarUint(encoder.restEncoder, sm.size)\n // Write items with higher client ids first\n // This heavily improves the conflict algorithm.\n array.from(sm.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n writeStructs(encoder, /** @type {Array} */ (store.clients.get(client)), client, clock)\n })\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder The decoder object to read data from.\n * @param {Doc} doc\n * @return {Map }>}\n *\n * @private\n * @function\n */\nexport const readClientsStructRefs = (decoder, doc) => {\n /**\n * @type {Map }>}\n */\n const clientRefs = map.create()\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder)\n /**\n * @type {Array}\n */\n const refs = new Array(numberOfStructs)\n const client = decoder.readClient()\n let clock = decoding.readVarUint(decoder.restDecoder)\n // const start = performance.now()\n clientRefs.set(client, { i: 0, refs })\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo()\n switch (binary.BITS5 & info) {\n case 0: { // GC\n const len = decoder.readLen()\n refs[i] = new GC(createID(client, clock), len)\n clock += len\n break\n }\n case 10: { // Skip Struct (nothing to apply)\n // @todo we could reduce the amount of checks by adding Skip struct to clientRefs so we know that something is missing.\n const len = decoding.readVarUint(decoder.restDecoder)\n refs[i] = new Skip(createID(client, clock), len)\n clock += len\n break\n }\n default: { // Item with content\n /**\n * The optimized implementation doesn't use any variables because inlining variables is faster.\n * Below a non-optimized version is shown that implements the basic algorithm with\n * a few comments\n */\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n cantCopyParentInfo ? (decoder.readParentInfo() ? doc.get(decoder.readString()) : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n /* A non-optimized implementation of the above algorithm:\n\n // The item that was originally to the left of this item.\n const origin = (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null\n // The item that was originally to the right of this item.\n const rightOrigin = (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n const hasParentYKey = cantCopyParentInfo ? decoder.readParentInfo() : false\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const parentYKey = cantCopyParentInfo && hasParentYKey ? decoder.readString() : null\n\n const struct = new Item(\n createID(client, clock),\n null, // left\n origin, // origin\n null, // right\n rightOrigin, // right origin\n cantCopyParentInfo && !hasParentYKey ? decoder.readLeftID() : (parentYKey !== null ? doc.get(parentYKey) : null), // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n */\n refs[i] = struct\n clock += struct.length\n }\n }\n }\n // console.log('time to read: ', performance.now() - start) // @todo remove\n }\n return clientRefs\n}\n\n/**\n * Resume computing structs generated by struct readers.\n *\n * While there is something to do, we integrate structs in this order\n * 1. top element on stack, if stack is not empty\n * 2. next element from current struct reader (if empty, use next struct reader)\n *\n * If struct causally depends on another struct (ref.missing), we put next reader of\n * `ref.id.client` on top of stack.\n *\n * At some point we find a struct that has no causal dependencies,\n * then we start emptying the stack.\n *\n * It is not possible to have circles: i.e. struct1 (from client1) depends on struct2 (from client2)\n * depends on struct3 (from client1). Therefore the max stack size is eqaul to `structReaders.length`.\n *\n * This method is implemented in a way so that we can resume computation if this update\n * causally depends on another update.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {Map} clientsStructRefs\n * @return { null | { update: Uint8Array, missing: Map } }\n *\n * @private\n * @function\n */\nconst integrateStructs = (transaction, store, clientsStructRefs) => {\n /**\n * @type {Array}\n */\n const stack = []\n // sort them so that we take the higher id first, in case of conflicts the lower id will probably not conflict with the id from the higher user.\n let clientsStructRefsIds = array.from(clientsStructRefs.keys()).sort((a, b) => a - b)\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n const getNextStructTarget = () => {\n if (clientsStructRefsIds.length === 0) {\n return null\n }\n let nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]))\n while (nextStructsTarget.refs.length === nextStructsTarget.i) {\n clientsStructRefsIds.pop()\n if (clientsStructRefsIds.length > 0) {\n nextStructsTarget = /** @type {{i:number,refs:Array}} */ (clientsStructRefs.get(clientsStructRefsIds[clientsStructRefsIds.length - 1]))\n } else {\n return null\n }\n }\n return nextStructsTarget\n }\n let curStructsTarget = getNextStructTarget()\n if (curStructsTarget === null) {\n return null\n }\n\n /**\n * @type {StructStore}\n */\n const restStructs = new StructStore()\n const missingSV = new Map()\n /**\n * @param {number} client\n * @param {number} clock\n */\n const updateMissingSv = (client, clock) => {\n const mclock = missingSV.get(client)\n if (mclock == null || mclock > clock) {\n missingSV.set(client, clock)\n }\n }\n /**\n * @type {GC|Item}\n */\n let stackHead = /** @type {any} */ (curStructsTarget).refs[/** @type {any} */ (curStructsTarget).i++]\n // caching the state because it is used very often\n const state = new Map()\n\n const addStackToRestSS = () => {\n for (const item of stack) {\n const client = item.id.client\n const unapplicableItems = clientsStructRefs.get(client)\n if (unapplicableItems) {\n // decrement because we weren't able to apply previous operation\n unapplicableItems.i--\n restStructs.clients.set(client, unapplicableItems.refs.slice(unapplicableItems.i))\n clientsStructRefs.delete(client)\n unapplicableItems.i = 0\n unapplicableItems.refs = []\n } else {\n // item was the last item on clientsStructRefs and the field was already cleared. Add item to restStructs and continue\n restStructs.clients.set(client, [item])\n }\n // remove client from clientsStructRefsIds to prevent users from applying the same update again\n clientsStructRefsIds = clientsStructRefsIds.filter(c => c !== client)\n }\n stack.length = 0\n }\n\n // iterate over all struct readers until we are done\n while (true) {\n if (stackHead.constructor !== Skip) {\n const localClock = map.setIfUndefined(state, stackHead.id.client, () => getState(store, stackHead.id.client))\n const offset = localClock - stackHead.id.clock\n if (offset < 0) {\n // update from the same client is missing\n stack.push(stackHead)\n updateMissingSv(stackHead.id.client, stackHead.id.clock - 1)\n // hid a dead wall, add all items from stack to restSS\n addStackToRestSS()\n } else {\n const missing = stackHead.getMissing(transaction, store)\n if (missing !== null) {\n stack.push(stackHead)\n // get the struct reader that has the missing struct\n /**\n * @type {{ refs: Array, i: number }}\n */\n const structRefs = clientsStructRefs.get(/** @type {number} */ (missing)) || { refs: [], i: 0 }\n if (structRefs.refs.length === structRefs.i) {\n // This update message causally depends on another update message that doesn't exist yet\n updateMissingSv(/** @type {number} */ (missing), getState(store, missing))\n addStackToRestSS()\n } else {\n stackHead = structRefs.refs[structRefs.i++]\n continue\n }\n } else if (offset === 0 || offset < stackHead.length) {\n // all fine, apply the stackhead\n stackHead.integrate(transaction, offset)\n state.set(stackHead.id.client, stackHead.id.clock + stackHead.length)\n }\n }\n }\n // iterate to next stackHead\n if (stack.length > 0) {\n stackHead = /** @type {GC|Item} */ (stack.pop())\n } else if (curStructsTarget !== null && curStructsTarget.i < curStructsTarget.refs.length) {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++])\n } else {\n curStructsTarget = getNextStructTarget()\n if (curStructsTarget === null) {\n // we are done!\n break\n } else {\n stackHead = /** @type {GC|Item} */ (curStructsTarget.refs[curStructsTarget.i++])\n }\n }\n }\n if (restStructs.clients.size > 0) {\n const encoder = new UpdateEncoderV2()\n writeClientsStructs(encoder, restStructs, new Map())\n // write empty deleteset\n // writeDeleteSet(encoder, new DeleteSet())\n encoding.writeVarUint(encoder.restEncoder, 0) // => no need for an extra function call, just write 0 deletes\n return { missing: missingSV, update: encoder.toUint8Array() }\n }\n return null\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nexport const writeStructsFromTransaction = (encoder, transaction) => writeClientsStructs(encoder, transaction.doc.store, transaction.beforeState)\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {UpdateDecoderV1 | UpdateDecoderV2} [structDecoder]\n *\n * @function\n */\nexport const readUpdateV2 = (decoder, ydoc, transactionOrigin, structDecoder = new UpdateDecoderV2(decoder)) =>\n transact(ydoc, transaction => {\n // force that transaction.local is set to non-local\n transaction.local = false\n let retry = false\n const doc = transaction.doc\n const store = doc.store\n // let start = performance.now()\n const ss = readClientsStructRefs(structDecoder, doc)\n // console.log('time to read structs: ', performance.now() - start) // @todo remove\n // start = performance.now()\n // console.log('time to merge: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const restStructs = integrateStructs(transaction, store, ss)\n const pending = store.pendingStructs\n if (pending) {\n // check if we can apply something\n for (const [client, clock] of pending.missing) {\n if (clock < getState(store, client)) {\n retry = true\n break\n }\n }\n if (restStructs) {\n // merge restStructs into store.pending\n for (const [client, clock] of restStructs.missing) {\n const mclock = pending.missing.get(client)\n if (mclock == null || mclock > clock) {\n pending.missing.set(client, clock)\n }\n }\n pending.update = mergeUpdatesV2([pending.update, restStructs.update])\n }\n } else {\n store.pendingStructs = restStructs\n }\n // console.log('time to integrate: ', performance.now() - start) // @todo remove\n // start = performance.now()\n const dsRest = readAndApplyDeleteSet(structDecoder, transaction, store)\n if (store.pendingDs) {\n // @todo we could make a lower-bound state-vector check as we do above\n const pendingDSUpdate = new UpdateDecoderV2(decoding.createDecoder(store.pendingDs))\n decoding.readVarUint(pendingDSUpdate.restDecoder) // read 0 structs, because we only encode deletes in pendingdsupdate\n const dsRest2 = readAndApplyDeleteSet(pendingDSUpdate, transaction, store)\n if (dsRest && dsRest2) {\n // case 1: ds1 != null && ds2 != null\n store.pendingDs = mergeUpdatesV2([dsRest, dsRest2])\n } else {\n // case 2: ds1 != null\n // case 3: ds2 != null\n // case 4: ds1 == null && ds2 == null\n store.pendingDs = dsRest || dsRest2\n }\n } else {\n // Either dsRest == null && pendingDs == null OR dsRest != null\n store.pendingDs = dsRest\n }\n // console.log('time to cleanup: ', performance.now() - start) // @todo remove\n // start = performance.now()\n\n // console.log('time to resume delete readers: ', performance.now() - start) // @todo remove\n // start = performance.now()\n if (retry) {\n const update = /** @type {{update: Uint8Array}} */ (store.pendingStructs).update\n store.pendingStructs = null\n applyUpdateV2(transaction.doc, update)\n }\n }, transactionOrigin, false)\n\n/**\n * Read and apply a document update.\n *\n * This function has the same effect as `applyUpdate` but accepts a decoder.\n *\n * @param {decoding.Decoder} decoder\n * @param {Doc} ydoc\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nexport const readUpdate = (decoder, ydoc, transactionOrigin) => readUpdateV2(decoder, ydoc, transactionOrigin, new UpdateDecoderV1(decoder))\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n *\n * @function\n */\nexport const applyUpdateV2 = (ydoc, update, transactionOrigin, YDecoder = UpdateDecoderV2) => {\n const decoder = decoding.createDecoder(update)\n readUpdateV2(decoder, ydoc, transactionOrigin, new YDecoder(decoder))\n}\n\n/**\n * Apply a document update created by, for example, `y.on('update', update => ..)` or `update = encodeStateAsUpdate()`.\n *\n * This function has the same effect as `readUpdate` but accepts an Uint8Array instead of a Decoder.\n *\n * @param {Doc} ydoc\n * @param {Uint8Array} update\n * @param {any} [transactionOrigin] This will be stored on `transaction.origin` and `.on('update', (update, origin))`\n *\n * @function\n */\nexport const applyUpdate = (ydoc, update, transactionOrigin) => applyUpdateV2(ydoc, update, transactionOrigin, UpdateDecoderV1)\n\n/**\n * Write all the document as a single update message. If you specify the state of the remote client (`targetStateVector`) it will\n * only write the operations that are missing.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Doc} doc\n * @param {Map} [targetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n *\n * @function\n */\nexport const writeStateAsUpdate = (encoder, doc, targetStateVector = new Map()) => {\n writeClientsStructs(encoder, doc.store, targetStateVector)\n writeDeleteSet(encoder, createDeleteSetFromStructStore(doc.store))\n}\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @param {UpdateEncoderV1 | UpdateEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateAsUpdateV2 = (doc, encodedTargetStateVector = new Uint8Array([0]), encoder = new UpdateEncoderV2()) => {\n const targetStateVector = decodeStateVector(encodedTargetStateVector)\n writeStateAsUpdate(encoder, doc, targetStateVector)\n const updates = [encoder.toUint8Array()]\n // also add the pending updates (if there are any)\n if (doc.store.pendingDs) {\n updates.push(doc.store.pendingDs)\n }\n if (doc.store.pendingStructs) {\n updates.push(diffUpdateV2(doc.store.pendingStructs.update, encodedTargetStateVector))\n }\n if (updates.length > 1) {\n if (encoder.constructor === UpdateEncoderV1) {\n return mergeUpdates(updates.map((update, i) => i === 0 ? update : convertUpdateFormatV2ToV1(update)))\n } else if (encoder.constructor === UpdateEncoderV2) {\n return mergeUpdatesV2(updates)\n }\n }\n return updates[0]\n}\n\n/**\n * Write all the document as a single update message that can be applied on the remote document. If you specify the state of the remote client (`targetState`) it will\n * only write the operations that are missing.\n *\n * Use `writeStateAsUpdate` instead if you are working with lib0/encoding.js#Encoder\n *\n * @param {Doc} doc\n * @param {Uint8Array} [encodedTargetStateVector] The state of the target that receives the update. Leave empty to write all known structs\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateAsUpdate = (doc, encodedTargetStateVector) => encodeStateAsUpdateV2(doc, encodedTargetStateVector, new UpdateEncoderV1())\n\n/**\n * Read state vector from Decoder and return as Map\n *\n * @param {DSDecoderV1 | DSDecoderV2} decoder\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nexport const readStateVector = decoder => {\n const ss = new Map()\n const ssLength = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < ssLength; i++) {\n const client = decoding.readVarUint(decoder.restDecoder)\n const clock = decoding.readVarUint(decoder.restDecoder)\n ss.set(client, clock)\n }\n return ss\n}\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\n// export const decodeStateVectorV2 = decodedState => readStateVector(new DSDecoderV2(decoding.createDecoder(decodedState)))\n\n/**\n * Read decodedState and return State as Map.\n *\n * @param {Uint8Array} decodedState\n * @return {Map} Maps `client` to the number next expected `clock` from that client.\n *\n * @function\n */\nexport const decodeStateVector = decodedState => readStateVector(new DSDecoderV1(decoding.createDecoder(decodedState)))\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Map} sv\n * @function\n */\nexport const writeStateVector = (encoder, sv) => {\n encoding.writeVarUint(encoder.restEncoder, sv.size)\n array.from(sv.entries()).sort((a, b) => b[0] - a[0]).forEach(([client, clock]) => {\n encoding.writeVarUint(encoder.restEncoder, client) // @todo use a special client decoder that is based on mapping\n encoding.writeVarUint(encoder.restEncoder, clock)\n })\n return encoder\n}\n\n/**\n * @param {DSEncoderV1 | DSEncoderV2} encoder\n * @param {Doc} doc\n *\n * @function\n */\nexport const writeDocumentStateVector = (encoder, doc) => writeStateVector(encoder, getStateVector(doc.store))\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateVectorV2 = (doc, encoder = new DSEncoderV2()) => {\n if (doc instanceof Map) {\n writeStateVector(encoder, doc)\n } else {\n writeDocumentStateVector(encoder, doc)\n }\n return encoder.toUint8Array()\n}\n\n/**\n * Encode State as Uint8Array.\n *\n * @param {Doc|Map} doc\n * @return {Uint8Array}\n *\n * @function\n */\nexport const encodeStateVector = doc => encodeStateVectorV2(doc, new DSEncoderV1())\n","import * as f from 'lib0/function'\n\n/**\n * General event handler implementation.\n *\n * @template ARG0, ARG1\n *\n * @private\n */\nexport class EventHandler {\n constructor () {\n /**\n * @type {Array}\n */\n this.l = []\n }\n}\n\n/**\n * @template ARG0,ARG1\n * @returns {EventHandler}\n *\n * @private\n * @function\n */\nexport const createEventHandler = () => new EventHandler()\n\n/**\n * Adds an event listener that is called when\n * {@link EventHandler#callEventListeners} is called.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler.\n *\n * @private\n * @function\n */\nexport const addEventHandlerListener = (eventHandler, f) =>\n eventHandler.l.push(f)\n\n/**\n * Removes an event listener.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {function(ARG0,ARG1):void} f The event handler that was added with\n * {@link EventHandler#addEventListener}\n *\n * @private\n * @function\n */\nexport const removeEventHandlerListener = (eventHandler, f) => {\n const l = eventHandler.l\n const len = l.length\n eventHandler.l = l.filter(g => f !== g)\n if (len === eventHandler.l.length) {\n console.error('[yjs] Tried to remove event handler that doesn\\'t exist.')\n }\n}\n\n/**\n * Removes all event listeners.\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n *\n * @private\n * @function\n */\nexport const removeAllEventHandlerListeners = eventHandler => {\n eventHandler.l.length = 0\n}\n\n/**\n * Call all event listeners that were added via\n * {@link EventHandler#addEventListener}.\n *\n * @template ARG0,ARG1\n * @param {EventHandler} eventHandler\n * @param {ARG0} arg0\n * @param {ARG1} arg1\n *\n * @private\n * @function\n */\nexport const callEventHandlerListeners = (eventHandler, arg0, arg1) =>\n f.callAll(eventHandler.l, [arg0, arg1])\n","import { AbstractType } from '../internals.js' // eslint-disable-line\n\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport * as error from 'lib0/error'\n\nexport class ID {\n /**\n * @param {number} client client id\n * @param {number} clock unique per client id, continuous number\n */\n constructor (client, clock) {\n /**\n * Client id\n * @type {number}\n */\n this.client = client\n /**\n * unique per client id, continuous number\n * @type {number}\n */\n this.clock = clock\n }\n}\n\n/**\n * @param {ID | null} a\n * @param {ID | null} b\n * @return {boolean}\n *\n * @function\n */\nexport const compareIDs = (a, b) => a === b || (a !== null && b !== null && a.client === b.client && a.clock === b.clock)\n\n/**\n * @param {number} client\n * @param {number} clock\n *\n * @private\n * @function\n */\nexport const createID = (client, clock) => new ID(client, clock)\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {ID} id\n *\n * @private\n * @function\n */\nexport const writeID = (encoder, id) => {\n encoding.writeVarUint(encoder, id.client)\n encoding.writeVarUint(encoder, id.clock)\n}\n\n/**\n * Read ID.\n * * If first varUint read is 0xFFFFFF a RootID is returned.\n * * Otherwise an ID is returned\n *\n * @param {decoding.Decoder} decoder\n * @return {ID}\n *\n * @private\n * @function\n */\nexport const readID = decoder =>\n createID(decoding.readVarUint(decoder), decoding.readVarUint(decoder))\n\n/**\n * The top types are mapped from y.share.get(keyname) => type.\n * `type` does not store any information about the `keyname`.\n * This function finds the correct `keyname` for `type` and throws otherwise.\n *\n * @param {AbstractType} type\n * @return {string}\n *\n * @private\n * @function\n */\nexport const findRootTypeKey = type => {\n // @ts-ignore _y must be defined, otherwise unexpected case\n for (const [key, value] of type.doc.share.entries()) {\n if (value === type) {\n return key\n }\n }\n throw error.unexpectedCase()\n}\n","import { AbstractType, Item } from '../internals.js' // eslint-disable-line\n\n/**\n * Check if `parent` is a parent of `child`.\n *\n * @param {AbstractType} parent\n * @param {Item|null} child\n * @return {Boolean} Whether `parent` is a parent of `child`.\n *\n * @private\n * @function\n */\nexport const isParentOf = (parent, child) => {\n while (child !== null) {\n if (child.parent === parent) {\n return true\n }\n child = /** @type {AbstractType} */ (child.parent)._item\n }\n return false\n}\n","import {\n AbstractType // eslint-disable-line\n} from '../internals.js'\n\n/**\n * Convenient helper to log type information.\n *\n * Do not use in productive systems as the output can be immense!\n *\n * @param {AbstractType} type\n */\nexport const logType = type => {\n const res = []\n let n = type._start\n while (n) {\n res.push(n)\n n = n.right\n }\n console.log('Children: ', res)\n console.log('Children content: ', res.filter(m => !m.deleted).map(m => m.content))\n}\n","import {\n YArray,\n YMap,\n readDeleteSet,\n writeDeleteSet,\n createDeleteSet,\n DSEncoderV1, DSDecoderV1, ID, DeleteSet, YArrayEvent, Transaction, Doc // eslint-disable-line\n} from '../internals.js'\n\nimport * as decoding from 'lib0/decoding'\n\nimport { mergeDeleteSets, isDeleted } from './DeleteSet.js'\n\nexport class PermanentUserData {\n /**\n * @param {Doc} doc\n * @param {YMap} [storeType]\n */\n constructor (doc, storeType = doc.getMap('users')) {\n /**\n * @type {Map}\n */\n const dss = new Map()\n this.yusers = storeType\n this.doc = doc\n /**\n * Maps from clientid to userDescription\n *\n * @type {Map}\n */\n this.clients = new Map()\n this.dss = dss\n /**\n * @param {YMap} user\n * @param {string} userDescription\n */\n const initUser = (user, userDescription) => {\n /**\n * @type {YArray}\n */\n const ds = user.get('ds')\n const ids = user.get('ids')\n const addClientId = /** @param {number} clientid */ clientid => this.clients.set(clientid, userDescription)\n ds.observe(/** @param {YArrayEvent} event */ event => {\n event.changes.added.forEach(item => {\n item.content.getContent().forEach(encodedDs => {\n if (encodedDs instanceof Uint8Array) {\n this.dss.set(userDescription, mergeDeleteSets([this.dss.get(userDescription) || createDeleteSet(), readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs)))]))\n }\n })\n })\n })\n this.dss.set(userDescription, mergeDeleteSets(ds.map(encodedDs => readDeleteSet(new DSDecoderV1(decoding.createDecoder(encodedDs))))))\n ids.observe(/** @param {YArrayEvent} event */ event =>\n event.changes.added.forEach(item => item.content.getContent().forEach(addClientId))\n )\n ids.forEach(addClientId)\n }\n // observe users\n storeType.observe(event => {\n event.keysChanged.forEach(userDescription =>\n initUser(storeType.get(userDescription), userDescription)\n )\n })\n // add intial data\n storeType.forEach(initUser)\n }\n\n /**\n * @param {Doc} doc\n * @param {number} clientid\n * @param {string} userDescription\n * @param {Object} conf\n * @param {function(Transaction, DeleteSet):boolean} [conf.filter]\n */\n setUserMapping (doc, clientid, userDescription, { filter = () => true } = {}) {\n const users = this.yusers\n let user = users.get(userDescription)\n if (!user) {\n user = new YMap()\n user.set('ids', new YArray())\n user.set('ds', new YArray())\n users.set(userDescription, user)\n }\n user.get('ids').push([clientid])\n users.observe(_event => {\n setTimeout(() => {\n const userOverwrite = users.get(userDescription)\n if (userOverwrite !== user) {\n // user was overwritten, port all data over to the next user object\n // @todo Experiment with Y.Sets here\n user = userOverwrite\n // @todo iterate over old type\n this.clients.forEach((_userDescription, clientid) => {\n if (userDescription === _userDescription) {\n user.get('ids').push([clientid])\n }\n })\n const encoder = new DSEncoderV1()\n const ds = this.dss.get(userDescription)\n if (ds) {\n writeDeleteSet(encoder, ds)\n user.get('ds').push([encoder.toUint8Array()])\n }\n }\n }, 0)\n })\n doc.on('afterTransaction', /** @param {Transaction} transaction */ transaction => {\n setTimeout(() => {\n const yds = user.get('ds')\n const ds = transaction.deleteSet\n if (transaction.local && ds.clients.size > 0 && filter(transaction, ds)) {\n const encoder = new DSEncoderV1()\n writeDeleteSet(encoder, ds)\n yds.push([encoder.toUint8Array()])\n }\n })\n })\n }\n\n /**\n * @param {number} clientid\n * @return {any}\n */\n getUserByClientId (clientid) {\n return this.clients.get(clientid) || null\n }\n\n /**\n * @param {ID} id\n * @return {string | null}\n */\n getUserByDeletedId (id) {\n for (const [userDescription, ds] of this.dss.entries()) {\n if (isDeleted(ds, id)) {\n return userDescription\n }\n }\n return null\n }\n}\n","import {\n writeID,\n readID,\n compareIDs,\n getState,\n findRootTypeKey,\n Item,\n createID,\n ContentType,\n followRedone,\n getItem,\n ID, Doc, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as error from 'lib0/error'\n\n/**\n * A relative position is based on the Yjs model and is not affected by document changes.\n * E.g. If you place a relative position before a certain character, it will always point to this character.\n * If you place a relative position at the end of a type, it will always point to the end of the type.\n *\n * A numeric position is often unsuited for user selections, because it does not change when content is inserted\n * before or after.\n *\n * ```Insert(0, 'x')('a|bc') = 'xa|bc'``` Where | is the relative position.\n *\n * One of the properties must be defined.\n *\n * @example\n * // Current cursor position is at position 10\n * const relativePosition = createRelativePositionFromIndex(yText, 10)\n * // modify yText\n * yText.insert(0, 'abc')\n * yText.delete(3, 10)\n * // Compute the cursor position\n * const absolutePosition = createAbsolutePositionFromRelativePosition(y, relativePosition)\n * absolutePosition.type === yText // => true\n * console.log('cursor location is ' + absolutePosition.index) // => cursor location is 3\n *\n */\nexport class RelativePosition {\n /**\n * @param {ID|null} type\n * @param {string|null} tname\n * @param {ID|null} item\n * @param {number} assoc\n */\n constructor (type, tname, item, assoc = 0) {\n /**\n * @type {ID|null}\n */\n this.type = type\n /**\n * @type {string|null}\n */\n this.tname = tname\n /**\n * @type {ID | null}\n */\n this.item = item\n /**\n * A relative position is associated to a specific character. By default\n * assoc >= 0, the relative position is associated to the character\n * after the meant position.\n * I.e. position 1 in 'ab' is associated to character 'b'.\n *\n * If assoc < 0, then the relative position is associated to the caharacter\n * before the meant position.\n *\n * @type {number}\n */\n this.assoc = assoc\n }\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {any}\n */\nexport const relativePositionToJSON = rpos => {\n const json = {}\n if (rpos.type) {\n json.type = rpos.type\n }\n if (rpos.tname) {\n json.tname = rpos.tname\n }\n if (rpos.item) {\n json.item = rpos.item\n }\n if (rpos.assoc != null) {\n json.assoc = rpos.assoc\n }\n return json\n}\n\n/**\n * @param {any} json\n * @return {RelativePosition}\n *\n * @function\n */\nexport const createRelativePositionFromJSON = json => new RelativePosition(json.type == null ? null : createID(json.type.client, json.type.clock), json.tname ?? null, json.item == null ? null : createID(json.item.client, json.item.clock), json.assoc == null ? 0 : json.assoc)\n\nexport class AbsolutePosition {\n /**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n */\n constructor (type, index, assoc = 0) {\n /**\n * @type {AbstractType}\n */\n this.type = type\n /**\n * @type {number}\n */\n this.index = index\n this.assoc = assoc\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @param {number} [assoc]\n *\n * @function\n */\nexport const createAbsolutePosition = (type, index, assoc = 0) => new AbsolutePosition(type, index, assoc)\n\n/**\n * @param {AbstractType} type\n * @param {ID|null} item\n * @param {number} [assoc]\n *\n * @function\n */\nexport const createRelativePosition = (type, item, assoc) => {\n let typeid = null\n let tname = null\n if (type._item === null) {\n tname = findRootTypeKey(type)\n } else {\n typeid = createID(type._item.id.client, type._item.id.clock)\n }\n return new RelativePosition(typeid, tname, item, assoc)\n}\n\n/**\n * Create a relativePosition based on a absolute position.\n *\n * @param {AbstractType} type The base type (e.g. YText or YArray).\n * @param {number} index The absolute position.\n * @param {number} [assoc]\n * @return {RelativePosition}\n *\n * @function\n */\nexport const createRelativePositionFromTypeIndex = (type, index, assoc = 0) => {\n let t = type._start\n if (assoc < 0) {\n // associated to the left character or the beginning of a type, increment index if possible.\n if (index === 0) {\n return createRelativePosition(type, null, assoc)\n }\n index--\n }\n while (t !== null) {\n if (!t.deleted && t.countable) {\n if (t.length > index) {\n // case 1: found position somewhere in the linked list\n return createRelativePosition(type, createID(t.id.client, t.id.clock + index), assoc)\n }\n index -= t.length\n }\n if (t.right === null && assoc < 0) {\n // left-associated position, return last available id\n return createRelativePosition(type, t.lastId, assoc)\n }\n t = t.right\n }\n return createRelativePosition(type, null, assoc)\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {RelativePosition} rpos\n *\n * @function\n */\nexport const writeRelativePosition = (encoder, rpos) => {\n const { type, tname, item, assoc } = rpos\n if (item !== null) {\n encoding.writeVarUint(encoder, 0)\n writeID(encoder, item)\n } else if (tname !== null) {\n // case 2: found position at the end of the list and type is stored in y.share\n encoding.writeUint8(encoder, 1)\n encoding.writeVarString(encoder, tname)\n } else if (type !== null) {\n // case 3: found position at the end of the list and type is attached to an item\n encoding.writeUint8(encoder, 2)\n writeID(encoder, type)\n } else {\n throw error.unexpectedCase()\n }\n encoding.writeVarInt(encoder, assoc)\n return encoder\n}\n\n/**\n * @param {RelativePosition} rpos\n * @return {Uint8Array}\n */\nexport const encodeRelativePosition = rpos => {\n const encoder = encoding.createEncoder()\n writeRelativePosition(encoder, rpos)\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * @param {decoding.Decoder} decoder\n * @return {RelativePosition}\n *\n * @function\n */\nexport const readRelativePosition = decoder => {\n let type = null\n let tname = null\n let itemID = null\n switch (decoding.readVarUint(decoder)) {\n case 0:\n // case 1: found position somewhere in the linked list\n itemID = readID(decoder)\n break\n case 1:\n // case 2: found position at the end of the list and type is stored in y.share\n tname = decoding.readVarString(decoder)\n break\n case 2: {\n // case 3: found position at the end of the list and type is attached to an item\n type = readID(decoder)\n }\n }\n const assoc = decoding.hasContent(decoder) ? decoding.readVarInt(decoder) : 0\n return new RelativePosition(type, tname, itemID, assoc)\n}\n\n/**\n * @param {Uint8Array} uint8Array\n * @return {RelativePosition}\n */\nexport const decodeRelativePosition = uint8Array => readRelativePosition(decoding.createDecoder(uint8Array))\n\n/**\n * Transform a relative position to an absolute position.\n *\n * If you want to share the relative position with other users, you should set\n * `followUndoneDeletions` to false to get consistent results across all clients.\n *\n * When calculating the absolute position, we try to follow the \"undone deletions\". This yields\n * better results for the user who performed undo. However, only the user who performed the undo\n * will get the better results, the other users don't know which operations recreated a deleted\n * range of content. There is more information in this ticket: https://github.com/yjs/yjs/issues/638\n *\n * @param {RelativePosition} rpos\n * @param {Doc} doc\n * @param {boolean} followUndoneDeletions - whether to follow undone deletions - see https://github.com/yjs/yjs/issues/638\n * @return {AbsolutePosition|null}\n *\n * @function\n */\nexport const createAbsolutePositionFromRelativePosition = (rpos, doc, followUndoneDeletions = true) => {\n const store = doc.store\n const rightID = rpos.item\n const typeID = rpos.type\n const tname = rpos.tname\n const assoc = rpos.assoc\n let type = null\n let index = 0\n if (rightID !== null) {\n if (getState(store, rightID.client) <= rightID.clock) {\n return null\n }\n const res = followUndoneDeletions ? followRedone(store, rightID) : { item: getItem(store, rightID), diff: 0 }\n const right = res.item\n if (!(right instanceof Item)) {\n return null\n }\n type = /** @type {AbstractType} */ (right.parent)\n if (type._item === null || !type._item.deleted) {\n index = (right.deleted || !right.countable) ? 0 : (res.diff + (assoc >= 0 ? 0 : 1)) // adjust position based on left association if necessary\n let n = right.left\n while (n !== null) {\n if (!n.deleted && n.countable) {\n index += n.length\n }\n n = n.left\n }\n }\n } else {\n if (tname !== null) {\n type = doc.get(tname)\n } else if (typeID !== null) {\n if (getState(store, typeID.client) <= typeID.clock) {\n // type does not exist yet\n return null\n }\n const { item } = followUndoneDeletions ? followRedone(store, typeID) : { item: getItem(store, typeID) }\n if (item instanceof Item && item.content instanceof ContentType) {\n type = item.content.type\n } else {\n // struct is garbage collected\n return null\n }\n } else {\n throw error.unexpectedCase()\n }\n if (assoc >= 0) {\n index = type._length\n } else {\n index = 0\n }\n }\n return createAbsolutePosition(type, index, rpos.assoc)\n}\n\n/**\n * @param {RelativePosition|null} a\n * @param {RelativePosition|null} b\n * @return {boolean}\n *\n * @function\n */\nexport const compareRelativePositions = (a, b) => a === b || (\n a !== null && b !== null && a.tname === b.tname && compareIDs(a.item, b.item) && compareIDs(a.type, b.type) && a.assoc === b.assoc\n)\n","import {\n isDeleted,\n createDeleteSetFromStructStore,\n getStateVector,\n getItemCleanStart,\n iterateDeletedStructs,\n writeDeleteSet,\n writeStateVector,\n readDeleteSet,\n readStateVector,\n createDeleteSet,\n createID,\n getState,\n findIndexSS,\n UpdateEncoderV2,\n applyUpdateV2,\n LazyStructReader,\n equalDeleteSets,\n UpdateDecoderV1, UpdateDecoderV2, DSEncoderV1, DSEncoderV2, DSDecoderV1, DSDecoderV2, Transaction, Doc, DeleteSet, Item, // eslint-disable-line\n mergeDeleteSets\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as set from 'lib0/set'\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\n\nexport class Snapshot {\n /**\n * @param {DeleteSet} ds\n * @param {Map} sv state map\n */\n constructor (ds, sv) {\n /**\n * @type {DeleteSet}\n */\n this.ds = ds\n /**\n * State Map\n * @type {Map}\n */\n this.sv = sv\n }\n}\n\n/**\n * @param {Snapshot} snap1\n * @param {Snapshot} snap2\n * @return {boolean}\n */\nexport const equalSnapshots = (snap1, snap2) => {\n const ds1 = snap1.ds.clients\n const ds2 = snap2.ds.clients\n const sv1 = snap1.sv\n const sv2 = snap2.sv\n if (sv1.size !== sv2.size || ds1.size !== ds2.size) {\n return false\n }\n for (const [key, value] of sv1.entries()) {\n if (sv2.get(key) !== value) {\n return false\n }\n }\n for (const [client, dsitems1] of ds1.entries()) {\n const dsitems2 = ds2.get(client) || []\n if (dsitems1.length !== dsitems2.length) {\n return false\n }\n for (let i = 0; i < dsitems1.length; i++) {\n const dsitem1 = dsitems1[i]\n const dsitem2 = dsitems2[i]\n if (dsitem1.clock !== dsitem2.clock || dsitem1.len !== dsitem2.len) {\n return false\n }\n }\n }\n return true\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {DSEncoderV1 | DSEncoderV2} [encoder]\n * @return {Uint8Array}\n */\nexport const encodeSnapshotV2 = (snapshot, encoder = new DSEncoderV2()) => {\n writeDeleteSet(encoder, snapshot.ds)\n writeStateVector(encoder, snapshot.sv)\n return encoder.toUint8Array()\n}\n\n/**\n * @param {Snapshot} snapshot\n * @return {Uint8Array}\n */\nexport const encodeSnapshot = snapshot => encodeSnapshotV2(snapshot, new DSEncoderV1())\n\n/**\n * @param {Uint8Array} buf\n * @param {DSDecoderV1 | DSDecoderV2} [decoder]\n * @return {Snapshot}\n */\nexport const decodeSnapshotV2 = (buf, decoder = new DSDecoderV2(decoding.createDecoder(buf))) => {\n return new Snapshot(readDeleteSet(decoder), readStateVector(decoder))\n}\n\n/**\n * @param {Uint8Array} buf\n * @return {Snapshot}\n */\nexport const decodeSnapshot = buf => decodeSnapshotV2(buf, new DSDecoderV1(decoding.createDecoder(buf)))\n\n/**\n * @param {DeleteSet} ds\n * @param {Map} sm\n * @return {Snapshot}\n */\nexport const createSnapshot = (ds, sm) => new Snapshot(ds, sm)\n\nexport const emptySnapshot = createSnapshot(createDeleteSet(), new Map())\n\n/**\n * @param {Doc} doc\n * @return {Snapshot}\n */\nexport const snapshot = doc => createSnapshot(createDeleteSetFromStructStore(doc.store), getStateVector(doc.store))\n\n/**\n * @param {Item} item\n * @param {Snapshot|undefined} snapshot\n *\n * @protected\n * @function\n */\nexport const isVisible = (item, snapshot) => snapshot === undefined\n ? !item.deleted\n : snapshot.sv.has(item.id.client) && (snapshot.sv.get(item.id.client) || 0) > item.id.clock && !isDeleted(snapshot.ds, item.id)\n\n/**\n * @param {Transaction} transaction\n * @param {Snapshot} snapshot\n */\nexport const splitSnapshotAffectedStructs = (transaction, snapshot) => {\n const meta = map.setIfUndefined(transaction.meta, splitSnapshotAffectedStructs, set.create)\n const store = transaction.doc.store\n // check if we already split for this snapshot\n if (!meta.has(snapshot)) {\n snapshot.sv.forEach((clock, client) => {\n if (clock < getState(store, client)) {\n getItemCleanStart(transaction, createID(client, clock))\n }\n })\n iterateDeletedStructs(transaction, snapshot.ds, _item => {})\n meta.add(snapshot)\n }\n}\n\n/**\n * @example\n * const ydoc = new Y.Doc({ gc: false })\n * ydoc.getText().insert(0, 'world!')\n * const snapshot = Y.snapshot(ydoc)\n * ydoc.getText().insert(0, 'hello ')\n * const restored = Y.createDocFromSnapshot(ydoc, snapshot)\n * assert(restored.getText().toString() === 'world!')\n *\n * @param {Doc} originDoc\n * @param {Snapshot} snapshot\n * @param {Doc} [newDoc] Optionally, you may define the Yjs document that receives the data from originDoc\n * @return {Doc}\n */\nexport const createDocFromSnapshot = (originDoc, snapshot, newDoc = new Doc()) => {\n if (originDoc.gc) {\n // we should not try to restore a GC-ed document, because some of the restored items might have their content deleted\n throw new Error('Garbage-collection must be disabled in `originDoc`!')\n }\n const { sv, ds } = snapshot\n\n const encoder = new UpdateEncoderV2()\n originDoc.transact(transaction => {\n let size = 0\n sv.forEach(clock => {\n if (clock > 0) {\n size++\n }\n })\n encoding.writeVarUint(encoder.restEncoder, size)\n // splitting the structs before writing them to the encoder\n for (const [client, clock] of sv) {\n if (clock === 0) {\n continue\n }\n if (clock < getState(originDoc.store, client)) {\n getItemCleanStart(transaction, createID(client, clock))\n }\n const structs = originDoc.store.clients.get(client) || []\n const lastStructIndex = findIndexSS(structs, clock - 1)\n // write # encoded structs\n encoding.writeVarUint(encoder.restEncoder, lastStructIndex + 1)\n encoder.writeClient(client)\n // first clock written is 0\n encoding.writeVarUint(encoder.restEncoder, 0)\n for (let i = 0; i <= lastStructIndex; i++) {\n structs[i].write(encoder, 0)\n }\n }\n writeDeleteSet(encoder, ds)\n })\n\n applyUpdateV2(newDoc, encoder.toUint8Array(), 'snapshot')\n return newDoc\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n */\nexport const snapshotContainsUpdateV2 = (snapshot, update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n if ((snapshot.sv.get(curr.id.client) || 0) < curr.id.clock + curr.length) {\n return false\n }\n }\n const mergedDS = mergeDeleteSets([snapshot.ds, readDeleteSet(updateDecoder)])\n return equalDeleteSets(snapshot.ds, mergedDS)\n}\n\n/**\n * @param {Snapshot} snapshot\n * @param {Uint8Array} update\n */\nexport const snapshotContainsUpdate = (snapshot, update) => snapshotContainsUpdateV2(snapshot, update, UpdateDecoderV1)\n","import {\n GC,\n splitItem,\n Transaction, ID, Item, DSDecoderV2 // eslint-disable-line\n} from '../internals.js'\n\nimport * as math from 'lib0/math'\nimport * as error from 'lib0/error'\n\nexport class StructStore {\n constructor () {\n /**\n * @type {Map>}\n */\n this.clients = new Map()\n /**\n * @type {null | { missing: Map, update: Uint8Array }}\n */\n this.pendingStructs = null\n /**\n * @type {null | Uint8Array}\n */\n this.pendingDs = null\n }\n}\n\n/**\n * Return the states as a Map.\n * Note that clock refers to the next expected clock id.\n *\n * @param {StructStore} store\n * @return {Map}\n *\n * @public\n * @function\n */\nexport const getStateVector = store => {\n const sm = new Map()\n store.clients.forEach((structs, client) => {\n const struct = structs[structs.length - 1]\n sm.set(client, struct.id.clock + struct.length)\n })\n return sm\n}\n\n/**\n * @param {StructStore} store\n * @param {number} client\n * @return {number}\n *\n * @public\n * @function\n */\nexport const getState = (store, client) => {\n const structs = store.clients.get(client)\n if (structs === undefined) {\n return 0\n }\n const lastStruct = structs[structs.length - 1]\n return lastStruct.id.clock + lastStruct.length\n}\n\n/**\n * @param {StructStore} store\n *\n * @private\n * @function\n */\nexport const integretyCheck = store => {\n store.clients.forEach(structs => {\n for (let i = 1; i < structs.length; i++) {\n const l = structs[i - 1]\n const r = structs[i]\n if (l.id.clock + l.length !== r.id.clock) {\n throw new Error('StructStore failed integrety check')\n }\n }\n })\n}\n\n/**\n * @param {StructStore} store\n * @param {GC|Item} struct\n *\n * @private\n * @function\n */\nexport const addStruct = (store, struct) => {\n let structs = store.clients.get(struct.id.client)\n if (structs === undefined) {\n structs = []\n store.clients.set(struct.id.client, structs)\n } else {\n const lastStruct = structs[structs.length - 1]\n if (lastStruct.id.clock + lastStruct.length !== struct.id.clock) {\n throw error.unexpectedCase()\n }\n }\n structs.push(struct)\n}\n\n/**\n * Perform a binary search on a sorted array\n * @param {Array} structs\n * @param {number} clock\n * @return {number}\n *\n * @private\n * @function\n */\nexport const findIndexSS = (structs, clock) => {\n let left = 0\n let right = structs.length - 1\n let mid = structs[right]\n let midclock = mid.id.clock\n if (midclock === clock) {\n return right\n }\n // @todo does it even make sense to pivot the search?\n // If a good split misses, it might actually increase the time to find the correct item.\n // Currently, the only advantage is that search with pivoting might find the item on the first try.\n let midindex = math.floor((clock / (midclock + mid.length - 1)) * right) // pivoting the search\n while (left <= right) {\n mid = structs[midindex]\n midclock = mid.id.clock\n if (midclock <= clock) {\n if (clock < midclock + mid.length) {\n return midindex\n }\n left = midindex + 1\n } else {\n right = midindex - 1\n }\n midindex = math.floor((left + right) / 2)\n }\n // Always check state before looking for a struct in StructStore\n // Therefore the case of not finding a struct is unexpected\n throw error.unexpectedCase()\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {GC|Item}\n *\n * @private\n * @function\n */\nexport const find = (store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client)\n return structs[findIndexSS(structs, id.clock)]\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n * @private\n * @function\n */\nexport const getItem = /** @type {function(StructStore,ID):Item} */ (find)\n\n/**\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clock\n */\nexport const findIndexCleanStart = (transaction, structs, clock) => {\n const index = findIndexSS(structs, clock)\n const struct = structs[index]\n if (struct.id.clock < clock && struct instanceof Item) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, clock - struct.id.clock))\n return index + 1\n }\n return index\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nexport const getItemCleanStart = (transaction, id) => {\n const structs = /** @type {Array} */ (transaction.doc.store.clients.get(id.client))\n return structs[findIndexCleanStart(transaction, structs, id.clock)]\n}\n\n/**\n * Expects that id is actually in store. This function throws or is an infinite loop otherwise.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @param {ID} id\n * @return {Item}\n *\n * @private\n * @function\n */\nexport const getItemCleanEnd = (transaction, store, id) => {\n /**\n * @type {Array}\n */\n // @ts-ignore\n const structs = store.clients.get(id.client)\n const index = findIndexSS(structs, id.clock)\n const struct = structs[index]\n if (id.clock !== struct.id.clock + struct.length - 1 && struct.constructor !== GC) {\n structs.splice(index + 1, 0, splitItem(transaction, struct, id.clock - struct.id.clock + 1))\n }\n return struct\n}\n\n/**\n * Replace `item` with `newitem` in store\n * @param {StructStore} store\n * @param {GC|Item} struct\n * @param {GC|Item} newStruct\n *\n * @private\n * @function\n */\nexport const replaceStruct = (store, struct, newStruct) => {\n const structs = /** @type {Array} */ (store.clients.get(struct.id.client))\n structs[findIndexSS(structs, struct.id.clock)] = newStruct\n}\n\n/**\n * Iterate over a range of structs\n *\n * @param {Transaction} transaction\n * @param {Array} structs\n * @param {number} clockStart Inclusive start\n * @param {number} len\n * @param {function(GC|Item):void} f\n *\n * @function\n */\nexport const iterateStructs = (transaction, structs, clockStart, len, f) => {\n if (len === 0) {\n return\n }\n const clockEnd = clockStart + len\n let index = findIndexCleanStart(transaction, structs, clockStart)\n let struct\n do {\n struct = structs[index++]\n if (clockEnd < struct.id.clock + struct.length) {\n findIndexCleanStart(transaction, structs, clockEnd)\n }\n f(struct)\n } while (index < structs.length && structs[index].id.clock < clockEnd)\n}\n","import {\n getState,\n writeStructsFromTransaction,\n writeDeleteSet,\n DeleteSet,\n sortAndMergeDeleteSet,\n getStateVector,\n findIndexSS,\n callEventHandlerListeners,\n Item,\n generateNewClientId,\n createID,\n cleanupYTextAfterTransaction,\n UpdateEncoderV1, UpdateEncoderV2, GC, StructStore, AbstractType, AbstractStruct, YEvent, Doc // eslint-disable-line\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as set from 'lib0/set'\nimport * as logging from 'lib0/logging'\nimport { callAll } from 'lib0/function'\n\n/**\n * A transaction is created for every change on the Yjs model. It is possible\n * to bundle changes on the Yjs model in a single transaction to\n * minimize the number on messages sent and the number of observer calls.\n * If possible the user of this library should bundle as many changes as\n * possible. Here is an example to illustrate the advantages of bundling:\n *\n * @example\n * const ydoc = new Y.Doc()\n * const map = ydoc.getMap('map')\n * // Log content when change is triggered\n * map.observe(() => {\n * console.log('change triggered')\n * })\n * // Each change on the map type triggers a log message:\n * map.set('a', 0) // => \"change triggered\"\n * map.set('b', 0) // => \"change triggered\"\n * // When put in a transaction, it will trigger the log after the transaction:\n * ydoc.transact(() => {\n * map.set('a', 1)\n * map.set('b', 1)\n * }) // => \"change triggered\"\n *\n * @public\n */\nexport class Transaction {\n /**\n * @param {Doc} doc\n * @param {any} origin\n * @param {boolean} local\n */\n constructor (doc, origin, local) {\n /**\n * The Yjs instance.\n * @type {Doc}\n */\n this.doc = doc\n /**\n * Describes the set of deleted items by ids\n * @type {DeleteSet}\n */\n this.deleteSet = new DeleteSet()\n /**\n * Holds the state before the transaction started.\n * @type {Map}\n */\n this.beforeState = getStateVector(doc.store)\n /**\n * Holds the state after the transaction.\n * @type {Map}\n */\n this.afterState = new Map()\n /**\n * All types that were directly modified (property added or child\n * inserted/deleted). New types are not included in this Set.\n * Maps from type to parentSubs (`item.parentSub = null` for YArray)\n * @type {Map>,Set>}\n */\n this.changed = new Map()\n /**\n * Stores the events for the types that observe also child elements.\n * It is mainly used by `observeDeep`.\n * @type {Map>,Array>>}\n */\n this.changedParentTypes = new Map()\n /**\n * @type {Array}\n */\n this._mergeStructs = []\n /**\n * @type {any}\n */\n this.origin = origin\n /**\n * Stores meta information on the transaction\n * @type {Map}\n */\n this.meta = new Map()\n /**\n * Whether this change originates from this doc.\n * @type {boolean}\n */\n this.local = local\n /**\n * @type {Set}\n */\n this.subdocsAdded = new Set()\n /**\n * @type {Set}\n */\n this.subdocsRemoved = new Set()\n /**\n * @type {Set}\n */\n this.subdocsLoaded = new Set()\n /**\n * @type {boolean}\n */\n this._needFormattingCleanup = false\n }\n}\n\n/**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {Transaction} transaction\n * @return {boolean} Whether data was written.\n */\nexport const writeUpdateMessageFromTransaction = (encoder, transaction) => {\n if (transaction.deleteSet.clients.size === 0 && !map.any(transaction.afterState, (clock, client) => transaction.beforeState.get(client) !== clock)) {\n return false\n }\n sortAndMergeDeleteSet(transaction.deleteSet)\n writeStructsFromTransaction(encoder, transaction)\n writeDeleteSet(encoder, transaction.deleteSet)\n return true\n}\n\n/**\n * @param {Transaction} transaction\n *\n * @private\n * @function\n */\nexport const nextID = transaction => {\n const y = transaction.doc\n return createID(y.clientID, getState(y.store, y.clientID))\n}\n\n/**\n * If `type.parent` was added in current transaction, `type` technically\n * did not change, it was just added and we should not fire events for `type`.\n *\n * @param {Transaction} transaction\n * @param {AbstractType>} type\n * @param {string|null} parentSub\n */\nexport const addChangedTypeToTransaction = (transaction, type, parentSub) => {\n const item = type._item\n if (item === null || (item.id.clock < (transaction.beforeState.get(item.id.client) || 0) && !item.deleted)) {\n map.setIfUndefined(transaction.changed, type, set.create).add(parentSub)\n }\n}\n\n/**\n * @param {Array} structs\n * @param {number} pos\n * @return {number} # of merged structs\n */\nconst tryToMergeWithLefts = (structs, pos) => {\n let right = structs[pos]\n let left = structs[pos - 1]\n let i = pos\n for (; i > 0; right = left, left = structs[--i - 1]) {\n if (left.deleted === right.deleted && left.constructor === right.constructor) {\n if (left.mergeWith(right)) {\n if (right instanceof Item && right.parentSub !== null && /** @type {AbstractType} */ (right.parent)._map.get(right.parentSub) === right) {\n /** @type {AbstractType} */ (right.parent)._map.set(right.parentSub, /** @type {Item} */ (left))\n }\n continue\n }\n }\n break\n }\n const merged = pos - i\n if (merged) {\n // remove all merged structs from the array\n structs.splice(pos + 1 - merged, merged)\n }\n return merged\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nconst tryGcDeleteSet = (ds, store, gcFilter) => {\n for (const [client, deleteItems] of ds.clients.entries()) {\n const structs = /** @type {Array} */ (store.clients.get(client))\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di]\n const endDeleteItemClock = deleteItem.clock + deleteItem.len\n for (\n let si = findIndexSS(structs, deleteItem.clock), struct = structs[si];\n si < structs.length && struct.id.clock < endDeleteItemClock;\n struct = structs[++si]\n ) {\n const struct = structs[si]\n if (deleteItem.clock + deleteItem.len <= struct.id.clock) {\n break\n }\n if (struct instanceof Item && struct.deleted && !struct.keep && gcFilter(struct)) {\n struct.gc(store, false)\n }\n }\n }\n }\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n */\nconst tryMergeDeleteSet = (ds, store) => {\n // try to merge deleted / gc'd items\n // merge from right to left for better efficiency and so we don't miss any merge targets\n ds.clients.forEach((deleteItems, client) => {\n const structs = /** @type {Array} */ (store.clients.get(client))\n for (let di = deleteItems.length - 1; di >= 0; di--) {\n const deleteItem = deleteItems[di]\n // start with merging the item next to the last deleted item\n const mostRightIndexToCheck = math.min(structs.length - 1, 1 + findIndexSS(structs, deleteItem.clock + deleteItem.len - 1))\n for (\n let si = mostRightIndexToCheck, struct = structs[si];\n si > 0 && struct.id.clock >= deleteItem.clock;\n struct = structs[si]\n ) {\n si -= 1 + tryToMergeWithLefts(structs, si)\n }\n }\n })\n}\n\n/**\n * @param {DeleteSet} ds\n * @param {StructStore} store\n * @param {function(Item):boolean} gcFilter\n */\nexport const tryGc = (ds, store, gcFilter) => {\n tryGcDeleteSet(ds, store, gcFilter)\n tryMergeDeleteSet(ds, store)\n}\n\n/**\n * @param {Array} transactionCleanups\n * @param {number} i\n */\nconst cleanupTransactions = (transactionCleanups, i) => {\n if (i < transactionCleanups.length) {\n const transaction = transactionCleanups[i]\n const doc = transaction.doc\n const store = doc.store\n const ds = transaction.deleteSet\n const mergeStructs = transaction._mergeStructs\n try {\n sortAndMergeDeleteSet(ds)\n transaction.afterState = getStateVector(transaction.doc.store)\n doc.emit('beforeObserverCalls', [transaction, doc])\n /**\n * An array of event callbacks.\n *\n * Each callback is called even if the other ones throw errors.\n *\n * @type {Array}\n */\n const fs = []\n // observe events on changed types\n transaction.changed.forEach((subs, itemtype) =>\n fs.push(() => {\n if (itemtype._item === null || !itemtype._item.deleted) {\n itemtype._callObserver(transaction, subs)\n }\n })\n )\n fs.push(() => {\n // deep observe events\n transaction.changedParentTypes.forEach((events, type) => {\n // We need to think about the possibility that the user transforms the\n // Y.Doc in the event.\n if (type._dEH.l.length > 0 && (type._item === null || !type._item.deleted)) {\n events = events\n .filter(event =>\n event.target._item === null || !event.target._item.deleted\n )\n events\n .forEach(event => {\n event.currentTarget = type\n // path is relative to the current target\n event._path = null\n })\n // sort events by path length so that top-level events are fired first.\n events\n .sort((event1, event2) => event1.path.length - event2.path.length)\n // We don't need to check for events.length\n // because we know it has at least one element\n callEventHandlerListeners(type._dEH, events, transaction)\n }\n })\n })\n fs.push(() => doc.emit('afterTransaction', [transaction, doc]))\n callAll(fs, [])\n if (transaction._needFormattingCleanup) {\n cleanupYTextAfterTransaction(transaction)\n }\n } finally {\n // Replace deleted items with ItemDeleted / GC.\n // This is where content is actually remove from the Yjs Doc.\n if (doc.gc) {\n tryGcDeleteSet(ds, store, doc.gcFilter)\n }\n tryMergeDeleteSet(ds, store)\n\n // on all affected store.clients props, try to merge\n transaction.afterState.forEach((clock, client) => {\n const beforeClock = transaction.beforeState.get(client) || 0\n if (beforeClock !== clock) {\n const structs = /** @type {Array} */ (store.clients.get(client))\n // we iterate from right to left so we can safely remove entries\n const firstChangePos = math.max(findIndexSS(structs, beforeClock), 1)\n for (let i = structs.length - 1; i >= firstChangePos;) {\n i -= 1 + tryToMergeWithLefts(structs, i)\n }\n }\n })\n // try to merge mergeStructs\n // @todo: it makes more sense to transform mergeStructs to a DS, sort it, and merge from right to left\n // but at the moment DS does not handle duplicates\n for (let i = mergeStructs.length - 1; i >= 0; i--) {\n const { client, clock } = mergeStructs[i].id\n const structs = /** @type {Array} */ (store.clients.get(client))\n const replacedStructPos = findIndexSS(structs, clock)\n if (replacedStructPos + 1 < structs.length) {\n if (tryToMergeWithLefts(structs, replacedStructPos + 1) > 1) {\n continue // no need to perform next check, both are already merged\n }\n }\n if (replacedStructPos > 0) {\n tryToMergeWithLefts(structs, replacedStructPos)\n }\n }\n if (!transaction.local && transaction.afterState.get(doc.clientID) !== transaction.beforeState.get(doc.clientID)) {\n logging.print(logging.ORANGE, logging.BOLD, '[yjs] ', logging.UNBOLD, logging.RED, 'Changed the client-id because another client seems to be using it.')\n doc.clientID = generateNewClientId()\n }\n // @todo Merge all the transactions into one and provide send the data as a single update message\n doc.emit('afterTransactionCleanup', [transaction, doc])\n if (doc._observers.has('update')) {\n const encoder = new UpdateEncoderV1()\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)\n if (hasContent) {\n doc.emit('update', [encoder.toUint8Array(), transaction.origin, doc, transaction])\n }\n }\n if (doc._observers.has('updateV2')) {\n const encoder = new UpdateEncoderV2()\n const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)\n if (hasContent) {\n doc.emit('updateV2', [encoder.toUint8Array(), transaction.origin, doc, transaction])\n }\n }\n const { subdocsAdded, subdocsLoaded, subdocsRemoved } = transaction\n if (subdocsAdded.size > 0 || subdocsRemoved.size > 0 || subdocsLoaded.size > 0) {\n subdocsAdded.forEach(subdoc => {\n subdoc.clientID = doc.clientID\n if (subdoc.collectionid == null) {\n subdoc.collectionid = doc.collectionid\n }\n doc.subdocs.add(subdoc)\n })\n subdocsRemoved.forEach(subdoc => doc.subdocs.delete(subdoc))\n doc.emit('subdocs', [{ loaded: subdocsLoaded, added: subdocsAdded, removed: subdocsRemoved }, doc, transaction])\n subdocsRemoved.forEach(subdoc => subdoc.destroy())\n }\n\n if (transactionCleanups.length <= i + 1) {\n doc._transactionCleanups = []\n doc.emit('afterAllTransactions', [doc, transactionCleanups])\n } else {\n cleanupTransactions(transactionCleanups, i + 1)\n }\n }\n }\n}\n\n/**\n * Implements the functionality of `y.transact(()=>{..})`\n *\n * @template T\n * @param {Doc} doc\n * @param {function(Transaction):T} f\n * @param {any} [origin=true]\n * @return {T}\n *\n * @function\n */\nexport const transact = (doc, f, origin = null, local = true) => {\n const transactionCleanups = doc._transactionCleanups\n let initialCall = false\n /**\n * @type {any}\n */\n let result = null\n if (doc._transaction === null) {\n initialCall = true\n doc._transaction = new Transaction(doc, origin, local)\n transactionCleanups.push(doc._transaction)\n if (transactionCleanups.length === 1) {\n doc.emit('beforeAllTransactions', [doc])\n }\n doc.emit('beforeTransaction', [doc._transaction, doc])\n }\n try {\n result = f(doc._transaction)\n } finally {\n if (initialCall) {\n const finishCleanup = doc._transaction === transactionCleanups[0]\n doc._transaction = null\n if (finishCleanup) {\n // The first transaction ended, now process observer calls.\n // Observer call may create new transactions for which we need to call the observers and do cleanup.\n // We don't want to nest these calls, so we execute these calls one after\n // another.\n // Also we need to ensure that all cleanups are called, even if the\n // observes throw errors.\n // This file is full of hacky try {} finally {} blocks to ensure that an\n // event can throw errors and also that the cleanup is called.\n cleanupTransactions(transactionCleanups, 0)\n }\n }\n }\n return result\n}\n","import {\n mergeDeleteSets,\n iterateDeletedStructs,\n keepItem,\n transact,\n createID,\n redoItem,\n isParentOf,\n followRedone,\n getItemCleanStart,\n isDeleted,\n addToDeleteSet,\n YEvent, Transaction, Doc, Item, GC, DeleteSet, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as time from 'lib0/time'\nimport * as array from 'lib0/array'\nimport * as logging from 'lib0/logging'\nimport { ObservableV2 } from 'lib0/observable'\n\nexport class StackItem {\n /**\n * @param {DeleteSet} deletions\n * @param {DeleteSet} insertions\n */\n constructor (deletions, insertions) {\n this.insertions = insertions\n this.deletions = deletions\n /**\n * Use this to save and restore metadata like selection range\n */\n this.meta = new Map()\n }\n}\n/**\n * @param {Transaction} tr\n * @param {UndoManager} um\n * @param {StackItem} stackItem\n */\nconst clearUndoManagerStackItem = (tr, um, stackItem) => {\n iterateDeletedStructs(tr, stackItem.deletions, item => {\n if (item instanceof Item && um.scope.some(type => isParentOf(type, item))) {\n keepItem(item, false)\n }\n })\n}\n\n/**\n * @param {UndoManager} undoManager\n * @param {Array} stack\n * @param {'undo'|'redo'} eventType\n * @return {StackItem?}\n */\nconst popStackItem = (undoManager, stack, eventType) => {\n /**\n * Keep a reference to the transaction so we can fire the event with the changedParentTypes\n * @type {any}\n */\n let _tr = null\n const doc = undoManager.doc\n const scope = undoManager.scope\n transact(doc, transaction => {\n while (stack.length > 0 && undoManager.currStackItem === null) {\n const store = doc.store\n const stackItem = /** @type {StackItem} */ (stack.pop())\n /**\n * @type {Set}\n */\n const itemsToRedo = new Set()\n /**\n * @type {Array}\n */\n const itemsToDelete = []\n let performedChange = false\n iterateDeletedStructs(transaction, stackItem.insertions, struct => {\n if (struct instanceof Item) {\n if (struct.redone !== null) {\n let { item, diff } = followRedone(store, struct.id)\n if (diff > 0) {\n item = getItemCleanStart(transaction, createID(item.id.client, item.id.clock + diff))\n }\n struct = item\n }\n if (!struct.deleted && scope.some(type => isParentOf(type, /** @type {Item} */ (struct)))) {\n itemsToDelete.push(struct)\n }\n }\n })\n iterateDeletedStructs(transaction, stackItem.deletions, struct => {\n if (\n struct instanceof Item &&\n scope.some(type => isParentOf(type, struct)) &&\n // Never redo structs in stackItem.insertions because they were created and deleted in the same capture interval.\n !isDeleted(stackItem.insertions, struct.id)\n ) {\n itemsToRedo.add(struct)\n }\n })\n itemsToRedo.forEach(struct => {\n performedChange = redoItem(transaction, struct, itemsToRedo, stackItem.insertions, undoManager.ignoreRemoteMapChanges, undoManager) !== null || performedChange\n })\n // We want to delete in reverse order so that children are deleted before\n // parents, so we have more information available when items are filtered.\n for (let i = itemsToDelete.length - 1; i >= 0; i--) {\n const item = itemsToDelete[i]\n if (undoManager.deleteFilter(item)) {\n item.delete(transaction)\n performedChange = true\n }\n }\n undoManager.currStackItem = performedChange ? stackItem : null\n }\n transaction.changed.forEach((subProps, type) => {\n // destroy search marker if necessary\n if (subProps.has(null) && type._searchMarker) {\n type._searchMarker.length = 0\n }\n })\n _tr = transaction\n }, undoManager)\n const res = undoManager.currStackItem\n if (res != null) {\n const changedParentTypes = _tr.changedParentTypes\n undoManager.emit('stack-item-popped', [{ stackItem: res, type: eventType, changedParentTypes, origin: undoManager }, undoManager])\n undoManager.currStackItem = null\n }\n return res\n}\n\n/**\n * @typedef {Object} UndoManagerOptions\n * @property {number} [UndoManagerOptions.captureTimeout=500]\n * @property {function(Transaction):boolean} [UndoManagerOptions.captureTransaction] Do not capture changes of a Transaction if result false.\n * @property {function(Item):boolean} [UndoManagerOptions.deleteFilter=()=>true] Sometimes\n * it is necessary to filter what an Undo/Redo operation can delete. If this\n * filter returns false, the type/item won't be deleted even it is in the\n * undo/redo scope.\n * @property {Set} [UndoManagerOptions.trackedOrigins=new Set([null])]\n * @property {boolean} [ignoreRemoteMapChanges] Experimental. By default, the UndoManager will never overwrite remote changes. Enable this property to enable overwriting remote changes on key-value changes (Y.Map, properties on Y.Xml, etc..).\n * @property {Doc} [doc] The document that this UndoManager operates on. Only needed if typeScope is empty.\n */\n\n/**\n * @typedef {Object} StackItemEvent\n * @property {StackItem} StackItemEvent.stackItem\n * @property {any} StackItemEvent.origin\n * @property {'undo'|'redo'} StackItemEvent.type\n * @property {Map>,Array>>} StackItemEvent.changedParentTypes\n */\n\n/**\n * Fires 'stack-item-added' event when a stack item was added to either the undo- or\n * the redo-stack. You may store additional stack information via the\n * metadata property on `event.stackItem.meta` (it is a `Map` of metadata properties).\n * Fires 'stack-item-popped' event when a stack item was popped from either the\n * undo- or the redo-stack. You may restore the saved stack information from `event.stackItem.meta`.\n *\n * @extends {ObservableV2<{'stack-item-added':function(StackItemEvent, UndoManager):void, 'stack-item-popped': function(StackItemEvent, UndoManager):void, 'stack-cleared': function({ undoStackCleared: boolean, redoStackCleared: boolean }):void, 'stack-item-updated': function(StackItemEvent, UndoManager):void }>}\n */\nexport class UndoManager extends ObservableV2 {\n /**\n * @param {AbstractType|Array>} typeScope Accepts either a single type, or an array of types\n * @param {UndoManagerOptions} options\n */\n constructor (typeScope, {\n captureTimeout = 500,\n captureTransaction = _tr => true,\n deleteFilter = () => true,\n trackedOrigins = new Set([null]),\n ignoreRemoteMapChanges = false,\n doc = /** @type {Doc} */ (array.isArray(typeScope) ? typeScope[0].doc : typeScope.doc)\n } = {}) {\n super()\n /**\n * @type {Array>}\n */\n this.scope = []\n this.doc = doc\n this.addToScope(typeScope)\n this.deleteFilter = deleteFilter\n trackedOrigins.add(this)\n this.trackedOrigins = trackedOrigins\n this.captureTransaction = captureTransaction\n /**\n * @type {Array}\n */\n this.undoStack = []\n /**\n * @type {Array}\n */\n this.redoStack = []\n /**\n * Whether the client is currently undoing (calling UndoManager.undo)\n *\n * @type {boolean}\n */\n this.undoing = false\n this.redoing = false\n /**\n * The currently popped stack item if UndoManager.undoing or UndoManager.redoing\n *\n * @type {StackItem|null}\n */\n this.currStackItem = null\n this.lastChange = 0\n this.ignoreRemoteMapChanges = ignoreRemoteMapChanges\n this.captureTimeout = captureTimeout\n /**\n * @param {Transaction} transaction\n */\n this.afterTransactionHandler = transaction => {\n // Only track certain transactions\n if (\n !this.captureTransaction(transaction) ||\n !this.scope.some(type => transaction.changedParentTypes.has(type)) ||\n (!this.trackedOrigins.has(transaction.origin) && (!transaction.origin || !this.trackedOrigins.has(transaction.origin.constructor)))\n ) {\n return\n }\n const undoing = this.undoing\n const redoing = this.redoing\n const stack = undoing ? this.redoStack : this.undoStack\n if (undoing) {\n this.stopCapturing() // next undo should not be appended to last stack item\n } else if (!redoing) {\n // neither undoing nor redoing: delete redoStack\n this.clear(false, true)\n }\n const insertions = new DeleteSet()\n transaction.afterState.forEach((endClock, client) => {\n const startClock = transaction.beforeState.get(client) || 0\n const len = endClock - startClock\n if (len > 0) {\n addToDeleteSet(insertions, client, startClock, len)\n }\n })\n const now = time.getUnixTime()\n let didAdd = false\n if (this.lastChange > 0 && now - this.lastChange < this.captureTimeout && stack.length > 0 && !undoing && !redoing) {\n // append change to last stack op\n const lastOp = stack[stack.length - 1]\n lastOp.deletions = mergeDeleteSets([lastOp.deletions, transaction.deleteSet])\n lastOp.insertions = mergeDeleteSets([lastOp.insertions, insertions])\n } else {\n // create a new stack op\n stack.push(new StackItem(transaction.deleteSet, insertions))\n didAdd = true\n }\n if (!undoing && !redoing) {\n this.lastChange = now\n }\n // make sure that deleted structs are not gc'd\n iterateDeletedStructs(transaction, transaction.deleteSet, /** @param {Item|GC} item */ item => {\n if (item instanceof Item && this.scope.some(type => isParentOf(type, item))) {\n keepItem(item, true)\n }\n })\n /**\n * @type {[StackItemEvent, UndoManager]}\n */\n const changeEvent = [{ stackItem: stack[stack.length - 1], origin: transaction.origin, type: undoing ? 'redo' : 'undo', changedParentTypes: transaction.changedParentTypes }, this]\n if (didAdd) {\n this.emit('stack-item-added', changeEvent)\n } else {\n this.emit('stack-item-updated', changeEvent)\n }\n }\n this.doc.on('afterTransaction', this.afterTransactionHandler)\n this.doc.on('destroy', () => {\n this.destroy()\n })\n }\n\n /**\n * @param {Array> | AbstractType} ytypes\n */\n addToScope (ytypes) {\n ytypes = array.isArray(ytypes) ? ytypes : [ytypes]\n ytypes.forEach(ytype => {\n if (this.scope.every(yt => yt !== ytype)) {\n if (ytype.doc !== this.doc) logging.warn('[yjs#509] Not same Y.Doc') // use MultiDocUndoManager instead. also see https://github.com/yjs/yjs/issues/509\n this.scope.push(ytype)\n }\n })\n }\n\n /**\n * @param {any} origin\n */\n addTrackedOrigin (origin) {\n this.trackedOrigins.add(origin)\n }\n\n /**\n * @param {any} origin\n */\n removeTrackedOrigin (origin) {\n this.trackedOrigins.delete(origin)\n }\n\n clear (clearUndoStack = true, clearRedoStack = true) {\n if ((clearUndoStack && this.canUndo()) || (clearRedoStack && this.canRedo())) {\n this.doc.transact(tr => {\n if (clearUndoStack) {\n this.undoStack.forEach(item => clearUndoManagerStackItem(tr, this, item))\n this.undoStack = []\n }\n if (clearRedoStack) {\n this.redoStack.forEach(item => clearUndoManagerStackItem(tr, this, item))\n this.redoStack = []\n }\n this.emit('stack-cleared', [{ undoStackCleared: clearUndoStack, redoStackCleared: clearRedoStack }])\n })\n }\n }\n\n /**\n * UndoManager merges Undo-StackItem if they are created within time-gap\n * smaller than `options.captureTimeout`. Call `um.stopCapturing()` so that the next\n * StackItem won't be merged.\n *\n *\n * @example\n * // without stopCapturing\n * ytext.insert(0, 'a')\n * ytext.insert(1, 'b')\n * um.undo()\n * ytext.toString() // => '' (note that 'ab' was removed)\n * // with stopCapturing\n * ytext.insert(0, 'a')\n * um.stopCapturing()\n * ytext.insert(0, 'b')\n * um.undo()\n * ytext.toString() // => 'a' (note that only 'b' was removed)\n *\n */\n stopCapturing () {\n this.lastChange = 0\n }\n\n /**\n * Undo last changes on type.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n undo () {\n this.undoing = true\n let res\n try {\n res = popStackItem(this, this.undoStack, 'undo')\n } finally {\n this.undoing = false\n }\n return res\n }\n\n /**\n * Redo last undo operation.\n *\n * @return {StackItem?} Returns StackItem if a change was applied\n */\n redo () {\n this.redoing = true\n let res\n try {\n res = popStackItem(this, this.redoStack, 'redo')\n } finally {\n this.redoing = false\n }\n return res\n }\n\n /**\n * Are undo steps available?\n *\n * @return {boolean} `true` if undo is possible\n */\n canUndo () {\n return this.undoStack.length > 0\n }\n\n /**\n * Are redo steps available?\n *\n * @return {boolean} `true` if redo is possible\n */\n canRedo () {\n return this.redoStack.length > 0\n }\n\n destroy () {\n this.trackedOrigins.delete(this)\n this.doc.off('afterTransaction', this.afterTransactionHandler)\n super.destroy()\n }\n}\n","import * as binary from 'lib0/binary'\nimport * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport * as error from 'lib0/error'\nimport * as f from 'lib0/function'\nimport * as logging from 'lib0/logging'\nimport * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport * as string from 'lib0/string'\n\nimport {\n ContentAny,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentString,\n ContentType,\n createID,\n decodeStateVector,\n DSEncoderV1,\n DSEncoderV2,\n GC,\n Item,\n mergeDeleteSets,\n readDeleteSet,\n readItemContent,\n Skip,\n UpdateDecoderV1,\n UpdateDecoderV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n writeDeleteSet,\n YXmlElement,\n YXmlHook\n} from '../internals.js'\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n */\nfunction * lazyStructReaderGenerator (decoder) {\n const numOfStateUpdates = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numOfStateUpdates; i++) {\n const numberOfStructs = decoding.readVarUint(decoder.restDecoder)\n const client = decoder.readClient()\n let clock = decoding.readVarUint(decoder.restDecoder)\n for (let i = 0; i < numberOfStructs; i++) {\n const info = decoder.readInfo()\n // @todo use switch instead of ifs\n if (info === 10) {\n const len = decoding.readVarUint(decoder.restDecoder)\n yield new Skip(createID(client, clock), len)\n clock += len\n } else if ((binary.BITS5 & info) !== 0) {\n const cantCopyParentInfo = (info & (binary.BIT7 | binary.BIT8)) === 0\n // If parent = null and neither left nor right are defined, then we know that `parent` is child of `y`\n // and we read the next string as parentYKey.\n // It indicates how we store/retrieve parent from `y.share`\n // @type {string|null}\n const struct = new Item(\n createID(client, clock),\n null, // left\n (info & binary.BIT8) === binary.BIT8 ? decoder.readLeftID() : null, // origin\n null, // right\n (info & binary.BIT7) === binary.BIT7 ? decoder.readRightID() : null, // right origin\n // @ts-ignore Force writing a string here.\n cantCopyParentInfo ? (decoder.readParentInfo() ? decoder.readString() : decoder.readLeftID()) : null, // parent\n cantCopyParentInfo && (info & binary.BIT6) === binary.BIT6 ? decoder.readString() : null, // parentSub\n readItemContent(decoder, info) // item content\n )\n yield struct\n clock += struct.length\n } else {\n const len = decoder.readLen()\n yield new GC(createID(client, clock), len)\n clock += len\n }\n }\n }\n}\n\nexport class LazyStructReader {\n /**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {boolean} filterSkips\n */\n constructor (decoder, filterSkips) {\n this.gen = lazyStructReaderGenerator(decoder)\n /**\n * @type {null | Item | Skip | GC}\n */\n this.curr = null\n this.done = false\n this.filterSkips = filterSkips\n this.next()\n }\n\n /**\n * @return {Item | GC | Skip |null}\n */\n next () {\n // ignore \"Skip\" structs\n do {\n this.curr = this.gen.next().value || null\n } while (this.filterSkips && this.curr !== null && this.curr.constructor === Skip)\n return this.curr\n }\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nexport const logUpdate = update => logUpdateV2(update, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nexport const logUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n }\n logging.print('Structs: ', structs)\n const ds = readDeleteSet(updateDecoder)\n logging.print('DeleteSet: ', ds)\n}\n\n/**\n * @param {Uint8Array} update\n *\n */\nexport const decodeUpdate = (update) => decodeUpdateV2(update, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} [YDecoder]\n *\n */\nexport const decodeUpdateV2 = (update, YDecoder = UpdateDecoderV2) => {\n const structs = []\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n structs.push(curr)\n }\n return {\n structs,\n ds: readDeleteSet(updateDecoder)\n }\n}\n\nexport class LazyStructWriter {\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n constructor (encoder) {\n this.currClient = 0\n this.startClock = 0\n this.written = 0\n this.encoder = encoder\n /**\n * We want to write operations lazily, but also we need to know beforehand how many operations we want to write for each client.\n *\n * This kind of meta-information (#clients, #structs-per-client-written) is written to the restEncoder.\n *\n * We fragment the restEncoder and store a slice of it per-client until we know how many clients there are.\n * When we flush (toUint8Array) we write the restEncoder using the fragments and the meta-information.\n *\n * @type {Array<{ written: number, restEncoder: Uint8Array }>}\n */\n this.clientStructs = []\n }\n}\n\n/**\n * @param {Array} updates\n * @return {Uint8Array}\n */\nexport const mergeUpdates = updates => mergeUpdatesV2(updates, UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof DSEncoderV1 | typeof DSEncoderV2} YEncoder\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {Uint8Array}\n */\nexport const encodeStateVectorFromUpdateV2 = (update, YEncoder = DSEncoderV2, YDecoder = UpdateDecoderV2) => {\n const encoder = new YEncoder()\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false)\n let curr = updateDecoder.curr\n if (curr !== null) {\n let size = 0\n let currClient = curr.id.client\n let stopCounting = curr.id.clock !== 0 // must start at 0\n let currClock = stopCounting ? 0 : curr.id.clock + curr.length\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n if (currClock !== 0) {\n size++\n // We found a new client\n // write what we have to the encoder\n encoding.writeVarUint(encoder.restEncoder, currClient)\n encoding.writeVarUint(encoder.restEncoder, currClock)\n }\n currClient = curr.id.client\n currClock = 0\n stopCounting = curr.id.clock !== 0\n }\n // we ignore skips\n if (curr.constructor === Skip) {\n stopCounting = true\n }\n if (!stopCounting) {\n currClock = curr.id.clock + curr.length\n }\n }\n // write what we have\n if (currClock !== 0) {\n size++\n encoding.writeVarUint(encoder.restEncoder, currClient)\n encoding.writeVarUint(encoder.restEncoder, currClock)\n }\n // prepend the size of the state vector\n const enc = encoding.createEncoder()\n encoding.writeVarUint(enc, size)\n encoding.writeBinaryEncoder(enc, encoder.restEncoder)\n encoder.restEncoder = enc\n return encoder.toUint8Array()\n } else {\n encoding.writeVarUint(encoder.restEncoder, 0)\n return encoder.toUint8Array()\n }\n}\n\n/**\n * @param {Uint8Array} update\n * @return {Uint8Array}\n */\nexport const encodeStateVectorFromUpdate = update => encodeStateVectorFromUpdateV2(update, DSEncoderV1, UpdateDecoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} YDecoder\n * @return {{ from: Map, to: Map }}\n */\nexport const parseUpdateMetaV2 = (update, YDecoder = UpdateDecoderV2) => {\n /**\n * @type {Map}\n */\n const from = new Map()\n /**\n * @type {Map}\n */\n const to = new Map()\n const updateDecoder = new LazyStructReader(new YDecoder(decoding.createDecoder(update)), false)\n let curr = updateDecoder.curr\n if (curr !== null) {\n let currClient = curr.id.client\n let currClock = curr.id.clock\n // write the beginning to `from`\n from.set(currClient, currClock)\n for (; curr !== null; curr = updateDecoder.next()) {\n if (currClient !== curr.id.client) {\n // We found a new client\n // write the end to `to`\n to.set(currClient, currClock)\n // write the beginning to `from`\n from.set(curr.id.client, curr.id.clock)\n // update currClient\n currClient = curr.id.client\n }\n currClock = curr.id.clock + curr.length\n }\n // write the end to `to`\n to.set(currClient, currClock)\n }\n return { from, to }\n}\n\n/**\n * @param {Uint8Array} update\n * @return {{ from: Map, to: Map }}\n */\nexport const parseUpdateMeta = update => parseUpdateMetaV2(update, UpdateDecoderV1)\n\n/**\n * This method is intended to slice any kind of struct and retrieve the right part.\n * It does not handle side-effects, so it should only be used by the lazy-encoder.\n *\n * @param {Item | GC | Skip} left\n * @param {number} diff\n * @return {Item | GC}\n */\nconst sliceStruct = (left, diff) => {\n if (left.constructor === GC) {\n const { client, clock } = left.id\n return new GC(createID(client, clock + diff), left.length - diff)\n } else if (left.constructor === Skip) {\n const { client, clock } = left.id\n return new Skip(createID(client, clock + diff), left.length - diff)\n } else {\n const leftItem = /** @type {Item} */ (left)\n const { client, clock } = leftItem.id\n return new Item(\n createID(client, clock + diff),\n null,\n createID(client, clock + diff - 1),\n null,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n }\n}\n\n/**\n *\n * This function works similarly to `readUpdateV2`.\n *\n * @param {Array} updates\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n * @return {Uint8Array}\n */\nexport const mergeUpdatesV2 = (updates, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n if (updates.length === 1) {\n return updates[0]\n }\n const updateDecoders = updates.map(update => new YDecoder(decoding.createDecoder(update)))\n let lazyStructDecoders = updateDecoders.map(decoder => new LazyStructReader(decoder, true))\n\n /**\n * @todo we don't need offset because we always slice before\n * @type {null | { struct: Item | GC | Skip, offset: number }}\n */\n let currWrite = null\n\n const updateEncoder = new YEncoder()\n // write structs lazily\n const lazyStructEncoder = new LazyStructWriter(updateEncoder)\n\n // Note: We need to ensure that all lazyStructDecoders are fully consumed\n // Note: Should merge document updates whenever possible - even from different updates\n // Note: Should handle that some operations cannot be applied yet ()\n\n while (true) {\n // Write higher clients first ⇒ sort by clientID & clock and remove decoders without content\n lazyStructDecoders = lazyStructDecoders.filter(dec => dec.curr !== null)\n lazyStructDecoders.sort(\n /** @type {function(any,any):number} */ (dec1, dec2) => {\n if (dec1.curr.id.client === dec2.curr.id.client) {\n const clockDiff = dec1.curr.id.clock - dec2.curr.id.clock\n if (clockDiff === 0) {\n // @todo remove references to skip since the structDecoders must filter Skips.\n return dec1.curr.constructor === dec2.curr.constructor\n ? 0\n : dec1.curr.constructor === Skip ? 1 : -1 // we are filtering skips anyway.\n } else {\n return clockDiff\n }\n } else {\n return dec2.curr.id.client - dec1.curr.id.client\n }\n }\n )\n if (lazyStructDecoders.length === 0) {\n break\n }\n const currDecoder = lazyStructDecoders[0]\n // write from currDecoder until the next operation is from another client or if filler-struct\n // then we need to reorder the decoders and find the next operation to write\n const firstClient = /** @type {Item | GC} */ (currDecoder.curr).id.client\n\n if (currWrite !== null) {\n let curr = /** @type {Item | GC | null} */ (currDecoder.curr)\n let iterated = false\n\n // iterate until we find something that we haven't written already\n // remember: first the high client-ids are written\n while (curr !== null && curr.id.clock + curr.length <= currWrite.struct.id.clock + currWrite.struct.length && curr.id.client >= currWrite.struct.id.client) {\n curr = currDecoder.next()\n iterated = true\n }\n if (\n curr === null || // current decoder is empty\n curr.id.client !== firstClient || // check whether there is another decoder that has has updates from `firstClient`\n (iterated && curr.id.clock > currWrite.struct.id.clock + currWrite.struct.length) // the above while loop was used and we are potentially missing updates\n ) {\n continue\n }\n\n if (firstClient !== currWrite.struct.id.client) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: curr, offset: 0 }\n currDecoder.next()\n } else {\n if (currWrite.struct.id.clock + currWrite.struct.length < curr.id.clock) {\n // @todo write currStruct & set currStruct = Skip(clock = currStruct.id.clock + currStruct.length, length = curr.id.clock - self.clock)\n if (currWrite.struct.constructor === Skip) {\n // extend existing skip\n currWrite.struct.length = curr.id.clock + curr.length - currWrite.struct.id.clock\n } else {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n const diff = curr.id.clock - currWrite.struct.id.clock - currWrite.struct.length\n /**\n * @type {Skip}\n */\n const struct = new Skip(createID(firstClient, currWrite.struct.id.clock + currWrite.struct.length), diff)\n currWrite = { struct, offset: 0 }\n }\n } else { // if (currWrite.struct.id.clock + currWrite.struct.length >= curr.id.clock) {\n const diff = currWrite.struct.id.clock + currWrite.struct.length - curr.id.clock\n if (diff > 0) {\n if (currWrite.struct.constructor === Skip) {\n // prefer to slice Skip because the other struct might contain more information\n currWrite.struct.length -= diff\n } else {\n curr = sliceStruct(curr, diff)\n }\n }\n if (!currWrite.struct.mergeWith(/** @type {any} */ (curr))) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: curr, offset: 0 }\n currDecoder.next()\n }\n }\n }\n } else {\n currWrite = { struct: /** @type {Item | GC} */ (currDecoder.curr), offset: 0 }\n currDecoder.next()\n }\n for (\n let next = currDecoder.curr;\n next !== null && next.id.client === firstClient && next.id.clock === currWrite.struct.id.clock + currWrite.struct.length && next.constructor !== Skip;\n next = currDecoder.next()\n ) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = { struct: next, offset: 0 }\n }\n }\n if (currWrite !== null) {\n writeStructToLazyStructWriter(lazyStructEncoder, currWrite.struct, currWrite.offset)\n currWrite = null\n }\n finishLazyStructWriting(lazyStructEncoder)\n\n const dss = updateDecoders.map(decoder => readDeleteSet(decoder))\n const ds = mergeDeleteSets(dss)\n writeDeleteSet(updateEncoder, ds)\n return updateEncoder.toUint8Array()\n}\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n * @param {typeof UpdateDecoderV1 | typeof UpdateDecoderV2} [YDecoder]\n * @param {typeof UpdateEncoderV1 | typeof UpdateEncoderV2} [YEncoder]\n */\nexport const diffUpdateV2 = (update, sv, YDecoder = UpdateDecoderV2, YEncoder = UpdateEncoderV2) => {\n const state = decodeStateVector(sv)\n const encoder = new YEncoder()\n const lazyStructWriter = new LazyStructWriter(encoder)\n const decoder = new YDecoder(decoding.createDecoder(update))\n const reader = new LazyStructReader(decoder, false)\n while (reader.curr) {\n const curr = reader.curr\n const currClient = curr.id.client\n const svClock = state.get(currClient) || 0\n if (reader.curr.constructor === Skip) {\n // the first written struct shouldn't be a skip\n reader.next()\n continue\n }\n if (curr.id.clock + curr.length > svClock) {\n writeStructToLazyStructWriter(lazyStructWriter, curr, math.max(svClock - curr.id.clock, 0))\n reader.next()\n while (reader.curr && reader.curr.id.client === currClient) {\n writeStructToLazyStructWriter(lazyStructWriter, reader.curr, 0)\n reader.next()\n }\n } else {\n // read until something new comes up\n while (reader.curr && reader.curr.id.client === currClient && reader.curr.id.clock + reader.curr.length <= svClock) {\n reader.next()\n }\n }\n }\n finishLazyStructWriting(lazyStructWriter)\n // write ds\n const ds = readDeleteSet(decoder)\n writeDeleteSet(encoder, ds)\n return encoder.toUint8Array()\n}\n\n/**\n * @param {Uint8Array} update\n * @param {Uint8Array} sv\n */\nexport const diffUpdate = (update, sv) => diffUpdateV2(update, sv, UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {LazyStructWriter} lazyWriter\n */\nconst flushLazyStructWriter = lazyWriter => {\n if (lazyWriter.written > 0) {\n lazyWriter.clientStructs.push({ written: lazyWriter.written, restEncoder: encoding.toUint8Array(lazyWriter.encoder.restEncoder) })\n lazyWriter.encoder.restEncoder = encoding.createEncoder()\n lazyWriter.written = 0\n }\n}\n\n/**\n * @param {LazyStructWriter} lazyWriter\n * @param {Item | GC} struct\n * @param {number} offset\n */\nconst writeStructToLazyStructWriter = (lazyWriter, struct, offset) => {\n // flush curr if we start another client\n if (lazyWriter.written > 0 && lazyWriter.currClient !== struct.id.client) {\n flushLazyStructWriter(lazyWriter)\n }\n if (lazyWriter.written === 0) {\n lazyWriter.currClient = struct.id.client\n // write next client\n lazyWriter.encoder.writeClient(struct.id.client)\n // write startClock\n encoding.writeVarUint(lazyWriter.encoder.restEncoder, struct.id.clock + offset)\n }\n struct.write(lazyWriter.encoder, offset)\n lazyWriter.written++\n}\n/**\n * Call this function when we collected all parts and want to\n * put all the parts together. After calling this method,\n * you can continue using the UpdateEncoder.\n *\n * @param {LazyStructWriter} lazyWriter\n */\nconst finishLazyStructWriting = (lazyWriter) => {\n flushLazyStructWriter(lazyWriter)\n\n // this is a fresh encoder because we called flushCurr\n const restEncoder = lazyWriter.encoder.restEncoder\n\n /**\n * Now we put all the fragments together.\n * This works similarly to `writeClientsStructs`\n */\n\n // write # states that were updated - i.e. the clients\n encoding.writeVarUint(restEncoder, lazyWriter.clientStructs.length)\n\n for (let i = 0; i < lazyWriter.clientStructs.length; i++) {\n const partStructs = lazyWriter.clientStructs[i]\n /**\n * Works similarly to `writeStructs`\n */\n // write # encoded structs\n encoding.writeVarUint(restEncoder, partStructs.written)\n // write the rest of the fragment\n encoding.writeUint8Array(restEncoder, partStructs.restEncoder)\n }\n}\n\n/**\n * @param {Uint8Array} update\n * @param {function(Item|GC|Skip):Item|GC|Skip} blockTransformer\n * @param {typeof UpdateDecoderV2 | typeof UpdateDecoderV1} YDecoder\n * @param {typeof UpdateEncoderV2 | typeof UpdateEncoderV1 } YEncoder\n */\nexport const convertUpdateFormat = (update, blockTransformer, YDecoder, YEncoder) => {\n const updateDecoder = new YDecoder(decoding.createDecoder(update))\n const lazyDecoder = new LazyStructReader(updateDecoder, false)\n const updateEncoder = new YEncoder()\n const lazyWriter = new LazyStructWriter(updateEncoder)\n for (let curr = lazyDecoder.curr; curr !== null; curr = lazyDecoder.next()) {\n writeStructToLazyStructWriter(lazyWriter, blockTransformer(curr), 0)\n }\n finishLazyStructWriting(lazyWriter)\n const ds = readDeleteSet(updateDecoder)\n writeDeleteSet(updateEncoder, ds)\n return updateEncoder.toUint8Array()\n}\n\n/**\n * @typedef {Object} ObfuscatorOptions\n * @property {boolean} [ObfuscatorOptions.formatting=true]\n * @property {boolean} [ObfuscatorOptions.subdocs=true]\n * @property {boolean} [ObfuscatorOptions.yxml=true] Whether to obfuscate nodeName / hookName\n */\n\n/**\n * @param {ObfuscatorOptions} obfuscator\n */\nconst createObfuscator = ({ formatting = true, subdocs = true, yxml = true } = {}) => {\n let i = 0\n const mapKeyCache = map.create()\n const nodeNameCache = map.create()\n const formattingKeyCache = map.create()\n const formattingValueCache = map.create()\n formattingValueCache.set(null, null) // end of a formatting range should always be the end of a formatting range\n /**\n * @param {Item|GC|Skip} block\n * @return {Item|GC|Skip}\n */\n return block => {\n switch (block.constructor) {\n case GC:\n case Skip:\n return block\n case Item: {\n const item = /** @type {Item} */ (block)\n const content = item.content\n switch (content.constructor) {\n case ContentDeleted:\n break\n case ContentType: {\n if (yxml) {\n const type = /** @type {ContentType} */ (content).type\n if (type instanceof YXmlElement) {\n type.nodeName = map.setIfUndefined(nodeNameCache, type.nodeName, () => 'node-' + i)\n }\n if (type instanceof YXmlHook) {\n type.hookName = map.setIfUndefined(nodeNameCache, type.hookName, () => 'hook-' + i)\n }\n }\n break\n }\n case ContentAny: {\n const c = /** @type {ContentAny} */ (content)\n c.arr = c.arr.map(() => i)\n break\n }\n case ContentBinary: {\n const c = /** @type {ContentBinary} */ (content)\n c.content = new Uint8Array([i])\n break\n }\n case ContentDoc: {\n const c = /** @type {ContentDoc} */ (content)\n if (subdocs) {\n c.opts = {}\n c.doc.guid = i + ''\n }\n break\n }\n case ContentEmbed: {\n const c = /** @type {ContentEmbed} */ (content)\n c.embed = {}\n break\n }\n case ContentFormat: {\n const c = /** @type {ContentFormat} */ (content)\n if (formatting) {\n c.key = map.setIfUndefined(formattingKeyCache, c.key, () => i + '')\n c.value = map.setIfUndefined(formattingValueCache, c.value, () => ({ i }))\n }\n break\n }\n case ContentJSON: {\n const c = /** @type {ContentJSON} */ (content)\n c.arr = c.arr.map(() => i)\n break\n }\n case ContentString: {\n const c = /** @type {ContentString} */ (content)\n c.str = string.repeat((i % 10) + '', c.str.length)\n break\n }\n default:\n // unknown content type\n error.unexpectedCase()\n }\n if (item.parentSub) {\n item.parentSub = map.setIfUndefined(mapKeyCache, item.parentSub, () => i + '')\n }\n i++\n return block\n }\n default:\n // unknown block-type\n error.unexpectedCase()\n }\n }\n}\n\n/**\n * This function obfuscates the content of a Yjs update. This is useful to share\n * buggy Yjs documents while significantly limiting the possibility that a\n * developer can on the user. Note that it might still be possible to deduce\n * some information by analyzing the \"structure\" of the document or by analyzing\n * the typing behavior using the CRDT-related metadata that is still kept fully\n * intact.\n *\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nexport const obfuscateUpdate = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV1, UpdateEncoderV1)\n\n/**\n * @param {Uint8Array} update\n * @param {ObfuscatorOptions} [opts]\n */\nexport const obfuscateUpdateV2 = (update, opts) => convertUpdateFormat(update, createObfuscator(opts), UpdateDecoderV2, UpdateEncoderV2)\n\n/**\n * @param {Uint8Array} update\n */\nexport const convertUpdateFormatV1ToV2 = update => convertUpdateFormat(update, f.id, UpdateDecoderV1, UpdateEncoderV2)\n\n/**\n * @param {Uint8Array} update\n */\nexport const convertUpdateFormatV2ToV1 = update => convertUpdateFormat(update, f.id, UpdateDecoderV2, UpdateEncoderV1)\n","import {\n isDeleted,\n Item, AbstractType, Transaction, AbstractStruct // eslint-disable-line\n} from '../internals.js'\n\nimport * as set from 'lib0/set'\nimport * as array from 'lib0/array'\nimport * as error from 'lib0/error'\n\nconst errorComputeChanges = 'You must not compute changes after the event-handler fired.'\n\n/**\n * @template {AbstractType} T\n * YEvent describes the changes on a YType.\n */\nexport class YEvent {\n /**\n * @param {T} target The changed type.\n * @param {Transaction} transaction\n */\n constructor (target, transaction) {\n /**\n * The type on which this event was created on.\n * @type {T}\n */\n this.target = target\n /**\n * The current target on which the observe callback is called.\n * @type {AbstractType}\n */\n this.currentTarget = target\n /**\n * The transaction that triggered this event.\n * @type {Transaction}\n */\n this.transaction = transaction\n /**\n * @type {Object|null}\n */\n this._changes = null\n /**\n * @type {null | Map}\n */\n this._keys = null\n /**\n * @type {null | Array<{ insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object }>}\n */\n this._delta = null\n /**\n * @type {Array|null}\n */\n this._path = null\n }\n\n /**\n * Computes the path from `y` to the changed type.\n *\n * @todo v14 should standardize on path: Array<{parent, index}> because that is easier to work with.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(dir => {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n */\n get path () {\n return this._path || (this._path = getPathTo(this.currentTarget, this.target))\n }\n\n /**\n * Check if a struct is deleted by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n deletes (struct) {\n return isDeleted(this.transaction.deleteSet, struct.id)\n }\n\n /**\n * @type {Map}\n */\n get keys () {\n if (this._keys === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const keys = new Map()\n const target = this.target\n const changed = /** @type Set */ (this.transaction.changed.get(target))\n changed.forEach(key => {\n if (key !== null) {\n const item = /** @type {Item} */ (target._map.get(key))\n /**\n * @type {'delete' | 'add' | 'update'}\n */\n let action\n let oldValue\n if (this.adds(item)) {\n let prev = item.left\n while (prev !== null && this.adds(prev)) {\n prev = prev.left\n }\n if (this.deletes(item)) {\n if (prev !== null && this.deletes(prev)) {\n action = 'delete'\n oldValue = array.last(prev.content.getContent())\n } else {\n return\n }\n } else {\n if (prev !== null && this.deletes(prev)) {\n action = 'update'\n oldValue = array.last(prev.content.getContent())\n } else {\n action = 'add'\n oldValue = undefined\n }\n }\n } else {\n if (this.deletes(item)) {\n action = 'delete'\n oldValue = array.last(/** @type {Item} */ item.content.getContent())\n } else {\n return // nop\n }\n }\n keys.set(key, { action, oldValue })\n }\n })\n this._keys = keys\n }\n return this._keys\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {Array<{insert?: string | Array | object | AbstractType, retain?: number, delete?: number, attributes?: Object}>}\n */\n get delta () {\n return this.changes.delta\n }\n\n /**\n * Check if a struct is added by this event.\n *\n * In contrast to change.deleted, this method also returns true if the struct was added and then deleted.\n *\n * @param {AbstractStruct} struct\n * @return {boolean}\n */\n adds (struct) {\n return struct.id.clock >= (this.transaction.beforeState.get(struct.id.client) || 0)\n }\n\n /**\n * This is a computed property. Note that this can only be safely computed during the\n * event call. Computing this property after other changes happened might result in\n * unexpected behavior (incorrect computation of deltas). A safe way to collect changes\n * is to store the `changes` or the `delta` object. Avoid storing the `transaction` object.\n *\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n let changes = this._changes\n if (changes === null) {\n if (this.transaction.doc._transactionCleanups.length === 0) {\n throw error.create(errorComputeChanges)\n }\n const target = this.target\n const added = set.create()\n const deleted = set.create()\n /**\n * @type {Array<{insert:Array}|{delete:number}|{retain:number}>}\n */\n const delta = []\n changes = {\n added,\n deleted,\n delta,\n keys: this.keys\n }\n const changed = /** @type Set */ (this.transaction.changed.get(target))\n if (changed.has(null)) {\n /**\n * @type {any}\n */\n let lastOp = null\n const packOp = () => {\n if (lastOp) {\n delta.push(lastOp)\n }\n }\n for (let item = target._start; item !== null; item = item.right) {\n if (item.deleted) {\n if (this.deletes(item) && !this.adds(item)) {\n if (lastOp === null || lastOp.delete === undefined) {\n packOp()\n lastOp = { delete: 0 }\n }\n lastOp.delete += item.length\n deleted.add(item)\n } // else nop\n } else {\n if (this.adds(item)) {\n if (lastOp === null || lastOp.insert === undefined) {\n packOp()\n lastOp = { insert: [] }\n }\n lastOp.insert = lastOp.insert.concat(item.content.getContent())\n added.add(item)\n } else {\n if (lastOp === null || lastOp.retain === undefined) {\n packOp()\n lastOp = { retain: 0 }\n }\n lastOp.retain += item.length\n }\n }\n }\n if (lastOp !== null && lastOp.retain === undefined) {\n packOp()\n }\n }\n this._changes = changes\n }\n return /** @type {any} */ (changes)\n }\n}\n\n/**\n * Compute the path from this type to the specified target.\n *\n * @example\n * // `child` should be accessible via `type.get(path[0]).get(path[1])..`\n * const path = type.getPathTo(child)\n * // assuming `type instanceof YArray`\n * console.log(path) // might look like => [2, 'key1']\n * child === type.get(path[0]).get(path[1])\n *\n * @param {AbstractType} parent\n * @param {AbstractType} child target\n * @return {Array} Path to the target\n *\n * @private\n * @function\n */\nconst getPathTo = (parent, child) => {\n const path = []\n while (child._item !== null && child !== parent) {\n if (child._item.parentSub !== null) {\n // parent is map-ish\n path.unshift(child._item.parentSub)\n } else {\n // parent is array-ish\n let i = 0\n let c = /** @type {AbstractType} */ (child._item.parent)._start\n while (c !== child._item && c !== null) {\n if (!c.deleted && c.countable) {\n i += c.length\n }\n c = c.right\n }\n path.unshift(i)\n }\n child = /** @type {AbstractType} */ (child._item.parent)\n }\n return path\n}\n","import {\n removeEventHandlerListener,\n callEventHandlerListeners,\n addEventHandlerListener,\n createEventHandler,\n getState,\n isVisible,\n ContentType,\n createID,\n ContentAny,\n ContentBinary,\n getItemCleanStart,\n ContentDoc, YText, YArray, UpdateEncoderV1, UpdateEncoderV2, Doc, Snapshot, Transaction, EventHandler, YEvent, Item, // eslint-disable-line\n} from '../internals.js'\n\nimport * as map from 'lib0/map'\nimport * as iterator from 'lib0/iterator'\nimport * as error from 'lib0/error'\nimport * as math from 'lib0/math'\nimport * as log from 'lib0/logging'\n\n/**\n * https://docs.yjs.dev/getting-started/working-with-shared-types#caveats\n */\nexport const warnPrematureAccess = () => { log.warn('Invalid access: Add Yjs type to a document before reading data.') }\n\nconst maxSearchMarker = 80\n\n/**\n * A unique timestamp that identifies each marker.\n *\n * Time is relative,.. this is more like an ever-increasing clock.\n *\n * @type {number}\n */\nlet globalSearchMarkerTimestamp = 0\n\nexport class ArraySearchMarker {\n /**\n * @param {Item} p\n * @param {number} index\n */\n constructor (p, index) {\n p.marker = true\n this.p = p\n this.index = index\n this.timestamp = globalSearchMarkerTimestamp++\n }\n}\n\n/**\n * @param {ArraySearchMarker} marker\n */\nconst refreshMarkerTimestamp = marker => { marker.timestamp = globalSearchMarkerTimestamp++ }\n\n/**\n * This is rather complex so this function is the only thing that should overwrite a marker\n *\n * @param {ArraySearchMarker} marker\n * @param {Item} p\n * @param {number} index\n */\nconst overwriteMarker = (marker, p, index) => {\n marker.p.marker = false\n marker.p = p\n p.marker = true\n marker.index = index\n marker.timestamp = globalSearchMarkerTimestamp++\n}\n\n/**\n * @param {Array} searchMarker\n * @param {Item} p\n * @param {number} index\n */\nconst markPosition = (searchMarker, p, index) => {\n if (searchMarker.length >= maxSearchMarker) {\n // override oldest marker (we don't want to create more objects)\n const marker = searchMarker.reduce((a, b) => a.timestamp < b.timestamp ? a : b)\n overwriteMarker(marker, p, index)\n return marker\n } else {\n // create new marker\n const pm = new ArraySearchMarker(p, index)\n searchMarker.push(pm)\n return pm\n }\n}\n\n/**\n * Search marker help us to find positions in the associative array faster.\n *\n * They speed up the process of finding a position without much bookkeeping.\n *\n * A maximum of `maxSearchMarker` objects are created.\n *\n * This function always returns a refreshed marker (updated timestamp)\n *\n * @param {AbstractType} yarray\n * @param {number} index\n */\nexport const findMarker = (yarray, index) => {\n if (yarray._start === null || index === 0 || yarray._searchMarker === null) {\n return null\n }\n const marker = yarray._searchMarker.length === 0 ? null : yarray._searchMarker.reduce((a, b) => math.abs(index - a.index) < math.abs(index - b.index) ? a : b)\n let p = yarray._start\n let pindex = 0\n if (marker !== null) {\n p = marker.p\n pindex = marker.index\n refreshMarkerTimestamp(marker) // we used it, we might need to use it again\n }\n // iterate to right if possible\n while (p.right !== null && pindex < index) {\n if (!p.deleted && p.countable) {\n if (index < pindex + p.length) {\n break\n }\n pindex += p.length\n }\n p = p.right\n }\n // iterate to left if necessary (might be that pindex > index)\n while (p.left !== null && pindex > index) {\n p = p.left\n if (!p.deleted && p.countable) {\n pindex -= p.length\n }\n }\n // we want to make sure that p can't be merged with left, because that would screw up everything\n // in that cas just return what we have (it is most likely the best marker anyway)\n // iterate to left until p can't be merged with left\n while (p.left !== null && p.left.id.client === p.id.client && p.left.id.clock + p.left.length === p.id.clock) {\n p = p.left\n if (!p.deleted && p.countable) {\n pindex -= p.length\n }\n }\n\n // @todo remove!\n // assure position\n // {\n // let start = yarray._start\n // let pos = 0\n // while (start !== p) {\n // if (!start.deleted && start.countable) {\n // pos += start.length\n // }\n // start = /** @type {Item} */ (start.right)\n // }\n // if (pos !== pindex) {\n // debugger\n // throw new Error('Gotcha position fail!')\n // }\n // }\n // if (marker) {\n // if (window.lengthes == null) {\n // window.lengthes = []\n // window.getLengthes = () => window.lengthes.sort((a, b) => a - b)\n // }\n // window.lengthes.push(marker.index - pindex)\n // console.log('distance', marker.index - pindex, 'len', p && p.parent.length)\n // }\n if (marker !== null && math.abs(marker.index - pindex) < /** @type {YText|YArray} */ (p.parent).length / maxSearchMarker) {\n // adjust existing marker\n overwriteMarker(marker, p, pindex)\n return marker\n } else {\n // create new marker\n return markPosition(yarray._searchMarker, p, pindex)\n }\n}\n\n/**\n * Update markers when a change happened.\n *\n * This should be called before doing a deletion!\n *\n * @param {Array} searchMarker\n * @param {number} index\n * @param {number} len If insertion, len is positive. If deletion, len is negative.\n */\nexport const updateMarkerChanges = (searchMarker, index, len) => {\n for (let i = searchMarker.length - 1; i >= 0; i--) {\n const m = searchMarker[i]\n if (len > 0) {\n /**\n * @type {Item|null}\n */\n let p = m.p\n p.marker = false\n // Ideally we just want to do a simple position comparison, but this will only work if\n // search markers don't point to deleted items for formats.\n // Iterate marker to prev undeleted countable position so we know what to do when updating a position\n while (p && (p.deleted || !p.countable)) {\n p = p.left\n if (p && !p.deleted && p.countable) {\n // adjust position. the loop should break now\n m.index -= p.length\n }\n }\n if (p === null || p.marker === true) {\n // remove search marker if updated position is null or if position is already marked\n searchMarker.splice(i, 1)\n continue\n }\n m.p = p\n p.marker = true\n }\n if (index < m.index || (len > 0 && index === m.index)) { // a simple index <= m.index check would actually suffice\n m.index = math.max(index, m.index + len)\n }\n }\n}\n\n/**\n * Accumulate all (list) children of a type and return them as an Array.\n *\n * @param {AbstractType} t\n * @return {Array}\n */\nexport const getTypeChildren = t => {\n t.doc ?? warnPrematureAccess()\n let s = t._start\n const arr = []\n while (s) {\n arr.push(s)\n s = s.right\n }\n return arr\n}\n\n/**\n * Call event listeners with an event. This will also add an event to all\n * parents (for `.observeDeep` handlers).\n *\n * @template EventType\n * @param {AbstractType} type\n * @param {Transaction} transaction\n * @param {EventType} event\n */\nexport const callTypeObservers = (type, transaction, event) => {\n const changedType = type\n const changedParentTypes = transaction.changedParentTypes\n while (true) {\n // @ts-ignore\n map.setIfUndefined(changedParentTypes, type, () => []).push(event)\n if (type._item === null) {\n break\n }\n type = /** @type {AbstractType} */ (type._item.parent)\n }\n callEventHandlerListeners(changedType._eH, event, transaction)\n}\n\n/**\n * @template EventType\n * Abstract Yjs Type class\n */\nexport class AbstractType {\n constructor () {\n /**\n * @type {Item|null}\n */\n this._item = null\n /**\n * @type {Map}\n */\n this._map = new Map()\n /**\n * @type {Item|null}\n */\n this._start = null\n /**\n * @type {Doc|null}\n */\n this.doc = null\n this._length = 0\n /**\n * Event handlers\n * @type {EventHandler}\n */\n this._eH = createEventHandler()\n /**\n * Deep event handlers\n * @type {EventHandler>,Transaction>}\n */\n this._dEH = createEventHandler()\n /**\n * @type {null | Array}\n */\n this._searchMarker = null\n }\n\n /**\n * @return {AbstractType|null}\n */\n get parent () {\n return this._item ? /** @type {AbstractType} */ (this._item.parent) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item|null} item\n */\n _integrate (y, item) {\n this.doc = y\n this._item = item\n }\n\n /**\n * @return {AbstractType}\n */\n _copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {AbstractType}\n */\n clone () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n */\n _write (_encoder) { }\n\n /**\n * The first non-deleted item\n */\n get _first () {\n let n = this._start\n while (n !== null && n.deleted) {\n n = n.right\n }\n return n\n }\n\n /**\n * Creates YEvent and calls all type observers.\n * Must be implemented by each type.\n *\n * @param {Transaction} transaction\n * @param {Set} _parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, _parentSubs) {\n if (!transaction.local && this._searchMarker) {\n this._searchMarker.length = 0\n }\n }\n\n /**\n * Observe all events that are created on this type.\n *\n * @param {function(EventType, Transaction):void} f Observer function\n */\n observe (f) {\n addEventHandlerListener(this._eH, f)\n }\n\n /**\n * Observe all events that are created by this type and its children.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n observeDeep (f) {\n addEventHandlerListener(this._dEH, f)\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(EventType,Transaction):void} f Observer function\n */\n unobserve (f) {\n removeEventHandlerListener(this._eH, f)\n }\n\n /**\n * Unregister an observer function.\n *\n * @param {function(Array>,Transaction):void} f Observer function\n */\n unobserveDeep (f) {\n removeEventHandlerListener(this._dEH, f)\n }\n\n /**\n * @abstract\n * @return {any}\n */\n toJSON () {}\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} start\n * @param {number} end\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListSlice = (type, start, end) => {\n type.doc ?? warnPrematureAccess()\n if (start < 0) {\n start = type._length + start\n }\n if (end < 0) {\n end = type._length + end\n }\n let len = end - start\n const cs = []\n let n = type._start\n while (n !== null && len > 0) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n if (c.length <= start) {\n start -= c.length\n } else {\n for (let i = start; i < c.length && len > 0; i++) {\n cs.push(c[i])\n len--\n }\n start = 0\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * @param {AbstractType} type\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListToArray = type => {\n type.doc ?? warnPrematureAccess()\n const cs = []\n let n = type._start\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i])\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * @param {AbstractType} type\n * @param {Snapshot} snapshot\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListToArraySnapshot = (type, snapshot) => {\n const cs = []\n let n = type._start\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n cs.push(c[i])\n }\n }\n n = n.right\n }\n return cs\n}\n\n/**\n * Executes a provided function on once on every element of this YArray.\n *\n * @param {AbstractType} type\n * @param {function(any,number,any):void} f A function to execute on every element of this YArray.\n *\n * @private\n * @function\n */\nexport const typeListForEach = (type, f) => {\n let index = 0\n let n = type._start\n type.doc ?? warnPrematureAccess()\n while (n !== null) {\n if (n.countable && !n.deleted) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type)\n }\n }\n n = n.right\n }\n}\n\n/**\n * @template C,R\n * @param {AbstractType} type\n * @param {function(C,number,AbstractType):R} f\n * @return {Array}\n *\n * @private\n * @function\n */\nexport const typeListMap = (type, f) => {\n /**\n * @type {Array}\n */\n const result = []\n typeListForEach(type, (c, i) => {\n result.push(f(c, i, type))\n })\n return result\n}\n\n/**\n * @param {AbstractType} type\n * @return {IterableIterator}\n *\n * @private\n * @function\n */\nexport const typeListCreateIterator = type => {\n let n = type._start\n /**\n * @type {Array|null}\n */\n let currentContent = null\n let currentContentIndex = 0\n return {\n [Symbol.iterator] () {\n return this\n },\n next: () => {\n // find some content\n if (currentContent === null) {\n while (n !== null && n.deleted) {\n n = n.right\n }\n // check if we reached the end, no need to check currentContent, because it does not exist\n if (n === null) {\n return {\n done: true,\n value: undefined\n }\n }\n // we found n, so we can set currentContent\n currentContent = n.content.getContent()\n currentContentIndex = 0\n n = n.right // we used the content of n, now iterate to next\n }\n const value = currentContent[currentContentIndex++]\n // check if we need to empty currentContent\n if (currentContent.length <= currentContentIndex) {\n currentContent = null\n }\n return {\n done: false,\n value\n }\n }\n }\n}\n\n/**\n * Executes a provided function on once on every element of this YArray.\n * Operates on a snapshotted state of the document.\n *\n * @param {AbstractType} type\n * @param {function(any,number,AbstractType):void} f A function to execute on every element of this YArray.\n * @param {Snapshot} snapshot\n *\n * @private\n * @function\n */\nexport const typeListForEachSnapshot = (type, f, snapshot) => {\n let index = 0\n let n = type._start\n while (n !== null) {\n if (n.countable && isVisible(n, snapshot)) {\n const c = n.content.getContent()\n for (let i = 0; i < c.length; i++) {\n f(c[i], index++, type)\n }\n }\n n = n.right\n }\n}\n\n/**\n * @param {AbstractType} type\n * @param {number} index\n * @return {any}\n *\n * @private\n * @function\n */\nexport const typeListGet = (type, index) => {\n type.doc ?? warnPrematureAccess()\n const marker = findMarker(type, index)\n let n = type._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n return n.content.getContent()[index]\n }\n index -= n.length\n }\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Item?} referenceItem\n * @param {Array|Array|boolean|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListInsertGenericsAfter = (transaction, parent, referenceItem, content) => {\n let left = referenceItem\n const doc = transaction.doc\n const ownClientId = doc.clientID\n const store = doc.store\n const right = referenceItem === null ? parent._start : referenceItem.right\n /**\n * @type {Array|number|null>}\n */\n let jsonContent = []\n const packJsonContent = () => {\n if (jsonContent.length > 0) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentAny(jsonContent))\n left.integrate(transaction, 0)\n jsonContent = []\n }\n }\n content.forEach(c => {\n if (c === null) {\n jsonContent.push(c)\n } else {\n switch (c.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n jsonContent.push(c)\n break\n default:\n packJsonContent()\n switch (c.constructor) {\n case Uint8Array:\n case ArrayBuffer:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentBinary(new Uint8Array(/** @type {Uint8Array} */ (c))))\n left.integrate(transaction, 0)\n break\n case Doc:\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentDoc(/** @type {Doc} */ (c)))\n left.integrate(transaction, 0)\n break\n default:\n if (c instanceof AbstractType) {\n left = new Item(createID(ownClientId, getState(store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentType(c))\n left.integrate(transaction, 0)\n } else {\n throw new Error('Unexpected content type in insert operation')\n }\n }\n }\n }\n })\n packJsonContent()\n}\n\nconst lengthExceeded = () => error.create('Length exceeded!')\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListInsertGenerics = (transaction, parent, index, content) => {\n if (index > parent._length) {\n throw lengthExceeded()\n }\n if (index === 0) {\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, index, content.length)\n }\n return typeListInsertGenericsAfter(transaction, parent, null, content)\n }\n const startIndex = index\n const marker = findMarker(parent, index)\n let n = parent._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n // we need to iterate one to the left so that the algorithm works\n if (index === 0) {\n // @todo refactor this as it actually doesn't consider formats\n n = n.prev // important! get the left undeleted item so that we can actually decrease index\n index += (n && n.countable && !n.deleted) ? n.length : 0\n }\n }\n for (; n !== null; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index <= n.length) {\n if (index < n.length) {\n // insert in-between\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index))\n }\n break\n }\n index -= n.length\n }\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, content.length)\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n}\n\n/**\n * Pushing content is special as we generally want to push after the last item. So we don't have to update\n * the serach marker.\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {Array|Array|number|null|string|Uint8Array>} content\n *\n * @private\n * @function\n */\nexport const typeListPushGenerics = (transaction, parent, content) => {\n // Use the marker with the highest index and iterate to the right.\n const marker = (parent._searchMarker || []).reduce((maxMarker, currMarker) => currMarker.index > maxMarker.index ? currMarker : maxMarker, { index: 0, p: parent._start })\n let n = marker.p\n if (n) {\n while (n.right) {\n n = n.right\n }\n }\n return typeListInsertGenericsAfter(transaction, parent, n, content)\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {number} length\n *\n * @private\n * @function\n */\nexport const typeListDelete = (transaction, parent, index, length) => {\n if (length === 0) { return }\n const startIndex = index\n const startLength = length\n const marker = findMarker(parent, index)\n let n = parent._start\n if (marker !== null) {\n n = marker.p\n index -= marker.index\n }\n // compute the first item to be deleted\n for (; n !== null && index > 0; n = n.right) {\n if (!n.deleted && n.countable) {\n if (index < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + index))\n }\n index -= n.length\n }\n }\n // delete all items until done\n while (length > 0 && n !== null) {\n if (!n.deleted) {\n if (length < n.length) {\n getItemCleanStart(transaction, createID(n.id.client, n.id.clock + length))\n }\n n.delete(transaction)\n length -= n.length\n }\n n = n.right\n }\n if (length > 0) {\n throw lengthExceeded()\n }\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, startIndex, -startLength + length /* in case we remove the above exception */)\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n *\n * @private\n * @function\n */\nexport const typeMapDelete = (transaction, parent, key) => {\n const c = parent._map.get(key)\n if (c !== undefined) {\n c.delete(transaction)\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Object|number|null|Array|string|Uint8Array|AbstractType} value\n *\n * @private\n * @function\n */\nexport const typeMapSet = (transaction, parent, key, value) => {\n const left = parent._map.get(key) || null\n const doc = transaction.doc\n const ownClientId = doc.clientID\n let content\n if (value == null) {\n content = new ContentAny([value])\n } else {\n switch (value.constructor) {\n case Number:\n case Object:\n case Boolean:\n case Array:\n case String:\n content = new ContentAny([value])\n break\n case Uint8Array:\n content = new ContentBinary(/** @type {Uint8Array} */ (value))\n break\n case Doc:\n content = new ContentDoc(/** @type {Doc} */ (value))\n break\n default:\n if (value instanceof AbstractType) {\n content = new ContentType(value)\n } else {\n throw new Error('Unexpected content type')\n }\n }\n }\n new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, null, null, parent, key, content).integrate(transaction, 0)\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nexport const typeMapGet = (parent, key) => {\n parent.doc ?? warnPrematureAccess()\n const val = parent._map.get(key)\n return val !== undefined && !val.deleted ? val.content.getContent()[val.length - 1] : undefined\n}\n\n/**\n * @param {AbstractType} parent\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nexport const typeMapGetAll = (parent) => {\n /**\n * @type {Object}\n */\n const res = {}\n parent.doc ?? warnPrematureAccess()\n parent._map.forEach((value, key) => {\n if (!value.deleted) {\n res[key] = value.content.getContent()[value.length - 1]\n }\n })\n return res\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @return {boolean}\n *\n * @private\n * @function\n */\nexport const typeMapHas = (parent, key) => {\n parent.doc ?? warnPrematureAccess()\n const val = parent._map.get(key)\n return val !== undefined && !val.deleted\n}\n\n/**\n * @param {AbstractType} parent\n * @param {string} key\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined}\n *\n * @private\n * @function\n */\nexport const typeMapGetSnapshot = (parent, key, snapshot) => {\n let v = parent._map.get(key) || null\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left\n }\n return v !== null && isVisible(v, snapshot) ? v.content.getContent()[v.length - 1] : undefined\n}\n\n/**\n * @param {AbstractType} parent\n * @param {Snapshot} snapshot\n * @return {Object|number|null|Array|string|Uint8Array|AbstractType|undefined>}\n *\n * @private\n * @function\n */\nexport const typeMapGetAllSnapshot = (parent, snapshot) => {\n /**\n * @type {Object}\n */\n const res = {}\n parent._map.forEach((value, key) => {\n /**\n * @type {Item|null}\n */\n let v = value\n while (v !== null && (!snapshot.sv.has(v.id.client) || v.id.clock >= (snapshot.sv.get(v.id.client) || 0))) {\n v = v.left\n }\n if (v !== null && isVisible(v, snapshot)) {\n res[key] = v.content.getContent()[v.length - 1]\n }\n })\n return res\n}\n\n/**\n * @param {AbstractType & { _map: Map }} type\n * @return {IterableIterator>}\n *\n * @private\n * @function\n */\nexport const createMapIterator = type => {\n type.doc ?? warnPrematureAccess()\n return iterator.iteratorFilter(type._map.entries(), /** @param {any} entry */ entry => !entry[1].deleted)\n}\n","/**\n * @module YArray\n */\n\nimport {\n YEvent,\n AbstractType,\n typeListGet,\n typeListToArray,\n typeListForEach,\n typeListCreateIterator,\n typeListInsertGenerics,\n typeListPushGenerics,\n typeListDelete,\n typeListMap,\n YArrayRefID,\n callTypeObservers,\n transact,\n warnPrematureAccess,\n ArraySearchMarker, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Transaction, Item // eslint-disable-line\n} from '../internals.js'\nimport { typeListSlice } from './AbstractType.js'\n\n/**\n * Event that describes the changes on a YArray\n * @template T\n * @extends YEvent>\n */\nexport class YArrayEvent extends YEvent {}\n\n/**\n * A shared Array implementation.\n * @template T\n * @extends AbstractType>\n * @implements {Iterable}\n */\nexport class YArray extends AbstractType {\n constructor () {\n super()\n /**\n * @type {Array?}\n * @private\n */\n this._prelimContent = []\n /**\n * @type {Array}\n */\n this._searchMarker = []\n }\n\n /**\n * Construct a new YArray containing the specified items.\n * @template {Object|Array|number|null|string|Uint8Array} T\n * @param {Array} items\n * @return {YArray}\n */\n static from (items) {\n /**\n * @type {YArray}\n */\n const a = new YArray()\n a.push(items)\n return a\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n this.insert(0, /** @type {Array} */ (this._prelimContent))\n this._prelimContent = null\n }\n\n /**\n * @return {YArray}\n */\n _copy () {\n return new YArray()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YArray}\n */\n clone () {\n /**\n * @type {YArray}\n */\n const arr = new YArray()\n arr.insert(0, this.toArray().map(el =>\n el instanceof AbstractType ? /** @type {typeof el} */ (el.clone()) : el\n ))\n return arr\n }\n\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._length\n }\n\n /**\n * Creates YArrayEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs)\n callTypeObservers(this, transaction, new YArrayEvent(this, transaction))\n }\n\n /**\n * Inserts new content at an index.\n *\n * Important: This function expects an array of content. Not just a content\n * object. The reason for this \"weirdness\" is that inserting several elements\n * is very efficient when it is done as a single operation.\n *\n * @example\n * // Insert character 'a' at position 0\n * yarray.insert(0, ['a'])\n * // Insert numbers 1, 2 at position 1\n * yarray.insert(1, [1, 2])\n *\n * @param {number} index The index to insert content at.\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, /** @type {any} */ (content))\n })\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, 0, ...content)\n }\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n *\n * @todo Use the following implementation in all types.\n */\n push (content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListPushGenerics(transaction, this, /** @type {any} */ (content))\n })\n } else {\n /** @type {Array} */ (this._prelimContent).push(...content)\n }\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content)\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} length The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length)\n })\n } else {\n /** @type {Array} */ (this._prelimContent).splice(index, length)\n }\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {T}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Returns a portion of this YArray into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Array}\n */\n toJSON () {\n return this.map(c => c instanceof AbstractType ? c.toJSON() : c)\n }\n\n /**\n * Returns an Array with the result of calling a provided function on every\n * element of this YArray.\n *\n * @template M\n * @param {function(T,number,YArray):M} f Function that produces an element of the new Array\n * @return {Array} A new array with each element being the result of the\n * callback function\n */\n map (f) {\n return typeListMap(this, /** @type {any} */ (f))\n }\n\n /**\n * Executes a provided function once on every element of this YArray.\n *\n * @param {function(T,number,YArray):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f)\n }\n\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return typeListCreateIterator(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YArrayRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nexport const readYArray = _decoder => new YArray()\n","/**\n * @module YMap\n */\n\nimport {\n YEvent,\n AbstractType,\n typeMapDelete,\n typeMapSet,\n typeMapGet,\n typeMapHas,\n createMapIterator,\n YMapRefID,\n callTypeObservers,\n transact,\n warnPrematureAccess,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Transaction, Item // eslint-disable-line\n} from '../internals.js'\n\nimport * as iterator from 'lib0/iterator'\n\n/**\n * @template T\n * @extends YEvent>\n * Event that describes the changes on a YMap.\n */\nexport class YMapEvent extends YEvent {\n /**\n * @param {YMap} ymap The YArray that changed.\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed.\n */\n constructor (ymap, transaction, subs) {\n super(ymap, transaction)\n this.keysChanged = subs\n }\n}\n\n/**\n * @template MapType\n * A shared Map implementation.\n *\n * @extends AbstractType>\n * @implements {Iterable<[string, MapType]>}\n */\nexport class YMap extends AbstractType {\n /**\n *\n * @param {Iterable=} entries - an optional iterable to initialize the YMap\n */\n constructor (entries) {\n super()\n /**\n * @type {Map?}\n * @private\n */\n this._prelimContent = null\n\n if (entries === undefined) {\n this._prelimContent = new Map()\n } else {\n this._prelimContent = new Map(entries)\n }\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;/** @type {Map} */ (this._prelimContent).forEach((value, key) => {\n this.set(key, value)\n })\n this._prelimContent = null\n }\n\n /**\n * @return {YMap}\n */\n _copy () {\n return new YMap()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YMap}\n */\n clone () {\n /**\n * @type {YMap}\n */\n const map = new YMap()\n this.forEach((value, key) => {\n map.set(key, value instanceof AbstractType ? /** @type {typeof value} */ (value.clone()) : value)\n })\n return map\n }\n\n /**\n * Creates YMapEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YMapEvent(this, transaction, parentSubs))\n }\n\n /**\n * Transforms this Shared Type to a JSON object.\n *\n * @return {Object}\n */\n toJSON () {\n this.doc ?? warnPrematureAccess()\n /**\n * @type {Object}\n */\n const map = {}\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n const v = item.content.getContent()[item.length - 1]\n map[key] = v instanceof AbstractType ? v.toJSON() : v\n }\n })\n return map\n }\n\n /**\n * Returns the size of the YMap (count of key/value pairs)\n *\n * @return {number}\n */\n get size () {\n return [...createMapIterator(this)].length\n }\n\n /**\n * Returns the keys for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n keys () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[0])\n }\n\n /**\n * Returns the values for each element in the YMap Type.\n *\n * @return {IterableIterator}\n */\n values () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => v[1].content.getContent()[v[1].length - 1])\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n entries () {\n return iterator.iteratorMap(createMapIterator(this), /** @param {any} v */ v => /** @type {any} */ ([v[0], v[1].content.getContent()[v[1].length - 1]]))\n }\n\n /**\n * Executes a provided function on once on every key-value pair.\n *\n * @param {function(MapType,string,YMap):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n this.doc ?? warnPrematureAccess()\n this._map.forEach((item, key) => {\n if (!item.deleted) {\n f(item.content.getContent()[item.length - 1], key, this)\n }\n })\n }\n\n /**\n * Returns an Iterator of [key, value] pairs\n *\n * @return {IterableIterator<[string, MapType]>}\n */\n [Symbol.iterator] () {\n return this.entries()\n }\n\n /**\n * Remove a specified element from this YMap.\n *\n * @param {string} key The key of the element to remove.\n */\n delete (key) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, key)\n })\n } else {\n /** @type {Map} */ (this._prelimContent).delete(key)\n }\n }\n\n /**\n * Adds or updates an element with a specified key and value.\n * @template {MapType} VAL\n *\n * @param {string} key The key of the element to add to this YMap\n * @param {VAL} value The value of the element to add\n * @return {VAL}\n */\n set (key, value) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, key, /** @type {any} */ (value))\n })\n } else {\n /** @type {Map} */ (this._prelimContent).set(key, value)\n }\n return value\n }\n\n /**\n * Returns a specified element from this YMap.\n *\n * @param {string} key\n * @return {MapType|undefined}\n */\n get (key) {\n return /** @type {any} */ (typeMapGet(this, key))\n }\n\n /**\n * Returns a boolean indicating whether the specified key exists or not.\n *\n * @param {string} key The key to test.\n * @return {boolean}\n */\n has (key) {\n return typeMapHas(this, key)\n }\n\n /**\n * Removes all elements from this YMap.\n */\n clear () {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n this.forEach(function (_value, key, map) {\n typeMapDelete(transaction, map, key)\n })\n })\n } else {\n /** @type {Map} */ (this._prelimContent).clear()\n }\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YMapRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n *\n * @private\n * @function\n */\nexport const readYMap = _decoder => new YMap()\n","/**\n * @module YText\n */\n\nimport {\n YEvent,\n AbstractType,\n getItemCleanStart,\n getState,\n isVisible,\n createID,\n YTextRefID,\n callTypeObservers,\n transact,\n ContentEmbed,\n GC,\n ContentFormat,\n ContentString,\n splitSnapshotAffectedStructs,\n iterateDeletedStructs,\n iterateStructs,\n findMarker,\n typeMapDelete,\n typeMapSet,\n typeMapGet,\n typeMapGetAll,\n updateMarkerChanges,\n ContentType,\n warnPrematureAccess,\n ArraySearchMarker, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, ID, Doc, Item, Snapshot, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as object from 'lib0/object'\nimport * as map from 'lib0/map'\nimport * as error from 'lib0/error'\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nconst equalAttrs = (a, b) => a === b || (typeof a === 'object' && typeof b === 'object' && a && b && object.equalFlat(a, b))\n\nexport class ItemTextListPosition {\n /**\n * @param {Item|null} left\n * @param {Item|null} right\n * @param {number} index\n * @param {Map} currentAttributes\n */\n constructor (left, right, index, currentAttributes) {\n this.left = left\n this.right = right\n this.index = index\n this.currentAttributes = currentAttributes\n }\n\n /**\n * Only call this if you know that this.right is defined\n */\n forward () {\n if (this.right === null) {\n error.unexpectedCase()\n }\n switch (this.right.content.constructor) {\n case ContentFormat:\n if (!this.right.deleted) {\n updateCurrentAttributes(this.currentAttributes, /** @type {ContentFormat} */ (this.right.content))\n }\n break\n default:\n if (!this.right.deleted) {\n this.index += this.right.length\n }\n break\n }\n this.left = this.right\n this.right = this.right.right\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} pos\n * @param {number} count steps to move forward\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findNextPosition = (transaction, pos, count) => {\n while (pos.right !== null && count > 0) {\n switch (pos.right.content.constructor) {\n case ContentFormat:\n if (!pos.right.deleted) {\n updateCurrentAttributes(pos.currentAttributes, /** @type {ContentFormat} */ (pos.right.content))\n }\n break\n default:\n if (!pos.right.deleted) {\n if (count < pos.right.length) {\n // split right\n getItemCleanStart(transaction, createID(pos.right.id.client, pos.right.id.clock + count))\n }\n pos.index += pos.right.length\n count -= pos.right.length\n }\n break\n }\n pos.left = pos.right\n pos.right = pos.right.right\n // pos.forward() - we don't forward because that would halve the performance because we already do the checks above\n }\n return pos\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {number} index\n * @param {boolean} useSearchMarker\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst findPosition = (transaction, parent, index, useSearchMarker) => {\n const currentAttributes = new Map()\n const marker = useSearchMarker ? findMarker(parent, index) : null\n if (marker) {\n const pos = new ItemTextListPosition(marker.p.left, marker.p, marker.index, currentAttributes)\n return findNextPosition(transaction, pos, index - marker.index)\n } else {\n const pos = new ItemTextListPosition(null, parent._start, 0, currentAttributes)\n return findNextPosition(transaction, pos, index)\n }\n}\n\n/**\n * Negate applied formats\n *\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Map} negatedAttributes\n *\n * @private\n * @function\n */\nconst insertNegatedAttributes = (transaction, parent, currPos, negatedAttributes) => {\n // check if we really need to remove attributes\n while (\n currPos.right !== null && (\n currPos.right.deleted === true || (\n currPos.right.content.constructor === ContentFormat &&\n equalAttrs(negatedAttributes.get(/** @type {ContentFormat} */ (currPos.right.content).key), /** @type {ContentFormat} */ (currPos.right.content).value)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n negatedAttributes.delete(/** @type {ContentFormat} */ (currPos.right.content).key)\n }\n currPos.forward()\n }\n const doc = transaction.doc\n const ownClientId = doc.clientID\n negatedAttributes.forEach((val, key) => {\n const left = currPos.left\n const right = currPos.right\n const nextFormat = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val))\n nextFormat.integrate(transaction, 0)\n currPos.right = nextFormat\n currPos.forward()\n })\n}\n\n/**\n * @param {Map} currentAttributes\n * @param {ContentFormat} format\n *\n * @private\n * @function\n */\nconst updateCurrentAttributes = (currentAttributes, format) => {\n const { key, value } = format\n if (value === null) {\n currentAttributes.delete(key)\n } else {\n currentAttributes.set(key, value)\n }\n}\n\n/**\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst minimizeAttributeChanges = (currPos, attributes) => {\n // go right while attributes[right.key] === right.value (or right is deleted)\n while (true) {\n if (currPos.right === null) {\n break\n } else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] ?? null, /** @type {ContentFormat} */ (currPos.right.content).value))) {\n //\n } else {\n break\n }\n currPos.forward()\n }\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {Object} attributes\n * @return {Map}\n *\n * @private\n * @function\n **/\nconst insertAttributes = (transaction, parent, currPos, attributes) => {\n const doc = transaction.doc\n const ownClientId = doc.clientID\n const negatedAttributes = new Map()\n // insert format-start items\n for (const key in attributes) {\n const val = attributes[key]\n const currentVal = currPos.currentAttributes.get(key) ?? null\n if (!equalAttrs(currentVal, val)) {\n // save negated attribute (set null if currentVal undefined)\n negatedAttributes.set(key, currentVal)\n const { left, right } = currPos\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, new ContentFormat(key, val))\n currPos.right.integrate(transaction, 0)\n currPos.forward()\n }\n }\n return negatedAttributes\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {string|object|AbstractType} text\n * @param {Object} attributes\n *\n * @private\n * @function\n **/\nconst insertText = (transaction, parent, currPos, text, attributes) => {\n currPos.currentAttributes.forEach((_val, key) => {\n if (attributes[key] === undefined) {\n attributes[key] = null\n }\n })\n const doc = transaction.doc\n const ownClientId = doc.clientID\n minimizeAttributeChanges(currPos, attributes)\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes)\n // insert content\n const content = text.constructor === String ? new ContentString(/** @type {string} */ (text)) : (text instanceof AbstractType ? new ContentType(text) : new ContentEmbed(text))\n let { left, right, index } = currPos\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, content.getLength())\n }\n right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), left, left && left.lastId, right, right && right.id, parent, null, content)\n right.integrate(transaction, 0)\n currPos.right = right\n currPos.index = index\n currPos.forward()\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes)\n}\n\n/**\n * @param {Transaction} transaction\n * @param {AbstractType} parent\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @param {Object} attributes\n *\n * @private\n * @function\n */\nconst formatText = (transaction, parent, currPos, length, attributes) => {\n const doc = transaction.doc\n const ownClientId = doc.clientID\n minimizeAttributeChanges(currPos, attributes)\n const negatedAttributes = insertAttributes(transaction, parent, currPos, attributes)\n // iterate until first non-format or null is found\n // delete all formats with attributes[format.key] != null\n // also check the attributes after the first non-format as we do not want to insert redundant negated attributes there\n // eslint-disable-next-line no-labels\n iterationLoop: while (\n currPos.right !== null &&\n (length > 0 ||\n (\n negatedAttributes.size > 0 &&\n (currPos.right.deleted || currPos.right.content.constructor === ContentFormat)\n )\n )\n ) {\n if (!currPos.right.deleted) {\n switch (currPos.right.content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (currPos.right.content)\n const attr = attributes[key]\n if (attr !== undefined) {\n if (equalAttrs(attr, value)) {\n negatedAttributes.delete(key)\n } else {\n if (length === 0) {\n // no need to further extend negatedAttributes\n // eslint-disable-next-line no-labels\n break iterationLoop\n }\n negatedAttributes.set(key, value)\n }\n currPos.right.delete(transaction)\n } else {\n currPos.currentAttributes.set(key, value)\n }\n break\n }\n default:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length))\n }\n length -= currPos.right.length\n break\n }\n }\n currPos.forward()\n }\n // Quill just assumes that the editor starts with a newline and that it always\n // ends with a newline. We only insert that newline when a new newline is\n // inserted - i.e when length is bigger than type.length\n if (length > 0) {\n let newlines = ''\n for (; length > 0; length--) {\n newlines += '\\n'\n }\n currPos.right = new Item(createID(ownClientId, getState(doc.store, ownClientId)), currPos.left, currPos.left && currPos.left.lastId, currPos.right, currPos.right && currPos.right.id, parent, null, new ContentString(newlines))\n currPos.right.integrate(transaction, 0)\n currPos.forward()\n }\n insertNegatedAttributes(transaction, parent, currPos, negatedAttributes)\n}\n\n/**\n * Call this function after string content has been deleted in order to\n * clean up formatting Items.\n *\n * @param {Transaction} transaction\n * @param {Item} start\n * @param {Item|null} curr exclusive end, automatically iterates to the next Content Item\n * @param {Map} startAttributes\n * @param {Map} currAttributes\n * @return {number} The amount of formatting Items deleted.\n *\n * @function\n */\nconst cleanupFormattingGap = (transaction, start, curr, startAttributes, currAttributes) => {\n /**\n * @type {Item|null}\n */\n let end = start\n /**\n * @type {Map}\n */\n const endFormats = map.create()\n while (end && (!end.countable || end.deleted)) {\n if (!end.deleted && end.content.constructor === ContentFormat) {\n const cf = /** @type {ContentFormat} */ (end.content)\n endFormats.set(cf.key, cf)\n }\n end = end.right\n }\n let cleanups = 0\n let reachedCurr = false\n while (start !== end) {\n if (curr === start) {\n reachedCurr = true\n }\n if (!start.deleted) {\n const content = start.content\n switch (content.constructor) {\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (content)\n const startAttrValue = startAttributes.get(key) ?? null\n if (endFormats.get(key) !== content || startAttrValue === value) {\n // Either this format is overwritten or it is not necessary because the attribute already existed.\n start.delete(transaction)\n cleanups++\n if (!reachedCurr && (currAttributes.get(key) ?? null) === value && startAttrValue !== value) {\n if (startAttrValue === null) {\n currAttributes.delete(key)\n } else {\n currAttributes.set(key, startAttrValue)\n }\n }\n }\n if (!reachedCurr && !start.deleted) {\n updateCurrentAttributes(currAttributes, /** @type {ContentFormat} */ (content))\n }\n break\n }\n }\n }\n start = /** @type {Item} */ (start.right)\n }\n return cleanups\n}\n\n/**\n * @param {Transaction} transaction\n * @param {Item | null} item\n */\nconst cleanupContextlessFormattingGap = (transaction, item) => {\n // iterate until item.right is null or content\n while (item && item.right && (item.right.deleted || !item.right.countable)) {\n item = item.right\n }\n const attrs = new Set()\n // iterate back until a content item is found\n while (item && (item.deleted || !item.countable)) {\n if (!item.deleted && item.content.constructor === ContentFormat) {\n const key = /** @type {ContentFormat} */ (item.content).key\n if (attrs.has(key)) {\n item.delete(transaction)\n } else {\n attrs.add(key)\n }\n }\n item = item.left\n }\n}\n\n/**\n * This function is experimental and subject to change / be removed.\n *\n * Ideally, we don't need this function at all. Formatting attributes should be cleaned up\n * automatically after each change. This function iterates twice over the complete YText type\n * and removes unnecessary formatting attributes. This is also helpful for testing.\n *\n * This function won't be exported anymore as soon as there is confidence that the YText type works as intended.\n *\n * @param {YText} type\n * @return {number} How many formatting attributes have been cleaned up.\n */\nexport const cleanupYTextFormatting = type => {\n let res = 0\n transact(/** @type {Doc} */ (type.doc), transaction => {\n let start = /** @type {Item} */ (type._start)\n let end = type._start\n let startAttributes = map.create()\n const currentAttributes = map.copy(startAttributes)\n while (end) {\n if (end.deleted === false) {\n switch (end.content.constructor) {\n case ContentFormat:\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (end.content))\n break\n default:\n res += cleanupFormattingGap(transaction, start, end, startAttributes, currentAttributes)\n startAttributes = map.copy(currentAttributes)\n start = end\n break\n }\n }\n end = end.right\n }\n })\n return res\n}\n\n/**\n * This will be called by the transction once the event handlers are called to potentially cleanup\n * formatting attributes.\n *\n * @param {Transaction} transaction\n */\nexport const cleanupYTextAfterTransaction = transaction => {\n /**\n * @type {Set}\n */\n const needFullCleanup = new Set()\n // check if another formatting item was inserted\n const doc = transaction.doc\n for (const [client, afterClock] of transaction.afterState.entries()) {\n const clock = transaction.beforeState.get(client) || 0\n if (afterClock === clock) {\n continue\n }\n iterateStructs(transaction, /** @type {Array} */ (doc.store.clients.get(client)), clock, afterClock, item => {\n if (\n !item.deleted && /** @type {Item} */ (item).content.constructor === ContentFormat && item.constructor !== GC\n ) {\n needFullCleanup.add(/** @type {any} */ (item).parent)\n }\n })\n }\n // cleanup in a new transaction\n transact(doc, (t) => {\n iterateDeletedStructs(transaction, transaction.deleteSet, item => {\n if (item instanceof GC || !(/** @type {YText} */ (item.parent)._hasFormatting) || needFullCleanup.has(/** @type {YText} */ (item.parent))) {\n return\n }\n const parent = /** @type {YText} */ (item.parent)\n if (item.content.constructor === ContentFormat) {\n needFullCleanup.add(parent)\n } else {\n // If no formatting attribute was inserted or deleted, we can make due with contextless\n // formatting cleanups.\n // Contextless: it is not necessary to compute currentAttributes for the affected position.\n cleanupContextlessFormattingGap(t, item)\n }\n })\n // If a formatting item was inserted, we simply clean the whole type.\n // We need to compute currentAttributes for the current position anyway.\n for (const yText of needFullCleanup) {\n cleanupYTextFormatting(yText)\n }\n })\n}\n\n/**\n * @param {Transaction} transaction\n * @param {ItemTextListPosition} currPos\n * @param {number} length\n * @return {ItemTextListPosition}\n *\n * @private\n * @function\n */\nconst deleteText = (transaction, currPos, length) => {\n const startLength = length\n const startAttrs = map.copy(currPos.currentAttributes)\n const start = currPos.right\n while (length > 0 && currPos.right !== null) {\n if (currPos.right.deleted === false) {\n switch (currPos.right.content.constructor) {\n case ContentType:\n case ContentEmbed:\n case ContentString:\n if (length < currPos.right.length) {\n getItemCleanStart(transaction, createID(currPos.right.id.client, currPos.right.id.clock + length))\n }\n length -= currPos.right.length\n currPos.right.delete(transaction)\n break\n }\n }\n currPos.forward()\n }\n if (start) {\n cleanupFormattingGap(transaction, start, currPos.right, startAttrs, currPos.currentAttributes)\n }\n const parent = /** @type {AbstractType} */ (/** @type {Item} */ (currPos.left || currPos.right).parent)\n if (parent._searchMarker) {\n updateMarkerChanges(parent._searchMarker, currPos.index, -startLength + length)\n }\n return currPos\n}\n\n/**\n * The Quill Delta format represents changes on a text document with\n * formatting information. For mor information visit {@link https://quilljs.com/docs/delta/|Quill Delta}\n *\n * @example\n * {\n * ops: [\n * { insert: 'Gandalf', attributes: { bold: true } },\n * { insert: ' the ' },\n * { insert: 'Grey', attributes: { color: '#cccccc' } }\n * ]\n * }\n *\n */\n\n/**\n * Attributes that can be assigned to a selection of text.\n *\n * @example\n * {\n * bold: true,\n * font-size: '40px'\n * }\n *\n * @typedef {Object} TextAttributes\n */\n\n/**\n * @extends YEvent\n * Event that describes the changes on a YText type.\n */\nexport class YTextEvent extends YEvent {\n /**\n * @param {YText} ytext\n * @param {Transaction} transaction\n * @param {Set} subs The keys that changed\n */\n constructor (ytext, transaction, subs) {\n super(ytext, transaction)\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.keysChanged = new Set()\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true\n } else {\n this.keysChanged.add(sub)\n }\n })\n }\n\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string, delete?:number, retain?:number}>}}\n */\n get changes () {\n if (this._changes === null) {\n /**\n * @type {{added:Set,deleted:Set,keys:Map,delta:Array<{insert?:Array|string|AbstractType|object, delete?:number, retain?:number}>}}\n */\n const changes = {\n keys: this.keys,\n delta: this.delta,\n added: new Set(),\n deleted: new Set()\n }\n this._changes = changes\n }\n return /** @type {any} */ (this._changes)\n }\n\n /**\n * Compute the changes in the delta format.\n * A {@link https://quilljs.com/docs/delta/|Quill Delta}) that represents the changes on the document.\n *\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n *\n * @public\n */\n get delta () {\n if (this._delta === null) {\n const y = /** @type {Doc} */ (this.target.doc)\n /**\n * @type {Array<{insert?:string|object|AbstractType, delete?:number, retain?:number, attributes?: Object}>}\n */\n const delta = []\n transact(y, transaction => {\n const currentAttributes = new Map() // saves all current attributes for insert\n const oldAttributes = new Map()\n let item = this.target._start\n /**\n * @type {string?}\n */\n let action = null\n /**\n * @type {Object}\n */\n const attributes = {} // counts added or removed new attributes for retain\n /**\n * @type {string|object}\n */\n let insert = ''\n let retain = 0\n let deleteLen = 0\n const addOp = () => {\n if (action !== null) {\n /**\n * @type {any}\n */\n let op = null\n switch (action) {\n case 'delete':\n if (deleteLen > 0) {\n op = { delete: deleteLen }\n }\n deleteLen = 0\n break\n case 'insert':\n if (typeof insert === 'object' || insert.length > 0) {\n op = { insert }\n if (currentAttributes.size > 0) {\n op.attributes = {}\n currentAttributes.forEach((value, key) => {\n if (value !== null) {\n op.attributes[key] = value\n }\n })\n }\n }\n insert = ''\n break\n case 'retain':\n if (retain > 0) {\n op = { retain }\n if (!object.isEmpty(attributes)) {\n op.attributes = object.assign({}, attributes)\n }\n }\n retain = 0\n break\n }\n if (op) delta.push(op)\n action = null\n }\n }\n while (item !== null) {\n switch (item.content.constructor) {\n case ContentType:\n case ContentEmbed:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n addOp()\n action = 'insert'\n insert = item.content.getContent()[0]\n addOp()\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp()\n action = 'delete'\n }\n deleteLen += 1\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp()\n action = 'retain'\n }\n retain += 1\n }\n break\n case ContentString:\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n if (action !== 'insert') {\n addOp()\n action = 'insert'\n }\n insert += /** @type {ContentString} */ (item.content).str\n }\n } else if (this.deletes(item)) {\n if (action !== 'delete') {\n addOp()\n action = 'delete'\n }\n deleteLen += item.length\n } else if (!item.deleted) {\n if (action !== 'retain') {\n addOp()\n action = 'retain'\n }\n retain += item.length\n }\n break\n case ContentFormat: {\n const { key, value } = /** @type {ContentFormat} */ (item.content)\n if (this.adds(item)) {\n if (!this.deletes(item)) {\n const curVal = currentAttributes.get(key) ?? null\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp()\n }\n if (equalAttrs(value, (oldAttributes.get(key) ?? null))) {\n delete attributes[key]\n } else {\n attributes[key] = value\n }\n } else if (value !== null) {\n item.delete(transaction)\n }\n }\n } else if (this.deletes(item)) {\n oldAttributes.set(key, value)\n const curVal = currentAttributes.get(key) ?? null\n if (!equalAttrs(curVal, value)) {\n if (action === 'retain') {\n addOp()\n }\n attributes[key] = curVal\n }\n } else if (!item.deleted) {\n oldAttributes.set(key, value)\n const attr = attributes[key]\n if (attr !== undefined) {\n if (!equalAttrs(attr, value)) {\n if (action === 'retain') {\n addOp()\n }\n if (value === null) {\n delete attributes[key]\n } else {\n attributes[key] = value\n }\n } else if (attr !== null) { // this will be cleaned up automatically by the contextless cleanup function\n item.delete(transaction)\n }\n }\n }\n if (!item.deleted) {\n if (action === 'insert') {\n addOp()\n }\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (item.content))\n }\n break\n }\n }\n item = item.right\n }\n addOp()\n while (delta.length > 0) {\n const lastOp = delta[delta.length - 1]\n if (lastOp.retain !== undefined && lastOp.attributes === undefined) {\n // retain delta's if they don't assign attributes\n delta.pop()\n } else {\n break\n }\n }\n })\n this._delta = delta\n }\n return /** @type {any} */ (this._delta)\n }\n}\n\n/**\n * Type that represents text with formatting information.\n *\n * This type replaces y-richtext as this implementation is able to handle\n * block formats (format information on a paragraph), embeds (complex elements\n * like pictures and videos), and text formats (**bold**, *italic*).\n *\n * @extends AbstractType\n */\nexport class YText extends AbstractType {\n /**\n * @param {String} [string] The initial value of the YText.\n */\n constructor (string) {\n super()\n /**\n * Array of pending operations on this type\n * @type {Array?}\n */\n this._pending = string !== undefined ? [() => this.insert(0, string)] : []\n /**\n * @type {Array|null}\n */\n this._searchMarker = []\n /**\n * Whether this YText contains formatting attributes.\n * This flag is updated when a formatting item is integrated (see ContentFormat.integrate)\n */\n this._hasFormatting = false\n }\n\n /**\n * Number of characters of this text type.\n *\n * @type {number}\n */\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._length\n }\n\n /**\n * @param {Doc} y\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n try {\n /** @type {Array} */ (this._pending).forEach(f => f())\n } catch (e) {\n console.error(e)\n }\n this._pending = null\n }\n\n _copy () {\n return new YText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YText}\n */\n clone () {\n const text = new YText()\n text.applyDelta(this.toDelta())\n return text\n }\n\n /**\n * Creates YTextEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n super._callObserver(transaction, parentSubs)\n const event = new YTextEvent(this, transaction, parentSubs)\n callTypeObservers(this, transaction, event)\n // If a remote change happened, we try to cleanup potential formatting duplicates.\n if (!transaction.local && this._hasFormatting) {\n transaction._needFormattingCleanup = true\n }\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @public\n */\n toString () {\n this.doc ?? warnPrematureAccess()\n let str = ''\n /**\n * @type {Item|null}\n */\n let n = this._start\n while (n !== null) {\n if (!n.deleted && n.countable && n.content.constructor === ContentString) {\n str += /** @type {ContentString} */ (n.content).str\n }\n n = n.right\n }\n return str\n }\n\n /**\n * Returns the unformatted string representation of this YText type.\n *\n * @return {string}\n * @public\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Apply a {@link Delta} on this shared YText type.\n *\n * @param {any} delta The changes to apply on this element.\n * @param {object} opts\n * @param {boolean} [opts.sanitize] Sanitize input delta. Removes ending newlines if set to true.\n *\n *\n * @public\n */\n applyDelta (delta, { sanitize = true } = {}) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const currPos = new ItemTextListPosition(null, this._start, 0, new Map())\n for (let i = 0; i < delta.length; i++) {\n const op = delta[i]\n if (op.insert !== undefined) {\n // Quill assumes that the content starts with an empty paragraph.\n // Yjs/Y.Text assumes that it starts empty. We always hide that\n // there is a newline at the end of the content.\n // If we omit this step, clients will see a different number of\n // paragraphs, but nothing bad will happen.\n const ins = (!sanitize && typeof op.insert === 'string' && i === delta.length - 1 && currPos.right === null && op.insert.slice(-1) === '\\n') ? op.insert.slice(0, -1) : op.insert\n if (typeof ins !== 'string' || ins.length > 0) {\n insertText(transaction, this, currPos, ins, op.attributes || {})\n }\n } else if (op.retain !== undefined) {\n formatText(transaction, this, currPos, op.retain, op.attributes || {})\n } else if (op.delete !== undefined) {\n deleteText(transaction, currPos, op.delete)\n }\n }\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.applyDelta(delta))\n }\n }\n\n /**\n * Returns the Delta representation of this YText type.\n *\n * @param {Snapshot} [snapshot]\n * @param {Snapshot} [prevSnapshot]\n * @param {function('removed' | 'added', ID):any} [computeYChange]\n * @return {any} The Delta representation of this type.\n *\n * @public\n */\n toDelta (snapshot, prevSnapshot, computeYChange) {\n this.doc ?? warnPrematureAccess()\n /**\n * @type{Array}\n */\n const ops = []\n const currentAttributes = new Map()\n const doc = /** @type {Doc} */ (this.doc)\n let str = ''\n let n = this._start\n function packStr () {\n if (str.length > 0) {\n // pack str with attributes to ops\n /**\n * @type {Object}\n */\n const attributes = {}\n let addAttributes = false\n currentAttributes.forEach((value, key) => {\n addAttributes = true\n attributes[key] = value\n })\n /**\n * @type {Object}\n */\n const op = { insert: str }\n if (addAttributes) {\n op.attributes = attributes\n }\n ops.push(op)\n str = ''\n }\n }\n const computeDelta = () => {\n while (n !== null) {\n if (isVisible(n, snapshot) || (prevSnapshot !== undefined && isVisible(n, prevSnapshot))) {\n switch (n.content.constructor) {\n case ContentString: {\n const cur = currentAttributes.get('ychange')\n if (snapshot !== undefined && !isVisible(n, snapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'removed') {\n packStr()\n currentAttributes.set('ychange', computeYChange ? computeYChange('removed', n.id) : { type: 'removed' })\n }\n } else if (prevSnapshot !== undefined && !isVisible(n, prevSnapshot)) {\n if (cur === undefined || cur.user !== n.id.client || cur.type !== 'added') {\n packStr()\n currentAttributes.set('ychange', computeYChange ? computeYChange('added', n.id) : { type: 'added' })\n }\n } else if (cur !== undefined) {\n packStr()\n currentAttributes.delete('ychange')\n }\n str += /** @type {ContentString} */ (n.content).str\n break\n }\n case ContentType:\n case ContentEmbed: {\n packStr()\n /**\n * @type {Object}\n */\n const op = {\n insert: n.content.getContent()[0]\n }\n if (currentAttributes.size > 0) {\n const attrs = /** @type {Object} */ ({})\n op.attributes = attrs\n currentAttributes.forEach((value, key) => {\n attrs[key] = value\n })\n }\n ops.push(op)\n break\n }\n case ContentFormat:\n if (isVisible(n, snapshot)) {\n packStr()\n updateCurrentAttributes(currentAttributes, /** @type {ContentFormat} */ (n.content))\n }\n break\n }\n }\n n = n.right\n }\n packStr()\n }\n if (snapshot || prevSnapshot) {\n // snapshots are merged again after the transaction, so we need to keep the\n // transaction alive until we are done\n transact(doc, transaction => {\n if (snapshot) {\n splitSnapshotAffectedStructs(transaction, snapshot)\n }\n if (prevSnapshot) {\n splitSnapshotAffectedStructs(transaction, prevSnapshot)\n }\n computeDelta()\n }, 'cleanup')\n } else {\n computeDelta()\n }\n return ops\n }\n\n /**\n * Insert text at a given index.\n *\n * @param {number} index The index at which to start inserting.\n * @param {String} text The text to insert at the specified position.\n * @param {TextAttributes} [attributes] Optionally define some formatting\n * information to apply on the inserted\n * Text.\n * @public\n */\n insert (index, text, attributes) {\n if (text.length <= 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes)\n if (!attributes) {\n attributes = {}\n // @ts-ignore\n pos.currentAttributes.forEach((v, k) => { attributes[k] = v })\n }\n insertText(transaction, this, pos, text, attributes)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insert(index, text, attributes))\n }\n }\n\n /**\n * Inserts an embed at a index.\n *\n * @param {number} index The index to insert the embed at.\n * @param {Object | AbstractType} embed The Object that represents the embed.\n * @param {TextAttributes} [attributes] Attribute information to apply on the\n * embed\n *\n * @public\n */\n insertEmbed (index, embed, attributes) {\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, !attributes)\n insertText(transaction, this, pos, embed, attributes || {})\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.insertEmbed(index, embed, attributes || {}))\n }\n }\n\n /**\n * Deletes text starting from an index.\n *\n * @param {number} index Index at which to start deleting.\n * @param {number} length The number of characters to remove. Defaults to 1.\n *\n * @public\n */\n delete (index, length) {\n if (length === 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n deleteText(transaction, findPosition(transaction, this, index, true), length)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.delete(index, length))\n }\n }\n\n /**\n * Assigns properties to a range of text.\n *\n * @param {number} index The position where to start formatting.\n * @param {number} length The amount of characters to assign properties to.\n * @param {TextAttributes} attributes Attribute information to apply on the\n * text.\n *\n * @public\n */\n format (index, length, attributes) {\n if (length === 0) {\n return\n }\n const y = this.doc\n if (y !== null) {\n transact(y, transaction => {\n const pos = findPosition(transaction, this, index, false)\n if (pos.right === null) {\n return\n }\n formatText(transaction, this, pos, length, attributes)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.format(index, length, attributes))\n }\n }\n\n /**\n * Removes an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.removeAttribute(attributeName))\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that is to be set.\n * @param {any} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue)\n })\n } else {\n /** @type {Array} */ (this._pending).push(() => this.setAttribute(attributeName, attributeValue))\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @param {String} attributeName The attribute name that identifies the\n * queried value.\n * @return {any} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @note Xml-Text nodes don't have attributes. You can use this feature to assign properties to complete text-blocks.\n *\n * @return {Object} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes () {\n return typeMapGetAll(this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YTextRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YText}\n *\n * @private\n * @function\n */\nexport const readYText = _decoder => new YText()\n","/**\n * @module YXml\n */\n\nimport {\n YXmlEvent,\n YXmlElement,\n AbstractType,\n typeListMap,\n typeListForEach,\n typeListInsertGenerics,\n typeListInsertGenericsAfter,\n typeListDelete,\n typeListToArray,\n YXmlFragmentRefID,\n callTypeObservers,\n transact,\n typeListGet,\n typeListSlice,\n warnPrematureAccess,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, ContentType, Transaction, Item, YXmlText, YXmlHook // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\nimport * as array from 'lib0/array'\n\n/**\n * Define the elements to which a set of CSS queries apply.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors|CSS_Selectors}\n *\n * @example\n * query = '.classSelector'\n * query = 'nodeSelector'\n * query = '#idSelector'\n *\n * @typedef {string} CSS_Selector\n */\n\n/**\n * Dom filter function.\n *\n * @callback domFilter\n * @param {string} nodeName The nodeName of the element\n * @param {Map} attributes The map of attributes.\n * @return {boolean} Whether to include the Dom node in the YXmlElement.\n */\n\n/**\n * Represents a subset of the nodes of a YXmlElement / YXmlFragment and a\n * position within them.\n *\n * Can be created with {@link YXmlFragment#createTreeWalker}\n *\n * @public\n * @implements {Iterable}\n */\nexport class YXmlTreeWalker {\n /**\n * @param {YXmlFragment | YXmlElement} root\n * @param {function(AbstractType):boolean} [f]\n */\n constructor (root, f = () => true) {\n this._filter = f\n this._root = root\n /**\n * @type {Item}\n */\n this._currentNode = /** @type {Item} */ (root._start)\n this._firstCall = true\n root.doc ?? warnPrematureAccess()\n }\n\n [Symbol.iterator] () {\n return this\n }\n\n /**\n * Get the next node.\n *\n * @return {IteratorResult} The next node.\n *\n * @public\n */\n next () {\n /**\n * @type {Item|null}\n */\n let n = this._currentNode\n let type = n && n.content && /** @type {any} */ (n.content).type\n if (n !== null && (!this._firstCall || n.deleted || !this._filter(type))) { // if first call, we check if we can use the first item\n do {\n type = /** @type {any} */ (n.content).type\n if (!n.deleted && (type.constructor === YXmlElement || type.constructor === YXmlFragment) && type._start !== null) {\n // walk down in the tree\n n = type._start\n } else {\n // walk right or up in the tree\n while (n !== null) {\n if (n.right !== null) {\n n = n.right\n break\n } else if (n.parent === this._root) {\n n = null\n } else {\n n = /** @type {AbstractType} */ (n.parent)._item\n }\n }\n }\n } while (n !== null && (n.deleted || !this._filter(/** @type {ContentType} */ (n.content).type)))\n }\n this._firstCall = false\n if (n === null) {\n // @ts-ignore\n return { value: undefined, done: true }\n }\n this._currentNode = n\n return { value: /** @type {any} */ (n.content).type, done: false }\n }\n}\n\n/**\n * Represents a list of {@link YXmlElement}.and {@link YXmlText} types.\n * A YxmlFragment is similar to a {@link YXmlElement}, but it does not have a\n * nodeName and it does not have attributes. Though it can be bound to a DOM\n * element - in this case the attributes and the nodeName are not shared.\n *\n * @public\n * @extends AbstractType\n */\nexport class YXmlFragment extends AbstractType {\n constructor () {\n super()\n /**\n * @type {Array|null}\n */\n this._prelimContent = []\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get firstChild () {\n const first = this._first\n return first ? first.content.getContent()[0] : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n this.insert(0, /** @type {Array} */ (this._prelimContent))\n this._prelimContent = null\n }\n\n _copy () {\n return new YXmlFragment()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlFragment}\n */\n clone () {\n const el = new YXmlFragment()\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item))\n return el\n }\n\n get length () {\n this.doc ?? warnPrematureAccess()\n return this._prelimContent === null ? this._length : this._prelimContent.length\n }\n\n /**\n * Create a subtree of childNodes.\n *\n * @example\n * const walker = elem.createTreeWalker(dom => dom.nodeName === 'div')\n * for (let node in walker) {\n * // `node` is a div node\n * nop(node)\n * }\n *\n * @param {function(AbstractType):boolean} filter Function that is called on each child element and\n * returns a Boolean indicating whether the child\n * is to be included in the subtree.\n * @return {YXmlTreeWalker} A subtree and a position within it.\n *\n * @public\n */\n createTreeWalker (filter) {\n return new YXmlTreeWalker(this, filter)\n }\n\n /**\n * Returns the first YXmlElement that matches the query.\n * Similar to DOM's {@link querySelector}.\n *\n * Query support:\n * - tagname\n * TODO:\n * - id\n * - attribute\n *\n * @param {CSS_Selector} query The query on the children.\n * @return {YXmlElement|YXmlText|YXmlHook|null} The first element that matches the query or null.\n *\n * @public\n */\n querySelector (query) {\n query = query.toUpperCase()\n // @ts-ignore\n const iterator = new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query)\n const next = iterator.next()\n if (next.done) {\n return null\n } else {\n return next.value\n }\n }\n\n /**\n * Returns all YXmlElements that match the query.\n * Similar to Dom's {@link querySelectorAll}.\n *\n * @todo Does not yet support all queries. Currently only query by tagName.\n *\n * @param {CSS_Selector} query The query on the children\n * @return {Array} The elements that match this query.\n *\n * @public\n */\n querySelectorAll (query) {\n query = query.toUpperCase()\n // @ts-ignore\n return array.from(new YXmlTreeWalker(this, element => element.nodeName && element.nodeName.toUpperCase() === query))\n }\n\n /**\n * Creates YXmlEvent and calls observers.\n *\n * @param {Transaction} transaction\n * @param {Set} parentSubs Keys changed on this type. `null` if list was modified.\n */\n _callObserver (transaction, parentSubs) {\n callTypeObservers(this, transaction, new YXmlEvent(this, parentSubs, transaction))\n }\n\n /**\n * Get the string representation of all the children of this YXmlFragment.\n *\n * @return {string} The string representation of all children.\n */\n toString () {\n return typeListMap(this, xml => xml.toString()).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const fragment = _document.createDocumentFragment()\n if (binding !== undefined) {\n binding._createAssociation(fragment, this)\n }\n typeListForEach(this, xmlType => {\n fragment.insertBefore(xmlType.toDOM(_document, hooks, binding), null)\n })\n return fragment\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {number} index The index to insert content at\n * @param {Array} content The array of content\n */\n insert (index, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListInsertGenerics(transaction, this, index, content)\n })\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, 0, ...content)\n }\n }\n\n /**\n * Inserts new content at an index.\n *\n * @example\n * // Insert character 'a' at position 0\n * xml.insert(0, [new Y.XmlText('text')])\n *\n * @param {null|Item|YXmlElement|YXmlText} ref The index to insert content at\n * @param {Array} content The array of content\n */\n insertAfter (ref, content) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n const refItem = (ref && ref instanceof AbstractType) ? ref._item : ref\n typeListInsertGenericsAfter(transaction, this, refItem, content)\n })\n } else {\n const pc = /** @type {Array} */ (this._prelimContent)\n const index = ref === null ? 0 : pc.findIndex(el => el === ref) + 1\n if (index === 0 && ref !== null) {\n throw error.create('Reference item not found')\n }\n pc.splice(index, 0, ...content)\n }\n }\n\n /**\n * Deletes elements starting from an index.\n *\n * @param {number} index Index at which to start deleting elements\n * @param {number} [length=1] The number of elements to remove. Defaults to 1.\n */\n delete (index, length = 1) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeListDelete(transaction, this, index, length)\n })\n } else {\n // @ts-ignore _prelimContent is defined because this is not yet integrated\n this._prelimContent.splice(index, length)\n }\n }\n\n /**\n * Transforms this YArray to a JavaScript Array.\n *\n * @return {Array}\n */\n toArray () {\n return typeListToArray(this)\n }\n\n /**\n * Appends content to this YArray.\n *\n * @param {Array} content Array of content to append.\n */\n push (content) {\n this.insert(this.length, content)\n }\n\n /**\n * Prepends content to this YArray.\n *\n * @param {Array} content Array of content to prepend.\n */\n unshift (content) {\n this.insert(0, content)\n }\n\n /**\n * Returns the i-th element from a YArray.\n *\n * @param {number} index The index of the element to return from the YArray\n * @return {YXmlElement|YXmlText}\n */\n get (index) {\n return typeListGet(this, index)\n }\n\n /**\n * Returns a portion of this YXmlFragment into a JavaScript Array selected\n * from start to end (end not included).\n *\n * @param {number} [start]\n * @param {number} [end]\n * @return {Array}\n */\n slice (start = 0, end = this.length) {\n return typeListSlice(this, start, end)\n }\n\n /**\n * Executes a provided function on once on every child element.\n *\n * @param {function(YXmlElement|YXmlText,number, typeof self):void} f A function to execute on every element of this YArray.\n */\n forEach (f) {\n typeListForEach(this, f)\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlFragmentRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} _decoder\n * @return {YXmlFragment}\n *\n * @private\n * @function\n */\nexport const readYXmlFragment = _decoder => new YXmlFragment()\n","import * as object from 'lib0/object'\n\nimport {\n YXmlFragment,\n transact,\n typeMapDelete,\n typeMapHas,\n typeMapSet,\n typeMapGet,\n typeMapGetAll,\n typeMapGetAllSnapshot,\n typeListForEach,\n YXmlElementRefID,\n Snapshot, YXmlText, ContentType, AbstractType, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Doc, Item // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @typedef {Object|number|null|Array|string|Uint8Array|AbstractType} ValueTypes\n */\n\n/**\n * An YXmlElement imitates the behavior of a\n * https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element\n *\n * * An YXmlElement has attributes (key value pairs)\n * * An YXmlElement has childElements that must inherit from YXmlElement\n *\n * @template {{ [key: string]: ValueTypes }} [KV={ [key: string]: string }]\n */\nexport class YXmlElement extends YXmlFragment {\n constructor (nodeName = 'UNDEFINED') {\n super()\n this.nodeName = nodeName\n /**\n * @type {Map|null}\n */\n this._prelimAttrs = new Map()\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * Integrate this type into the Yjs instance.\n *\n * * Save this struct in the os\n * * This type is sent to other client\n * * Observer functions are fired\n *\n * @param {Doc} y The Yjs instance\n * @param {Item} item\n */\n _integrate (y, item) {\n super._integrate(y, item)\n ;(/** @type {Map} */ (this._prelimAttrs)).forEach((value, key) => {\n this.setAttribute(key, value)\n })\n this._prelimAttrs = null\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n *\n * @return {YXmlElement}\n */\n _copy () {\n return new YXmlElement(this.nodeName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlElement}\n */\n clone () {\n /**\n * @type {YXmlElement}\n */\n const el = new YXmlElement(this.nodeName)\n const attrs = this.getAttributes()\n object.forEach(attrs, (value, key) => {\n if (typeof value === 'string') {\n el.setAttribute(key, value)\n }\n })\n // @ts-ignore\n el.insert(0, this.toArray().map(item => item instanceof AbstractType ? item.clone() : item))\n return el\n }\n\n /**\n * Returns the XML serialization of this YXmlElement.\n * The attributes are ordered by attribute-name, so you can easily use this\n * method to compare YXmlElements\n *\n * @return {string} The string representation of this type.\n *\n * @public\n */\n toString () {\n const attrs = this.getAttributes()\n const stringBuilder = []\n const keys = []\n for (const key in attrs) {\n keys.push(key)\n }\n keys.sort()\n const keysLen = keys.length\n for (let i = 0; i < keysLen; i++) {\n const key = keys[i]\n stringBuilder.push(key + '=\"' + attrs[key] + '\"')\n }\n const nodeName = this.nodeName.toLocaleLowerCase()\n const attrsString = stringBuilder.length > 0 ? ' ' + stringBuilder.join(' ') : ''\n return `<${nodeName}${attrsString}>${super.toString()}`\n }\n\n /**\n * Removes an attribute from this YXmlElement.\n *\n * @param {string} attributeName The attribute name that is to be removed.\n *\n * @public\n */\n removeAttribute (attributeName) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapDelete(transaction, this, attributeName)\n })\n } else {\n /** @type {Map} */ (this._prelimAttrs).delete(attributeName)\n }\n }\n\n /**\n * Sets or updates an attribute.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that is to be set.\n * @param {KV[KEY]} attributeValue The attribute value that is to be set.\n *\n * @public\n */\n setAttribute (attributeName, attributeValue) {\n if (this.doc !== null) {\n transact(this.doc, transaction => {\n typeMapSet(transaction, this, attributeName, attributeValue)\n })\n } else {\n /** @type {Map} */ (this._prelimAttrs).set(attributeName, attributeValue)\n }\n }\n\n /**\n * Returns an attribute value that belongs to the attribute name.\n *\n * @template {keyof KV & string} KEY\n *\n * @param {KEY} attributeName The attribute name that identifies the\n * queried value.\n * @return {KV[KEY]|undefined} The queried attribute value.\n *\n * @public\n */\n getAttribute (attributeName) {\n return /** @type {any} */ (typeMapGet(this, attributeName))\n }\n\n /**\n * Returns whether an attribute exists\n *\n * @param {string} attributeName The attribute name to check for existence.\n * @return {boolean} whether the attribute exists.\n *\n * @public\n */\n hasAttribute (attributeName) {\n return /** @type {any} */ (typeMapHas(this, attributeName))\n }\n\n /**\n * Returns all attribute name/value pairs in a JSON Object.\n *\n * @param {Snapshot} [snapshot]\n * @return {{ [Key in Extract]?: KV[Key]}} A JSON Object that describes the attributes.\n *\n * @public\n */\n getAttributes (snapshot) {\n return /** @type {any} */ (snapshot ? typeMapGetAllSnapshot(this, snapshot) : typeMapGetAll(this))\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks={}] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Node} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const dom = _document.createElement(this.nodeName)\n const attrs = this.getAttributes()\n for (const key in attrs) {\n const value = attrs[key]\n if (typeof value === 'string') {\n dom.setAttribute(key, value)\n }\n }\n typeListForEach(this, yxml => {\n dom.appendChild(yxml.toDOM(_document, hooks, binding))\n })\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlElementRefID)\n encoder.writeKey(this.nodeName)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlElement}\n *\n * @function\n */\nexport const readYXmlElement = decoder => new YXmlElement(decoder.readKey())\n","import {\n YEvent,\n YXmlText, YXmlElement, YXmlFragment, Transaction // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @extends YEvent\n * An Event that describes changes on a YXml Element or Yxml Fragment\n */\nexport class YXmlEvent extends YEvent {\n /**\n * @param {YXmlElement|YXmlText|YXmlFragment} target The target on which the event is created.\n * @param {Set} subs The set of changed attributes. `null` is included if the\n * child list changed.\n * @param {Transaction} transaction The transaction instance with wich the\n * change was created.\n */\n constructor (target, subs, transaction) {\n super(target, transaction)\n /**\n * Whether the children changed.\n * @type {Boolean}\n * @private\n */\n this.childListChanged = false\n /**\n * Set of all changed attributes.\n * @type {Set}\n */\n this.attributesChanged = new Set()\n subs.forEach((sub) => {\n if (sub === null) {\n this.childListChanged = true\n } else {\n this.attributesChanged.add(sub)\n }\n })\n }\n}\n","import {\n YMap,\n YXmlHookRefID,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2 // eslint-disable-line\n} from '../internals.js'\n\n/**\n * You can manage binding to a custom type with YXmlHook.\n *\n * @extends {YMap}\n */\nexport class YXmlHook extends YMap {\n /**\n * @param {string} hookName nodeName of the Dom Node.\n */\n constructor (hookName) {\n super()\n /**\n * @type {string}\n */\n this.hookName = hookName\n }\n\n /**\n * Creates an Item with the same effect as this Item (without position effect)\n */\n _copy () {\n return new YXmlHook(this.hookName)\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlHook}\n */\n clone () {\n const el = new YXmlHook(this.hookName)\n this.forEach((value, key) => {\n el.set(key, value)\n })\n return el\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlElement.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object.} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type\n * @return {Element} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks = {}, binding) {\n const hook = hooks[this.hookName]\n let dom\n if (hook !== undefined) {\n dom = hook.createDom(this)\n } else {\n dom = document.createElement(this.hookName)\n }\n dom.setAttribute('data-yjs-hook', this.hookName)\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlHookRefID)\n encoder.writeKey(this.hookName)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlHook}\n *\n * @private\n * @function\n */\nexport const readYXmlHook = decoder =>\n new YXmlHook(decoder.readKey())\n","import {\n YText,\n YXmlTextRefID,\n ContentType, YXmlElement, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, // eslint-disable-line\n} from '../internals.js'\n\n/**\n * Represents text in a Dom Element. In the future this type will also handle\n * simple formatting information like bold and italic.\n */\nexport class YXmlText extends YText {\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get nextSibling () {\n const n = this._item ? this._item.next : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n /**\n * @type {YXmlElement|YXmlText|null}\n */\n get prevSibling () {\n const n = this._item ? this._item.prev : null\n return n ? /** @type {YXmlElement|YXmlText} */ (/** @type {ContentType} */ (n.content).type) : null\n }\n\n _copy () {\n return new YXmlText()\n }\n\n /**\n * Makes a copy of this data type that can be included somewhere else.\n *\n * Note that the content is only readable _after_ it has been included somewhere in the Ydoc.\n *\n * @return {YXmlText}\n */\n clone () {\n const text = new YXmlText()\n text.applyDelta(this.toDelta())\n return text\n }\n\n /**\n * Creates a Dom Element that mirrors this YXmlText.\n *\n * @param {Document} [_document=document] The document object (you must define\n * this when calling this method in\n * nodejs)\n * @param {Object} [hooks] Optional property to customize how hooks\n * are presented in the DOM\n * @param {any} [binding] You should not set this property. This is\n * used if DomBinding wants to create a\n * association to the created DOM type.\n * @return {Text} The {@link https://developer.mozilla.org/en-US/docs/Web/API/Element|Dom Element}\n *\n * @public\n */\n toDOM (_document = document, hooks, binding) {\n const dom = _document.createTextNode(this.toString())\n if (binding !== undefined) {\n binding._createAssociation(dom, this)\n }\n return dom\n }\n\n toString () {\n // @ts-ignore\n return this.toDelta().map(delta => {\n const nestedNodes = []\n for (const nodeName in delta.attributes) {\n const attrs = []\n for (const key in delta.attributes[nodeName]) {\n attrs.push({ key, value: delta.attributes[nodeName][key] })\n }\n // sort attributes to get a unique order\n attrs.sort((a, b) => a.key < b.key ? -1 : 1)\n nestedNodes.push({ nodeName, attrs })\n }\n // sort node order to get a unique order\n nestedNodes.sort((a, b) => a.nodeName < b.nodeName ? -1 : 1)\n // now convert to dom string\n let str = ''\n for (let i = 0; i < nestedNodes.length; i++) {\n const node = nestedNodes[i]\n str += `<${node.nodeName}`\n for (let j = 0; j < node.attrs.length; j++) {\n const attr = node.attrs[j]\n str += ` ${attr.key}=\"${attr.value}\"`\n }\n str += '>'\n }\n str += delta.insert\n for (let i = nestedNodes.length - 1; i >= 0; i--) {\n str += ``\n }\n return str\n }).join('')\n }\n\n /**\n * @return {string}\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n */\n _write (encoder) {\n encoder.writeTypeRef(YXmlTextRefID)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {YXmlText}\n *\n * @private\n * @function\n */\nexport const readYXmlText = decoder => new YXmlText()\n","import {\n UpdateEncoderV1, UpdateEncoderV2, ID, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\nexport class AbstractStruct {\n /**\n * @param {ID} id\n * @param {number} length\n */\n constructor (id, length) {\n this.id = id\n this.length = length\n }\n\n /**\n * @type {boolean}\n */\n get deleted () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Merge this struct with the item to the right.\n * This method is already assuming that `this.id.clock + this.length === this.id.clock`.\n * Also this method does *not* remove right from StructStore!\n * @param {AbstractStruct} right\n * @return {boolean} wether this merged with right\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n * @param {number} encodingRef\n */\n write (encoder, offset, encodingRef) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n throw error.methodUnimplemented()\n }\n}\n","import {\n AbstractStruct,\n addStruct,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\n\nexport const structGCRefNumber = 0\n\n/**\n * @private\n */\nexport class GC extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {GC} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset\n this.length -= offset\n }\n addStruct(transaction.doc.store, this)\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structGCRefNumber)\n encoder.writeLen(this.length - offset)\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\nexport class ContentBinary {\n /**\n * @param {Uint8Array} content\n */\n constructor (content) {\n this.content = content\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.content]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentBinary}\n */\n copy () {\n return new ContentBinary(this.content)\n }\n\n /**\n * @param {number} offset\n * @return {ContentBinary}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentBinary} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeBuf(this.content)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 3\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentBinary}\n */\nexport const readContentBinary = decoder => new ContentBinary(decoder.readBuf())\n","import {\n addToDeleteSet,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nexport class ContentDeleted {\n /**\n * @param {number} len\n */\n constructor (len) {\n this.len = len\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.len\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentDeleted}\n */\n copy () {\n return new ContentDeleted(this.len)\n }\n\n /**\n * @param {number} offset\n * @return {ContentDeleted}\n */\n splice (offset) {\n const right = new ContentDeleted(this.len - offset)\n this.len = offset\n return right\n }\n\n /**\n * @param {ContentDeleted} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.len += right.len\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n addToDeleteSet(transaction.deleteSet, item.id.client, item.id.clock, this.len)\n item.markDeleted()\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeLen(this.len - offset)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 1\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2 } decoder\n * @return {ContentDeleted}\n */\nexport const readContentDeleted = decoder => new ContentDeleted(decoder.readLen())\n","import {\n Doc, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, Item // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @param {string} guid\n * @param {Object} opts\n */\nconst createDocFromOpts = (guid, opts) => new Doc({ guid, ...opts, shouldLoad: opts.shouldLoad || opts.autoLoad || false })\n\n/**\n * @private\n */\nexport class ContentDoc {\n /**\n * @param {Doc} doc\n */\n constructor (doc) {\n if (doc._item) {\n console.error('This document was already integrated as a sub-document. You should create a second instance instead with the same guid.')\n }\n /**\n * @type {Doc}\n */\n this.doc = doc\n /**\n * @type {any}\n */\n const opts = {}\n this.opts = opts\n if (!doc.gc) {\n opts.gc = false\n }\n if (doc.autoLoad) {\n opts.autoLoad = true\n }\n if (doc.meta !== null) {\n opts.meta = doc.meta\n }\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.doc]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentDoc}\n */\n copy () {\n return new ContentDoc(createDocFromOpts(this.doc.guid, this.opts))\n }\n\n /**\n * @param {number} offset\n * @return {ContentDoc}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentDoc} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n // this needs to be reflected in doc.destroy as well\n this.doc._item = item\n transaction.subdocsAdded.add(this.doc)\n if (this.doc.shouldLoad) {\n transaction.subdocsLoaded.add(this.doc)\n }\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (transaction.subdocsAdded.has(this.doc)) {\n transaction.subdocsAdded.delete(this.doc)\n } else {\n transaction.subdocsRemoved.add(this.doc)\n }\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) { }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(this.doc.guid)\n encoder.writeAny(this.opts)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 9\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentDoc}\n */\nexport const readContentDoc = decoder => new ContentDoc(createDocFromOpts(decoder.readString(), decoder.readAny()))\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Item, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @private\n */\nexport class ContentEmbed {\n /**\n * @param {Object} embed\n */\n constructor (embed) {\n this.embed = embed\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.embed]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentEmbed}\n */\n copy () {\n return new ContentEmbed(this.embed)\n }\n\n /**\n * @param {number} offset\n * @return {ContentEmbed}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentEmbed} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeJSON(this.embed)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 5\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentEmbed}\n */\nexport const readContentEmbed = decoder => new ContentEmbed(decoder.readJSON())\n","import {\n YText, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Item, StructStore, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @private\n */\nexport class ContentFormat {\n /**\n * @param {string} key\n * @param {Object} value\n */\n constructor (key, value) {\n this.key = key\n this.value = value\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return []\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return false\n }\n\n /**\n * @return {ContentFormat}\n */\n copy () {\n return new ContentFormat(this.key, this.value)\n }\n\n /**\n * @param {number} _offset\n * @return {ContentFormat}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentFormat} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n return false\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} item\n */\n integrate (_transaction, item) {\n // @todo searchmarker are currently unsupported for rich text documents\n const p = /** @type {YText} */ (item.parent)\n p._searchMarker = null\n p._hasFormatting = true\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeKey(this.key)\n encoder.writeJSON(this.value)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 6\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentFormat}\n */\nexport const readContentFormat = decoder => new ContentFormat(decoder.readKey(), decoder.readJSON())\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @private\n */\nexport class ContentJSON {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentJSON}\n */\n copy () {\n return new ContentJSON(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentJSON}\n */\n splice (offset) {\n const right = new ContentJSON(this.arr.slice(offset))\n this.arr = this.arr.slice(0, offset)\n return right\n }\n\n /**\n * @param {ContentJSON} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr)\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length\n encoder.writeLen(len - offset)\n for (let i = offset; i < len; i++) {\n const c = this.arr[i]\n encoder.writeString(c === undefined ? 'undefined' : JSON.stringify(c))\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 2\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentJSON}\n */\nexport const readContentJSON = decoder => {\n const len = decoder.readLen()\n const cs = []\n for (let i = 0; i < len; i++) {\n const c = decoder.readString()\n if (c === 'undefined') {\n cs.push(undefined)\n } else {\n cs.push(JSON.parse(c))\n }\n }\n return new ContentJSON(cs)\n}\n","import {\n UpdateEncoderV1, UpdateEncoderV2, UpdateDecoderV1, UpdateDecoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\nimport * as env from 'lib0/environment'\nimport * as object from 'lib0/object'\n\nconst isDevMode = env.getVariable('node_env') === 'development'\n\nexport class ContentAny {\n /**\n * @param {Array} arr\n */\n constructor (arr) {\n /**\n * @type {Array}\n */\n this.arr = arr\n isDevMode && object.deepFreeze(arr)\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.arr.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.arr\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentAny}\n */\n copy () {\n return new ContentAny(this.arr)\n }\n\n /**\n * @param {number} offset\n * @return {ContentAny}\n */\n splice (offset) {\n const right = new ContentAny(this.arr.slice(offset))\n this.arr = this.arr.slice(0, offset)\n return right\n }\n\n /**\n * @param {ContentAny} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.arr = this.arr.concat(right.arr)\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n const len = this.arr.length\n encoder.writeLen(len - offset)\n for (let i = offset; i < len; i++) {\n const c = this.arr[i]\n encoder.writeAny(c)\n }\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 8\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentAny}\n */\nexport const readContentAny = decoder => {\n const len = decoder.readLen()\n const cs = []\n for (let i = 0; i < len; i++) {\n cs.push(decoder.readAny())\n }\n return new ContentAny(cs)\n}\n","import {\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, Transaction, Item, StructStore // eslint-disable-line\n} from '../internals.js'\n\n/**\n * @private\n */\nexport class ContentString {\n /**\n * @param {string} str\n */\n constructor (str) {\n /**\n * @type {string}\n */\n this.str = str\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return this.str.length\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return this.str.split('')\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentString}\n */\n copy () {\n return new ContentString(this.str)\n }\n\n /**\n * @param {number} offset\n * @return {ContentString}\n */\n splice (offset) {\n const right = new ContentString(this.str.slice(offset))\n this.str = this.str.slice(0, offset)\n\n // Prevent encoding invalid documents because of splitting of surrogate pairs: https://github.com/yjs/yjs/issues/248\n const firstCharCode = this.str.charCodeAt(offset - 1)\n if (firstCharCode >= 0xD800 && firstCharCode <= 0xDBFF) {\n // Last character of the left split is the start of a surrogate utf16/ucs2 pair.\n // We don't support splitting of surrogate pairs because this may lead to invalid documents.\n // Replace the invalid character with a unicode replacement character (� / U+FFFD)\n this.str = this.str.slice(0, offset - 1) + '�'\n // replace right as well\n right.str = '�' + right.str.slice(1)\n }\n return right\n }\n\n /**\n * @param {ContentString} right\n * @return {boolean}\n */\n mergeWith (right) {\n this.str += right.str\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {}\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {}\n /**\n * @param {StructStore} store\n */\n gc (store) {}\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeString(offset === 0 ? this.str : this.str.slice(offset))\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 4\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentString}\n */\nexport const readContentString = decoder => new ContentString(decoder.readString())\n","import {\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText,\n UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, Item, YEvent, AbstractType // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\n\n/**\n * @type {Array>}\n * @private\n */\nexport const typeRefs = [\n readYArray,\n readYMap,\n readYText,\n readYXmlElement,\n readYXmlFragment,\n readYXmlHook,\n readYXmlText\n]\n\nexport const YArrayRefID = 0\nexport const YMapRefID = 1\nexport const YTextRefID = 2\nexport const YXmlElementRefID = 3\nexport const YXmlFragmentRefID = 4\nexport const YXmlHookRefID = 5\nexport const YXmlTextRefID = 6\n\n/**\n * @private\n */\nexport class ContentType {\n /**\n * @param {AbstractType} type\n */\n constructor (type) {\n /**\n * @type {AbstractType}\n */\n this.type = type\n }\n\n /**\n * @return {number}\n */\n getLength () {\n return 1\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n return [this.type]\n }\n\n /**\n * @return {boolean}\n */\n isCountable () {\n return true\n }\n\n /**\n * @return {ContentType}\n */\n copy () {\n return new ContentType(this.type._copy())\n }\n\n /**\n * @param {number} offset\n * @return {ContentType}\n */\n splice (offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {ContentType} right\n * @return {boolean}\n */\n mergeWith (right) {\n return false\n }\n\n /**\n * @param {Transaction} transaction\n * @param {Item} item\n */\n integrate (transaction, item) {\n this.type._integrate(transaction.doc, item)\n }\n\n /**\n * @param {Transaction} transaction\n */\n delete (transaction) {\n let item = this.type._start\n while (item !== null) {\n if (!item.deleted) {\n item.delete(transaction)\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // This will be gc'd later and we want to merge it if possible\n // We try to merge all deleted items after each transaction,\n // but we have no knowledge about that this needs to be merged\n // since it is not in transaction.ds. Hence we add it to transaction._mergeStructs\n transaction._mergeStructs.push(item)\n }\n item = item.right\n }\n this.type._map.forEach(item => {\n if (!item.deleted) {\n item.delete(transaction)\n } else if (item.id.clock < (transaction.beforeState.get(item.id.client) || 0)) {\n // same as above\n transaction._mergeStructs.push(item)\n }\n })\n transaction.changed.delete(this.type)\n }\n\n /**\n * @param {StructStore} store\n */\n gc (store) {\n let item = this.type._start\n while (item !== null) {\n item.gc(store, true)\n item = item.right\n }\n this.type._start = null\n this.type._map.forEach(/** @param {Item | null} item */ (item) => {\n while (item !== null) {\n item.gc(store, true)\n item = item.left\n }\n })\n this.type._map = new Map()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n this.type._write(encoder)\n }\n\n /**\n * @return {number}\n */\n getRef () {\n return 7\n }\n}\n\n/**\n * @private\n *\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @return {ContentType}\n */\nexport const readContentType = decoder => new ContentType(typeRefs[decoder.readTypeRef()](decoder))\n","import {\n GC,\n getState,\n AbstractStruct,\n replaceStruct,\n addStruct,\n addToDeleteSet,\n findRootTypeKey,\n compareIDs,\n getItem,\n getItemCleanEnd,\n getItemCleanStart,\n readContentDeleted,\n readContentBinary,\n readContentJSON,\n readContentAny,\n readContentString,\n readContentEmbed,\n readContentDoc,\n createID,\n readContentFormat,\n readContentType,\n addChangedTypeToTransaction,\n isDeleted,\n StackItem, DeleteSet, UpdateDecoderV1, UpdateDecoderV2, UpdateEncoderV1, UpdateEncoderV2, ContentType, ContentDeleted, StructStore, ID, AbstractType, Transaction // eslint-disable-line\n} from '../internals.js'\n\nimport * as error from 'lib0/error'\nimport * as binary from 'lib0/binary'\nimport * as array from 'lib0/array'\n\n/**\n * @todo This should return several items\n *\n * @param {StructStore} store\n * @param {ID} id\n * @return {{item:Item, diff:number}}\n */\nexport const followRedone = (store, id) => {\n /**\n * @type {ID|null}\n */\n let nextID = id\n let diff = 0\n let item\n do {\n if (diff > 0) {\n nextID = createID(nextID.client, nextID.clock + diff)\n }\n item = getItem(store, nextID)\n diff = nextID.clock - item.id.clock\n nextID = item.redone\n } while (nextID !== null && item instanceof Item)\n return {\n item, diff\n }\n}\n\n/**\n * Make sure that neither item nor any of its parents is ever deleted.\n *\n * This property does not persist when storing it into a database or when\n * sending it to other peers\n *\n * @param {Item|null} item\n * @param {boolean} keep\n */\nexport const keepItem = (item, keep) => {\n while (item !== null && item.keep !== keep) {\n item.keep = keep\n item = /** @type {AbstractType} */ (item.parent)._item\n }\n}\n\n/**\n * Split leftItem into two items\n * @param {Transaction} transaction\n * @param {Item} leftItem\n * @param {number} diff\n * @return {Item}\n *\n * @function\n * @private\n */\nexport const splitItem = (transaction, leftItem, diff) => {\n // create rightItem\n const { client, clock } = leftItem.id\n const rightItem = new Item(\n createID(client, clock + diff),\n leftItem,\n createID(client, clock + diff - 1),\n leftItem.right,\n leftItem.rightOrigin,\n leftItem.parent,\n leftItem.parentSub,\n leftItem.content.splice(diff)\n )\n if (leftItem.deleted) {\n rightItem.markDeleted()\n }\n if (leftItem.keep) {\n rightItem.keep = true\n }\n if (leftItem.redone !== null) {\n rightItem.redone = createID(leftItem.redone.client, leftItem.redone.clock + diff)\n }\n // update left (do not set leftItem.rightOrigin as it will lead to problems when syncing)\n leftItem.right = rightItem\n // update right\n if (rightItem.right !== null) {\n rightItem.right.left = rightItem\n }\n // right is more specific.\n transaction._mergeStructs.push(rightItem)\n // update parent._map\n if (rightItem.parentSub !== null && rightItem.right === null) {\n /** @type {AbstractType} */ (rightItem.parent)._map.set(rightItem.parentSub, rightItem)\n }\n leftItem.length = diff\n return rightItem\n}\n\n/**\n * @param {Array} stack\n * @param {ID} id\n */\nconst isDeletedByUndoStack = (stack, id) => array.some(stack, /** @param {StackItem} s */ s => isDeleted(s.deletions, id))\n\n/**\n * Redoes the effect of this operation.\n *\n * @param {Transaction} transaction The Yjs instance.\n * @param {Item} item\n * @param {Set} redoitems\n * @param {DeleteSet} itemsToDelete\n * @param {boolean} ignoreRemoteMapChanges\n * @param {import('../utils/UndoManager.js').UndoManager} um\n *\n * @return {Item|null}\n *\n * @private\n */\nexport const redoItem = (transaction, item, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) => {\n const doc = transaction.doc\n const store = doc.store\n const ownClientID = doc.clientID\n const redone = item.redone\n if (redone !== null) {\n return getItemCleanStart(transaction, redone)\n }\n let parentItem = /** @type {AbstractType} */ (item.parent)._item\n /**\n * @type {Item|null}\n */\n let left = null\n /**\n * @type {Item|null}\n */\n let right\n // make sure that parent is redone\n if (parentItem !== null && parentItem.deleted === true) {\n // try to undo parent if it will be undone anyway\n if (parentItem.redone === null && (!redoitems.has(parentItem) || redoItem(transaction, parentItem, redoitems, itemsToDelete, ignoreRemoteMapChanges, um) === null)) {\n return null\n }\n while (parentItem.redone !== null) {\n parentItem = getItemCleanStart(transaction, parentItem.redone)\n }\n }\n const parentType = parentItem === null ? /** @type {AbstractType} */ (item.parent) : /** @type {ContentType} */ (parentItem.content).type\n\n if (item.parentSub === null) {\n // Is an array item. Insert at the old position\n left = item.left\n right = item\n // find next cloned_redo items\n while (left !== null) {\n /**\n * @type {Item|null}\n */\n let leftTrace = left\n // trace redone until parent matches\n while (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item !== parentItem) {\n leftTrace = leftTrace.redone === null ? null : getItemCleanStart(transaction, leftTrace.redone)\n }\n if (leftTrace !== null && /** @type {AbstractType} */ (leftTrace.parent)._item === parentItem) {\n left = leftTrace\n break\n }\n left = left.left\n }\n while (right !== null) {\n /**\n * @type {Item|null}\n */\n let rightTrace = right\n // trace redone until parent matches\n while (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item !== parentItem) {\n rightTrace = rightTrace.redone === null ? null : getItemCleanStart(transaction, rightTrace.redone)\n }\n if (rightTrace !== null && /** @type {AbstractType} */ (rightTrace.parent)._item === parentItem) {\n right = rightTrace\n break\n }\n right = right.right\n }\n } else {\n right = null\n if (item.right && !ignoreRemoteMapChanges) {\n left = item\n // Iterate right while right is in itemsToDelete\n // If it is intended to delete right while item is redone, we can expect that item should replace right.\n while (left !== null && left.right !== null && (left.right.redone || isDeleted(itemsToDelete, left.right.id) || isDeletedByUndoStack(um.undoStack, left.right.id) || isDeletedByUndoStack(um.redoStack, left.right.id))) {\n left = left.right\n // follow redone\n while (left.redone) left = getItemCleanStart(transaction, left.redone)\n }\n if (left && left.right !== null) {\n // It is not possible to redo this item because it conflicts with a\n // change from another client\n return null\n }\n } else {\n left = parentType._map.get(item.parentSub) || null\n }\n }\n const nextClock = getState(store, ownClientID)\n const nextId = createID(ownClientID, nextClock)\n const redoneItem = new Item(\n nextId,\n left, left && left.lastId,\n right, right && right.id,\n parentType,\n item.parentSub,\n item.content.copy()\n )\n item.redone = nextId\n keepItem(redoneItem, true)\n redoneItem.integrate(transaction, 0)\n return redoneItem\n}\n\n/**\n * Abstract class that represents any content.\n */\nexport class Item extends AbstractStruct {\n /**\n * @param {ID} id\n * @param {Item | null} left\n * @param {ID | null} origin\n * @param {Item | null} right\n * @param {ID | null} rightOrigin\n * @param {AbstractType|ID|null} parent Is a type if integrated, is null if it is possible to copy parent from left or right, is ID before integration to search for it.\n * @param {string | null} parentSub\n * @param {AbstractContent} content\n */\n constructor (id, left, origin, right, rightOrigin, parent, parentSub, content) {\n super(id, content.getLength())\n /**\n * The item that was originally to the left of this item.\n * @type {ID | null}\n */\n this.origin = origin\n /**\n * The item that is currently to the left of this item.\n * @type {Item | null}\n */\n this.left = left\n /**\n * The item that is currently to the right of this item.\n * @type {Item | null}\n */\n this.right = right\n /**\n * The item that was originally to the right of this item.\n * @type {ID | null}\n */\n this.rightOrigin = rightOrigin\n /**\n * @type {AbstractType|ID|null}\n */\n this.parent = parent\n /**\n * If the parent refers to this item with some kind of key (e.g. YMap, the\n * key is specified here. The key is then used to refer to the list in which\n * to insert this item. If `parentSub = null` type._start is the list in\n * which to insert to. Otherwise it is `parent._map`.\n * @type {String | null}\n */\n this.parentSub = parentSub\n /**\n * If this type's effect is redone this type refers to the type that undid\n * this operation.\n * @type {ID | null}\n */\n this.redone = null\n /**\n * @type {AbstractContent}\n */\n this.content = content\n /**\n * bit1: keep\n * bit2: countable\n * bit3: deleted\n * bit4: mark - mark node as fast-search-marker\n * @type {number} byte\n */\n this.info = this.content.isCountable() ? binary.BIT2 : 0\n }\n\n /**\n * This is used to mark the item as an indexed fast-search marker\n *\n * @type {boolean}\n */\n set marker (isMarked) {\n if (((this.info & binary.BIT4) > 0) !== isMarked) {\n this.info ^= binary.BIT4\n }\n }\n\n get marker () {\n return (this.info & binary.BIT4) > 0\n }\n\n /**\n * If true, do not garbage collect this Item.\n */\n get keep () {\n return (this.info & binary.BIT1) > 0\n }\n\n set keep (doKeep) {\n if (this.keep !== doKeep) {\n this.info ^= binary.BIT1\n }\n }\n\n get countable () {\n return (this.info & binary.BIT2) > 0\n }\n\n /**\n * Whether this item was deleted or not.\n * @type {Boolean}\n */\n get deleted () {\n return (this.info & binary.BIT3) > 0\n }\n\n set deleted (doDelete) {\n if (this.deleted !== doDelete) {\n this.info ^= binary.BIT3\n }\n }\n\n markDeleted () {\n this.info |= binary.BIT3\n }\n\n /**\n * Return the creator clientID of the missing op or define missing items and return null.\n *\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n if (this.origin && this.origin.client !== this.id.client && this.origin.clock >= getState(store, this.origin.client)) {\n return this.origin.client\n }\n if (this.rightOrigin && this.rightOrigin.client !== this.id.client && this.rightOrigin.clock >= getState(store, this.rightOrigin.client)) {\n return this.rightOrigin.client\n }\n if (this.parent && this.parent.constructor === ID && this.id.client !== this.parent.client && this.parent.clock >= getState(store, this.parent.client)) {\n return this.parent.client\n }\n\n // We have all missing ids, now find the items\n\n if (this.origin) {\n this.left = getItemCleanEnd(transaction, store, this.origin)\n this.origin = this.left.lastId\n }\n if (this.rightOrigin) {\n this.right = getItemCleanStart(transaction, this.rightOrigin)\n this.rightOrigin = this.right.id\n }\n if ((this.left && this.left.constructor === GC) || (this.right && this.right.constructor === GC)) {\n this.parent = null\n } else if (!this.parent) {\n // only set parent if this shouldn't be garbage collected\n if (this.left && this.left.constructor === Item) {\n this.parent = this.left.parent\n this.parentSub = this.left.parentSub\n }\n if (this.right && this.right.constructor === Item) {\n this.parent = this.right.parent\n this.parentSub = this.right.parentSub\n }\n } else if (this.parent.constructor === ID) {\n const parentItem = getItem(store, this.parent)\n if (parentItem.constructor === GC) {\n this.parent = null\n } else {\n this.parent = /** @type {ContentType} */ (parentItem.content).type\n }\n }\n return null\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n if (offset > 0) {\n this.id.clock += offset\n this.left = getItemCleanEnd(transaction, transaction.doc.store, createID(this.id.client, this.id.clock - 1))\n this.origin = this.left.lastId\n this.content = this.content.splice(offset)\n this.length -= offset\n }\n\n if (this.parent) {\n if ((!this.left && (!this.right || this.right.left !== null)) || (this.left && this.left.right !== this.right)) {\n /**\n * @type {Item|null}\n */\n let left = this.left\n\n /**\n * @type {Item|null}\n */\n let o\n // set o to the first conflicting item\n if (left !== null) {\n o = left.right\n } else if (this.parentSub !== null) {\n o = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null\n while (o !== null && o.left !== null) {\n o = o.left\n }\n } else {\n o = /** @type {AbstractType} */ (this.parent)._start\n }\n // TODO: use something like DeleteSet here (a tree implementation would be best)\n // @todo use global set definitions\n /**\n * @type {Set}\n */\n const conflictingItems = new Set()\n /**\n * @type {Set}\n */\n const itemsBeforeOrigin = new Set()\n // Let c in conflictingItems, b in itemsBeforeOrigin\n // ***{origin}bbbb{this}{c,b}{c,b}{o}***\n // Note that conflictingItems is a subset of itemsBeforeOrigin\n while (o !== null && o !== this.right) {\n itemsBeforeOrigin.add(o)\n conflictingItems.add(o)\n if (compareIDs(this.origin, o.origin)) {\n // case 1\n if (o.id.client < this.id.client) {\n left = o\n conflictingItems.clear()\n } else if (compareIDs(this.rightOrigin, o.rightOrigin)) {\n // this and o are conflicting and point to the same integration points. The id decides which item comes first.\n // Since this is to the left of o, we can break here\n break\n } // else, o might be integrated before an item that this conflicts with. If so, we will find it in the next iterations\n } else if (o.origin !== null && itemsBeforeOrigin.has(getItem(transaction.doc.store, o.origin))) { // use getItem instead of getItemCleanEnd because we don't want / need to split items.\n // case 2\n if (!conflictingItems.has(getItem(transaction.doc.store, o.origin))) {\n left = o\n conflictingItems.clear()\n }\n } else {\n break\n }\n o = o.right\n }\n this.left = left\n }\n // reconnect left/right + update parent map/start if necessary\n if (this.left !== null) {\n const right = this.left.right\n this.right = right\n this.left.right = this\n } else {\n let r\n if (this.parentSub !== null) {\n r = /** @type {AbstractType} */ (this.parent)._map.get(this.parentSub) || null\n while (r !== null && r.left !== null) {\n r = r.left\n }\n } else {\n r = /** @type {AbstractType} */ (this.parent)._start\n ;/** @type {AbstractType} */ (this.parent)._start = this\n }\n this.right = r\n }\n if (this.right !== null) {\n this.right.left = this\n } else if (this.parentSub !== null) {\n // set as current parent value if right === null and this is parentSub\n /** @type {AbstractType} */ (this.parent)._map.set(this.parentSub, this)\n if (this.left !== null) {\n // this is the current attribute value of parent. delete right\n this.left.delete(transaction)\n }\n }\n // adjust length of parent\n if (this.parentSub === null && this.countable && !this.deleted) {\n /** @type {AbstractType} */ (this.parent)._length += this.length\n }\n addStruct(transaction.doc.store, this)\n this.content.integrate(transaction, this)\n // add parent to transaction.changed\n addChangedTypeToTransaction(transaction, /** @type {AbstractType} */ (this.parent), this.parentSub)\n if ((/** @type {AbstractType} */ (this.parent)._item !== null && /** @type {AbstractType} */ (this.parent)._item.deleted) || (this.parentSub !== null && this.right !== null)) {\n // delete if parent is deleted or if this is not the current attribute value of parent\n this.delete(transaction)\n }\n } else {\n // parent is not defined. Integrate GC struct instead\n new GC(this.id, this.length).integrate(transaction, 0)\n }\n }\n\n /**\n * Returns the next non-deleted item\n */\n get next () {\n let n = this.right\n while (n !== null && n.deleted) {\n n = n.right\n }\n return n\n }\n\n /**\n * Returns the previous non-deleted item\n */\n get prev () {\n let n = this.left\n while (n !== null && n.deleted) {\n n = n.left\n }\n return n\n }\n\n /**\n * Computes the last content address of this Item.\n */\n get lastId () {\n // allocating ids is pretty costly because of the amount of ids created, so we try to reuse whenever possible\n return this.length === 1 ? this.id : createID(this.id.client, this.id.clock + this.length - 1)\n }\n\n /**\n * Try to merge two items\n *\n * @param {Item} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (\n this.constructor === right.constructor &&\n compareIDs(right.origin, this.lastId) &&\n this.right === right &&\n compareIDs(this.rightOrigin, right.rightOrigin) &&\n this.id.client === right.id.client &&\n this.id.clock + this.length === right.id.clock &&\n this.deleted === right.deleted &&\n this.redone === null &&\n right.redone === null &&\n this.content.constructor === right.content.constructor &&\n this.content.mergeWith(right.content)\n ) {\n const searchMarker = /** @type {AbstractType} */ (this.parent)._searchMarker\n if (searchMarker) {\n searchMarker.forEach(marker => {\n if (marker.p === right) {\n // right is going to be \"forgotten\" so we need to update the marker\n marker.p = this\n // adjust marker index\n if (!this.deleted && this.countable) {\n marker.index -= this.length\n }\n }\n })\n }\n if (right.keep) {\n this.keep = true\n }\n this.right = right.right\n if (this.right !== null) {\n this.right.left = this\n }\n this.length += right.length\n return true\n }\n return false\n }\n\n /**\n * Mark this Item as deleted.\n *\n * @param {Transaction} transaction\n */\n delete (transaction) {\n if (!this.deleted) {\n const parent = /** @type {AbstractType} */ (this.parent)\n // adjust the length of parent\n if (this.countable && this.parentSub === null) {\n parent._length -= this.length\n }\n this.markDeleted()\n addToDeleteSet(transaction.deleteSet, this.id.client, this.id.clock, this.length)\n addChangedTypeToTransaction(transaction, parent, this.parentSub)\n this.content.delete(transaction)\n }\n }\n\n /**\n * @param {StructStore} store\n * @param {boolean} parentGCd\n */\n gc (store, parentGCd) {\n if (!this.deleted) {\n throw error.unexpectedCase()\n }\n this.content.gc(store)\n if (parentGCd) {\n replaceStruct(store, this, new GC(this.id, this.length))\n } else {\n this.content = new ContentDeleted(this.length)\n }\n }\n\n /**\n * Transform the properties of this type to binary and write it to an\n * BinaryEncoder.\n *\n * This is called when this Item is sent to a remote peer.\n *\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder The encoder to write data to.\n * @param {number} offset\n */\n write (encoder, offset) {\n const origin = offset > 0 ? createID(this.id.client, this.id.clock + offset - 1) : this.origin\n const rightOrigin = this.rightOrigin\n const parentSub = this.parentSub\n const info = (this.content.getRef() & binary.BITS5) |\n (origin === null ? 0 : binary.BIT8) | // origin is defined\n (rightOrigin === null ? 0 : binary.BIT7) | // right origin is defined\n (parentSub === null ? 0 : binary.BIT6) // parentSub is non-null\n encoder.writeInfo(info)\n if (origin !== null) {\n encoder.writeLeftID(origin)\n }\n if (rightOrigin !== null) {\n encoder.writeRightID(rightOrigin)\n }\n if (origin === null && rightOrigin === null) {\n const parent = /** @type {AbstractType} */ (this.parent)\n if (parent._item !== undefined) {\n const parentItem = parent._item\n if (parentItem === null) {\n // parent type on y._map\n // find the correct key\n const ykey = findRootTypeKey(parent)\n encoder.writeParentInfo(true) // write parentYKey\n encoder.writeString(ykey)\n } else {\n encoder.writeParentInfo(false) // write parent id\n encoder.writeLeftID(parentItem.id)\n }\n } else if (parent.constructor === String) { // this edge case was added by differential updates\n encoder.writeParentInfo(true) // write parentYKey\n encoder.writeString(parent)\n } else if (parent.constructor === ID) {\n encoder.writeParentInfo(false) // write parent id\n encoder.writeLeftID(parent)\n } else {\n error.unexpectedCase()\n }\n if (parentSub !== null) {\n encoder.writeString(parentSub)\n }\n }\n this.content.write(encoder, offset)\n }\n}\n\n/**\n * @param {UpdateDecoderV1 | UpdateDecoderV2} decoder\n * @param {number} info\n */\nexport const readItemContent = (decoder, info) => contentRefs[info & binary.BITS5](decoder)\n\n/**\n * A lookup map for reading Item content.\n *\n * @type {Array}\n */\nexport const contentRefs = [\n () => { error.unexpectedCase() }, // GC is not ItemContent\n readContentDeleted, // 1\n readContentJSON, // 2\n readContentBinary, // 3\n readContentString, // 4\n readContentEmbed, // 5\n readContentFormat, // 6\n readContentType, // 7\n readContentAny, // 8\n readContentDoc, // 9\n () => { error.unexpectedCase() } // 10 - Skip is not ItemContent\n]\n\n/**\n * Do not implement this class!\n */\nexport class AbstractContent {\n /**\n * @return {number}\n */\n getLength () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {Array}\n */\n getContent () {\n throw error.methodUnimplemented()\n }\n\n /**\n * Should return false if this Item is some kind of meta information\n * (e.g. format information).\n *\n * * Whether this Item should be addressable via `yarray.get(i)`\n * * Whether this Item should be counted when computing yarray.length\n *\n * @return {boolean}\n */\n isCountable () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {AbstractContent}\n */\n copy () {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {number} _offset\n * @return {AbstractContent}\n */\n splice (_offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {AbstractContent} _right\n * @return {boolean}\n */\n mergeWith (_right) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} _transaction\n * @param {Item} _item\n */\n integrate (_transaction, _item) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {Transaction} _transaction\n */\n delete (_transaction) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {StructStore} _store\n */\n gc (_store) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} _encoder\n * @param {number} _offset\n */\n write (_encoder, _offset) {\n throw error.methodUnimplemented()\n }\n\n /**\n * @return {number}\n */\n getRef () {\n throw error.methodUnimplemented()\n }\n}\n","import {\n AbstractStruct,\n UpdateEncoderV1, UpdateEncoderV2, StructStore, Transaction, ID // eslint-disable-line\n} from '../internals.js'\nimport * as error from 'lib0/error'\nimport * as encoding from 'lib0/encoding'\n\nexport const structSkipRefNumber = 10\n\n/**\n * @private\n */\nexport class Skip extends AbstractStruct {\n get deleted () {\n return true\n }\n\n delete () {}\n\n /**\n * @param {Skip} right\n * @return {boolean}\n */\n mergeWith (right) {\n if (this.constructor !== right.constructor) {\n return false\n }\n this.length += right.length\n return true\n }\n\n /**\n * @param {Transaction} transaction\n * @param {number} offset\n */\n integrate (transaction, offset) {\n // skip structs cannot be integrated\n error.unexpectedCase()\n }\n\n /**\n * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder\n * @param {number} offset\n */\n write (encoder, offset) {\n encoder.writeInfo(structSkipRefNumber)\n // write as VarUint because Skips can't make use of predictable length-encoding\n encoding.writeVarUint(encoder.restEncoder, this.length - offset)\n }\n\n /**\n * @param {Transaction} transaction\n * @param {StructStore} store\n * @return {null | number}\n */\n getMissing (transaction, store) {\n return null\n }\n}\n","/** eslint-env browser */\n\nexport {\n Doc,\n Transaction,\n YArray as Array,\n YMap as Map,\n YText as Text,\n YXmlText as XmlText,\n YXmlHook as XmlHook,\n YXmlElement as XmlElement,\n YXmlFragment as XmlFragment,\n YXmlEvent,\n YMapEvent,\n YArrayEvent,\n YTextEvent,\n YEvent,\n Item,\n AbstractStruct,\n GC,\n Skip,\n ContentBinary,\n ContentDeleted,\n ContentDoc,\n ContentEmbed,\n ContentFormat,\n ContentJSON,\n ContentAny,\n ContentString,\n ContentType,\n AbstractType,\n getTypeChildren,\n createRelativePositionFromTypeIndex,\n createRelativePositionFromJSON,\n createAbsolutePositionFromRelativePosition,\n compareRelativePositions,\n AbsolutePosition,\n RelativePosition,\n ID,\n createID,\n compareIDs,\n getState,\n Snapshot,\n createSnapshot,\n createDeleteSet,\n createDeleteSetFromStructStore,\n cleanupYTextFormatting,\n snapshot,\n emptySnapshot,\n findRootTypeKey,\n findIndexSS,\n getItem,\n typeListToArraySnapshot,\n typeMapGetSnapshot,\n typeMapGetAllSnapshot,\n createDocFromSnapshot,\n iterateDeletedStructs,\n applyUpdate,\n applyUpdateV2,\n readUpdate,\n readUpdateV2,\n encodeStateAsUpdate,\n encodeStateAsUpdateV2,\n encodeStateVector,\n UndoManager,\n decodeSnapshot,\n encodeSnapshot,\n decodeSnapshotV2,\n encodeSnapshotV2,\n decodeStateVector,\n logUpdate,\n logUpdateV2,\n decodeUpdate,\n decodeUpdateV2,\n relativePositionToJSON,\n isDeleted,\n isParentOf,\n equalSnapshots,\n PermanentUserData, // @TODO experimental\n tryGc,\n transact,\n AbstractConnector,\n logType,\n mergeUpdates,\n mergeUpdatesV2,\n parseUpdateMeta,\n parseUpdateMetaV2,\n encodeStateVectorFromUpdate,\n encodeStateVectorFromUpdateV2,\n encodeRelativePosition,\n decodeRelativePosition,\n diffUpdate,\n diffUpdateV2,\n convertUpdateFormatV1ToV2,\n convertUpdateFormatV2ToV1,\n obfuscateUpdate,\n obfuscateUpdateV2,\n UpdateEncoderV1,\n UpdateEncoderV2,\n UpdateDecoderV1,\n UpdateDecoderV2,\n equalDeleteSets,\n mergeDeleteSets,\n snapshotContainsUpdate\n} from './internals.js'\n\nconst glo = /** @type {any} */ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n // @ts-ignore\n : typeof global !== 'undefined' ? global : {})\n\nconst importIdentifier = '__ $YJS$ __'\n\nif (glo[importIdentifier] === true) {\n /**\n * Dear reader of this message. Please take this seriously.\n *\n * If you see this message, make sure that you only import one version of Yjs. In many cases,\n * your package manager installs two versions of Yjs that are used by different packages within your project.\n * Another reason for this message is that some parts of your project use the commonjs version of Yjs\n * and others use the EcmaScript version of Yjs.\n *\n * This often leads to issues that are hard to debug. We often need to perform constructor checks,\n * e.g. `struct instanceof GC`. If you imported different versions of Yjs, it is impossible for us to\n * do the constructor checks anymore - which might break the CRDT algorithm.\n *\n * https://github.com/yjs/yjs/issues/438\n */\n console.error('Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438')\n}\nglo[importIdentifier] = true\n","import { _ as _super_prop_base } from \"./_super_prop_base.js\";\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) _get = Reflect.get;\n else {\n _get = function get(target, property, receiver) {\n var base = _super_prop_base(target, property);\n\n if (!base) return;\n\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) return desc.get.call(receiver || target);\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\nexport { _get as _ };\n","import { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\n\nfunction _super_prop_base(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _get_prototype_of(object);\n if (object === null) break;\n }\n\n return object;\n}\nexport { _super_prop_base as _ };\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n * @experimental\n *\n * This is basically a (better typed) duplicate of Observable, which will replace Observable in the\n * next release.\n *\n * @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS\n */\nexport class ObservableV2 {\n constructor () {\n /**\n * Some desc.\n * @type {Map>}\n */\n this._observers = map.create()\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, /** @type {string} */ (name), set.create).add(f)\n return f\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, /** @type {any} */ (_f))\n f(...args)\n }\n this.on(name, /** @type {any} */ (_f))\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name The event name.\n * @param {Parameters} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n\n/* c8 ignore start */\n/**\n * Handles named events.\n *\n * @deprecated\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n/* c8 ignore end */\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template K,V\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template {Map} MAP\n * @template {MAP extends Map ? function():V : unknown} CF\n * @param {MAP} map\n * @param {MAP extends Map ? K : unknown} key\n * @param {CF} createT\n * @return {ReturnType}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set =>\n set.values().next().value ?? undefined\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => new Set(entries)\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\nimport * as set from './set.js'\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {ArrayLike} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n * @template {ArrayLike} ARR\n *\n * @param {ARR} arr\n * @param {function(ITEM, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (!f(arr[i], i, arr)) {\n return false\n }\n }\n return true\n}\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @template {ArrayLike} ARR\n * @param {ARR} arr\n * @param {function(S, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (f(arr[i], i, arr)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @template ELEM\n *\n * @param {ArrayLike} a\n * @param {ArrayLike} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => fold(arr, /** @type {Array} */ ([]), (acc, val) => acc.concat(val))\n\n/**\n * @template T\n * @param {number} len\n * @param {function(number, Array):T} f\n * @return {Array}\n */\nexport const unfold = (len, f) => {\n const array = new Array(len)\n for (let i = 0; i < len; i++) {\n array[i] = f(i, array)\n }\n return array\n}\n\n/**\n * @template T\n * @template RESULT\n * @param {Array} arr\n * @param {RESULT} seed\n * @param {function(RESULT, T, number):RESULT} folder\n */\nexport const fold = (arr, seed, folder) => arr.reduce(folder, seed)\n\nexport const isArray = Array.isArray\n\n/**\n * @template T\n * @param {Array} arr\n * @return {Array}\n */\nexport const unique = arr => from(set.from(arr))\n\n/**\n * @template T\n * @template M\n * @param {ArrayLike} arr\n * @param {function(T):M} mapper\n * @return {Array}\n */\nexport const uniqueBy = (arr, mapper) => {\n /**\n * @type {Set}\n */\n const happened = set.create()\n /**\n * @type {Array}\n */\n const result = []\n for (let i = 0; i < arr.length; i++) {\n const el = arr[i]\n const mapped = mapper(el)\n if (!happened.has(mapped)) {\n happened.add(mapped)\n result.push(el)\n }\n }\n return result\n}\n\n/**\n * @template {ArrayLike} ARR\n * @template {function(ARR extends ArrayLike ? T : never, number, ARR):any} MAPPER\n * @param {ARR} arr\n * @param {MAPPER} mapper\n * @return {Array}\n */\nexport const map = (arr, mapper) => {\n /**\n * @type {Array}\n */\n const res = Array(arr.length)\n for (let i = 0; i < arr.length; i++) {\n res[i] = mapper(/** @type {any} */ (arr[i]), i, /** @type {any} */ (arr))\n }\n return /** @type {any} */ (res)\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Efficient schema-less binary encoding with support for variable length encoding.\n *\n * Use [lib0/encoding] with [lib0/decoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module encoding\n */\n\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as binary from './binary.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\n\n/**\n * A BinaryEncoder handles the encoding to an Uint8Array.\n */\nexport class Encoder {\n constructor () {\n this.cpos = 0\n this.cbuf = new Uint8Array(100)\n /**\n * @type {Array}\n */\n this.bufs = []\n }\n}\n\n/**\n * @function\n * @return {Encoder}\n */\nexport const createEncoder = () => new Encoder()\n\n/**\n * @param {function(Encoder):void} f\n */\nexport const encode = (f) => {\n const encoder = createEncoder()\n f(encoder)\n return toUint8Array(encoder)\n}\n\n/**\n * The current length of the encoded data.\n *\n * @function\n * @param {Encoder} encoder\n * @return {number}\n */\nexport const length = encoder => {\n let len = encoder.cpos\n for (let i = 0; i < encoder.bufs.length; i++) {\n len += encoder.bufs[i].length\n }\n return len\n}\n\n/**\n * Check whether encoder is empty.\n *\n * @function\n * @param {Encoder} encoder\n * @return {boolean}\n */\nexport const hasContent = encoder => encoder.cpos > 0 || encoder.bufs.length > 0\n\n/**\n * Transform to Uint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @return {Uint8Array} The created ArrayBuffer.\n */\nexport const toUint8Array = encoder => {\n const uint8arr = new Uint8Array(length(encoder))\n let curPos = 0\n for (let i = 0; i < encoder.bufs.length; i++) {\n const d = encoder.bufs[i]\n uint8arr.set(d, curPos)\n curPos += d.length\n }\n uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos)\n return uint8arr\n}\n\n/**\n * Verify that it is possible to write `len` bytes wtihout checking. If\n * necessary, a new Buffer with the required length is attached.\n *\n * @param {Encoder} encoder\n * @param {number} len\n */\nexport const verifyLen = (encoder, len) => {\n const bufferLen = encoder.cbuf.length\n if (bufferLen - encoder.cpos < len) {\n encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos))\n encoder.cbuf = new Uint8Array(math.max(bufferLen, len) * 2)\n encoder.cpos = 0\n }\n}\n\n/**\n * Write one byte to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The byte that is to be encoded.\n */\nexport const write = (encoder, num) => {\n const bufferLen = encoder.cbuf.length\n if (encoder.cpos === bufferLen) {\n encoder.bufs.push(encoder.cbuf)\n encoder.cbuf = new Uint8Array(bufferLen * 2)\n encoder.cpos = 0\n }\n encoder.cbuf[encoder.cpos++] = num\n}\n\n/**\n * Write one byte at a specific position.\n * Position must already be written (i.e. encoder.length > pos)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos Position to which to write data\n * @param {number} num Unsigned 8-bit integer\n */\nexport const set = (encoder, pos, num) => {\n let buffer = null\n // iterate all buffers and adjust position\n for (let i = 0; i < encoder.bufs.length && buffer === null; i++) {\n const b = encoder.bufs[i]\n if (pos < b.length) {\n buffer = b // found buffer\n } else {\n pos -= b.length\n }\n }\n if (buffer === null) {\n // use current buffer\n buffer = encoder.cbuf\n }\n buffer[pos] = num\n}\n\n/**\n * Write one byte as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint8 = write\n\n/**\n * Write one byte as an unsigned Integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint8 = set\n\n/**\n * Write two bytes as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint16 = (encoder, num) => {\n write(encoder, num & binary.BITS8)\n write(encoder, (num >>> 8) & binary.BITS8)\n}\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint16 = (encoder, pos, num) => {\n set(encoder, pos, num & binary.BITS8)\n set(encoder, pos + 1, (num >>> 8) & binary.BITS8)\n}\n\n/**\n * Write two bytes as an unsigned integer\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32 = (encoder, num) => {\n for (let i = 0; i < 4; i++) {\n write(encoder, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write two bytes as an unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32BigEndian = (encoder, num) => {\n for (let i = 3; i >= 0; i--) {\n write(encoder, (num >>> (8 * i)) & binary.BITS8)\n }\n}\n\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint32 = (encoder, pos, num) => {\n for (let i = 0; i < 4; i++) {\n set(encoder, pos + i, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write a variable length unsigned integer. Max encodable integer is 2^53.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarUint = (encoder, num) => {\n while (num > binary.BITS7) {\n write(encoder, binary.BIT8 | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n write(encoder, binary.BITS7 & num)\n}\n\n/**\n * Write a variable length integer.\n *\n * We use the 7th bit instead for signaling that this is a negative number.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarInt = (encoder, num) => {\n const isNegative = math.isNegativeZero(num)\n if (isNegative) {\n num = -num\n }\n // |- whether to continue reading |- whether is negative |- number\n write(encoder, (num > binary.BITS6 ? binary.BIT8 : 0) | (isNegative ? binary.BIT7 : 0) | (binary.BITS6 & num))\n num = math.floor(num / 64) // shift >>> 6\n // We don't need to consider the case of num === 0 so we can use a different\n // pattern here than above.\n while (num > 0) {\n write(encoder, (num > binary.BITS7 ? binary.BIT8 : 0) | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n}\n\n/**\n * A cache to store strings temporarily\n */\nconst _strBuffer = new Uint8Array(30000)\nconst _maxStrBSize = _strBuffer.length / 3\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringNative = (encoder, str) => {\n if (str.length < _maxStrBSize) {\n // We can encode the string into the existing buffer\n /* c8 ignore next */\n const written = string.utf8TextEncoder.encodeInto(str, _strBuffer).written || 0\n writeVarUint(encoder, written)\n for (let i = 0; i < written; i++) {\n write(encoder, _strBuffer[i])\n }\n } else {\n writeVarUint8Array(encoder, string.encodeUtf8(str))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringPolyfill = (encoder, str) => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n write(encoder, /** @type {number} */ (encodedString.codePointAt(i)))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\n/* c8 ignore next */\nexport const writeVarString = (string.utf8TextEncoder && /** @type {any} */ (string.utf8TextEncoder).encodeInto) ? _writeVarStringNative : _writeVarStringPolyfill\n\n/**\n * Write a string terminated by a special byte sequence. This is not very performant and is\n * generally discouraged. However, the resulting byte arrays are lexiographically ordered which\n * makes this a nice feature for databases.\n *\n * The string will be encoded using utf8 and then terminated and escaped using writeTerminatingUint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const writeTerminatedString = (encoder, str) =>\n writeTerminatedUint8Array(encoder, string.encodeUtf8(str))\n\n/**\n * Write a terminating Uint8Array. Note that this is not performant and is generally\n * discouraged. There are few situations when this is needed.\n *\n * We use 0x0 as a terminating character. 0x1 serves as an escape character for 0x0 and 0x1.\n *\n * Example: [0,1,2] is encoded to [1,0,1,1,2,0]. 0x0, and 0x1 needed to be escaped using 0x1. Then\n * the result is terminated using the 0x0 character.\n *\n * This is basically how many systems implement null terminated strings. However, we use an escape\n * character 0x1 to avoid issues and potenial attacks on our database (if this is used as a key\n * encoder for NoSql databases).\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} buf The string that is to be encoded.\n */\nexport const writeTerminatedUint8Array = (encoder, buf) => {\n for (let i = 0; i < buf.length; i++) {\n const b = buf[i]\n if (b === 0 || b === 1) {\n write(encoder, 1)\n }\n write(encoder, buf[i])\n }\n write(encoder, 0)\n}\n\n/**\n * Write the content of another Encoder.\n *\n * @TODO: can be improved!\n * - Note: Should consider that when appending a lot of small Encoders, we should rather clone than referencing the old structure.\n * Encoders start with a rather big initial buffer.\n *\n * @function\n * @param {Encoder} encoder The enUint8Arr\n * @param {Encoder} append The BinaryEncoder to be written.\n */\nexport const writeBinaryEncoder = (encoder, append) => writeUint8Array(encoder, toUint8Array(append))\n\n/**\n * Append fixed-length Uint8Array to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeUint8Array = (encoder, uint8Array) => {\n const bufferLen = encoder.cbuf.length\n const cpos = encoder.cpos\n const leftCopyLen = math.min(bufferLen - cpos, uint8Array.length)\n const rightCopyLen = uint8Array.length - leftCopyLen\n encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos)\n encoder.cpos += leftCopyLen\n if (rightCopyLen > 0) {\n // Still something to write, write right half..\n // Append new buffer\n encoder.bufs.push(encoder.cbuf)\n // must have at least size of remaining buffer\n encoder.cbuf = new Uint8Array(math.max(bufferLen * 2, rightCopyLen))\n // copy array\n encoder.cbuf.set(uint8Array.subarray(leftCopyLen))\n encoder.cpos = rightCopyLen\n }\n}\n\n/**\n * Append an Uint8Array to Encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeVarUint8Array = (encoder, uint8Array) => {\n writeVarUint(encoder, uint8Array.byteLength)\n writeUint8Array(encoder, uint8Array)\n}\n\n/**\n * Create an DataView of the next `len` bytes. Use it to write data after\n * calling this function.\n *\n * ```js\n * // write float32 using DataView\n * const dv = writeOnDataView(encoder, 4)\n * dv.setFloat32(0, 1.1)\n * // read float32 using DataView\n * const dv = readFromDataView(encoder, 4)\n * dv.getFloat32(0) // => 1.100000023841858 (leaving it to the reader to find out why this is the correct result)\n * ```\n *\n * @param {Encoder} encoder\n * @param {number} len\n * @return {DataView}\n */\nexport const writeOnDataView = (encoder, len) => {\n verifyLen(encoder, len)\n const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len)\n encoder.cpos += len\n return dview\n}\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigInt64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigInt64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigUint64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigUint64(0, num, false)\n\nconst floatTestBed = new DataView(new ArrayBuffer(4))\n/**\n * Check if a number can be encoded as a 32 bit float.\n *\n * @param {number} num\n * @return {boolean}\n */\nconst isFloat32 = num => {\n floatTestBed.setFloat32(0, num)\n return floatTestBed.getFloat32(0) === num\n}\n\n/**\n * Encode data with efficient binary format.\n *\n * Differences to JSON:\n * • Transforms data to a binary format (not to a string)\n * • Encodes undefined, NaN, and ArrayBuffer (these can't be represented in JSON)\n * • Numbers are efficiently encoded either as a variable length integer, as a\n * 32 bit float, as a 64 bit float, or as a 64 bit bigint.\n *\n * Encoding table:\n *\n * | Data Type | Prefix | Encoding Method | Comment |\n * | ------------------- | -------- | ------------------ | ------- |\n * | undefined | 127 | | Functions, symbol, and everything that cannot be identified is encoded as undefined |\n * | null | 126 | | |\n * | integer | 125 | writeVarInt | Only encodes 32 bit signed integers |\n * | float32 | 124 | writeFloat32 | |\n * | float64 | 123 | writeFloat64 | |\n * | bigint | 122 | writeBigInt64 | |\n * | boolean (false) | 121 | | True and false are different data types so we save the following byte |\n * | boolean (true) | 120 | | - 0b01111000 so the last bit determines whether true or false |\n * | string | 119 | writeVarString | |\n * | object | 118 | custom | Writes {length} then {length} key-value pairs |\n * | array | 117 | custom | Writes {length} then {length} json values |\n * | Uint8Array | 116 | writeVarUint8Array | We use Uint8Array for any kind of binary data |\n *\n * Reasons for the decreasing prefix:\n * We need the first bit for extendability (later we may want to encode the\n * prefix with writeVarUint). The remaining 7 bits are divided as follows:\n * [0-30] the beginning of the data range is used for custom purposes\n * (defined by the function that uses this library)\n * [31-127] the end of the data range is used for data encoding by\n * lib0/encoding.js\n *\n * @param {Encoder} encoder\n * @param {undefined|null|number|bigint|boolean|string|Object|Array|Uint8Array} data\n */\nexport const writeAny = (encoder, data) => {\n switch (typeof data) {\n case 'string':\n // TYPE 119: STRING\n write(encoder, 119)\n writeVarString(encoder, data)\n break\n case 'number':\n if (number.isInteger(data) && math.abs(data) <= binary.BITS31) {\n // TYPE 125: INTEGER\n write(encoder, 125)\n writeVarInt(encoder, data)\n } else if (isFloat32(data)) {\n // TYPE 124: FLOAT32\n write(encoder, 124)\n writeFloat32(encoder, data)\n } else {\n // TYPE 123: FLOAT64\n write(encoder, 123)\n writeFloat64(encoder, data)\n }\n break\n case 'bigint':\n // TYPE 122: BigInt\n write(encoder, 122)\n writeBigInt64(encoder, data)\n break\n case 'object':\n if (data === null) {\n // TYPE 126: null\n write(encoder, 126)\n } else if (array.isArray(data)) {\n // TYPE 117: Array\n write(encoder, 117)\n writeVarUint(encoder, data.length)\n for (let i = 0; i < data.length; i++) {\n writeAny(encoder, data[i])\n }\n } else if (data instanceof Uint8Array) {\n // TYPE 116: ArrayBuffer\n write(encoder, 116)\n writeVarUint8Array(encoder, data)\n } else {\n // TYPE 118: Object\n write(encoder, 118)\n const keys = Object.keys(data)\n writeVarUint(encoder, keys.length)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n writeVarString(encoder, key)\n writeAny(encoder, data[key])\n }\n }\n break\n case 'boolean':\n // TYPE 120/121: boolean (true/false)\n write(encoder, data ? 120 : 121)\n break\n default:\n // TYPE 127: undefined\n write(encoder, 127)\n }\n}\n\n/**\n * Now come a few stateful encoder that have their own classes.\n */\n\n/**\n * Basic Run Length Encoder - a basic compression implementation.\n *\n * Encodes [1,1,1,7] to [1,3,7,1] (3 times 1, 1 time 7). This encoder might do more harm than good if there are a lot of values that are not repeated.\n *\n * It was originally used for image compression. Cool .. article http://csbruce.com/cbm/transactor/pdfs/trans_v7_i06.pdf\n *\n * @note T must not be null!\n *\n * @template T\n */\nexport class RleEncoder extends Encoder {\n /**\n * @param {function(Encoder, T):void} writer\n */\n constructor (writer) {\n super()\n /**\n * The writer\n */\n this.w = writer\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n /**\n * @param {T} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n this.w(this, v)\n this.s = v\n }\n }\n}\n\n/**\n * Basic diff decoder using variable length encoding.\n *\n * Encodes the values [3, 1100, 1101, 1050, 0] to [3, 1097, 1, -51, -1050] using writeVarInt.\n */\nexport class IntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n writeVarInt(this, v - this.s)\n this.s = v\n }\n}\n\n/**\n * A combination of IntDiffEncoder and RleEncoder.\n *\n * Basically first writes the IntDiffEncoder and then counts duplicate diffs using RleEncoding.\n *\n * Encodes the values [1,1,1,2,3,4,5,6] as [1,1,0,2,1,5] (RLE([1,0,0,1,1,1,1,1]) ⇒ RleIntDiff[1,1,0,2,1,5])\n */\nexport class RleIntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v && this.count > 0) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n writeVarInt(this, v - this.s)\n this.s = v\n }\n }\n}\n\n/**\n * @param {UintOptRleEncoder} encoder\n */\nconst flushUintOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set sign to positive\n // case 2: write several values. set sign to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encoder.count === 1 ? encoder.s : -encoder.s)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * Optimized Rle encoder that does not suffer from the mentioned problem of the basic Rle encoder.\n *\n * Internally uses VarInt encoder to write unsigned integers. If the input occurs multiple times, we write\n * write it as a negative number. The UintOptRleDecoder then understands that it needs to read a count.\n *\n * Encodes [1,2,3,3,3] as [1,2,-3,3] (once 1, once 2, three times 3)\n */\nexport class UintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Increasing Uint Optimized RLE Encoder\n *\n * The RLE encoder counts the number of same occurences of the same value.\n * The IncUintOptRle encoder counts if the value increases.\n * I.e. 7, 8, 9, 10 will be encoded as [-7, 4]. 1, 3, 5 will be encoded\n * as [1, 3, 5].\n */\nexport class IncUintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s + this.count === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * @param {IntDiffOptRleEncoder} encoder\n */\nconst flushIntDiffOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // 31 bit making up the diff | wether to write the counter\n // const encodedDiff = encoder.diff << 1 | (encoder.count === 1 ? 0 : 1)\n const encodedDiff = encoder.diff * 2 + (encoder.count === 1 ? 0 : 1)\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set first bit to positive\n // case 2: write several values. set first bit to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encodedDiff)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * A combination of the IntDiffEncoder and the UintOptRleEncoder.\n *\n * The count approach is similar to the UintDiffOptRleEncoder, but instead of using the negative bitflag, it encodes\n * in the LSB whether a count is to be read. Therefore this Encoder only supports 31 bit integers!\n *\n * Encodes [1, 2, 3, 2] as [3, 1, 6, -1] (more specifically [(1 << 1) | 1, (3 << 0) | 0, -1])\n *\n * Internally uses variable length encoding. Contrary to normal UintVar encoding, the first byte contains:\n * * 1 bit that denotes whether the next value is a count (LSB)\n * * 1 bit that denotes whether this value is negative (MSB - 1)\n * * 1 bit that denotes whether to continue reading the variable length integer (MSB)\n *\n * Therefore, only five bits remain to encode diff ranges.\n *\n * Use this Encoder only when appropriate. In most cases, this is probably a bad idea.\n */\nexport class IntDiffOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.diff === v - this.s) {\n this.s = v\n this.count++\n } else {\n flushIntDiffOptRleEncoder(this)\n this.count = 1\n this.diff = v - this.s\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushIntDiffOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Optimized String Encoder.\n *\n * Encoding many small strings in a simple Encoder is not very efficient. The function call to decode a string takes some time and creates references that must be eventually deleted.\n * In practice, when decoding several million small strings, the GC will kick in more and more often to collect orphaned string objects (or maybe there is another reason?).\n *\n * This string encoder solves the above problem. All strings are concatenated and written as a single string using a single encoding call.\n *\n * The lengths are encoded using a UintOptRleEncoder.\n */\nexport class StringEncoder {\n constructor () {\n /**\n * @type {Array}\n */\n this.sarr = []\n this.s = ''\n this.lensE = new UintOptRleEncoder()\n }\n\n /**\n * @param {string} string\n */\n write (string) {\n this.s += string\n if (this.s.length > 19) {\n this.sarr.push(this.s)\n this.s = ''\n }\n this.lensE.write(string.length)\n }\n\n toUint8Array () {\n const encoder = new Encoder()\n this.sarr.push(this.s)\n this.s = ''\n writeVarString(encoder, this.sarr.join(''))\n writeUint8Array(encoder, this.lensE.toUint8Array())\n return toUint8Array(encoder)\n }\n}\n","/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n","/* eslint-env browser */\n\n/**\n * Binary data constants.\n *\n * @module binary\n */\n\n/**\n * n-th bit activated.\n *\n * @type {number}\n */\nexport const BIT1 = 1\nexport const BIT2 = 2\nexport const BIT3 = 4\nexport const BIT4 = 8\nexport const BIT5 = 16\nexport const BIT6 = 32\nexport const BIT7 = 64\nexport const BIT8 = 128\nexport const BIT9 = 256\nexport const BIT10 = 512\nexport const BIT11 = 1024\nexport const BIT12 = 2048\nexport const BIT13 = 4096\nexport const BIT14 = 8192\nexport const BIT15 = 16384\nexport const BIT16 = 32768\nexport const BIT17 = 65536\nexport const BIT18 = 1 << 17\nexport const BIT19 = 1 << 18\nexport const BIT20 = 1 << 19\nexport const BIT21 = 1 << 20\nexport const BIT22 = 1 << 21\nexport const BIT23 = 1 << 22\nexport const BIT24 = 1 << 23\nexport const BIT25 = 1 << 24\nexport const BIT26 = 1 << 25\nexport const BIT27 = 1 << 26\nexport const BIT28 = 1 << 27\nexport const BIT29 = 1 << 28\nexport const BIT30 = 1 << 29\nexport const BIT31 = 1 << 30\nexport const BIT32 = 1 << 31\n\n/**\n * First n bits activated.\n *\n * @type {number}\n */\nexport const BITS0 = 0\nexport const BITS1 = 1\nexport const BITS2 = 3\nexport const BITS3 = 7\nexport const BITS4 = 15\nexport const BITS5 = 31\nexport const BITS6 = 63\nexport const BITS7 = 127\nexport const BITS8 = 255\nexport const BITS9 = 511\nexport const BITS10 = 1023\nexport const BITS11 = 2047\nexport const BITS12 = 4095\nexport const BITS13 = 8191\nexport const BITS14 = 16383\nexport const BITS15 = 32767\nexport const BITS16 = 65535\nexport const BITS17 = BIT18 - 1\nexport const BITS18 = BIT19 - 1\nexport const BITS19 = BIT20 - 1\nexport const BITS20 = BIT21 - 1\nexport const BITS21 = BIT22 - 1\nexport const BITS22 = BIT23 - 1\nexport const BITS23 = BIT24 - 1\nexport const BITS24 = BIT25 - 1\nexport const BITS25 = BIT26 - 1\nexport const BITS26 = BIT27 - 1\nexport const BITS27 = BIT28 - 1\nexport const BITS28 = BIT29 - 1\nexport const BITS29 = BIT30 - 1\nexport const BITS30 = BIT31 - 1\n/**\n * @type {number}\n */\nexport const BITS31 = 0x7FFFFFFF\n/**\n * @type {number}\n */\nexport const BITS32 = 0xFFFFFFFF\n","import * as array from './array.js'\n\n/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * The largest utf16 character.\n * Corresponds to Uint8Array([255, 255]) or charcodeof(2x2^8)\n */\nexport const MAX_UTF16_CHARACTER = fromCharCode(65535)\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* c8 ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* c8 ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* c8 ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* c8 ignore start */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* c8 ignore next */\n utf8TextDecoder = null\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* c8 ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n\n/**\n * @param {string} source\n * @param {number} n\n */\nexport const repeat = (source, n) => array.unfold(n, () => source).join('')\n","/**\n * Efficient schema-less binary decoding with support for variable length encoding.\n *\n * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module decoding\n */\n\nimport * as binary from './binary.js'\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as string from './string.js'\nimport * as error from './error.js'\nimport * as encoding from './encoding.js'\n\nconst errorUnexpectedEndOfArray = error.create('Unexpected end of array')\nconst errorIntegerOutOfRange = error.create('Integer out of Range')\n\n/**\n * A Decoder handles the decoding of an Uint8Array.\n */\nexport class Decoder {\n /**\n * @param {Uint8Array} uint8Array Binary data to decode\n */\n constructor (uint8Array) {\n /**\n * Decoding target.\n *\n * @type {Uint8Array}\n */\n this.arr = uint8Array\n /**\n * Current decoding position.\n *\n * @type {number}\n */\n this.pos = 0\n }\n}\n\n/**\n * @function\n * @param {Uint8Array} uint8Array\n * @return {Decoder}\n */\nexport const createDecoder = uint8Array => new Decoder(uint8Array)\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {boolean}\n */\nexport const hasContent = decoder => decoder.pos !== decoder.arr.length\n\n/**\n * Clone a decoder instance.\n * Optionally set a new position parameter.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} [newPos] Defaults to current position\n * @return {Decoder} A clone of `decoder`\n */\nexport const clone = (decoder, newPos = decoder.pos) => {\n const _decoder = createDecoder(decoder.arr)\n _decoder.pos = newPos\n return _decoder\n}\n\n/**\n * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} len The length of bytes to read\n * @return {Uint8Array}\n */\nexport const readUint8Array = (decoder, len) => {\n const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)\n decoder.pos += len\n return view\n}\n\n/**\n * Read variable length Uint8Array.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder))\n\n/**\n * Read the rest of the content as an ArrayBuffer\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTailAsUint8Array = decoder => readUint8Array(decoder, decoder.arr.length - decoder.pos)\n\n/**\n * Skip one byte, jump to the next position.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} The next position\n */\nexport const skip8 = decoder => decoder.pos++\n\n/**\n * Read one byte as unsigned integer.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} Unsigned 8-bit integer\n */\nexport const readUint8 = decoder => decoder.arr[decoder.pos++]\n\n/**\n * Read 2 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint16 = decoder => {\n const uint =\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n decoder.pos += 2\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32 = decoder => {\n const uint =\n (decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32BigEndian = decoder => {\n const uint =\n (decoder.arr[decoder.pos + 3] +\n (decoder.arr[decoder.pos + 2] << 8) +\n (decoder.arr[decoder.pos + 1] << 16) +\n (decoder.arr[decoder.pos] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint8 = decoder => decoder.arr[decoder.pos]\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint16 = decoder =>\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint32 = decoder => (\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)\n) >>> 0\n\n/**\n * Read unsigned integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarUint = decoder => {\n let num = 0\n let mult = 1\n const len = decoder.arr.length\n while (decoder.pos < len) {\n const r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult // shift $r << (7*#iterations) and add it to num\n mult *= 128 // next iteration, shift 7 \"more\" to the left\n if (r < binary.BIT8) {\n return num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Read signed integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarInt = decoder => {\n let r = decoder.arr[decoder.pos++]\n let num = r & binary.BITS6\n let mult = 64\n const sign = (r & binary.BIT7) > 0 ? -1 : 1\n if ((r & binary.BIT8) === 0) {\n // don't continue reading\n return sign * num\n }\n const len = decoder.arr.length\n while (decoder.pos < len) {\n r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult\n mult *= 128\n if (r < binary.BIT8) {\n return sign * num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarUint = decoder => {\n const pos = decoder.pos\n const s = readVarUint(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarInt = decoder => {\n const pos = decoder.pos\n const s = readVarInt(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * We don't test this function anymore as we use native decoding/encoding by default now.\n * Better not modify this anymore..\n *\n * Transforming utf8 to a string is pretty expensive. The code performs 10x better\n * when String.fromCodePoint is fed with all characters as arguments.\n * But most environments have a maximum number of arguments per functions.\n * For effiency reasons we apply a maximum of 10000 characters at once.\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String.\n */\n/* c8 ignore start */\nexport const _readVarStringPolyfill = decoder => {\n let remainingLen = readVarUint(decoder)\n if (remainingLen === 0) {\n return ''\n } else {\n let encodedString = String.fromCodePoint(readUint8(decoder)) // remember to decrease remainingLen\n if (--remainingLen < 100) { // do not create a Uint8Array for small strings\n while (remainingLen--) {\n encodedString += String.fromCodePoint(readUint8(decoder))\n }\n } else {\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n // this is dangerous, we create a fresh array view from the existing buffer\n const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen)\n decoder.pos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n }\n return decodeURIComponent(escape(encodedString))\n }\n}\n/* c8 ignore stop */\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n */\nexport const _readVarStringNative = decoder =>\n /** @type any */ (string.utf8TextDecoder).decode(readVarUint8Array(decoder))\n\n/**\n * Read string of variable length\n * * varUint is used to store the length of the string\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n *\n */\n/* c8 ignore next */\nexport const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill\n\n/**\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTerminatedUint8Array = decoder => {\n const encoder = encoding.createEncoder()\n let b\n while (true) {\n b = readUint8(decoder)\n if (b === 0) {\n return encoding.toUint8Array(encoder)\n }\n if (b === 1) {\n b = readUint8(decoder)\n }\n encoding.write(encoder, b)\n }\n}\n\n/**\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const readTerminatedString = decoder => string.decodeUtf8(readTerminatedUint8Array(decoder))\n\n/**\n * Look ahead and read varString without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const peekVarString = decoder => {\n const pos = decoder.pos\n const s = readVarString(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * @param {Decoder} decoder\n * @param {number} len\n * @return {DataView}\n */\nexport const readFromDataView = (decoder, len) => {\n const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len)\n decoder.pos += len\n return dv\n}\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigUint64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigUint64(0, false)\n\n/**\n * @type {Array}\n */\nconst readAnyLookupTable = [\n decoder => undefined, // CASE 127: undefined\n decoder => null, // CASE 126: null\n readVarInt, // CASE 125: integer\n readFloat32, // CASE 124: float32\n readFloat64, // CASE 123: float64\n readBigInt64, // CASE 122: bigint\n decoder => false, // CASE 121: boolean (false)\n decoder => true, // CASE 120: boolean (true)\n readVarString, // CASE 119: string\n decoder => { // CASE 118: object\n const len = readVarUint(decoder)\n /**\n * @type {Object}\n */\n const obj = {}\n for (let i = 0; i < len; i++) {\n const key = readVarString(decoder)\n obj[key] = readAny(decoder)\n }\n return obj\n },\n decoder => { // CASE 117: array\n const len = readVarUint(decoder)\n const arr = []\n for (let i = 0; i < len; i++) {\n arr.push(readAny(decoder))\n }\n return arr\n },\n readVarUint8Array // CASE 116: Uint8Array\n]\n\n/**\n * @param {Decoder} decoder\n */\nexport const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder)\n\n/**\n * T must not be null.\n *\n * @template T\n */\nexport class RleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {function(Decoder):T} reader\n */\n constructor (uint8Array, reader) {\n super(uint8Array)\n /**\n * The reader\n */\n this.reader = reader\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = this.reader(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {T} */ (this.s)\n }\n}\n\nexport class IntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @return {number}\n */\n read () {\n this.s += readVarInt(this)\n return this.s\n }\n}\n\nexport class RleIntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n this.s += readVarInt(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class UintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class IncUintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s++)\n }\n}\n\nexport class IntDiffOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n const diff = readVarInt(this)\n // if the first bit is set, we read more data\n const hasCount = diff & 1\n this.diff = math.floor(diff / 2) // shift >> 1\n this.count = 1\n if (hasCount) {\n this.count = readVarUint(this) + 2\n }\n }\n this.s += this.diff\n this.count--\n return this.s\n }\n}\n\nexport class StringDecoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n this.decoder = new UintOptRleDecoder(uint8Array)\n this.str = readVarString(this.decoder)\n /**\n * @type {number}\n */\n this.spos = 0\n }\n\n /**\n * @return {string}\n */\n read () {\n const end = this.spos + this.decoder.read()\n const res = this.str.slice(this.spos, end)\n this.spos = end\n return res\n }\n}\n","/**\n * Error helpers.\n *\n * @module error\n */\n\n/**\n * @param {string} s\n * @return {Error}\n */\n/* c8 ignore next */\nexport const create = s => new Error(s)\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n","/**\n * Isomorphic module for true random numbers / buffers / uuids.\n *\n * Attention: falls back to Math.random if the browser does not support crypto.\n *\n * @module random\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\nimport { getRandomValues } from 'lib0/webcrypto'\n\nexport const rand = Math.random\n\nexport const uint32 = () => getRandomValues(new Uint32Array(1))[0]\n\nexport const uint53 = () => {\n const arr = getRandomValues(new Uint32Array(8))\n return (arr[0] & binary.BITS21) * (binary.BITS32 + 1) + (arr[1] >>> 0)\n}\n\n/**\n * @template T\n * @param {Array} arr\n * @return {T}\n */\nexport const oneOf = arr => arr[math.floor(rand() * arr.length)]\n\n// @ts-ignore\nconst uuidv4Template = [1e7] + -1e3 + -4e3 + -8e3 + -1e11\n\n/**\n * @return {string}\n */\nexport const uuidv4 = () => uuidv4Template.replace(/[018]/g, /** @param {number} c */ c =>\n (c ^ uint32() & 15 >> c / 4).toString(16)\n)\n","/* eslint-env browser */\n\nexport const subtle = crypto.subtle\nexport const getRandomValues = crypto.getRandomValues.bind(crypto)\n","/**\n * Utility helpers to work with promises.\n *\n * @module promise\n */\n\nimport * as time from './time.js'\n\n/**\n * @template T\n * @callback PromiseResolve\n * @param {T|PromiseLike} [result]\n */\n\n/**\n * @template T\n * @param {function(PromiseResolve,function(Error):void):any} f\n * @return {Promise}\n */\nexport const create = f => /** @type {Promise} */ (new Promise(f))\n\n/**\n * @param {function(function():void,function(Error):void):void} f\n * @return {Promise}\n */\nexport const createEmpty = f => new Promise(f)\n\n/**\n * `Promise.all` wait for all promises in the array to resolve and return the result\n * @template {unknown[] | []} PS\n *\n * @param {PS} ps\n * @return {Promise<{ -readonly [P in keyof PS]: Awaited }>}\n */\nexport const all = Promise.all.bind(Promise)\n\n/**\n * @param {Error} [reason]\n * @return {Promise}\n */\nexport const reject = reason => Promise.reject(reason)\n\n/**\n * @template T\n * @param {T|void} res\n * @return {Promise}\n */\nexport const resolve = res => Promise.resolve(res)\n\n/**\n * @template T\n * @param {T} res\n * @return {Promise}\n */\nexport const resolveWith = res => Promise.resolve(res)\n\n/**\n * @todo Next version, reorder parameters: check, [timeout, [intervalResolution]]\n * @deprecated use untilAsync instead\n *\n * @param {number} timeout\n * @param {function():boolean} check\n * @param {number} [intervalResolution]\n * @return {Promise}\n */\nexport const until = (timeout, check, intervalResolution = 10) => create((resolve, reject) => {\n const startTime = time.getUnixTime()\n const hasTimeout = timeout > 0\n const untilInterval = () => {\n if (check()) {\n clearInterval(intervalHandle)\n resolve()\n } else if (hasTimeout) {\n /* c8 ignore else */\n if (time.getUnixTime() - startTime > timeout) {\n clearInterval(intervalHandle)\n reject(new Error('Timeout'))\n }\n }\n }\n const intervalHandle = setInterval(untilInterval, intervalResolution)\n})\n\n/**\n * @param {()=>Promise|boolean} check\n * @param {number} timeout\n * @param {number} intervalResolution\n * @return {Promise}\n */\nexport const untilAsync = async (check, timeout = 0, intervalResolution = 10) => {\n const startTime = time.getUnixTime()\n const noTimeout = timeout <= 0\n // eslint-disable-next-line no-unmodified-loop-condition\n while (noTimeout || time.getUnixTime() - startTime <= timeout) {\n if (await check()) return\n await wait(intervalResolution)\n }\n throw new Error('Timeout')\n}\n\n/**\n * @param {number} timeout\n * @return {Promise}\n */\nexport const wait = timeout => create((resolve, _reject) => setTimeout(resolve, timeout))\n\n/**\n * Checks if an object is a promise using ducktyping.\n *\n * Promises are often polyfilled, so it makes sense to add some additional guarantees if the user of this\n * library has some insane environment where global Promise objects are overwritten.\n *\n * @param {any} p\n * @return {boolean}\n */\nexport const isPromise = p => p instanceof Promise || (p && p.then && p.catch && p.finally)\n","/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* c8 ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n","/**\n * Utility module to convert metric values.\n *\n * @module metric\n */\n\nimport * as math from './math.js'\n\nexport const yotta = 1e24\nexport const zetta = 1e21\nexport const exa = 1e18\nexport const peta = 1e15\nexport const tera = 1e12\nexport const giga = 1e9\nexport const mega = 1e6\nexport const kilo = 1e3\nexport const hecto = 1e2\nexport const deca = 10\nexport const deci = 0.1\nexport const centi = 0.01\nexport const milli = 1e-3\nexport const micro = 1e-6\nexport const nano = 1e-9\nexport const pico = 1e-12\nexport const femto = 1e-15\nexport const atto = 1e-18\nexport const zepto = 1e-21\nexport const yocto = 1e-24\n\nconst prefixUp = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']\nconst prefixDown = ['', 'm', 'μ', 'n', 'p', 'f', 'a', 'z', 'y']\n\n/**\n * Calculate the metric prefix for a number. Assumes E.g. `prefix(1000) = { n: 1, prefix: 'k' }`\n *\n * @param {number} n\n * @param {number} [baseMultiplier] Multiplier of the base (10^(3*baseMultiplier)). E.g. `convert(time, -3)` if time is already in milli seconds\n * @return {{n:number,prefix:string}}\n */\nexport const prefix = (n, baseMultiplier = 0) => {\n const nPow = n === 0 ? 0 : math.log10(n)\n let mult = 0\n while (nPow < mult * 3 && baseMultiplier > -8) {\n baseMultiplier--\n mult--\n }\n while (nPow >= 3 + mult * 3 && baseMultiplier < 8) {\n baseMultiplier++\n mult++\n }\n const prefix = baseMultiplier < 0 ? prefixDown[-baseMultiplier] : prefixUp[baseMultiplier]\n return {\n n: math.round((mult > 0 ? n / math.exp10(mult * 3) : n * math.exp10(mult * -3)) * 1e12) / 1e12,\n prefix\n }\n}\n","/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* c8 ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/* eslint-env browser */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* c8 ignore start */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n/* c8 ignore stop */\n\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\n/* c8 ignore start */\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n if (typeof localStorage !== 'undefined' && localStorage) {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n/* c8 ignore stop */\n\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\n/* c8 ignore next */\nexport const varStorage = _localStorage\n\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n\n/**\n * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((array.isArray(a) && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/* c8 ignore start */\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n/* c8 ignore stop */\n\nexport const isArray = array.isArray\n\n/**\n * @param {any} s\n * @return {s is String}\n */\nexport const isString = (s) => s && s.constructor === String\n\n/**\n * @param {any} n\n * @return {n is Number}\n */\nexport const isNumber = n => n != null && n.constructor === Number\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {any} n\n * @param {TYPE} T\n * @return {n is InstanceType}\n */\nexport const is = (n, T) => n && n.constructor === T\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {TYPE} T\n */\nexport const isTemplate = (T) =>\n /**\n * @param {any} n\n * @return {n is InstanceType}\n **/\n n => n && n.constructor === T\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n","/**\n * Isomorphic logging module with support for colors!\n *\n * @module logging\n */\n\nimport * as env from './environment.js'\nimport * as set from './set.js'\nimport * as pair from './pair.js'\nimport * as dom from './dom.js'\nimport * as json from './json.js'\nimport * as map from './map.js'\nimport * as eventloop from './eventloop.js'\nimport * as math from './math.js'\nimport * as common from './logging.common.js'\n\nexport { BOLD, UNBOLD, BLUE, GREY, GREEN, RED, PURPLE, ORANGE, UNCOLOR } from './logging.common.js'\n\n/**\n * @type {Object>}\n */\nconst _browserStyleMap = {\n [common.BOLD]: pair.create('font-weight', 'bold'),\n [common.UNBOLD]: pair.create('font-weight', 'normal'),\n [common.BLUE]: pair.create('color', 'blue'),\n [common.GREEN]: pair.create('color', 'green'),\n [common.GREY]: pair.create('color', 'grey'),\n [common.RED]: pair.create('color', 'red'),\n [common.PURPLE]: pair.create('color', 'purple'),\n [common.ORANGE]: pair.create('color', 'orange'), // not well supported in chrome when debugging node with inspector - TODO: deprecate\n [common.UNCOLOR]: pair.create('color', 'black')\n}\n\n/**\n * @param {Array} args\n * @return {Array}\n */\n/* c8 ignore start */\nconst computeBrowserLoggingArgs = (args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const styles = []\n const currentStyle = map.create()\n /**\n * @type {Array}\n */\n let logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n break\n }\n if (arg.constructor === String || arg.constructor === Number) {\n const style = dom.mapToStyleString(currentStyle)\n if (i > 0 || style.length > 0) {\n strBuilder.push('%c' + arg)\n styles.push(style)\n } else {\n strBuilder.push(arg)\n }\n } else {\n break\n }\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs = styles\n logArgs.unshift(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\n/* c8 ignore start */\nconst computeLoggingArgs = env.supportsColor\n ? computeBrowserLoggingArgs\n : common.computeNoColorLoggingArgs\n/* c8 ignore stop */\n\n/**\n * @param {Array} args\n */\nexport const print = (...args) => {\n console.log(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.print(args))\n}\n\n/* c8 ignore start */\n/**\n * @param {Array} args\n */\nexport const warn = (...args) => {\n console.warn(...computeLoggingArgs(args))\n args.unshift(common.ORANGE)\n vconsoles.forEach((vc) => vc.print(args))\n}\n/* c8 ignore stop */\n\n/**\n * @param {Error} err\n */\n/* c8 ignore start */\nexport const printError = (err) => {\n console.error(err)\n vconsoles.forEach((vc) => vc.printError(err))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} url image location\n * @param {number} height height of the image in pixel\n */\n/* c8 ignore start */\nexport const printImg = (url, height) => {\n if (env.isBrowser) {\n console.log(\n '%c ',\n `font-size: ${height}px; background-size: contain; background-repeat: no-repeat; background-image: url(${url})`\n )\n // console.log('%c ', `font-size: ${height}x; background: url(${url}) no-repeat;`)\n }\n vconsoles.forEach((vc) => vc.printImg(url, height))\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} base64\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printImgBase64 = (base64, height) =>\n printImg(`data:image/gif;base64,${base64}`, height)\n\n/**\n * @param {Array} args\n */\nexport const group = (...args) => {\n console.group(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.group(args))\n}\n\n/**\n * @param {Array} args\n */\nexport const groupCollapsed = (...args) => {\n console.groupCollapsed(...computeLoggingArgs(args))\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupCollapsed(args))\n}\n\nexport const groupEnd = () => {\n console.groupEnd()\n /* c8 ignore next */\n vconsoles.forEach((vc) => vc.groupEnd())\n}\n\n/**\n * @param {function():Node} createNode\n */\n/* c8 ignore next 2 */\nexport const printDom = (createNode) =>\n vconsoles.forEach((vc) => vc.printDom(createNode()))\n\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {number} height\n */\n/* c8 ignore next 2 */\nexport const printCanvas = (canvas, height) =>\n printImg(canvas.toDataURL(), height)\n\nexport const vconsoles = set.create()\n\n/**\n * @param {Array} args\n * @return {Array}\n */\n/* c8 ignore start */\nconst _computeLineSpans = (args) => {\n const spans = []\n const currentStyle = new Map()\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n let arg = args[i]\n // @ts-ignore\n const style = _browserStyleMap[arg]\n if (style !== undefined) {\n currentStyle.set(style.left, style.right)\n } else {\n if (arg === undefined) {\n arg = 'undefined '\n }\n if (arg.constructor === String || arg.constructor === Number) {\n // @ts-ignore\n const span = dom.element('span', [\n pair.create('style', dom.mapToStyleString(currentStyle))\n ], [dom.text(arg.toString())])\n if (span.innerHTML === '') {\n span.innerHTML = ' '\n }\n spans.push(span)\n } else {\n break\n }\n }\n }\n // append the rest\n for (; i < args.length; i++) {\n let content = args[i]\n if (!(content instanceof Symbol)) {\n if (content.constructor !== String && content.constructor !== Number) {\n content = ' ' + json.stringify(content) + ' '\n }\n spans.push(\n dom.element('span', [], [dom.text(/** @type {string} */ (content))])\n )\n }\n }\n return spans\n}\n/* c8 ignore stop */\n\nconst lineStyle =\n 'font-family:monospace;border-bottom:1px solid #e2e2e2;padding:2px;'\n\n/* c8 ignore start */\nexport class VConsole {\n /**\n * @param {Element} dom\n */\n constructor (dom) {\n this.dom = dom\n /**\n * @type {Element}\n */\n this.ccontainer = this.dom\n this.depth = 0\n vconsoles.add(this)\n }\n\n /**\n * @param {Array} args\n * @param {boolean} collapsed\n */\n group (args, collapsed = false) {\n eventloop.enqueue(() => {\n const triangleDown = dom.element('span', [\n pair.create('hidden', collapsed),\n pair.create('style', 'color:grey;font-size:120%;')\n ], [dom.text('▼')])\n const triangleRight = dom.element('span', [\n pair.create('hidden', !collapsed),\n pair.create('style', 'color:grey;font-size:125%;')\n ], [dom.text('▶')])\n const content = dom.element(\n 'div',\n [pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )],\n [triangleDown, triangleRight, dom.text(' ')].concat(\n _computeLineSpans(args)\n )\n )\n const nextContainer = dom.element('div', [\n pair.create('hidden', collapsed)\n ])\n const nextLine = dom.element('div', [], [content, nextContainer])\n dom.append(this.ccontainer, [nextLine])\n this.ccontainer = nextContainer\n this.depth++\n // when header is clicked, collapse/uncollapse container\n dom.addEventListener(content, 'click', (_event) => {\n nextContainer.toggleAttribute('hidden')\n triangleDown.toggleAttribute('hidden')\n triangleRight.toggleAttribute('hidden')\n })\n })\n }\n\n /**\n * @param {Array} args\n */\n groupCollapsed (args) {\n this.group(args, true)\n }\n\n groupEnd () {\n eventloop.enqueue(() => {\n if (this.depth > 0) {\n this.depth--\n // @ts-ignore\n this.ccontainer = this.ccontainer.parentElement.parentElement\n }\n })\n }\n\n /**\n * @param {Array} args\n */\n print (args) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('div', [\n pair.create(\n 'style',\n `${lineStyle};padding-left:${this.depth * 10}px`\n )\n ], _computeLineSpans(args))\n ])\n })\n }\n\n /**\n * @param {Error} err\n */\n printError (err) {\n this.print([common.RED, common.BOLD, err.toString()])\n }\n\n /**\n * @param {string} url\n * @param {number} height\n */\n printImg (url, height) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [\n dom.element('img', [\n pair.create('src', url),\n pair.create('height', `${math.round(height * 1.5)}px`)\n ])\n ])\n })\n }\n\n /**\n * @param {Node} node\n */\n printDom (node) {\n eventloop.enqueue(() => {\n dom.append(this.ccontainer, [node])\n })\n }\n\n destroy () {\n eventloop.enqueue(() => {\n vconsoles.delete(this)\n })\n }\n}\n/* c8 ignore stop */\n\n/**\n * @param {Element} dom\n */\n/* c8 ignore next */\nexport const createVConsole = (dom) => new VConsole(dom)\n\n/**\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (moduleName) => common.createModuleLogger(print, moduleName)\n","/**\n * Working with value pairs.\n *\n * @module pair\n */\n\n/**\n * @template L,R\n */\nexport class Pair {\n /**\n * @param {L} left\n * @param {R} right\n */\n constructor (left, right) {\n this.left = left\n this.right = right\n }\n}\n\n/**\n * @template L,R\n * @param {L} left\n * @param {R} right\n * @return {Pair}\n */\nexport const create = (left, right) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {R} right\n * @param {L} left\n * @return {Pair}\n */\nexport const createReversed = (right, left) => new Pair(left, right)\n\n/**\n * @template L,R\n * @param {Array>} arr\n * @param {function(L, R):any} f\n */\nexport const forEach = (arr, f) => arr.forEach(p => f(p.left, p.right))\n\n/**\n * @template L,R,X\n * @param {Array>} arr\n * @param {function(L, R):X} f\n * @return {Array}\n */\nexport const map = (arr, f) => arr.map(p => f(p.left, p.right))\n","/* eslint-env browser */\n\n/**\n * Utility module to work with the DOM.\n *\n * @module dom\n */\n\nimport * as pair from './pair.js'\nimport * as map from './map.js'\n\n/* c8 ignore start */\n/**\n * @type {Document}\n */\nexport const doc = /** @type {Document} */ (typeof document !== 'undefined' ? document : {})\n\n/**\n * @param {string} name\n * @return {HTMLElement}\n */\nexport const createElement = name => doc.createElement(name)\n\n/**\n * @return {DocumentFragment}\n */\nexport const createDocumentFragment = () => doc.createDocumentFragment()\n\n/**\n * @param {string} text\n * @return {Text}\n */\nexport const createTextNode = text => doc.createTextNode(text)\n\nexport const domParser = /** @type {DOMParser} */ (typeof DOMParser !== 'undefined' ? new DOMParser() : null)\n\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Object} opts\n */\nexport const emitCustomEvent = (el, name, opts) => el.dispatchEvent(new CustomEvent(name, opts))\n\n/**\n * @param {Element} el\n * @param {Array>} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributes = (el, attrs) => {\n pair.forEach(attrs, (key, value) => {\n if (value === false) {\n el.removeAttribute(key)\n } else if (value === true) {\n el.setAttribute(key, '')\n } else {\n // @ts-ignore\n el.setAttribute(key, value)\n }\n })\n return el\n}\n\n/**\n * @param {Element} el\n * @param {Map} attrs Array of key-value pairs\n * @return {Element}\n */\nexport const setAttributesMap = (el, attrs) => {\n attrs.forEach((value, key) => { el.setAttribute(key, value) })\n return el\n}\n\n/**\n * @param {Array|HTMLCollection} children\n * @return {DocumentFragment}\n */\nexport const fragment = children => {\n const fragment = createDocumentFragment()\n for (let i = 0; i < children.length; i++) {\n appendChild(fragment, children[i])\n }\n return fragment\n}\n\n/**\n * @param {Element} parent\n * @param {Array} nodes\n * @return {Element}\n */\nexport const append = (parent, nodes) => {\n appendChild(parent, fragment(nodes))\n return parent\n}\n\n/**\n * @param {HTMLElement} el\n */\nexport const remove = el => el.remove()\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const addEventListener = (el, name, f) => el.addEventListener(name, f)\n\n/**\n * @param {EventTarget} el\n * @param {string} name\n * @param {EventListener} f\n */\nexport const removeEventListener = (el, name, f) => el.removeEventListener(name, f)\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\nexport const addEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => addEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {Node} node\n * @param {Array>} listeners\n * @return {Node}\n */\nexport const removeEventListeners = (node, listeners) => {\n pair.forEach(listeners, (name, f) => removeEventListener(node, name, f))\n return node\n}\n\n/**\n * @param {string} name\n * @param {Array|pair.Pair>} attrs Array of key-value pairs\n * @param {Array} children\n * @return {Element}\n */\nexport const element = (name, attrs = [], children = []) =>\n append(setAttributes(createElement(name), attrs), children)\n\n/**\n * @param {number} width\n * @param {number} height\n */\nexport const canvas = (width, height) => {\n const c = /** @type {HTMLCanvasElement} */ (createElement('canvas'))\n c.height = height\n c.width = width\n return c\n}\n\n/**\n * @param {string} t\n * @return {Text}\n */\nexport const text = createTextNode\n\n/**\n * @param {pair.Pair} pair\n */\nexport const pairToStyleString = pair => `${pair.left}:${pair.right};`\n\n/**\n * @param {Array>} pairs\n * @return {string}\n */\nexport const pairsToStyleString = pairs => pairs.map(pairToStyleString).join('')\n\n/**\n * @param {Map} m\n * @return {string}\n */\nexport const mapToStyleString = m => map.map(m, (value, key) => `${key}:${value};`).join('')\n\n/**\n * @todo should always query on a dom element\n *\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {HTMLElement | null}\n */\nexport const querySelector = (el, query) => el.querySelector(query)\n\n/**\n * @param {HTMLElement|ShadowRoot} el\n * @param {string} query\n * @return {NodeListOf}\n */\nexport const querySelectorAll = (el, query) => el.querySelectorAll(query)\n\n/**\n * @param {string} id\n * @return {HTMLElement}\n */\nexport const getElementById = id => /** @type {HTMLElement} */ (doc.getElementById(id))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nconst _parse = html => domParser.parseFromString(`${html}`, 'text/html').body\n\n/**\n * @param {string} html\n * @return {DocumentFragment}\n */\nexport const parseFragment = html => fragment(/** @type {any} */ (_parse(html).childNodes))\n\n/**\n * @param {string} html\n * @return {HTMLElement}\n */\nexport const parseElement = html => /** @type HTMLElement */ (_parse(html).firstElementChild)\n\n/**\n * @param {HTMLElement} oldEl\n * @param {HTMLElement|DocumentFragment} newEl\n */\nexport const replaceWith = (oldEl, newEl) => oldEl.replaceWith(newEl)\n\n/**\n * @param {HTMLElement} parent\n * @param {HTMLElement} el\n * @param {Node|null} ref\n * @return {HTMLElement}\n */\nexport const insertBefore = (parent, el, ref) => parent.insertBefore(el, ref)\n\n/**\n * @param {Node} parent\n * @param {Node} child\n * @return {Node}\n */\nexport const appendChild = (parent, child) => parent.appendChild(child)\n\nexport const ELEMENT_NODE = doc.ELEMENT_NODE\nexport const TEXT_NODE = doc.TEXT_NODE\nexport const CDATA_SECTION_NODE = doc.CDATA_SECTION_NODE\nexport const COMMENT_NODE = doc.COMMENT_NODE\nexport const DOCUMENT_NODE = doc.DOCUMENT_NODE\nexport const DOCUMENT_TYPE_NODE = doc.DOCUMENT_TYPE_NODE\nexport const DOCUMENT_FRAGMENT_NODE = doc.DOCUMENT_FRAGMENT_NODE\n\n/**\n * @param {any} node\n * @param {number} type\n */\nexport const checkNodeType = (node, type) => node.nodeType === type\n\n/**\n * @param {Node} parent\n * @param {HTMLElement} child\n */\nexport const isParentOf = (parent, child) => {\n let p = child.parentNode\n while (p && p !== parent) {\n p = p.parentNode\n }\n return p === parent\n}\n/* c8 ignore stop */\n","/**\n * JSON utility functions.\n *\n * @module json\n */\n\n/**\n * Transform JavaScript object to JSON.\n *\n * @param {any} object\n * @return {string}\n */\nexport const stringify = JSON.stringify\n\n/**\n * Parse JSON object.\n *\n * @param {string} json\n * @return {any}\n */\nexport const parse = JSON.parse\n","/* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */\n\n/**\n * Utility module to work with EcmaScript's event loop.\n *\n * @module eventloop\n */\n\n/**\n * @type {Array}\n */\nlet queue = []\n\nconst _runQueue = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]()\n }\n queue = []\n}\n\n/**\n * @param {function():void} f\n */\nexport const enqueue = f => {\n queue.push(f)\n if (queue.length === 1) {\n setTimeout(_runQueue, 0)\n }\n}\n\n/**\n * @typedef {Object} TimeoutObject\n * @property {function} TimeoutObject.destroy\n */\n\n/**\n * @param {function(number):void} clearFunction\n */\nconst createTimeoutClass = clearFunction => class TT {\n /**\n * @param {number} timeoutId\n */\n constructor (timeoutId) {\n this._ = timeoutId\n }\n\n destroy () {\n clearFunction(this._)\n }\n}\n\nconst Timeout = createTimeoutClass(clearTimeout)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const timeout = (timeout, callback) => new Timeout(setTimeout(callback, timeout))\n\nconst Interval = createTimeoutClass(clearInterval)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const interval = (timeout, callback) => new Interval(setInterval(callback, timeout))\n\n/* c8 ignore next */\nexport const Animation = createTimeoutClass(arg => typeof requestAnimationFrame !== 'undefined' && cancelAnimationFrame(arg))\n\n/**\n * @param {function(number):void} cb\n * @return {TimeoutObject}\n */\n/* c8 ignore next */\nexport const animationFrame = cb => typeof requestAnimationFrame === 'undefined' ? timeout(0, cb) : new Animation(requestAnimationFrame(cb))\n\n/* c8 ignore next */\n// @ts-ignore\nconst Idle = createTimeoutClass(arg => typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(arg))\n\n/**\n * Note: this is experimental and is probably only useful in browsers.\n *\n * @param {function} cb\n * @return {TimeoutObject}\n */\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const idleCallback = cb => typeof requestIdleCallback !== 'undefined' ? new Idle(requestIdleCallback(cb)) : timeout(1000, cb)\n\n/**\n * @param {number} timeout Timeout of the debounce action\n * @return {function(function():void):void}\n */\nexport const createDebouncer = timeout => {\n let timer = -1\n return f => {\n clearTimeout(timer)\n if (f) {\n timer = /** @type {any} */ (setTimeout(f, timeout))\n }\n }\n}\n","import * as symbol from './symbol.js'\nimport * as time from './time.js'\nimport * as env from './environment.js'\nimport * as func from './function.js'\nimport * as json from './json.js'\n\nexport const BOLD = symbol.create()\nexport const UNBOLD = symbol.create()\nexport const BLUE = symbol.create()\nexport const GREY = symbol.create()\nexport const GREEN = symbol.create()\nexport const RED = symbol.create()\nexport const PURPLE = symbol.create()\nexport const ORANGE = symbol.create()\nexport const UNCOLOR = symbol.create()\n\n/* c8 ignore start */\n/**\n * @param {Array} args\n * @return {Array}\n */\nexport const computeNoColorLoggingArgs = args => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = /** @type {Array} */ (/** @type {[function]} */ (args)[0]())\n }\n const strBuilder = []\n const logArgs = []\n // try with formatting until we find something unsupported\n let i = 0\n for (; i < args.length; i++) {\n const arg = args[i]\n if (arg === undefined) {\n break\n } else if (arg.constructor === String || arg.constructor === Number) {\n strBuilder.push(arg)\n } else if (arg.constructor === Object) {\n break\n }\n }\n if (i > 0) {\n // create logArgs with what we have so far\n logArgs.push(strBuilder.join(''))\n }\n // append the rest\n for (; i < args.length; i++) {\n const arg = args[i]\n if (!(arg instanceof Symbol)) {\n logArgs.push(arg)\n }\n }\n return logArgs\n}\n/* c8 ignore stop */\n\nconst loggingColors = [GREEN, PURPLE, ORANGE, BLUE]\nlet nextColor = 0\nlet lastLoggingTime = time.getUnixTime()\n\n/* c8 ignore start */\n/**\n * @param {function(...any):void} _print\n * @param {string} moduleName\n * @return {function(...any):void}\n */\nexport const createModuleLogger = (_print, moduleName) => {\n const color = loggingColors[nextColor]\n const debugRegexVar = env.getVariable('log')\n const doLogging = debugRegexVar !== null &&\n (debugRegexVar === '*' || debugRegexVar === 'true' ||\n new RegExp(debugRegexVar, 'gi').test(moduleName))\n nextColor = (nextColor + 1) % loggingColors.length\n moduleName += ': '\n return !doLogging\n ? func.nop\n : (...args) => {\n if (args.length === 1 && args[0]?.constructor === Function) {\n args = args[0]()\n }\n const timeNow = time.getUnixTime()\n const timeDiff = timeNow - lastLoggingTime\n lastLoggingTime = timeNow\n _print(\n color,\n moduleName,\n UNCOLOR,\n ...args.map((arg) => {\n if (arg != null && arg.constructor === Uint8Array) {\n arg = Array.from(arg)\n }\n const t = typeof arg\n switch (t) {\n case 'string':\n case 'symbol':\n return arg\n default: {\n return json.stringify(arg)\n }\n }\n }),\n color,\n ' +' + timeDiff + 'ms'\n )\n }\n}\n/* c8 ignore stop */\n","/**\n * Utility module to work with EcmaScript Symbols.\n *\n * @module symbol\n */\n\n/**\n * Return fresh symbol.\n *\n * @return {Symbol}\n */\nexport const create = Symbol\n\n/**\n * @param {any} s\n * @return {boolean}\n */\nexport const isSymbol = s => typeof s === 'symbol'\n","/**\n * Utility module to create and manipulate Iterators.\n *\n * @module iterator\n */\n\n/**\n * @template T,R\n * @param {Iterator} iterator\n * @param {function(T):R} f\n * @return {IterableIterator}\n */\nexport const mapIterator = (iterator, f) => ({\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next () {\n const r = iterator.next()\n return { value: r.done ? undefined : f(r.value), done: r.done }\n }\n})\n\n/**\n * @template T\n * @param {function():IteratorResult} next\n * @return {IterableIterator}\n */\nexport const createIterator = next => ({\n /**\n * @return {IterableIterator}\n */\n [Symbol.iterator] () {\n return this\n },\n // @ts-ignore\n next\n})\n\n/**\n * @template T\n * @param {Iterator} iterator\n * @param {function(T):boolean} filter\n */\nexport const iteratorFilter = (iterator, filter) => createIterator(() => {\n let res\n do {\n res = iterator.next()\n } while (!res.done && !filter(res.value))\n return res\n})\n\n/**\n * @template T,M\n * @param {Iterator} iterator\n * @param {function(T):M} fmap\n */\nexport const iteratorMap = (iterator, fmap) => createIterator(() => {\n const { done, value } = iterator.next()\n return { done, value: done ? undefined : fmap(value) }\n})\n","/**\n* Muuri v0.9.5\n* https://muuri.dev/\n* Copyright (c) 2015-present, Haltu Oy\n* Released under the MIT license\n* https://github.com/haltu/muuri/blob/master/LICENSE.md\n* @license MIT\n*\n* Muuri Packer\n* Copyright (c) 2016-present, Niklas Rämö \n* @license MIT\n*\n* Muuri Ticker / Muuri Emitter / Muuri Dragger\n* Copyright (c) 2018-present, Niklas Rämö \n* @license MIT\n*\n* Muuri AutoScroller\n* Copyright (c) 2019-present, Niklas Rämö \n* @license MIT\n*/\n\nvar GRID_INSTANCES = {};\nvar ITEM_ELEMENT_MAP = typeof Map === 'function' ? new Map() : null;\n\nvar ACTION_SWAP = 'swap';\nvar ACTION_MOVE = 'move';\n\nvar EVENT_SYNCHRONIZE = 'synchronize';\nvar EVENT_LAYOUT_START = 'layoutStart';\nvar EVENT_LAYOUT_END = 'layoutEnd';\nvar EVENT_LAYOUT_ABORT = 'layoutAbort';\nvar EVENT_ADD = 'add';\nvar EVENT_REMOVE = 'remove';\nvar EVENT_SHOW_START = 'showStart';\nvar EVENT_SHOW_END = 'showEnd';\nvar EVENT_HIDE_START = 'hideStart';\nvar EVENT_HIDE_END = 'hideEnd';\nvar EVENT_FILTER = 'filter';\nvar EVENT_SORT = 'sort';\nvar EVENT_MOVE = 'move';\nvar EVENT_SEND = 'send';\nvar EVENT_BEFORE_SEND = 'beforeSend';\nvar EVENT_RECEIVE = 'receive';\nvar EVENT_BEFORE_RECEIVE = 'beforeReceive';\nvar EVENT_DRAG_INIT = 'dragInit';\nvar EVENT_DRAG_START = 'dragStart';\nvar EVENT_DRAG_MOVE = 'dragMove';\nvar EVENT_DRAG_SCROLL = 'dragScroll';\nvar EVENT_DRAG_END = 'dragEnd';\nvar EVENT_DRAG_RELEASE_START = 'dragReleaseStart';\nvar EVENT_DRAG_RELEASE_END = 'dragReleaseEnd';\nvar EVENT_DESTROY = 'destroy';\n\nvar HAS_TOUCH_EVENTS = 'ontouchstart' in window;\nvar HAS_POINTER_EVENTS = !!window.PointerEvent;\nvar HAS_MS_POINTER_EVENTS = !!window.navigator.msPointerEnabled;\n\nvar MAX_SAFE_FLOAT32_INTEGER = 16777216;\n\n/**\n * Event emitter constructor.\n *\n * @class\n */\nfunction Emitter() {\n this._events = {};\n this._queue = [];\n this._counter = 0;\n this._clearOnEmit = false;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Bind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Emitter}\n */\nEmitter.prototype.on = function (event, listener) {\n if (!this._events || !event || !listener) return this;\n\n // Get listeners queue and create it if it does not exist.\n var listeners = this._events[event];\n if (!listeners) listeners = this._events[event] = [];\n\n // Add the listener to the queue.\n listeners.push(listener);\n\n return this;\n};\n\n/**\n * Unbind all event listeners that match the provided listener function.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Emitter}\n */\nEmitter.prototype.off = function (event, listener) {\n if (!this._events || !event || !listener) return this;\n\n // Get listeners and return immediately if none is found.\n var listeners = this._events[event];\n if (!listeners || !listeners.length) return this;\n\n // Remove all matching listeners.\n var index;\n while ((index = listeners.indexOf(listener)) !== -1) {\n listeners.splice(index, 1);\n }\n\n return this;\n};\n\n/**\n * Unbind all listeners of the provided event.\n *\n * @public\n * @param {String} event\n * @returns {Emitter}\n */\nEmitter.prototype.clear = function (event) {\n if (!this._events || !event) return this;\n\n var listeners = this._events[event];\n if (listeners) {\n listeners.length = 0;\n delete this._events[event];\n }\n\n return this;\n};\n\n/**\n * Emit all listeners in a specified event with the provided arguments.\n *\n * @public\n * @param {String} event\n * @param {...*} [args]\n * @returns {Emitter}\n */\nEmitter.prototype.emit = function (event) {\n if (!this._events || !event) {\n this._clearOnEmit = false;\n return this;\n }\n\n // Get event listeners and quit early if there's no listeners.\n var listeners = this._events[event];\n if (!listeners || !listeners.length) {\n this._clearOnEmit = false;\n return this;\n }\n\n var queue = this._queue;\n var startIndex = queue.length;\n var argsLength = arguments.length - 1;\n var args;\n\n // If we have more than 3 arguments let's put the arguments in an array and\n // apply it to the listeners.\n if (argsLength > 3) {\n args = [];\n args.push.apply(args, arguments);\n args.shift();\n }\n\n // Add the current listeners to the callback queue before we process them.\n // This is necessary to guarantee that all of the listeners are called in\n // correct order even if new event listeners are removed/added during\n // processing and/or events are emitted during processing.\n queue.push.apply(queue, listeners);\n\n // Reset the event's listeners if need be.\n if (this._clearOnEmit) {\n listeners.length = 0;\n this._clearOnEmit = false;\n }\n\n // Increment queue counter. This is needed for the scenarios where emit is\n // triggered while the queue is already processing. We need to keep track of\n // how many \"queue processors\" there are active so that we can safely reset\n // the queue in the end when the last queue processor is finished.\n ++this._counter;\n\n // Process the queue (the specific part of it for this emit).\n var i = startIndex;\n var endIndex = queue.length;\n for (; i < endIndex; i++) {\n // prettier-ignore\n argsLength === 0 ? queue[i]() :\n argsLength === 1 ? queue[i](arguments[1]) :\n argsLength === 2 ? queue[i](arguments[1], arguments[2]) :\n argsLength === 3 ? queue[i](arguments[1], arguments[2], arguments[3]) :\n queue[i].apply(null, args);\n\n // Stop processing if the emitter is destroyed.\n if (!this._events) return this;\n }\n\n // Decrement queue process counter.\n --this._counter;\n\n // Reset the queue if there are no more queue processes running.\n if (!this._counter) queue.length = 0;\n\n return this;\n};\n\n/**\n * Emit all listeners in a specified event with the provided arguments and\n * remove the event's listeners just before calling the them. This method allows\n * the emitter to serve as a queue where all listeners are called only once.\n *\n * @public\n * @param {String} event\n * @param {...*} [args]\n * @returns {Emitter}\n */\nEmitter.prototype.burst = function () {\n if (!this._events) return this;\n this._clearOnEmit = true;\n this.emit.apply(this, arguments);\n return this;\n};\n\n/**\n * Check how many listeners there are for a specific event.\n *\n * @public\n * @param {String} event\n * @returns {Boolean}\n */\nEmitter.prototype.countListeners = function (event) {\n if (!this._events) return 0;\n var listeners = this._events[event];\n return listeners ? listeners.length : 0;\n};\n\n/**\n * Destroy emitter instance. Basically just removes all bound listeners.\n *\n * @public\n * @returns {Emitter}\n */\nEmitter.prototype.destroy = function () {\n if (!this._events) return this;\n this._queue.length = this._counter = 0;\n this._events = null;\n return this;\n};\n\nvar pointerout = HAS_POINTER_EVENTS ? 'pointerout' : HAS_MS_POINTER_EVENTS ? 'MSPointerOut' : '';\nvar waitDuration = 100;\n\n/**\n * If you happen to use Edge or IE on a touch capable device there is a\n * a specific case where pointercancel and pointerend events are never emitted,\n * even though one them should always be emitted when you release your finger\n * from the screen. The bug appears specifically when Muuri shifts the dragged\n * element's position in the DOM after pointerdown event, IE and Edge don't like\n * that behaviour and quite often forget to emit the pointerend/pointercancel\n * event. But, they do emit pointerout event so we utilize that here.\n * Specifically, if there has been no pointermove event within 100 milliseconds\n * since the last pointerout event we force cancel the drag operation. This hack\n * works surprisingly well 99% of the time. There is that 1% chance there still\n * that dragged items get stuck but it is what it is.\n *\n * @class\n * @param {Dragger} dragger\n */\nfunction EdgeHack(dragger) {\n if (!pointerout) return;\n\n this._dragger = dragger;\n this._timeout = null;\n this._outEvent = null;\n this._isActive = false;\n\n this._addBehaviour = this._addBehaviour.bind(this);\n this._removeBehaviour = this._removeBehaviour.bind(this);\n this._onTimeout = this._onTimeout.bind(this);\n this._resetData = this._resetData.bind(this);\n this._onStart = this._onStart.bind(this);\n this._onOut = this._onOut.bind(this);\n\n this._dragger.on('start', this._onStart);\n}\n\n/**\n * @private\n */\nEdgeHack.prototype._addBehaviour = function () {\n if (this._isActive) return;\n this._isActive = true;\n this._dragger.on('move', this._resetData);\n this._dragger.on('cancel', this._removeBehaviour);\n this._dragger.on('end', this._removeBehaviour);\n window.addEventListener(pointerout, this._onOut);\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._removeBehaviour = function () {\n if (!this._isActive) return;\n this._dragger.off('move', this._resetData);\n this._dragger.off('cancel', this._removeBehaviour);\n this._dragger.off('end', this._removeBehaviour);\n window.removeEventListener(pointerout, this._onOut);\n this._resetData();\n this._isActive = false;\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._resetData = function () {\n window.clearTimeout(this._timeout);\n this._timeout = null;\n this._outEvent = null;\n};\n\n/**\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nEdgeHack.prototype._onStart = function (e) {\n if (e.pointerType === 'mouse') return;\n this._addBehaviour();\n};\n\n/**\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nEdgeHack.prototype._onOut = function (e) {\n if (!this._dragger._getTrackedTouch(e)) return;\n this._resetData();\n this._outEvent = e;\n this._timeout = window.setTimeout(this._onTimeout, waitDuration);\n};\n\n/**\n * @private\n */\nEdgeHack.prototype._onTimeout = function () {\n var e = this._outEvent;\n this._resetData();\n if (this._dragger.isActive()) this._dragger._onCancel(e);\n};\n\n/**\n * @public\n */\nEdgeHack.prototype.destroy = function () {\n if (!pointerout) return;\n this._dragger.off('start', this._onStart);\n this._removeBehaviour();\n};\n\n// Playing it safe here, test all potential prefixes capitalized and lowercase.\nvar vendorPrefixes = ['', 'webkit', 'moz', 'ms', 'o', 'Webkit', 'Moz', 'MS', 'O'];\nvar cache$2 = {};\n\n/**\n * Get prefixed CSS property name when given a non-prefixed CSS property name.\n * Returns null if the property is not supported at all.\n *\n * @param {CSSStyleDeclaration} style\n * @param {String} prop\n * @returns {String}\n */\nfunction getPrefixedPropName(style, prop) {\n var prefixedProp = cache$2[prop] || '';\n if (prefixedProp) return prefixedProp;\n\n var camelProp = prop[0].toUpperCase() + prop.slice(1);\n var i = 0;\n while (i < vendorPrefixes.length) {\n prefixedProp = vendorPrefixes[i] ? vendorPrefixes[i] + camelProp : prop;\n if (prefixedProp in style) {\n cache$2[prop] = prefixedProp;\n return prefixedProp;\n }\n ++i;\n }\n\n return '';\n}\n\n/**\n * Check if passive events are supported.\n * https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n *\n * @returns {Boolean}\n */\nfunction hasPassiveEvents() {\n var isPassiveEventsSupported = false;\n\n try {\n var passiveOpts = Object.defineProperty({}, 'passive', {\n get: function () {\n isPassiveEventsSupported = true;\n },\n });\n window.addEventListener('testPassive', null, passiveOpts);\n window.removeEventListener('testPassive', null, passiveOpts);\n } catch (e) {}\n\n return isPassiveEventsSupported;\n}\n\nvar ua = window.navigator.userAgent.toLowerCase();\nvar isEdge = ua.indexOf('edge') > -1;\nvar isIE = ua.indexOf('trident') > -1;\nvar isFirefox = ua.indexOf('firefox') > -1;\nvar isAndroid = ua.indexOf('android') > -1;\n\nvar listenerOptions = hasPassiveEvents() ? { passive: true } : false;\n\nvar taProp = 'touchAction';\nvar taPropPrefixed = getPrefixedPropName(document.documentElement.style, taProp);\nvar taDefaultValue = 'auto';\n\n/**\n * Creates a new Dragger instance for an element.\n *\n * @public\n * @class\n * @param {HTMLElement} element\n * @param {Object} [cssProps]\n */\nfunction Dragger(element, cssProps) {\n this._element = element;\n this._emitter = new Emitter();\n this._isDestroyed = false;\n this._cssProps = {};\n this._touchAction = '';\n this._isActive = false;\n\n this._pointerId = null;\n this._startTime = 0;\n this._startX = 0;\n this._startY = 0;\n this._currentX = 0;\n this._currentY = 0;\n\n this._onStart = this._onStart.bind(this);\n this._onMove = this._onMove.bind(this);\n this._onCancel = this._onCancel.bind(this);\n this._onEnd = this._onEnd.bind(this);\n\n // Can't believe had to build a freaking class for a hack!\n this._edgeHack = null;\n if ((isEdge || isIE) && (HAS_POINTER_EVENTS || HAS_MS_POINTER_EVENTS)) {\n this._edgeHack = new EdgeHack(this);\n }\n\n // Apply initial CSS props.\n this.setCssProps(cssProps);\n\n // If touch action was not provided with initial CSS props let's assume it's\n // auto.\n if (!this._touchAction) {\n this.setTouchAction(taDefaultValue);\n }\n\n // Prevent native link/image dragging for the item and it's children.\n element.addEventListener('dragstart', Dragger._preventDefault, false);\n\n // Listen to start event.\n element.addEventListener(Dragger._inputEvents.start, this._onStart, listenerOptions);\n}\n\n/**\n * Protected properties\n * ********************\n */\n\nDragger._pointerEvents = {\n start: 'pointerdown',\n move: 'pointermove',\n cancel: 'pointercancel',\n end: 'pointerup',\n};\n\nDragger._msPointerEvents = {\n start: 'MSPointerDown',\n move: 'MSPointerMove',\n cancel: 'MSPointerCancel',\n end: 'MSPointerUp',\n};\n\nDragger._touchEvents = {\n start: 'touchstart',\n move: 'touchmove',\n cancel: 'touchcancel',\n end: 'touchend',\n};\n\nDragger._mouseEvents = {\n start: 'mousedown',\n move: 'mousemove',\n cancel: '',\n end: 'mouseup',\n};\n\nDragger._inputEvents = (function () {\n if (HAS_TOUCH_EVENTS) return Dragger._touchEvents;\n if (HAS_POINTER_EVENTS) return Dragger._pointerEvents;\n if (HAS_MS_POINTER_EVENTS) return Dragger._msPointerEvents;\n return Dragger._mouseEvents;\n})();\n\nDragger._emitter = new Emitter();\n\nDragger._emitterEvents = {\n start: 'start',\n move: 'move',\n end: 'end',\n cancel: 'cancel',\n};\n\nDragger._activeInstances = [];\n\n/**\n * Protected static methods\n * ************************\n */\n\nDragger._preventDefault = function (e) {\n if (e.preventDefault && e.cancelable !== false) e.preventDefault();\n};\n\nDragger._activateInstance = function (instance) {\n var index = Dragger._activeInstances.indexOf(instance);\n if (index > -1) return;\n\n Dragger._activeInstances.push(instance);\n Dragger._emitter.on(Dragger._emitterEvents.move, instance._onMove);\n Dragger._emitter.on(Dragger._emitterEvents.cancel, instance._onCancel);\n Dragger._emitter.on(Dragger._emitterEvents.end, instance._onEnd);\n\n if (Dragger._activeInstances.length === 1) {\n Dragger._bindListeners();\n }\n};\n\nDragger._deactivateInstance = function (instance) {\n var index = Dragger._activeInstances.indexOf(instance);\n if (index === -1) return;\n\n Dragger._activeInstances.splice(index, 1);\n Dragger._emitter.off(Dragger._emitterEvents.move, instance._onMove);\n Dragger._emitter.off(Dragger._emitterEvents.cancel, instance._onCancel);\n Dragger._emitter.off(Dragger._emitterEvents.end, instance._onEnd);\n\n if (!Dragger._activeInstances.length) {\n Dragger._unbindListeners();\n }\n};\n\nDragger._bindListeners = function () {\n window.addEventListener(Dragger._inputEvents.move, Dragger._onMove, listenerOptions);\n window.addEventListener(Dragger._inputEvents.end, Dragger._onEnd, listenerOptions);\n if (Dragger._inputEvents.cancel) {\n window.addEventListener(Dragger._inputEvents.cancel, Dragger._onCancel, listenerOptions);\n }\n};\n\nDragger._unbindListeners = function () {\n window.removeEventListener(Dragger._inputEvents.move, Dragger._onMove, listenerOptions);\n window.removeEventListener(Dragger._inputEvents.end, Dragger._onEnd, listenerOptions);\n if (Dragger._inputEvents.cancel) {\n window.removeEventListener(Dragger._inputEvents.cancel, Dragger._onCancel, listenerOptions);\n }\n};\n\nDragger._getEventPointerId = function (event) {\n // If we have pointer id available let's use it.\n if (typeof event.pointerId === 'number') {\n return event.pointerId;\n }\n\n // For touch events let's get the first changed touch's identifier.\n if (event.changedTouches) {\n return event.changedTouches[0] ? event.changedTouches[0].identifier : null;\n }\n\n // For mouse/other events let's provide a static id.\n return 1;\n};\n\nDragger._getTouchById = function (event, id) {\n // If we have a pointer event return the whole event if there's a match, and\n // null otherwise.\n if (typeof event.pointerId === 'number') {\n return event.pointerId === id ? event : null;\n }\n\n // For touch events let's check if there's a changed touch object that matches\n // the pointerId in which case return the touch object.\n if (event.changedTouches) {\n for (var i = 0; i < event.changedTouches.length; i++) {\n if (event.changedTouches[i].identifier === id) {\n return event.changedTouches[i];\n }\n }\n return null;\n }\n\n // For mouse/other events let's assume there's only one pointer and just\n // return the event.\n return event;\n};\n\nDragger._onMove = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.move, e);\n};\n\nDragger._onCancel = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.cancel, e);\n};\n\nDragger._onEnd = function (e) {\n Dragger._emitter.emit(Dragger._emitterEvents.end, e);\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Reset current drag operation (if any).\n *\n * @private\n */\nDragger.prototype._reset = function () {\n this._pointerId = null;\n this._startTime = 0;\n this._startX = 0;\n this._startY = 0;\n this._currentX = 0;\n this._currentY = 0;\n this._isActive = false;\n Dragger._deactivateInstance(this);\n};\n\n/**\n * Create a custom dragger event from a raw event.\n *\n * @private\n * @param {String} type\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n * @returns {Object}\n */\nDragger.prototype._createEvent = function (type, e) {\n var touch = this._getTrackedTouch(e);\n return {\n // Hammer.js compatibility interface.\n type: type,\n srcEvent: e,\n distance: this.getDistance(),\n deltaX: this.getDeltaX(),\n deltaY: this.getDeltaY(),\n deltaTime: type === Dragger._emitterEvents.start ? 0 : this.getDeltaTime(),\n isFirst: type === Dragger._emitterEvents.start,\n isFinal: type === Dragger._emitterEvents.end || type === Dragger._emitterEvents.cancel,\n pointerType: e.pointerType || (e.touches ? 'touch' : 'mouse'),\n // Partial Touch API interface.\n identifier: this._pointerId,\n screenX: touch.screenX,\n screenY: touch.screenY,\n clientX: touch.clientX,\n clientY: touch.clientY,\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n };\n};\n\n/**\n * Emit a raw event as dragger event internally.\n *\n * @private\n * @param {String} type\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._emit = function (type, e) {\n this._emitter.emit(type, this._createEvent(type, e));\n};\n\n/**\n * If the provided event is a PointerEvent this method will return it if it has\n * the same pointerId as the instance. If the provided event is a TouchEvent\n * this method will try to look for a Touch instance in the changedTouches that\n * has an identifier matching this instance's pointerId. If the provided event\n * is a MouseEvent (or just any other event than PointerEvent or TouchEvent)\n * it will be returned immediately.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n * @returns {?(Touch|PointerEvent|MouseEvent)}\n */\nDragger.prototype._getTrackedTouch = function (e) {\n if (this._pointerId === null) return null;\n return Dragger._getTouchById(e, this._pointerId);\n};\n\n/**\n * Handler for start event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onStart = function (e) {\n if (this._isDestroyed) return;\n\n // If pointer id is already assigned let's return early.\n if (this._pointerId !== null) return;\n\n // Get (and set) pointer id.\n this._pointerId = Dragger._getEventPointerId(e);\n if (this._pointerId === null) return;\n\n // Setup initial data and emit start event.\n var touch = this._getTrackedTouch(e);\n this._startX = this._currentX = touch.clientX;\n this._startY = this._currentY = touch.clientY;\n this._startTime = Date.now();\n this._isActive = true;\n this._emit(Dragger._emitterEvents.start, e);\n\n // If the drag procedure was not reset within the start procedure let's\n // activate the instance (start listening to move/cancel/end events).\n if (this._isActive) {\n Dragger._activateInstance(this);\n }\n};\n\n/**\n * Handler for move event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onMove = function (e) {\n var touch = this._getTrackedTouch(e);\n if (!touch) return;\n this._currentX = touch.clientX;\n this._currentY = touch.clientY;\n this._emit(Dragger._emitterEvents.move, e);\n};\n\n/**\n * Handler for cancel event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onCancel = function (e) {\n if (!this._getTrackedTouch(e)) return;\n this._emit(Dragger._emitterEvents.cancel, e);\n this._reset();\n};\n\n/**\n * Handler for end event.\n *\n * @private\n * @param {(PointerEvent|TouchEvent|MouseEvent)} e\n */\nDragger.prototype._onEnd = function (e) {\n if (!this._getTrackedTouch(e)) return;\n this._emit(Dragger._emitterEvents.end, e);\n this._reset();\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Check if the element is being dragged at the moment.\n *\n * @public\n * @returns {Boolean}\n */\nDragger.prototype.isActive = function () {\n return this._isActive;\n};\n\n/**\n * Set element's touch-action CSS property.\n *\n * @public\n * @param {String} value\n */\nDragger.prototype.setTouchAction = function (value) {\n // Store unmodified touch action value (we trust user input here).\n this._touchAction = value;\n\n // Set touch-action style.\n if (taPropPrefixed) {\n this._cssProps[taPropPrefixed] = '';\n this._element.style[taPropPrefixed] = value;\n }\n\n // If we have an unsupported touch-action value let's add a special listener\n // that prevents default action on touch start event. A dirty hack, but best\n // we can do for now. The other options would be to somehow polyfill the\n // unsupported touch action behavior with custom heuristics which sounds like\n // a can of worms. We do a special exception here for Firefox Android which's\n // touch-action does not work properly if the dragged element is moved in the\n // the DOM tree on touchstart.\n if (HAS_TOUCH_EVENTS) {\n this._element.removeEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n if (this._element.style[taPropPrefixed] !== value || (isFirefox && isAndroid)) {\n this._element.addEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n }\n }\n};\n\n/**\n * Update element's CSS properties. Accepts an object with camel cased style\n * props with value pairs as it's first argument.\n *\n * @public\n * @param {Object} [newProps]\n */\nDragger.prototype.setCssProps = function (newProps) {\n if (!newProps) return;\n\n var currentProps = this._cssProps;\n var element = this._element;\n var prop;\n var prefixedProp;\n\n // Reset current props.\n for (prop in currentProps) {\n element.style[prop] = currentProps[prop];\n delete currentProps[prop];\n }\n\n // Set new props.\n for (prop in newProps) {\n // Make sure we have a value for the prop.\n if (!newProps[prop]) continue;\n\n // Special handling for touch-action.\n if (prop === taProp) {\n this.setTouchAction(newProps[prop]);\n continue;\n }\n\n // Get prefixed prop and skip if it does not exist.\n prefixedProp = getPrefixedPropName(element.style, prop);\n if (!prefixedProp) continue;\n\n // Store the prop and add the style.\n currentProps[prefixedProp] = '';\n element.style[prefixedProp] = newProps[prop];\n }\n};\n\n/**\n * How much the pointer has moved on x-axis from start position, in pixels.\n * Positive value indicates movement from left to right.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaX = function () {\n return this._currentX - this._startX;\n};\n\n/**\n * How much the pointer has moved on y-axis from start position, in pixels.\n * Positive value indicates movement from top to bottom.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaY = function () {\n return this._currentY - this._startY;\n};\n\n/**\n * How far (in pixels) has pointer moved from start position.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDistance = function () {\n var x = this.getDeltaX();\n var y = this.getDeltaY();\n return Math.sqrt(x * x + y * y);\n};\n\n/**\n * How long has pointer been dragged.\n *\n * @public\n * @returns {Number}\n */\nDragger.prototype.getDeltaTime = function () {\n return this._startTime ? Date.now() - this._startTime : 0;\n};\n\n/**\n * Bind drag event listeners.\n *\n * @public\n * @param {String} eventName\n * - 'start', 'move', 'cancel' or 'end'.\n * @param {Function} listener\n */\nDragger.prototype.on = function (eventName, listener) {\n this._emitter.on(eventName, listener);\n};\n\n/**\n * Unbind drag event listeners.\n *\n * @public\n * @param {String} eventName\n * - 'start', 'move', 'cancel' or 'end'.\n * @param {Function} listener\n */\nDragger.prototype.off = function (eventName, listener) {\n this._emitter.off(eventName, listener);\n};\n\n/**\n * Destroy the instance and unbind all drag event listeners.\n *\n * @public\n */\nDragger.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var element = this._element;\n\n if (this._edgeHack) this._edgeHack.destroy();\n\n // Reset data and deactivate the instance.\n this._reset();\n\n // Destroy emitter.\n this._emitter.destroy();\n\n // Unbind event handlers.\n element.removeEventListener(Dragger._inputEvents.start, this._onStart, listenerOptions);\n element.removeEventListener('dragstart', Dragger._preventDefault, false);\n element.removeEventListener(Dragger._touchEvents.start, Dragger._preventDefault, true);\n\n // Reset styles.\n for (var prop in this._cssProps) {\n element.style[prop] = this._cssProps[prop];\n delete this._cssProps[prop];\n }\n\n // Reset data.\n this._element = null;\n\n // Mark as destroyed.\n this._isDestroyed = true;\n};\n\nvar dt = 1000 / 60;\n\nvar raf = (\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n return this.setTimeout(function () {\n callback(Date.now());\n }, dt);\n }\n).bind(window);\n\n/**\n * A ticker system for handling DOM reads and writes in an efficient way.\n *\n * @class\n */\nfunction Ticker(numLanes) {\n this._nextStep = null;\n this._lanes = [];\n this._stepQueue = [];\n this._stepCallbacks = {};\n this._step = this._step.bind(this);\n for (var i = 0; i < numLanes; i++) {\n this._lanes.push(new TickerLane());\n }\n}\n\nTicker.prototype._step = function (time) {\n var lanes = this._lanes;\n var stepQueue = this._stepQueue;\n var stepCallbacks = this._stepCallbacks;\n var i, j, id, laneQueue, laneCallbacks, laneIndices;\n\n this._nextStep = null;\n\n for (i = 0; i < lanes.length; i++) {\n laneQueue = lanes[i].queue;\n laneCallbacks = lanes[i].callbacks;\n laneIndices = lanes[i].indices;\n for (j = 0; j < laneQueue.length; j++) {\n id = laneQueue[j];\n if (!id) continue;\n stepQueue.push(id);\n stepCallbacks[id] = laneCallbacks[id];\n delete laneCallbacks[id];\n delete laneIndices[id];\n }\n laneQueue.length = 0;\n }\n\n for (i = 0; i < stepQueue.length; i++) {\n id = stepQueue[i];\n if (stepCallbacks[id]) stepCallbacks[id](time);\n delete stepCallbacks[id];\n }\n\n stepQueue.length = 0;\n};\n\nTicker.prototype.add = function (laneIndex, id, callback) {\n this._lanes[laneIndex].add(id, callback);\n if (!this._nextStep) this._nextStep = raf(this._step);\n};\n\nTicker.prototype.remove = function (laneIndex, id) {\n this._lanes[laneIndex].remove(id);\n};\n\n/**\n * A lane for ticker.\n *\n * @class\n */\nfunction TickerLane() {\n this.queue = [];\n this.indices = {};\n this.callbacks = {};\n}\n\nTickerLane.prototype.add = function (id, callback) {\n var index = this.indices[id];\n if (index !== undefined) this.queue[index] = undefined;\n this.queue.push(id);\n this.callbacks[id] = callback;\n this.indices[id] = this.queue.length - 1;\n};\n\nTickerLane.prototype.remove = function (id) {\n var index = this.indices[id];\n if (index === undefined) return;\n this.queue[index] = undefined;\n delete this.callbacks[id];\n delete this.indices[id];\n};\n\nvar LAYOUT_READ = 'layoutRead';\nvar LAYOUT_WRITE = 'layoutWrite';\nvar VISIBILITY_READ = 'visibilityRead';\nvar VISIBILITY_WRITE = 'visibilityWrite';\nvar DRAG_START_READ = 'dragStartRead';\nvar DRAG_START_WRITE = 'dragStartWrite';\nvar DRAG_MOVE_READ = 'dragMoveRead';\nvar DRAG_MOVE_WRITE = 'dragMoveWrite';\nvar DRAG_SCROLL_READ = 'dragScrollRead';\nvar DRAG_SCROLL_WRITE = 'dragScrollWrite';\nvar DRAG_SORT_READ = 'dragSortRead';\nvar PLACEHOLDER_LAYOUT_READ = 'placeholderLayoutRead';\nvar PLACEHOLDER_LAYOUT_WRITE = 'placeholderLayoutWrite';\nvar PLACEHOLDER_RESIZE_WRITE = 'placeholderResizeWrite';\nvar AUTO_SCROLL_READ = 'autoScrollRead';\nvar AUTO_SCROLL_WRITE = 'autoScrollWrite';\nvar DEBOUNCE_READ = 'debounceRead';\n\nvar LANE_READ = 0;\nvar LANE_READ_TAIL = 1;\nvar LANE_WRITE = 2;\n\nvar ticker = new Ticker(3);\n\nfunction addLayoutTick(itemId, read, write) {\n ticker.add(LANE_READ, LAYOUT_READ + itemId, read);\n ticker.add(LANE_WRITE, LAYOUT_WRITE + itemId, write);\n}\n\nfunction cancelLayoutTick(itemId) {\n ticker.remove(LANE_READ, LAYOUT_READ + itemId);\n ticker.remove(LANE_WRITE, LAYOUT_WRITE + itemId);\n}\n\nfunction addVisibilityTick(itemId, read, write) {\n ticker.add(LANE_READ, VISIBILITY_READ + itemId, read);\n ticker.add(LANE_WRITE, VISIBILITY_WRITE + itemId, write);\n}\n\nfunction cancelVisibilityTick(itemId) {\n ticker.remove(LANE_READ, VISIBILITY_READ + itemId);\n ticker.remove(LANE_WRITE, VISIBILITY_WRITE + itemId);\n}\n\nfunction addDragStartTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_START_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_START_WRITE + itemId, write);\n}\n\nfunction cancelDragStartTick(itemId) {\n ticker.remove(LANE_READ, DRAG_START_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_START_WRITE + itemId);\n}\n\nfunction addDragMoveTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_MOVE_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_MOVE_WRITE + itemId, write);\n}\n\nfunction cancelDragMoveTick(itemId) {\n ticker.remove(LANE_READ, DRAG_MOVE_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_MOVE_WRITE + itemId);\n}\n\nfunction addDragScrollTick(itemId, read, write) {\n ticker.add(LANE_READ, DRAG_SCROLL_READ + itemId, read);\n ticker.add(LANE_WRITE, DRAG_SCROLL_WRITE + itemId, write);\n}\n\nfunction cancelDragScrollTick(itemId) {\n ticker.remove(LANE_READ, DRAG_SCROLL_READ + itemId);\n ticker.remove(LANE_WRITE, DRAG_SCROLL_WRITE + itemId);\n}\n\nfunction addDragSortTick(itemId, read) {\n ticker.add(LANE_READ_TAIL, DRAG_SORT_READ + itemId, read);\n}\n\nfunction cancelDragSortTick(itemId) {\n ticker.remove(LANE_READ_TAIL, DRAG_SORT_READ + itemId);\n}\n\nfunction addPlaceholderLayoutTick(itemId, read, write) {\n ticker.add(LANE_READ, PLACEHOLDER_LAYOUT_READ + itemId, read);\n ticker.add(LANE_WRITE, PLACEHOLDER_LAYOUT_WRITE + itemId, write);\n}\n\nfunction cancelPlaceholderLayoutTick(itemId) {\n ticker.remove(LANE_READ, PLACEHOLDER_LAYOUT_READ + itemId);\n ticker.remove(LANE_WRITE, PLACEHOLDER_LAYOUT_WRITE + itemId);\n}\n\nfunction addPlaceholderResizeTick(itemId, write) {\n ticker.add(LANE_WRITE, PLACEHOLDER_RESIZE_WRITE + itemId, write);\n}\n\nfunction cancelPlaceholderResizeTick(itemId) {\n ticker.remove(LANE_WRITE, PLACEHOLDER_RESIZE_WRITE + itemId);\n}\n\nfunction addAutoScrollTick(read, write) {\n ticker.add(LANE_READ, AUTO_SCROLL_READ, read);\n ticker.add(LANE_WRITE, AUTO_SCROLL_WRITE, write);\n}\n\nfunction cancelAutoScrollTick() {\n ticker.remove(LANE_READ, AUTO_SCROLL_READ);\n ticker.remove(LANE_WRITE, AUTO_SCROLL_WRITE);\n}\n\nfunction addDebounceTick(debounceId, read) {\n ticker.add(LANE_READ, DEBOUNCE_READ + debounceId, read);\n}\n\nfunction cancelDebounceTick(debounceId) {\n ticker.remove(LANE_READ, DEBOUNCE_READ + debounceId);\n}\n\nvar AXIS_X = 1;\nvar AXIS_Y = 2;\nvar FORWARD = 4;\nvar BACKWARD = 8;\nvar LEFT = AXIS_X | BACKWARD;\nvar RIGHT = AXIS_X | FORWARD;\nvar UP = AXIS_Y | BACKWARD;\nvar DOWN = AXIS_Y | FORWARD;\n\nvar functionType = 'function';\n\n/**\n * Check if a value is a function.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isFunction(val) {\n return typeof val === functionType;\n}\n\nvar cache$1 = typeof WeakMap === 'function' ? new WeakMap() : null;\n\n/**\n * Returns the computed value of an element's style property as a string.\n *\n * @param {HTMLElement} element\n * @param {String} style\n * @returns {String}\n */\nfunction getStyle(element, style) {\n var styles = cache$1 && cache$1.get(element);\n\n if (!styles) {\n styles = window.getComputedStyle(element, null);\n if (cache$1) cache$1.set(element, styles);\n }\n\n return styles.getPropertyValue(style);\n}\n\n/**\n * Returns the computed value of an element's style property transformed into\n * a float value.\n *\n * @param {HTMLElement} el\n * @param {String} style\n * @returns {Number}\n */\nfunction getStyleAsFloat(el, style) {\n return parseFloat(getStyle(el, style)) || 0;\n}\n\nvar DOC_ELEM = document.documentElement;\nvar BODY = document.body;\nvar THRESHOLD_DATA = { value: 0, offset: 0 };\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {HTMLElement|Window}\n */\nfunction getScrollElement(element) {\n if (element === window || element === DOC_ELEM || element === BODY) {\n return window;\n } else {\n return element;\n }\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollLeft(element) {\n return element === window ? element.pageXOffset : element.scrollLeft;\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollTop(element) {\n return element === window ? element.pageYOffset : element.scrollTop;\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollLeftMax(element) {\n if (element === window) {\n return DOC_ELEM.scrollWidth - DOC_ELEM.clientWidth;\n } else {\n return element.scrollWidth - element.clientWidth;\n }\n}\n\n/**\n * @param {HTMLElement|Window} element\n * @returns {Number}\n */\nfunction getScrollTopMax(element) {\n if (element === window) {\n return DOC_ELEM.scrollHeight - DOC_ELEM.clientHeight;\n } else {\n return element.scrollHeight - element.clientHeight;\n }\n}\n\n/**\n * Get window's or element's client rectangle data relative to the element's\n * content dimensions (includes inner size + padding, excludes scrollbars,\n * borders and margins).\n *\n * @param {HTMLElement|Window} element\n * @returns {Rectangle}\n */\nfunction getContentRect(element, result) {\n result = result || {};\n\n if (element === window) {\n result.width = DOC_ELEM.clientWidth;\n result.height = DOC_ELEM.clientHeight;\n result.left = 0;\n result.right = result.width;\n result.top = 0;\n result.bottom = result.height;\n } else {\n var bcr = element.getBoundingClientRect();\n var borderLeft = element.clientLeft || getStyleAsFloat(element, 'border-left-width');\n var borderTop = element.clientTop || getStyleAsFloat(element, 'border-top-width');\n result.width = element.clientWidth;\n result.height = element.clientHeight;\n result.left = bcr.left + borderLeft;\n result.right = result.left + result.width;\n result.top = bcr.top + borderTop;\n result.bottom = result.top + result.height;\n }\n\n return result;\n}\n\n/**\n * @param {Item} item\n * @returns {Object}\n */\nfunction getItemAutoScrollSettings(item) {\n return item._drag._getGrid()._settings.dragAutoScroll;\n}\n\n/**\n * @param {Item} item\n */\nfunction prepareItemScrollSync(item) {\n if (!item._drag) return;\n item._drag._prepareScroll();\n}\n\n/**\n * @param {Item} item\n */\nfunction applyItemScrollSync(item) {\n if (!item._drag || !item._isActive) return;\n var drag = item._drag;\n drag._scrollDiffX = drag._scrollDiffY = 0;\n item._setTranslate(drag._left, drag._top);\n}\n\n/**\n * Compute threshold value and edge offset.\n *\n * @param {Number} threshold\n * @param {Number} safeZone\n * @param {Number} itemSize\n * @param {Number} targetSize\n * @returns {Object}\n */\nfunction computeThreshold(threshold, safeZone, itemSize, targetSize) {\n THRESHOLD_DATA.value = Math.min(targetSize / 2, threshold);\n THRESHOLD_DATA.offset =\n Math.max(0, itemSize + THRESHOLD_DATA.value * 2 + targetSize * safeZone - targetSize) / 2;\n return THRESHOLD_DATA;\n}\n\nfunction ScrollRequest() {\n this.reset();\n}\n\nScrollRequest.prototype.reset = function () {\n if (this.isActive) this.onStop();\n this.item = null;\n this.element = null;\n this.isActive = false;\n this.isEnding = false;\n this.direction = null;\n this.value = null;\n this.maxValue = 0;\n this.threshold = 0;\n this.distance = 0;\n this.speed = 0;\n this.duration = 0;\n this.action = null;\n};\n\nScrollRequest.prototype.hasReachedEnd = function () {\n return FORWARD & this.direction ? this.value >= this.maxValue : this.value <= 0;\n};\n\nScrollRequest.prototype.computeCurrentScrollValue = function () {\n if (this.value === null) {\n return AXIS_X & this.direction ? getScrollLeft(this.element) : getScrollTop(this.element);\n }\n return Math.max(0, Math.min(this.value, this.maxValue));\n};\n\nScrollRequest.prototype.computeNextScrollValue = function (deltaTime) {\n var delta = this.speed * (deltaTime / 1000);\n var nextValue = FORWARD & this.direction ? this.value + delta : this.value - delta;\n return Math.max(0, Math.min(nextValue, this.maxValue));\n};\n\nScrollRequest.prototype.computeSpeed = (function () {\n var data = {\n direction: null,\n threshold: 0,\n distance: 0,\n value: 0,\n maxValue: 0,\n deltaTime: 0,\n duration: 0,\n isEnding: false,\n };\n\n return function (deltaTime) {\n var item = this.item;\n var speed = getItemAutoScrollSettings(item).speed;\n\n if (isFunction(speed)) {\n data.direction = this.direction;\n data.threshold = this.threshold;\n data.distance = this.distance;\n data.value = this.value;\n data.maxValue = this.maxValue;\n data.duration = this.duration;\n data.speed = this.speed;\n data.deltaTime = deltaTime;\n data.isEnding = this.isEnding;\n return speed(item, this.element, data);\n } else {\n return speed;\n }\n };\n})();\n\nScrollRequest.prototype.tick = function (deltaTime) {\n if (!this.isActive) {\n this.isActive = true;\n this.onStart();\n }\n this.value = this.computeCurrentScrollValue();\n this.speed = this.computeSpeed(deltaTime);\n this.value = this.computeNextScrollValue(deltaTime);\n this.duration += deltaTime;\n return this.value;\n};\n\nScrollRequest.prototype.onStart = function () {\n var item = this.item;\n var onStart = getItemAutoScrollSettings(item).onStart;\n if (isFunction(onStart)) onStart(item, this.element, this.direction);\n};\n\nScrollRequest.prototype.onStop = function () {\n var item = this.item;\n var onStop = getItemAutoScrollSettings(item).onStop;\n if (isFunction(onStop)) onStop(item, this.element, this.direction);\n // Manually nudge sort to happen. There's a good chance that the item is still\n // after the scroll stops which means that the next sort will be triggered\n // only after the item is moved or it's parent scrolled.\n if (item._drag) item._drag.sort();\n};\n\nfunction ScrollAction() {\n this.element = null;\n this.requestX = null;\n this.requestY = null;\n this.scrollLeft = 0;\n this.scrollTop = 0;\n}\n\nScrollAction.prototype.reset = function () {\n if (this.requestX) this.requestX.action = null;\n if (this.requestY) this.requestY.action = null;\n this.element = null;\n this.requestX = null;\n this.requestY = null;\n this.scrollLeft = 0;\n this.scrollTop = 0;\n};\n\nScrollAction.prototype.addRequest = function (request) {\n if (AXIS_X & request.direction) {\n this.removeRequest(this.requestX);\n this.requestX = request;\n } else {\n this.removeRequest(this.requestY);\n this.requestY = request;\n }\n request.action = this;\n};\n\nScrollAction.prototype.removeRequest = function (request) {\n if (!request) return;\n if (this.requestX === request) {\n this.requestX = null;\n request.action = null;\n } else if (this.requestY === request) {\n this.requestY = null;\n request.action = null;\n }\n};\n\nScrollAction.prototype.computeScrollValues = function () {\n this.scrollLeft = this.requestX ? this.requestX.value : getScrollLeft(this.element);\n this.scrollTop = this.requestY ? this.requestY.value : getScrollTop(this.element);\n};\n\nScrollAction.prototype.scroll = function () {\n var element = this.element;\n if (!element) return;\n\n if (element.scrollTo) {\n element.scrollTo(this.scrollLeft, this.scrollTop);\n } else {\n element.scrollLeft = this.scrollLeft;\n element.scrollTop = this.scrollTop;\n }\n};\n\nfunction Pool(createItem, releaseItem) {\n this.pool = [];\n this.createItem = createItem;\n this.releaseItem = releaseItem;\n}\n\nPool.prototype.pick = function () {\n return this.pool.pop() || this.createItem();\n};\n\nPool.prototype.release = function (item) {\n this.releaseItem(item);\n if (this.pool.indexOf(item) !== -1) return;\n this.pool.push(item);\n};\n\nPool.prototype.reset = function () {\n this.pool.length = 0;\n};\n\n/**\n * Check if two rectangles are overlapping.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction isOverlapping(a, b) {\n return !(\n a.left + a.width <= b.left ||\n b.left + b.width <= a.left ||\n a.top + a.height <= b.top ||\n b.top + b.height <= a.top\n );\n}\n\n/**\n * Calculate intersection area between two rectangle.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction getIntersectionArea(a, b) {\n if (!isOverlapping(a, b)) return 0;\n var width = Math.min(a.left + a.width, b.left + b.width) - Math.max(a.left, b.left);\n var height = Math.min(a.top + a.height, b.top + b.height) - Math.max(a.top, b.top);\n return width * height;\n}\n\n/**\n * Calculate how many percent the intersection area of two rectangles is from\n * the maximum potential intersection area between the rectangles.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Number}\n */\nfunction getIntersectionScore(a, b) {\n var area = getIntersectionArea(a, b);\n if (!area) return 0;\n var maxArea = Math.min(a.width, b.width) * Math.min(a.height, b.height);\n return (area / maxArea) * 100;\n}\n\nvar RECT_1 = {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\n\nvar RECT_2 = {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n};\n\nfunction AutoScroller() {\n this._isDestroyed = false;\n this._isTicking = false;\n this._tickTime = 0;\n this._tickDeltaTime = 0;\n this._items = [];\n this._actions = [];\n this._requests = {};\n this._requests[AXIS_X] = {};\n this._requests[AXIS_Y] = {};\n this._requestOverlapCheck = {};\n this._dragPositions = {};\n this._dragDirections = {};\n this._overlapCheckInterval = 150;\n\n this._requestPool = new Pool(\n function () {\n return new ScrollRequest();\n },\n function (request) {\n request.reset();\n }\n );\n\n this._actionPool = new Pool(\n function () {\n return new ScrollAction();\n },\n function (action) {\n action.reset();\n }\n );\n\n this._readTick = this._readTick.bind(this);\n this._writeTick = this._writeTick.bind(this);\n}\n\nAutoScroller.AXIS_X = AXIS_X;\nAutoScroller.AXIS_Y = AXIS_Y;\nAutoScroller.FORWARD = FORWARD;\nAutoScroller.BACKWARD = BACKWARD;\nAutoScroller.LEFT = LEFT;\nAutoScroller.RIGHT = RIGHT;\nAutoScroller.UP = UP;\nAutoScroller.DOWN = DOWN;\n\nAutoScroller.smoothSpeed = function (maxSpeed, acceleration, deceleration) {\n return function (item, element, data) {\n var targetSpeed = 0;\n if (!data.isEnding) {\n if (data.threshold > 0) {\n var factor = data.threshold - Math.max(0, data.distance);\n targetSpeed = (maxSpeed / data.threshold) * factor;\n } else {\n targetSpeed = maxSpeed;\n }\n }\n\n var currentSpeed = data.speed;\n var nextSpeed = targetSpeed;\n\n if (currentSpeed === targetSpeed) {\n return nextSpeed;\n }\n\n if (currentSpeed < targetSpeed) {\n nextSpeed = currentSpeed + acceleration * (data.deltaTime / 1000);\n return Math.min(targetSpeed, nextSpeed);\n } else {\n nextSpeed = currentSpeed - deceleration * (data.deltaTime / 1000);\n return Math.max(targetSpeed, nextSpeed);\n }\n };\n};\n\nAutoScroller.pointerHandle = function (pointerSize) {\n var rect = { left: 0, top: 0, width: 0, height: 0 };\n var size = pointerSize || 1;\n return function (item, x, y, w, h, pX, pY) {\n rect.left = pX - size * 0.5;\n rect.top = pY - size * 0.5;\n rect.width = size;\n rect.height = size;\n return rect;\n };\n};\n\nAutoScroller.prototype._readTick = function (time) {\n if (this._isDestroyed) return;\n if (time && this._tickTime) {\n this._tickDeltaTime = time - this._tickTime;\n this._tickTime = time;\n this._updateRequests();\n this._updateActions();\n } else {\n this._tickTime = time;\n this._tickDeltaTime = 0;\n }\n};\n\nAutoScroller.prototype._writeTick = function () {\n if (this._isDestroyed) return;\n this._applyActions();\n addAutoScrollTick(this._readTick, this._writeTick);\n};\n\nAutoScroller.prototype._startTicking = function () {\n this._isTicking = true;\n addAutoScrollTick(this._readTick, this._writeTick);\n};\n\nAutoScroller.prototype._stopTicking = function () {\n this._isTicking = false;\n this._tickTime = 0;\n this._tickDeltaTime = 0;\n cancelAutoScrollTick();\n};\n\nAutoScroller.prototype._getItemHandleRect = function (item, handle, rect) {\n var itemDrag = item._drag;\n\n if (handle) {\n var ev = itemDrag._dragMoveEvent || itemDrag._dragStartEvent;\n var data = handle(\n item,\n itemDrag._clientX,\n itemDrag._clientY,\n item._width,\n item._height,\n ev.clientX,\n ev.clientY\n );\n rect.left = data.left;\n rect.top = data.top;\n rect.width = data.width;\n rect.height = data.height;\n } else {\n rect.left = itemDrag._clientX;\n rect.top = itemDrag._clientY;\n rect.width = item._width;\n rect.height = item._height;\n }\n\n rect.right = rect.left + rect.width;\n rect.bottom = rect.top + rect.height;\n\n return rect;\n};\n\nAutoScroller.prototype._requestItemScroll = function (\n item,\n axis,\n element,\n direction,\n threshold,\n distance,\n maxValue\n) {\n var reqMap = this._requests[axis];\n var request = reqMap[item._id];\n\n if (request) {\n if (request.element !== element || request.direction !== direction) {\n request.reset();\n }\n } else {\n request = this._requestPool.pick();\n }\n\n request.item = item;\n request.element = element;\n request.direction = direction;\n request.threshold = threshold;\n request.distance = distance;\n request.maxValue = maxValue;\n reqMap[item._id] = request;\n};\n\nAutoScroller.prototype._cancelItemScroll = function (item, axis) {\n var reqMap = this._requests[axis];\n var request = reqMap[item._id];\n if (!request) return;\n if (request.action) request.action.removeRequest(request);\n this._requestPool.release(request);\n delete reqMap[item._id];\n};\n\nAutoScroller.prototype._checkItemOverlap = function (item, checkX, checkY) {\n var settings = getItemAutoScrollSettings(item);\n var targets = isFunction(settings.targets) ? settings.targets(item) : settings.targets;\n var threshold = settings.threshold;\n var safeZone = settings.safeZone;\n\n if (!targets || !targets.length) {\n checkX && this._cancelItemScroll(item, AXIS_X);\n checkY && this._cancelItemScroll(item, AXIS_Y);\n return;\n }\n\n var dragDirections = this._dragDirections[item._id];\n var dragDirectionX = dragDirections[0];\n var dragDirectionY = dragDirections[1];\n\n if (!dragDirectionX && !dragDirectionY) {\n checkX && this._cancelItemScroll(item, AXIS_X);\n checkY && this._cancelItemScroll(item, AXIS_Y);\n return;\n }\n\n var itemRect = this._getItemHandleRect(item, settings.handle, RECT_1);\n var testRect = RECT_2;\n\n var target = null;\n var testElement = null;\n var testAxisX = true;\n var testAxisY = true;\n var testScore = 0;\n var testPriority = 0;\n var testThreshold = null;\n var testDirection = null;\n var testDistance = 0;\n var testMaxScrollX = 0;\n var testMaxScrollY = 0;\n\n var xElement = null;\n var xPriority = -Infinity;\n var xThreshold = 0;\n var xScore = 0;\n var xDirection = null;\n var xDistance = 0;\n var xMaxScroll = 0;\n\n var yElement = null;\n var yPriority = -Infinity;\n var yThreshold = 0;\n var yScore = 0;\n var yDirection = null;\n var yDistance = 0;\n var yMaxScroll = 0;\n\n for (var i = 0; i < targets.length; i++) {\n target = targets[i];\n testAxisX = checkX && dragDirectionX && target.axis !== AXIS_Y;\n testAxisY = checkY && dragDirectionY && target.axis !== AXIS_X;\n testPriority = target.priority || 0;\n\n // Ignore this item if it's x-axis and y-axis priority is lower than\n // the currently matching item's.\n if ((!testAxisX || testPriority < xPriority) && (!testAxisY || testPriority < yPriority)) {\n continue;\n }\n\n testElement = getScrollElement(target.element || target);\n testMaxScrollX = testAxisX ? getScrollLeftMax(testElement) : -1;\n testMaxScrollY = testAxisY ? getScrollTopMax(testElement) : -1;\n\n // Ignore this item if there is no possibility to scroll.\n if (!testMaxScrollX && !testMaxScrollY) continue;\n\n testRect = getContentRect(testElement, testRect);\n testScore = getIntersectionScore(itemRect, testRect);\n\n // Ignore this item if it's not overlapping at all with the dragged item.\n if (testScore <= 0) continue;\n\n // Test x-axis.\n if (\n testAxisX &&\n testPriority >= xPriority &&\n testMaxScrollX > 0 &&\n (testPriority > xPriority || testScore > xScore)\n ) {\n testDirection = null;\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n itemRect.width,\n testRect.width\n );\n if (dragDirectionX === RIGHT) {\n testDistance = testRect.right + testThreshold.offset - itemRect.right;\n if (testDistance <= testThreshold.value && getScrollLeft(testElement) < testMaxScrollX) {\n testDirection = RIGHT;\n }\n } else if (dragDirectionX === LEFT) {\n testDistance = itemRect.left - (testRect.left - testThreshold.offset);\n if (testDistance <= testThreshold.value && getScrollLeft(testElement) > 0) {\n testDirection = LEFT;\n }\n }\n\n if (testDirection !== null) {\n xElement = testElement;\n xPriority = testPriority;\n xThreshold = testThreshold.value;\n xScore = testScore;\n xDirection = testDirection;\n xDistance = testDistance;\n xMaxScroll = testMaxScrollX;\n }\n }\n\n // Test y-axis.\n if (\n testAxisY &&\n testPriority >= yPriority &&\n testMaxScrollY > 0 &&\n (testPriority > yPriority || testScore > yScore)\n ) {\n testDirection = null;\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n itemRect.height,\n testRect.height\n );\n if (dragDirectionY === DOWN) {\n testDistance = testRect.bottom + testThreshold.offset - itemRect.bottom;\n if (testDistance <= testThreshold.value && getScrollTop(testElement) < testMaxScrollY) {\n testDirection = DOWN;\n }\n } else if (dragDirectionY === UP) {\n testDistance = itemRect.top - (testRect.top - testThreshold.offset);\n if (testDistance <= testThreshold.value && getScrollTop(testElement) > 0) {\n testDirection = UP;\n }\n }\n\n if (testDirection !== null) {\n yElement = testElement;\n yPriority = testPriority;\n yThreshold = testThreshold.value;\n yScore = testScore;\n yDirection = testDirection;\n yDistance = testDistance;\n yMaxScroll = testMaxScrollY;\n }\n }\n }\n\n // Request or cancel x-axis scroll.\n if (checkX) {\n if (xElement) {\n this._requestItemScroll(\n item,\n AXIS_X,\n xElement,\n xDirection,\n xThreshold,\n xDistance,\n xMaxScroll\n );\n } else {\n this._cancelItemScroll(item, AXIS_X);\n }\n }\n\n // Request or cancel y-axis scroll.\n if (checkY) {\n if (yElement) {\n this._requestItemScroll(\n item,\n AXIS_Y,\n yElement,\n yDirection,\n yThreshold,\n yDistance,\n yMaxScroll\n );\n } else {\n this._cancelItemScroll(item, AXIS_Y);\n }\n }\n};\n\nAutoScroller.prototype._updateScrollRequest = function (scrollRequest) {\n var item = scrollRequest.item;\n var settings = getItemAutoScrollSettings(item);\n var targets = isFunction(settings.targets) ? settings.targets(item) : settings.targets;\n var targetCount = (targets && targets.length) || 0;\n var threshold = settings.threshold;\n var safeZone = settings.safeZone;\n var itemRect = this._getItemHandleRect(item, settings.handle, RECT_1);\n var testRect = RECT_2;\n var target = null;\n var testElement = null;\n var testIsAxisX = false;\n var testScore = null;\n var testThreshold = null;\n var testDistance = null;\n var testScroll = null;\n var testMaxScroll = null;\n var hasReachedEnd = null;\n\n for (var i = 0; i < targetCount; i++) {\n target = targets[i];\n\n // Make sure we have a matching element.\n testElement = getScrollElement(target.element || target);\n if (testElement !== scrollRequest.element) continue;\n\n // Make sure we have a matching axis.\n testIsAxisX = !!(AXIS_X & scrollRequest.direction);\n if (testIsAxisX) {\n if (target.axis === AXIS_Y) continue;\n } else {\n if (target.axis === AXIS_X) continue;\n }\n\n // Stop scrolling if there is no room to scroll anymore.\n testMaxScroll = testIsAxisX ? getScrollLeftMax(testElement) : getScrollTopMax(testElement);\n if (testMaxScroll <= 0) {\n break;\n }\n\n testRect = getContentRect(testElement, testRect);\n testScore = getIntersectionScore(itemRect, testRect);\n\n // Stop scrolling if dragged item is not overlapping with the scroll\n // element anymore.\n if (testScore <= 0) {\n break;\n }\n\n // Compute threshold and edge offset.\n testThreshold = computeThreshold(\n typeof target.threshold === 'number' ? target.threshold : threshold,\n safeZone,\n testIsAxisX ? itemRect.width : itemRect.height,\n testIsAxisX ? testRect.width : testRect.height\n );\n\n // Compute distance (based on current direction).\n if (scrollRequest.direction === LEFT) {\n testDistance = itemRect.left - (testRect.left - testThreshold.offset);\n } else if (scrollRequest.direction === RIGHT) {\n testDistance = testRect.right + testThreshold.offset - itemRect.right;\n } else if (scrollRequest.direction === UP) {\n testDistance = itemRect.top - (testRect.top - testThreshold.offset);\n } else {\n testDistance = testRect.bottom + testThreshold.offset - itemRect.bottom;\n }\n\n // Stop scrolling if threshold is not exceeded.\n if (testDistance > testThreshold.value) {\n break;\n }\n\n // Stop scrolling if we have reached the end of the scroll value.\n testScroll = testIsAxisX ? getScrollLeft(testElement) : getScrollTop(testElement);\n hasReachedEnd =\n FORWARD & scrollRequest.direction ? testScroll >= testMaxScroll : testScroll <= 0;\n if (hasReachedEnd) {\n break;\n }\n\n // Scrolling can continue, let's update the values.\n scrollRequest.maxValue = testMaxScroll;\n scrollRequest.threshold = testThreshold.value;\n scrollRequest.distance = testDistance;\n scrollRequest.isEnding = false;\n return true;\n }\n\n // Before we end the request, let's see if we need to stop the scrolling\n // smoothly or immediately.\n if (settings.smoothStop === true && scrollRequest.speed > 0) {\n if (hasReachedEnd === null) hasReachedEnd = scrollRequest.hasReachedEnd();\n scrollRequest.isEnding = hasReachedEnd ? false : true;\n } else {\n scrollRequest.isEnding = false;\n }\n\n return scrollRequest.isEnding;\n};\n\nAutoScroller.prototype._updateRequests = function () {\n var items = this._items;\n var requestsX = this._requests[AXIS_X];\n var requestsY = this._requests[AXIS_Y];\n var item, reqX, reqY, checkTime, needsCheck, checkX, checkY;\n\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n checkTime = this._requestOverlapCheck[item._id];\n needsCheck = checkTime > 0 && this._tickTime - checkTime > this._overlapCheckInterval;\n\n checkX = true;\n reqX = requestsX[item._id];\n if (reqX && reqX.isActive) {\n checkX = !this._updateScrollRequest(reqX);\n if (checkX) {\n needsCheck = true;\n this._cancelItemScroll(item, AXIS_X);\n }\n }\n\n checkY = true;\n reqY = requestsY[item._id];\n if (reqY && reqY.isActive) {\n checkY = !this._updateScrollRequest(reqY);\n if (checkY) {\n needsCheck = true;\n this._cancelItemScroll(item, AXIS_Y);\n }\n }\n\n if (needsCheck) {\n this._requestOverlapCheck[item._id] = 0;\n this._checkItemOverlap(item, checkX, checkY);\n }\n }\n};\n\nAutoScroller.prototype._requestAction = function (request, axis) {\n var actions = this._actions;\n var isAxisX = axis === AXIS_X;\n var action = null;\n\n for (var i = 0; i < actions.length; i++) {\n action = actions[i];\n\n // If the action's request does not match the request's -> skip.\n if (request.element !== action.element) {\n action = null;\n continue;\n }\n\n // If the request and action share the same element, but the request slot\n // for the requested axis is already reserved let's ignore and cancel this\n // request.\n if (isAxisX ? action.requestX : action.requestY) {\n this._cancelItemScroll(request.item, axis);\n return;\n }\n\n // Seems like we have found our action, let's break the loop.\n break;\n }\n\n if (!action) action = this._actionPool.pick();\n action.element = request.element;\n action.addRequest(request);\n\n request.tick(this._tickDeltaTime);\n actions.push(action);\n};\n\nAutoScroller.prototype._updateActions = function () {\n var items = this._items;\n var requests = this._requests;\n var actions = this._actions;\n var itemId;\n var reqX;\n var reqY;\n var i;\n\n // Generate actions.\n for (i = 0; i < items.length; i++) {\n itemId = items[i]._id;\n reqX = requests[AXIS_X][itemId];\n reqY = requests[AXIS_Y][itemId];\n if (reqX) this._requestAction(reqX, AXIS_X);\n if (reqY) this._requestAction(reqY, AXIS_Y);\n }\n\n // Compute actions' scroll values.\n for (i = 0; i < actions.length; i++) {\n actions[i].computeScrollValues();\n }\n};\n\nAutoScroller.prototype._applyActions = function () {\n var actions = this._actions;\n var items = this._items;\n var i;\n\n // No actions -> no scrolling.\n if (!actions.length) return;\n\n // Scroll all the required elements.\n for (i = 0; i < actions.length; i++) {\n actions[i].scroll();\n this._actionPool.release(actions[i]);\n }\n\n // Reset actions.\n actions.length = 0;\n\n // Sync the item position immediately after all the auto-scrolling business is\n // finished. Without this procedure the items will jitter during auto-scroll\n // (in some cases at least) since the drag scroll handler is async (bound to\n // raf tick). Note that this procedure should not emit any dragScroll events,\n // because otherwise they would be emitted twice for the same event.\n for (i = 0; i < items.length; i++) prepareItemScrollSync(items[i]);\n for (i = 0; i < items.length; i++) applyItemScrollSync(items[i]);\n};\n\nAutoScroller.prototype._updateDragDirection = function (item) {\n var dragPositions = this._dragPositions[item._id];\n var dragDirections = this._dragDirections[item._id];\n var x1 = item._drag._left;\n var y1 = item._drag._top;\n if (dragPositions.length) {\n var x2 = dragPositions[0];\n var y2 = dragPositions[1];\n dragDirections[0] = x1 > x2 ? RIGHT : x1 < x2 ? LEFT : dragDirections[0] || 0;\n dragDirections[1] = y1 > y2 ? DOWN : y1 < y2 ? UP : dragDirections[1] || 0;\n }\n dragPositions[0] = x1;\n dragPositions[1] = y1;\n};\n\nAutoScroller.prototype.addItem = function (item) {\n if (this._isDestroyed) return;\n var index = this._items.indexOf(item);\n if (index === -1) {\n this._items.push(item);\n this._requestOverlapCheck[item._id] = this._tickTime;\n this._dragDirections[item._id] = [0, 0];\n this._dragPositions[item._id] = [];\n if (!this._isTicking) this._startTicking();\n }\n};\n\nAutoScroller.prototype.updateItem = function (item) {\n if (this._isDestroyed) return;\n\n // Make sure the item still exists in the auto-scroller.\n if (!this._dragDirections[item._id]) return;\n\n this._updateDragDirection(item);\n if (!this._requestOverlapCheck[item._id]) {\n this._requestOverlapCheck[item._id] = this._tickTime;\n }\n};\n\nAutoScroller.prototype.removeItem = function (item) {\n if (this._isDestroyed) return;\n\n var index = this._items.indexOf(item);\n if (index === -1) return;\n\n var itemId = item._id;\n\n var reqX = this._requests[AXIS_X][itemId];\n if (reqX) {\n this._cancelItemScroll(item, AXIS_X);\n delete this._requests[AXIS_X][itemId];\n }\n\n var reqY = this._requests[AXIS_Y][itemId];\n if (reqY) {\n this._cancelItemScroll(item, AXIS_Y);\n delete this._requests[AXIS_Y][itemId];\n }\n\n delete this._requestOverlapCheck[itemId];\n delete this._dragPositions[itemId];\n delete this._dragDirections[itemId];\n this._items.splice(index, 1);\n\n if (this._isTicking && !this._items.length) {\n this._stopTicking();\n }\n};\n\nAutoScroller.prototype.isItemScrollingX = function (item) {\n var reqX = this._requests[AXIS_X][item._id];\n return !!(reqX && reqX.isActive);\n};\n\nAutoScroller.prototype.isItemScrollingY = function (item) {\n var reqY = this._requests[AXIS_Y][item._id];\n return !!(reqY && reqY.isActive);\n};\n\nAutoScroller.prototype.isItemScrolling = function (item) {\n return this.isItemScrollingX(item) || this.isItemScrollingY(item);\n};\n\nAutoScroller.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var items = this._items.slice(0);\n for (var i = 0; i < items.length; i++) {\n this.removeItem(items[i]);\n }\n\n this._actions.length = 0;\n this._requestPool.reset();\n this._actionPool.reset();\n\n this._isDestroyed = true;\n};\n\nvar ElProto = window.Element.prototype;\nvar matchesFn =\n ElProto.matches ||\n ElProto.matchesSelector ||\n ElProto.webkitMatchesSelector ||\n ElProto.mozMatchesSelector ||\n ElProto.msMatchesSelector ||\n ElProto.oMatchesSelector ||\n function () {\n return false;\n };\n\n/**\n * Check if element matches a CSS selector.\n *\n * @param {Element} el\n * @param {String} selector\n * @returns {Boolean}\n */\nfunction elementMatches(el, selector) {\n return matchesFn.call(el, selector);\n}\n\n/**\n * Add class to an element.\n *\n * @param {HTMLElement} element\n * @param {String} className\n */\nfunction addClass(element, className) {\n if (!className) return;\n\n if (element.classList) {\n element.classList.add(className);\n } else {\n if (!elementMatches(element, '.' + className)) {\n element.className += ' ' + className;\n }\n }\n}\n\nvar tempArray = [];\nvar numberType = 'number';\n\n/**\n * Insert an item or an array of items to array to a specified index. Mutates\n * the array. The index can be negative in which case the items will be added\n * to the end of the array.\n *\n * @param {Array} array\n * @param {*} items\n * @param {Number} [index=-1]\n */\nfunction arrayInsert(array, items, index) {\n var startIndex = typeof index === numberType ? index : -1;\n if (startIndex < 0) startIndex = array.length - startIndex + 1;\n\n array.splice.apply(array, tempArray.concat(startIndex, 0, items));\n tempArray.length = 0;\n}\n\n/**\n * Normalize array index. Basically this function makes sure that the provided\n * array index is within the bounds of the provided array and also transforms\n * negative index to the matching positive index. The third (optional) argument\n * allows you to define offset for array's length in case you are adding items\n * to the array or removing items from the array.\n *\n * @param {Array} array\n * @param {Number} index\n * @param {Number} [sizeOffset]\n */\nfunction normalizeArrayIndex(array, index, sizeOffset) {\n var maxIndex = Math.max(0, array.length - 1 + (sizeOffset || 0));\n return index > maxIndex ? maxIndex : index < 0 ? Math.max(maxIndex + index + 1, 0) : index;\n}\n\n/**\n * Move array item to another index.\n *\n * @param {Array} array\n * @param {Number} fromIndex\n * - Index (positive or negative) of the item that will be moved.\n * @param {Number} toIndex\n * - Index (positive or negative) where the item should be moved to.\n */\nfunction arrayMove(array, fromIndex, toIndex) {\n // Make sure the array has two or more items.\n if (array.length < 2) return;\n\n // Normalize the indices.\n var from = normalizeArrayIndex(array, fromIndex);\n var to = normalizeArrayIndex(array, toIndex);\n\n // Add target item to the new position.\n if (from !== to) {\n array.splice(to, 0, array.splice(from, 1)[0]);\n }\n}\n\n/**\n * Swap array items.\n *\n * @param {Array} array\n * @param {Number} index\n * - Index (positive or negative) of the item that will be swapped.\n * @param {Number} withIndex\n * - Index (positive or negative) of the other item that will be swapped.\n */\nfunction arraySwap(array, index, withIndex) {\n // Make sure the array has two or more items.\n if (array.length < 2) return;\n\n // Normalize the indices.\n var indexA = normalizeArrayIndex(array, index);\n var indexB = normalizeArrayIndex(array, withIndex);\n var temp;\n\n // Swap the items.\n if (indexA !== indexB) {\n temp = array[indexA];\n array[indexA] = array[indexB];\n array[indexB] = temp;\n }\n}\n\nvar transformProp = getPrefixedPropName(document.documentElement.style, 'transform') || 'transform';\n\nvar styleNameRegEx = /([A-Z])/g;\nvar prefixRegex = /^(webkit-|moz-|ms-|o-)/;\nvar msPrefixRegex = /^(-m-s-)/;\n\n/**\n * Transforms a camel case style property to kebab case style property. Handles\n * vendor prefixed properties elegantly as well, e.g. \"WebkitTransform\" and\n * \"webkitTransform\" are both transformed into \"-webkit-transform\".\n *\n * @param {String} property\n * @returns {String}\n */\nfunction getStyleName(property) {\n // Initial slicing, turns \"fooBarProp\" into \"foo-bar-prop\".\n var styleName = property.replace(styleNameRegEx, '-$1').toLowerCase();\n\n // Handle properties that start with \"webkit\", \"moz\", \"ms\" or \"o\" prefix (we\n // need to add an extra '-' to the beginnig).\n styleName = styleName.replace(prefixRegex, '-$1');\n\n // Handle properties that start with \"MS\" prefix (we need to transform the\n // \"-m-s-\" into \"-ms-\").\n styleName = styleName.replace(msPrefixRegex, '-ms-');\n\n return styleName;\n}\n\nvar transformStyle = getStyleName(transformProp);\n\nvar transformNone$1 = 'none';\nvar displayInline = 'inline';\nvar displayNone = 'none';\nvar displayStyle = 'display';\n\n/**\n * Returns true if element is transformed, false if not. In practice the\n * element's display value must be anything else than \"none\" or \"inline\" as\n * well as have a valid transform value applied in order to be counted as a\n * transformed element.\n *\n * Borrowed from Mezr (v0.6.1):\n * https://github.com/niklasramo/mezr/blob/0.6.1/mezr.js#L661\n *\n * @param {HTMLElement} element\n * @returns {Boolean}\n */\nfunction isTransformed(element) {\n var transform = getStyle(element, transformStyle);\n if (!transform || transform === transformNone$1) return false;\n\n var display = getStyle(element, displayStyle);\n if (display === displayInline || display === displayNone) return false;\n\n return true;\n}\n\n/**\n * Returns an absolute positioned element's containing block, which is\n * considered to be the closest ancestor element that the target element's\n * positioning is relative to. Disclaimer: this only works as intended for\n * absolute positioned elements.\n *\n * @param {HTMLElement} element\n * @returns {(Document|Element)}\n */\nfunction getContainingBlock(element) {\n // As long as the containing block is an element, static and not\n // transformed, try to get the element's parent element and fallback to\n // document. https://github.com/niklasramo/mezr/blob/0.6.1/mezr.js#L339\n var doc = document;\n var res = element || doc;\n while (res && res !== doc && getStyle(res, 'position') === 'static' && !isTransformed(res)) {\n res = res.parentElement || doc;\n }\n return res;\n}\n\nvar offsetA = {};\nvar offsetB = {};\nvar offsetDiff = {};\n\n/**\n * Returns the element's document offset, which in practice means the vertical\n * and horizontal distance between the element's northwest corner and the\n * document's northwest corner. Note that this function always returns the same\n * object so be sure to read the data from it instead using it as a reference.\n *\n * @param {(Document|Element|Window)} element\n * @param {Object} [offsetData]\n * - Optional data object where the offset data will be inserted to. If not\n * provided a new object will be created for the return data.\n * @returns {Object}\n */\nfunction getOffset(element, offsetData) {\n var offset = offsetData || {};\n var rect;\n\n // Set up return data.\n offset.left = 0;\n offset.top = 0;\n\n // Document's offsets are always 0.\n if (element === document) return offset;\n\n // Add viewport scroll left/top to the respective offsets.\n offset.left = window.pageXOffset || 0;\n offset.top = window.pageYOffset || 0;\n\n // Window's offsets are the viewport scroll left/top values.\n if (element.self === window.self) return offset;\n\n // Add element's client rects to the offsets.\n rect = element.getBoundingClientRect();\n offset.left += rect.left;\n offset.top += rect.top;\n\n // Exclude element's borders from the offset.\n offset.left += getStyleAsFloat(element, 'border-left-width');\n offset.top += getStyleAsFloat(element, 'border-top-width');\n\n return offset;\n}\n\n/**\n * Calculate the offset difference two elements.\n *\n * @param {HTMLElement} elemA\n * @param {HTMLElement} elemB\n * @param {Boolean} [compareContainingBlocks=false]\n * - When this is set to true the containing blocks of the provided elements\n * will be used for calculating the difference. Otherwise the provided\n * elements will be compared directly.\n * @returns {Object}\n */\nfunction getOffsetDiff(elemA, elemB, compareContainingBlocks) {\n offsetDiff.left = 0;\n offsetDiff.top = 0;\n\n // If elements are same let's return early.\n if (elemA === elemB) return offsetDiff;\n\n // Compare containing blocks if necessary.\n if (compareContainingBlocks) {\n elemA = getContainingBlock(elemA);\n elemB = getContainingBlock(elemB);\n\n // If containing blocks are identical, let's return early.\n if (elemA === elemB) return offsetDiff;\n }\n\n // Finally, let's calculate the offset diff.\n getOffset(elemA, offsetA);\n getOffset(elemB, offsetB);\n offsetDiff.left = offsetB.left - offsetA.left;\n offsetDiff.top = offsetB.top - offsetA.top;\n\n return offsetDiff;\n}\n\n/**\n * Check if overflow style value is scrollable.\n *\n * @param {String} value\n * @returns {Boolean}\n */\nfunction isScrollableOverflow(value) {\n return value === 'auto' || value === 'scroll' || value === 'overlay';\n}\n\n/**\n * Check if an element is scrollable.\n *\n * @param {HTMLElement} element\n * @returns {Boolean}\n */\nfunction isScrollable(element) {\n return (\n isScrollableOverflow(getStyle(element, 'overflow')) ||\n isScrollableOverflow(getStyle(element, 'overflow-x')) ||\n isScrollableOverflow(getStyle(element, 'overflow-y'))\n );\n}\n\n/**\n * Collect element's ancestors that are potentially scrollable elements. The\n * provided element is also also included in the check, meaning that if it is\n * scrollable it is added to the result array.\n *\n * @param {HTMLElement} element\n * @param {Array} [result]\n * @returns {Array}\n */\nfunction getScrollableAncestors(element, result) {\n result = result || [];\n\n // Find scroll parents.\n while (element && element !== document) {\n // If element is inside ShadowDOM let's get it's host node from the real\n // DOM and continue looping.\n if (element.getRootNode && element instanceof DocumentFragment) {\n element = element.getRootNode().host;\n continue;\n }\n\n // If element is scrollable let's add it to the scrollable list.\n if (isScrollable(element)) {\n result.push(element);\n }\n\n element = element.parentNode;\n }\n\n // Always add window to the results.\n result.push(window);\n\n return result;\n}\n\nvar translateValue = {};\nvar transformNone = 'none';\nvar rxMat3d = /^matrix3d/;\nvar rxMatTx = /([^,]*,){4}/;\nvar rxMat3dTx = /([^,]*,){12}/;\nvar rxNextItem = /[^,]*,/;\n\n/**\n * Returns the element's computed translateX and translateY values as a floats.\n * The returned object is always the same object and updated every time this\n * function is called.\n *\n * @param {HTMLElement} element\n * @returns {Object}\n */\nfunction getTranslate(element) {\n translateValue.x = 0;\n translateValue.y = 0;\n\n var transform = getStyle(element, transformStyle);\n if (!transform || transform === transformNone) {\n return translateValue;\n }\n\n // Transform style can be in either matrix3d(...) or matrix(...).\n var isMat3d = rxMat3d.test(transform);\n var tX = transform.replace(isMat3d ? rxMat3dTx : rxMatTx, '');\n var tY = tX.replace(rxNextItem, '');\n\n translateValue.x = parseFloat(tX) || 0;\n translateValue.y = parseFloat(tY) || 0;\n\n return translateValue;\n}\n\n/**\n * Remove class from an element.\n *\n * @param {HTMLElement} element\n * @param {String} className\n */\nfunction removeClass(element, className) {\n if (!className) return;\n\n if (element.classList) {\n element.classList.remove(className);\n } else {\n if (elementMatches(element, '.' + className)) {\n element.className = (' ' + element.className + ' ')\n .replace(' ' + className + ' ', ' ')\n .trim();\n }\n }\n}\n\nvar IS_IOS =\n /^(iPad|iPhone|iPod)/.test(window.navigator.platform) ||\n (/^Mac/.test(window.navigator.platform) && window.navigator.maxTouchPoints > 1);\nvar START_PREDICATE_INACTIVE = 0;\nvar START_PREDICATE_PENDING = 1;\nvar START_PREDICATE_RESOLVED = 2;\nvar SCROLL_LISTENER_OPTIONS = hasPassiveEvents() ? { passive: true } : false;\n\n/**\n * Bind touch interaction to an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDrag(item) {\n var element = item._element;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this._item = item;\n this._gridId = grid._id;\n this._isDestroyed = false;\n this._isMigrating = false;\n\n // Start predicate data.\n this._startPredicate = isFunction(settings.dragStartPredicate)\n ? settings.dragStartPredicate\n : ItemDrag.defaultStartPredicate;\n this._startPredicateState = START_PREDICATE_INACTIVE;\n this._startPredicateResult = undefined;\n\n // Data for drag sort predicate heuristics.\n this._isSortNeeded = false;\n this._sortTimer = undefined;\n this._blockedSortIndex = null;\n this._sortX1 = 0;\n this._sortX2 = 0;\n this._sortY1 = 0;\n this._sortY2 = 0;\n\n // Setup item's initial drag data.\n this._reset();\n\n // Bind the methods that needs binding.\n this._preStartCheck = this._preStartCheck.bind(this);\n this._preEndCheck = this._preEndCheck.bind(this);\n this._onScroll = this._onScroll.bind(this);\n this._prepareStart = this._prepareStart.bind(this);\n this._applyStart = this._applyStart.bind(this);\n this._prepareMove = this._prepareMove.bind(this);\n this._applyMove = this._applyMove.bind(this);\n this._prepareScroll = this._prepareScroll.bind(this);\n this._applyScroll = this._applyScroll.bind(this);\n this._handleSort = this._handleSort.bind(this);\n this._handleSortDelayed = this._handleSortDelayed.bind(this);\n\n // Get drag handle element.\n this._handle = (settings.dragHandle && element.querySelector(settings.dragHandle)) || element;\n\n // Init dragger.\n this._dragger = new Dragger(this._handle, settings.dragCssProps);\n this._dragger.on('start', this._preStartCheck);\n this._dragger.on('move', this._preStartCheck);\n this._dragger.on('cancel', this._preEndCheck);\n this._dragger.on('end', this._preEndCheck);\n}\n\n/**\n * Public properties\n * *****************\n */\n\n/**\n * @public\n * @static\n * @type {AutoScroller}\n */\nItemDrag.autoScroller = new AutoScroller();\n\n/**\n * Public static methods\n * *********************\n */\n\n/**\n * Default drag start predicate handler that handles anchor elements\n * gracefully. The return value of this function defines if the drag is\n * started, rejected or pending. When true is returned the dragging is started\n * and when false is returned the dragging is rejected. If nothing is returned\n * the predicate will be called again on the next drag movement.\n *\n * @public\n * @static\n * @param {Item} item\n * @param {Object} event\n * @param {Object} [options]\n * - An optional options object which can be used to pass the predicate\n * it's options manually. By default the predicate retrieves the options\n * from the grid's settings.\n * @returns {(Boolean|undefined)}\n */\nItemDrag.defaultStartPredicate = function (item, event, options) {\n var drag = item._drag;\n\n // Make sure left button is pressed on mouse.\n if (event.isFirst && event.srcEvent.button) {\n return false;\n }\n\n // If the start event is trusted, non-cancelable and it's default action has\n // not been prevented it is in most cases a sign that the gesture would be\n // cancelled anyways right after it has started (e.g. starting drag while\n // the page is scrolling).\n if (\n !IS_IOS &&\n event.isFirst &&\n event.srcEvent.isTrusted === true &&\n event.srcEvent.defaultPrevented === false &&\n event.srcEvent.cancelable === false\n ) {\n return false;\n }\n\n // Final event logic. At this stage return value does not matter anymore,\n // the predicate is either resolved or it's not and there's nothing to do\n // about it. Here we just reset data and if the item element is a link\n // we follow it (if there has only been slight movement).\n if (event.isFinal) {\n drag._finishStartPredicate(event);\n return;\n }\n\n // Setup predicate data from options if not already set.\n var predicate = drag._startPredicateData;\n if (!predicate) {\n var config = options || drag._getGrid()._settings.dragStartPredicate || {};\n drag._startPredicateData = predicate = {\n distance: Math.max(config.distance, 0) || 0,\n delay: Math.max(config.delay, 0) || 0,\n };\n }\n\n // If delay is defined let's keep track of the latest event and initiate\n // delay if it has not been done yet.\n if (predicate.delay) {\n predicate.event = event;\n if (!predicate.delayTimer) {\n predicate.delayTimer = window.setTimeout(function () {\n predicate.delay = 0;\n if (drag._resolveStartPredicate(predicate.event)) {\n drag._forceResolveStartPredicate(predicate.event);\n drag._resetStartPredicate();\n }\n }, predicate.delay);\n }\n }\n\n return drag._resolveStartPredicate(event);\n};\n\n/**\n * Default drag sort predicate.\n *\n * @public\n * @static\n * @param {Item} item\n * @param {Object} [options]\n * @param {Number} [options.threshold=50]\n * @param {String} [options.action='move']\n * @returns {?Object}\n * - Returns `null` if no valid index was found. Otherwise returns drag sort\n * command.\n */\nItemDrag.defaultSortPredicate = (function () {\n var itemRect = {};\n var targetRect = {};\n var returnData = {};\n var gridsArray = [];\n var minThreshold = 1;\n var maxThreshold = 100;\n\n function getTargetGrid(item, rootGrid, threshold) {\n var target = null;\n var dragSort = rootGrid._settings.dragSort;\n var bestScore = -1;\n var gridScore;\n var grids;\n var grid;\n var container;\n var containerRect;\n var left;\n var top;\n var right;\n var bottom;\n var i;\n\n // Get potential target grids.\n if (dragSort === true) {\n gridsArray[0] = rootGrid;\n grids = gridsArray;\n } else if (isFunction(dragSort)) {\n grids = dragSort.call(rootGrid, item);\n }\n\n // Return immediately if there are no grids.\n if (!grids || !Array.isArray(grids) || !grids.length) {\n return target;\n }\n\n // Loop through the grids and get the best match.\n for (i = 0; i < grids.length; i++) {\n grid = grids[i];\n\n // Filter out all destroyed grids.\n if (grid._isDestroyed) continue;\n\n // Compute the grid's client rect an clamp the initial boundaries to\n // viewport dimensions.\n grid._updateBoundingRect();\n left = Math.max(0, grid._left);\n top = Math.max(0, grid._top);\n right = Math.min(window.innerWidth, grid._right);\n bottom = Math.min(window.innerHeight, grid._bottom);\n\n // The grid might be inside one or more elements that clip it's visibility\n // (e.g overflow scroll/hidden) so we want to find out the visible portion\n // of the grid in the viewport and use that in our calculations.\n container = grid._element.parentNode;\n while (\n container &&\n container !== document &&\n container !== document.documentElement &&\n container !== document.body\n ) {\n if (container.getRootNode && container instanceof DocumentFragment) {\n container = container.getRootNode().host;\n continue;\n }\n\n if (getStyle(container, 'overflow') !== 'visible') {\n containerRect = container.getBoundingClientRect();\n left = Math.max(left, containerRect.left);\n top = Math.max(top, containerRect.top);\n right = Math.min(right, containerRect.right);\n bottom = Math.min(bottom, containerRect.bottom);\n }\n\n if (getStyle(container, 'position') === 'fixed') {\n break;\n }\n\n container = container.parentNode;\n }\n\n // No need to go further if target rect does not have visible area.\n if (left >= right || top >= bottom) continue;\n\n // Check how much dragged element overlaps the container element.\n targetRect.left = left;\n targetRect.top = top;\n targetRect.width = right - left;\n targetRect.height = bottom - top;\n gridScore = getIntersectionScore(itemRect, targetRect);\n\n // Check if this grid is the best match so far.\n if (gridScore > threshold && gridScore > bestScore) {\n bestScore = gridScore;\n target = grid;\n }\n }\n\n // Always reset grids array.\n gridsArray.length = 0;\n\n return target;\n }\n\n return function (item, options) {\n var drag = item._drag;\n var rootGrid = drag._getGrid();\n\n // Get drag sort predicate settings.\n var sortThreshold = options && typeof options.threshold === 'number' ? options.threshold : 50;\n var sortAction = options && options.action === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n var migrateAction =\n options && options.migrateAction === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n\n // Sort threshold must be a positive number capped to a max value of 100. If\n // that's not the case this function will not work correctly. So let's clamp\n // the threshold just in case.\n sortThreshold = Math.min(Math.max(sortThreshold, minThreshold), maxThreshold);\n\n // Populate item rect data.\n itemRect.width = item._width;\n itemRect.height = item._height;\n itemRect.left = drag._clientX;\n itemRect.top = drag._clientY;\n\n // Calculate the target grid.\n var grid = getTargetGrid(item, rootGrid, sortThreshold);\n\n // Return early if we found no grid container element that overlaps the\n // dragged item enough.\n if (!grid) return null;\n\n var isMigration = item.getGrid() !== grid;\n var gridOffsetLeft = 0;\n var gridOffsetTop = 0;\n var matchScore = 0;\n var matchIndex = -1;\n var hasValidTargets = false;\n var target;\n var score;\n var i;\n\n // If item is moved within it's originating grid adjust item's left and\n // top props. Otherwise if item is moved to/within another grid get the\n // container element's offset (from the element's content edge).\n if (grid === rootGrid) {\n itemRect.left = drag._gridX + item._marginLeft;\n itemRect.top = drag._gridY + item._marginTop;\n } else {\n grid._updateBorders(1, 0, 1, 0);\n gridOffsetLeft = grid._left + grid._borderLeft;\n gridOffsetTop = grid._top + grid._borderTop;\n }\n\n // Loop through the target grid items and try to find the best match.\n for (i = 0; i < grid._items.length; i++) {\n target = grid._items[i];\n\n // If the target item is not active or the target item is the dragged\n // item let's skip to the next item.\n if (!target._isActive || target === item) {\n continue;\n }\n\n // Mark the grid as having valid target items.\n hasValidTargets = true;\n\n // Calculate the target's overlap score with the dragged item.\n targetRect.width = target._width;\n targetRect.height = target._height;\n targetRect.left = target._left + target._marginLeft + gridOffsetLeft;\n targetRect.top = target._top + target._marginTop + gridOffsetTop;\n score = getIntersectionScore(itemRect, targetRect);\n\n // Update best match index and score if the target's overlap score with\n // the dragged item is higher than the current best match score.\n if (score > matchScore) {\n matchIndex = i;\n matchScore = score;\n }\n }\n\n // If there is no valid match and the dragged item is being moved into\n // another grid we need to do some guess work here. If there simply are no\n // valid targets (which means that the dragged item will be the only active\n // item in the new grid) we can just add it as the first item. If we have\n // valid items in the new grid and the dragged item is overlapping one or\n // more of the items in the new grid let's make an exception with the\n // threshold and just pick the item which the dragged item is overlapping\n // most. However, if the dragged item is not overlapping any of the valid\n // items in the new grid let's position it as the last item in the grid.\n if (isMigration && matchScore < sortThreshold) {\n matchIndex = hasValidTargets ? matchIndex : 0;\n matchScore = sortThreshold;\n }\n\n // Check if the best match overlaps enough to justify a placement switch.\n if (matchScore >= sortThreshold) {\n returnData.grid = grid;\n returnData.index = matchIndex;\n returnData.action = isMigration ? migrateAction : sortAction;\n return returnData;\n }\n\n return null;\n };\n})();\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Abort dragging and reset drag data.\n *\n * @public\n */\nItemDrag.prototype.stop = function () {\n if (!this._isActive) return;\n\n // If the item is being dropped into another grid, finish it up and return\n // immediately.\n if (this._isMigrating) {\n this._finishMigration();\n return;\n }\n\n var item = this._item;\n var itemId = item._id;\n\n // Stop auto-scroll.\n ItemDrag.autoScroller.removeItem(item);\n\n // Cancel queued ticks.\n cancelDragStartTick(itemId);\n cancelDragMoveTick(itemId);\n cancelDragScrollTick(itemId);\n\n // Cancel sort procedure.\n this._cancelSort();\n\n if (this._isStarted) {\n // Remove scroll listeners.\n this._unbindScrollListeners();\n\n var element = item._element;\n var grid = this._getGrid();\n var draggingClass = grid._settings.itemDraggingClass;\n\n // Append item element to the container if it's not it's child. Also make\n // sure the translate values are adjusted to account for the DOM shift.\n if (element.parentNode !== grid._element) {\n grid._element.appendChild(element);\n item._setTranslate(this._gridX, this._gridY);\n\n // We need to do forced reflow to make sure the dragging class is removed\n // gracefully.\n // eslint-disable-next-line\n if (draggingClass) element.clientWidth;\n }\n\n // Remove dragging class.\n removeClass(element, draggingClass);\n }\n\n // Reset drag data.\n this._reset();\n};\n\n/**\n * Manually trigger drag sort. This is only needed for special edge cases where\n * e.g. you have disabled sort and want to trigger a sort right after enabling\n * it (and don't want to wait for the next move/scroll event).\n *\n * @private\n * @param {Boolean} [force=false]\n */\nItemDrag.prototype.sort = function (force) {\n var item = this._item;\n if (this._isActive && item._isActive && this._dragMoveEvent) {\n if (force === true) {\n this._handleSort();\n } else {\n addDragSortTick(item._id, this._handleSort);\n }\n }\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemDrag.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop();\n this._dragger.destroy();\n ItemDrag.autoScroller.removeItem(this._item);\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Get Grid instance.\n *\n * @private\n * @returns {?Grid}\n */\nItemDrag.prototype._getGrid = function () {\n return GRID_INSTANCES[this._gridId] || null;\n};\n\n/**\n * Setup/reset drag data.\n *\n * @private\n */\nItemDrag.prototype._reset = function () {\n this._isActive = false;\n this._isStarted = false;\n\n // The dragged item's container element.\n this._container = null;\n\n // The dragged item's containing block.\n this._containingBlock = null;\n\n // Drag/scroll event data.\n this._dragStartEvent = null;\n this._dragMoveEvent = null;\n this._dragPrevMoveEvent = null;\n this._scrollEvent = null;\n\n // All the elements which need to be listened for scroll events during\n // dragging.\n this._scrollers = [];\n\n // The current translateX/translateY position.\n this._left = 0;\n this._top = 0;\n\n // Dragged element's current position within the grid.\n this._gridX = 0;\n this._gridY = 0;\n\n // Dragged element's current offset from window's northwest corner. Does\n // not account for element's margins.\n this._clientX = 0;\n this._clientY = 0;\n\n // Keep track of the clientX/Y diff for scrolling.\n this._scrollDiffX = 0;\n this._scrollDiffY = 0;\n\n // Keep track of the clientX/Y diff for moving.\n this._moveDiffX = 0;\n this._moveDiffY = 0;\n\n // Offset difference between the dragged element's temporary drag\n // container and it's original container.\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n};\n\n/**\n * Bind drag scroll handlers to all scrollable ancestor elements of the\n * dragged element and the drag container element.\n *\n * @private\n */\nItemDrag.prototype._bindScrollListeners = function () {\n var gridContainer = this._getGrid()._element;\n var dragContainer = this._container;\n var scrollers = this._scrollers;\n var gridScrollers;\n var i;\n\n // Get dragged element's scrolling parents.\n scrollers.length = 0;\n getScrollableAncestors(this._item._element.parentNode, scrollers);\n\n // If drag container is defined and it's not the same element as grid\n // container then we need to add the grid container and it's scroll parents\n // to the elements which are going to be listener for scroll events.\n if (dragContainer !== gridContainer) {\n gridScrollers = [];\n getScrollableAncestors(gridContainer, gridScrollers);\n for (i = 0; i < gridScrollers.length; i++) {\n if (scrollers.indexOf(gridScrollers[i]) < 0) {\n scrollers.push(gridScrollers[i]);\n }\n }\n }\n\n // Bind scroll listeners.\n for (i = 0; i < scrollers.length; i++) {\n scrollers[i].addEventListener('scroll', this._onScroll, SCROLL_LISTENER_OPTIONS);\n }\n};\n\n/**\n * Unbind currently bound drag scroll handlers from all scrollable ancestor\n * elements of the dragged element and the drag container element.\n *\n * @private\n */\nItemDrag.prototype._unbindScrollListeners = function () {\n var scrollers = this._scrollers;\n var i;\n\n for (i = 0; i < scrollers.length; i++) {\n scrollers[i].removeEventListener('scroll', this._onScroll, SCROLL_LISTENER_OPTIONS);\n }\n\n scrollers.length = 0;\n};\n\n/**\n * Unbind currently bound drag scroll handlers from all scrollable ancestor\n * elements of the dragged element and the drag container element.\n *\n * @private\n * @param {Object} event\n * @returns {Boolean}\n */\nItemDrag.prototype._resolveStartPredicate = function (event) {\n var predicate = this._startPredicateData;\n if (event.distance < predicate.distance || predicate.delay) return;\n this._resetStartPredicate();\n return true;\n};\n\n/**\n * Forcefully resolve drag start predicate.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._forceResolveStartPredicate = function (event) {\n if (!this._isDestroyed && this._startPredicateState === START_PREDICATE_PENDING) {\n this._startPredicateState = START_PREDICATE_RESOLVED;\n this._onStart(event);\n }\n};\n\n/**\n * Finalize start predicate.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._finishStartPredicate = function (event) {\n var element = this._item._element;\n\n // Check if this is a click (very subjective heuristics).\n var isClick = Math.abs(event.deltaX) < 2 && Math.abs(event.deltaY) < 2 && event.deltaTime < 200;\n\n // Reset predicate.\n this._resetStartPredicate();\n\n // If the gesture can be interpreted as click let's try to open the element's\n // href url (if it is an anchor element).\n if (isClick) openAnchorHref(element);\n};\n\n/**\n * Reset drag sort heuristics.\n *\n * @private\n * @param {Number} x\n * @param {Number} y\n */\nItemDrag.prototype._resetHeuristics = function (x, y) {\n this._blockedSortIndex = null;\n this._sortX1 = this._sortX2 = x;\n this._sortY1 = this._sortY2 = y;\n};\n\n/**\n * Run heuristics and return true if overlap check can be performed, and false\n * if it can not.\n *\n * @private\n * @param {Number} x\n * @param {Number} y\n * @returns {Boolean}\n */\nItemDrag.prototype._checkHeuristics = function (x, y) {\n var settings = this._getGrid()._settings.dragSortHeuristics;\n var minDist = settings.minDragDistance;\n\n // Skip heuristics if not needed.\n if (minDist <= 0) {\n this._blockedSortIndex = null;\n return true;\n }\n\n var diffX = x - this._sortX2;\n var diffY = y - this._sortY2;\n\n // If we can't do proper bounce back check make sure that the blocked index\n // is not set.\n var canCheckBounceBack = minDist > 3 && settings.minBounceBackAngle > 0;\n if (!canCheckBounceBack) {\n this._blockedSortIndex = null;\n }\n\n if (Math.abs(diffX) > minDist || Math.abs(diffY) > minDist) {\n // Reset blocked index if angle changed enough. This check requires a\n // minimum value of 3 for minDragDistance to function properly.\n if (canCheckBounceBack) {\n var angle = Math.atan2(diffX, diffY);\n var prevAngle = Math.atan2(this._sortX2 - this._sortX1, this._sortY2 - this._sortY1);\n var deltaAngle = Math.atan2(Math.sin(angle - prevAngle), Math.cos(angle - prevAngle));\n if (Math.abs(deltaAngle) > settings.minBounceBackAngle) {\n this._blockedSortIndex = null;\n }\n }\n\n // Update points.\n this._sortX1 = this._sortX2;\n this._sortY1 = this._sortY2;\n this._sortX2 = x;\n this._sortY2 = y;\n\n return true;\n }\n\n return false;\n};\n\n/**\n * Reset for default drag start predicate function.\n *\n * @private\n */\nItemDrag.prototype._resetStartPredicate = function () {\n var predicate = this._startPredicateData;\n if (predicate) {\n if (predicate.delayTimer) {\n predicate.delayTimer = window.clearTimeout(predicate.delayTimer);\n }\n this._startPredicateData = null;\n }\n};\n\n/**\n * Handle the sorting procedure. Manage drag sort heuristics/interval and\n * check overlap when necessary.\n *\n * @private\n */\nItemDrag.prototype._handleSort = function () {\n if (!this._isActive) return;\n\n var settings = this._getGrid()._settings;\n\n // No sorting when drag sort is disabled. Also, account for the scenario where\n // dragSort is temporarily disabled during drag procedure so we need to reset\n // sort timer heuristics state too.\n if (\n !settings.dragSort ||\n (!settings.dragAutoScroll.sortDuringScroll && ItemDrag.autoScroller.isItemScrolling(this._item))\n ) {\n this._sortX1 = this._sortX2 = this._gridX;\n this._sortY1 = this._sortY2 = this._gridY;\n // We set this to true intentionally so that overlap check would be\n // triggered as soon as possible after sort becomes enabled again.\n this._isSortNeeded = true;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n return;\n }\n\n // If sorting is enabled we always need to run the heuristics check to keep\n // the tracked coordinates updated. We also allow an exception when the sort\n // timer is finished because the heuristics are intended to prevent overlap\n // checks based on the dragged element's immediate movement and a delayed\n // overlap check is valid if it comes through, because it was valid when it\n // was invoked.\n var shouldSort = this._checkHeuristics(this._gridX, this._gridY);\n if (!this._isSortNeeded && !shouldSort) return;\n\n var sortInterval = settings.dragSortHeuristics.sortInterval;\n if (sortInterval <= 0 || this._isSortNeeded) {\n this._isSortNeeded = false;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n this._checkOverlap();\n } else if (this._sortTimer === undefined) {\n this._sortTimer = window.setTimeout(this._handleSortDelayed, sortInterval);\n }\n};\n\n/**\n * Delayed sort handler.\n *\n * @private\n */\nItemDrag.prototype._handleSortDelayed = function () {\n this._isSortNeeded = true;\n this._sortTimer = undefined;\n addDragSortTick(this._item._id, this._handleSort);\n};\n\n/**\n * Cancel and reset sort procedure.\n *\n * @private\n */\nItemDrag.prototype._cancelSort = function () {\n this._isSortNeeded = false;\n if (this._sortTimer !== undefined) {\n this._sortTimer = window.clearTimeout(this._sortTimer);\n }\n cancelDragSortTick(this._item._id);\n};\n\n/**\n * Handle the ending of the drag procedure for sorting.\n *\n * @private\n */\nItemDrag.prototype._finishSort = function () {\n var isSortEnabled = this._getGrid()._settings.dragSort;\n var needsFinalCheck = isSortEnabled && (this._isSortNeeded || this._sortTimer !== undefined);\n this._cancelSort();\n if (needsFinalCheck) this._checkOverlap();\n};\n\n/**\n * Check (during drag) if an item is overlapping other items and based on\n * the configuration layout the items.\n *\n * @private\n */\nItemDrag.prototype._checkOverlap = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n var settings = this._getGrid()._settings;\n var result;\n var currentGrid;\n var currentIndex;\n var targetGrid;\n var targetIndex;\n var targetItem;\n var sortAction;\n var isMigration;\n\n // Get overlap check result.\n if (isFunction(settings.dragSortPredicate)) {\n result = settings.dragSortPredicate(item, this._dragMoveEvent);\n } else {\n result = ItemDrag.defaultSortPredicate(item, settings.dragSortPredicate);\n }\n\n // Let's make sure the result object has a valid index before going further.\n if (!result || typeof result.index !== 'number') return;\n\n sortAction = result.action === ACTION_SWAP ? ACTION_SWAP : ACTION_MOVE;\n currentGrid = item.getGrid();\n targetGrid = result.grid || currentGrid;\n isMigration = currentGrid !== targetGrid;\n currentIndex = currentGrid._items.indexOf(item);\n targetIndex = normalizeArrayIndex(\n targetGrid._items,\n result.index,\n isMigration && sortAction === ACTION_MOVE ? 1 : 0\n );\n\n // Prevent position bounce.\n if (!isMigration && targetIndex === this._blockedSortIndex) {\n return;\n }\n\n // If the item was moved within it's current grid.\n if (!isMigration) {\n // Make sure the target index is not the current index.\n if (currentIndex !== targetIndex) {\n this._blockedSortIndex = currentIndex;\n\n // Do the sort.\n (sortAction === ACTION_SWAP ? arraySwap : arrayMove)(\n currentGrid._items,\n currentIndex,\n targetIndex\n );\n\n // Emit move event.\n if (currentGrid._hasListeners(EVENT_MOVE)) {\n currentGrid._emit(EVENT_MOVE, {\n item: item,\n fromIndex: currentIndex,\n toIndex: targetIndex,\n action: sortAction,\n });\n }\n\n // Layout the grid.\n currentGrid.layout();\n }\n }\n\n // If the item was moved to another grid.\n else {\n this._blockedSortIndex = null;\n\n // Let's fetch the target item when it's still in it's original index.\n targetItem = targetGrid._items[targetIndex];\n\n // Emit beforeSend event.\n if (currentGrid._hasListeners(EVENT_BEFORE_SEND)) {\n currentGrid._emit(EVENT_BEFORE_SEND, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit beforeReceive event.\n if (targetGrid._hasListeners(EVENT_BEFORE_RECEIVE)) {\n targetGrid._emit(EVENT_BEFORE_RECEIVE, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Update item's grid id reference.\n item._gridId = targetGrid._id;\n\n // Update drag instance's migrating indicator.\n this._isMigrating = item._gridId !== this._gridId;\n\n // Move item instance from current grid to target grid.\n currentGrid._items.splice(currentIndex, 1);\n arrayInsert(targetGrid._items, item, targetIndex);\n\n // Reset sort data.\n item._sortData = null;\n\n // Emit send event.\n if (currentGrid._hasListeners(EVENT_SEND)) {\n currentGrid._emit(EVENT_SEND, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit receive event.\n if (targetGrid._hasListeners(EVENT_RECEIVE)) {\n targetGrid._emit(EVENT_RECEIVE, {\n item: item,\n fromGrid: currentGrid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // If the sort action is \"swap\" let's respect it and send the target item\n // (if it exists) from the target grid to the originating grid. This process\n // is done on purpose after the dragged item placed within the target grid\n // so that we can keep this implementation as simple as possible utilizing\n // the existing API.\n if (sortAction === ACTION_SWAP && targetItem && targetItem.isActive()) {\n // Sanity check to make sure that the target item is still part of the\n // target grid. It could have been manipulated in the event handlers.\n if (targetGrid._items.indexOf(targetItem) > -1) {\n targetGrid.send(targetItem, currentGrid, currentIndex, {\n appendTo: this._container || document.body,\n layoutSender: false,\n layoutReceiver: false,\n });\n }\n }\n\n // Layout both grids.\n currentGrid.layout();\n targetGrid.layout();\n }\n};\n\n/**\n * If item is dragged into another grid, finish the migration process\n * gracefully.\n *\n * @private\n */\nItemDrag.prototype._finishMigration = function () {\n var item = this._item;\n var release = item._dragRelease;\n var element = item._element;\n var isActive = item._isActive;\n var targetGrid = item.getGrid();\n var targetGridElement = targetGrid._element;\n var targetSettings = targetGrid._settings;\n var targetContainer = targetSettings.dragContainer || targetGridElement;\n var currentSettings = this._getGrid()._settings;\n var currentContainer = element.parentNode;\n var currentVisClass = isActive\n ? currentSettings.itemVisibleClass\n : currentSettings.itemHiddenClass;\n var nextVisClass = isActive ? targetSettings.itemVisibleClass : targetSettings.itemHiddenClass;\n var translate;\n var offsetDiff;\n\n // Destroy current drag. Note that we need to set the migrating flag to\n // false first, because otherwise we create an infinite loop between this\n // and the drag.stop() method.\n this._isMigrating = false;\n this.destroy();\n\n // Update item class.\n if (currentSettings.itemClass !== targetSettings.itemClass) {\n removeClass(element, currentSettings.itemClass);\n addClass(element, targetSettings.itemClass);\n }\n\n // Update visibility class.\n if (currentVisClass !== nextVisClass) {\n removeClass(element, currentVisClass);\n addClass(element, nextVisClass);\n }\n\n // Move the item inside the target container if it's different than the\n // current container.\n if (targetContainer !== currentContainer) {\n targetContainer.appendChild(element);\n offsetDiff = getOffsetDiff(currentContainer, targetContainer, true);\n translate = getTranslate(element);\n translate.x -= offsetDiff.left;\n translate.y -= offsetDiff.top;\n }\n\n // Update item's cached dimensions.\n item._refreshDimensions();\n\n // Calculate the offset difference between target's drag container (if any)\n // and actual grid container element. We save it later for the release\n // process.\n offsetDiff = getOffsetDiff(targetContainer, targetGridElement, true);\n release._containerDiffX = offsetDiff.left;\n release._containerDiffY = offsetDiff.top;\n\n // Recreate item's drag handler.\n item._drag = targetSettings.dragEnabled ? new ItemDrag(item) : null;\n\n // Adjust the position of the item element if it was moved from a container\n // to another.\n if (targetContainer !== currentContainer) {\n item._setTranslate(translate.x, translate.y);\n }\n\n // Update child element's styles to reflect the current visibility state.\n item._visibility.setStyles(isActive ? targetSettings.visibleStyles : targetSettings.hiddenStyles);\n\n // Start the release.\n release.start();\n};\n\n/**\n * Drag pre-start handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._preStartCheck = function (event) {\n // Let's activate drag start predicate state.\n if (this._startPredicateState === START_PREDICATE_INACTIVE) {\n this._startPredicateState = START_PREDICATE_PENDING;\n }\n\n // If predicate is pending try to resolve it.\n if (this._startPredicateState === START_PREDICATE_PENDING) {\n this._startPredicateResult = this._startPredicate(this._item, event);\n if (this._startPredicateResult === true) {\n this._startPredicateState = START_PREDICATE_RESOLVED;\n this._onStart(event);\n } else if (this._startPredicateResult === false) {\n this._resetStartPredicate(event);\n this._dragger._reset();\n this._startPredicateState = START_PREDICATE_INACTIVE;\n }\n }\n\n // Otherwise if predicate is resolved and drag is active, move the item.\n else if (this._startPredicateState === START_PREDICATE_RESOLVED && this._isActive) {\n this._onMove(event);\n }\n};\n\n/**\n * Drag pre-end handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._preEndCheck = function (event) {\n var isResolved = this._startPredicateState === START_PREDICATE_RESOLVED;\n\n // Do final predicate check to allow user to unbind stuff for the current\n // drag procedure within the predicate callback. The return value of this\n // check will have no effect to the state of the predicate.\n this._startPredicate(this._item, event);\n\n this._startPredicateState = START_PREDICATE_INACTIVE;\n\n if (!isResolved || !this._isActive) return;\n\n if (this._isStarted) {\n this._onEnd(event);\n } else {\n this.stop();\n }\n};\n\n/**\n * Drag start handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onStart = function (event) {\n var item = this._item;\n if (!item._isActive) return;\n\n this._isActive = true;\n this._dragStartEvent = event;\n ItemDrag.autoScroller.addItem(item);\n\n addDragStartTick(item._id, this._prepareStart, this._applyStart);\n};\n\n/**\n * Prepare item to be dragged.\n *\n * @private\n * ItemDrag.prototype\n */\nItemDrag.prototype._prepareStart = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var element = item._element;\n var grid = this._getGrid();\n var settings = grid._settings;\n var gridContainer = grid._element;\n var dragContainer = settings.dragContainer || gridContainer;\n var containingBlock = getContainingBlock(dragContainer);\n var translate = getTranslate(element);\n var elementRect = element.getBoundingClientRect();\n var hasDragContainer = dragContainer !== gridContainer;\n\n this._container = dragContainer;\n this._containingBlock = containingBlock;\n this._clientX = elementRect.left;\n this._clientY = elementRect.top;\n this._left = this._gridX = translate.x;\n this._top = this._gridY = translate.y;\n this._scrollDiffX = this._scrollDiffY = 0;\n this._moveDiffX = this._moveDiffY = 0;\n\n this._resetHeuristics(this._gridX, this._gridY);\n\n // If a specific drag container is set and it is different from the\n // grid's container element we store the offset between containers.\n if (hasDragContainer) {\n var offsetDiff = getOffsetDiff(containingBlock, gridContainer);\n this._containerDiffX = offsetDiff.left;\n this._containerDiffY = offsetDiff.top;\n }\n};\n\n/**\n * Start drag for the item.\n *\n * @private\n */\nItemDrag.prototype._applyStart = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var grid = this._getGrid();\n var element = item._element;\n var release = item._dragRelease;\n var migrate = item._migrate;\n var hasDragContainer = this._container !== grid._element;\n\n if (item.isPositioning()) {\n item._layout.stop(true, this._left, this._top);\n }\n\n if (migrate._isActive) {\n this._left -= migrate._containerDiffX;\n this._top -= migrate._containerDiffY;\n this._gridX -= migrate._containerDiffX;\n this._gridY -= migrate._containerDiffY;\n migrate.stop(true, this._left, this._top);\n }\n\n if (item.isReleasing()) {\n release._reset();\n }\n\n if (grid._settings.dragPlaceholder.enabled) {\n item._dragPlaceholder.create();\n }\n\n this._isStarted = true;\n\n grid._emit(EVENT_DRAG_INIT, item, this._dragStartEvent);\n\n if (hasDragContainer) {\n // If the dragged element is a child of the drag container all we need to\n // do is setup the relative drag position data.\n if (element.parentNode === this._container) {\n this._gridX -= this._containerDiffX;\n this._gridY -= this._containerDiffY;\n }\n // Otherwise we need to append the element inside the correct container,\n // setup the actual drag position data and adjust the element's translate\n // values to account for the DOM position shift.\n else {\n this._left += this._containerDiffX;\n this._top += this._containerDiffY;\n this._container.appendChild(element);\n item._setTranslate(this._left, this._top);\n }\n }\n\n addClass(element, grid._settings.itemDraggingClass);\n this._bindScrollListeners();\n grid._emit(EVENT_DRAG_START, item, this._dragStartEvent);\n};\n\n/**\n * Drag move handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onMove = function (event) {\n var item = this._item;\n\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n this._dragMoveEvent = event;\n addDragMoveTick(item._id, this._prepareMove, this._applyMove);\n addDragSortTick(item._id, this._handleSort);\n};\n\n/**\n * Prepare dragged item for moving.\n *\n * @private\n */\nItemDrag.prototype._prepareMove = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n var settings = this._getGrid()._settings;\n var axis = settings.dragAxis;\n var nextEvent = this._dragMoveEvent;\n var prevEvent = this._dragPrevMoveEvent || this._dragStartEvent || nextEvent;\n\n // Update horizontal position data.\n if (axis !== 'y') {\n var moveDiffX = nextEvent.clientX - prevEvent.clientX;\n this._left = this._left - this._moveDiffX + moveDiffX;\n this._gridX = this._gridX - this._moveDiffX + moveDiffX;\n this._clientX = this._clientX - this._moveDiffX + moveDiffX;\n this._moveDiffX = moveDiffX;\n }\n\n // Update vertical position data.\n if (axis !== 'x') {\n var moveDiffY = nextEvent.clientY - prevEvent.clientY;\n this._top = this._top - this._moveDiffY + moveDiffY;\n this._gridY = this._gridY - this._moveDiffY + moveDiffY;\n this._clientY = this._clientY - this._moveDiffY + moveDiffY;\n this._moveDiffY = moveDiffY;\n }\n\n this._dragPrevMoveEvent = nextEvent;\n};\n\n/**\n * Apply movement to dragged item.\n *\n * @private\n */\nItemDrag.prototype._applyMove = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n this._moveDiffX = this._moveDiffY = 0;\n item._setTranslate(this._left, this._top);\n this._getGrid()._emit(EVENT_DRAG_MOVE, item, this._dragMoveEvent);\n ItemDrag.autoScroller.updateItem(item);\n};\n\n/**\n * Drag scroll handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onScroll = function (event) {\n var item = this._item;\n\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n this._scrollEvent = event;\n addDragScrollTick(item._id, this._prepareScroll, this._applyScroll);\n addDragSortTick(item._id, this._handleSort);\n};\n\n/**\n * Prepare dragged item for scrolling.\n *\n * @private\n */\nItemDrag.prototype._prepareScroll = function () {\n if (!this._isActive) return;\n\n // If item is not active do nothing.\n var item = this._item;\n if (!item._isActive) return;\n\n var element = item._element;\n var grid = this._getGrid();\n var gridContainer = grid._element;\n var rect = element.getBoundingClientRect();\n\n // Update container diff.\n if (this._container !== gridContainer) {\n var offsetDiff = getOffsetDiff(this._containingBlock, gridContainer);\n this._containerDiffX = offsetDiff.left;\n this._containerDiffY = offsetDiff.top;\n }\n\n // Update horizontal position data.\n var scrollDiffX = this._clientX - this._moveDiffX - rect.left;\n this._left = this._left - this._scrollDiffX + scrollDiffX;\n this._scrollDiffX = scrollDiffX;\n\n // Update vertical position data.\n var scrollDiffY = this._clientY - this._moveDiffY - rect.top;\n this._top = this._top - this._scrollDiffY + scrollDiffY;\n this._scrollDiffY = scrollDiffY;\n\n // Update grid position.\n this._gridX = this._left - this._containerDiffX;\n this._gridY = this._top - this._containerDiffY;\n};\n\n/**\n * Apply scroll to dragged item.\n *\n * @private\n */\nItemDrag.prototype._applyScroll = function () {\n if (!this._isActive) return;\n\n var item = this._item;\n if (!item._isActive) return;\n\n this._scrollDiffX = this._scrollDiffY = 0;\n item._setTranslate(this._left, this._top);\n this._getGrid()._emit(EVENT_DRAG_SCROLL, item, this._scrollEvent);\n};\n\n/**\n * Drag end handler.\n *\n * @private\n * @param {Object} event\n */\nItemDrag.prototype._onEnd = function (event) {\n var item = this._item;\n var element = item._element;\n var grid = this._getGrid();\n var settings = grid._settings;\n var release = item._dragRelease;\n\n // If item is not active, reset drag.\n if (!item._isActive) {\n this.stop();\n return;\n }\n\n // Cancel queued ticks.\n cancelDragStartTick(item._id);\n cancelDragMoveTick(item._id);\n cancelDragScrollTick(item._id);\n\n // Finish sort procedure (does final overlap check if needed).\n this._finishSort();\n\n // Remove scroll listeners.\n this._unbindScrollListeners();\n\n // Setup release data.\n release._containerDiffX = this._containerDiffX;\n release._containerDiffY = this._containerDiffY;\n\n // Reset drag data.\n this._reset();\n\n // Remove drag class name from element.\n removeClass(element, settings.itemDraggingClass);\n\n // Stop auto-scroll.\n ItemDrag.autoScroller.removeItem(item);\n\n // Emit dragEnd event.\n grid._emit(EVENT_DRAG_END, item, event);\n\n // Finish up the migration process or start the release process.\n this._isMigrating ? this._finishMigration() : release.start();\n};\n\n/**\n * Private helpers\n * ***************\n */\n\n/**\n * Check if an element is an anchor element and open the href url if possible.\n *\n * @param {HTMLElement} element\n */\nfunction openAnchorHref(element) {\n // Make sure the element is anchor element.\n if (element.tagName.toLowerCase() !== 'a') return;\n\n // Get href and make sure it exists.\n var href = element.getAttribute('href');\n if (!href) return;\n\n // Finally let's navigate to the link href.\n var target = element.getAttribute('target');\n if (target && target !== '_self') {\n window.open(href, target);\n } else {\n window.location.href = href;\n }\n}\n\n/**\n * Get current values of the provided styles definition object or array.\n *\n * @param {HTMLElement} element\n * @param {(Object|Array} styles\n * @return {Object}\n */\nfunction getCurrentStyles(element, styles) {\n var result = {};\n var prop, i;\n\n if (Array.isArray(styles)) {\n for (i = 0; i < styles.length; i++) {\n prop = styles[i];\n result[prop] = getStyle(element, getStyleName(prop));\n }\n } else {\n for (prop in styles) {\n result[prop] = getStyle(element, getStyleName(prop));\n }\n }\n\n return result;\n}\n\nvar unprefixRegEx = /^(webkit|moz|ms|o|Webkit|Moz|MS|O)(?=[A-Z])/;\nvar cache = {};\n\n/**\n * Remove any potential vendor prefixes from a property name.\n *\n * @param {String} prop\n * @returns {String}\n */\nfunction getUnprefixedPropName(prop) {\n var result = cache[prop];\n if (result) return result;\n\n result = prop.replace(unprefixRegEx, '');\n\n if (result !== prop) {\n result = result[0].toLowerCase() + result.slice(1);\n }\n\n cache[prop] = result;\n\n return result;\n}\n\nvar nativeCode = '[native code]';\n\n/**\n * Check if a value (e.g. a method or constructor) is native code. Good for\n * detecting when a polyfill is used and when not.\n *\n * @param {*} feat\n * @returns {Boolean}\n */\nfunction isNative(feat) {\n var S = window.Symbol;\n return !!(\n feat &&\n isFunction(S) &&\n isFunction(S.toString) &&\n S(feat).toString().indexOf(nativeCode) > -1\n );\n}\n\n/**\n * Set inline styles to an element.\n *\n * @param {HTMLElement} element\n * @param {Object} styles\n */\nfunction setStyles(element, styles) {\n for (var prop in styles) {\n element.style[prop] = styles[prop];\n }\n}\n\nvar HAS_WEB_ANIMATIONS = !!(Element && isFunction(Element.prototype.animate));\nvar HAS_NATIVE_WEB_ANIMATIONS = !!(Element && isNative(Element.prototype.animate));\n\n/**\n * Item animation handler powered by Web Animations API.\n *\n * @class\n * @param {HTMLElement} element\n */\nfunction Animator(element) {\n this._element = element;\n this._animation = null;\n this._duration = 0;\n this._easing = '';\n this._callback = null;\n this._props = [];\n this._values = [];\n this._isDestroyed = false;\n this._onFinish = this._onFinish.bind(this);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start instance's animation. Automatically stops current animation if it is\n * running.\n *\n * @public\n * @param {Object} propsFrom\n * @param {Object} propsTo\n * @param {Object} [options]\n * @param {Number} [options.duration=300]\n * @param {String} [options.easing='ease']\n * @param {Function} [options.onFinish]\n */\nAnimator.prototype.start = function (propsFrom, propsTo, options) {\n if (this._isDestroyed) return;\n\n var element = this._element;\n var opts = options || {};\n\n // If we don't have web animations available let's not animate.\n if (!HAS_WEB_ANIMATIONS) {\n setStyles(element, propsTo);\n this._callback = isFunction(opts.onFinish) ? opts.onFinish : null;\n this._onFinish();\n return;\n }\n\n var animation = this._animation;\n var currentProps = this._props;\n var currentValues = this._values;\n var duration = opts.duration || 300;\n var easing = opts.easing || 'ease';\n var cancelAnimation = false;\n var propName, propCount, propIndex;\n\n // If we have an existing animation running, let's check if it needs to be\n // cancelled or if it can continue running.\n if (animation) {\n propCount = 0;\n\n // Cancel animation if duration or easing has changed.\n if (duration !== this._duration || easing !== this._easing) {\n cancelAnimation = true;\n }\n\n // Check if the requested animation target props and values match with the\n // current props and values.\n if (!cancelAnimation) {\n for (propName in propsTo) {\n ++propCount;\n propIndex = currentProps.indexOf(propName);\n if (propIndex === -1 || propsTo[propName] !== currentValues[propIndex]) {\n cancelAnimation = true;\n break;\n }\n }\n\n // Check if the target props count matches current props count. This is\n // needed for the edge case scenario where target props contain the same\n // styles as current props, but the current props have some additional\n // props.\n if (propCount !== currentProps.length) {\n cancelAnimation = true;\n }\n }\n }\n\n // Cancel animation (if required).\n if (cancelAnimation) animation.cancel();\n\n // Store animation callback.\n this._callback = isFunction(opts.onFinish) ? opts.onFinish : null;\n\n // If we have a running animation that does not need to be cancelled, let's\n // call it a day here and let it run.\n if (animation && !cancelAnimation) return;\n\n // Store target props and values to instance.\n currentProps.length = currentValues.length = 0;\n for (propName in propsTo) {\n currentProps.push(propName);\n currentValues.push(propsTo[propName]);\n }\n\n // Start the animation. We need to provide unprefixed property names to the\n // Web Animations polyfill if it is being used. If we have native Web\n // Animations available we need to provide prefixed properties instead.\n this._duration = duration;\n this._easing = easing;\n this._animation = element.animate(\n [\n createFrame(propsFrom, HAS_NATIVE_WEB_ANIMATIONS),\n createFrame(propsTo, HAS_NATIVE_WEB_ANIMATIONS),\n ],\n {\n duration: duration,\n easing: easing,\n }\n );\n this._animation.onfinish = this._onFinish;\n\n // Set the end styles. This makes sure that the element stays at the end\n // values after animation is finished.\n setStyles(element, propsTo);\n};\n\n/**\n * Stop instance's current animation if running.\n *\n * @public\n */\nAnimator.prototype.stop = function () {\n if (this._isDestroyed || !this._animation) return;\n this._animation.cancel();\n this._animation = this._callback = null;\n this._props.length = this._values.length = 0;\n};\n\n/**\n * Read the current values of the element's animated styles from the DOM.\n *\n * @public\n * @return {Object}\n */\nAnimator.prototype.getCurrentStyles = function () {\n return getCurrentStyles(element, currentProps);\n};\n\n/**\n * Check if the item is being animated currently.\n *\n * @public\n * @return {Boolean}\n */\nAnimator.prototype.isAnimating = function () {\n return !!this._animation;\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nAnimator.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop();\n this._element = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Animation end handler.\n *\n * @private\n */\nAnimator.prototype._onFinish = function () {\n var callback = this._callback;\n this._animation = this._callback = null;\n this._props.length = this._values.length = 0;\n callback && callback();\n};\n\n/**\n * Private helpers\n * ***************\n */\n\nfunction createFrame(props, prefix) {\n var frame = {};\n for (var prop in props) {\n frame[prefix ? prop : getUnprefixedPropName(prop)] = props[prop];\n }\n return frame;\n}\n\n/**\n * Transform translateX and translateY value into CSS transform style\n * property's value.\n *\n * @param {Number} x\n * @param {Number} y\n * @returns {String}\n */\nfunction getTranslateString(x, y) {\n return 'translateX(' + x + 'px) translateY(' + y + 'px)';\n}\n\n/**\n * Drag placeholder.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDragPlaceholder(item) {\n this._item = item;\n this._animation = new Animator();\n this._element = null;\n this._className = '';\n this._didMigrate = false;\n this._resetAfterLayout = false;\n this._left = 0;\n this._top = 0;\n this._transX = 0;\n this._transY = 0;\n this._nextTransX = 0;\n this._nextTransY = 0;\n\n // Bind animation handlers.\n this._setupAnimation = this._setupAnimation.bind(this);\n this._startAnimation = this._startAnimation.bind(this);\n this._updateDimensions = this._updateDimensions.bind(this);\n\n // Bind event handlers.\n this._onLayoutStart = this._onLayoutStart.bind(this);\n this._onLayoutEnd = this._onLayoutEnd.bind(this);\n this._onReleaseEnd = this._onReleaseEnd.bind(this);\n this._onMigrate = this._onMigrate.bind(this);\n this._onHide = this._onHide.bind(this);\n}\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Update placeholder's dimensions to match the item's dimensions.\n *\n * @private\n */\nItemDragPlaceholder.prototype._updateDimensions = function () {\n if (!this.isActive()) return;\n setStyles(this._element, {\n width: this._item._width + 'px',\n height: this._item._height + 'px',\n });\n};\n\n/**\n * Move placeholder to a new position.\n *\n * @private\n * @param {Item[]} items\n * @param {Boolean} isInstant\n */\nItemDragPlaceholder.prototype._onLayoutStart = function (items, isInstant) {\n var item = this._item;\n\n // If the item is not part of the layout anymore reset placeholder.\n if (items.indexOf(item) === -1) {\n this.reset();\n return;\n }\n\n var nextLeft = item._left;\n var nextTop = item._top;\n var currentLeft = this._left;\n var currentTop = this._top;\n\n // Keep track of item layout position.\n this._left = nextLeft;\n this._top = nextTop;\n\n // If item's position did not change, and the item did not migrate and the\n // layout is not instant and we can safely skip layout.\n if (!isInstant && !this._didMigrate && currentLeft === nextLeft && currentTop === nextTop) {\n return;\n }\n\n // Slots data is calculated with item margins added to them so we need to add\n // item's left and top margin to the slot data to get the placeholder's\n // next position.\n var nextX = nextLeft + item._marginLeft;\n var nextY = nextTop + item._marginTop;\n\n // Just snap to new position without any animations if no animation is\n // required or if placeholder moves between grids.\n var grid = item.getGrid();\n var animEnabled = !isInstant && grid._settings.layoutDuration > 0;\n if (!animEnabled || this._didMigrate) {\n // Cancel potential (queued) layout tick.\n cancelPlaceholderLayoutTick(item._id);\n\n // Snap placeholder to correct position.\n this._element.style[transformProp] = getTranslateString(nextX, nextY);\n this._animation.stop();\n\n // Move placeholder inside correct container after migration.\n if (this._didMigrate) {\n grid.getElement().appendChild(this._element);\n this._didMigrate = false;\n }\n\n return;\n }\n\n // Start the placeholder's layout animation in the next tick. We do this to\n // avoid layout thrashing.\n this._nextTransX = nextX;\n this._nextTransY = nextY;\n addPlaceholderLayoutTick(item._id, this._setupAnimation, this._startAnimation);\n};\n\n/**\n * Prepare placeholder for layout animation.\n *\n * @private\n */\nItemDragPlaceholder.prototype._setupAnimation = function () {\n if (!this.isActive()) return;\n\n var translate = getTranslate(this._element);\n this._transX = translate.x;\n this._transY = translate.y;\n};\n\n/**\n * Start layout animation.\n *\n * @private\n */\nItemDragPlaceholder.prototype._startAnimation = function () {\n if (!this.isActive()) return;\n\n var animation = this._animation;\n var currentX = this._transX;\n var currentY = this._transY;\n var nextX = this._nextTransX;\n var nextY = this._nextTransY;\n\n // If placeholder is already in correct position let's just stop animation\n // and be done with it.\n if (currentX === nextX && currentY === nextY) {\n if (animation.isAnimating()) {\n this._element.style[transformProp] = getTranslateString(nextX, nextY);\n animation.stop();\n }\n return;\n }\n\n // Otherwise let's start the animation.\n var settings = this._item.getGrid()._settings;\n var currentStyles = {};\n var targetStyles = {};\n currentStyles[transformProp] = getTranslateString(currentX, currentY);\n targetStyles[transformProp] = getTranslateString(nextX, nextY);\n animation.start(currentStyles, targetStyles, {\n duration: settings.layoutDuration,\n easing: settings.layoutEasing,\n onFinish: this._onLayoutEnd,\n });\n};\n\n/**\n * Layout end handler.\n *\n * @private\n */\nItemDragPlaceholder.prototype._onLayoutEnd = function () {\n if (this._resetAfterLayout) {\n this.reset();\n }\n};\n\n/**\n * Drag end handler. This handler is called when dragReleaseEnd event is\n * emitted and receives the event data as it's argument.\n *\n * @private\n * @param {Item} item\n */\nItemDragPlaceholder.prototype._onReleaseEnd = function (item) {\n if (item._id === this._item._id) {\n // If the placeholder is not animating anymore we can safely reset it.\n if (!this._animation.isAnimating()) {\n this.reset();\n return;\n }\n\n // If the placeholder item is still animating here, let's wait for it to\n // finish it's animation.\n this._resetAfterLayout = true;\n }\n};\n\n/**\n * Migration start handler. This handler is called when beforeSend event is\n * emitted and receives the event data as it's argument.\n *\n * @private\n * @param {Object} data\n * @param {Item} data.item\n * @param {Grid} data.fromGrid\n * @param {Number} data.fromIndex\n * @param {Grid} data.toGrid\n * @param {Number} data.toIndex\n */\nItemDragPlaceholder.prototype._onMigrate = function (data) {\n // Make sure we have a matching item.\n if (data.item !== this._item) return;\n\n var grid = this._item.getGrid();\n var nextGrid = data.toGrid;\n\n // Unbind listeners from current grid.\n grid.off(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.off(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.off(EVENT_BEFORE_SEND, this._onMigrate);\n grid.off(EVENT_HIDE_START, this._onHide);\n\n // Bind listeners to the next grid.\n nextGrid.on(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n nextGrid.on(EVENT_LAYOUT_START, this._onLayoutStart);\n nextGrid.on(EVENT_BEFORE_SEND, this._onMigrate);\n nextGrid.on(EVENT_HIDE_START, this._onHide);\n\n // Mark the item as migrated.\n this._didMigrate = true;\n};\n\n/**\n * Reset placeholder if the associated item is hidden.\n *\n * @private\n * @param {Item[]} items\n */\nItemDragPlaceholder.prototype._onHide = function (items) {\n if (items.indexOf(this._item) > -1) this.reset();\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Create placeholder. Note that this method only writes to DOM and does not\n * read anything from DOM so it should not cause any additional layout\n * thrashing when it's called at the end of the drag start procedure.\n *\n * @public\n */\nItemDragPlaceholder.prototype.create = function () {\n // If we already have placeholder set up we can skip the initiation logic.\n if (this.isActive()) {\n this._resetAfterLayout = false;\n return;\n }\n\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n var animation = this._animation;\n\n // Keep track of layout position.\n this._left = item._left;\n this._top = item._top;\n\n // Create placeholder element.\n var element;\n if (isFunction(settings.dragPlaceholder.createElement)) {\n element = settings.dragPlaceholder.createElement(item);\n } else {\n element = document.createElement('div');\n }\n this._element = element;\n\n // Update element to animation instance.\n animation._element = element;\n\n // Add placeholder class to the placeholder element.\n this._className = settings.itemPlaceholderClass || '';\n if (this._className) {\n addClass(element, this._className);\n }\n\n // Set initial styles.\n setStyles(element, {\n position: 'absolute',\n left: '0px',\n top: '0px',\n width: item._width + 'px',\n height: item._height + 'px',\n });\n\n // Set initial position.\n element.style[transformProp] = getTranslateString(\n item._left + item._marginLeft,\n item._top + item._marginTop\n );\n\n // Bind event listeners.\n grid.on(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.on(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.on(EVENT_BEFORE_SEND, this._onMigrate);\n grid.on(EVENT_HIDE_START, this._onHide);\n\n // onCreate hook.\n if (isFunction(settings.dragPlaceholder.onCreate)) {\n settings.dragPlaceholder.onCreate(item, element);\n }\n\n // Insert the placeholder element to the grid.\n grid.getElement().appendChild(element);\n};\n\n/**\n * Reset placeholder data.\n *\n * @public\n */\nItemDragPlaceholder.prototype.reset = function () {\n if (!this.isActive()) return;\n\n var element = this._element;\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n var animation = this._animation;\n\n // Reset flag.\n this._resetAfterLayout = false;\n\n // Cancel potential (queued) layout tick.\n cancelPlaceholderLayoutTick(item._id);\n cancelPlaceholderResizeTick(item._id);\n\n // Reset animation instance.\n animation.stop();\n animation._element = null;\n\n // Unbind event listeners.\n grid.off(EVENT_DRAG_RELEASE_END, this._onReleaseEnd);\n grid.off(EVENT_LAYOUT_START, this._onLayoutStart);\n grid.off(EVENT_BEFORE_SEND, this._onMigrate);\n grid.off(EVENT_HIDE_START, this._onHide);\n\n // Remove placeholder class from the placeholder element.\n if (this._className) {\n removeClass(element, this._className);\n this._className = '';\n }\n\n // Remove element.\n element.parentNode.removeChild(element);\n this._element = null;\n\n // onRemove hook. Note that here we use the current grid's onRemove callback\n // so if the item has migrated during drag the onRemove method will not be\n // the originating grid's method.\n if (isFunction(settings.dragPlaceholder.onRemove)) {\n settings.dragPlaceholder.onRemove(item, element);\n }\n};\n\n/**\n * Check if placeholder is currently active (visible).\n *\n * @public\n * @returns {Boolean}\n */\nItemDragPlaceholder.prototype.isActive = function () {\n return !!this._element;\n};\n\n/**\n * Get placeholder element.\n *\n * @public\n * @returns {?HTMLElement}\n */\nItemDragPlaceholder.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Update placeholder's dimensions to match the item's dimensions. Note that\n * the updating is done asynchronously in the next tick to avoid layout\n * thrashing.\n *\n * @public\n */\nItemDragPlaceholder.prototype.updateDimensions = function () {\n if (!this.isActive()) return;\n addPlaceholderResizeTick(this._item._id, this._updateDimensions);\n};\n\n/**\n * Destroy placeholder instance.\n *\n * @public\n */\nItemDragPlaceholder.prototype.destroy = function () {\n this.reset();\n this._animation.destroy();\n this._item = this._animation = null;\n};\n\n/**\n * The release process handler constructor. Although this might seem as proper\n * fit for the drag process this needs to be separated into it's own logic\n * because there might be a scenario where drag is disabled, but the release\n * process still needs to be implemented (dragging from a grid to another).\n *\n * @class\n * @param {Item} item\n */\nfunction ItemDragRelease(item) {\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._isPositioningStarted = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start the release process of an item.\n *\n * @public\n */\nItemDragRelease.prototype.start = function () {\n if (this._isDestroyed || this._isActive) return;\n\n var item = this._item;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this._isActive = true;\n addClass(item._element, settings.itemReleasingClass);\n if (!settings.dragRelease.useDragContainer) {\n this._placeToGrid();\n }\n grid._emit(EVENT_DRAG_RELEASE_START, item);\n\n // Let's start layout manually _only_ if there is no unfinished layout in\n // about to finish.\n if (!grid._nextLayoutData) item._layout.start(false);\n};\n\n/**\n * End the release process of an item. This method can be used to abort an\n * ongoing release process (animation) or finish the release process.\n *\n * @public\n * @param {Boolean} [abort=false]\n * - Should the release be aborted? When true, the release end event won't be\n * emitted. Set to true only when you need to abort the release process\n * while the item is animating to it's position.\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n */\nItemDragRelease.prototype.stop = function (abort, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n var grid = item.getGrid();\n\n if (!abort && (left === undefined || top === undefined)) {\n left = item._left;\n top = item._top;\n }\n\n var didReparent = this._placeToGrid(left, top);\n this._reset(didReparent);\n\n if (!abort) grid._emit(EVENT_DRAG_RELEASE_END, item);\n};\n\nItemDragRelease.prototype.isJustReleased = function () {\n return this._isActive && this._isPositioningStarted === false;\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemDragRelease.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop(true);\n this._item = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Move the element back to the grid container element if it does not exist\n * there already.\n *\n * @private\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n * @returns {Boolean}\n * - Returns `true` if the element was reparented.\n */\nItemDragRelease.prototype._placeToGrid = function (left, top) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var container = item.getGrid()._element;\n var didReparent = false;\n\n if (element.parentNode !== container) {\n if (left === undefined || top === undefined) {\n var translate = getTranslate(element);\n left = translate.x - this._containerDiffX;\n top = translate.y - this._containerDiffY;\n }\n\n container.appendChild(element);\n item._setTranslate(left, top);\n didReparent = true;\n }\n\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n\n return didReparent;\n};\n\n/**\n * Reset data and remove releasing class.\n *\n * @private\n * @param {Boolean} [needsReflow]\n */\nItemDragRelease.prototype._reset = function (needsReflow) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var releasingClass = item.getGrid()._settings.itemReleasingClass;\n\n this._isActive = false;\n this._isPositioningStarted = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n\n // If the element was just reparented we need to do a forced reflow to remove\n // the class gracefully.\n if (releasingClass) {\n // eslint-disable-next-line\n if (needsReflow) item._element.clientWidth;\n removeClass(item._element, releasingClass);\n }\n};\n\nvar MIN_ANIMATION_DISTANCE = 2;\n\n/**\n * Layout manager for Item instance, handles the positioning of an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemLayout(item) {\n var element = item._element;\n var elementStyle = element.style;\n\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._isInterrupted = false;\n this._currentStyles = {};\n this._targetStyles = {};\n this._nextLeft = 0;\n this._nextTop = 0;\n this._offsetLeft = 0;\n this._offsetTop = 0;\n this._skipNextAnimation = false;\n this._animOptions = {\n onFinish: this._finish.bind(this),\n duration: 0,\n easing: 0,\n };\n\n // Set element's initial position styles.\n elementStyle.left = '0px';\n elementStyle.top = '0px';\n item._setTranslate(0, 0);\n\n this._animation = new Animator(element);\n this._queue = 'layout-' + item._id;\n\n // Bind animation handlers and finish method.\n this._setupAnimation = this._setupAnimation.bind(this);\n this._startAnimation = this._startAnimation.bind(this);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start item layout based on it's current data.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemLayout.prototype.start = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var release = item._dragRelease;\n var gridSettings = item.getGrid()._settings;\n var isPositioning = this._isActive;\n var isJustReleased = release.isJustReleased();\n var animDuration = isJustReleased\n ? gridSettings.dragRelease.duration\n : gridSettings.layoutDuration;\n var animEasing = isJustReleased ? gridSettings.dragRelease.easing : gridSettings.layoutEasing;\n var animEnabled = !instant && !this._skipNextAnimation && animDuration > 0;\n\n // If the item is currently positioning cancel potential queued layout tick\n // and process current layout callback queue with interrupted flag on.\n if (isPositioning) {\n cancelLayoutTick(item._id);\n item._emitter.burst(this._queue, true, item);\n }\n\n // Mark release positioning as started.\n if (isJustReleased) release._isPositioningStarted = true;\n\n // Push the callback to the callback queue.\n if (isFunction(onFinish)) {\n item._emitter.on(this._queue, onFinish);\n }\n\n // Reset animation skipping flag.\n this._skipNextAnimation = false;\n\n // If no animations are needed, easy peasy!\n if (!animEnabled) {\n this._updateOffsets();\n item._setTranslate(this._nextLeft, this._nextTop);\n this._animation.stop();\n this._finish();\n return;\n }\n\n // Let's make sure an ongoing animation's callback is cancelled before going\n // further. Without this there's a chance that the animation will finish\n // before the next tick and mess up our logic.\n if (this._animation.isAnimating()) {\n this._animation._animation.onfinish = null;\n }\n\n // Kick off animation to be started in the next tick.\n this._isActive = true;\n this._animOptions.easing = animEasing;\n this._animOptions.duration = animDuration;\n this._isInterrupted = isPositioning;\n addLayoutTick(item._id, this._setupAnimation, this._startAnimation);\n};\n\n/**\n * Stop item's position animation if it is currently animating.\n *\n * @public\n * @param {Boolean} processCallbackQueue\n * @param {Number} [left]\n * @param {Number} [top]\n */\nItemLayout.prototype.stop = function (processCallbackQueue, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n\n // Cancel animation init.\n cancelLayoutTick(item._id);\n\n // Stop animation.\n if (this._animation.isAnimating()) {\n if (left === undefined || top === undefined) {\n var translate = getTranslate(item._element);\n left = translate.x;\n top = translate.y;\n }\n item._setTranslate(left, top);\n this._animation.stop();\n }\n\n // Remove positioning class.\n removeClass(item._element, item.getGrid()._settings.itemPositioningClass);\n\n // Reset active state.\n this._isActive = false;\n\n // Process callback queue if needed.\n if (processCallbackQueue) {\n item._emitter.burst(this._queue, true, item);\n }\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nItemLayout.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var elementStyle = this._item._element.style;\n\n this.stop(true, 0, 0);\n this._item._emitter.clear(this._queue);\n this._animation.destroy();\n\n elementStyle[transformProp] = '';\n elementStyle.left = '';\n elementStyle.top = '';\n\n this._item = null;\n this._currentStyles = null;\n this._targetStyles = null;\n this._animOptions = null;\n this._isDestroyed = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Calculate and update item's current layout offset data.\n *\n * @private\n */\nItemLayout.prototype._updateOffsets = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var migrate = item._migrate;\n var release = item._dragRelease;\n\n this._offsetLeft = release._isActive\n ? release._containerDiffX\n : migrate._isActive\n ? migrate._containerDiffX\n : 0;\n\n this._offsetTop = release._isActive\n ? release._containerDiffY\n : migrate._isActive\n ? migrate._containerDiffY\n : 0;\n\n this._nextLeft = this._item._left + this._offsetLeft;\n this._nextTop = this._item._top + this._offsetTop;\n};\n\n/**\n * Finish item layout procedure.\n *\n * @private\n */\nItemLayout.prototype._finish = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var migrate = item._migrate;\n var release = item._dragRelease;\n\n // Update internal translate values.\n item._tX = this._nextLeft;\n item._tY = this._nextTop;\n\n // Mark the item as inactive and remove positioning classes.\n if (this._isActive) {\n this._isActive = false;\n removeClass(item._element, item.getGrid()._settings.itemPositioningClass);\n }\n\n // Finish up release and migration.\n if (release._isActive) release.stop();\n if (migrate._isActive) migrate.stop();\n\n // Process the callback queue.\n item._emitter.burst(this._queue, false, item);\n};\n\n/**\n * Prepare item for layout animation.\n *\n * @private\n */\nItemLayout.prototype._setupAnimation = function () {\n var item = this._item;\n if (item._tX === undefined || item._tY === undefined) {\n var translate = getTranslate(item._element);\n item._tX = translate.x;\n item._tY = translate.y;\n }\n};\n\n/**\n * Start layout animation.\n *\n * @private\n */\nItemLayout.prototype._startAnimation = function () {\n var item = this._item;\n var settings = item.getGrid()._settings;\n var isInstant = this._animOptions.duration <= 0;\n\n // Let's update the offset data and target styles.\n this._updateOffsets();\n\n var xDiff = Math.abs(item._left - (item._tX - this._offsetLeft));\n var yDiff = Math.abs(item._top - (item._tY - this._offsetTop));\n\n // If there is no need for animation or if the item is already in correct\n // position (or near it) let's finish the process early.\n if (isInstant || (xDiff < MIN_ANIMATION_DISTANCE && yDiff < MIN_ANIMATION_DISTANCE)) {\n if (xDiff || yDiff || this._isInterrupted) {\n item._setTranslate(this._nextLeft, this._nextTop);\n }\n this._animation.stop();\n this._finish();\n return;\n }\n\n // Set item's positioning class if needed.\n if (!this._isInterrupted) {\n addClass(item._element, settings.itemPositioningClass);\n }\n\n // Get current/next styles for animation.\n this._currentStyles[transformProp] = getTranslateString(item._tX, item._tY);\n this._targetStyles[transformProp] = getTranslateString(this._nextLeft, this._nextTop);\n\n // Set internal translation values to undefined for the duration of the\n // animation since they will be changing on each animation frame for the\n // duration of the animation and tracking them would mean reading the DOM on\n // each frame, which is pretty darn expensive.\n item._tX = item._tY = undefined;\n\n // Start animation.\n this._animation.start(this._currentStyles, this._targetStyles, this._animOptions);\n};\n\n/**\n * The migrate process handler constructor.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemMigrate(item) {\n // Private props.\n this._item = item;\n this._isActive = false;\n this._isDestroyed = false;\n this._container = false;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Start the migrate process of an item.\n *\n * @public\n * @param {Grid} targetGrid\n * @param {(HTMLElement|Number|Item)} position\n * @param {HTMLElement} [container]\n */\nItemMigrate.prototype.start = function (targetGrid, position, container) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var isActive = item.isActive();\n var isVisible = item.isVisible();\n var grid = item.getGrid();\n var settings = grid._settings;\n var targetSettings = targetGrid._settings;\n var targetElement = targetGrid._element;\n var targetItems = targetGrid._items;\n var currentIndex = grid._items.indexOf(item);\n var targetContainer = container || document.body;\n var targetIndex;\n var targetItem;\n var currentContainer;\n var offsetDiff;\n var containerDiff;\n var translate;\n var translateX;\n var translateY;\n var currentVisClass;\n var nextVisClass;\n\n // Get target index.\n if (typeof position === 'number') {\n targetIndex = normalizeArrayIndex(targetItems, position, 1);\n } else {\n targetItem = targetGrid.getItem(position);\n if (!targetItem) return;\n targetIndex = targetItems.indexOf(targetItem);\n }\n\n // Get current translateX and translateY values if needed.\n if (item.isPositioning() || this._isActive || item.isReleasing()) {\n translate = getTranslate(element);\n translateX = translate.x;\n translateY = translate.y;\n }\n\n // Abort current positioning.\n if (item.isPositioning()) {\n item._layout.stop(true, translateX, translateY);\n }\n\n // Abort current migration.\n if (this._isActive) {\n translateX -= this._containerDiffX;\n translateY -= this._containerDiffY;\n this.stop(true, translateX, translateY);\n }\n\n // Abort current release.\n if (item.isReleasing()) {\n translateX -= item._dragRelease._containerDiffX;\n translateY -= item._dragRelease._containerDiffY;\n item._dragRelease.stop(true, translateX, translateY);\n }\n\n // Stop current visibility animation.\n item._visibility.stop(true);\n\n // Destroy current drag.\n if (item._drag) item._drag.destroy();\n\n // Emit beforeSend event.\n if (grid._hasListeners(EVENT_BEFORE_SEND)) {\n grid._emit(EVENT_BEFORE_SEND, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit beforeReceive event.\n if (targetGrid._hasListeners(EVENT_BEFORE_RECEIVE)) {\n targetGrid._emit(EVENT_BEFORE_RECEIVE, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Update item class.\n if (settings.itemClass !== targetSettings.itemClass) {\n removeClass(element, settings.itemClass);\n addClass(element, targetSettings.itemClass);\n }\n\n // Update visibility class.\n currentVisClass = isVisible ? settings.itemVisibleClass : settings.itemHiddenClass;\n nextVisClass = isVisible ? targetSettings.itemVisibleClass : targetSettings.itemHiddenClass;\n if (currentVisClass !== nextVisClass) {\n removeClass(element, currentVisClass);\n addClass(element, nextVisClass);\n }\n\n // Move item instance from current grid to target grid.\n grid._items.splice(currentIndex, 1);\n arrayInsert(targetItems, item, targetIndex);\n\n // Update item's grid id reference.\n item._gridId = targetGrid._id;\n\n // If item is active we need to move the item inside the target container for\n // the duration of the (potential) animation if it's different than the\n // current container.\n if (isActive) {\n currentContainer = element.parentNode;\n if (targetContainer !== currentContainer) {\n targetContainer.appendChild(element);\n offsetDiff = getOffsetDiff(targetContainer, currentContainer, true);\n if (!translate) {\n translate = getTranslate(element);\n translateX = translate.x;\n translateY = translate.y;\n }\n item._setTranslate(translateX + offsetDiff.left, translateY + offsetDiff.top);\n }\n }\n // If item is not active let's just append it to the target grid's element.\n else {\n targetElement.appendChild(element);\n }\n\n // Update child element's styles to reflect the current visibility state.\n item._visibility.setStyles(\n isVisible ? targetSettings.visibleStyles : targetSettings.hiddenStyles\n );\n\n // Get offset diff for the migration data, if the item is active.\n if (isActive) {\n containerDiff = getOffsetDiff(targetContainer, targetElement, true);\n }\n\n // Update item's cached dimensions.\n item._refreshDimensions();\n\n // Reset item's sort data.\n item._sortData = null;\n\n // Create new drag handler.\n item._drag = targetSettings.dragEnabled ? new ItemDrag(item) : null;\n\n // Setup migration data.\n if (isActive) {\n this._isActive = true;\n this._container = targetContainer;\n this._containerDiffX = containerDiff.left;\n this._containerDiffY = containerDiff.top;\n } else {\n this._isActive = false;\n this._container = null;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n }\n\n // Emit send event.\n if (grid._hasListeners(EVENT_SEND)) {\n grid._emit(EVENT_SEND, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n\n // Emit receive event.\n if (targetGrid._hasListeners(EVENT_RECEIVE)) {\n targetGrid._emit(EVENT_RECEIVE, {\n item: item,\n fromGrid: grid,\n fromIndex: currentIndex,\n toGrid: targetGrid,\n toIndex: targetIndex,\n });\n }\n};\n\n/**\n * End the migrate process of an item. This method can be used to abort an\n * ongoing migrate process (animation) or finish the migrate process.\n *\n * @public\n * @param {Boolean} [abort=false]\n * - Should the migration be aborted?\n * @param {Number} [left]\n * - The element's current translateX value (optional).\n * @param {Number} [top]\n * - The element's current translateY value (optional).\n */\nItemMigrate.prototype.stop = function (abort, left, top) {\n if (this._isDestroyed || !this._isActive) return;\n\n var item = this._item;\n var element = item._element;\n var grid = item.getGrid();\n var gridElement = grid._element;\n var translate;\n\n if (this._container !== gridElement) {\n if (left === undefined || top === undefined) {\n if (abort) {\n translate = getTranslate(element);\n left = translate.x - this._containerDiffX;\n top = translate.y - this._containerDiffY;\n } else {\n left = item._left;\n top = item._top;\n }\n }\n\n gridElement.appendChild(element);\n item._setTranslate(left, top);\n }\n\n this._isActive = false;\n this._container = null;\n this._containerDiffX = 0;\n this._containerDiffY = 0;\n};\n\n/**\n * Destroy instance.\n *\n * @public\n */\nItemMigrate.prototype.destroy = function () {\n if (this._isDestroyed) return;\n this.stop(true);\n this._item = null;\n this._isDestroyed = true;\n};\n\n/**\n * Visibility manager for Item instance, handles visibility of an item.\n *\n * @class\n * @param {Item} item\n */\nfunction ItemVisibility(item) {\n var isActive = item._isActive;\n var element = item._element;\n var childElement = element.children[0];\n var settings = item.getGrid()._settings;\n\n if (!childElement) {\n throw new Error('No valid child element found within item element.');\n }\n\n this._item = item;\n this._isDestroyed = false;\n this._isHidden = !isActive;\n this._isHiding = false;\n this._isShowing = false;\n this._childElement = childElement;\n this._currentStyleProps = [];\n this._animation = new Animator(childElement);\n this._queue = 'visibility-' + item._id;\n this._finishShow = this._finishShow.bind(this);\n this._finishHide = this._finishHide.bind(this);\n\n element.style.display = isActive ? '' : 'none';\n addClass(element, isActive ? settings.itemVisibleClass : settings.itemHiddenClass);\n this.setStyles(isActive ? settings.visibleStyles : settings.hiddenStyles);\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Show item.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype.show = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var callback = isFunction(onFinish) ? onFinish : null;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n // If item is visible call the callback and be done with it.\n if (!this._isShowing && !this._isHidden) {\n callback && callback(false, item);\n return;\n }\n\n // If item is showing and does not need to be shown instantly, let's just\n // push callback to the callback queue and be done with it.\n if (this._isShowing && !instant) {\n callback && item._emitter.on(this._queue, callback);\n return;\n }\n\n // If the item is hiding or hidden process the current visibility callback\n // queue with the interrupted flag active, update classes and set display\n // to block if necessary.\n if (!this._isShowing) {\n item._emitter.burst(this._queue, true, item);\n removeClass(element, settings.itemHiddenClass);\n addClass(element, settings.itemVisibleClass);\n if (!this._isHiding) element.style.display = '';\n }\n\n // Push callback to the callback queue.\n callback && item._emitter.on(this._queue, callback);\n\n // Update visibility states.\n this._isShowing = true;\n this._isHiding = this._isHidden = false;\n\n // Finally let's start show animation.\n this._startAnimation(true, instant, this._finishShow);\n};\n\n/**\n * Hide item.\n *\n * @public\n * @param {Boolean} instant\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype.hide = function (instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var callback = isFunction(onFinish) ? onFinish : null;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n // If item is already hidden call the callback and be done with it.\n if (!this._isHiding && this._isHidden) {\n callback && callback(false, item);\n return;\n }\n\n // If item is hiding and does not need to be hidden instantly, let's just\n // push callback to the callback queue and be done with it.\n if (this._isHiding && !instant) {\n callback && item._emitter.on(this._queue, callback);\n return;\n }\n\n // If the item is showing or visible process the current visibility callback\n // queue with the interrupted flag active, update classes and set display\n // to block if necessary.\n if (!this._isHiding) {\n item._emitter.burst(this._queue, true, item);\n addClass(element, settings.itemHiddenClass);\n removeClass(element, settings.itemVisibleClass);\n }\n\n // Push callback to the callback queue.\n callback && item._emitter.on(this._queue, callback);\n\n // Update visibility states.\n this._isHidden = this._isHiding = true;\n this._isShowing = false;\n\n // Finally let's start hide animation.\n this._startAnimation(false, instant, this._finishHide);\n};\n\n/**\n * Stop current hiding/showing process.\n *\n * @public\n * @param {Boolean} processCallbackQueue\n */\nItemVisibility.prototype.stop = function (processCallbackQueue) {\n if (this._isDestroyed) return;\n if (!this._isHiding && !this._isShowing) return;\n\n var item = this._item;\n\n cancelVisibilityTick(item._id);\n this._animation.stop();\n if (processCallbackQueue) {\n item._emitter.burst(this._queue, true, item);\n }\n};\n\n/**\n * Reset all existing visibility styles and apply new visibility styles to the\n * visibility element. This method should be used to set styles when there is a\n * chance that the current style properties differ from the new ones (basically\n * on init and on migrations).\n *\n * @public\n * @param {Object} styles\n */\nItemVisibility.prototype.setStyles = function (styles) {\n var childElement = this._childElement;\n var currentStyleProps = this._currentStyleProps;\n this._removeCurrentStyles();\n for (var prop in styles) {\n currentStyleProps.push(prop);\n childElement.style[prop] = styles[prop];\n }\n};\n\n/**\n * Destroy the instance and stop current animation if it is running.\n *\n * @public\n */\nItemVisibility.prototype.destroy = function () {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var element = item._element;\n var grid = item.getGrid();\n var settings = grid._settings;\n\n this.stop(true);\n item._emitter.clear(this._queue);\n this._animation.destroy();\n this._removeCurrentStyles();\n removeClass(element, settings.itemVisibleClass);\n removeClass(element, settings.itemHiddenClass);\n element.style.display = '';\n\n // Reset state.\n this._isHiding = this._isShowing = false;\n this._isDestroyed = this._isHidden = true;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Start visibility animation.\n *\n * @private\n * @param {Boolean} toVisible\n * @param {Boolean} [instant]\n * @param {Function} [onFinish]\n */\nItemVisibility.prototype._startAnimation = function (toVisible, instant, onFinish) {\n if (this._isDestroyed) return;\n\n var item = this._item;\n var animation = this._animation;\n var childElement = this._childElement;\n var settings = item.getGrid()._settings;\n var targetStyles = toVisible ? settings.visibleStyles : settings.hiddenStyles;\n var duration = toVisible ? settings.showDuration : settings.hideDuration;\n var easing = toVisible ? settings.showEasing : settings.hideEasing;\n var isInstant = instant || duration <= 0;\n var currentStyles;\n\n // No target styles? Let's quit early.\n if (!targetStyles) {\n onFinish && onFinish();\n return;\n }\n\n // Cancel queued visibility tick.\n cancelVisibilityTick(item._id);\n\n // If we need to apply the styles instantly without animation.\n if (isInstant) {\n setStyles(childElement, targetStyles);\n animation.stop();\n onFinish && onFinish();\n return;\n }\n\n // Let's make sure an ongoing animation's callback is cancelled before going\n // further. Without this there's a chance that the animation will finish\n // before the next tick and mess up our logic.\n if (animation.isAnimating()) {\n animation._animation.onfinish = null;\n }\n\n // Start the animation in the next tick (to avoid layout thrashing).\n addVisibilityTick(\n item._id,\n function () {\n currentStyles = getCurrentStyles(childElement, targetStyles);\n },\n function () {\n animation.start(currentStyles, targetStyles, {\n duration: duration,\n easing: easing,\n onFinish: onFinish,\n });\n }\n );\n};\n\n/**\n * Finish show procedure.\n *\n * @private\n */\nItemVisibility.prototype._finishShow = function () {\n if (this._isHidden) return;\n this._isShowing = false;\n this._item._emitter.burst(this._queue, false, this._item);\n};\n\n/**\n * Finish hide procedure.\n *\n * @private\n */\nItemVisibility.prototype._finishHide = function () {\n if (!this._isHidden) return;\n var item = this._item;\n this._isHiding = false;\n item._layout.stop(true, 0, 0);\n item._element.style.display = 'none';\n item._emitter.burst(this._queue, false, item);\n};\n\n/**\n * Remove currently applied visibility related inline style properties.\n *\n * @private\n */\nItemVisibility.prototype._removeCurrentStyles = function () {\n var childElement = this._childElement;\n var currentStyleProps = this._currentStyleProps;\n\n for (var i = 0; i < currentStyleProps.length; i++) {\n childElement.style[currentStyleProps[i]] = '';\n }\n\n currentStyleProps.length = 0;\n};\n\nvar id = 0;\n\n/**\n * Returns a unique numeric id (increments a base value on every call).\n * @returns {Number}\n */\nfunction createUid() {\n return ++id;\n}\n\n/**\n * Creates a new Item instance for a Grid instance.\n *\n * @class\n * @param {Grid} grid\n * @param {HTMLElement} element\n * @param {Boolean} [isActive]\n */\nfunction Item(grid, element, isActive) {\n var settings = grid._settings;\n\n // Store item/element pair to a map (for faster item querying by element).\n if (ITEM_ELEMENT_MAP) {\n if (ITEM_ELEMENT_MAP.has(element)) {\n throw new Error('You can only create one Muuri Item per element!');\n } else {\n ITEM_ELEMENT_MAP.set(element, this);\n }\n }\n\n this._id = createUid();\n this._gridId = grid._id;\n this._element = element;\n this._isDestroyed = false;\n this._left = 0;\n this._top = 0;\n this._width = 0;\n this._height = 0;\n this._marginLeft = 0;\n this._marginRight = 0;\n this._marginTop = 0;\n this._marginBottom = 0;\n this._tX = undefined;\n this._tY = undefined;\n this._sortData = null;\n this._emitter = new Emitter();\n\n // If the provided item element is not a direct child of the grid container\n // element, append it to the grid container. Note, we are indeed reading the\n // DOM here but it's a property that does not cause reflowing.\n if (element.parentNode !== grid._element) {\n grid._element.appendChild(element);\n }\n\n // Set item class.\n addClass(element, settings.itemClass);\n\n // If isActive is not defined, let's try to auto-detect it. Note, we are\n // indeed reading the DOM here but it's a property that does not cause\n // reflowing.\n if (typeof isActive !== 'boolean') {\n isActive = getStyle(element, 'display') !== 'none';\n }\n\n // Set up active state (defines if the item is considered part of the layout\n // or not).\n this._isActive = isActive;\n\n // Setup visibility handler.\n this._visibility = new ItemVisibility(this);\n\n // Set up layout handler.\n this._layout = new ItemLayout(this);\n\n // Set up migration handler data.\n this._migrate = new ItemMigrate(this);\n\n // Set up drag handler.\n this._drag = settings.dragEnabled ? new ItemDrag(this) : null;\n\n // Set up release handler. Note that although this is fully linked to dragging\n // this still needs to be always instantiated to handle migration scenarios\n // correctly.\n this._dragRelease = new ItemDragRelease(this);\n\n // Set up drag placeholder handler. Note that although this is fully linked to\n // dragging this still needs to be always instantiated to handle migration\n // scenarios correctly.\n this._dragPlaceholder = new ItemDragPlaceholder(this);\n\n // Note! You must call the following methods before you start using the\n // instance. They are deliberately not called in the end as it would cause\n // potentially a massive amount of reflows if multiple items were instantiated\n // in a loop.\n // this._refreshDimensions();\n // this._refreshSortData();\n}\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Get the instance grid reference.\n *\n * @public\n * @returns {Grid}\n */\nItem.prototype.getGrid = function () {\n return GRID_INSTANCES[this._gridId];\n};\n\n/**\n * Get the instance element.\n *\n * @public\n * @returns {HTMLElement}\n */\nItem.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Get instance element's cached width.\n *\n * @public\n * @returns {Number}\n */\nItem.prototype.getWidth = function () {\n return this._width;\n};\n\n/**\n * Get instance element's cached height.\n *\n * @public\n * @returns {Number}\n */\nItem.prototype.getHeight = function () {\n return this._height;\n};\n\n/**\n * Get instance element's cached margins.\n *\n * @public\n * @returns {Object}\n * - The returned object contains left, right, top and bottom properties\n * which indicate the item element's cached margins.\n */\nItem.prototype.getMargin = function () {\n return {\n left: this._marginLeft,\n right: this._marginRight,\n top: this._marginTop,\n bottom: this._marginBottom,\n };\n};\n\n/**\n * Get instance element's cached position.\n *\n * @public\n * @returns {Object}\n * - The returned object contains left and top properties which indicate the\n * item element's cached position in the grid.\n */\nItem.prototype.getPosition = function () {\n return {\n left: this._left,\n top: this._top,\n };\n};\n\n/**\n * Is the item active?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isActive = function () {\n return this._isActive;\n};\n\n/**\n * Is the item visible?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isVisible = function () {\n return !!this._visibility && !this._visibility._isHidden;\n};\n\n/**\n * Is the item being animated to visible?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isShowing = function () {\n return !!(this._visibility && this._visibility._isShowing);\n};\n\n/**\n * Is the item being animated to hidden?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isHiding = function () {\n return !!(this._visibility && this._visibility._isHiding);\n};\n\n/**\n * Is the item positioning?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isPositioning = function () {\n return !!(this._layout && this._layout._isActive);\n};\n\n/**\n * Is the item being dragged (or queued for dragging)?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isDragging = function () {\n return !!(this._drag && this._drag._isActive);\n};\n\n/**\n * Is the item being released?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isReleasing = function () {\n return !!(this._dragRelease && this._dragRelease._isActive);\n};\n\n/**\n * Is the item destroyed?\n *\n * @public\n * @returns {Boolean}\n */\nItem.prototype.isDestroyed = function () {\n return this._isDestroyed;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Recalculate item's dimensions.\n *\n * @private\n * @param {Boolean} [force=false]\n */\nItem.prototype._refreshDimensions = function (force) {\n if (this._isDestroyed) return;\n if (force !== true && this._visibility._isHidden) return;\n\n var element = this._element;\n var dragPlaceholder = this._dragPlaceholder;\n var rect = element.getBoundingClientRect();\n\n // Calculate width and height.\n this._width = rect.width;\n this._height = rect.height;\n\n // Calculate margins (ignore negative margins).\n this._marginLeft = Math.max(0, getStyleAsFloat(element, 'margin-left'));\n this._marginRight = Math.max(0, getStyleAsFloat(element, 'margin-right'));\n this._marginTop = Math.max(0, getStyleAsFloat(element, 'margin-top'));\n this._marginBottom = Math.max(0, getStyleAsFloat(element, 'margin-bottom'));\n\n // Keep drag placeholder's dimensions synced with the item's.\n if (dragPlaceholder) dragPlaceholder.updateDimensions();\n};\n\n/**\n * Fetch and store item's sort data.\n *\n * @private\n */\nItem.prototype._refreshSortData = function () {\n if (this._isDestroyed) return;\n\n var data = (this._sortData = {});\n var getters = this.getGrid()._settings.sortData;\n var prop;\n\n for (prop in getters) {\n data[prop] = getters[prop](this, this._element);\n }\n};\n\n/**\n * Add item to layout.\n *\n * @private\n */\nItem.prototype._addToLayout = function (left, top) {\n if (this._isActive === true) return;\n this._isActive = true;\n this._left = left || 0;\n this._top = top || 0;\n};\n\n/**\n * Remove item from layout.\n *\n * @private\n */\nItem.prototype._removeFromLayout = function () {\n if (this._isActive === false) return;\n this._isActive = false;\n this._left = 0;\n this._top = 0;\n};\n\n/**\n * Check if the layout procedure can be skipped for the item.\n *\n * @private\n * @param {Number} left\n * @param {Number} top\n * @returns {Boolean}\n */\nItem.prototype._canSkipLayout = function (left, top) {\n return (\n this._left === left &&\n this._top === top &&\n !this._migrate._isActive &&\n !this._layout._skipNextAnimation &&\n !this._dragRelease.isJustReleased()\n );\n};\n\n/**\n * Set the provided left and top arguments as the item element's translate\n * values in the DOM. This method keeps track of the currently applied\n * translate values and skips the update operation if the provided values are\n * identical to the currently applied values. Returns `false` if there was no\n * need for update and `true` if the translate value was updated.\n *\n * @private\n * @param {Number} left\n * @param {Number} top\n * @returns {Boolean}\n */\nItem.prototype._setTranslate = function (left, top) {\n if (this._tX === left && this._tY === top) return false;\n this._tX = left;\n this._tY = top;\n this._element.style[transformProp] = getTranslateString(left, top);\n return true;\n};\n\n/**\n * Destroy item instance.\n *\n * @private\n * @param {Boolean} [removeElement=false]\n */\nItem.prototype._destroy = function (removeElement) {\n if (this._isDestroyed) return;\n\n var element = this._element;\n var grid = this.getGrid();\n var settings = grid._settings;\n\n // Destroy handlers.\n this._dragPlaceholder.destroy();\n this._dragRelease.destroy();\n this._migrate.destroy();\n this._layout.destroy();\n this._visibility.destroy();\n if (this._drag) this._drag.destroy();\n\n // Destroy emitter.\n this._emitter.destroy();\n\n // Remove item class.\n removeClass(element, settings.itemClass);\n\n // Remove element from DOM.\n if (removeElement) element.parentNode.removeChild(element);\n\n // Remove item/element pair from map.\n if (ITEM_ELEMENT_MAP) ITEM_ELEMENT_MAP.delete(element);\n\n // Reset state.\n this._isActive = false;\n this._isDestroyed = true;\n};\n\nfunction createPackerProcessor(isWorker) {\n var FILL_GAPS = 1;\n var HORIZONTAL = 2;\n var ALIGN_RIGHT = 4;\n var ALIGN_BOTTOM = 8;\n var ROUNDING = 16;\n\n var EPS = 0.001;\n var MIN_SLOT_SIZE = 0.5;\n\n // Rounds number first to three decimal precision and then floors the result\n // to two decimal precision.\n // Math.floor(Math.round(number * 1000) / 10) / 100\n function roundNumber(number) {\n return ((((number * 1000 + 0.5) << 0) / 10) << 0) / 100;\n }\n\n /**\n * @class\n */\n function PackerProcessor() {\n this.currentRects = [];\n this.nextRects = [];\n this.rectTarget = {};\n this.rectStore = [];\n this.slotSizes = [];\n this.rectId = 0;\n this.slotIndex = -1;\n this.slotData = { left: 0, top: 0, width: 0, height: 0 };\n this.sortRectsLeftTop = this.sortRectsLeftTop.bind(this);\n this.sortRectsTopLeft = this.sortRectsTopLeft.bind(this);\n }\n\n /**\n * Takes a layout object as an argument and computes positions (slots) for the\n * layout items. Also computes the final width and height of the layout. The\n * provided layout object's slots array is mutated as well as the width and\n * height properties.\n *\n * @param {Object} layout\n * @param {Number} layout.width\n * - The start (current) width of the layout in pixels.\n * @param {Number} layout.height\n * - The start (current) height of the layout in pixels.\n * @param {(Item[]|Number[])} layout.items\n * - List of Muuri.Item instances or a list of item dimensions\n * (e.g [ item1Width, item1Height, item2Width, item2Height, ... ]).\n * @param {(Array|Float32Array)} layout.slots\n * - An Array/Float32Array instance which's length should equal to\n * the amount of items times two. The position (width and height) of each\n * item will be written into this array.\n * @param {Number} settings\n * - The layout's settings as bitmasks.\n * @returns {Object}\n */\n PackerProcessor.prototype.computeLayout = function (layout, settings) {\n var items = layout.items;\n var slots = layout.slots;\n var fillGaps = !!(settings & FILL_GAPS);\n var horizontal = !!(settings & HORIZONTAL);\n var alignRight = !!(settings & ALIGN_RIGHT);\n var alignBottom = !!(settings & ALIGN_BOTTOM);\n var rounding = !!(settings & ROUNDING);\n var isPreProcessed = typeof items[0] === 'number';\n var i, bump, item, slotWidth, slotHeight, slot;\n\n // No need to go further if items do not exist.\n if (!items.length) return layout;\n\n // Compute slots for the items.\n bump = isPreProcessed ? 2 : 1;\n for (i = 0; i < items.length; i += bump) {\n // If items are pre-processed it means that items array contains only\n // the raw dimensions of the items. Otherwise we assume it is an array\n // of normal Muuri items.\n if (isPreProcessed) {\n slotWidth = items[i];\n slotHeight = items[i + 1];\n } else {\n item = items[i];\n slotWidth = item._width + item._marginLeft + item._marginRight;\n slotHeight = item._height + item._marginTop + item._marginBottom;\n }\n\n // If rounding is enabled let's round the item's width and height to\n // make the layout algorithm a bit more stable. This has a performance\n // cost so don't use this if not necessary.\n if (rounding) {\n slotWidth = roundNumber(slotWidth);\n slotHeight = roundNumber(slotHeight);\n }\n\n // Get slot data.\n slot = this.computeNextSlot(layout, slotWidth, slotHeight, fillGaps, horizontal);\n\n // Update layout width/height.\n if (horizontal) {\n if (slot.left + slot.width > layout.width) {\n layout.width = slot.left + slot.width;\n }\n } else {\n if (slot.top + slot.height > layout.height) {\n layout.height = slot.top + slot.height;\n }\n }\n\n // Add item slot data to layout slots.\n slots[++this.slotIndex] = slot.left;\n slots[++this.slotIndex] = slot.top;\n\n // Store the size too (for later usage) if needed.\n if (alignRight || alignBottom) {\n this.slotSizes.push(slot.width, slot.height);\n }\n }\n\n // If the alignment is set to right we need to adjust the results.\n if (alignRight) {\n for (i = 0; i < slots.length; i += 2) {\n slots[i] = layout.width - (slots[i] + this.slotSizes[i]);\n }\n }\n\n // If the alignment is set to bottom we need to adjust the results.\n if (alignBottom) {\n for (i = 1; i < slots.length; i += 2) {\n slots[i] = layout.height - (slots[i] + this.slotSizes[i]);\n }\n }\n\n // Reset stuff.\n this.slotSizes.length = 0;\n this.currentRects.length = 0;\n this.nextRects.length = 0;\n this.rectStore.length = 0;\n this.rectId = 0;\n this.slotIndex = -1;\n\n return layout;\n };\n\n /**\n * Calculate next slot in the layout. Returns a slot object with position and\n * dimensions data. The returned object is reused between calls.\n *\n * @param {Object} layout\n * @param {Number} slotWidth\n * @param {Number} slotHeight\n * @param {Boolean} fillGaps\n * @param {Boolean} horizontal\n * @returns {Object}\n */\n PackerProcessor.prototype.computeNextSlot = function (\n layout,\n slotWidth,\n slotHeight,\n fillGaps,\n horizontal\n ) {\n var slot = this.slotData;\n var currentRects = this.currentRects;\n var nextRects = this.nextRects;\n var ignoreCurrentRects = false;\n var rect;\n var rectId;\n var shards;\n var i;\n var j;\n\n // Reset new slots.\n nextRects.length = 0;\n\n // Set item slot initial data.\n slot.left = null;\n slot.top = null;\n slot.width = slotWidth;\n slot.height = slotHeight;\n\n // Try to find position for the slot from the existing free spaces in the\n // layout.\n for (i = 0; i < currentRects.length; i++) {\n rectId = currentRects[i];\n if (!rectId) continue;\n rect = this.getRect(rectId);\n if (slot.width <= rect.width + EPS && slot.height <= rect.height + EPS) {\n slot.left = rect.left;\n slot.top = rect.top;\n break;\n }\n }\n\n // If no position was found for the slot let's position the slot to\n // the bottom left (in vertical mode) or top right (in horizontal mode) of\n // the layout.\n if (slot.left === null) {\n if (horizontal) {\n slot.left = layout.width;\n slot.top = 0;\n } else {\n slot.left = 0;\n slot.top = layout.height;\n }\n\n // If gaps don't need filling let's throw away all the current free spaces\n // (currentRects).\n if (!fillGaps) {\n ignoreCurrentRects = true;\n }\n }\n\n // In vertical mode, if the slot's bottom overlaps the layout's bottom.\n if (!horizontal && slot.top + slot.height > layout.height + EPS) {\n // If slot is not aligned to the left edge, create a new free space to the\n // left of the slot.\n if (slot.left > MIN_SLOT_SIZE) {\n nextRects.push(this.addRect(0, layout.height, slot.left, Infinity));\n }\n\n // If slot is not aligned to the right edge, create a new free space to\n // the right of the slot.\n if (slot.left + slot.width < layout.width - MIN_SLOT_SIZE) {\n nextRects.push(\n this.addRect(\n slot.left + slot.width,\n layout.height,\n layout.width - slot.left - slot.width,\n Infinity\n )\n );\n }\n\n // Update layout height.\n layout.height = slot.top + slot.height;\n }\n\n // In horizontal mode, if the slot's right overlaps the layout's right edge.\n if (horizontal && slot.left + slot.width > layout.width + EPS) {\n // If slot is not aligned to the top, create a new free space above the\n // slot.\n if (slot.top > MIN_SLOT_SIZE) {\n nextRects.push(this.addRect(layout.width, 0, Infinity, slot.top));\n }\n\n // If slot is not aligned to the bottom, create a new free space below\n // the slot.\n if (slot.top + slot.height < layout.height - MIN_SLOT_SIZE) {\n nextRects.push(\n this.addRect(\n layout.width,\n slot.top + slot.height,\n Infinity,\n layout.height - slot.top - slot.height\n )\n );\n }\n\n // Update layout width.\n layout.width = slot.left + slot.width;\n }\n\n // Clean up the current free spaces making sure none of them overlap with\n // the slot. Split all overlapping free spaces into smaller shards that do\n // not overlap with the slot.\n if (!ignoreCurrentRects) {\n if (fillGaps) i = 0;\n for (; i < currentRects.length; i++) {\n rectId = currentRects[i];\n if (!rectId) continue;\n rect = this.getRect(rectId);\n shards = this.splitRect(rect, slot);\n for (j = 0; j < shards.length; j++) {\n rectId = shards[j];\n rect = this.getRect(rectId);\n // Make sure that the free space is within the boundaries of the\n // layout. This routine is critical to the algorithm as it makes sure\n // that there are no leftover spaces with infinite height/width.\n // It's also essential that we don't compare values absolutely to each\n // other but leave a little headroom (EPSILON) to get rid of false\n // positives.\n if (\n horizontal ? rect.left + EPS < layout.width - EPS : rect.top + EPS < layout.height - EPS\n ) {\n nextRects.push(rectId);\n }\n }\n }\n }\n\n // Sanitize and sort all the new free spaces that will be used in the next\n // iteration. This procedure is critical to make the bin-packing algorithm\n // work. The free spaces have to be in correct order in the beginning of the\n // next iteration.\n if (nextRects.length > 1) {\n this.purgeRects(nextRects).sort(horizontal ? this.sortRectsLeftTop : this.sortRectsTopLeft);\n }\n\n // Finally we need to make sure that `this.currentRects` points to\n // `nextRects` array as that is used in the next iteration's beginning when\n // we try to find a space for the next slot.\n this.currentRects = nextRects;\n this.nextRects = currentRects;\n\n return slot;\n };\n\n /**\n * Add a new rectangle to the rectangle store. Returns the id of the new\n * rectangle.\n *\n * @param {Number} left\n * @param {Number} top\n * @param {Number} width\n * @param {Number} height\n * @returns {Number}\n */\n PackerProcessor.prototype.addRect = function (left, top, width, height) {\n var rectId = ++this.rectId;\n this.rectStore[rectId] = left || 0;\n this.rectStore[++this.rectId] = top || 0;\n this.rectStore[++this.rectId] = width || 0;\n this.rectStore[++this.rectId] = height || 0;\n return rectId;\n };\n\n /**\n * Get rectangle data from the rectangle store by id. Optionally you can\n * provide a target object where the rectangle data will be written in. By\n * default an internal object is reused as a target object.\n *\n * @param {Number} id\n * @param {Object} [target]\n * @returns {Object}\n */\n PackerProcessor.prototype.getRect = function (id, target) {\n if (!target) target = this.rectTarget;\n target.left = this.rectStore[id] || 0;\n target.top = this.rectStore[++id] || 0;\n target.width = this.rectStore[++id] || 0;\n target.height = this.rectStore[++id] || 0;\n return target;\n };\n\n /**\n * Punch a hole into a rectangle and return the shards (1-4).\n *\n * @param {Object} rect\n * @param {Object} hole\n * @returns {Number[]}\n */\n PackerProcessor.prototype.splitRect = (function () {\n var shards = [];\n var width = 0;\n var height = 0;\n return function (rect, hole) {\n // Reset old shards.\n shards.length = 0;\n\n // If the slot does not overlap with the hole add slot to the return data\n // as is. Note that in this case we are eager to keep the slot as is if\n // possible so we use the EPSILON in favour of that logic.\n if (\n rect.left + rect.width <= hole.left + EPS ||\n hole.left + hole.width <= rect.left + EPS ||\n rect.top + rect.height <= hole.top + EPS ||\n hole.top + hole.height <= rect.top + EPS\n ) {\n shards.push(this.addRect(rect.left, rect.top, rect.width, rect.height));\n return shards;\n }\n\n // Left split.\n width = hole.left - rect.left;\n if (width >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, rect.top, width, rect.height));\n }\n\n // Right split.\n width = rect.left + rect.width - (hole.left + hole.width);\n if (width >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(hole.left + hole.width, rect.top, width, rect.height));\n }\n\n // Top split.\n height = hole.top - rect.top;\n if (height >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, rect.top, rect.width, height));\n }\n\n // Bottom split.\n height = rect.top + rect.height - (hole.top + hole.height);\n if (height >= MIN_SLOT_SIZE) {\n shards.push(this.addRect(rect.left, hole.top + hole.height, rect.width, height));\n }\n\n return shards;\n };\n })();\n\n /**\n * Check if a rectangle is fully within another rectangle.\n *\n * @param {Object} a\n * @param {Object} b\n * @returns {Boolean}\n */\n PackerProcessor.prototype.isRectAWithinRectB = function (a, b) {\n return (\n a.left + EPS >= b.left &&\n a.top + EPS >= b.top &&\n a.left + a.width - EPS <= b.left + b.width &&\n a.top + a.height - EPS <= b.top + b.height\n );\n };\n\n /**\n * Loops through an array of rectangle ids and resets all that are fully\n * within another rectangle in the array. Resetting in this case means that\n * the rectangle id value is replaced with zero.\n *\n * @param {Number[]} rectIds\n * @returns {Number[]}\n */\n PackerProcessor.prototype.purgeRects = (function () {\n var rectA = {};\n var rectB = {};\n return function (rectIds) {\n var i = rectIds.length;\n var j;\n\n while (i--) {\n j = rectIds.length;\n if (!rectIds[i]) continue;\n this.getRect(rectIds[i], rectA);\n while (j--) {\n if (!rectIds[j] || i === j) continue;\n this.getRect(rectIds[j], rectB);\n if (this.isRectAWithinRectB(rectA, rectB)) {\n rectIds[i] = 0;\n break;\n }\n }\n }\n\n return rectIds;\n };\n })();\n\n /**\n * Sort rectangles with top-left gravity.\n *\n * @param {Number} aId\n * @param {Number} bId\n * @returns {Number}\n */\n PackerProcessor.prototype.sortRectsTopLeft = (function () {\n var rectA = {};\n var rectB = {};\n return function (aId, bId) {\n this.getRect(aId, rectA);\n this.getRect(bId, rectB);\n\n return rectA.top < rectB.top && rectA.top + EPS < rectB.top\n ? -1\n : rectA.top > rectB.top && rectA.top - EPS > rectB.top\n ? 1\n : rectA.left < rectB.left && rectA.left + EPS < rectB.left\n ? -1\n : rectA.left > rectB.left && rectA.left - EPS > rectB.left\n ? 1\n : 0;\n };\n })();\n\n /**\n * Sort rectangles with left-top gravity.\n *\n * @param {Number} aId\n * @param {Number} bId\n * @returns {Number}\n */\n PackerProcessor.prototype.sortRectsLeftTop = (function () {\n var rectA = {};\n var rectB = {};\n return function (aId, bId) {\n this.getRect(aId, rectA);\n this.getRect(bId, rectB);\n return rectA.left < rectB.left && rectA.left + EPS < rectB.left\n ? -1\n : rectA.left > rectB.left && rectA.left - EPS < rectB.left\n ? 1\n : rectA.top < rectB.top && rectA.top + EPS < rectB.top\n ? -1\n : rectA.top > rectB.top && rectA.top - EPS > rectB.top\n ? 1\n : 0;\n };\n })();\n\n if (isWorker) {\n var PACKET_INDEX_WIDTH = 1;\n var PACKET_INDEX_HEIGHT = 2;\n var PACKET_INDEX_OPTIONS = 3;\n var PACKET_HEADER_SLOTS = 4;\n var processor = new PackerProcessor();\n\n self.onmessage = function (msg) {\n var data = new Float32Array(msg.data);\n var items = data.subarray(PACKET_HEADER_SLOTS, data.length);\n var slots = new Float32Array(items.length);\n var settings = data[PACKET_INDEX_OPTIONS];\n var layout = {\n items: items,\n slots: slots,\n width: data[PACKET_INDEX_WIDTH],\n height: data[PACKET_INDEX_HEIGHT],\n };\n\n // Compute the layout (width / height / slots).\n processor.computeLayout(layout, settings);\n\n // Copy layout data to the return data.\n data[PACKET_INDEX_WIDTH] = layout.width;\n data[PACKET_INDEX_HEIGHT] = layout.height;\n data.set(layout.slots, PACKET_HEADER_SLOTS);\n\n // Send layout back to the main thread.\n postMessage(data.buffer, [data.buffer]);\n };\n }\n\n return PackerProcessor;\n}\n\nvar PackerProcessor = createPackerProcessor();\n\n//\n// WORKER UTILS\n//\n\nvar blobUrl = null;\nvar activeWorkers = [];\n\nfunction createWorkerProcessors(amount, onmessage) {\n var workers = [];\n\n if (amount > 0) {\n if (!blobUrl) {\n blobUrl = URL.createObjectURL(\n new Blob(['(' + createPackerProcessor.toString() + ')(true)'], {\n type: 'application/javascript',\n })\n );\n }\n\n for (var i = 0, worker; i < amount; i++) {\n worker = new Worker(blobUrl);\n if (onmessage) worker.onmessage = onmessage;\n workers.push(worker);\n activeWorkers.push(worker);\n }\n }\n\n return workers;\n}\n\nfunction destroyWorkerProcessors(workers) {\n var worker;\n var index;\n\n for (var i = 0; i < workers.length; i++) {\n worker = workers[i];\n worker.onmessage = null;\n worker.onerror = null;\n worker.onmessageerror = null;\n worker.terminate();\n\n index = activeWorkers.indexOf(worker);\n if (index > -1) activeWorkers.splice(index, 1);\n }\n\n if (blobUrl && !activeWorkers.length) {\n URL.revokeObjectURL(blobUrl);\n blobUrl = null;\n }\n}\n\nfunction isWorkerProcessorsSupported() {\n return !!(window.Worker && window.URL && window.Blob);\n}\n\nvar FILL_GAPS = 1;\nvar HORIZONTAL = 2;\nvar ALIGN_RIGHT = 4;\nvar ALIGN_BOTTOM = 8;\nvar ROUNDING = 16;\nvar PACKET_INDEX_ID = 0;\nvar PACKET_INDEX_WIDTH = 1;\nvar PACKET_INDEX_HEIGHT = 2;\nvar PACKET_INDEX_OPTIONS = 3;\nvar PACKET_HEADER_SLOTS = 4;\n\n/**\n * @class\n * @param {Number} [numWorkers=0]\n * @param {Object} [options]\n * @param {Boolean} [options.fillGaps=false]\n * @param {Boolean} [options.horizontal=false]\n * @param {Boolean} [options.alignRight=false]\n * @param {Boolean} [options.alignBottom=false]\n * @param {Boolean} [options.rounding=false]\n */\nfunction Packer(numWorkers, options) {\n this._options = 0;\n this._processor = null;\n this._layoutQueue = [];\n this._layouts = {};\n this._layoutCallbacks = {};\n this._layoutWorkers = {};\n this._layoutWorkerData = {};\n this._workers = [];\n this._onWorkerMessage = this._onWorkerMessage.bind(this);\n\n // Set initial options.\n this.setOptions(options);\n\n // Init the worker(s) or the processor if workers can't be used.\n numWorkers = typeof numWorkers === 'number' ? Math.max(0, numWorkers) : 0;\n if (numWorkers && isWorkerProcessorsSupported()) {\n try {\n this._workers = createWorkerProcessors(numWorkers, this._onWorkerMessage);\n } catch (e) {\n this._processor = new PackerProcessor();\n }\n } else {\n this._processor = new PackerProcessor();\n }\n}\n\nPacker.prototype._sendToWorker = function () {\n if (!this._layoutQueue.length || !this._workers.length) return;\n\n var layoutId = this._layoutQueue.shift();\n var worker = this._workers.pop();\n var data = this._layoutWorkerData[layoutId];\n\n delete this._layoutWorkerData[layoutId];\n this._layoutWorkers[layoutId] = worker;\n worker.postMessage(data.buffer, [data.buffer]);\n};\n\nPacker.prototype._onWorkerMessage = function (msg) {\n var data = new Float32Array(msg.data);\n var layoutId = data[PACKET_INDEX_ID];\n var layout = this._layouts[layoutId];\n var callback = this._layoutCallbacks[layoutId];\n var worker = this._layoutWorkers[layoutId];\n\n if (layout) delete this._layouts[layoutId];\n if (callback) delete this._layoutCallbacks[layoutId];\n if (worker) delete this._layoutWorkers[layoutId];\n\n if (layout && callback) {\n layout.width = data[PACKET_INDEX_WIDTH];\n layout.height = data[PACKET_INDEX_HEIGHT];\n layout.slots = data.subarray(PACKET_HEADER_SLOTS, data.length);\n this._finalizeLayout(layout);\n callback(layout);\n }\n\n if (worker) {\n this._workers.push(worker);\n this._sendToWorker();\n }\n};\n\nPacker.prototype._finalizeLayout = function (layout) {\n var grid = layout._grid;\n var isHorizontal = layout._settings & HORIZONTAL;\n var isBorderBox = grid._boxSizing === 'border-box';\n\n delete layout._grid;\n delete layout._settings;\n\n layout.styles = {};\n\n if (isHorizontal) {\n layout.styles.width =\n (isBorderBox ? layout.width + grid._borderLeft + grid._borderRight : layout.width) + 'px';\n } else {\n layout.styles.height =\n (isBorderBox ? layout.height + grid._borderTop + grid._borderBottom : layout.height) + 'px';\n }\n\n return layout;\n};\n\n/**\n * @public\n * @param {Object} [options]\n * @param {Boolean} [options.fillGaps]\n * @param {Boolean} [options.horizontal]\n * @param {Boolean} [options.alignRight]\n * @param {Boolean} [options.alignBottom]\n * @param {Boolean} [options.rounding]\n */\nPacker.prototype.setOptions = function (options) {\n if (!options) return;\n\n var fillGaps;\n if (typeof options.fillGaps === 'boolean') {\n fillGaps = options.fillGaps ? FILL_GAPS : 0;\n } else {\n fillGaps = this._options & FILL_GAPS;\n }\n\n var horizontal;\n if (typeof options.horizontal === 'boolean') {\n horizontal = options.horizontal ? HORIZONTAL : 0;\n } else {\n horizontal = this._options & HORIZONTAL;\n }\n\n var alignRight;\n if (typeof options.alignRight === 'boolean') {\n alignRight = options.alignRight ? ALIGN_RIGHT : 0;\n } else {\n alignRight = this._options & ALIGN_RIGHT;\n }\n\n var alignBottom;\n if (typeof options.alignBottom === 'boolean') {\n alignBottom = options.alignBottom ? ALIGN_BOTTOM : 0;\n } else {\n alignBottom = this._options & ALIGN_BOTTOM;\n }\n\n var rounding;\n if (typeof options.rounding === 'boolean') {\n rounding = options.rounding ? ROUNDING : 0;\n } else {\n rounding = this._options & ROUNDING;\n }\n\n this._options = fillGaps | horizontal | alignRight | alignBottom | rounding;\n};\n\n/**\n * @public\n * @param {Grid} grid\n * @param {Number} layoutId\n * @param {Item[]} items\n * @param {Number} width\n * @param {Number} height\n * @param {Function} callback\n * @returns {?Function}\n */\nPacker.prototype.createLayout = function (grid, layoutId, items, width, height, callback) {\n if (this._layouts[layoutId]) {\n throw new Error('A layout with the provided id is currently being processed.');\n }\n\n var horizontal = this._options & HORIZONTAL;\n var layout = {\n id: layoutId,\n items: items,\n slots: null,\n width: horizontal ? 0 : width,\n height: !horizontal ? 0 : height,\n // Temporary data, which will be removed before sending the layout data\n // outside of Packer's context.\n _grid: grid,\n _settings: this._options,\n };\n\n // If there are no items let's call the callback immediately.\n if (!items.length) {\n layout.slots = [];\n this._finalizeLayout(layout);\n callback(layout);\n return;\n }\n\n // Create layout synchronously if needed.\n if (this._processor) {\n layout.slots = window.Float32Array\n ? new Float32Array(items.length * 2)\n : new Array(items.length * 2);\n this._processor.computeLayout(layout, layout._settings);\n this._finalizeLayout(layout);\n callback(layout);\n return;\n }\n\n // Worker data.\n var data = new Float32Array(PACKET_HEADER_SLOTS + items.length * 2);\n\n // Worker data header.\n data[PACKET_INDEX_ID] = layoutId;\n data[PACKET_INDEX_WIDTH] = layout.width;\n data[PACKET_INDEX_HEIGHT] = layout.height;\n data[PACKET_INDEX_OPTIONS] = layout._settings;\n\n // Worker data items.\n var i, j, item;\n for (i = 0, j = PACKET_HEADER_SLOTS - 1, item; i < items.length; i++) {\n item = items[i];\n data[++j] = item._width + item._marginLeft + item._marginRight;\n data[++j] = item._height + item._marginTop + item._marginBottom;\n }\n\n this._layoutQueue.push(layoutId);\n this._layouts[layoutId] = layout;\n this._layoutCallbacks[layoutId] = callback;\n this._layoutWorkerData[layoutId] = data;\n\n this._sendToWorker();\n\n return this.cancelLayout.bind(this, layoutId);\n};\n\n/**\n * @public\n * @param {Number} layoutId\n */\nPacker.prototype.cancelLayout = function (layoutId) {\n var layout = this._layouts[layoutId];\n if (!layout) return;\n\n delete this._layouts[layoutId];\n delete this._layoutCallbacks[layoutId];\n\n if (this._layoutWorkerData[layoutId]) {\n delete this._layoutWorkerData[layoutId];\n var queueIndex = this._layoutQueue.indexOf(layoutId);\n if (queueIndex > -1) this._layoutQueue.splice(queueIndex, 1);\n }\n};\n\n/**\n * @public\n */\nPacker.prototype.destroy = function () {\n // Move all currently used workers back in the workers array.\n for (var key in this._layoutWorkers) {\n this._workers.push(this._layoutWorkers[key]);\n }\n\n // Destroy all instance's workers.\n destroyWorkerProcessors(this._workers);\n\n // Reset data.\n this._workers.length = 0;\n this._layoutQueue.length = 0;\n this._layouts = {};\n this._layoutCallbacks = {};\n this._layoutWorkers = {};\n this._layoutWorkerData = {};\n};\n\nvar debounceId = 0;\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. The returned function accepts one argument which, when\n * being `true`, cancels the debounce function immediately. When the debounce\n * function is canceled it cannot be invoked again.\n *\n * @param {Function} fn\n * @param {Number} durationMs\n * @returns {Function}\n */\nfunction debounce(fn, durationMs) {\n var id = ++debounceId;\n var timer = 0;\n var lastTime = 0;\n var isCanceled = false;\n var tick = function (time) {\n if (isCanceled) return;\n\n if (lastTime) timer -= time - lastTime;\n lastTime = time;\n\n if (timer > 0) {\n addDebounceTick(id, tick);\n } else {\n timer = lastTime = 0;\n fn();\n }\n };\n\n return function (cancel) {\n if (isCanceled) return;\n\n if (durationMs <= 0) {\n if (cancel !== true) fn();\n return;\n }\n\n if (cancel === true) {\n isCanceled = true;\n timer = lastTime = 0;\n tick = undefined;\n cancelDebounceTick(id);\n return;\n }\n\n if (timer <= 0) {\n timer = durationMs;\n tick(0);\n } else {\n timer = durationMs;\n }\n };\n}\n\nvar htmlCollectionType = '[object HTMLCollection]';\nvar nodeListType = '[object NodeList]';\n\n/**\n * Check if a value is a node list or a html collection.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isNodeList(val) {\n var type = Object.prototype.toString.call(val);\n return type === htmlCollectionType || type === nodeListType;\n}\n\nvar objectType = 'object';\nvar objectToStringType = '[object Object]';\nvar toString = Object.prototype.toString;\n\n/**\n * Check if a value is a plain object.\n *\n * @param {*} val\n * @returns {Boolean}\n */\nfunction isPlainObject(val) {\n return typeof val === objectType && toString.call(val) === objectToStringType;\n}\n\nfunction noop() {}\n\n/**\n * Converts a value to an array or clones an array.\n *\n * @param {*} val\n * @returns {Array}\n */\nfunction toArray(val) {\n return isNodeList(val) ? Array.prototype.slice.call(val) : Array.prototype.concat(val);\n}\n\nvar NUMBER_TYPE = 'number';\nvar STRING_TYPE = 'string';\nvar INSTANT_LAYOUT = 'instant';\nvar layoutId = 0;\n\n/**\n * Creates a new Grid instance.\n *\n * @class\n * @param {(HTMLElement|String)} element\n * @param {Object} [options]\n * @param {(String|HTMLElement[]|NodeList|HTMLCollection)} [options.items=\"*\"]\n * @param {Number} [options.showDuration=300]\n * @param {String} [options.showEasing=\"ease\"]\n * @param {Object} [options.visibleStyles={opacity: \"1\", transform: \"scale(1)\"}]\n * @param {Number} [options.hideDuration=300]\n * @param {String} [options.hideEasing=\"ease\"]\n * @param {Object} [options.hiddenStyles={opacity: \"0\", transform: \"scale(0.5)\"}]\n * @param {(Function|Object)} [options.layout]\n * @param {Boolean} [options.layout.fillGaps=false]\n * @param {Boolean} [options.layout.horizontal=false]\n * @param {Boolean} [options.layout.alignRight=false]\n * @param {Boolean} [options.layout.alignBottom=false]\n * @param {Boolean} [options.layout.rounding=false]\n * @param {(Boolean|Number)} [options.layoutOnResize=150]\n * @param {Boolean} [options.layoutOnInit=true]\n * @param {Number} [options.layoutDuration=300]\n * @param {String} [options.layoutEasing=\"ease\"]\n * @param {?Object} [options.sortData=null]\n * @param {Boolean} [options.dragEnabled=false]\n * @param {?String} [options.dragHandle=null]\n * @param {?HtmlElement} [options.dragContainer=null]\n * @param {?Function} [options.dragStartPredicate]\n * @param {Number} [options.dragStartPredicate.distance=0]\n * @param {Number} [options.dragStartPredicate.delay=0]\n * @param {String} [options.dragAxis=\"xy\"]\n * @param {(Boolean|Function)} [options.dragSort=true]\n * @param {Object} [options.dragSortHeuristics]\n * @param {Number} [options.dragSortHeuristics.sortInterval=100]\n * @param {Number} [options.dragSortHeuristics.minDragDistance=10]\n * @param {Number} [options.dragSortHeuristics.minBounceBackAngle=1]\n * @param {(Function|Object)} [options.dragSortPredicate]\n * @param {Number} [options.dragSortPredicate.threshold=50]\n * @param {String} [options.dragSortPredicate.action=\"move\"]\n * @param {String} [options.dragSortPredicate.migrateAction=\"move\"]\n * @param {Object} [options.dragRelease]\n * @param {Number} [options.dragRelease.duration=300]\n * @param {String} [options.dragRelease.easing=\"ease\"]\n * @param {Boolean} [options.dragRelease.useDragContainer=true]\n * @param {Object} [options.dragCssProps]\n * @param {Object} [options.dragPlaceholder]\n * @param {Boolean} [options.dragPlaceholder.enabled=false]\n * @param {?Function} [options.dragPlaceholder.createElement=null]\n * @param {?Function} [options.dragPlaceholder.onCreate=null]\n * @param {?Function} [options.dragPlaceholder.onRemove=null]\n * @param {Object} [options.dragAutoScroll]\n * @param {(Function|Array)} [options.dragAutoScroll.targets=[]]\n * @param {?Function} [options.dragAutoScroll.handle=null]\n * @param {Number} [options.dragAutoScroll.threshold=50]\n * @param {Number} [options.dragAutoScroll.safeZone=0.2]\n * @param {(Function|Number)} [options.dragAutoScroll.speed]\n * @param {Boolean} [options.dragAutoScroll.sortDuringScroll=true]\n * @param {Boolean} [options.dragAutoScroll.smoothStop=false]\n * @param {?Function} [options.dragAutoScroll.onStart=null]\n * @param {?Function} [options.dragAutoScroll.onStop=null]\n * @param {String} [options.containerClass=\"muuri\"]\n * @param {String} [options.itemClass=\"muuri-item\"]\n * @param {String} [options.itemVisibleClass=\"muuri-item-visible\"]\n * @param {String} [options.itemHiddenClass=\"muuri-item-hidden\"]\n * @param {String} [options.itemPositioningClass=\"muuri-item-positioning\"]\n * @param {String} [options.itemDraggingClass=\"muuri-item-dragging\"]\n * @param {String} [options.itemReleasingClass=\"muuri-item-releasing\"]\n * @param {String} [options.itemPlaceholderClass=\"muuri-item-placeholder\"]\n */\nfunction Grid(element, options) {\n // Allow passing element as selector string\n if (typeof element === STRING_TYPE) {\n element = document.querySelector(element);\n }\n\n // Throw an error if the container element is not body element or does not\n // exist within the body element.\n var isElementInDom = element.getRootNode\n ? element.getRootNode({ composed: true }) === document\n : document.body.contains(element);\n if (!isElementInDom || element === document.documentElement) {\n throw new Error('Container element must be an existing DOM element.');\n }\n\n // Create instance settings by merging the options with default options.\n var settings = mergeSettings(Grid.defaultOptions, options);\n settings.visibleStyles = normalizeStyles(settings.visibleStyles);\n settings.hiddenStyles = normalizeStyles(settings.hiddenStyles);\n if (!isFunction(settings.dragSort)) {\n settings.dragSort = !!settings.dragSort;\n }\n\n this._id = createUid();\n this._element = element;\n this._settings = settings;\n this._isDestroyed = false;\n this._items = [];\n this._layout = {\n id: 0,\n items: [],\n slots: [],\n };\n this._isLayoutFinished = true;\n this._nextLayoutData = null;\n this._emitter = new Emitter();\n this._onLayoutDataReceived = this._onLayoutDataReceived.bind(this);\n\n // Store grid instance to the grid instances collection.\n GRID_INSTANCES[this._id] = this;\n\n // Add container element's class name.\n addClass(element, settings.containerClass);\n\n // If layoutOnResize option is a valid number sanitize it and bind the resize\n // handler.\n bindLayoutOnResize(this, settings.layoutOnResize);\n\n // Add initial items.\n this.add(getInitialGridElements(element, settings.items), { layout: false });\n\n // Layout on init if necessary.\n if (settings.layoutOnInit) {\n this.layout(true);\n }\n}\n\n/**\n * Public properties\n * *****************\n */\n\n/**\n * @public\n * @static\n * @see Item\n */\nGrid.Item = Item;\n\n/**\n * @public\n * @static\n * @see ItemLayout\n */\nGrid.ItemLayout = ItemLayout;\n\n/**\n * @public\n * @static\n * @see ItemVisibility\n */\nGrid.ItemVisibility = ItemVisibility;\n\n/**\n * @public\n * @static\n * @see ItemMigrate\n */\nGrid.ItemMigrate = ItemMigrate;\n\n/**\n * @public\n * @static\n * @see ItemDrag\n */\nGrid.ItemDrag = ItemDrag;\n\n/**\n * @public\n * @static\n * @see ItemDragRelease\n */\nGrid.ItemDragRelease = ItemDragRelease;\n\n/**\n * @public\n * @static\n * @see ItemDragPlaceholder\n */\nGrid.ItemDragPlaceholder = ItemDragPlaceholder;\n\n/**\n * @public\n * @static\n * @see Emitter\n */\nGrid.Emitter = Emitter;\n\n/**\n * @public\n * @static\n * @see Animator\n */\nGrid.Animator = Animator;\n\n/**\n * @public\n * @static\n * @see Dragger\n */\nGrid.Dragger = Dragger;\n\n/**\n * @public\n * @static\n * @see Packer\n */\nGrid.Packer = Packer;\n\n/**\n * @public\n * @static\n * @see AutoScroller\n */\nGrid.AutoScroller = AutoScroller;\n\n/**\n * The default Packer instance used by default for all layouts.\n *\n * @public\n * @static\n * @type {Packer}\n */\nGrid.defaultPacker = new Packer(2);\n\n/**\n * Default options for Grid instance.\n *\n * @public\n * @static\n * @type {Object}\n */\nGrid.defaultOptions = {\n // Initial item elements\n items: '*',\n\n // Default show animation\n showDuration: 300,\n showEasing: 'ease',\n\n // Default hide animation\n hideDuration: 300,\n hideEasing: 'ease',\n\n // Item's visible/hidden state styles\n visibleStyles: {\n opacity: '1',\n transform: 'scale(1)',\n },\n hiddenStyles: {\n opacity: '0',\n transform: 'scale(0.5)',\n },\n\n // Layout\n layout: {\n fillGaps: false,\n horizontal: false,\n alignRight: false,\n alignBottom: false,\n rounding: false,\n },\n layoutOnResize: 150,\n layoutOnInit: true,\n layoutDuration: 300,\n layoutEasing: 'ease',\n\n // Sorting\n sortData: null,\n\n // Drag & Drop\n dragEnabled: false,\n dragContainer: null,\n dragHandle: null,\n dragStartPredicate: {\n distance: 0,\n delay: 0,\n },\n dragAxis: 'xy',\n dragSort: true,\n dragSortHeuristics: {\n sortInterval: 100,\n minDragDistance: 10,\n minBounceBackAngle: 1,\n },\n dragSortPredicate: {\n threshold: 50,\n action: ACTION_MOVE,\n migrateAction: ACTION_MOVE,\n },\n dragRelease: {\n duration: 300,\n easing: 'ease',\n useDragContainer: true,\n },\n dragCssProps: {\n touchAction: 'none',\n userSelect: 'none',\n userDrag: 'none',\n tapHighlightColor: 'rgba(0, 0, 0, 0)',\n touchCallout: 'none',\n contentZooming: 'none',\n },\n dragPlaceholder: {\n enabled: false,\n createElement: null,\n onCreate: null,\n onRemove: null,\n },\n dragAutoScroll: {\n targets: [],\n handle: null,\n threshold: 50,\n safeZone: 0.2,\n speed: AutoScroller.smoothSpeed(1000, 2000, 2500),\n sortDuringScroll: true,\n smoothStop: false,\n onStart: null,\n onStop: null,\n },\n\n // Classnames\n containerClass: 'muuri',\n itemClass: 'muuri-item',\n itemVisibleClass: 'muuri-item-shown',\n itemHiddenClass: 'muuri-item-hidden',\n itemPositioningClass: 'muuri-item-positioning',\n itemDraggingClass: 'muuri-item-dragging',\n itemReleasingClass: 'muuri-item-releasing',\n itemPlaceholderClass: 'muuri-item-placeholder',\n};\n\n/**\n * Public prototype methods\n * ************************\n */\n\n/**\n * Bind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Grid}\n */\nGrid.prototype.on = function (event, listener) {\n this._emitter.on(event, listener);\n return this;\n};\n\n/**\n * Unbind an event listener.\n *\n * @public\n * @param {String} event\n * @param {Function} listener\n * @returns {Grid}\n */\nGrid.prototype.off = function (event, listener) {\n this._emitter.off(event, listener);\n return this;\n};\n\n/**\n * Get the container element.\n *\n * @public\n * @returns {HTMLElement}\n */\nGrid.prototype.getElement = function () {\n return this._element;\n};\n\n/**\n * Get instance's item by element or by index. Target can also be an Item\n * instance in which case the function returns the item if it exists within\n * related Grid instance. If nothing is found with the provided target, null\n * is returned.\n *\n * @private\n * @param {(HtmlElement|Number|Item)} [target]\n * @returns {?Item}\n */\nGrid.prototype.getItem = function (target) {\n // If no target is specified or the instance is destroyed, return null.\n if (this._isDestroyed || (!target && target !== 0)) {\n return null;\n }\n\n // If target is number return the item in that index. If the number is lower\n // than zero look for the item starting from the end of the items array. For\n // example -1 for the last item, -2 for the second last item, etc.\n if (typeof target === NUMBER_TYPE) {\n return this._items[target > -1 ? target : this._items.length + target] || null;\n }\n\n // If the target is an instance of Item return it if it is attached to this\n // Grid instance, otherwise return null.\n if (target instanceof Item) {\n return target._gridId === this._id ? target : null;\n }\n\n // In other cases let's assume that the target is an element, so let's try\n // to find an item that matches the element and return it. If item is not\n // found return null.\n if (ITEM_ELEMENT_MAP) {\n var item = ITEM_ELEMENT_MAP.get(target);\n return item && item._gridId === this._id ? item : null;\n } else {\n for (var i = 0; i < this._items.length; i++) {\n if (this._items[i]._element === target) {\n return this._items[i];\n }\n }\n }\n\n return null;\n};\n\n/**\n * Get all items. Optionally you can provide specific targets (elements,\n * indices and item instances). All items that are not found are omitted from\n * the returned array.\n *\n * @public\n * @param {(HtmlElement|Number|Item|Array)} [targets]\n * @returns {Item[]}\n */\nGrid.prototype.getItems = function (targets) {\n // Return all items immediately if no targets were provided or if the\n // instance is destroyed.\n if (this._isDestroyed || targets === undefined) {\n return this._items.slice(0);\n }\n\n var items = [];\n var i, item;\n\n if (Array.isArray(targets) || isNodeList(targets)) {\n for (i = 0; i < targets.length; i++) {\n item = this.getItem(targets[i]);\n if (item) items.push(item);\n }\n } else {\n item = this.getItem(targets);\n if (item) items.push(item);\n }\n\n return items;\n};\n\n/**\n * Update the cached dimensions of the instance's items. By default all the\n * items are refreshed, but you can also provide an array of target items as the\n * first argument if you want to refresh specific items. Note that all hidden\n * items are not refreshed by default since their \"display\" property is \"none\"\n * and their dimensions are therefore not readable from the DOM. However, if you\n * do want to force update hidden item dimensions too you can provide `true`\n * as the second argument, which makes the elements temporarily visible while\n * their dimensions are being read.\n *\n * @public\n * @param {Item[]} [items]\n * @param {Boolean} [force=false]\n * @returns {Grid}\n */\nGrid.prototype.refreshItems = function (items, force) {\n if (this._isDestroyed) return this;\n\n var targets = items || this._items;\n var i, item, style, hiddenItemStyles;\n\n if (force === true) {\n hiddenItemStyles = [];\n for (i = 0; i < targets.length; i++) {\n item = targets[i];\n if (!item.isVisible() && !item.isHiding()) {\n style = item.getElement().style;\n style.visibility = 'hidden';\n style.display = '';\n hiddenItemStyles.push(style);\n }\n }\n }\n\n for (i = 0; i < targets.length; i++) {\n targets[i]._refreshDimensions(force);\n }\n\n if (force === true) {\n for (i = 0; i < hiddenItemStyles.length; i++) {\n style = hiddenItemStyles[i];\n style.visibility = '';\n style.display = 'none';\n }\n hiddenItemStyles.length = 0;\n }\n\n return this;\n};\n\n/**\n * Update the sort data of the instance's items. By default all the items are\n * refreshed, but you can also provide an array of target items if you want to\n * refresh specific items.\n *\n * @public\n * @param {Item[]} [items]\n * @returns {Grid}\n */\nGrid.prototype.refreshSortData = function (items) {\n if (this._isDestroyed) return this;\n\n var targets = items || this._items;\n for (var i = 0; i < targets.length; i++) {\n targets[i]._refreshSortData();\n }\n\n return this;\n};\n\n/**\n * Synchronize the item elements to match the order of the items in the DOM.\n * This comes handy if you need to keep the DOM structure matched with the\n * order of the items. Note that if an item's element is not currently a child\n * of the container element (if it is dragged for example) it is ignored and\n * left untouched.\n *\n * @public\n * @returns {Grid}\n */\nGrid.prototype.synchronize = function () {\n if (this._isDestroyed) return this;\n\n var items = this._items;\n if (!items.length) return this;\n\n var fragment;\n var element;\n\n for (var i = 0; i < items.length; i++) {\n element = items[i]._element;\n if (element.parentNode === this._element) {\n fragment = fragment || document.createDocumentFragment();\n fragment.appendChild(element);\n }\n }\n\n if (!fragment) return this;\n\n this._element.appendChild(fragment);\n this._emit(EVENT_SYNCHRONIZE);\n\n return this;\n};\n\n/**\n * Calculate and apply item positions.\n *\n * @public\n * @param {Boolean} [instant=false]\n * @param {Function} [onFinish]\n * @returns {Grid}\n */\nGrid.prototype.layout = function (instant, onFinish) {\n if (this._isDestroyed) return this;\n\n // Cancel unfinished layout algorithm if possible.\n var unfinishedLayout = this._nextLayoutData;\n if (unfinishedLayout && isFunction(unfinishedLayout.cancel)) {\n unfinishedLayout.cancel();\n }\n\n // Compute layout id (let's stay in Float32 range).\n layoutId = (layoutId % MAX_SAFE_FLOAT32_INTEGER) + 1;\n var nextLayoutId = layoutId;\n\n // Store data for next layout.\n this._nextLayoutData = {\n id: nextLayoutId,\n instant: instant,\n onFinish: onFinish,\n cancel: null,\n };\n\n // Collect layout items (all active grid items).\n var items = this._items;\n var layoutItems = [];\n for (var i = 0; i < items.length; i++) {\n if (items[i]._isActive) layoutItems.push(items[i]);\n }\n\n // Compute new layout.\n this._refreshDimensions();\n var gridWidth = this._width - this._borderLeft - this._borderRight;\n var gridHeight = this._height - this._borderTop - this._borderBottom;\n var layoutSettings = this._settings.layout;\n var cancelLayout;\n if (isFunction(layoutSettings)) {\n cancelLayout = layoutSettings(\n this,\n nextLayoutId,\n layoutItems,\n gridWidth,\n gridHeight,\n this._onLayoutDataReceived\n );\n } else {\n Grid.defaultPacker.setOptions(layoutSettings);\n cancelLayout = Grid.defaultPacker.createLayout(\n this,\n nextLayoutId,\n layoutItems,\n gridWidth,\n gridHeight,\n this._onLayoutDataReceived\n );\n }\n\n // Store layout cancel method if available.\n if (\n isFunction(cancelLayout) &&\n this._nextLayoutData &&\n this._nextLayoutData.id === nextLayoutId\n ) {\n this._nextLayoutData.cancel = cancelLayout;\n }\n\n return this;\n};\n\n/**\n * Add new items by providing the elements you wish to add to the instance and\n * optionally provide the index where you want the items to be inserted into.\n * All elements that are not already children of the container element will be\n * automatically appended to the container element. If an element has it's CSS\n * display property set to \"none\" it will be marked as inactive during the\n * initiation process. As long as the item is inactive it will not be part of\n * the layout, but it will retain it's index. You can activate items at any\n * point with grid.show() method. This method will automatically call\n * grid.layout() if one or more of the added elements are visible. If only\n * hidden items are added no layout will be called. All the new visible items\n * are positioned without animation during their first layout.\n *\n * @public\n * @param {(HTMLElement|HTMLElement[])} elements\n * @param {Object} [options]\n * @param {Number} [options.index=-1]\n * @param {Boolean} [options.active]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Item[]}\n */\nGrid.prototype.add = function (elements, options) {\n if (this._isDestroyed || !elements) return [];\n\n var newItems = toArray(elements);\n if (!newItems.length) return newItems;\n\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var items = this._items;\n var needsLayout = false;\n var fragment;\n var element;\n var item;\n var i;\n\n // Collect all the elements that are not child of the grid element into a\n // document fragment.\n for (i = 0; i < newItems.length; i++) {\n element = newItems[i];\n if (element.parentNode !== this._element) {\n fragment = fragment || document.createDocumentFragment();\n fragment.appendChild(element);\n }\n }\n\n // If we have a fragment, let's append it to the grid element. We could just\n // not do this and the `new Item()` instantiation would handle this for us,\n // but this way we can add the elements into the DOM a bit faster.\n if (fragment) {\n this._element.appendChild(fragment);\n }\n\n // Map provided elements into new grid items.\n for (i = 0; i < newItems.length; i++) {\n element = newItems[i];\n item = newItems[i] = new Item(this, element, opts.active);\n\n // If the item to be added is active, we need to do a layout. Also, we\n // need to mark the item with the skipNextAnimation flag to make it\n // position instantly (without animation) during the next layout. Without\n // the hack the item would animate to it's new position from the northwest\n // corner of the grid, which feels a bit buggy (imho).\n if (item._isActive) {\n needsLayout = true;\n item._layout._skipNextAnimation = true;\n }\n }\n\n // Set up the items' initial dimensions and sort data. This needs to be done\n // in a separate loop to avoid layout thrashing.\n for (i = 0; i < newItems.length; i++) {\n item = newItems[i];\n item._refreshDimensions();\n item._refreshSortData();\n }\n\n // Add the new items to the items collection to correct index.\n arrayInsert(items, newItems, opts.index);\n\n // Emit add event.\n if (this._hasListeners(EVENT_ADD)) {\n this._emit(EVENT_ADD, newItems.slice(0));\n }\n\n // If layout is needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n return newItems;\n};\n\n/**\n * Remove items from the instance.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.removeElements=false]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Item[]}\n */\nGrid.prototype.remove = function (items, options) {\n if (this._isDestroyed || !items.length) return [];\n\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var needsLayout = false;\n var allItems = this.getItems();\n var targetItems = [];\n var indices = [];\n var index;\n var item;\n var i;\n\n // Remove the individual items.\n for (i = 0; i < items.length; i++) {\n item = items[i];\n if (item._isDestroyed) continue;\n\n index = this._items.indexOf(item);\n if (index === -1) continue;\n\n if (item._isActive) needsLayout = true;\n\n targetItems.push(item);\n indices.push(allItems.indexOf(item));\n item._destroy(opts.removeElements);\n this._items.splice(index, 1);\n }\n\n // Emit remove event.\n if (this._hasListeners(EVENT_REMOVE)) {\n this._emit(EVENT_REMOVE, targetItems.slice(0), indices);\n }\n\n // If layout is needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n return targetItems;\n};\n\n/**\n * Show specific instance items.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.show = function (items, options) {\n if (!this._isDestroyed && items.length) {\n this._setItemsVisibility(items, true, options);\n }\n return this;\n};\n\n/**\n * Hide specific instance items.\n *\n * @public\n * @param {Item[]} items\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.hide = function (items, options) {\n if (!this._isDestroyed && items.length) {\n this._setItemsVisibility(items, false, options);\n }\n return this;\n};\n\n/**\n * Filter items. Expects at least one argument, a predicate, which should be\n * either a function or a string. The predicate callback is executed for every\n * item in the instance. If the return value of the predicate is truthy the\n * item in question will be shown and otherwise hidden. The predicate callback\n * receives the item instance as it's argument. If the predicate is a string\n * it is considered to be a selector and it is checked against every item\n * element in the instance with the native element.matches() method. All the\n * matching items will be shown and others hidden.\n *\n * @public\n * @param {(Function|String)} predicate\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {FilterCallback} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.filter = function (predicate, options) {\n if (this._isDestroyed || !this._items.length) return this;\n\n var itemsToShow = [];\n var itemsToHide = [];\n var isPredicateString = typeof predicate === STRING_TYPE;\n var isPredicateFn = isFunction(predicate);\n var opts = options || {};\n var isInstant = opts.instant === true;\n var syncWithLayout = opts.syncWithLayout;\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var onFinish = isFunction(opts.onFinish) ? opts.onFinish : null;\n var tryFinishCounter = -1;\n var tryFinish = noop;\n var item;\n var i;\n\n // If we have onFinish callback, let's create proper tryFinish callback.\n if (onFinish) {\n tryFinish = function () {\n ++tryFinishCounter && onFinish(itemsToShow.slice(0), itemsToHide.slice(0));\n };\n }\n\n // Check which items need to be shown and which hidden.\n if (isPredicateFn || isPredicateString) {\n for (i = 0; i < this._items.length; i++) {\n item = this._items[i];\n if (isPredicateFn ? predicate(item) : elementMatches(item._element, predicate)) {\n itemsToShow.push(item);\n } else {\n itemsToHide.push(item);\n }\n }\n }\n\n // Show items that need to be shown.\n if (itemsToShow.length) {\n this.show(itemsToShow, {\n instant: isInstant,\n syncWithLayout: syncWithLayout,\n onFinish: tryFinish,\n layout: false,\n });\n } else {\n tryFinish();\n }\n\n // Hide items that need to be hidden.\n if (itemsToHide.length) {\n this.hide(itemsToHide, {\n instant: isInstant,\n syncWithLayout: syncWithLayout,\n onFinish: tryFinish,\n layout: false,\n });\n } else {\n tryFinish();\n }\n\n // If there are any items to filter.\n if (itemsToShow.length || itemsToHide.length) {\n // Emit filter event.\n if (this._hasListeners(EVENT_FILTER)) {\n this._emit(EVENT_FILTER, itemsToShow.slice(0), itemsToHide.slice(0));\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n }\n\n return this;\n};\n\n/**\n * Sort items. There are three ways to sort the items. The first is simply by\n * providing a function as the comparer which works identically to native\n * array sort. Alternatively you can sort by the sort data you have provided\n * in the instance's options. Just provide the sort data key(s) as a string\n * (separated by space) and the items will be sorted based on the provided\n * sort data keys. Lastly you have the opportunity to provide a presorted\n * array of items which will be used to sync the internal items array in the\n * same order.\n *\n * @public\n * @param {(Function|String|Item[])} comparer\n * @param {Object} [options]\n * @param {Boolean} [options.descending=false]\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.sort = (function () {\n var sortComparer;\n var isDescending;\n var origItems;\n var indexMap;\n\n function defaultComparer(a, b) {\n var result = 0;\n var criteriaName;\n var criteriaOrder;\n var valA;\n var valB;\n\n // Loop through the list of sort criteria.\n for (var i = 0; i < sortComparer.length; i++) {\n // Get the criteria name, which should match an item's sort data key.\n criteriaName = sortComparer[i][0];\n criteriaOrder = sortComparer[i][1];\n\n // Get items' cached sort values for the criteria. If the item has no sort\n // data let's update the items sort data (this is a lazy load mechanism).\n valA = (a._sortData ? a : a._refreshSortData())._sortData[criteriaName];\n valB = (b._sortData ? b : b._refreshSortData())._sortData[criteriaName];\n\n // Sort the items in descending order if defined so explicitly. Otherwise\n // sort items in ascending order.\n if (criteriaOrder === 'desc' || (!criteriaOrder && isDescending)) {\n result = valB < valA ? -1 : valB > valA ? 1 : 0;\n } else {\n result = valA < valB ? -1 : valA > valB ? 1 : 0;\n }\n\n // If we have -1 or 1 as the return value, let's return it immediately.\n if (result) return result;\n }\n\n // If values are equal let's compare the item indices to make sure we\n // have a stable sort. Note that this is not necessary in evergreen browsers\n // because Array.sort() is nowadays stable. However, in order to guarantee\n // same results in older browsers we need this.\n if (!result) {\n if (!indexMap) indexMap = createIndexMap(origItems);\n result = isDescending ? compareIndexMap(indexMap, b, a) : compareIndexMap(indexMap, a, b);\n }\n return result;\n }\n\n function customComparer(a, b) {\n var result = isDescending ? -sortComparer(a, b) : sortComparer(a, b);\n if (!result) {\n if (!indexMap) indexMap = createIndexMap(origItems);\n result = isDescending ? compareIndexMap(indexMap, b, a) : compareIndexMap(indexMap, a, b);\n }\n return result;\n }\n\n return function (comparer, options) {\n if (this._isDestroyed || this._items.length < 2) return this;\n\n var items = this._items;\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n\n // Setup parent scope data.\n isDescending = !!opts.descending;\n origItems = items.slice(0);\n indexMap = null;\n\n // If function is provided do a native array sort.\n if (isFunction(comparer)) {\n sortComparer = comparer;\n items.sort(customComparer);\n }\n // Otherwise if we got a string, let's sort by the sort data as provided in\n // the instance's options.\n else if (typeof comparer === STRING_TYPE) {\n sortComparer = comparer\n .trim()\n .split(' ')\n .filter(function (val) {\n return val;\n })\n .map(function (val) {\n return val.split(':');\n });\n items.sort(defaultComparer);\n }\n // Otherwise if we got an array, let's assume it's a presorted array of the\n // items and order the items based on it. Here we blindly trust that the\n // presorted array consists of the same item instances as the current\n // `gird._items` array.\n else if (Array.isArray(comparer)) {\n items.length = 0;\n items.push.apply(items, comparer);\n }\n // Otherwise let's throw an error.\n else {\n sortComparer = isDescending = origItems = indexMap = null;\n throw new Error('Invalid comparer argument provided.');\n }\n\n // Emit sort event.\n if (this._hasListeners(EVENT_SORT)) {\n this._emit(EVENT_SORT, items.slice(0), origItems);\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n\n // Reset data (to avoid mem leaks).\n sortComparer = isDescending = origItems = indexMap = null;\n\n return this;\n };\n})();\n\n/**\n * Move item to another index or in place of another item.\n *\n * @public\n * @param {(HtmlElement|Number|Item)} item\n * @param {(HtmlElement|Number|Item)} position\n * @param {Object} [options]\n * @param {String} [options.action=\"move\"]\n * - Accepts either \"move\" or \"swap\".\n * - \"move\" moves the item in place of the other item.\n * - \"swap\" swaps the position of the items.\n * @param {(Boolean|Function|String)} [options.layout=true]\n * @returns {Grid}\n */\nGrid.prototype.move = function (item, position, options) {\n if (this._isDestroyed || this._items.length < 2) return this;\n\n var items = this._items;\n var opts = options || {};\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var isSwap = opts.action === ACTION_SWAP;\n var action = isSwap ? ACTION_SWAP : ACTION_MOVE;\n var fromItem = this.getItem(item);\n var toItem = this.getItem(position);\n var fromIndex;\n var toIndex;\n\n // Make sure the items exist and are not the same.\n if (fromItem && toItem && fromItem !== toItem) {\n // Get the indices of the items.\n fromIndex = items.indexOf(fromItem);\n toIndex = items.indexOf(toItem);\n\n // Do the move/swap.\n if (isSwap) {\n arraySwap(items, fromIndex, toIndex);\n } else {\n arrayMove(items, fromIndex, toIndex);\n }\n\n // Emit move event.\n if (this._hasListeners(EVENT_MOVE)) {\n this._emit(EVENT_MOVE, {\n item: fromItem,\n fromIndex: fromIndex,\n toIndex: toIndex,\n action: action,\n });\n }\n\n // If layout is needed.\n if (layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n }\n\n return this;\n};\n\n/**\n * Send item to another Grid instance.\n *\n * @public\n * @param {(HtmlElement|Number|Item)} item\n * @param {Grid} targetGrid\n * @param {(HtmlElement|Number|Item)} position\n * @param {Object} [options]\n * @param {HTMLElement} [options.appendTo=document.body]\n * @param {(Boolean|Function|String)} [options.layoutSender=true]\n * @param {(Boolean|Function|String)} [options.layoutReceiver=true]\n * @returns {Grid}\n */\nGrid.prototype.send = function (item, targetGrid, position, options) {\n if (this._isDestroyed || targetGrid._isDestroyed || this === targetGrid) return this;\n\n // Make sure we have a valid target item.\n item = this.getItem(item);\n if (!item) return this;\n\n var opts = options || {};\n var container = opts.appendTo || document.body;\n var layoutSender = opts.layoutSender ? opts.layoutSender : opts.layoutSender === undefined;\n var layoutReceiver = opts.layoutReceiver\n ? opts.layoutReceiver\n : opts.layoutReceiver === undefined;\n\n // Start the migration process.\n item._migrate.start(targetGrid, position, container);\n\n // If migration was started successfully and the item is active, let's layout\n // the grids.\n if (item._migrate._isActive && item._isActive) {\n if (layoutSender) {\n this.layout(\n layoutSender === INSTANT_LAYOUT,\n isFunction(layoutSender) ? layoutSender : undefined\n );\n }\n if (layoutReceiver) {\n targetGrid.layout(\n layoutReceiver === INSTANT_LAYOUT,\n isFunction(layoutReceiver) ? layoutReceiver : undefined\n );\n }\n }\n\n return this;\n};\n\n/**\n * Destroy the instance.\n *\n * @public\n * @param {Boolean} [removeElements=false]\n * @returns {Grid}\n */\nGrid.prototype.destroy = function (removeElements) {\n if (this._isDestroyed) return this;\n\n var container = this._element;\n var items = this._items.slice(0);\n var layoutStyles = (this._layout && this._layout.styles) || {};\n var i, prop;\n\n // Unbind window resize event listener.\n unbindLayoutOnResize(this);\n\n // Destroy items.\n for (i = 0; i < items.length; i++) items[i]._destroy(removeElements);\n this._items.length = 0;\n\n // Restore container.\n removeClass(container, this._settings.containerClass);\n for (prop in layoutStyles) container.style[prop] = '';\n\n // Emit destroy event and unbind all events.\n this._emit(EVENT_DESTROY);\n this._emitter.destroy();\n\n // Remove reference from the grid instances collection.\n delete GRID_INSTANCES[this._id];\n\n // Flag instance as destroyed.\n this._isDestroyed = true;\n\n return this;\n};\n\n/**\n * Private prototype methods\n * *************************\n */\n\n/**\n * Emit a grid event.\n *\n * @private\n * @param {String} event\n * @param {...*} [arg]\n */\nGrid.prototype._emit = function () {\n if (this._isDestroyed) return;\n this._emitter.emit.apply(this._emitter, arguments);\n};\n\n/**\n * Check if there are any events listeners for an event.\n *\n * @private\n * @param {String} event\n * @returns {Boolean}\n */\nGrid.prototype._hasListeners = function (event) {\n if (this._isDestroyed) return false;\n return this._emitter.countListeners(event) > 0;\n};\n\n/**\n * Update container's width, height and offsets.\n *\n * @private\n */\nGrid.prototype._updateBoundingRect = function () {\n var element = this._element;\n var rect = element.getBoundingClientRect();\n this._width = rect.width;\n this._height = rect.height;\n this._left = rect.left;\n this._top = rect.top;\n this._right = rect.right;\n this._bottom = rect.bottom;\n};\n\n/**\n * Update container's border sizes.\n *\n * @private\n * @param {Boolean} left\n * @param {Boolean} right\n * @param {Boolean} top\n * @param {Boolean} bottom\n */\nGrid.prototype._updateBorders = function (left, right, top, bottom) {\n var element = this._element;\n if (left) this._borderLeft = getStyleAsFloat(element, 'border-left-width');\n if (right) this._borderRight = getStyleAsFloat(element, 'border-right-width');\n if (top) this._borderTop = getStyleAsFloat(element, 'border-top-width');\n if (bottom) this._borderBottom = getStyleAsFloat(element, 'border-bottom-width');\n};\n\n/**\n * Refresh all of container's internal dimensions and offsets.\n *\n * @private\n */\nGrid.prototype._refreshDimensions = function () {\n this._updateBoundingRect();\n this._updateBorders(1, 1, 1, 1);\n this._boxSizing = getStyle(this._element, 'box-sizing');\n};\n\n/**\n * Calculate and apply item positions.\n *\n * @private\n * @param {Object} layout\n */\nGrid.prototype._onLayoutDataReceived = (function () {\n var itemsToLayout = [];\n return function (layout) {\n if (this._isDestroyed || !this._nextLayoutData || this._nextLayoutData.id !== layout.id) return;\n\n var grid = this;\n var instant = this._nextLayoutData.instant;\n var onFinish = this._nextLayoutData.onFinish;\n var numItems = layout.items.length;\n var counter = numItems;\n var item;\n var left;\n var top;\n var i;\n\n // Reset next layout data.\n this._nextLayoutData = null;\n\n if (!this._isLayoutFinished && this._hasListeners(EVENT_LAYOUT_ABORT)) {\n this._emit(EVENT_LAYOUT_ABORT, this._layout.items.slice(0));\n }\n\n // Update the layout reference.\n this._layout = layout;\n\n // Update the item positions and collect all items that need to be laid\n // out. It is critical that we update the item position _before_ the\n // layoutStart event as the new data might be needed in the callback.\n itemsToLayout.length = 0;\n for (i = 0; i < numItems; i++) {\n item = layout.items[i];\n\n // Make sure we have a matching item.\n if (!item) {\n --counter;\n continue;\n }\n\n // Get the item's new left and top values.\n left = layout.slots[i * 2];\n top = layout.slots[i * 2 + 1];\n\n // Let's skip the layout process if we can. Possibly avoids a lot of DOM\n // operations which saves us some CPU cycles.\n if (item._canSkipLayout(left, top)) {\n --counter;\n continue;\n }\n\n // Update the item's position.\n item._left = left;\n item._top = top;\n\n // Only active non-dragged items need to be moved.\n if (item.isActive() && !item.isDragging()) {\n itemsToLayout.push(item);\n } else {\n --counter;\n }\n }\n\n // Set layout styles to the grid element.\n if (layout.styles) {\n setStyles(this._element, layout.styles);\n }\n\n // layoutStart event is intentionally emitted after the container element's\n // dimensions are set, because otherwise there would be no hook for reacting\n // to container dimension changes.\n if (this._hasListeners(EVENT_LAYOUT_START)) {\n this._emit(EVENT_LAYOUT_START, layout.items.slice(0), instant === true);\n // Let's make sure that the current layout process has not been overridden\n // in the layoutStart event, and if so, let's stop processing the aborted\n // layout.\n if (this._layout.id !== layout.id) return;\n }\n\n var tryFinish = function () {\n if (--counter > 0) return;\n\n var hasLayoutChanged = grid._layout.id !== layout.id;\n var callback = isFunction(instant) ? instant : onFinish;\n\n if (!hasLayoutChanged) {\n grid._isLayoutFinished = true;\n }\n\n if (isFunction(callback)) {\n callback(layout.items.slice(0), hasLayoutChanged);\n }\n\n if (!hasLayoutChanged && grid._hasListeners(EVENT_LAYOUT_END)) {\n grid._emit(EVENT_LAYOUT_END, layout.items.slice(0));\n }\n };\n\n if (!itemsToLayout.length) {\n tryFinish();\n return this;\n }\n\n this._isLayoutFinished = false;\n\n for (i = 0; i < itemsToLayout.length; i++) {\n if (this._layout.id !== layout.id) break;\n itemsToLayout[i]._layout.start(instant === true, tryFinish);\n }\n\n if (this._layout.id === layout.id) {\n itemsToLayout.length = 0;\n }\n\n return this;\n };\n})();\n\n/**\n * Show or hide Grid instance's items.\n *\n * @private\n * @param {Item[]} items\n * @param {Boolean} toVisible\n * @param {Object} [options]\n * @param {Boolean} [options.instant=false]\n * @param {Boolean} [options.syncWithLayout=true]\n * @param {Function} [options.onFinish]\n * @param {(Boolean|Function|String)} [options.layout=true]\n */\nGrid.prototype._setItemsVisibility = function (items, toVisible, options) {\n var grid = this;\n var targetItems = items.slice(0);\n var opts = options || {};\n var isInstant = opts.instant === true;\n var callback = opts.onFinish;\n var layout = opts.layout ? opts.layout : opts.layout === undefined;\n var counter = targetItems.length;\n var startEvent = toVisible ? EVENT_SHOW_START : EVENT_HIDE_START;\n var endEvent = toVisible ? EVENT_SHOW_END : EVENT_HIDE_END;\n var method = toVisible ? 'show' : 'hide';\n var needsLayout = false;\n var completedItems = [];\n var hiddenItems = [];\n var item;\n var i;\n\n // If there are no items call the callback, but don't emit any events.\n if (!counter) {\n if (isFunction(callback)) callback(targetItems);\n return;\n }\n\n // Prepare the items.\n for (i = 0; i < targetItems.length; i++) {\n item = targetItems[i];\n\n // If inactive item is shown or active item is hidden we need to do\n // layout.\n if ((toVisible && !item._isActive) || (!toVisible && item._isActive)) {\n needsLayout = true;\n }\n\n // If inactive item is shown we also need to do a little hack to make the\n // item not animate it's next positioning (layout).\n item._layout._skipNextAnimation = !!(toVisible && !item._isActive);\n\n // If a hidden item is being shown we need to refresh the item's\n // dimensions.\n if (toVisible && item._visibility._isHidden) {\n hiddenItems.push(item);\n }\n\n // Add item to layout or remove it from layout.\n if (toVisible) {\n item._addToLayout();\n } else {\n item._removeFromLayout();\n }\n }\n\n // Force refresh the dimensions of all hidden items.\n if (hiddenItems.length) {\n this.refreshItems(hiddenItems, true);\n hiddenItems.length = 0;\n }\n\n // Show the items in sync with the next layout.\n function triggerVisibilityChange() {\n if (needsLayout && opts.syncWithLayout !== false) {\n grid.off(EVENT_LAYOUT_START, triggerVisibilityChange);\n }\n\n if (grid._hasListeners(startEvent)) {\n grid._emit(startEvent, targetItems.slice(0));\n }\n\n for (i = 0; i < targetItems.length; i++) {\n // Make sure the item is still in the original grid. There is a chance\n // that the item starts migrating before tiggerVisibilityChange is called.\n if (targetItems[i]._gridId !== grid._id) {\n if (--counter < 1) {\n if (isFunction(callback)) callback(completedItems.slice(0));\n if (grid._hasListeners(endEvent)) grid._emit(endEvent, completedItems.slice(0));\n }\n continue;\n }\n\n targetItems[i]._visibility[method](isInstant, function (interrupted, item) {\n // If the current item's animation was not interrupted add it to the\n // completedItems array.\n if (!interrupted) completedItems.push(item);\n\n // If all items have finished their animations call the callback\n // and emit showEnd/hideEnd event.\n if (--counter < 1) {\n if (isFunction(callback)) callback(completedItems.slice(0));\n if (grid._hasListeners(endEvent)) grid._emit(endEvent, completedItems.slice(0));\n }\n });\n }\n }\n\n // Trigger the visibility change, either async with layout or instantly.\n if (needsLayout && opts.syncWithLayout !== false) {\n this.on(EVENT_LAYOUT_START, triggerVisibilityChange);\n } else {\n triggerVisibilityChange();\n }\n\n // Trigger layout if needed.\n if (needsLayout && layout) {\n this.layout(layout === INSTANT_LAYOUT, isFunction(layout) ? layout : undefined);\n }\n};\n\n/**\n * Private helpers\n * ***************\n */\n\n/**\n * Merge default settings with user settings. The returned object is a new\n * object with merged values. The merging is a deep merge meaning that all\n * objects and arrays within the provided settings objects will be also merged\n * so that modifying the values of the settings object will have no effect on\n * the returned object.\n *\n * @param {Object} defaultSettings\n * @param {Object} [userSettings]\n * @returns {Object} Returns a new object.\n */\nfunction mergeSettings(defaultSettings, userSettings) {\n // Create a fresh copy of default settings.\n var settings = mergeObjects({}, defaultSettings);\n\n // Merge user settings to default settings.\n if (userSettings) {\n settings = mergeObjects(settings, userSettings);\n }\n\n // Handle visible/hidden styles manually so that the whole object is\n // overridden instead of the props.\n\n if (userSettings && userSettings.visibleStyles) {\n settings.visibleStyles = userSettings.visibleStyles;\n } else if (defaultSettings && defaultSettings.visibleStyles) {\n settings.visibleStyles = defaultSettings.visibleStyles;\n }\n\n if (userSettings && userSettings.hiddenStyles) {\n settings.hiddenStyles = userSettings.hiddenStyles;\n } else if (defaultSettings && defaultSettings.hiddenStyles) {\n settings.hiddenStyles = defaultSettings.hiddenStyles;\n }\n\n return settings;\n}\n\n/**\n * Merge two objects recursively (deep merge). The source object's properties\n * are merged to the target object.\n *\n * @param {Object} target\n * - The target object.\n * @param {Object} source\n * - The source object.\n * @returns {Object} Returns the target object.\n */\nfunction mergeObjects(target, source) {\n var sourceKeys = Object.keys(source);\n var length = sourceKeys.length;\n var isSourceObject;\n var propName;\n var i;\n\n for (i = 0; i < length; i++) {\n propName = sourceKeys[i];\n isSourceObject = isPlainObject(source[propName]);\n\n // If target and source values are both objects, merge the objects and\n // assign the merged value to the target property.\n if (isPlainObject(target[propName]) && isSourceObject) {\n target[propName] = mergeObjects(mergeObjects({}, target[propName]), source[propName]);\n continue;\n }\n\n // If source's value is object and target's is not let's clone the object as\n // the target's value.\n if (isSourceObject) {\n target[propName] = mergeObjects({}, source[propName]);\n continue;\n }\n\n // If source's value is an array let's clone the array as the target's\n // value.\n if (Array.isArray(source[propName])) {\n target[propName] = source[propName].slice(0);\n continue;\n }\n\n // In all other cases let's just directly assign the source's value as the\n // target's value.\n target[propName] = source[propName];\n }\n\n return target;\n}\n\n/**\n * Collect and return initial items for grid.\n *\n * @param {HTMLElement} gridElement\n * @param {?(HTMLElement[]|NodeList|HtmlCollection|String)} elements\n * @returns {(HTMLElement[]|NodeList|HtmlCollection)}\n */\nfunction getInitialGridElements(gridElement, elements) {\n // If we have a wildcard selector let's return all the children.\n if (elements === '*') {\n return gridElement.children;\n }\n\n // If we have some more specific selector, let's filter the elements.\n if (typeof elements === STRING_TYPE) {\n var result = [];\n var children = gridElement.children;\n for (var i = 0; i < children.length; i++) {\n if (elementMatches(children[i], elements)) {\n result.push(children[i]);\n }\n }\n return result;\n }\n\n // If we have an array of elements or a node list.\n if (Array.isArray(elements) || isNodeList(elements)) {\n return elements;\n }\n\n // Otherwise just return an empty array.\n return [];\n}\n\n/**\n * Bind grid's resize handler to window.\n *\n * @param {Grid} grid\n * @param {(Number|Boolean)} delay\n */\nfunction bindLayoutOnResize(grid, delay) {\n if (typeof delay !== NUMBER_TYPE) {\n delay = delay === true ? 0 : -1;\n }\n\n if (delay >= 0) {\n grid._resizeHandler = debounce(function () {\n grid.refreshItems().layout();\n }, delay);\n\n window.addEventListener('resize', grid._resizeHandler);\n }\n}\n\n/**\n * Unbind grid's resize handler from window.\n *\n * @param {Grid} grid\n */\nfunction unbindLayoutOnResize(grid) {\n if (grid._resizeHandler) {\n grid._resizeHandler(true);\n window.removeEventListener('resize', grid._resizeHandler);\n grid._resizeHandler = null;\n }\n}\n\n/**\n * Normalize style declaration object, returns a normalized (new) styles object\n * (prefixed properties and invalid properties removed).\n *\n * @param {Object} styles\n * @returns {Object}\n */\nfunction normalizeStyles(styles) {\n var normalized = {};\n var docElemStyle = document.documentElement.style;\n var prop, prefixedProp;\n\n // Normalize visible styles (prefix and remove invalid).\n for (prop in styles) {\n if (!styles[prop]) continue;\n prefixedProp = getPrefixedPropName(docElemStyle, prop);\n if (!prefixedProp) continue;\n normalized[prefixedProp] = styles[prop];\n }\n\n return normalized;\n}\n\n/**\n * Create index map from items.\n *\n * @param {Item[]} items\n * @returns {Object}\n */\nfunction createIndexMap(items) {\n var result = {};\n for (var i = 0; i < items.length; i++) {\n result[items[i]._id] = i;\n }\n return result;\n}\n\n/**\n * Sort comparer function for items' index map.\n *\n * @param {Object} indexMap\n * @param {Item} itemA\n * @param {Item} itemB\n * @returns {Number}\n */\nfunction compareIndexMap(indexMap, itemA, itemB) {\n var indexA = indexMap[itemA._id];\n var indexB = indexMap[itemB._id];\n return indexA - indexB;\n}\n\nexport default Grid;\n","import { getPeerID, hashJsonObject, getShortPeerID } from './Utils'\n\nimport * as Y from 'yjs'\nimport { TrysteroProvider } from '../../node_modules/y-trystero/src/TrysteroProvider'\nimport { joinRoom } from '../../node_modules/trystero/src/torrent'\n\nimport { selfId } from 'trystero'\n\nfunction LOG(...args: any[]) {\n console.log(\n '%c🛸 Connection >>>',\n 'background-color: #004400; font-weight: bold;',\n ...args\n )\n}\n\nconst trackersAnnounceURLs = [\n 'wss://tracker.openwebtorrent.com',\n 'wss://tracker.webtorrent.dev',\n 'wss://tracker.files.fm:7073/announce',\n 'wss://tracker.openwebtorrent.com:443/announce',\n 'wss://tracker.files.fm:7073/announce',\n]\n\nconst LOBBY = 'Lobby'\nconst STATION = 'Station'\n\nlet heartbeatID\n\nexport default class Peer {\n private provider: TrysteroProvider\n private tx: any\n private rx: any\n private sync: boolean = false\n\n private y: {\n doc: Y.Doc\n chat: Y.Array\n rooms: Y.Map\n users: Y.Map\n setup: Y.Map\n }\n\n private role: 'student' | 'teacher' | 'station' = 'student'\n\n private lab: {\n id: string\n data: any\n timestamp: number\n hash: string | null\n }\n\n private connected: boolean = false\n\n private callback: {} = {}\n private callbackUpdate: {} = {}\n\n private peerID: string\n\n constructor(\n setup: { id: string; data: any; timestamp: number; hash: string | null },\n stationID?: string,\n password?: string\n ) {\n const doc = new Y.Doc()\n\n this.y = {\n doc: doc,\n setup: doc.getMap('setup'),\n users: doc.getMap('users'),\n rooms: doc.getMap('rooms'),\n chat: doc.getArray('chat'),\n }\n\n this.lab = setup\n\n this.peerID = getPeerID()\n if (stationID) {\n this.role = 'station'\n this.peerID = STATION + ' ' + stationID\n }\n\n this.provider = new TrysteroProvider(\n this.lab.id + (this.lab.hash || ''),\n this.y.doc,\n {\n appId: process.env.APP_ID || 'edry-Lite', // optional, but recommended\n password: password,\n joinRoom: joinRoom,\n // {\"rtcConfig\":{\"config\":{\"iceServers\":[{\"urls\":\"....\"},{\"urls\":\"turn:turn....\",\"username\":\"XXXX\",\"credential\":\"XXXXXX\"}]}}}\n peerOpts: JSON.parse(process.env.TRYSTERO_PEER_CONFIG || '{}'),\n }\n )\n\n this.initSetup()\n\n this.provider.on('status', (event) => {\n LOG('status', event)\n })\n\n this.provider.on('synced', (event) => {\n console.log('synced---------------------------------', event)\n this.connected = true\n\n this.provider.room?.onPeerLeave((id: string) => {\n this.removePeers([id])\n })\n\n this.initPubSub()\n\n this.rx((msg: any, peerId: string) => {\n this.update('message', msg)\n })\n\n this.y.setup.observe((event) => {\n const timestamp = this.y.setup.get('timestamp')\n\n if (this.lab.timestamp !== timestamp) {\n this.initSetup()\n }\n })\n\n LOG('synced', event, this.y.doc)\n this.sync = true\n this.update('connected')\n })\n }\n\n user() {\n return this.y.users.get(this.peerID)\n }\n\n isStation() {\n return this.role === 'station'\n }\n\n removePeers(selfIds: string[]) {\n const peers = this.y.users.toJSON()\n\n this.y.doc.transact(() => {\n for (const id in peers) {\n if (selfIds.includes(peers[id].selfId)) {\n this.y.users.delete(id)\n\n if (peers[id].role === 'station') {\n this.y.rooms.delete(id)\n }\n\n break\n }\n }\n })\n }\n\n initPubSub() {\n LOG('initializing pubsub ...')\n if (this.provider.room) {\n const [tx, rx] = this.provider.room.trysteroRoom.makeAction('p2p')\n this.tx = tx\n this.rx = rx\n\n LOG('... done')\n } else {\n LOG('... failed, retrying in 1s')\n setTimeout(() => {\n this.initPubSub()\n }, 1000)\n }\n }\n\n initSetup() {\n const timestamp: number = (this.y.setup.get('timestamp') as number) || 0\n const data = this.y.setup.get('config')\n\n // If my setup is older than the current setup\n if (this.lab.timestamp < timestamp) {\n LOG('receiving initial lab configuration')\n\n this.lab.data = data\n this.lab.timestamp = timestamp\n this.update('setup')\n }\n // if the received setup is not up to date\n else if (this.lab.timestamp !== timestamp && this.lab.timestamp > 0) {\n LOG('received outdated lab configuration, writing changes back')\n this.y.doc.transact(() => {\n this.y.setup.set('config', this.lab.data)\n this.y.setup.set('timestamp', this.lab.timestamp)\n })\n }\n\n // equal setups will be ignored\n }\n\n initUser(\n role: 'student' | 'teacher' | 'station',\n withObserver: boolean = true\n ) {\n this.role = role\n\n if (heartbeatID) {\n clearInterval(heartbeatID)\n heartbeatID = null\n }\n\n const userSettings = new Y.Map()\n userSettings.set('displayName', getShortPeerID(this.peerID))\n userSettings.set('room', this.isStation() ? this.peerID : LOBBY)\n userSettings.set('role', this.role)\n userSettings.set('dateJoined', Date.now())\n userSettings.set('timestamp', Date.now())\n userSettings.set('selfId', selfId)\n userSettings.set('handRaised', false)\n userSettings.set('connections', [{ id: '', target: {} }])\n this.y.users.set(this.peerID, userSettings)\n\n heartbeatID = setInterval(() => {\n if (this.y.users.has(this.peerID)) {\n const timeNow = Date.now()\n this.user().set('timestamp', timeNow)\n\n const users = this.y.users.toJSON()\n\n let ids: string[] = []\n for (const id in users) {\n if (users[id].timestamp < timeNow - 5000) {\n ids.push(users[id].selfId)\n }\n }\n\n if (ids.length > 0) {\n this.removePeers(ids)\n }\n } else {\n LOG('user not found', this.peerID)\n }\n }, 1000)\n\n if (withObserver) {\n this.y.users.observeDeep((events) => {\n const allEventsHaveOnlyTimestamp = events.every((event) => {\n return (\n event.changes.keys &&\n event.changes.keys.size === 1 &&\n event.changes.keys.has('timestamp')\n )\n })\n\n if (!allEventsHaveOnlyTimestamp) {\n this.update('room')\n }\n })\n }\n }\n\n initRooms() {\n this.y.doc.transact(() => {\n if (this.y.rooms.size === 0) {\n LOG('initializing rooms')\n\n this.addRoom(LOBBY)\n\n const defaultRooms = this.lab.data.meta.defaultNumberOfRooms\n\n if (defaultRooms) {\n for (let i = 1; i <= defaultRooms; i++) {\n this.addRoom('Room ' + i)\n }\n }\n }\n if (this.isStation()) {\n this.addRoom(this.peerID)\n }\n })\n\n this.y.rooms.observeDeep((events) => {\n // Handle room deletions from root-level changes\n events.forEach((event) => {\n if (event.target === this.y.rooms) {\n // This is a root-level change (like deleting a room)\n const keysChanged = Array.from(event.changes.keys.keys())\n\n keysChanged.forEach((key) => {\n const change = event.changes.keys.get(key)\n if (change?.action === 'delete') {\n // If my room is deleted, move to lobby\n if (this.user() && this.user().get('room') === key) {\n LOG('current room was deleted, moving to lobby')\n this.user().set('room', LOBBY)\n }\n }\n })\n }\n })\n\n // Only trigger one update per batch of changes\n this.update('room')\n })\n }\n\n initChat() {\n this.y.chat.observe((event) => {\n this.update('chat')\n })\n }\n\n newSetup(config: { id: string; data: any; timestamp: number }) {\n if (this.lab.hash) {\n const self = this\n hashJsonObject(config.data).then((hash) => {\n if (hash === self.lab.hash && self.lab.timestamp < config.timestamp) {\n self.lab.id = config.id\n self.lab.data = config.data\n self.lab.timestamp = config.timestamp\n\n self.initSetup()\n } else {\n LOG('updating failed, hash mismatch')\n }\n })\n } else {\n if (this.lab.timestamp < config.timestamp) {\n this.lab.id = config.id\n this.lab.data = config.data\n this.lab.timestamp = config.timestamp\n\n this.initSetup()\n }\n }\n }\n\n async update(\n event: 'setup' | 'room' | 'message' | 'connected' | 'chat',\n message?: any\n ) {\n const callback = this.callback[event]\n\n switch (event) {\n case 'message': {\n if (callback) {\n message.date = Date.now()\n callback(message)\n }\n break\n }\n case 'setup': {\n if (callback) {\n callback(this.lab)\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n case 'room': {\n //this.peerUpdate()\n\n if (callback && this.sync) {\n callback(await this.toJSON())\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n\n case 'chat': {\n if (callback) {\n callback({\n messages: this.y.doc.getArray('chat').toArray(),\n truncated: false,\n })\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n\n case 'connected': {\n if (callback) {\n callback(this.connected)\n this.callbackUpdate[event] = false\n } else {\n this.callbackUpdate[event] = true\n }\n break\n }\n }\n }\n\n on(event: 'setup' | 'room' | 'connected', callback: any) {\n if (callback) {\n this.callback[event] = callback\n\n if (this.callbackUpdate[event]) {\n this.update(event)\n }\n } else if (this.callback[event]) {\n delete this.callback[event]\n }\n }\n\n broadcast(room: string, msg: any) {\n if (!this.connected) {\n return\n }\n\n const users = this.y.users.toJSON()\n for (const id in users) {\n if (users[id].room === room) {\n try {\n this.tx(msg, users[id].selfId)\n } catch (e) {\n LOG('warning', e.message)\n }\n }\n }\n this.update('message', msg)\n }\n\n stop() {\n LOG('stopping peer')\n clearInterval(heartbeatID)\n heartbeatID = null\n this.y.users.delete(this.peerID)\n\n this.provider.disconnect()\n this.provider.destroy()\n\n this.callback = {}\n this.callbackUpdate = {}\n }\n\n addRoom(name?: string) {\n if (name && !this.y.rooms.has(name)) {\n const room = new Y.Map()\n this.y.rooms.set(name, room)\n } else if (!name) {\n const roomIDs: number[] = Object.keys(this.y.rooms.toJSON())\n .filter((e) => e.match(/Room/))\n .map((e) => e.split(' ')[1])\n .map((e) => parseInt(e))\n .sort((a, b) => a - b)\n\n let newRoomID = 1\n for (const id of roomIDs) {\n if (id !== newRoomID) {\n break\n }\n newRoomID++\n }\n\n this.addRoom('Room ' + newRoomID)\n }\n }\n\n gotoRoom(room: string) {\n this.user().set('room', room)\n this.user().set('timestamp', Date.now())\n }\n\n sendMessage(message: string) {\n this.y.chat.push([\n {\n timestamp: Date.now(),\n user: getShortPeerID(this.peerID),\n msg: message,\n },\n ])\n }\n\n updateState(data: string) {\n const decodedUint8Array = Uint8Array.from(atob(data), (c) =>\n c.charCodeAt(0)\n )\n this.y.doc.transact(\n () => {\n Y.applyUpdate(this.y.doc, decodedUint8Array)\n },\n { transactionId: 'intern' }\n )\n }\n\n async join(role: 'student' | 'teacher' | 'station') {\n this.initUser(role)\n this.initRooms()\n this.initChat()\n\n this.update('room')\n }\n\n async toJSON() {\n // check if station and add station room exist\n if (this.isStation() && !this.y.rooms.has(this.peerID)) {\n this.addRoom(this.peerID)\n }\n\n if (!this.y.users.has(this.peerID)) {\n await this.awaitTransact(() => {\n this.initUser(this.role, false)\n })\n }\n\n console.warn('SSSSSSSSSSSSSSSSSSSSSSSSSSSS', this.y.doc.toJSON())\n\n return {\n rooms: this.y.rooms.toJSON(),\n users: this.y.users.toJSON(),\n doc: this.y.doc,\n }\n }\n\n awaitTransact(transactFn) {\n return new Promise((resolve) => {\n // We'll use this to track when the transaction is done\n let isTransactionDone = false\n\n const observer = () => {\n if (isTransactionDone) {\n this.y.doc.off('afterTransaction', observer)\n resolve()\n }\n }\n\n this.y.doc.on('afterTransaction', observer)\n\n this.y.doc.transact(() => {\n try {\n transactFn()\n } catch (e) {\n console.error('Error in transaction', e)\n }\n isTransactionDone = true\n })\n })\n }\n}\n","import * as map from 'lib0/map'\nimport * as math from 'lib0/math'\nimport { ObservableV2 } from 'lib0/observable'\nimport * as promise from 'lib0/promise'\nimport * as random from 'lib0/random'\nimport * as Y from 'yjs' // eslint-disable-line\nimport { awarenessProtocol } from '../protocols'\nimport * as cryptoutils from './cryptoutils'\nimport { Room } from './Room'\n//import { SignalingConn } from './archive/SignalingConn'\nimport { emitStatus } from './messagesSend'\nimport { rooms } from './connectionMaps'\nimport * as error from 'lib0/error'\nimport { joinRoom as joinRoomBittorrent } from 'trystero'\n\ntype TrysteroProviderEvents = {\n status: (arg: { connected: boolean }) => void\n synced: (arg: { synced: boolean }) => void\n peers: (arg: {\n added: string[]\n removed: string[]\n trysteroPeers: string[]\n bcPeers: string[]\n }) => void\n}\n\ntype ProviderOptions = {\n password?: string\n awareness?: awarenessProtocol.Awareness\n filterBcConns?: boolean\n peerOpts?: any\n appId?: string\n maxConns?: number\n joinRoom?: typeof joinRoom\n}\n\nexport class TrysteroProvider extends ObservableV2 {\n awareness: awarenessProtocol.Awareness\n doc: Y.Doc\n filterBcConns: boolean\n shouldConnect: boolean\n maxConns: number\n peerOpts: any\n room: Room | null\n roomName: string\n appId: string\n password: string\n key: PromiseLike\n joinRoom: typeof joinRoomBittorrent\n\n constructor(\n roomName: string,\n doc: Y.Doc,\n {\n appId = 'yjs-trystero',\n password = 'default',\n awareness = new awarenessProtocol.Awareness(doc),\n maxConns = 20 + math.floor(random.rand() * 15), // the random factor reduces the chance that n clients form a cluster\n filterBcConns = true,\n peerOpts = {}, // simple-peer options. See https://github.com/feross/simple-peer#peer--new-peeropts\n joinRoom = joinRoomBittorrent,\n } = {} as ProviderOptions\n ) {\n super()\n // set room info\n this.appId = appId\n roomName = `${appId}-${roomName}`\n this.roomName = roomName\n this.password = password\n this.key = password\n ? cryptoutils.deriveKey(password, roomName)\n : promise.resolve(null)\n\n // yjs objects\n this.doc = doc\n this.awareness = awareness\n\n // preferences\n this.filterBcConns = filterBcConns\n this.shouldConnect = false\n this.maxConns = maxConns\n this.peerOpts = peerOpts\n this.joinRoom = joinRoom\n\n // create the room\n this.room = null\n this.key.then((key) => {\n // check if room already exists\n if (rooms.has(roomName)) {\n throw error.create(\n `A Yjs Doc connected to room \"${roomName}\" already exists!`\n )\n }\n // create the room\n this.room = new Room(doc, this, roomName, key)\n // add room to rooms map\n rooms.set(roomName, this.room)\n\n // connect or disconnect room\n if (this.shouldConnect) {\n this.room.connect()\n } else {\n this.room.disconnect()\n }\n emitStatus(this)\n })\n\n // connect\n this.connect()\n\n // set up destroy handler\n this.destroy = this.destroy.bind(this)\n doc.on('destroy', this.destroy)\n }\n\n // get connected status\n get connected(): boolean {\n return this.room !== null && this.shouldConnect\n }\n\n // connect to the room\n connect() {\n this.shouldConnect = true\n if (this.room) {\n this.room.connect()\n emitStatus(this)\n }\n }\n\n // disconnect from the room\n disconnect() {\n this.shouldConnect = false\n if (this.room) {\n this.room.disconnect()\n emitStatus(this)\n }\n }\n\n // destroy the room\n destroy() {\n this.doc.off('destroy', this.destroy)\n // need to wait for key before deleting room\n this.key.then(() => {\n this.room.destroy()\n rooms.delete(this.roomName)\n })\n super.destroy()\n }\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n * @experimental\n *\n * This is basically a (better typed) duplicate of Observable, which will replace Observable in the\n * next release.\n *\n * @template {{[key in keyof EVENTS]: function(...any):void}} EVENTS\n */\nexport class ObservableV2 {\n constructor () {\n /**\n * Some desc.\n * @type {Map>}\n */\n this._observers = map.create()\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, /** @type {string} */ (name), set.create).add(f)\n return f\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, /** @type {any} */ (_f))\n f(...args)\n }\n this.on(name, /** @type {any} */ (_f))\n }\n\n /**\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name\n * @param {EVENTS[NAME]} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @template {keyof EVENTS & string} NAME\n * @param {NAME} name The event name.\n * @param {Parameters} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n\n/* c8 ignore start */\n/**\n * Handles named events.\n *\n * @deprecated\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n/* c8 ignore end */\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template K,V\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template {Map} MAP\n * @template {MAP extends Map ? function():V : unknown} CF\n * @param {MAP} map\n * @param {MAP extends Map ? K : unknown} key\n * @param {CF} createT\n * @return {ReturnType}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set =>\n set.values().next().value ?? undefined\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => new Set(entries)\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\nimport * as set from './set.js'\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {ArrayLike} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n * @template {ArrayLike} ARR\n *\n * @param {ARR} arr\n * @param {function(ITEM, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (!f(arr[i], i, arr)) {\n return false\n }\n }\n return true\n}\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @template {ArrayLike} ARR\n * @param {ARR} arr\n * @param {function(S, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (f(arr[i], i, arr)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @template ELEM\n *\n * @param {ArrayLike} a\n * @param {ArrayLike} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => fold(arr, /** @type {Array} */ ([]), (acc, val) => acc.concat(val))\n\n/**\n * @template T\n * @param {number} len\n * @param {function(number, Array):T} f\n * @return {Array}\n */\nexport const unfold = (len, f) => {\n const array = new Array(len)\n for (let i = 0; i < len; i++) {\n array[i] = f(i, array)\n }\n return array\n}\n\n/**\n * @template T\n * @template RESULT\n * @param {Array} arr\n * @param {RESULT} seed\n * @param {function(RESULT, T, number):RESULT} folder\n */\nexport const fold = (arr, seed, folder) => arr.reduce(folder, seed)\n\nexport const isArray = Array.isArray\n\n/**\n * @template T\n * @param {Array} arr\n * @return {Array}\n */\nexport const unique = arr => from(set.from(arr))\n\n/**\n * @template T\n * @template M\n * @param {ArrayLike} arr\n * @param {function(T):M} mapper\n * @return {Array}\n */\nexport const uniqueBy = (arr, mapper) => {\n /**\n * @type {Set}\n */\n const happened = set.create()\n /**\n * @type {Array}\n */\n const result = []\n for (let i = 0; i < arr.length; i++) {\n const el = arr[i]\n const mapped = mapper(el)\n if (!happened.has(mapped)) {\n happened.add(mapped)\n result.push(el)\n }\n }\n return result\n}\n\n/**\n * @template {ArrayLike} ARR\n * @template {function(ARR extends ArrayLike ? T : never, number, ARR):any} MAPPER\n * @param {ARR} arr\n * @param {MAPPER} mapper\n * @return {Array}\n */\nexport const map = (arr, mapper) => {\n /**\n * @type {Array}\n */\n const res = Array(arr.length)\n for (let i = 0; i < arr.length; i++) {\n res[i] = mapper(/** @type {any} */ (arr[i]), i, /** @type {any} */ (arr))\n }\n return /** @type {any} */ (res)\n}\n","/**\n * Utility helpers to work with promises.\n *\n * @module promise\n */\n\nimport * as time from './time.js'\n\n/**\n * @template T\n * @callback PromiseResolve\n * @param {T|PromiseLike} [result]\n */\n\n/**\n * @template T\n * @param {function(PromiseResolve,function(Error):void):any} f\n * @return {Promise}\n */\nexport const create = f => /** @type {Promise} */ (new Promise(f))\n\n/**\n * @param {function(function():void,function(Error):void):void} f\n * @return {Promise}\n */\nexport const createEmpty = f => new Promise(f)\n\n/**\n * `Promise.all` wait for all promises in the array to resolve and return the result\n * @template {unknown[] | []} PS\n *\n * @param {PS} ps\n * @return {Promise<{ -readonly [P in keyof PS]: Awaited }>}\n */\nexport const all = Promise.all.bind(Promise)\n\n/**\n * @param {Error} [reason]\n * @return {Promise}\n */\nexport const reject = reason => Promise.reject(reason)\n\n/**\n * @template T\n * @param {T|void} res\n * @return {Promise}\n */\nexport const resolve = res => Promise.resolve(res)\n\n/**\n * @template T\n * @param {T} res\n * @return {Promise}\n */\nexport const resolveWith = res => Promise.resolve(res)\n\n/**\n * @todo Next version, reorder parameters: check, [timeout, [intervalResolution]]\n * @deprecated use untilAsync instead\n *\n * @param {number} timeout\n * @param {function():boolean} check\n * @param {number} [intervalResolution]\n * @return {Promise}\n */\nexport const until = (timeout, check, intervalResolution = 10) => create((resolve, reject) => {\n const startTime = time.getUnixTime()\n const hasTimeout = timeout > 0\n const untilInterval = () => {\n if (check()) {\n clearInterval(intervalHandle)\n resolve()\n } else if (hasTimeout) {\n /* c8 ignore else */\n if (time.getUnixTime() - startTime > timeout) {\n clearInterval(intervalHandle)\n reject(new Error('Timeout'))\n }\n }\n }\n const intervalHandle = setInterval(untilInterval, intervalResolution)\n})\n\n/**\n * @param {()=>Promise|boolean} check\n * @param {number} timeout\n * @param {number} intervalResolution\n * @return {Promise}\n */\nexport const untilAsync = async (check, timeout = 0, intervalResolution = 10) => {\n const startTime = time.getUnixTime()\n const noTimeout = timeout <= 0\n // eslint-disable-next-line no-unmodified-loop-condition\n while (noTimeout || time.getUnixTime() - startTime <= timeout) {\n if (await check()) return\n await wait(intervalResolution)\n }\n throw new Error('Timeout')\n}\n\n/**\n * @param {number} timeout\n * @return {Promise}\n */\nexport const wait = timeout => create((resolve, _reject) => setTimeout(resolve, timeout))\n\n/**\n * Checks if an object is a promise using ducktyping.\n *\n * Promises are often polyfilled, so it makes sense to add some additional guarantees if the user of this\n * library has some insane environment where global Promise objects are overwritten.\n *\n * @param {any} p\n * @return {boolean}\n */\nexport const isPromise = p => p instanceof Promise || (p && p.then && p.catch && p.finally)\n","/**\n * Utility module to work with time.\n *\n * @module time\n */\n\nimport * as metric from './metric.js'\nimport * as math from './math.js'\n\n/**\n * Return current time.\n *\n * @return {Date}\n */\nexport const getDate = () => new Date()\n\n/**\n * Return current unix time.\n *\n * @return {number}\n */\nexport const getUnixTime = Date.now\n\n/**\n * Transform time (in ms) to a human readable format. E.g. 1100 => 1.1s. 60s => 1min. .001 => 10μs.\n *\n * @param {number} d duration in milliseconds\n * @return {string} humanized approximation of time\n */\nexport const humanizeDuration = d => {\n if (d < 60000) {\n const p = metric.prefix(d, -1)\n return math.round(p.n * 100) / 100 + p.prefix + 's'\n }\n d = math.floor(d / 1000)\n const seconds = d % 60\n const minutes = math.floor(d / 60) % 60\n const hours = math.floor(d / 3600) % 24\n const days = math.floor(d / 86400)\n if (days > 0) {\n return days + 'd' + ((hours > 0 || minutes > 30) ? ' ' + (minutes > 30 ? hours + 1 : hours) + 'h' : '')\n }\n if (hours > 0) {\n /* c8 ignore next */\n return hours + 'h' + ((minutes > 0 || seconds > 30) ? ' ' + (seconds > 30 ? minutes + 1 : minutes) + 'min' : '')\n }\n return minutes + 'min' + (seconds > 0 ? ' ' + seconds + 's' : '')\n}\n","/**\n * Utility module to convert metric values.\n *\n * @module metric\n */\n\nimport * as math from './math.js'\n\nexport const yotta = 1e24\nexport const zetta = 1e21\nexport const exa = 1e18\nexport const peta = 1e15\nexport const tera = 1e12\nexport const giga = 1e9\nexport const mega = 1e6\nexport const kilo = 1e3\nexport const hecto = 1e2\nexport const deca = 10\nexport const deci = 0.1\nexport const centi = 0.01\nexport const milli = 1e-3\nexport const micro = 1e-6\nexport const nano = 1e-9\nexport const pico = 1e-12\nexport const femto = 1e-15\nexport const atto = 1e-18\nexport const zepto = 1e-21\nexport const yocto = 1e-24\n\nconst prefixUp = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']\nconst prefixDown = ['', 'm', 'μ', 'n', 'p', 'f', 'a', 'z', 'y']\n\n/**\n * Calculate the metric prefix for a number. Assumes E.g. `prefix(1000) = { n: 1, prefix: 'k' }`\n *\n * @param {number} n\n * @param {number} [baseMultiplier] Multiplier of the base (10^(3*baseMultiplier)). E.g. `convert(time, -3)` if time is already in milli seconds\n * @return {{n:number,prefix:string}}\n */\nexport const prefix = (n, baseMultiplier = 0) => {\n const nPow = n === 0 ? 0 : math.log10(n)\n let mult = 0\n while (nPow < mult * 3 && baseMultiplier > -8) {\n baseMultiplier--\n mult--\n }\n while (nPow >= 3 + mult * 3 && baseMultiplier < 8) {\n baseMultiplier++\n mult++\n }\n const prefix = baseMultiplier < 0 ? prefixDown[-baseMultiplier] : prefixUp[baseMultiplier]\n return {\n n: math.round((mult > 0 ? n / math.exp10(mult * 3) : n * math.exp10(mult * -3)) * 1e12) / 1e12,\n prefix\n }\n}\n","/**\n * Isomorphic module for true random numbers / buffers / uuids.\n *\n * Attention: falls back to Math.random if the browser does not support crypto.\n *\n * @module random\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\nimport { getRandomValues } from 'lib0/webcrypto'\n\nexport const rand = Math.random\n\nexport const uint32 = () => getRandomValues(new Uint32Array(1))[0]\n\nexport const uint53 = () => {\n const arr = getRandomValues(new Uint32Array(8))\n return (arr[0] & binary.BITS21) * (binary.BITS32 + 1) + (arr[1] >>> 0)\n}\n\n/**\n * @template T\n * @param {Array} arr\n * @return {T}\n */\nexport const oneOf = arr => arr[math.floor(rand() * arr.length)]\n\n// @ts-ignore\nconst uuidv4Template = [1e7] + -1e3 + -4e3 + -8e3 + -1e11\n\n/**\n * @return {string}\n */\nexport const uuidv4 = () => uuidv4Template.replace(/[018]/g, /** @param {number} c */ c =>\n (c ^ uint32() & 15 >> c / 4).toString(16)\n)\n","/* eslint-env browser */\n\n/**\n * Binary data constants.\n *\n * @module binary\n */\n\n/**\n * n-th bit activated.\n *\n * @type {number}\n */\nexport const BIT1 = 1\nexport const BIT2 = 2\nexport const BIT3 = 4\nexport const BIT4 = 8\nexport const BIT5 = 16\nexport const BIT6 = 32\nexport const BIT7 = 64\nexport const BIT8 = 128\nexport const BIT9 = 256\nexport const BIT10 = 512\nexport const BIT11 = 1024\nexport const BIT12 = 2048\nexport const BIT13 = 4096\nexport const BIT14 = 8192\nexport const BIT15 = 16384\nexport const BIT16 = 32768\nexport const BIT17 = 65536\nexport const BIT18 = 1 << 17\nexport const BIT19 = 1 << 18\nexport const BIT20 = 1 << 19\nexport const BIT21 = 1 << 20\nexport const BIT22 = 1 << 21\nexport const BIT23 = 1 << 22\nexport const BIT24 = 1 << 23\nexport const BIT25 = 1 << 24\nexport const BIT26 = 1 << 25\nexport const BIT27 = 1 << 26\nexport const BIT28 = 1 << 27\nexport const BIT29 = 1 << 28\nexport const BIT30 = 1 << 29\nexport const BIT31 = 1 << 30\nexport const BIT32 = 1 << 31\n\n/**\n * First n bits activated.\n *\n * @type {number}\n */\nexport const BITS0 = 0\nexport const BITS1 = 1\nexport const BITS2 = 3\nexport const BITS3 = 7\nexport const BITS4 = 15\nexport const BITS5 = 31\nexport const BITS6 = 63\nexport const BITS7 = 127\nexport const BITS8 = 255\nexport const BITS9 = 511\nexport const BITS10 = 1023\nexport const BITS11 = 2047\nexport const BITS12 = 4095\nexport const BITS13 = 8191\nexport const BITS14 = 16383\nexport const BITS15 = 32767\nexport const BITS16 = 65535\nexport const BITS17 = BIT18 - 1\nexport const BITS18 = BIT19 - 1\nexport const BITS19 = BIT20 - 1\nexport const BITS20 = BIT21 - 1\nexport const BITS21 = BIT22 - 1\nexport const BITS22 = BIT23 - 1\nexport const BITS23 = BIT24 - 1\nexport const BITS24 = BIT25 - 1\nexport const BITS25 = BIT26 - 1\nexport const BITS26 = BIT27 - 1\nexport const BITS27 = BIT28 - 1\nexport const BITS28 = BIT29 - 1\nexport const BITS29 = BIT30 - 1\nexport const BITS30 = BIT31 - 1\n/**\n * @type {number}\n */\nexport const BITS31 = 0x7FFFFFFF\n/**\n * @type {number}\n */\nexport const BITS32 = 0xFFFFFFFF\n","/* eslint-env browser */\n\nexport const subtle = crypto.subtle\nexport const getRandomValues = crypto.getRandomValues.bind(crypto)\n","export * as authProtocol from './auth'\nexport * as awarenessProtocol from './awareness'\nexport * as syncProtocol from './sync'\n","import * as Y from 'yjs'\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport const messagePermissionDenied: number = 0\n\nexport const writePermissionDenied = (\n encoder: encoding.Encoder,\n reason: string\n): void => {\n encoding.writeVarUint(encoder, messagePermissionDenied)\n encoding.writeVarString(encoder, reason)\n}\n\nexport type PermissionDeniedHandler = (y: any, reason: string) => void\n\nexport const readAuthMessage = (\n decoder: decoding.Decoder,\n y: Y.Doc,\n permissionDeniedHandler: PermissionDeniedHandler\n): void => {\n switch (decoding.readVarUint(decoder)) {\n case messagePermissionDenied:\n permissionDeniedHandler(y, decoding.readVarString(decoder))\n }\n}\n","/**\n * Efficient schema-less binary encoding with support for variable length encoding.\n *\n * Use [lib0/encoding] with [lib0/decoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module encoding\n */\n\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as binary from './binary.js'\nimport * as string from './string.js'\nimport * as array from './array.js'\n\n/**\n * A BinaryEncoder handles the encoding to an Uint8Array.\n */\nexport class Encoder {\n constructor () {\n this.cpos = 0\n this.cbuf = new Uint8Array(100)\n /**\n * @type {Array}\n */\n this.bufs = []\n }\n}\n\n/**\n * @function\n * @return {Encoder}\n */\nexport const createEncoder = () => new Encoder()\n\n/**\n * @param {function(Encoder):void} f\n */\nexport const encode = (f) => {\n const encoder = createEncoder()\n f(encoder)\n return toUint8Array(encoder)\n}\n\n/**\n * The current length of the encoded data.\n *\n * @function\n * @param {Encoder} encoder\n * @return {number}\n */\nexport const length = encoder => {\n let len = encoder.cpos\n for (let i = 0; i < encoder.bufs.length; i++) {\n len += encoder.bufs[i].length\n }\n return len\n}\n\n/**\n * Check whether encoder is empty.\n *\n * @function\n * @param {Encoder} encoder\n * @return {boolean}\n */\nexport const hasContent = encoder => encoder.cpos > 0 || encoder.bufs.length > 0\n\n/**\n * Transform to Uint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @return {Uint8Array} The created ArrayBuffer.\n */\nexport const toUint8Array = encoder => {\n const uint8arr = new Uint8Array(length(encoder))\n let curPos = 0\n for (let i = 0; i < encoder.bufs.length; i++) {\n const d = encoder.bufs[i]\n uint8arr.set(d, curPos)\n curPos += d.length\n }\n uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos)\n return uint8arr\n}\n\n/**\n * Verify that it is possible to write `len` bytes wtihout checking. If\n * necessary, a new Buffer with the required length is attached.\n *\n * @param {Encoder} encoder\n * @param {number} len\n */\nexport const verifyLen = (encoder, len) => {\n const bufferLen = encoder.cbuf.length\n if (bufferLen - encoder.cpos < len) {\n encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos))\n encoder.cbuf = new Uint8Array(math.max(bufferLen, len) * 2)\n encoder.cpos = 0\n }\n}\n\n/**\n * Write one byte to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The byte that is to be encoded.\n */\nexport const write = (encoder, num) => {\n const bufferLen = encoder.cbuf.length\n if (encoder.cpos === bufferLen) {\n encoder.bufs.push(encoder.cbuf)\n encoder.cbuf = new Uint8Array(bufferLen * 2)\n encoder.cpos = 0\n }\n encoder.cbuf[encoder.cpos++] = num\n}\n\n/**\n * Write one byte at a specific position.\n * Position must already be written (i.e. encoder.length > pos)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos Position to which to write data\n * @param {number} num Unsigned 8-bit integer\n */\nexport const set = (encoder, pos, num) => {\n let buffer = null\n // iterate all buffers and adjust position\n for (let i = 0; i < encoder.bufs.length && buffer === null; i++) {\n const b = encoder.bufs[i]\n if (pos < b.length) {\n buffer = b // found buffer\n } else {\n pos -= b.length\n }\n }\n if (buffer === null) {\n // use current buffer\n buffer = encoder.cbuf\n }\n buffer[pos] = num\n}\n\n/**\n * Write one byte as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint8 = write\n\n/**\n * Write one byte as an unsigned Integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint8 = set\n\n/**\n * Write two bytes as an unsigned integer.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint16 = (encoder, num) => {\n write(encoder, num & binary.BITS8)\n write(encoder, (num >>> 8) & binary.BITS8)\n}\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint16 = (encoder, pos, num) => {\n set(encoder, pos, num & binary.BITS8)\n set(encoder, pos + 1, (num >>> 8) & binary.BITS8)\n}\n\n/**\n * Write two bytes as an unsigned integer\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32 = (encoder, num) => {\n for (let i = 0; i < 4; i++) {\n write(encoder, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write two bytes as an unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeUint32BigEndian = (encoder, num) => {\n for (let i = 3; i >= 0; i--) {\n write(encoder, (num >>> (8 * i)) & binary.BITS8)\n }\n}\n\n/**\n * Write two bytes as an unsigned integer at a specific location.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} pos The location where the data will be written.\n * @param {number} num The number that is to be encoded.\n */\nexport const setUint32 = (encoder, pos, num) => {\n for (let i = 0; i < 4; i++) {\n set(encoder, pos + i, num & binary.BITS8)\n num >>>= 8\n }\n}\n\n/**\n * Write a variable length unsigned integer. Max encodable integer is 2^53.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarUint = (encoder, num) => {\n while (num > binary.BITS7) {\n write(encoder, binary.BIT8 | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n write(encoder, binary.BITS7 & num)\n}\n\n/**\n * Write a variable length integer.\n *\n * We use the 7th bit instead for signaling that this is a negative number.\n *\n * @function\n * @param {Encoder} encoder\n * @param {number} num The number that is to be encoded.\n */\nexport const writeVarInt = (encoder, num) => {\n const isNegative = math.isNegativeZero(num)\n if (isNegative) {\n num = -num\n }\n // |- whether to continue reading |- whether is negative |- number\n write(encoder, (num > binary.BITS6 ? binary.BIT8 : 0) | (isNegative ? binary.BIT7 : 0) | (binary.BITS6 & num))\n num = math.floor(num / 64) // shift >>> 6\n // We don't need to consider the case of num === 0 so we can use a different\n // pattern here than above.\n while (num > 0) {\n write(encoder, (num > binary.BITS7 ? binary.BIT8 : 0) | (binary.BITS7 & num))\n num = math.floor(num / 128) // shift >>> 7\n }\n}\n\n/**\n * A cache to store strings temporarily\n */\nconst _strBuffer = new Uint8Array(30000)\nconst _maxStrBSize = _strBuffer.length / 3\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringNative = (encoder, str) => {\n if (str.length < _maxStrBSize) {\n // We can encode the string into the existing buffer\n /* c8 ignore next */\n const written = string.utf8TextEncoder.encodeInto(str, _strBuffer).written || 0\n writeVarUint(encoder, written)\n for (let i = 0; i < written; i++) {\n write(encoder, _strBuffer[i])\n }\n } else {\n writeVarUint8Array(encoder, string.encodeUtf8(str))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const _writeVarStringPolyfill = (encoder, str) => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n write(encoder, /** @type {number} */ (encodedString.codePointAt(i)))\n }\n}\n\n/**\n * Write a variable length string.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\n/* c8 ignore next */\nexport const writeVarString = (string.utf8TextEncoder && /** @type {any} */ (string.utf8TextEncoder).encodeInto) ? _writeVarStringNative : _writeVarStringPolyfill\n\n/**\n * Write a string terminated by a special byte sequence. This is not very performant and is\n * generally discouraged. However, the resulting byte arrays are lexiographically ordered which\n * makes this a nice feature for databases.\n *\n * The string will be encoded using utf8 and then terminated and escaped using writeTerminatingUint8Array.\n *\n * @function\n * @param {Encoder} encoder\n * @param {String} str The string that is to be encoded.\n */\nexport const writeTerminatedString = (encoder, str) =>\n writeTerminatedUint8Array(encoder, string.encodeUtf8(str))\n\n/**\n * Write a terminating Uint8Array. Note that this is not performant and is generally\n * discouraged. There are few situations when this is needed.\n *\n * We use 0x0 as a terminating character. 0x1 serves as an escape character for 0x0 and 0x1.\n *\n * Example: [0,1,2] is encoded to [1,0,1,1,2,0]. 0x0, and 0x1 needed to be escaped using 0x1. Then\n * the result is terminated using the 0x0 character.\n *\n * This is basically how many systems implement null terminated strings. However, we use an escape\n * character 0x1 to avoid issues and potenial attacks on our database (if this is used as a key\n * encoder for NoSql databases).\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} buf The string that is to be encoded.\n */\nexport const writeTerminatedUint8Array = (encoder, buf) => {\n for (let i = 0; i < buf.length; i++) {\n const b = buf[i]\n if (b === 0 || b === 1) {\n write(encoder, 1)\n }\n write(encoder, buf[i])\n }\n write(encoder, 0)\n}\n\n/**\n * Write the content of another Encoder.\n *\n * @TODO: can be improved!\n * - Note: Should consider that when appending a lot of small Encoders, we should rather clone than referencing the old structure.\n * Encoders start with a rather big initial buffer.\n *\n * @function\n * @param {Encoder} encoder The enUint8Arr\n * @param {Encoder} append The BinaryEncoder to be written.\n */\nexport const writeBinaryEncoder = (encoder, append) => writeUint8Array(encoder, toUint8Array(append))\n\n/**\n * Append fixed-length Uint8Array to the encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeUint8Array = (encoder, uint8Array) => {\n const bufferLen = encoder.cbuf.length\n const cpos = encoder.cpos\n const leftCopyLen = math.min(bufferLen - cpos, uint8Array.length)\n const rightCopyLen = uint8Array.length - leftCopyLen\n encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos)\n encoder.cpos += leftCopyLen\n if (rightCopyLen > 0) {\n // Still something to write, write right half..\n // Append new buffer\n encoder.bufs.push(encoder.cbuf)\n // must have at least size of remaining buffer\n encoder.cbuf = new Uint8Array(math.max(bufferLen * 2, rightCopyLen))\n // copy array\n encoder.cbuf.set(uint8Array.subarray(leftCopyLen))\n encoder.cpos = rightCopyLen\n }\n}\n\n/**\n * Append an Uint8Array to Encoder.\n *\n * @function\n * @param {Encoder} encoder\n * @param {Uint8Array} uint8Array\n */\nexport const writeVarUint8Array = (encoder, uint8Array) => {\n writeVarUint(encoder, uint8Array.byteLength)\n writeUint8Array(encoder, uint8Array)\n}\n\n/**\n * Create an DataView of the next `len` bytes. Use it to write data after\n * calling this function.\n *\n * ```js\n * // write float32 using DataView\n * const dv = writeOnDataView(encoder, 4)\n * dv.setFloat32(0, 1.1)\n * // read float32 using DataView\n * const dv = readFromDataView(encoder, 4)\n * dv.getFloat32(0) // => 1.100000023841858 (leaving it to the reader to find out why this is the correct result)\n * ```\n *\n * @param {Encoder} encoder\n * @param {number} len\n * @return {DataView}\n */\nexport const writeOnDataView = (encoder, len) => {\n verifyLen(encoder, len)\n const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len)\n encoder.cpos += len\n return dview\n}\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {number} num\n */\nexport const writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigInt64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigInt64(0, num, false)\n\n/**\n * @param {Encoder} encoder\n * @param {bigint} num\n */\nexport const writeBigUint64 = (encoder, num) => /** @type {any} */ (writeOnDataView(encoder, 8)).setBigUint64(0, num, false)\n\nconst floatTestBed = new DataView(new ArrayBuffer(4))\n/**\n * Check if a number can be encoded as a 32 bit float.\n *\n * @param {number} num\n * @return {boolean}\n */\nconst isFloat32 = num => {\n floatTestBed.setFloat32(0, num)\n return floatTestBed.getFloat32(0) === num\n}\n\n/**\n * Encode data with efficient binary format.\n *\n * Differences to JSON:\n * • Transforms data to a binary format (not to a string)\n * • Encodes undefined, NaN, and ArrayBuffer (these can't be represented in JSON)\n * • Numbers are efficiently encoded either as a variable length integer, as a\n * 32 bit float, as a 64 bit float, or as a 64 bit bigint.\n *\n * Encoding table:\n *\n * | Data Type | Prefix | Encoding Method | Comment |\n * | ------------------- | -------- | ------------------ | ------- |\n * | undefined | 127 | | Functions, symbol, and everything that cannot be identified is encoded as undefined |\n * | null | 126 | | |\n * | integer | 125 | writeVarInt | Only encodes 32 bit signed integers |\n * | float32 | 124 | writeFloat32 | |\n * | float64 | 123 | writeFloat64 | |\n * | bigint | 122 | writeBigInt64 | |\n * | boolean (false) | 121 | | True and false are different data types so we save the following byte |\n * | boolean (true) | 120 | | - 0b01111000 so the last bit determines whether true or false |\n * | string | 119 | writeVarString | |\n * | object | 118 | custom | Writes {length} then {length} key-value pairs |\n * | array | 117 | custom | Writes {length} then {length} json values |\n * | Uint8Array | 116 | writeVarUint8Array | We use Uint8Array for any kind of binary data |\n *\n * Reasons for the decreasing prefix:\n * We need the first bit for extendability (later we may want to encode the\n * prefix with writeVarUint). The remaining 7 bits are divided as follows:\n * [0-30] the beginning of the data range is used for custom purposes\n * (defined by the function that uses this library)\n * [31-127] the end of the data range is used for data encoding by\n * lib0/encoding.js\n *\n * @param {Encoder} encoder\n * @param {undefined|null|number|bigint|boolean|string|Object|Array|Uint8Array} data\n */\nexport const writeAny = (encoder, data) => {\n switch (typeof data) {\n case 'string':\n // TYPE 119: STRING\n write(encoder, 119)\n writeVarString(encoder, data)\n break\n case 'number':\n if (number.isInteger(data) && math.abs(data) <= binary.BITS31) {\n // TYPE 125: INTEGER\n write(encoder, 125)\n writeVarInt(encoder, data)\n } else if (isFloat32(data)) {\n // TYPE 124: FLOAT32\n write(encoder, 124)\n writeFloat32(encoder, data)\n } else {\n // TYPE 123: FLOAT64\n write(encoder, 123)\n writeFloat64(encoder, data)\n }\n break\n case 'bigint':\n // TYPE 122: BigInt\n write(encoder, 122)\n writeBigInt64(encoder, data)\n break\n case 'object':\n if (data === null) {\n // TYPE 126: null\n write(encoder, 126)\n } else if (array.isArray(data)) {\n // TYPE 117: Array\n write(encoder, 117)\n writeVarUint(encoder, data.length)\n for (let i = 0; i < data.length; i++) {\n writeAny(encoder, data[i])\n }\n } else if (data instanceof Uint8Array) {\n // TYPE 116: ArrayBuffer\n write(encoder, 116)\n writeVarUint8Array(encoder, data)\n } else {\n // TYPE 118: Object\n write(encoder, 118)\n const keys = Object.keys(data)\n writeVarUint(encoder, keys.length)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n writeVarString(encoder, key)\n writeAny(encoder, data[key])\n }\n }\n break\n case 'boolean':\n // TYPE 120/121: boolean (true/false)\n write(encoder, data ? 120 : 121)\n break\n default:\n // TYPE 127: undefined\n write(encoder, 127)\n }\n}\n\n/**\n * Now come a few stateful encoder that have their own classes.\n */\n\n/**\n * Basic Run Length Encoder - a basic compression implementation.\n *\n * Encodes [1,1,1,7] to [1,3,7,1] (3 times 1, 1 time 7). This encoder might do more harm than good if there are a lot of values that are not repeated.\n *\n * It was originally used for image compression. Cool .. article http://csbruce.com/cbm/transactor/pdfs/trans_v7_i06.pdf\n *\n * @note T must not be null!\n *\n * @template T\n */\nexport class RleEncoder extends Encoder {\n /**\n * @param {function(Encoder, T):void} writer\n */\n constructor (writer) {\n super()\n /**\n * The writer\n */\n this.w = writer\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n /**\n * @param {T} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n this.w(this, v)\n this.s = v\n }\n }\n}\n\n/**\n * Basic diff decoder using variable length encoding.\n *\n * Encodes the values [3, 1100, 1101, 1050, 0] to [3, 1097, 1, -51, -1050] using writeVarInt.\n */\nexport class IntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n writeVarInt(this, v - this.s)\n this.s = v\n }\n}\n\n/**\n * A combination of IntDiffEncoder and RleEncoder.\n *\n * Basically first writes the IntDiffEncoder and then counts duplicate diffs using RleEncoding.\n *\n * Encodes the values [1,1,1,2,3,4,5,6] as [1,1,0,2,1,5] (RLE([1,0,0,1,1,1,1,1]) ⇒ RleIntDiff[1,1,0,2,1,5])\n */\nexport class RleIntDiffEncoder extends Encoder {\n /**\n * @param {number} start\n */\n constructor (start) {\n super()\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v && this.count > 0) {\n this.count++\n } else {\n if (this.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n writeVarUint(this, this.count - 1) // since count is always > 0, we can decrement by one. non-standard encoding ftw\n }\n this.count = 1\n // write first value\n writeVarInt(this, v - this.s)\n this.s = v\n }\n }\n}\n\n/**\n * @param {UintOptRleEncoder} encoder\n */\nconst flushUintOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set sign to positive\n // case 2: write several values. set sign to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encoder.count === 1 ? encoder.s : -encoder.s)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * Optimized Rle encoder that does not suffer from the mentioned problem of the basic Rle encoder.\n *\n * Internally uses VarInt encoder to write unsigned integers. If the input occurs multiple times, we write\n * write it as a negative number. The UintOptRleDecoder then understands that it needs to read a count.\n *\n * Encodes [1,2,3,3,3] as [1,2,-3,3] (once 1, once 2, three times 3)\n */\nexport class UintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Increasing Uint Optimized RLE Encoder\n *\n * The RLE encoder counts the number of same occurences of the same value.\n * The IncUintOptRle encoder counts if the value increases.\n * I.e. 7, 8, 9, 10 will be encoded as [-7, 4]. 1, 3, 5 will be encoded\n * as [1, 3, 5].\n */\nexport class IncUintOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.s + this.count === v) {\n this.count++\n } else {\n flushUintOptRleEncoder(this)\n this.count = 1\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushUintOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * @param {IntDiffOptRleEncoder} encoder\n */\nconst flushIntDiffOptRleEncoder = encoder => {\n if (encoder.count > 0) {\n // 31 bit making up the diff | wether to write the counter\n // const encodedDiff = encoder.diff << 1 | (encoder.count === 1 ? 0 : 1)\n const encodedDiff = encoder.diff * 2 + (encoder.count === 1 ? 0 : 1)\n // flush counter, unless this is the first value (count = 0)\n // case 1: just a single value. set first bit to positive\n // case 2: write several values. set first bit to negative to indicate that there is a length coming\n writeVarInt(encoder.encoder, encodedDiff)\n if (encoder.count > 1) {\n writeVarUint(encoder.encoder, encoder.count - 2) // since count is always > 1, we can decrement by one. non-standard encoding ftw\n }\n }\n}\n\n/**\n * A combination of the IntDiffEncoder and the UintOptRleEncoder.\n *\n * The count approach is similar to the UintDiffOptRleEncoder, but instead of using the negative bitflag, it encodes\n * in the LSB whether a count is to be read. Therefore this Encoder only supports 31 bit integers!\n *\n * Encodes [1, 2, 3, 2] as [3, 1, 6, -1] (more specifically [(1 << 1) | 1, (3 << 0) | 0, -1])\n *\n * Internally uses variable length encoding. Contrary to normal UintVar encoding, the first byte contains:\n * * 1 bit that denotes whether the next value is a count (LSB)\n * * 1 bit that denotes whether this value is negative (MSB - 1)\n * * 1 bit that denotes whether to continue reading the variable length integer (MSB)\n *\n * Therefore, only five bits remain to encode diff ranges.\n *\n * Use this Encoder only when appropriate. In most cases, this is probably a bad idea.\n */\nexport class IntDiffOptRleEncoder {\n constructor () {\n this.encoder = new Encoder()\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @param {number} v\n */\n write (v) {\n if (this.diff === v - this.s) {\n this.s = v\n this.count++\n } else {\n flushIntDiffOptRleEncoder(this)\n this.count = 1\n this.diff = v - this.s\n this.s = v\n }\n }\n\n /**\n * Flush the encoded state and transform this to a Uint8Array.\n *\n * Note that this should only be called once.\n */\n toUint8Array () {\n flushIntDiffOptRleEncoder(this)\n return toUint8Array(this.encoder)\n }\n}\n\n/**\n * Optimized String Encoder.\n *\n * Encoding many small strings in a simple Encoder is not very efficient. The function call to decode a string takes some time and creates references that must be eventually deleted.\n * In practice, when decoding several million small strings, the GC will kick in more and more often to collect orphaned string objects (or maybe there is another reason?).\n *\n * This string encoder solves the above problem. All strings are concatenated and written as a single string using a single encoding call.\n *\n * The lengths are encoded using a UintOptRleEncoder.\n */\nexport class StringEncoder {\n constructor () {\n /**\n * @type {Array}\n */\n this.sarr = []\n this.s = ''\n this.lensE = new UintOptRleEncoder()\n }\n\n /**\n * @param {string} string\n */\n write (string) {\n this.s += string\n if (this.s.length > 19) {\n this.sarr.push(this.s)\n this.s = ''\n }\n this.lensE.write(string.length)\n }\n\n toUint8Array () {\n const encoder = new Encoder()\n this.sarr.push(this.s)\n this.s = ''\n writeVarString(encoder, this.sarr.join(''))\n writeUint8Array(encoder, this.lensE.toUint8Array())\n return toUint8Array(encoder)\n }\n}\n","/**\n * Utility helpers for working with numbers.\n *\n * @module number\n */\n\nimport * as math from './math.js'\nimport * as binary from './binary.js'\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER\nexport const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER\n\nexport const LOWEST_INT32 = 1 << 31\nexport const HIGHEST_INT32 = binary.BITS31\nexport const HIGHEST_UINT32 = binary.BITS32\n\n/* c8 ignore next */\nexport const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num)\nexport const isNaN = Number.isNaN\nexport const parseInt = Number.parseInt\n\n/**\n * Count the number of \"1\" bits in an unsigned 32bit number.\n *\n * Super fun bitcount algorithm by Brian Kernighan.\n *\n * @param {number} n\n */\nexport const countBits = n => {\n n &= binary.BITS32\n let count = 0\n while (n) {\n n &= (n - 1)\n count++\n }\n return count\n}\n","import * as array from './array.js'\n\n/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * The largest utf16 character.\n * Corresponds to Uint8Array([255, 255]) or charcodeof(2x2^8)\n */\nexport const MAX_UTF16_CHARACTER = fromCharCode(65535)\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* c8 ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* c8 ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* c8 ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* c8 ignore start */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* c8 ignore next */\n utf8TextDecoder = null\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* c8 ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n\n/**\n * @param {string} source\n * @param {number} n\n */\nexport const repeat = (source, n) => array.unfold(n, () => source).join('')\n","/**\n * Efficient schema-less binary decoding with support for variable length encoding.\n *\n * Use [lib0/decoding] with [lib0/encoding]. Every encoding function has a corresponding decoding function.\n *\n * Encodes numbers in little-endian order (least to most significant byte order)\n * and is compatible with Golang's binary encoding (https://golang.org/pkg/encoding/binary/)\n * which is also used in Protocol Buffers.\n *\n * ```js\n * // encoding step\n * const encoder = encoding.createEncoder()\n * encoding.writeVarUint(encoder, 256)\n * encoding.writeVarString(encoder, 'Hello world!')\n * const buf = encoding.toUint8Array(encoder)\n * ```\n *\n * ```js\n * // decoding step\n * const decoder = decoding.createDecoder(buf)\n * decoding.readVarUint(decoder) // => 256\n * decoding.readVarString(decoder) // => 'Hello world!'\n * decoding.hasContent(decoder) // => false - all data is read\n * ```\n *\n * @module decoding\n */\n\nimport * as binary from './binary.js'\nimport * as math from './math.js'\nimport * as number from './number.js'\nimport * as string from './string.js'\nimport * as error from './error.js'\nimport * as encoding from './encoding.js'\n\nconst errorUnexpectedEndOfArray = error.create('Unexpected end of array')\nconst errorIntegerOutOfRange = error.create('Integer out of Range')\n\n/**\n * A Decoder handles the decoding of an Uint8Array.\n */\nexport class Decoder {\n /**\n * @param {Uint8Array} uint8Array Binary data to decode\n */\n constructor (uint8Array) {\n /**\n * Decoding target.\n *\n * @type {Uint8Array}\n */\n this.arr = uint8Array\n /**\n * Current decoding position.\n *\n * @type {number}\n */\n this.pos = 0\n }\n}\n\n/**\n * @function\n * @param {Uint8Array} uint8Array\n * @return {Decoder}\n */\nexport const createDecoder = uint8Array => new Decoder(uint8Array)\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {boolean}\n */\nexport const hasContent = decoder => decoder.pos !== decoder.arr.length\n\n/**\n * Clone a decoder instance.\n * Optionally set a new position parameter.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} [newPos] Defaults to current position\n * @return {Decoder} A clone of `decoder`\n */\nexport const clone = (decoder, newPos = decoder.pos) => {\n const _decoder = createDecoder(decoder.arr)\n _decoder.pos = newPos\n return _decoder\n}\n\n/**\n * Create an Uint8Array view of the next `len` bytes and advance the position by `len`.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder The decoder instance\n * @param {number} len The length of bytes to read\n * @return {Uint8Array}\n */\nexport const readUint8Array = (decoder, len) => {\n const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)\n decoder.pos += len\n return view\n}\n\n/**\n * Read variable length Uint8Array.\n *\n * Important: The Uint8Array still points to the underlying ArrayBuffer. Make sure to discard the result as soon as possible to prevent any memory leaks.\n * Use `buffer.copyUint8Array` to copy the result into a new Uint8Array.\n *\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readVarUint8Array = decoder => readUint8Array(decoder, readVarUint(decoder))\n\n/**\n * Read the rest of the content as an ArrayBuffer\n * @function\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTailAsUint8Array = decoder => readUint8Array(decoder, decoder.arr.length - decoder.pos)\n\n/**\n * Skip one byte, jump to the next position.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} The next position\n */\nexport const skip8 = decoder => decoder.pos++\n\n/**\n * Read one byte as unsigned integer.\n * @function\n * @param {Decoder} decoder The decoder instance\n * @return {number} Unsigned 8-bit integer\n */\nexport const readUint8 = decoder => decoder.arr[decoder.pos++]\n\n/**\n * Read 2 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint16 = decoder => {\n const uint =\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n decoder.pos += 2\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32 = decoder => {\n const uint =\n (decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Read 4 bytes as unsigned integer in big endian order.\n * (most significant byte first)\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const readUint32BigEndian = decoder => {\n const uint =\n (decoder.arr[decoder.pos + 3] +\n (decoder.arr[decoder.pos + 2] << 8) +\n (decoder.arr[decoder.pos + 1] << 16) +\n (decoder.arr[decoder.pos] << 24)) >>> 0\n decoder.pos += 4\n return uint\n}\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint8 = decoder => decoder.arr[decoder.pos]\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint16 = decoder =>\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8)\n\n/**\n * Look ahead without incrementing the position\n * to the next byte and read it as unsigned integer.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.\n */\nexport const peekUint32 = decoder => (\n decoder.arr[decoder.pos] +\n (decoder.arr[decoder.pos + 1] << 8) +\n (decoder.arr[decoder.pos + 2] << 16) +\n (decoder.arr[decoder.pos + 3] << 24)\n) >>> 0\n\n/**\n * Read unsigned integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarUint = decoder => {\n let num = 0\n let mult = 1\n const len = decoder.arr.length\n while (decoder.pos < len) {\n const r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult // shift $r << (7*#iterations) and add it to num\n mult *= 128 // next iteration, shift 7 \"more\" to the left\n if (r < binary.BIT8) {\n return num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Read signed integer (32bit) with variable length.\n * 1/8th of the storage is used as encoding overhead.\n * * numbers < 2^7 is stored in one bytlength\n * * numbers < 2^14 is stored in two bylength\n * @todo This should probably create the inverse ~num if number is negative - but this would be a breaking change.\n *\n * @function\n * @param {Decoder} decoder\n * @return {number} An unsigned integer.length\n */\nexport const readVarInt = decoder => {\n let r = decoder.arr[decoder.pos++]\n let num = r & binary.BITS6\n let mult = 64\n const sign = (r & binary.BIT7) > 0 ? -1 : 1\n if ((r & binary.BIT8) === 0) {\n // don't continue reading\n return sign * num\n }\n const len = decoder.arr.length\n while (decoder.pos < len) {\n r = decoder.arr[decoder.pos++]\n // num = num | ((r & binary.BITS7) << len)\n num = num + (r & binary.BITS7) * mult\n mult *= 128\n if (r < binary.BIT8) {\n return sign * num\n }\n /* c8 ignore start */\n if (num > number.MAX_SAFE_INTEGER) {\n throw errorIntegerOutOfRange\n }\n /* c8 ignore stop */\n }\n throw errorUnexpectedEndOfArray\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarUint = decoder => {\n const pos = decoder.pos\n const s = readVarUint(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * Look ahead and read varUint without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {number}\n */\nexport const peekVarInt = decoder => {\n const pos = decoder.pos\n const s = readVarInt(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * We don't test this function anymore as we use native decoding/encoding by default now.\n * Better not modify this anymore..\n *\n * Transforming utf8 to a string is pretty expensive. The code performs 10x better\n * when String.fromCodePoint is fed with all characters as arguments.\n * But most environments have a maximum number of arguments per functions.\n * For effiency reasons we apply a maximum of 10000 characters at once.\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String.\n */\n/* c8 ignore start */\nexport const _readVarStringPolyfill = decoder => {\n let remainingLen = readVarUint(decoder)\n if (remainingLen === 0) {\n return ''\n } else {\n let encodedString = String.fromCodePoint(readUint8(decoder)) // remember to decrease remainingLen\n if (--remainingLen < 100) { // do not create a Uint8Array for small strings\n while (remainingLen--) {\n encodedString += String.fromCodePoint(readUint8(decoder))\n }\n } else {\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n // this is dangerous, we create a fresh array view from the existing buffer\n const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen)\n decoder.pos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n }\n return decodeURIComponent(escape(encodedString))\n }\n}\n/* c8 ignore stop */\n\n/**\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n */\nexport const _readVarStringNative = decoder =>\n /** @type any */ (string.utf8TextDecoder).decode(readVarUint8Array(decoder))\n\n/**\n * Read string of variable length\n * * varUint is used to store the length of the string\n *\n * @function\n * @param {Decoder} decoder\n * @return {String} The read String\n *\n */\n/* c8 ignore next */\nexport const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill\n\n/**\n * @param {Decoder} decoder\n * @return {Uint8Array}\n */\nexport const readTerminatedUint8Array = decoder => {\n const encoder = encoding.createEncoder()\n let b\n while (true) {\n b = readUint8(decoder)\n if (b === 0) {\n return encoding.toUint8Array(encoder)\n }\n if (b === 1) {\n b = readUint8(decoder)\n }\n encoding.write(encoder, b)\n }\n}\n\n/**\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const readTerminatedString = decoder => string.decodeUtf8(readTerminatedUint8Array(decoder))\n\n/**\n * Look ahead and read varString without incrementing position\n *\n * @function\n * @param {Decoder} decoder\n * @return {string}\n */\nexport const peekVarString = decoder => {\n const pos = decoder.pos\n const s = readVarString(decoder)\n decoder.pos = pos\n return s\n}\n\n/**\n * @param {Decoder} decoder\n * @param {number} len\n * @return {DataView}\n */\nexport const readFromDataView = (decoder, len) => {\n const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len)\n decoder.pos += len\n return dv\n}\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat32 = decoder => readFromDataView(decoder, 4).getFloat32(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readFloat64 = decoder => readFromDataView(decoder, 8).getFloat64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigInt64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigInt64(0, false)\n\n/**\n * @param {Decoder} decoder\n */\nexport const readBigUint64 = decoder => /** @type {any} */ (readFromDataView(decoder, 8)).getBigUint64(0, false)\n\n/**\n * @type {Array}\n */\nconst readAnyLookupTable = [\n decoder => undefined, // CASE 127: undefined\n decoder => null, // CASE 126: null\n readVarInt, // CASE 125: integer\n readFloat32, // CASE 124: float32\n readFloat64, // CASE 123: float64\n readBigInt64, // CASE 122: bigint\n decoder => false, // CASE 121: boolean (false)\n decoder => true, // CASE 120: boolean (true)\n readVarString, // CASE 119: string\n decoder => { // CASE 118: object\n const len = readVarUint(decoder)\n /**\n * @type {Object}\n */\n const obj = {}\n for (let i = 0; i < len; i++) {\n const key = readVarString(decoder)\n obj[key] = readAny(decoder)\n }\n return obj\n },\n decoder => { // CASE 117: array\n const len = readVarUint(decoder)\n const arr = []\n for (let i = 0; i < len; i++) {\n arr.push(readAny(decoder))\n }\n return arr\n },\n readVarUint8Array // CASE 116: Uint8Array\n]\n\n/**\n * @param {Decoder} decoder\n */\nexport const readAny = decoder => readAnyLookupTable[127 - readUint8(decoder)](decoder)\n\n/**\n * T must not be null.\n *\n * @template T\n */\nexport class RleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {function(Decoder):T} reader\n */\n constructor (uint8Array, reader) {\n super(uint8Array)\n /**\n * The reader\n */\n this.reader = reader\n /**\n * Current state\n * @type {T|null}\n */\n this.s = null\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = this.reader(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {T} */ (this.s)\n }\n}\n\nexport class IntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n }\n\n /**\n * @return {number}\n */\n read () {\n this.s += readVarInt(this)\n return this.s\n }\n}\n\nexport class RleIntDiffDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n * @param {number} start\n */\n constructor (uint8Array, start) {\n super(uint8Array)\n /**\n * Current state\n * @type {number}\n */\n this.s = start\n this.count = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n this.s += readVarInt(this)\n if (hasContent(this)) {\n this.count = readVarUint(this) + 1 // see encoder implementation for the reason why this is incremented\n } else {\n this.count = -1 // read the current value forever\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class UintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s)\n }\n}\n\nexport class IncUintOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n }\n\n read () {\n if (this.count === 0) {\n this.s = readVarInt(this)\n // if the sign is negative, we read the count too, otherwise count is 1\n const isNegative = math.isNegativeZero(this.s)\n this.count = 1\n if (isNegative) {\n this.s = -this.s\n this.count = readVarUint(this) + 2\n }\n }\n this.count--\n return /** @type {number} */ (this.s++)\n }\n}\n\nexport class IntDiffOptRleDecoder extends Decoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n super(uint8Array)\n /**\n * @type {number}\n */\n this.s = 0\n this.count = 0\n this.diff = 0\n }\n\n /**\n * @return {number}\n */\n read () {\n if (this.count === 0) {\n const diff = readVarInt(this)\n // if the first bit is set, we read more data\n const hasCount = diff & 1\n this.diff = math.floor(diff / 2) // shift >> 1\n this.count = 1\n if (hasCount) {\n this.count = readVarUint(this) + 2\n }\n }\n this.s += this.diff\n this.count--\n return this.s\n }\n}\n\nexport class StringDecoder {\n /**\n * @param {Uint8Array} uint8Array\n */\n constructor (uint8Array) {\n this.decoder = new UintOptRleDecoder(uint8Array)\n this.str = readVarString(this.decoder)\n /**\n * @type {number}\n */\n this.spos = 0\n }\n\n /**\n * @return {string}\n */\n read () {\n const end = this.spos + this.decoder.read()\n const res = this.str.slice(this.spos, end)\n this.spos = end\n return res\n }\n}\n","/**\n * Error helpers.\n *\n * @module error\n */\n\n/**\n * @param {string} s\n * @return {Error}\n */\n/* c8 ignore next */\nexport const create = s => new Error(s)\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const methodUnimplemented = () => {\n throw create('Method unimplemented')\n}\n\n/**\n * @throws {Error}\n * @return {never}\n */\n/* c8 ignore next 3 */\nexport const unexpectedCase = () => {\n throw create('Unexpected case')\n}\n","import * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as time from 'lib0/time'\nimport * as math from 'lib0/math'\nimport { ObservableV2 } from 'lib0/observable'\nimport * as f from 'lib0/function'\nimport * as Y from 'yjs'\n/**\n * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information\n * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of\n * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.\n *\n * Each client is identified by a unique client id (something we borrow from `doc.clientID`).\n *\n * A client can override its own state by propagating a message with an increasing timestamp (`clock`).\n *\n * If such a message is received, it is applied if the known state of that client is older than the new state (`clock < newClock`).\n *\n * If a client thinks that a remote client is offline, it may propagate a message with\n * `{ clock: currentClientClock, state: null, client: remoteClient }`\n *\n * If such a message is received, and the known clock of that client equals the received clock, it will override the state with `null`.\n *\n * Before a client disconnects, it should propagate a `null` state with an updated clock.\n *\n * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.\n */\n\nexport const outdatedTimeout = 30000\n\ntype MetaClientState = {\n clock: number\n lastUpdated: number\n}\n\nexport class Awareness extends ObservableV2 {\n doc: Y.Doc\n clientID: number\n states: Map>\n meta: Map\n _checkInterval: NodeJS.Timeout\n\n constructor(doc: Y.Doc) {\n super()\n this.doc = doc\n this.clientID = doc.clientID\n this.states = new Map()\n this.meta = new Map()\n this._checkInterval = setInterval(\n () => {\n const now = time.getUnixTime()\n if (\n this.getLocalState() !== null &&\n outdatedTimeout / 2 <= now - this.meta.get(this.clientID).lastUpdated\n ) {\n // renew local clock\n this.setLocalState(this.getLocalState())\n }\n const remove = []\n this.meta.forEach((meta, clientid) => {\n if (\n clientid !== this.clientID &&\n outdatedTimeout <= now - meta.lastUpdated &&\n this.states.has(clientid)\n ) {\n remove.push(clientid)\n }\n })\n if (remove.length > 0) {\n removeAwarenessStates(this, remove, 'timeout')\n }\n },\n math.floor(outdatedTimeout / 10)\n )\n doc.on('destroy', () => {\n this.destroy()\n })\n this.setLocalState({})\n }\n\n destroy() {\n this.emit('destroy', [this])\n this.setLocalState(null)\n super.destroy()\n clearInterval(this._checkInterval)\n }\n\n getLocalState(): Record | null {\n return this.states.get(this.clientID) || null\n }\n\n setLocalState(state: object | null) {\n const clientID = this.clientID\n const currLocalMeta = this.meta.get(clientID)\n const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1\n const prevState = this.states.get(clientID)\n if (state === null) {\n this.states.delete(clientID)\n } else {\n this.states.set(clientID, state)\n }\n this.meta.set(clientID, {\n clock,\n lastUpdated: time.getUnixTime(),\n })\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n if (state === null) {\n removed.push(clientID)\n } else if (prevState == null) {\n if (state != null) {\n added.push(clientID)\n }\n } else {\n updated.push(clientID)\n if (!f.equalityDeep(prevState, state)) {\n filteredUpdated.push(clientID)\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n this.emit('change', [\n { added, updated: filteredUpdated, removed },\n 'local',\n ])\n }\n this.emit('update', [{ added, updated, removed }, 'local'])\n }\n\n setLocalStateField(field: string, value: any) {\n const state = this.getLocalState()\n if (state !== null) {\n this.setLocalState({\n ...state,\n [field]: value,\n })\n }\n }\n\n getStates(): Map> {\n return this.states\n }\n}\n\n/**\n * Mark (remote) clients as inactive and remove them from the list of active peers.\n * This change will be propagated to remote clients\n */\nexport const removeAwarenessStates = (\n awareness: Awareness,\n clients: number[],\n origin: any\n) => {\n const removed = []\n for (let i = 0; i < clients.length; i++) {\n const clientID = clients[i]\n if (awareness.states.has(clientID)) {\n awareness.states.delete(clientID)\n if (clientID === awareness.clientID) {\n const curMeta =\n /** @type {MetaClientState} */ awareness.meta.get(clientID)\n awareness.meta.set(clientID, {\n clock: curMeta.clock + 1,\n lastUpdated: time.getUnixTime(),\n })\n }\n removed.push(clientID)\n }\n }\n if (removed.length > 0) {\n awareness.emit('change', [{ added: [], updated: [], removed }, origin])\n awareness.emit('update', [{ added: [], updated: [], removed }, origin])\n }\n}\n\n//\nexport const encodeAwarenessUpdate = (\n awareness: Awareness,\n clients: number[],\n states: Uint8Array = awareness.states\n) => {\n const len = clients.length\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = clients[i]\n const state = states.get(clientID) || null\n const clock =\n /** @type {MetaClientState} */ awareness.meta.get(clientID).clock\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(state))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Modify the content of an awareness update before re-encoding it to an awareness update.\n *\n * This might be useful when you have a central server that wants to ensure that clients\n * cant hijack somebody elses identity.\n */\nexport const modifyAwarenessUpdate = (update: Uint8Array, modify: any) => {\n const decoder = decoding.createDecoder(update)\n const encoder = encoding.createEncoder()\n const len = decoding.readVarUint(decoder)\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n const clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const modifiedState = modify(state)\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(modifiedState))\n }\n return encoding.toUint8Array(encoder)\n}\n\nexport const applyAwarenessUpdate = (\n awareness: Awareness,\n update: Uint8Array,\n origin: any\n) => {\n const decoder = decoding.createDecoder(update)\n const timestamp = time.getUnixTime()\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n const len = decoding.readVarUint(decoder)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n let clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const clientMeta = awareness.meta.get(clientID)\n const prevState = awareness.states.get(clientID)\n const currClock = clientMeta === undefined ? 0 : clientMeta.clock\n if (\n currClock < clock ||\n (currClock === clock && state === null && awareness.states.has(clientID))\n ) {\n if (state === null) {\n // never let a remote client remove this local state\n if (\n clientID === awareness.clientID &&\n awareness.getLocalState() != null\n ) {\n // remote client removed the local state. Do not remote state. Broadcast a message indicating\n // that this client still exists by increasing the clock\n clock++\n } else {\n awareness.states.delete(clientID)\n }\n } else {\n awareness.states.set(clientID, state)\n }\n awareness.meta.set(clientID, {\n clock,\n lastUpdated: timestamp,\n })\n if (clientMeta === undefined && state !== null) {\n added.push(clientID)\n } else if (clientMeta !== undefined && state === null) {\n removed.push(clientID)\n } else if (state !== null) {\n if (!f.equalityDeep(state, prevState)) {\n filteredUpdated.push(clientID)\n }\n updated.push(clientID)\n }\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n awareness.emit('change', [\n {\n added,\n updated: filteredUpdated,\n removed,\n },\n origin,\n ])\n }\n if (added.length > 0 || updated.length > 0 || removed.length > 0) {\n awareness.emit('update', [\n {\n added,\n updated,\n removed,\n },\n origin,\n ])\n }\n}\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((array.isArray(a) && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/* c8 ignore start */\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n/* c8 ignore stop */\n\nexport const isArray = array.isArray\n\n/**\n * @param {any} s\n * @return {s is String}\n */\nexport const isString = (s) => s && s.constructor === String\n\n/**\n * @param {any} n\n * @return {n is Number}\n */\nexport const isNumber = n => n != null && n.constructor === Number\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {any} n\n * @param {TYPE} T\n * @return {n is InstanceType}\n */\nexport const is = (n, T) => n && n.constructor === T\n\n/**\n * @template {abstract new (...args: any) => any} TYPE\n * @param {TYPE} T\n */\nexport const isTemplate = (T) =>\n /**\n * @param {any} n\n * @return {n is InstanceType}\n **/\n n => n && n.constructor === T\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @template V\n * @param {{[k:string]:V}} obj\n * @param {function(V,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @todo implement mapToArray & map\n *\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @deprecated use object.size instead\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const size = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object|undefined} obj\n */\nexport const isEmpty = obj => {\n // eslint-disable-next-line\n for (const _k in obj) {\n return false\n }\n return true\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n\n/**\n * Make an object immutable. This hurts performance and is usually not needed if you perform good\n * coding practices.\n */\nexport const freeze = Object.freeze\n\n/**\n * Make an object and all its children immutable.\n * This *really* hurts performance and is usually not needed if you perform good coding practices.\n *\n * @template {any} T\n * @param {T} o\n * @return {Readonly}\n */\nexport const deepFreeze = (o) => {\n for (const key in o) {\n const c = o[key]\n if (typeof c === 'object' || typeof c === 'function') {\n deepFreeze(o[key])\n }\n }\n return freeze(o)\n}\n","/**\n * @module sync-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as Y from 'yjs'\n\n//type StateMap = Map;\n\n/**\n * Core Yjs defines two message types:\n * • YjsSyncStep1: Includes the State Set of the sending client. When received, the client should reply with YjsSyncStep2.\n * • YjsSyncStep2: Includes all missing structs and the complete delete set. When received, the client is assured that it\n * received all information from the remote client.\n *\n * In a peer-to-peer network, you may want to introduce a SyncDone message type. Both parties should initiate the connection\n * with SyncStep1. When a client received SyncStep2, it should reply with SyncDone. When the local client received both\n * SyncStep2 and SyncDone, it is assured that it is synced to the remote client.\n *\n * In a client-server model, you want to handle this differently: The client should initiate the connection with SyncStep1.\n * When the server receives SyncStep1, it should reply with SyncStep2 immediately followed by SyncStep1. The client replies\n * with SyncStep2 when it receives SyncStep1. Optionally the server may send a SyncDone after it received SyncStep2, so the\n * client knows that the sync is finished. There are two reasons for this more elaborated sync model: 1. This protocol can\n * easily be implemented on top of http and websockets. 2. The server should only reply to requests, and not initiate them.\n * Therefore it is necessary that the client initiates the sync.\n *\n * Construction of a message:\n * [messageType : varUint, message definition..]\n *\n * Note: A message does not include information about the room name. This must to be handled by the upper layer protocol!\n *\n * stringify[messageType] stringifies a message definition (messageType is already read from the bufffer)\n */\n\nexport enum SyncMessageType {\n Step1 = 0,\n Step2 = 1,\n Update = 2,\n Done = 3,\n}\n\ntype StateVector = Uint8Array\ntype UpdateVector = Uint8Array\n\n// Create a sync step 1 message based on the state of the current shared document.\nexport const writeSyncStep1 = (encoder: encoding.Encoder, doc: Y.Doc) => {\n encoding.writeVarUint(encoder, SyncMessageType.Step1)\n const sv = Y.encodeStateVector(doc)\n encoding.writeVarUint8Array(encoder, sv)\n}\n\nexport const writeSyncStep2 = (\n encoder: encoding.Encoder,\n doc: Y.Doc,\n encodedStateVector: StateVector\n) => {\n encoding.writeVarUint(encoder, SyncMessageType.Step2)\n encoding.writeVarUint8Array(\n encoder,\n Y.encodeStateAsUpdate(doc, encodedStateVector)\n )\n}\n\n// Read SyncStep1 message and reply with SyncStep2.\nexport const readSyncStep1 = (\n decoder: decoding.Decoder,\n encoder: encoding.Encoder,\n doc: Y.Doc\n) => {\n writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder))\n}\n\n// Read and apply Structs and then DeleteStore to a y instance.\nexport const readSyncStep2 = (\n decoder: decoding.Decoder,\n doc: Y.Doc,\n transactionOrigin: any\n) => {\n try {\n Y.applyUpdate(doc, decoding.readVarUint8Array(decoder), transactionOrigin)\n } catch (error) {\n // This catches errors that are thrown by event handlers\n console.error('Caught error while handling a Yjs update', error)\n }\n}\nexport const readUpdate = readSyncStep2\n\nexport const writeUpdate = (\n encoder: encoding.Encoder,\n update: UpdateVector\n) => {\n encoding.writeVarUint(encoder, SyncMessageType.Update)\n encoding.writeVarUint8Array(encoder, update)\n}\n\nexport const readSyncMessage = (\n decoder: decoding.Decoder,\n encoder: encoding.Encoder,\n doc: Y.Doc,\n transactionOrigin: any\n) => {\n const messageType = decoding.readVarUint(decoder)\n switch (messageType) {\n case SyncMessageType.Step1:\n readSyncStep1(decoder, encoder, doc)\n break\n case SyncMessageType.Step2:\n readSyncStep2(decoder, doc, transactionOrigin)\n break\n case SyncMessageType.Update:\n readUpdate(decoder, doc, transactionOrigin)\n break\n default:\n throw new Error('Unknown message type')\n }\n return messageType\n}\n","import * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as promise from 'lib0/promise'\nimport * as error from 'lib0/error'\nimport * as string from 'lib0/string'\n\nexport const deriveKey = (\n secret: string,\n roomName: string\n): Promise => {\n const secretBuffer = string.encodeUtf8(secret).buffer\n const salt = string.encodeUtf8(roomName).buffer\n return crypto.subtle\n .importKey('raw', secretBuffer, 'PBKDF2', false, ['deriveKey'])\n .then((keyMaterial) =>\n crypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt,\n iterations: 100000,\n hash: 'SHA-256',\n },\n keyMaterial,\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n )\n )\n}\n\nexport const encrypt = (\n data: Uint8Array,\n key: CryptoKey\n): Promise => {\n if (!key) {\n return promise.resolve(data)\n }\n const iv = crypto.getRandomValues(new Uint8Array(12))\n return crypto.subtle\n .encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n data\n )\n .then((cipher) => {\n const encryptedDataEncoder = encoding.createEncoder()\n encoding.writeVarString(encryptedDataEncoder, 'AES-GCM')\n encoding.writeVarUint8Array(encryptedDataEncoder, iv)\n encoding.writeVarUint8Array(encryptedDataEncoder, new Uint8Array(cipher))\n return encoding.toUint8Array(encryptedDataEncoder)\n })\n}\n\nexport const encryptJson = (\n data: any,\n key: CryptoKey | null\n): Promise => {\n const dataEncoder = encoding.createEncoder()\n encoding.writeAny(dataEncoder, data)\n return encrypt(encoding.toUint8Array(dataEncoder), key)\n}\n\nexport const decrypt = (\n data: Uint8Array,\n key: CryptoKey | null\n): Promise => {\n if (!key) {\n return promise.resolve(data)\n }\n const dataDecoder = decoding.createDecoder(data)\n const algorithm = decoding.readVarString(dataDecoder)\n if (algorithm !== 'AES-GCM') {\n promise.reject(error.create('Unknown encryption algorithm'))\n }\n const iv = decoding.readVarUint8Array(dataDecoder)\n const cipher = decoding.readVarUint8Array(dataDecoder)\n return crypto.subtle\n .decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n key,\n cipher\n )\n .then((data) => new Uint8Array(data))\n}\n\nexport const decryptJson = (\n data: Uint8Array,\n key: CryptoKey | null\n): Promise =>\n decrypt(data, key).then((decryptedValue) =>\n decoding.readAny(decoding.createDecoder(new Uint8Array(decryptedValue)))\n )\n","import * as bc from 'lib0/broadcastchannel'\nimport * as encoding from 'lib0/encoding'\nimport { createMutex } from 'lib0/mutex'\nimport * as random from 'lib0/random'\n\nimport * as Y from 'yjs' // eslint-disable-line\n\nimport { awarenessProtocol, syncProtocol } from '../protocols'\n\nimport { MessageType } from './types'\nimport { TrysteroProvider } from './TrysteroProvider'\nimport { rooms } from './connectionMaps'\nimport * as cryptoutils from './cryptoutils'\nimport { checkIsSynced, readMessage } from './messagesRead'\nimport {\n broadcastBcMessage,\n broadcastBcPeerId,\n broadcastRoomMessage,\n sendTrysteroConn,\n} from './messagesSend'\n\nimport {\n joinRoom,\n Room as TrysteroRoom,\n ActionSender,\n ActionReceiver,\n DataPayload,\n} from 'trystero'\n\nexport class Room {\n peerId: string\n doc: Y.Doc\n awareness: awarenessProtocol.Awareness\n provider: TrysteroProvider\n synced: boolean\n name: string\n key: CryptoKey | null\n bcConns: Set\n mux: any\n bcconnected: boolean\n\n // callbacks\n _bcSubscriber: (data: ArrayBuffer) => void\n _docUpdateHandler: (update: Uint8Array, _origin: any) => void\n _awarenessUpdateHandler: (changed: any, _origin: any) => void\n _beforeUnloadHandler: () => void\n _callbackPeerJoin?: (peerId: string) => void\n _callbackPeerLeave?: (peerId: string) => void\n\n // the raw trystero room\n trysteroRoom: TrysteroRoom\n trysteroConns: Record\n\n // functions to send and receive messages\n sendYjsMessage: ActionSender\n getYjsMessage: ActionReceiver\n\n constructor(\n doc: Y.Doc,\n provider: TrysteroProvider,\n name: string,\n key: CryptoKey | null\n ) {\n this.peerId = random.uuidv4() // this needs to be a random string\n this.doc = doc\n this.awareness = provider.awareness\n this.provider = provider\n this.synced = false\n this.name = name\n this.key = key\n this.bcConns = new Set()\n this.mux = createMutex()\n this.bcconnected = false\n\n // create a trystero room\n const config = {\n appId: provider.appId,\n password: provider.password,\n ...provider.peerOpts,\n }\n this.trysteroRoom = provider.joinRoom(config, name)\n\n // create actions for sending and receiving messages\n const [sendYjsMessage, getYjsMessage] =\n this.trysteroRoom.makeAction('yjs-message')\n this.sendYjsMessage = sendYjsMessage\n this.getYjsMessage = getYjsMessage\n\n this.getYjsMessage((data, peerId) => {\n const message = readMessage(this, data)\n if (message) {\n broadcastRoomMessage(this, message)\n }\n })\n\n // set the trysteroConns object\n this.trysteroConns = this.trysteroRoom.getPeers()\n\n // actions for when a peer joins the room\n this.trysteroRoom.onPeerJoin((peerId) => {\n this.trysteroConns = this.trysteroRoom.getPeers()\n this.trysteroConns[peerId].connected = true\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Sync)\n syncProtocol.writeSyncStep1(encoder, this.doc)\n sendTrysteroConn(this, peerId, encoder)\n const awarenessStates = this.awareness.getStates()\n if (awarenessStates.size > 0) {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(\n this.awareness,\n Array.from(awarenessStates.keys())\n )\n )\n sendTrysteroConn(this, peerId, encoder)\n }\n\n if (this._callbackPeerJoin) {\n this._callbackPeerJoin(peerId)\n }\n })\n\n // actions for when a peer leaves the room\n this.trysteroRoom.onPeerLeave((peerId) => {\n this.trysteroConns = this.trysteroRoom.getPeers()\n this.provider.emit('peers', [\n {\n removed: [peerId],\n added: [],\n trysteroPeers: Array.from(Object.keys(this.trysteroConns)),\n bcPeers: Array.from(this.bcConns),\n },\n ])\n checkIsSynced(this)\n\n if (this._callbackPeerLeave) {\n this._callbackPeerLeave(peerId)\n }\n })\n console.log('conns', this.trysteroConns)\n\n // Listens to broadcastchannel messages\n this._bcSubscriber = (data) =>\n cryptoutils.decrypt(new Uint8Array(data), key).then((m) =>\n this.mux(() => {\n const reply = readMessage(this, m)\n if (reply) {\n broadcastBcMessage(this, reply)\n }\n })\n )\n\n // Listens to Yjs updates and sends them to remote peers\n this._docUpdateHandler = (update: Uint8Array, _origin: any) => {\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, MessageType.Sync)\n syncProtocol.writeUpdate(encoder, update)\n broadcastRoomMessage(this, encoder)\n }\n\n // Listens to Awareness updates and sends them to remote peers\n this._awarenessUpdateHandler = (\n { added, updated, removed },\n _origin: any\n ) => {\n // combine updated clients into a single array\n const changedClients = added.concat(updated).concat(removed)\n const encoderAwareness = encoding.createEncoder()\n encoding.writeVarUint(encoderAwareness, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoderAwareness,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients)\n )\n broadcastRoomMessage(this, encoderAwareness)\n }\n\n // disconnect from all rooms on window unload\n this._beforeUnloadHandler = () => {\n awarenessProtocol.removeAwarenessStates(\n this.awareness,\n [doc.clientID],\n 'window unload'\n )\n rooms.forEach((room) => {\n room.disconnect()\n })\n }\n\n // Registering event listeners\n if (typeof window !== 'undefined') {\n window.addEventListener('beforeunload', this._beforeUnloadHandler)\n } else if (typeof process !== 'undefined') {\n process.on('exit', this._beforeUnloadHandler)\n }\n }\n\n onPeerJoin(callback: (peerId: string) => void) {\n this._callbackPeerJoin = callback\n }\n\n onPeerLeave(callback: (peerId: string) => void) {\n this._callbackPeerLeave = callback\n }\n\n connect() {\n this.doc.on('update', this._docUpdateHandler)\n this.awareness.on('update', this._awarenessUpdateHandler)\n\n // broadcast peerId via broadcastchannel\n bc.subscribe(this.name, this._bcSubscriber)\n this.bcconnected = true\n broadcastBcPeerId(this)\n\n // write sync step 1\n const encoderSync = encoding.createEncoder()\n encoding.writeVarUint(encoderSync, MessageType.Sync)\n syncProtocol.writeSyncStep1(encoderSync, this.doc)\n broadcastBcMessage(this, encoderSync)\n\n // broadcast local state\n const encoderState = encoding.createEncoder()\n encoding.writeVarUint(encoderState, MessageType.Sync)\n syncProtocol.writeSyncStep2(encoderState, this.doc)\n broadcastBcMessage(this, encoderState)\n\n // write queryAwareness\n const encoderAwarenessQuery = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessQuery, MessageType.QueryAwareness)\n broadcastBcMessage(this, encoderAwarenessQuery)\n\n // broadcast local awareness state\n const encoderAwarenessState = encoding.createEncoder()\n encoding.writeVarUint(encoderAwarenessState, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoderAwarenessState,\n awarenessProtocol.encodeAwarenessUpdate(this.awareness, [\n this.doc.clientID,\n ])\n )\n broadcastBcMessage(this, encoderAwarenessState)\n }\n\n disconnect() {\n //this.sendYjsMessage({ type: 'unsubscribe', topics: [this.name] })\n\n awarenessProtocol.removeAwarenessStates(\n this.awareness,\n [this.doc.clientID],\n 'disconnect'\n )\n\n // broadcast peerId removal via broadcastchannel\n const encoderPeerIdBc = encoding.createEncoder()\n encoding.writeVarUint(encoderPeerIdBc, MessageType.BcPeerId)\n encoding.writeUint8(encoderPeerIdBc, 0) // remove peerId from other bc peers\n encoding.writeVarString(encoderPeerIdBc, this.peerId)\n broadcastBcMessage(this, encoderPeerIdBc)\n\n bc.unsubscribe(this.name, this._bcSubscriber)\n this.bcconnected = false\n this.doc.off('update', this._docUpdateHandler)\n this.awareness.off('update', this._awarenessUpdateHandler)\n\n // leave the room\n bc.unsubscribe(this.name, () => {})\n this.trysteroRoom.leave()\n }\n\n destroy() {\n this.disconnect()\n if (typeof window !== 'undefined') {\n window.removeEventListener('beforeunload', this._beforeUnloadHandler)\n } else if (typeof process !== 'undefined') {\n process.off('exit', this._beforeUnloadHandler)\n }\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map}\n */\nconst channels = new Map()\n\n/* c8 ignore start */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n /**\n * @param {any} e\n */\n this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') })\n storage.onChange(this._onChange)\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n\n close () {\n storage.offChange(this._onChange)\n }\n}\n/* c8 ignore stop */\n\n// Use BroadcastChannel or Polyfill\n/* c8 ignore next */\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = set.create()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n /* c8 ignore next */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n","/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module environment\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* c8 ignore next 2 */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release && /node|io\\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n\n/* c8 ignore next */\nexport const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && !isNode\n/* c8 ignore next 3 */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* c8 ignore start */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* c8 ignore next 2 */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 4 */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase().replaceAll('-', '_')])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* c8 ignore next 2 */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {string}\n */\n/* c8 ignore next 5 */\nexport const ensureConf = (name) => {\n const c = getConf(name)\n if (c == null) throw new Error(`Expected configuration \"${name.toUpperCase().replaceAll('-', '_')}\"`)\n return c\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* c8 ignore next 2 */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* c8 ignore next */\nexport const production = hasConf('production')\n\n/* c8 ignore next 2 */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* c8 ignore start */\n/**\n * Color is enabled by default if the terminal supports it.\n *\n * Explicitly enable color using `--color` parameter\n * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.\n * `FORCE_COLOR=1` enables color and takes precedence over all.\n */\nexport const supportsColor = forceColor || (\n !hasParam('--no-colors') && // @todo deprecate --no-colors\n !hasConf('no-color') &&\n (!isNode || process.stdout.isTTY) && (\n !isNode ||\n hasParam('--color') ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n )\n)\n/* c8 ignore stop */\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* c8 ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/* eslint-env browser */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* c8 ignore start */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n/* c8 ignore stop */\n\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\n/* c8 ignore start */\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n if (typeof localStorage !== 'undefined' && localStorage) {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n/* c8 ignore stop */\n\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\n/* c8 ignore next */\nexport const varStorage = _localStorage\n\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n\n/**\n * A polyfill for `removeEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\n/* c8 ignore next */\nexport const offChange = eventHandler => usePolyfill || removeEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Mutual exclude for JavaScript.\n *\n * @module mutex\n */\n\n/**\n * @callback mutex\n * @param {function():void} cb Only executed when this mutex is not in the current stack\n * @param {function():void} [elseCb] Executed when this mutex is in the current stack\n */\n\n/**\n * Creates a mutual exclude function with the following property:\n *\n * ```js\n * const mutex = createMutex()\n * mutex(() => {\n * // This function is immediately executed\n * mutex(() => {\n * // This function is not executed, as the mutex is already active.\n * })\n * })\n * ```\n *\n * @return {mutex} A mutual exclude function\n * @public\n */\nexport const createMutex = () => {\n let token = true\n return (f, g) => {\n if (token) {\n token = false\n try {\n f()\n } finally {\n token = true\n }\n } else if (g !== undefined) {\n g()\n }\n }\n}\n","export enum MessageType {\n Sync = 0,\n QueryAwareness = 3,\n Awareness = 1,\n BcPeerId = 4,\n}\n\nexport type PeerId = string\n","import { Room } from './Room'\n\n// Map of rooms by name\nexport const rooms: Map = new Map()\n","import * as decoding from 'lib0/decoding'\nimport * as encoding from 'lib0/encoding'\nimport { awarenessProtocol, syncProtocol } from '../protocols'\n\nimport { MessageType } from './MessageType'\nimport { Room } from './Room'\nimport { TrysteroConn } from './TrysteroConn'\n//import { checkIsSynced } from './checkIsSynced'\nimport { broadcastBcPeerId } from './messagesSend'\n\n// read message from buffer and emit message\nexport const readMessage = (\n room: Room,\n buf: Uint8Array\n): encoding.Encoder | null => {\n const decoder = decoding.createDecoder(buf)\n const encoder = encoding.createEncoder()\n const messageType = decoding.readVarUint(decoder)\n if (room === undefined) {\n return null\n }\n const awareness = room.awareness\n const doc = room.doc\n let sendReply = false\n switch (messageType) {\n // sync step 1 and 2\n case MessageType.Sync: {\n encoding.writeVarUint(encoder, MessageType.Sync)\n const syncMessageType = syncProtocol.readSyncMessage(\n decoder,\n encoder,\n doc,\n room\n )\n // sync step 2\n if (\n syncMessageType === syncProtocol.SyncMessageType.Step2 &&\n !room.synced\n ) {\n checkIsSynced(room)\n }\n // sync step 1\n if (syncMessageType === syncProtocol.SyncMessageType.Step1) {\n sendReply = true\n }\n break\n }\n\n // reply with awareness to queryAwareness\n case MessageType.QueryAwareness:\n encoding.writeVarUint(encoder, MessageType.Awareness)\n encoding.writeVarUint8Array(\n encoder,\n awarenessProtocol.encodeAwarenessUpdate(\n awareness,\n Array.from(awareness.getStates().keys())\n )\n )\n sendReply = true\n break\n\n // handle incoming awareness data\n case MessageType.Awareness:\n awarenessProtocol.applyAwarenessUpdate(\n awareness,\n decoding.readVarUint8Array(decoder),\n room\n )\n break\n\n case MessageType.BcPeerId: {\n const add = decoding.readUint8(decoder) === 1\n const peerName = decoding.readVarString(decoder)\n if (\n peerName !== room.peerId &&\n ((room.bcConns.has(peerName) && !add) ||\n (!room.bcConns.has(peerName) && add))\n ) {\n const removed: string[] = []\n const added: string[] = []\n if (add) {\n room.bcConns.add(peerName)\n added.push(peerName)\n } else {\n room.bcConns.delete(peerName)\n removed.push(peerName)\n }\n room.provider.emit('peers', [\n {\n added,\n removed,\n trysteroPeers: Array.from(Object.keys(room.trysteroConns)),\n bcPeers: Array.from(room.bcConns),\n },\n ])\n broadcastBcPeerId(room)\n }\n\n break\n }\n\n default:\n console.error('Unable to compute message')\n return encoder\n }\n if (!sendReply) {\n // nothing has been written, no answer created\n return null\n }\n return encoder\n}\n\n// check if all peers are synced\nexport const checkIsSynced = (room: Room) => {\n let synced = true\n Array.from(Object.keys(room.trysteroConns)).forEach((peer) => {\n if (!peer.synced) {\n synced = false\n }\n })\n if ((!synced && room.synced) || (synced && !room.synced)) {\n room.synced = synced\n room.provider.emit('synced', [{ synced }])\n }\n}\n","export enum MessageType {\n Sync = 0,\n QueryAwareness = 3,\n Awareness = 1,\n BcPeerId = 4,\n}\n","import * as bc from 'lib0/broadcastchannel'\nimport * as encoding from 'lib0/encoding'\n\nimport * as cryptoutils from './cryptoutils'\n\nimport { MessageType, PeerId } from './types'\nimport { Room } from './Room'\n//import { TrysteroConn } from './TrysteroConn'\nimport { TrysteroProvider } from './TrysteroProvider'\n////import { publishSignalingMessage } from './checkIsSynced'\n//import { signalingConns } from './connectionMaps'\nimport { TargetPeers } from 'trystero'\n\n// send a message to a peer\nexport const sendTrysteroConn = (\n room: Room,\n trysteroPeer: PeerId,\n encoder: encoding.Encoder\n) => {\n try {\n room.sendYjsMessage(encoding.toUint8Array(encoder), trysteroPeer)\n } catch (e) {}\n}\n\n// broadcast a message to all peers in the room\nexport const broadcastTrysteroConn = (\n room: Room,\n encoder: encoding.Encoder\n) => {\n room.sendYjsMessage(encoding.toUint8Array(encoder))\n}\n\n// broadcast an encrypted message to all other tabs\nexport const broadcastBcMessage = (room: Room, encoder: encoding.Encoder) =>\n cryptoutils\n .encrypt(encoding.toUint8Array(encoder), room.key)\n .then((data) => room.mux(() => bc.publish(room.name, data)))\n\n// broadcast a message to all peers in the room\nexport const broadcastRoomMessage = (room: Room, encoder: encoding.Encoder) => {\n //console.log('broadcastRoomMessage', encoding.toUint8Array(encoder))\n // if the document is open in other tabs, broadcast the message via broadcastchannel\n if (room.bcconnected) {\n broadcastBcMessage(room, encoder)\n }\n // then, broadcast the message to all peers in the room\n broadcastTrysteroConn(room, encoder)\n}\n\n// broadcast peerId via broadcastchannel\nexport const broadcastBcPeerId = (room: Room) => {\n if (room.provider.filterBcConns) {\n // broadcast peerId via broadcastchannel\n const encoderPeerIdBc = encoding.createEncoder()\n encoding.writeVarUint(encoderPeerIdBc, MessageType.BcPeerId)\n encoding.writeUint8(encoderPeerIdBc, 1)\n encoding.writeVarString(encoderPeerIdBc, room.peerId)\n broadcastBcMessage(room, encoderPeerIdBc)\n }\n}\n\n// emit connection status\nexport const emitStatus = (provider: TrysteroProvider) => {\n provider.emit('status', [\n {\n connected: provider.connected,\n },\n ])\n}\n","export {getRelaySockets, joinRoom, selfId} from './nostr.js'\n","import {schnorr} from '@noble/curves/secp256k1'\nimport strategy from './strategy.js'\nimport {\n encodeBytes,\n fromJson,\n genId,\n getRelays,\n isBrowser,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toHex,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst defaultRedundancy = 5\nconst kind = 29333\nconst tag = 'x'\nconst eventMsgType = 'EVENT'\nconst privateKey = isBrowser && schnorr.utils.randomPrivateKey()\nconst publicKey = isBrowser && toHex(schnorr.getPublicKey(privateKey))\nconst subIdToTopic = {}\nconst msgHandlers = {}\n\nconst now = () => Math.floor(Date.now() / 1000)\n\nconst createEvent = async (topic, content) => {\n const payload = {\n kind,\n content,\n pubkey: publicKey,\n created_at: now(),\n tags: [[tag, topic]]\n }\n\n const id = toHex(\n new Uint8Array(\n await crypto.subtle.digest(\n 'SHA-256',\n encodeBytes(\n toJson([\n 0,\n payload.pubkey,\n payload.created_at,\n payload.kind,\n payload.tags,\n payload.content\n ])\n )\n )\n )\n )\n\n return toJson([\n eventMsgType,\n {\n ...payload,\n id,\n sig: toHex(await schnorr.sign(id, privateKey))\n }\n ])\n}\n\nconst subscribe = (subId, topic) => {\n subIdToTopic[subId] = topic\n return toJson([\n 'REQ',\n subId,\n {\n kinds: [kind],\n since: now(),\n ['#' + tag]: [topic]\n }\n ])\n}\n\nconst unsubscribe = subId => {\n delete subIdToTopic[subId]\n return toJson(['CLOSE', subId])\n}\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(url => {\n const client = makeSocket(url, data => {\n const [msgType, subId, payload, relayMsg] = fromJson(data)\n\n if (msgType !== eventMsgType) {\n const prefix = `${libName}: relay failure from ${client.url} - `\n\n if (msgType === 'NOTICE') {\n console.warn(prefix + subId)\n } else if (msgType === 'OK' && !payload) {\n console.warn(prefix + relayMsg)\n }\n return\n }\n\n msgHandlers[subId]?.(subIdToTopic[subId], payload.content)\n })\n\n clients[url] = client\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, selfTopic, onMessage) => {\n const rootSubId = genId(64)\n const selfSubId = genId(64)\n\n msgHandlers[rootSubId] = msgHandlers[selfSubId] = (topic, data) =>\n onMessage(topic, data, async (peerTopic, signal) =>\n client.send(await createEvent(peerTopic, signal))\n )\n\n client.send(subscribe(rootSubId, rootTopic))\n client.send(subscribe(selfSubId, selfTopic))\n\n return () => {\n client.send(unsubscribe(rootSubId))\n client.send(unsubscribe(selfSubId))\n delete msgHandlers[rootSubId]\n delete msgHandlers[selfSubId]\n }\n },\n\n announce: async (client, rootTopic) =>\n client.send(await createEvent(rootTopic, toJson({peerId: selfId})))\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'relay.nostr.net',\n 'relay.snort.social',\n 'relay.piazza.today',\n 'relay.exit.pub',\n 'nostr.lu.ke',\n 'nostr.mom',\n 'relay.urbanzap.space',\n 'nostr.data.haus',\n 'nostr.sathoarder.com',\n 'relay.nostromo.social',\n 'relay.nostr.bg',\n 'nostr.stakey.net',\n 'nostr.vulpem.com',\n 'a.nos.lol',\n 'eu.purplerelay.com',\n 'nostr2.sanhauf.com',\n 'e.nos.lol'\n].map(url => 'wss://' + url)\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst _shortw_utils_js_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_js_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_js_1 = require(\"./abstract/modular.js\");\nconst utils_js_1 = require(\"./abstract/utils.js\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_js_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_js_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_js_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_js_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_js_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_js_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_js_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_js_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_js_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_js_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_js_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_js_1.pow2)(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = (0, modular_js_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexports.secp256k1 = (0, _shortw_utils_js_1.createCurve)({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = (0, modular_js_1.mod)(k - c1 * a1 - c2 * a2, n);\n let k2 = (0, modular_js_1.mod)(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = (0, utils_js_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha256_1.sha256)((0, utils_js_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => (0, utils_js_1.numberToBytesBE)(n, 32);\nconst modP = (x) => (0, modular_js_1.mod)(x, secp256k1P);\nconst modN = (x) => (0, modular_js_1.mod)(x, secp256k1N);\nconst Point = exports.secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n (0, utils_js_1.aInRange)('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = utils_js_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) {\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = (0, utils_js_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = (0, utils_js_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const pub = (0, utils_js_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_js_1.inRange)(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_js_1.inRange)(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n */\nexports.schnorr = (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_js_1.numberToBytesBE,\n bytesToNumberBE: utils_js_1.bytesToNumberBE,\n taggedHash,\n mod: modular_js_1.mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.isogenyMap)(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256_1.sha256,\n}))();\nexports.hashToCurve = (() => htf.hashToCurve)();\nexports.encodeToCurve = (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport {\n inRange,\n aInRange,\n bytesToNumberBE,\n concatBytes,\n ensureBytes,\n numberToBytesBE,\n} from './abstract/utils.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexport const secp256k1 = createCurve(\n {\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k: bigint) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg) k1 = n - k1;\n if (k2neg) k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n },\n sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType, a: bigint, b: bigint) =>\n Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n) y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(\n message: Hex,\n privateKey: PrivKey,\n auxRand: Hex = randomBytes(32)\n): Uint8Array {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n) throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P)) return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N)) return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r) return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Schnorr signatures over secp256k1.\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n isogenyMap(\n Fp,\n [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n }))();\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n secp256k1.ProjectivePoint,\n (scalars: bigint[]) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n },\n {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = exports.SHA256 = void 0;\nconst _md_js_1 = require(\"./_md.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_js_1.HashMD {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_js_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_js_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\nexports.SHA256 = SHA256;\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashMD = exports.Maj = exports.Chi = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\nexports.Chi = Chi;\n/**\n * Majority function, true if any two inputs is true\n */\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\nexports.Maj = Maj;\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n (0, _assert_js_1.exists)(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.output)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.HashMD = HashMD;\n//# sourceMappingURL=_md.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBytes = isBytes;\nexports.number = number;\nexports.bool = bool;\nexports.bytes = bytes;\nexports.hash = hash;\nexports.exists = exists;\nexports.output = output;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = { number, bool, bytes, hash, exists, output };\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.byteSwap = exports.isLE = exports.rotl = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\nexports.isBytes = isBytes;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\nconst _assert_js_1 = require(\"./_assert.js\");\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexports.rotl = rotl;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nconst byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\nexports.byteSwap = byteSwap;\n// Conditionally byte swap if on a big-endian platform\nexports.byteSwapIfBE = exports.isLE ? (n) => n : (n) => (0, exports.byteSwap)(n);\n// In place byte swap for Uint32Array\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = (0, exports.byteSwap)(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n (0, _assert_js_1.bytes)(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n (0, _assert_js_1.bytes)(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n (0, _assert_js_1.bytes)(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nconst toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return crypto_1.crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)),\n randomBytes: utils_1.randomBytes,\n };\n}\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_js_1.weierstrass)({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { CHash } from './abstract/utils.js';\nimport { CurveType, weierstrass } from './abstract/weierstrass.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n return {\n hash,\n hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, _assert_js_1.hash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n (0, _assert_js_1.exists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.bytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC> extends Hash> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to?: HMAC): HMAC {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = void 0;\nexports.weierstrassPoints = weierstrassPoints;\nexports.weierstrass = weierstrass;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nconst curve_js_1 = require(\"./curve.js\");\nconst mod = require(\"./modular.js\");\nconst ut = require(\"./utils.js\");\nconst utils_js_1 = require(\"./utils.js\");\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n (0, utils_js_1.abool)('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n (0, utils_js_1.abool)('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected assertion');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE((0, utils_js_1.ensureBytes)('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = (0, utils_js_1.memoized)((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_js_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes((0, utils_js_1.ensureBytes)('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return (0, curve_js_1.pippenger)(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (sc === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, sc);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = (0, curve_js_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nfunction weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = (0, utils_js_1.ensureBytes)('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = exports.DER.toSig((0, utils_js_1.ensureBytes)('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN((0, utils_js_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return exports.DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = (0, utils_js_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push((0, utils_js_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n publicKey = (0, utils_js_1.ensureBytes)('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport {\n AffinePoint,\n BasicCurve,\n Group,\n GroupConstructor,\n validateBasic,\n wNAF,\n pippenger,\n} from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes, memoized, abool } from './utils.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n beta: bigint;\n splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve = BasicCurve & {\n // Params: a, b\n a: T;\n b: T;\n\n // Optional params\n allowedPrivateKeyLengths?: readonly number[]; // for P521\n wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n // When a cofactor != 1, there can be an effective methods to:\n // 1. Determine whether a point is torsion-free\n isTorsionFree?: (c: ProjConstructor, point: ProjPointType) => boolean;\n // 2. Clear torsion component\n clearCofactor?: (c: ProjConstructor, point: ProjPointType) => ProjPointType;\n};\n\ntype Entropy = Hex | boolean;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\nfunction validateSigVerOpts(opts: SignOpts | VerOpts) {\n if (opts.lowS !== undefined) abool('lowS', opts.lowS);\n if (opts.prehash !== undefined) abool('prehash', opts.prehash);\n}\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType extends Group> {\n readonly px: T;\n readonly py: T;\n readonly pz: T;\n get x(): T;\n get y(): T;\n multiply(scalar: bigint): ProjPointType;\n toAffine(iz?: T): AffinePoint;\n isTorsionFree(): boolean;\n clearCofactor(): ProjPointType;\n assertValidity(): void;\n hasEvenY(): boolean;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n\n multiplyUnsafe(scalar: bigint): ProjPointType;\n multiplyAndAddUnsafe(Q: ProjPointType, a: bigint, b: bigint): ProjPointType | undefined;\n _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor extends GroupConstructor> {\n new (x: T, y: T, z: T): ProjPointType;\n fromAffine(p: AffinePoint): ProjPointType;\n fromHex(hex: Hex): ProjPointType;\n fromPrivateKey(privateKey: PrivKey): ProjPointType;\n normalizeZ(points: ProjPointType[]): ProjPointType[];\n msm(points: ProjPointType[], scalars: bigint[]): ProjPointType;\n}\n\nexport type CurvePointsType = BasicWCurve & {\n // Bytes\n fromBytes?: (bytes: Uint8Array) => AffinePoint;\n toBytes?: (c: ProjConstructor, point: ProjPointType, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts(curve: CurvePointsType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n a: 'field',\n b: 'field',\n },\n {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n }\n );\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (\n typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function'\n ) {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes = {\n CURVE: ReturnType>;\n ProjectivePoint: ProjConstructor;\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n weierstrassEquation: (x: T) => T;\n isWithinCurveOrder: (num: bigint) => boolean;\n};\n\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag: number, data: string) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length & 1) throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 0b1000_0000) throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 0b1000_0000) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array } {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag) throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 0b1000_0000); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong) length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 0b0111_1111;\n if (!lenLen) throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4) throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen) throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0) throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes) length = (length << 8) | b;\n pos += lenLen;\n if (length < 128) throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length) throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num: bigint) {\n const { Err: E } = DER;\n if (num < _0n) throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000) hex = '00' + hex;\n if (hex.length & 1) throw new E('unexpected assertion');\n return hex;\n },\n decode(data: Uint8Array): bigint {\n const { Err: E } = DER;\n if (data[0] & 0b1000_0000) throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 0b1000_0000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig: { r: bigint; s: bigint }): string {\n const { _tlv: tlv, _int: int } = DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function weierstrassPoints(opts: CurvePointsType): CurvePointsRes {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n\n const toBytes =\n CURVE.toBytes ||\n ((_c: ProjConstructor, point: ProjPointType, _isCompressed: boolean) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes =\n CURVE.fromBytes ||\n ((bytes: Uint8Array) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x: T): T {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num: bigint): boolean {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key: PrivKey): bigint {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key)) key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num: bigint;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey) num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n\n function assertPrjPoint(other: unknown) {\n if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n }\n\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p: Point, iz?: T): AffinePoint => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE)) return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p: Point) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py)) return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point implements ProjPointType {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n constructor(\n readonly px: T,\n readonly py: T,\n readonly pz: T\n ) {\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n Object.freeze(this);\n }\n\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p: AffinePoint): Point {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n const is0 = (i: T) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n\n get x(): T {\n return this.toAffine().x;\n }\n get y(): T {\n return this.toAffine().y;\n }\n\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points: Point[]): Point[] {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex: Hex): Point {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey: PrivKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n\n // Multiscalar Multiplication\n static msm(points: Point[], scalars: bigint[]) {\n return pippenger(Point, Fn, points, scalars);\n }\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n wnaf.setWindowSize(this, windowSize);\n }\n\n // A point on curve is valid if it conforms to equation.\n assertValidity(): void {\n assertValidMemo(this);\n }\n\n hasEvenY(): boolean {\n const { y } = this.toAffine();\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n\n /**\n * Compare one point to another.\n */\n equals(other: Point): boolean {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate(): Point {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other: Point): Point {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n\n subtract(other: Point) {\n return this.add(other.negate());\n }\n\n is0() {\n return this.equals(Point.ZERO);\n }\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc: bigint): Point {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n) return I;\n if (sc === _1n) return this;\n const { endo } = CURVE;\n if (!endo) return wnaf.unsafeLadder(this, sc);\n\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d: Point = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n) k1p = k1p.add(d);\n if (k2 & _1n) k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg) k1p = k1p.negate();\n if (k2neg) k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar: bigint): Point {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point: Point, fake: Point; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n } else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (\n P: Point,\n a: bigint // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz?: T): AffinePoint {\n return toAffineMemo(this, iz);\n }\n isTorsionFree(): boolean {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n) return true; // No subgroups, always torsion-free\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor(): Point {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n) return this; // Fast-path\n if (clearCofactor) return clearCofactor(Point, this) as Point;\n return this.multiplyUnsafe(CURVE.h);\n }\n\n toRawBytes(isCompressed = true): Uint8Array {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n\n toHex(isCompressed = true): string {\n abool('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point as ProjConstructor,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\n\n// Instance\nexport interface SignatureType {\n readonly r: bigint;\n readonly s: bigint;\n readonly recovery?: number;\n assertValidity(): void;\n addRecoveryBit(recovery: number): RecoveredSignatureType;\n hasHighS(): boolean;\n normalizeS(): SignatureType;\n recoverPublicKey(msgHash: Hex): ProjPointType;\n toCompactRawBytes(): Uint8Array;\n toCompactHex(): string;\n // DER-encoded\n toDERRawBytes(isCompressed?: boolean): Uint8Array;\n toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n new (r: bigint, s: bigint): SignatureType;\n fromCompact(hex: Hex): SignatureType;\n fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType;\n\nexport type CurveType = BasicWCurve & {\n hash: CHash; // CHash not FHash because we need outputLen for DRBG\n hmac: HmacFnSync;\n randomBytes: (bytesLength?: number) => Uint8Array;\n lowS?: boolean;\n bits2int?: (bytes: Uint8Array) => bigint;\n bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n },\n {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n }\n );\n return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n CURVE: ReturnType;\n getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n ProjectivePoint: ProjConstructor;\n Signature: SignatureConstructor;\n utils: {\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n isValidPrivateKey(privateKey: PrivKey): boolean;\n randomPrivateKey: () => Uint8Array;\n precompute: (windowSize?: number, point?: ProjPointType) => ProjPointType;\n };\n};\n\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType;\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n function modN(a: bigint) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a: bigint) {\n return mod.invert(a, CURVE_ORDER);\n }\n\n const {\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed: boolean): Uint8Array {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes: Uint8Array) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER)) throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y: bigint;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n } catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return { x, y };\n } else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n } else {\n throw new Error(\n `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n );\n }\n },\n });\n const numToNByteStr = (num: bigint): string =>\n ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n function isBiggerThanHalfOrder(number: bigint) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n\n function normalizeS(s: bigint) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature implements SignatureType {\n constructor(\n readonly r: bigint,\n readonly s: bigint,\n readonly recovery?: number\n ) {\n this.assertValidity();\n }\n\n // pair (bytes of r, bytes of s)\n static fromCompact(hex: Hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex: Hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n\n assertValidity(): void {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n\n addRecoveryBit(recovery: number): RecoveredSignature {\n return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n }\n\n recoverPublicKey(msgHash: Hex): typeof Point.BASE {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n\n // Signatures should be low-s, to prevent malleability.\n hasHighS(): boolean {\n return isBiggerThanHalfOrder(this.s);\n }\n\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n type RecoveredSignature = Signature & { recovery: number };\n\n const utils = {\n isValidPrivateKey(privateKey: PrivKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: (): Uint8Array => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey: PrivKey, isCompressed = true): Uint8Array {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item: PrivKey | PubKey): boolean {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && (item as Hex).length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\n\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int =\n CURVE.bits2int ||\n function (bytes: Uint8Array): bigint {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN =\n CURVE.bits2int_modN ||\n function (bytes: Uint8Array): bigint {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num: bigint): Uint8Array {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash: Hex, privateKey: PrivKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n) return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n) return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(\n signature: Hex | SignatureLike,\n msgHash: Hex,\n publicKey: Hex,\n opts = defaultVerOpts\n ): boolean {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n\n let _sig: Signature | undefined = undefined;\n let P: ProjPointType;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\n }\n } else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n } else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n } catch (error) {\n if ((error as Error).message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS()) return false;\n if (prehash) msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R) return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp: mod.IField, Z: T) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u: T, v: T) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(\n Fp: mod.IField,\n opts: {\n A: T;\n B: T;\n Z: T;\n }\n) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd) throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u: T): { x: T; y: T } => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = wNAF;\nexports.pippenger = pippenger;\nexports.validateBasic = validateBasic;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, n, transform) {\n const W = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nfunction pippenger(c, field, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error(`wrong point at index ${i}`);\n });\n const wbits = (0, utils_js_1.bitLen)(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\nfunction validateBasic(curve) {\n (0, modular_js_1.validateField)(curve.Fp);\n (0, utils_js_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_js_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject, bitLen } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper = (i: T[]) => T[];\n\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF>(c: GroupConstructor, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W: number) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W: number) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm: T, W: number): Group[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n\n let p = c.ZERO;\n let f = c.BASE;\n\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n\n wNAFCached(P: T, n: bigint, transform: Mapper): { p: T; f: T } {\n const W: number = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W) as T[];\n if (W !== 1) pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n\n setWindowSize(P: T, W: number) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger>(\n c: GroupConstructor,\n field: IField,\n points: T[],\n scalars: bigint[]\n): T {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s)) throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof (c as any))) throw new Error(`wrong point at index ${i}`);\n });\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0) for (let j = 0; j < windowSize; j++) sum = sum.double();\n }\n return sum as T;\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve = {\n Fp: IField; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic(curve: BasicCurve & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nconst utils_js_1 = require(\"./utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nfunction invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return (0, utils_js_1.validateObject)(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nfunction FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nfunction FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nfunction FpLegendre(order) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: (0, utils_js_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? (0, utils_js_1.numberToBytesLE)(num, BYTES) : (0, utils_js_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? (0, utils_js_1.bytesToNumberLE)(bytes) : (0, utils_js_1.bytesToNumberBE)(bytes);\n },\n });\n return Object.freeze(f);\n}\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_js_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberLE)(hash) : (0, utils_js_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberBE)(key) : (0, utils_js_1.bytesToNumberLE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_js_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_js_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n numberToBytesBE,\n numberToBytesLE,\n validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n\n let Q: bigint, S: number, Z: bigint;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp: IField, n: T): T {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\n\nexport function FpSqrt(P: bigint) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp: IField, n: T) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField(field: IField) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f: IField, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f: IField, nums: T[]): T[] {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv(f: IField, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\nexport function FpLegendre(order: bigint) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f: IField, x: T): T => f.pow(x, legendreConst);\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f: IField) {\n const legendre = FpLegendre(f.ORDER);\n return (x: T): boolean => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField & Required, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial> = {}\n): Readonly {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.bytesToHex = bytesToHex;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nexport function abytes(item: unknown): void {\n if (!isBytes(item)) throw new Error('Uint8Array expected');\n}\n\nexport function abool(title: string, value: boolean): void {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Is positive bigint\nconst isPosBig = (n: bigint) => typeof n === 'bigint' && _0n <= n;\n\nexport function inRange(n: bigint, min: bigint, max: bigint) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title: string, n: bigint, min: bigint, max: bigint) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn: (arg: T, ...args: O) => R) {\n const map = new WeakMap();\n return (arg: T, ...args: O): R => {\n const val = map.get(arg);\n if (val !== undefined) return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_js_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_js_1.concatBytes)((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_js_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_js_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_js_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_js_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_js_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_js_1.validateObject)(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n (0, utils_js_1.abytes)(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? (0, utils_js_1.utf8ToBytes)(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_js_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nfunction createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport type { AffinePoint, Group, GroupConstructor } from './curve.js';\nimport { IField, mod } from './modular.js';\nimport type { CHash } from './utils.js';\nimport { abytes, bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';\n\n/**\n * * `DST` is a domain separation tag, defined in section 2.2.5\n * * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m\n * * `m` is extension degree (1 for prime fields)\n * * `k` is the target security target in bits (e.g. 128), from section 5.1\n * * `expand` is `xmd` (SHA2, SHA3, BLAKE) or `xof` (SHAKE, BLAKE-XOF)\n * * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props\n */\ntype UnicodeOrBytes = string | Uint8Array;\nexport type Opts = {\n DST: UnicodeOrBytes;\n p: bigint;\n m: number;\n k: number;\n expand: 'xmd' | 'xof';\n hash: CHash;\n};\n\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value: number, length: number): Uint8Array {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0) as number[];\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\n\nfunction strxor(a: Uint8Array, b: Uint8Array): Uint8Array {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\n\nfunction anum(item: unknown): void {\n if (!Number.isSafeInteger(item)) throw new Error('number expected');\n}\n\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nexport function expand_message_xmd(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255) DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255) throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nexport function expand_message_xof(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n k: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (\n H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest()\n );\n}\n\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg: Uint8Array, count: number, options: Opts): bigint[][] {\n validateObject(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n abytes(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? utf8ToBytes(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n } else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n } else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n } else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\n\nexport function isogenyMap>(field: F, map: [T[], T[], T[], T[]]) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x: T, y: T) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) =>\n val.reduce((acc, i) => field.add(field.mul(acc, x), i))\n );\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\n\nexport interface H2CPoint extends Group> {\n add(rhs: H2CPoint): H2CPoint;\n toAffine(iz?: bigint): AffinePoint;\n clearCofactor(): H2CPoint;\n assertValidity(): void;\n}\n\nexport interface H2CPointConstructor extends GroupConstructor> {\n fromAffine(ap: AffinePoint): H2CPoint;\n}\n\nexport type MapToCurve = (scalar: bigint[]) => AffinePoint;\n\n// Separated from initialization opts, so users won't accidentally change per-curve parameters\n// (changing DST is ok!)\nexport type htfBasicOpts = { DST: UnicodeOrBytes };\n\nexport function createHasher(\n Point: H2CPointConstructor,\n mapToCurve: MapToCurve,\n def: Opts & { encodeDST?: UnicodeOrBytes }\n) {\n if (typeof mapToCurve !== 'function') throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options } as Opts);\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options } as Opts);\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars: bigint[]) {\n if (!Array.isArray(scalars)) throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n","import {decrypt, encrypt, genKey, sha1} from './crypto.js'\nimport initPeer from './peer.js'\nimport room from './room.js'\nimport {\n all,\n alloc,\n fromJson,\n libName,\n mkErr,\n noOp,\n selfId,\n toJson,\n topicPath\n} from './utils.js'\n\nconst poolSize = 20\nconst announceIntervalMs = 5_333\nconst offerTtl = 57_333\n\nexport default ({init, subscribe, announce}) => {\n const occupiedRooms = {}\n\n let didInit = false\n let initPromises\n let offerPool\n let offerCleanupTimer\n\n return (config, roomId, onJoinError) => {\n const {appId} = config\n\n if (occupiedRooms[appId]?.[roomId]) {\n return occupiedRooms[appId][roomId]\n }\n\n const pendingOffers = {}\n const connectedPeers = {}\n const rootTopicPlaintext = topicPath(libName, appId, roomId)\n const rootTopicP = sha1(rootTopicPlaintext)\n const selfTopicP = sha1(topicPath(rootTopicPlaintext, selfId))\n const key = genKey(config.password || '', appId, roomId)\n\n const withKey = f => async signal => ({\n type: signal.type,\n sdp: await f(key, signal.sdp)\n })\n\n const toPlain = withKey(decrypt)\n const toCipher = withKey(encrypt)\n\n const makeOffer = () => initPeer(true, config.rtcConfig)\n\n const connectPeer = (peer, peerId, clientId) => {\n if (connectedPeers[peerId]) {\n if (connectedPeers[peerId] !== peer) {\n peer.destroy()\n }\n return\n }\n\n connectedPeers[peerId] = peer\n onPeerConnect(peer, peerId)\n\n pendingOffers[peerId]?.forEach((peer, i) => {\n if (i !== clientId) {\n peer.destroy()\n }\n })\n delete pendingOffers[peerId]\n }\n\n const disconnectPeer = (peer, peerId) => {\n if (connectedPeers[peerId] === peer) {\n delete connectedPeers[peerId]\n }\n }\n\n const prunePendingOffer = (peerId, clientId) => {\n if (connectedPeers[peerId]) {\n return\n }\n\n const offer = pendingOffers[peerId]?.[clientId]\n\n if (offer) {\n delete pendingOffers[peerId][clientId]\n offer.destroy()\n }\n }\n\n const getOffers = n => {\n offerPool.push(...alloc(n, makeOffer))\n\n return all(\n offerPool\n .splice(0, n)\n .map(peer =>\n peer.offerPromise.then(toCipher).then(offer => ({peer, offer}))\n )\n )\n }\n\n const handleJoinError = (peerId, sdpType) =>\n onJoinError?.({\n error: `incorrect password (${config.password}) when decrypting ${sdpType}`,\n appId,\n peerId,\n roomId\n })\n\n const handleMessage = clientId => async (topic, msg, signalPeer) => {\n const [rootTopic, selfTopic] = await all([rootTopicP, selfTopicP])\n\n if (topic !== rootTopic && topic !== selfTopic) {\n return\n }\n\n const {peerId, offer, answer, peer} =\n typeof msg === 'string' ? fromJson(msg) : msg\n\n if (peerId === selfId || connectedPeers[peerId]) {\n return\n }\n\n if (peerId && !offer && !answer) {\n if (pendingOffers[peerId]?.[clientId]) {\n return\n }\n\n const [[{peer, offer}], topic] = await all([\n getOffers(1),\n sha1(topicPath(rootTopicPlaintext, peerId))\n ])\n\n pendingOffers[peerId] ||= []\n pendingOffers[peerId][clientId] = peer\n\n setTimeout(\n () => prunePendingOffer(peerId, clientId),\n announceIntervals[clientId] * 0.9\n )\n\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n signalPeer(topic, toJson({peerId: selfId, offer}))\n } else if (offer) {\n const myOffer = pendingOffers[peerId]?.[clientId]\n\n if (myOffer && selfId > peerId) {\n return\n }\n\n const peer = initPeer(false, config.rtcConfig)\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n let plainOffer\n\n try {\n plainOffer = await toPlain(offer)\n } catch (_) {\n handleJoinError(peerId, 'offer')\n return\n }\n\n if (peer.isDead) {\n return\n }\n\n const [topic, answer] = await all([\n sha1(topicPath(rootTopicPlaintext, peerId)),\n peer.signal(plainOffer)\n ])\n\n signalPeer(\n topic,\n toJson({peerId: selfId, answer: await toCipher(answer)})\n )\n } else if (answer) {\n let plainAnswer\n\n try {\n plainAnswer = await toPlain(answer)\n } catch (e) {\n handleJoinError(peerId, 'answer')\n return\n }\n\n if (peer) {\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n peer.signal(plainAnswer)\n } else {\n const peer = pendingOffers[peerId]?.[clientId]\n\n if (peer && !peer.isDead) {\n peer.signal(plainAnswer)\n }\n }\n }\n }\n\n if (!config) {\n throw mkErr('requires a config map as the first argument')\n }\n\n if (!appId && !config.firebaseApp) {\n throw mkErr('config map is missing appId field')\n }\n\n if (!roomId) {\n throw mkErr('roomId argument required')\n }\n\n if (!didInit) {\n const initRes = init(config)\n offerPool = alloc(poolSize, makeOffer)\n initPromises = Array.isArray(initRes) ? initRes : [initRes]\n didInit = true\n offerCleanupTimer = setInterval(\n () =>\n (offerPool = offerPool.filter(peer => {\n const shouldLive = Date.now() - peer.created < offerTtl\n\n if (!shouldLive) {\n peer.destroy()\n }\n\n return shouldLive\n })),\n offerTtl * 1.03\n )\n }\n\n const announceIntervals = initPromises.map(() => announceIntervalMs)\n const announceTimeouts = []\n\n const unsubFns = initPromises.map(async (clientP, i) =>\n subscribe(\n await clientP,\n await rootTopicP,\n await selfTopicP,\n handleMessage(i),\n getOffers\n )\n )\n\n all([rootTopicP, selfTopicP]).then(([rootTopic, selfTopic]) => {\n const queueAnnounce = async (client, i) => {\n const ms = await announce(client, rootTopic, selfTopic)\n\n if (typeof ms === 'number') {\n announceIntervals[i] = ms\n }\n\n announceTimeouts[i] = setTimeout(\n () => queueAnnounce(client, i),\n announceIntervals[i]\n )\n }\n\n unsubFns.forEach(async (didSub, i) => {\n await didSub\n queueAnnounce(await initPromises[i], i)\n })\n })\n\n let onPeerConnect = noOp\n\n occupiedRooms[appId] ||= {}\n\n return (occupiedRooms[appId][roomId] = room(\n f => (onPeerConnect = f),\n id => delete connectedPeers[id],\n () => {\n delete occupiedRooms[appId][roomId]\n announceTimeouts.forEach(clearTimeout)\n unsubFns.forEach(async f => (await f)())\n clearInterval(offerCleanupTimer)\n }\n ))\n }\n}\n","import {decodeBytes, encodeBytes} from './utils.js'\n\nconst algo = 'AES-GCM'\nconst strToSha1 = {}\n\nconst pack = buff => btoa(String.fromCharCode.apply(null, new Uint8Array(buff)))\n\nconst unpack = packed => {\n const str = atob(packed)\n\n return new Uint8Array(str.length).map((_, i) => str.charCodeAt(i)).buffer\n}\n\nexport const sha1 = async str => {\n if (strToSha1[str]) {\n return strToSha1[str]\n }\n\n const hash = Array.from(\n new Uint8Array(await crypto.subtle.digest('SHA-1', encodeBytes(str)))\n )\n .map(b => b.toString(36))\n .join('')\n\n // eslint-disable-next-line require-atomic-updates\n strToSha1[str] = hash\n\n return hash\n}\n\nexport const genKey = async (secret, appId, roomId) =>\n crypto.subtle.importKey(\n 'raw',\n await crypto.subtle.digest(\n {name: 'SHA-256'},\n encodeBytes(`${secret}:${appId}:${roomId}`)\n ),\n {name: algo},\n false,\n ['encrypt', 'decrypt']\n )\n\nconst joinChar = '$'\nconst ivJoinChar = ','\n\nexport const encrypt = async (keyP, plaintext) => {\n const iv = crypto.getRandomValues(new Uint8Array(16))\n\n return (\n iv.join(ivJoinChar) +\n joinChar +\n pack(\n await crypto.subtle.encrypt(\n {name: algo, iv},\n await keyP,\n encodeBytes(plaintext)\n )\n )\n )\n}\n\nexport const decrypt = async (keyP, raw) => {\n const [iv, c] = raw.split(joinChar)\n\n return decodeBytes(\n await crypto.subtle.decrypt(\n {name: algo, iv: new Uint8Array(iv.split(ivJoinChar))},\n await keyP,\n unpack(c)\n )\n )\n}\n","export const libName = 'Trystero'\n\nexport const alloc = (n, f) => Array(n).fill().map(f)\n\nconst charSet = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'\n\nexport const genId = n =>\n alloc(n, () => charSet[Math.floor(Math.random() * charSet.length)]).join('')\n\nexport const selfId = genId(20)\n\nexport const all = Promise.all.bind(Promise)\n\nexport const isBrowser = typeof window !== 'undefined'\n\nexport const {entries, fromEntries, keys} = Object\n\nexport const noOp = () => {}\n\nexport const mkErr = msg => new Error(`${libName}: ${msg}`)\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const encodeBytes = txt => encoder.encode(txt)\n\nexport const decodeBytes = buffer => decoder.decode(buffer)\n\nexport const toHex = buffer =>\n buffer.reduce((a, c) => a + c.toString(16).padStart(2, '0'), '')\n\nexport const topicPath = (...parts) => parts.join('@')\n\nexport const getRelays = (config, defaults, defaultN) =>\n (config.relayUrls || defaults).slice(\n 0,\n config.relayUrls\n ? config.relayUrls.length\n : config.relayRedundancy || defaultN\n )\n\nexport const toJson = JSON.stringify\n\nexport const fromJson = JSON.parse\n\nconst defaultRetryMs = 3333\nconst socketRetryPeriods = {}\n\nexport const makeSocket = (url, onMessage) => {\n const client = {}\n\n const init = () => {\n const socket = new WebSocket(url)\n\n socket.onclose = () => {\n socketRetryPeriods[url] ??= defaultRetryMs\n setTimeout(init, socketRetryPeriods[url])\n socketRetryPeriods[url] *= 2\n }\n\n socket.onmessage = e => onMessage(e.data)\n client.socket = socket\n client.url = socket.url\n client.ready = new Promise(\n res =>\n (socket.onopen = () => {\n res(client)\n socketRetryPeriods[url] = defaultRetryMs\n })\n )\n client.send = data => {\n if (socket.readyState === 1) {\n socket.send(data)\n }\n }\n }\n\n init()\n\n return client\n}\n\nexport const socketGetter = clientMap => () =>\n fromEntries(entries(clientMap).map(([url, client]) => [url, client.socket]))\n","import Peer from '@thaunknown/simple-peer'\nimport {alloc} from './utils.js'\n\nconst dataEvent = 'data'\nconst signalEvent = 'signal'\n\nexport default (initiator, config) => {\n const peer = new Peer({\n ...{iceServers: [{urls: defaultIceServers}]},\n ...config,\n initiator,\n trickle: false\n })\n const onData = d => earlyDataBuffer.push(d)\n\n let earlyDataBuffer = []\n\n peer.on(dataEvent, onData)\n\n return {\n id: peer._id,\n\n created: Date.now(),\n\n connection: peer._pc,\n\n get channel() {\n return peer._channel\n },\n\n get isDead() {\n return peer.destroyed\n },\n\n signal: sdp =>\n new Promise(res => {\n if (!initiator) {\n peer.on(signalEvent, res)\n }\n peer.signal(sdp)\n }),\n\n sendData: data => peer.send(data),\n\n destroy: () => peer.destroy(),\n\n setHandlers: handlers =>\n Object.entries(handlers).forEach(([event, fn]) => peer.on(event, fn)),\n\n offerPromise: initiator\n ? new Promise(res => peer.on(signalEvent, res))\n : Promise.resolve(),\n\n addStream: stream => peer.addStream(stream),\n\n removeStream: stream => peer.removeStream(stream),\n\n addTrack: (track, stream) => peer.addTrack(track, stream),\n\n removeTrack: (track, stream) => peer.removeTrack(track, stream),\n\n replaceTrack: (oldTrack, newTrack, stream) =>\n peer.replaceTrack(oldTrack, newTrack, stream),\n\n drainEarlyData: f => {\n peer.off(dataEvent, onData)\n earlyDataBuffer.forEach(f)\n earlyDataBuffer = null\n }\n }\n}\n\nexport const defaultIceServers = [\n ...alloc(5, (_, i) => `stun:stun${i || ''}.l.google.com:19302`),\n 'stun:global.stun.twilio.com:3478'\n]\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport Lite from './lite.js'\r\nimport errCode from 'err-code'\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Lite {\r\n constructor (opts = {}) {\r\n super(opts)\r\n if (!this._pc) return\r\n\r\n this.streams = opts.streams || (opts.stream ? [opts.stream] : []) // support old \"stream\" option\r\n this._senderMap = new Map()\r\n\r\n if (this.streams) {\r\n this.streams.forEach(stream => {\r\n this.addStream(stream)\r\n })\r\n }\r\n this._pc.ontrack = event => {\r\n this._onTrack(event)\r\n }\r\n }\r\n\r\n /**\r\n * Add a Transceiver to the connection.\r\n * @param {String} kind\r\n * @param {Object=} init\r\n */\r\n addTransceiver (kind, init) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTransceiver after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTransceiver()')\r\n\r\n if (this.initiator) {\r\n try {\r\n this._pc.addTransceiver(kind, init)\r\n this._needsNegotiation()\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_ADD_TRANSCEIVER'))\r\n }\r\n } else {\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'transceiverRequest',\r\n transceiverRequest: { kind, init }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Add a MediaStream to the connection.\r\n * @param {MediaStream} stream\r\n */\r\n addStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addStream()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.addTrack(track, stream)\r\n })\r\n }\r\n\r\n /**\r\n * Add a MediaStreamTrack to the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n addTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTrack()')\r\n\r\n const submap = this._senderMap.get(track) || new Map() // nested Maps map [track, stream] to sender\r\n let sender = submap.get(stream)\r\n if (!sender) {\r\n sender = this._pc.addTrack(track, stream)\r\n submap.set(stream, sender)\r\n this._senderMap.set(track, submap)\r\n this._needsNegotiation()\r\n } else if (sender.removed) {\r\n throw errCode(new Error('Track has been removed. You should enable/disable tracks that you want to re-add.'), 'ERR_SENDER_REMOVED')\r\n } else {\r\n throw errCode(new Error('Track has already been added to that stream.'), 'ERR_SENDER_ALREADY_ADDED')\r\n }\r\n }\r\n\r\n /**\r\n * Replace a MediaStreamTrack by another in the connection.\r\n * @param {MediaStreamTrack} oldTrack\r\n * @param {MediaStreamTrack} newTrack\r\n * @param {MediaStream} stream\r\n */\r\n replaceTrack (oldTrack, newTrack, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot replaceTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('replaceTrack()')\r\n\r\n const submap = this._senderMap.get(oldTrack)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot replace track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n if (newTrack) this._senderMap.set(newTrack, submap)\r\n\r\n if (sender.replaceTrack != null) {\r\n sender.replaceTrack(newTrack)\r\n } else {\r\n this.__destroy(errCode(new Error('replaceTrack is not supported in this browser'), 'ERR_UNSUPPORTED_REPLACETRACK'))\r\n }\r\n }\r\n\r\n /**\r\n * Remove a MediaStreamTrack from the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n removeTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSender()')\r\n\r\n const submap = this._senderMap.get(track)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot remove track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n try {\r\n sender.removed = true\r\n this._pc.removeTrack(sender)\r\n } catch (err) {\r\n if (err.name === 'NS_ERROR_UNEXPECTED') {\r\n this._sendersAwaitingStable.push(sender) // HACK: Firefox must wait until (signalingState === stable) https://bugzilla.mozilla.org/show_bug.cgi?id=1133874\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_REMOVE_TRACK'))\r\n }\r\n }\r\n this._needsNegotiation()\r\n }\r\n\r\n /**\r\n * Remove a MediaStream from the connection.\r\n * @param {MediaStream} stream\r\n */\r\n removeStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSenders()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.removeTrack(track, stream)\r\n })\r\n }\r\n\r\n _requestMissingTransceivers () {\r\n if (this._pc.getTransceivers) {\r\n this._pc.getTransceivers().forEach(transceiver => {\r\n if (!transceiver.mid && transceiver.sender.track && !transceiver.requested) {\r\n transceiver.requested = true // HACK: Safari returns negotiated transceivers with a null mid\r\n this.addTransceiver(transceiver.sender.track.kind)\r\n }\r\n })\r\n }\r\n }\r\n\r\n _onTrack (event) {\r\n if (this.destroyed) return\r\n\r\n event.streams.forEach(eventStream => {\r\n this._debug('on track')\r\n this.emit('track', event.track, eventStream)\r\n\r\n this._remoteTracks.push({\r\n track: event.track,\r\n stream: eventStream\r\n })\r\n\r\n if (this._remoteStreams.some(remoteStream => {\r\n return remoteStream.id === eventStream.id\r\n })) return // Only fire one 'stream' event, even though there may be multiple tracks per stream\r\n\r\n this._remoteStreams.push(eventStream)\r\n queueMicrotask(() => {\r\n this._debug('on stream')\r\n this.emit('stream', eventStream) // ensure all tracks have been added\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default Peer\r\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport debug from 'debug'\r\nimport { RTCPeerConnection, RTCSessionDescription, RTCIceCandidate } from 'webrtc-polyfill'\r\nimport { Duplex } from 'streamx'\r\nimport errCode from 'err-code'\r\nimport { randomBytes, arr2hex, text2arr } from 'uint8-util'\r\n\r\nconst Debug = debug('simple-peer')\r\n\r\nconst MAX_BUFFERED_AMOUNT = 64 * 1024\r\nconst ICECOMPLETE_TIMEOUT = 5 * 1000\r\nconst CHANNEL_CLOSING_TIMEOUT = 5 * 1000\r\n\r\n// HACK: Filter trickle lines when trickle is disabled #354\r\nfunction filterTrickle (sdp) {\r\n return sdp.replace(/a=ice-options:trickle\\s\\n/g, '')\r\n}\r\n\r\nfunction warn (message) {\r\n console.warn(message)\r\n}\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Duplex {\r\n /** @type {RTCPeerConnection} */\r\n _pc\r\n constructor (opts) {\r\n opts = Object.assign({\r\n allowHalfOpen: false\r\n }, opts)\r\n\r\n super(opts)\r\n\r\n this.__objectMode = !!opts.objectMode // streamx is objectMode by default, so implement readable's fuctionality\r\n\r\n this._id = arr2hex(randomBytes(4)).slice(0, 7)\r\n this._debug('new peer %o', opts)\r\n\r\n this.channelName = opts.initiator\r\n ? opts.channelName || arr2hex(randomBytes(20))\r\n : null\r\n\r\n this.initiator = opts.initiator || false\r\n this.channelConfig = opts.channelConfig || Peer.channelConfig\r\n this.channelNegotiated = this.channelConfig.negotiated\r\n this.config = Object.assign({}, Peer.config, opts.config)\r\n this.offerOptions = opts.offerOptions || {}\r\n this.answerOptions = opts.answerOptions || {}\r\n this.sdpTransform = opts.sdpTransform || (sdp => sdp)\r\n this.trickle = opts.trickle !== undefined ? opts.trickle : true\r\n this.allowHalfTrickle = opts.allowHalfTrickle !== undefined ? opts.allowHalfTrickle : false\r\n this.iceCompleteTimeout = opts.iceCompleteTimeout || ICECOMPLETE_TIMEOUT\r\n\r\n this._destroying = false\r\n this._connected = false\r\n\r\n this.remoteAddress = undefined\r\n this.remoteFamily = undefined\r\n this.remotePort = undefined\r\n this.localAddress = undefined\r\n this.localFamily = undefined\r\n this.localPort = undefined\r\n\r\n if (!RTCPeerConnection) {\r\n if (typeof window === 'undefined') {\r\n throw errCode(new Error('No WebRTC support: Specify `opts.wrtc` option in this environment'), 'ERR_WEBRTC_SUPPORT')\r\n } else {\r\n throw errCode(new Error('No WebRTC support: Not a supported browser'), 'ERR_WEBRTC_SUPPORT')\r\n }\r\n }\r\n\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._iceComplete = false // ice candidate trickle done (got null candidate)\r\n this._iceCompleteTimer = null // send an offer/answer anyway after some timeout\r\n this._channel = null\r\n this._pendingCandidates = []\r\n\r\n this._isNegotiating = false // is this peer waiting for negotiation to complete?\r\n this._firstNegotiation = true\r\n this._batchedNegotiation = false // batch synchronous negotiations\r\n this._queuedNegotiation = false // is there a queued negotiation request?\r\n this._sendersAwaitingStable = []\r\n this._closingInterval = null\r\n\r\n this._remoteTracks = []\r\n this._remoteStreams = []\r\n\r\n this._chunk = null\r\n this._cb = null\r\n this._interval = null\r\n\r\n try {\r\n this._pc = new RTCPeerConnection(this.config)\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_PC_CONSTRUCTOR'))\r\n return\r\n }\r\n\r\n // We prefer feature detection whenever possible, but sometimes that's not\r\n // possible for certain implementations.\r\n this._isReactNativeWebrtc = typeof this._pc._peerConnectionId === 'number'\r\n\r\n this._pc.oniceconnectionstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onicegatheringstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onconnectionstatechange = () => {\r\n this._onConnectionStateChange()\r\n }\r\n this._pc.onsignalingstatechange = () => {\r\n this._onSignalingStateChange()\r\n }\r\n this._pc.onicecandidate = event => {\r\n this._onIceCandidate(event)\r\n }\r\n\r\n // HACK: Fix for odd Firefox behavior, see: https://github.com/feross/simple-peer/pull/783\r\n if (typeof this._pc.peerIdentity === 'object') {\r\n this._pc.peerIdentity.catch(err => {\r\n this.__destroy(errCode(err, 'ERR_PC_PEER_IDENTITY'))\r\n })\r\n }\r\n\r\n // Other spec events, unused by this implementation:\r\n // - onconnectionstatechange\r\n // - onicecandidateerror\r\n // - onfingerprintfailure\r\n // - onnegotiationneeded\r\n\r\n if (this.initiator || this.channelNegotiated) {\r\n this._setupData({\r\n channel: this._pc.createDataChannel(this.channelName, this.channelConfig)\r\n })\r\n } else {\r\n this._pc.ondatachannel = event => {\r\n this._setupData(event)\r\n }\r\n }\r\n\r\n this._debug('initial negotiation')\r\n this._needsNegotiation()\r\n\r\n this._onFinishBound = () => {\r\n this._onFinish()\r\n }\r\n this.once('finish', this._onFinishBound)\r\n }\r\n\r\n get bufferSize () {\r\n return (this._channel && this._channel.bufferedAmount) || 0\r\n }\r\n\r\n // HACK: it's possible channel.readyState is \"closing\" before peer.destroy() fires\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n get connected () {\r\n return (this._connected && this._channel.readyState === 'open')\r\n }\r\n\r\n address () {\r\n return { port: this.localPort, family: this.localFamily, address: this.localAddress }\r\n }\r\n\r\n signal (data) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot signal after peer is destroyed'), 'ERR_DESTROYED')\r\n if (typeof data === 'string') {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (err) {\r\n data = {}\r\n }\r\n }\r\n this._debug('signal()')\r\n\r\n if (data.renegotiate && this.initiator) {\r\n this._debug('got request to renegotiate')\r\n this._needsNegotiation()\r\n }\r\n if (data.transceiverRequest && this.initiator) {\r\n this._debug('got request for transceiver')\r\n this.addTransceiver(data.transceiverRequest.kind, data.transceiverRequest.init)\r\n }\r\n if (data.candidate) {\r\n if (this._pc.remoteDescription && this._pc.remoteDescription.type) {\r\n this._addIceCandidate(data.candidate)\r\n } else {\r\n this._pendingCandidates.push(data.candidate)\r\n }\r\n }\r\n if (data.sdp) {\r\n this._pc.setRemoteDescription(new RTCSessionDescription(data))\r\n .then(() => {\r\n if (this.destroyed) return\r\n\r\n this._pendingCandidates.forEach(candidate => {\r\n this._addIceCandidate(candidate)\r\n })\r\n this._pendingCandidates = []\r\n\r\n if (this._pc.remoteDescription.type === 'offer') this._createAnswer()\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_SET_REMOTE_DESCRIPTION'))\r\n })\r\n }\r\n if (!data.sdp && !data.candidate && !data.renegotiate && !data.transceiverRequest) {\r\n this.__destroy(errCode(new Error('signal() called with invalid signal data'), 'ERR_SIGNALING'))\r\n }\r\n }\r\n\r\n _addIceCandidate (candidate) {\r\n const iceCandidateObj = new RTCIceCandidate(candidate)\r\n this._pc.addIceCandidate(iceCandidateObj)\r\n .catch(err => {\r\n if (!iceCandidateObj.address || iceCandidateObj.address.endsWith('.local')) {\r\n warn('Ignoring unsupported ICE candidate.')\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_ADD_ICE_CANDIDATE'))\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Send text/binary data to the remote peer.\r\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array|string|Blob} chunk\r\n */\r\n send (chunk) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot send after peer is destroyed'), 'ERR_DESTROYED')\r\n this._channel.send(chunk)\r\n }\r\n\r\n _needsNegotiation () {\r\n this._debug('_needsNegotiation')\r\n if (this._batchedNegotiation) return // batch synchronous renegotiations\r\n this._batchedNegotiation = true\r\n queueMicrotask(() => {\r\n this._batchedNegotiation = false\r\n if (this.initiator || !this._firstNegotiation) {\r\n this._debug('starting batched negotiation')\r\n this.negotiate()\r\n } else {\r\n this._debug('non-initiator initial negotiation request discarded')\r\n }\r\n this._firstNegotiation = false\r\n })\r\n }\r\n\r\n negotiate () {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot negotiate after peer is destroyed'), 'ERR_DESTROYED')\r\n\r\n if (this.initiator) {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('start negotiation')\r\n setTimeout(() => { // HACK: Chrome crashes if we immediately call createOffer\r\n this._createOffer()\r\n }, 0)\r\n }\r\n } else {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('requesting negotiation from initiator')\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'renegotiate',\r\n renegotiate: true\r\n })\r\n }\r\n }\r\n this._isNegotiating = true\r\n }\r\n\r\n _final (cb) {\r\n if (!this._readableState.ended) this.push(null)\r\n cb(null)\r\n }\r\n\r\n __destroy (err) {\r\n this.end()\r\n this._destroy(() => {}, err)\r\n }\r\n\r\n _destroy (cb, err) {\r\n if (this.destroyed || this._destroying) return\r\n this._destroying = true\r\n\r\n this._debug('destroying (error: %s)', err && (err.message || err))\r\n\r\n setTimeout(() => { // allow events concurrent with the call to _destroy() to fire (see #692)\r\n this._connected = false\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._remoteTracks = null\r\n this._remoteStreams = null\r\n this._senderMap = null\r\n\r\n clearInterval(this._closingInterval)\r\n this._closingInterval = null\r\n\r\n clearInterval(this._interval)\r\n this._interval = null\r\n this._chunk = null\r\n this._cb = null\r\n\r\n if (this._onFinishBound) this.removeListener('finish', this._onFinishBound)\r\n this._onFinishBound = null\r\n\r\n if (this._channel) {\r\n try {\r\n this._channel.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._channel.onmessage = null\r\n this._channel.onopen = null\r\n this._channel.onclose = null\r\n this._channel.onerror = null\r\n }\r\n if (this._pc) {\r\n try {\r\n this._pc.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._pc.oniceconnectionstatechange = null\r\n this._pc.onicegatheringstatechange = null\r\n this._pc.onsignalingstatechange = null\r\n this._pc.onicecandidate = null\r\n this._pc.ontrack = null\r\n this._pc.ondatachannel = null\r\n }\r\n this._pc = null\r\n this._channel = null\r\n if (err) this.emit('error', err)\r\n cb()\r\n }, 0)\r\n }\r\n\r\n _setupData (event) {\r\n if (!event.channel) {\r\n // In some situations `pc.createDataChannel()` returns `undefined` (in wrtc),\r\n // which is invalid behavior. Handle it gracefully.\r\n // See: https://github.com/feross/simple-peer/issues/163\r\n return this.__destroy(errCode(new Error('Data channel event is missing `channel` property'), 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n this._channel = event.channel\r\n this._channel.binaryType = 'arraybuffer'\r\n\r\n if (typeof this._channel.bufferedAmountLowThreshold === 'number') {\r\n this._channel.bufferedAmountLowThreshold = MAX_BUFFERED_AMOUNT\r\n }\r\n\r\n this.channelName = this._channel.label\r\n\r\n this._channel.onmessage = event => {\r\n this._onChannelMessage(event)\r\n }\r\n this._channel.onbufferedamountlow = () => {\r\n this._onChannelBufferedAmountLow()\r\n }\r\n this._channel.onopen = () => {\r\n this._onChannelOpen()\r\n }\r\n this._channel.onclose = () => {\r\n this._onChannelClose()\r\n }\r\n this._channel.onerror = event => {\r\n const err = event.error instanceof Error\r\n ? event.error\r\n : new Error(`Datachannel error: ${event.message} ${event.filename}:${event.lineno}:${event.colno}`)\r\n this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n // HACK: Chrome will sometimes get stuck in readyState \"closing\", let's check for this condition\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n let isClosing = false\r\n this._closingInterval = setInterval(() => { // No \"onclosing\" event\r\n if (this._channel && this._channel.readyState === 'closing') {\r\n if (isClosing) this._onChannelClose() // closing timed out: equivalent to onclose firing\r\n isClosing = true\r\n } else {\r\n isClosing = false\r\n }\r\n }, CHANNEL_CLOSING_TIMEOUT)\r\n }\r\n\r\n _write (chunk, cb) {\r\n if (this.destroyed) return cb(errCode(new Error('cannot write after peer is destroyed'), 'ERR_DATA_CHANNEL'))\r\n\r\n if (this._connected) {\r\n try {\r\n this.send(chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n if (this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n this._debug('start backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n this._cb = cb\r\n } else {\r\n cb(null)\r\n }\r\n } else {\r\n this._debug('write before connect')\r\n this._chunk = chunk\r\n this._cb = cb\r\n }\r\n }\r\n\r\n // When stream finishes writing, close socket. Half open connections are not\r\n // supported.\r\n _onFinish () {\r\n if (this.destroyed) return\r\n\r\n // Wait a bit before destroying so the socket flushes.\r\n // TODO: is there a more reliable way to accomplish this?\r\n const destroySoon = () => {\r\n setTimeout(() => this.__destroy(), 1000)\r\n }\r\n\r\n if (this._connected) {\r\n destroySoon()\r\n } else {\r\n this.once('connect', destroySoon)\r\n }\r\n }\r\n\r\n _startIceCompleteTimeout () {\r\n if (this.destroyed) return\r\n if (this._iceCompleteTimer) return\r\n this._debug('started iceComplete timeout')\r\n this._iceCompleteTimer = setTimeout(() => {\r\n if (!this._iceComplete) {\r\n this._iceComplete = true\r\n this._debug('iceComplete timeout completed')\r\n this.emit('iceTimeout')\r\n this.emit('_iceComplete')\r\n }\r\n }, this.iceCompleteTimeout)\r\n }\r\n\r\n _createOffer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createOffer(this.offerOptions)\r\n .then(offer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) offer.sdp = filterTrickle(offer.sdp)\r\n offer.sdp = this.sdpTransform(offer.sdp)\r\n\r\n const sendOffer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || offer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n }\r\n\r\n const onSuccess = () => {\r\n this._debug('createOffer success')\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendOffer()\r\n else this.once('_iceComplete', sendOffer) // wait for candidates\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(offer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_OFFER'))\r\n })\r\n }\r\n\r\n _createAnswer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createAnswer(this.answerOptions)\r\n .then(answer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) answer.sdp = filterTrickle(answer.sdp)\r\n answer.sdp = this.sdpTransform(answer.sdp)\r\n\r\n const sendAnswer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || answer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n if (!this.initiator) this._requestMissingTransceivers?.()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendAnswer()\r\n else this.once('_iceComplete', sendAnswer)\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(answer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_ANSWER'))\r\n })\r\n }\r\n\r\n _onConnectionStateChange () {\r\n if (this.destroyed || this._destroying) return\r\n if (this._pc.connectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Connection failed.'), 'ERR_CONNECTION_FAILURE'))\r\n }\r\n }\r\n\r\n _onIceStateChange () {\r\n if (this.destroyed) return\r\n const iceConnectionState = this._pc.iceConnectionState\r\n const iceGatheringState = this._pc.iceGatheringState\r\n\r\n this._debug(\r\n 'iceStateChange (connection: %s) (gathering: %s)',\r\n iceConnectionState,\r\n iceGatheringState\r\n )\r\n this.emit('iceStateChange', iceConnectionState, iceGatheringState)\r\n\r\n if (iceConnectionState === 'connected' || iceConnectionState === 'completed') {\r\n this._pcReady = true\r\n this._maybeReady()\r\n }\r\n if (iceConnectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Ice connection failed.'), 'ERR_ICE_CONNECTION_FAILURE'))\r\n }\r\n if (iceConnectionState === 'closed') {\r\n this.__destroy(errCode(new Error('Ice connection closed.'), 'ERR_ICE_CONNECTION_CLOSED'))\r\n }\r\n }\r\n\r\n getStats (cb) {\r\n // statreports can come with a value array instead of properties\r\n const flattenValues = report => {\r\n if (Object.prototype.toString.call(report.values) === '[object Array]') {\r\n report.values.forEach(value => {\r\n Object.assign(report, value)\r\n })\r\n }\r\n return report\r\n }\r\n\r\n // Promise-based getStats() (standard)\r\n if (this._pc.getStats.length === 0 || this._isReactNativeWebrtc) {\r\n this._pc.getStats()\r\n .then(res => {\r\n const reports = []\r\n res.forEach(report => {\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Single-parameter callback-based getStats() (non-standard)\r\n } else if (this._pc.getStats.length > 0) {\r\n this._pc.getStats(res => {\r\n // If we destroy connection in `connect` callback this code might happen to run when actual connection is already closed\r\n if (this.destroyed) return\r\n\r\n const reports = []\r\n res.result().forEach(result => {\r\n const report = {}\r\n result.names().forEach(name => {\r\n report[name] = result.stat(name)\r\n })\r\n report.id = result.id\r\n report.type = result.type\r\n report.timestamp = result.timestamp\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Unknown browser, skip getStats() since it's anyone's guess which style of\r\n // getStats() they implement.\r\n } else {\r\n cb(null, [])\r\n }\r\n }\r\n\r\n _maybeReady () {\r\n this._debug('maybeReady pc %s channel %s', this._pcReady, this._channelReady)\r\n if (this._connected || this._connecting || !this._pcReady || !this._channelReady) return\r\n\r\n this._connecting = true\r\n\r\n // HACK: We can't rely on order here, for details see https://github.com/js-platform/node-webrtc/issues/339\r\n const findCandidatePair = () => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n this.getStats((err, items) => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n // Treat getStats error as non-fatal. It's not essential.\r\n if (err) items = []\r\n\r\n const remoteCandidates = {}\r\n const localCandidates = {}\r\n const candidatePairs = {}\r\n let foundSelectedCandidatePair = false\r\n\r\n items.forEach(item => {\r\n // TODO: Once all browsers support the hyphenated stats report types, remove\r\n // the non-hypenated ones\r\n if (item.type === 'remotecandidate' || item.type === 'remote-candidate') {\r\n remoteCandidates[item.id] = item\r\n }\r\n if (item.type === 'localcandidate' || item.type === 'local-candidate') {\r\n localCandidates[item.id] = item\r\n }\r\n if (item.type === 'candidatepair' || item.type === 'candidate-pair') {\r\n candidatePairs[item.id] = item\r\n }\r\n })\r\n\r\n const setSelectedCandidatePair = selectedCandidatePair => {\r\n foundSelectedCandidatePair = true\r\n\r\n let local = localCandidates[selectedCandidatePair.localCandidateId]\r\n\r\n if (local && (local.ip || local.address)) {\r\n // Spec\r\n this.localAddress = local.ip || local.address\r\n this.localPort = Number(local.port)\r\n } else if (local && local.ipAddress) {\r\n // Firefox\r\n this.localAddress = local.ipAddress\r\n this.localPort = Number(local.portNumber)\r\n } else if (typeof selectedCandidatePair.googLocalAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n local = selectedCandidatePair.googLocalAddress.split(':')\r\n this.localAddress = local[0]\r\n this.localPort = Number(local[1])\r\n }\r\n if (this.localAddress) {\r\n this.localFamily = this.localAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n let remote = remoteCandidates[selectedCandidatePair.remoteCandidateId]\r\n\r\n if (remote && (remote.ip || remote.address)) {\r\n // Spec\r\n this.remoteAddress = remote.ip || remote.address\r\n this.remotePort = Number(remote.port)\r\n } else if (remote && remote.ipAddress) {\r\n // Firefox\r\n this.remoteAddress = remote.ipAddress\r\n this.remotePort = Number(remote.portNumber)\r\n } else if (typeof selectedCandidatePair.googRemoteAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n remote = selectedCandidatePair.googRemoteAddress.split(':')\r\n this.remoteAddress = remote[0]\r\n this.remotePort = Number(remote[1])\r\n }\r\n if (this.remoteAddress) {\r\n this.remoteFamily = this.remoteAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n this._debug(\r\n 'connect local: %s:%s remote: %s:%s',\r\n this.localAddress,\r\n this.localPort,\r\n this.remoteAddress,\r\n this.remotePort\r\n )\r\n }\r\n\r\n items.forEach(item => {\r\n // Spec-compliant\r\n if (item.type === 'transport' && item.selectedCandidatePairId) {\r\n setSelectedCandidatePair(candidatePairs[item.selectedCandidatePairId])\r\n }\r\n\r\n // Old implementations\r\n if (\r\n (item.type === 'googCandidatePair' && item.googActiveConnection === 'true') ||\r\n ((item.type === 'candidatepair' || item.type === 'candidate-pair') && item.selected)\r\n ) {\r\n setSelectedCandidatePair(item)\r\n }\r\n })\r\n\r\n // Ignore candidate pair selection in browsers like Safari 11 that do not have any local or remote candidates\r\n // But wait until at least 1 candidate pair is available\r\n if (!foundSelectedCandidatePair && (!Object.keys(candidatePairs).length || Object.keys(localCandidates).length)) {\r\n setTimeout(findCandidatePair, 100)\r\n return\r\n } else {\r\n this._connecting = false\r\n this._connected = true\r\n }\r\n\r\n if (this._chunk) {\r\n try {\r\n this.send(this._chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n this._chunk = null\r\n this._debug('sent chunk from \"write before connect\"')\r\n\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n // If `bufferedAmountLowThreshold` and 'onbufferedamountlow' are unsupported,\r\n // fallback to using setInterval to implement backpressure.\r\n if (typeof this._channel.bufferedAmountLowThreshold !== 'number') {\r\n this._interval = setInterval(() => this._onInterval(), 150)\r\n if (this._interval.unref) this._interval.unref()\r\n }\r\n\r\n this._debug('connect')\r\n this.emit('connect')\r\n })\r\n }\r\n findCandidatePair()\r\n }\r\n\r\n _onInterval () {\r\n if (!this._cb || !this._channel || this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n return\r\n }\r\n this._onChannelBufferedAmountLow()\r\n }\r\n\r\n _onSignalingStateChange () {\r\n if (this.destroyed) return\r\n\r\n if (this._pc.signalingState === 'stable') {\r\n this._isNegotiating = false\r\n\r\n // HACK: Firefox doesn't yet support removing tracks when signalingState !== 'stable'\r\n this._debug('flushing sender queue', this._sendersAwaitingStable)\r\n this._sendersAwaitingStable.forEach(sender => {\r\n this._pc.removeTrack(sender)\r\n this._queuedNegotiation = true\r\n })\r\n this._sendersAwaitingStable = []\r\n\r\n if (this._queuedNegotiation) {\r\n this._debug('flushing negotiation queue')\r\n this._queuedNegotiation = false\r\n this._needsNegotiation() // negotiate again\r\n } else {\r\n this._debug('negotiated')\r\n this.emit('negotiated')\r\n }\r\n }\r\n\r\n this._debug('signalingStateChange %s', this._pc.signalingState)\r\n this.emit('signalingStateChange', this._pc.signalingState)\r\n }\r\n\r\n _onIceCandidate (event) {\r\n if (this.destroyed) return\r\n if (event.candidate && this.trickle) {\r\n this.emit('signal', {\r\n type: 'candidate',\r\n candidate: {\r\n candidate: event.candidate.candidate,\r\n sdpMLineIndex: event.candidate.sdpMLineIndex,\r\n sdpMid: event.candidate.sdpMid\r\n }\r\n })\r\n } else if (!event.candidate && !this._iceComplete) {\r\n this._iceComplete = true\r\n this.emit('_iceComplete')\r\n }\r\n // as soon as we've received one valid candidate start timeout\r\n if (event.candidate) {\r\n this._startIceCompleteTimeout()\r\n }\r\n }\r\n\r\n _onChannelMessage (event) {\r\n if (this.destroyed) return\r\n let data = event.data\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data)\r\n } else if (this.__objectMode === false) {\r\n data = text2arr(data)\r\n }\r\n this.push(data)\r\n }\r\n\r\n _onChannelBufferedAmountLow () {\r\n if (this.destroyed || !this._cb) return\r\n this._debug('ending backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n _onChannelOpen () {\r\n if (this._connected || this.destroyed) return\r\n this._debug('on channel open')\r\n this._channelReady = true\r\n this._maybeReady()\r\n }\r\n\r\n _onChannelClose () {\r\n if (this.destroyed) return\r\n this._debug('on channel close')\r\n this.__destroy()\r\n }\r\n\r\n _debug () {\r\n const args = [].slice.call(arguments)\r\n args[0] = '[' + this._id + '] ' + args[0]\r\n Debug.apply(null, args)\r\n }\r\n}\r\n\r\nPeer.WEBRTC_SUPPORT = !!RTCPeerConnection\r\n\r\n/**\r\n * Expose peer and data channel config for overriding all Peer\r\n * instances. Otherwise, just set opts.config or opts.channelConfig\r\n * when constructing a Peer.\r\n */\r\nPeer.config = {\r\n iceServers: [\r\n {\r\n urls: [\r\n 'stun:stun.l.google.com:19302',\r\n 'stun:global.stun.twilio.com:3478'\r\n ]\r\n }\r\n ],\r\n sdpSemantics: 'unified-plan'\r\n}\r\n\r\nPeer.channelConfig = {}\r\n\r\nexport default Peer\r\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","const scope = typeof window !== 'undefined' ? window : self\r\n\r\n// @ts-ignore\r\nexport const RTCPeerConnection = scope.RTCPeerConnection || scope.mozRTCPeerConnection || scope.webkitRTCPeerConnection\r\n// @ts-ignore\r\nexport const RTCSessionDescription = scope.RTCSessionDescription || scope.mozRTCSessionDescription || scope.webkitRTCSessionDescription\r\n// @ts-ignore\r\nexport const RTCIceCandidate = scope.RTCIceCandidate || scope.mozRTCIceCandidate || scope.webkitRTCIceCandidate\r\nexport const RTCIceTransport = scope.RTCIceTransport\r\nexport const RTCDataChannel = scope.RTCDataChannel\r\nexport const RTCSctpTransport = scope.RTCSctpTransport\r\nexport const RTCDtlsTransport = scope.RTCDtlsTransport\r\nexport const RTCCertificate = scope.RTCCertificate\r\nexport const MediaStream = scope.MediaStream\r\nexport const MediaStreamTrack = scope.MediaStreamTrack\r\nexport const MediaStreamTrackEvent = scope.MediaStreamTrackEvent\r\nexport const RTCPeerConnectionIceEvent = scope.RTCPeerConnectionIceEvent\r\nexport const RTCDataChannelEvent = scope.RTCDataChannelEvent\r\nexport const RTCTrackEvent = scope.RTCTrackEvent\r\nexport const RTCError = scope.RTCError\r\nexport const RTCErrorEvent = scope.RTCErrorEvent\r\nexport const RTCRtpTransceiver = scope.RTCRtpTransceiver\r\nexport const RTCRtpReceiver = scope.RTCRtpReceiver\r\nexport const RTCRtpSender = scope.RTCRtpSender\r\n\r\nexport * as default from './browser.js'\r\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst queueTick = require('queue-tick')\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ WRITE_FINISHING\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = (stream._duplexState | WRITE_ACTIVE) & WRITE_NOT_FINISHING\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTick()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTick()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = typeof queueMicrotask === 'function' ? queueMicrotask : (fn) => Promise.resolve().then(fn)\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","module.exports = class BrowserDecoder {\n constructor (encoding) {\n this.decoder = new TextDecoder(encoding === 'utf16le' ? 'utf16-le' : encoding)\n }\n\n get remaining () {\n return -1\n }\n\n decode (data) {\n return this.decoder.decode(data, { stream: true })\n }\n\n flush () {\n return this.decoder.decode(new Uint8Array(0))\n }\n}\n","'use strict';\n\n/**\n * @typedef {{ [key: string]: any }} Extensions\n * @typedef {Error} Err\n * @property {string} message\n */\n\n/**\n *\n * @param {Error} obj\n * @param {Extensions} props\n * @returns {Error & Extensions}\n */\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\n/**\n *\n * @param {any} err - An Error\n * @param {string|Extensions} code - A string code or props to set on the error\n * @param {Extensions} [props] - Props to set on the error\n * @returns {Error & Extensions}\n */\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = '';\n }\n\n if (code) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n // @ts-ignore\n const output = assign(new ErrClass(), props);\n\n return output;\n }\n}\n\nmodule.exports = createError;\n","import { arr2hex, hex2arr, alphabet } from './util.js'\r\nimport { decode, encode } from 'base64-arraybuffer'\r\n\r\nconst decoder = new TextDecoder()\r\n// 50% slower at < 48 chars, but little impact at 4M OPS/s vs 8M OPS/s\r\nexport const arr2text = (data, enc) => {\r\n if (!enc) return decoder.decode(data)\r\n const dec = new TextDecoder(enc)\r\n return dec.decode(data)\r\n}\r\n\r\n// sacrifice ~20% speed for bundle size\r\nconst encoder = new TextEncoder()\r\nexport const text2arr = str => encoder.encode(str)\r\n\r\nexport const arr2base = data => encode(data)\r\n\r\nexport const base2arr = str => new Uint8Array(decode(str))\r\n\r\nexport const bin2hex = str => {\r\n let res = ''\r\n let c\r\n let i = 0\r\n const len = str.length\r\n\r\n while (i < len) {\r\n c = str.charCodeAt(i++)\r\n res += alphabet[c >> 4] + alphabet[c & 0xF]\r\n }\r\n\r\n return res\r\n}\r\n\r\nconst MAX_ARGUMENTS_LENGTH = 0x10000\r\nexport const hex2bin = hex => {\r\n const points = hex2arr(hex)\r\n if (points.length <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode(...points)\r\n\r\n let res = ''\r\n let i = 0\r\n while (i < points.length) {\r\n res += String.fromCharCode(...points.subarray(i, i += MAX_ARGUMENTS_LENGTH))\r\n }\r\n return res\r\n}\r\n\r\nconst scope = typeof window !== 'undefined' ? window : self\r\nconst crypto = scope.crypto || scope.msCrypto || {}\r\nconst subtle = crypto.subtle || crypto.webkitSubtle\r\n\r\nconst formatMap = {\r\n hex: arr2hex,\r\n base64: arr2base\r\n}\r\n\r\nexport const hash = async (data, format, algo = 'sha-1') => {\r\n if (!subtle) throw new Error('no web crypto support')\r\n if (typeof data === 'string') data = text2arr(data)\r\n const out = new Uint8Array(await subtle.digest(algo, data))\r\n return format ? formatMap[format](out) : out\r\n}\r\n\r\nexport const randomBytes = size => {\r\n const view = new Uint8Array(size)\r\n return crypto.getRandomValues(view)\r\n}\r\n\r\nexport * from './util.js'\r\n","/* Common package for dealing with hex/string/uint8 conversions (and sha1 hashing)\r\n*\r\n* @author Jimmy Wärting (https://jimmy.warting.se/opensource)\r\n* @license MIT\r\n*/\r\nexport const alphabet = '0123456789abcdef'\r\nconst encodeLookup = []\r\nconst decodeLookup = []\r\n\r\nfor (let i = 0; i < 256; i++) {\r\n encodeLookup[i] = alphabet[i >> 4 & 0xf] + alphabet[i & 0xf]\r\n if (i < 16) {\r\n if (i < 10) {\r\n decodeLookup[0x30 + i] = i\r\n } else {\r\n decodeLookup[0x61 - 10 + i] = i\r\n }\r\n }\r\n}\r\n\r\nexport const arr2hex = data => {\r\n const length = data.length\r\n let string = ''\r\n let i = 0\r\n while (i < length) {\r\n string += encodeLookup[data[i++]]\r\n }\r\n return string\r\n}\r\n\r\nexport const hex2arr = str => {\r\n const sizeof = str.length >> 1\r\n const length = sizeof << 1\r\n const array = new Uint8Array(sizeof)\r\n let n = 0\r\n let i = 0\r\n while (i < length) {\r\n array[n++] = decodeLookup[str.charCodeAt(i++)] << 4 | decodeLookup[str.charCodeAt(i++)]\r\n }\r\n return array\r\n}\r\n\r\nexport const concat = (chunks, size = 0) => {\r\n const length = chunks.length || 0\r\n if (!size) {\r\n let i = length\r\n while (i--) size += chunks[i].length\r\n }\r\n const b = new Uint8Array(size)\r\n let offset = size\r\n let i = length\r\n while (i--) {\r\n offset -= chunks[i].length\r\n b.set(chunks[i], offset)\r\n }\r\n\r\n return b\r\n}\r\n\r\nexport const equal = (a, b) => {\r\n if (a.length !== b.length) return false\r\n for (let i = a.length; i > -1; i -= 1) {\r\n if ((a[i] !== b[i])) return false\r\n }\r\n return true\r\n}\r\n","/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {\n all,\n alloc,\n decodeBytes,\n encodeBytes,\n entries,\n fromEntries,\n fromJson,\n isBrowser,\n keys,\n libName,\n mkErr,\n noOp,\n toJson\n} from './utils.js'\n\nconst TypedArray = Object.getPrototypeOf(Uint8Array)\nconst typeByteLimit = 12\nconst typeIndex = 0\nconst nonceIndex = typeIndex + typeByteLimit\nconst tagIndex = nonceIndex + 1\nconst progressIndex = tagIndex + 1\nconst payloadIndex = progressIndex + 1\nconst chunkSize = 16 * 2 ** 10 - payloadIndex\nconst oneByteMax = 0xff\nconst buffLowEvent = 'bufferedamountlow'\nconst internalNs = ns => '@_' + ns\n\nexport default (onPeer, onPeerLeave, onSelfLeave) => {\n const peerMap = {}\n const actions = {}\n const actionsCache = {}\n const pendingTransmissions = {}\n const pendingPongs = {}\n const pendingStreamMetas = {}\n const pendingTrackMetas = {}\n const listeners = {\n onPeerJoin: noOp,\n onPeerLeave: noOp,\n onPeerStream: noOp,\n onPeerTrack: noOp\n }\n\n const iterate = (targets, f) =>\n (targets\n ? Array.isArray(targets)\n ? targets\n : [targets]\n : keys(peerMap)\n ).flatMap(id => {\n const peer = peerMap[id]\n\n if (!peer) {\n console.warn(`${libName}: no peer with id ${id} found`)\n return []\n }\n\n return f(id, peer)\n })\n\n const exitPeer = id => {\n if (!peerMap[id]) {\n return\n }\n\n delete peerMap[id]\n delete pendingTransmissions[id]\n delete pendingPongs[id]\n listeners.onPeerLeave(id)\n onPeerLeave(id)\n }\n\n const makeAction = type => {\n if (actions[type]) {\n return actionsCache[type]\n }\n\n if (!type) {\n throw mkErr('action type argument is required')\n }\n\n const typeBytes = encodeBytes(type)\n\n if (typeBytes.byteLength > typeByteLimit) {\n throw mkErr(\n `action type string \"${type}\" (${typeBytes.byteLength}b) exceeds ` +\n `byte limit (${typeByteLimit}). Hint: choose a shorter name.`\n )\n }\n\n const typeBytesPadded = new Uint8Array(typeByteLimit)\n typeBytesPadded.set(typeBytes)\n\n let nonce = 0\n\n actions[type] = {\n onComplete: noOp,\n onProgress: noOp,\n\n setOnComplete: f => (actions[type] = {...actions[type], onComplete: f}),\n\n setOnProgress: f => (actions[type] = {...actions[type], onProgress: f}),\n\n send: async (data, targets, meta, onProgress) => {\n if (meta && typeof meta !== 'object') {\n throw mkErr('action meta argument must be an object')\n }\n\n const dataType = typeof data\n\n if (dataType === 'undefined') {\n throw mkErr('action data cannot be undefined')\n }\n\n const isJson = dataType !== 'string'\n const isBlob = data instanceof Blob\n const isBinary =\n isBlob || data instanceof ArrayBuffer || data instanceof TypedArray\n\n if (meta && !isBinary) {\n throw mkErr('action meta argument can only be used with binary data')\n }\n\n const buffer = isBinary\n ? new Uint8Array(isBlob ? await data.arrayBuffer() : data)\n : encodeBytes(isJson ? toJson(data) : data)\n\n const metaEncoded = meta ? encodeBytes(toJson(meta)) : null\n\n const chunkTotal =\n Math.ceil(buffer.byteLength / chunkSize) + (meta ? 1 : 0) || 1\n\n const chunks = alloc(chunkTotal, (_, i) => {\n const isLast = i === chunkTotal - 1\n const isMeta = meta && i === 0\n const chunk = new Uint8Array(\n payloadIndex +\n (isMeta\n ? metaEncoded.byteLength\n : isLast\n ? buffer.byteLength -\n chunkSize * (chunkTotal - (meta ? 2 : 1))\n : chunkSize)\n )\n\n chunk.set(typeBytesPadded)\n chunk.set([nonce], nonceIndex)\n chunk.set(\n [isLast | (isMeta << 1) | (isBinary << 2) | (isJson << 3)],\n tagIndex\n )\n chunk.set(\n [Math.round(((i + 1) / chunkTotal) * oneByteMax)],\n progressIndex\n )\n chunk.set(\n meta\n ? isMeta\n ? metaEncoded\n : buffer.subarray((i - 1) * chunkSize, i * chunkSize)\n : buffer.subarray(i * chunkSize, (i + 1) * chunkSize),\n payloadIndex\n )\n\n return chunk\n })\n\n nonce = (nonce + 1) & oneByteMax\n\n return all(\n iterate(targets, async (id, peer) => {\n const {channel} = peer\n let chunkN = 0\n\n while (chunkN < chunkTotal) {\n const chunk = chunks[chunkN]\n\n if (channel.bufferedAmount > channel.bufferedAmountLowThreshold) {\n await new Promise(res => {\n const next = () => {\n channel.removeEventListener(buffLowEvent, next)\n res()\n }\n\n channel.addEventListener(buffLowEvent, next)\n })\n }\n\n if (!peerMap[id]) {\n break\n }\n\n peer.sendData(chunk)\n chunkN++\n onProgress?.(chunk[progressIndex] / oneByteMax, id, meta)\n }\n })\n )\n }\n }\n\n return (actionsCache[type] ||= [\n actions[type].send,\n actions[type].setOnComplete,\n actions[type].setOnProgress\n ])\n }\n\n const handleData = (id, data) => {\n const buffer = new Uint8Array(data)\n const type = decodeBytes(buffer.subarray(typeIndex, nonceIndex)).replaceAll(\n '\\x00',\n ''\n )\n const [nonce] = buffer.subarray(nonceIndex, tagIndex)\n const [tag] = buffer.subarray(tagIndex, progressIndex)\n const [progress] = buffer.subarray(progressIndex, payloadIndex)\n const payload = buffer.subarray(payloadIndex)\n const isLast = !!(tag & 1)\n const isMeta = !!(tag & (1 << 1))\n const isBinary = !!(tag & (1 << 2))\n const isJson = !!(tag & (1 << 3))\n\n if (!actions[type]) {\n console.warn(\n `${libName}: received message with unregistered type (${type})`\n )\n return\n }\n\n pendingTransmissions[id] ||= {}\n pendingTransmissions[id][type] ||= {}\n\n const target = (pendingTransmissions[id][type][nonce] ||= {chunks: []})\n\n if (isMeta) {\n target.meta = fromJson(decodeBytes(payload))\n } else {\n target.chunks.push(payload)\n }\n\n actions[type].onProgress(progress / oneByteMax, id, target.meta)\n\n if (!isLast) {\n return\n }\n\n const full = new Uint8Array(\n target.chunks.reduce((a, c) => a + c.byteLength, 0)\n )\n\n target.chunks.reduce((a, c) => {\n full.set(c, a)\n return a + c.byteLength\n }, 0)\n\n delete pendingTransmissions[id][type][nonce]\n\n if (isBinary) {\n actions[type].onComplete(full, id, target.meta)\n } else {\n const text = decodeBytes(full)\n actions[type].onComplete(isJson ? fromJson(text) : text, id)\n }\n }\n\n const leave = async () => {\n await sendLeave('')\n await new Promise(res => setTimeout(res, 99))\n entries(peerMap).forEach(([id, peer]) => {\n peer.destroy()\n delete peerMap[id]\n })\n onSelfLeave()\n }\n\n const [sendPing, getPing] = makeAction(internalNs('ping'))\n const [sendPong, getPong] = makeAction(internalNs('pong'))\n const [sendSignal, getSignal] = makeAction(internalNs('signal'))\n const [sendStreamMeta, getStreamMeta] = makeAction(internalNs('stream'))\n const [sendTrackMeta, getTrackMeta] = makeAction(internalNs('track'))\n const [sendLeave, getLeave] = makeAction(internalNs('leave'))\n\n onPeer((peer, id) => {\n if (peerMap[id]) {\n return\n }\n\n peerMap[id] = peer\n\n peer.setHandlers({\n data: d => handleData(id, d),\n stream: stream => {\n listeners.onPeerStream(stream, id, pendingStreamMetas[id])\n delete pendingStreamMetas[id]\n },\n track: (track, stream) => {\n listeners.onPeerTrack(track, stream, id, pendingTrackMetas[id])\n delete pendingTrackMetas[id]\n },\n signal: sdp => sendSignal(sdp, id),\n close: () => exitPeer(id),\n error: () => exitPeer(id)\n })\n\n listeners.onPeerJoin(id)\n peer.drainEarlyData?.(d => handleData(id, d))\n })\n\n getPing((_, id) => sendPong('', id))\n\n getPong((_, id) => {\n pendingPongs[id]?.()\n delete pendingPongs[id]\n })\n\n getSignal((sdp, id) => peerMap[id]?.signal(sdp))\n\n getStreamMeta((meta, id) => (pendingStreamMetas[id] = meta))\n\n getTrackMeta((meta, id) => (pendingTrackMetas[id] = meta))\n\n getLeave((_, id) => exitPeer(id))\n\n if (isBrowser) {\n addEventListener('beforeunload', leave)\n }\n\n return {\n makeAction,\n\n leave,\n\n ping: async id => {\n if (!id) {\n throw mkErr('ping() must be called with target peer ID')\n }\n\n const start = Date.now()\n\n sendPing('', id)\n await new Promise(res => (pendingPongs[id] = res))\n return Date.now() - start\n },\n\n getPeers: () =>\n fromEntries(entries(peerMap).map(([id, peer]) => [id, peer.connection])),\n\n addStream: (stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendStreamMeta(meta, id)\n }\n\n peer.addStream(stream)\n }),\n\n removeStream: (stream, targets) =>\n iterate(targets, (_, peer) => peer.removeStream(stream)),\n\n addTrack: (track, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.addTrack(track, stream)\n }),\n\n removeTrack: (track, stream, targets) =>\n iterate(targets, (_, peer) => peer.removeTrack(track, stream)),\n\n replaceTrack: (oldTrack, newTrack, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.replaceTrack(oldTrack, newTrack, stream)\n }),\n\n onPeerJoin: f => (listeners.onPeerJoin = f),\n\n onPeerLeave: f => (listeners.onPeerLeave = f),\n\n onPeerStream: f => (listeners.onPeerStream = f),\n\n onPeerTrack: f => (listeners.onPeerTrack = f)\n }\n}\n","import {sha1} from './crypto.js'\nimport strategy from './strategy.js'\nimport {\n entries,\n genId,\n fromEntries,\n fromJson,\n getRelays,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst topicToInfoHash = {}\nconst infoHashToTopic = {}\nconst announceIntervals = {}\nconst announceFns = {}\nconst trackerAnnounceMs = {}\nconst handledOffers = {}\nconst msgHandlers = {}\nconst trackerAction = 'announce'\nconst hashLimit = 20\nconst offerPoolSize = 10\nconst defaultAnnounceMs = 33_333\nconst maxAnnounceMs = 120_333\nconst defaultRedundancy = 3\n\nconst getInfoHash = async topic => {\n if (topicToInfoHash[topic]) {\n return topicToInfoHash[topic]\n }\n\n const hash = (await sha1(topic)).slice(0, hashLimit)\n\n // eslint-disable-next-line require-atomic-updates\n topicToInfoHash[topic] = hash\n infoHashToTopic[hash] = topic\n\n return hash\n}\n\nconst send = async (client, topic, payload) =>\n client.send(\n toJson({\n action: trackerAction,\n info_hash: await getInfoHash(topic),\n peer_id: selfId,\n ...payload\n })\n )\n\nconst warn = (url, msg, didFail) =>\n console.warn(\n `${libName}: torrent tracker ${didFail ? 'failure' : 'warning'} from ${url} - ${msg}`\n )\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(rawUrl => {\n const client = makeSocket(rawUrl, rawData => {\n const data = fromJson(rawData)\n const errMsg = data['failure reason']\n const warnMsg = data['warning message']\n const {interval} = data\n const topic = infoHashToTopic[data.info_hash]\n\n if (errMsg) {\n warn(url, errMsg, true)\n return\n }\n\n if (warnMsg) {\n warn(url, warnMsg)\n }\n\n if (\n interval &&\n interval * 1000 > trackerAnnounceMs[url] &&\n announceFns[url][topic]\n ) {\n const int = Math.min(interval * 1000, maxAnnounceMs)\n\n clearInterval(announceIntervals[url][topic])\n trackerAnnounceMs[url] = int\n announceIntervals[url][topic] = setInterval(\n announceFns[url][topic],\n int\n )\n }\n\n if (handledOffers[data.offer_id]) {\n return\n }\n\n if (data.offer || data.answer) {\n handledOffers[data.offer_id] = true\n msgHandlers[url][topic]?.(data)\n }\n })\n\n const {url} = client\n\n clients[url] = client\n msgHandlers[url] = {}\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, _, onMessage, getOffers) => {\n const {url} = client\n\n const announce = async () => {\n const offers = fromEntries(\n (await getOffers(offerPoolSize)).map(peerAndOffer => [\n genId(hashLimit),\n peerAndOffer\n ])\n )\n\n msgHandlers[client.url][rootTopic] = data => {\n if (data.offer) {\n onMessage(\n rootTopic,\n {offer: data.offer, peerId: data.peer_id},\n (_, signal) =>\n send(client, rootTopic, {\n // certain trackers will reject if answer contains extra fields\n answer: fromJson(signal).answer,\n offer_id: data.offer_id,\n to_peer_id: data.peer_id\n })\n )\n } else if (data.answer) {\n const offer = offers[data.offer_id]\n\n if (offer) {\n onMessage(rootTopic, {\n answer: data.answer,\n peerId: data.peer_id,\n peer: offer.peer\n })\n }\n }\n }\n\n send(client, rootTopic, {\n numwant: offerPoolSize,\n offers: entries(offers).map(([id, {offer}]) => ({offer_id: id, offer}))\n })\n }\n\n trackerAnnounceMs[url] = defaultAnnounceMs\n announceFns[url] ||= {}\n announceFns[url][rootTopic] = announce\n announceIntervals[url] ||= {}\n announceIntervals[url][rootTopic] = setInterval(\n announce,\n trackerAnnounceMs[url]\n )\n announce()\n\n return () => {\n clearInterval(announceIntervals[url][rootTopic])\n delete msgHandlers[url][rootTopic]\n delete announceFns[url][rootTopic]\n }\n },\n\n announce: client => trackerAnnounceMs[client.url]\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'tracker.webtorrent.dev',\n 'tracker.openwebtorrent.com',\n 'tracker.files.fm:7073/announce',\n 'tracker.btorrent.xyz'\n].map(url => 'wss://' + url)\n","import {decodeBytes, encodeBytes} from './utils.js'\n\nconst algo = 'AES-GCM'\nconst strToSha1 = {}\n\nconst pack = buff => btoa(String.fromCharCode.apply(null, new Uint8Array(buff)))\n\nconst unpack = packed => {\n const str = atob(packed)\n\n return new Uint8Array(str.length).map((_, i) => str.charCodeAt(i)).buffer\n}\n\nexport const sha1 = async str => {\n if (strToSha1[str]) {\n return strToSha1[str]\n }\n\n const hash = Array.from(\n new Uint8Array(await crypto.subtle.digest('SHA-1', encodeBytes(str)))\n )\n .map(b => b.toString(36))\n .join('')\n\n // eslint-disable-next-line require-atomic-updates\n strToSha1[str] = hash\n\n return hash\n}\n\nexport const genKey = async (secret, appId, roomId) =>\n crypto.subtle.importKey(\n 'raw',\n await crypto.subtle.digest(\n {name: 'SHA-256'},\n encodeBytes(`${secret}:${appId}:${roomId}`)\n ),\n {name: algo},\n false,\n ['encrypt', 'decrypt']\n )\n\nconst joinChar = '$'\nconst ivJoinChar = ','\n\nexport const encrypt = async (keyP, plaintext) => {\n const iv = crypto.getRandomValues(new Uint8Array(16))\n\n return (\n iv.join(ivJoinChar) +\n joinChar +\n pack(\n await crypto.subtle.encrypt(\n {name: algo, iv},\n await keyP,\n encodeBytes(plaintext)\n )\n )\n )\n}\n\nexport const decrypt = async (keyP, raw) => {\n const [iv, c] = raw.split(joinChar)\n\n return decodeBytes(\n await crypto.subtle.decrypt(\n {name: algo, iv: new Uint8Array(iv.split(ivJoinChar))},\n await keyP,\n unpack(c)\n )\n )\n}\n","export const libName = 'Trystero'\n\nexport const alloc = (n, f) => Array(n).fill().map(f)\n\nconst charSet = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'\n\nexport const genId = n =>\n alloc(n, () => charSet[Math.floor(Math.random() * charSet.length)]).join('')\n\nexport const selfId = genId(20)\n\nexport const all = Promise.all.bind(Promise)\n\nexport const isBrowser = typeof window !== 'undefined'\n\nexport const {entries, fromEntries, keys} = Object\n\nexport const noOp = () => {}\n\nexport const mkErr = msg => new Error(`${libName}: ${msg}`)\n\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder()\n\nexport const encodeBytes = txt => encoder.encode(txt)\n\nexport const decodeBytes = buffer => decoder.decode(buffer)\n\nexport const toHex = buffer =>\n buffer.reduce((a, c) => a + c.toString(16).padStart(2, '0'), '')\n\nexport const topicPath = (...parts) => parts.join('@')\n\nexport const getRelays = (config, defaults, defaultN) =>\n (config.relayUrls || defaults).slice(\n 0,\n config.relayUrls\n ? config.relayUrls.length\n : config.relayRedundancy || defaultN\n )\n\nexport const toJson = JSON.stringify\n\nexport const fromJson = JSON.parse\n\nconst defaultRetryMs = 3333\nconst socketRetryPeriods = {}\n\nexport const makeSocket = (url, onMessage) => {\n const client = {}\n\n const init = () => {\n const socket = new WebSocket(url)\n\n socket.onclose = () => {\n socketRetryPeriods[url] ??= defaultRetryMs\n setTimeout(init, socketRetryPeriods[url])\n socketRetryPeriods[url] *= 2\n }\n\n socket.onmessage = e => onMessage(e.data)\n client.socket = socket\n client.url = socket.url\n client.ready = new Promise(\n res =>\n (socket.onopen = () => {\n res(client)\n socketRetryPeriods[url] = defaultRetryMs\n })\n )\n client.send = data => {\n if (socket.readyState === 1) {\n socket.send(data)\n }\n }\n }\n\n init()\n\n return client\n}\n\nexport const socketGetter = clientMap => () =>\n fromEntries(entries(clientMap).map(([url, client]) => [url, client.socket]))\n","import {decrypt, encrypt, genKey, sha1} from './crypto.js'\nimport initPeer from './peer.js'\nimport room from './room.js'\nimport {\n all,\n alloc,\n fromJson,\n libName,\n mkErr,\n noOp,\n selfId,\n toJson,\n topicPath\n} from './utils.js'\n\nconst poolSize = 20\nconst announceIntervalMs = 5_333\nconst offerTtl = 57_333\n\nexport default ({init, subscribe, announce}) => {\n const occupiedRooms = {}\n\n let didInit = false\n let initPromises\n let offerPool\n let offerCleanupTimer\n\n return (config, roomId, onJoinError) => {\n const {appId} = config\n\n if (occupiedRooms[appId]?.[roomId]) {\n return occupiedRooms[appId][roomId]\n }\n\n const pendingOffers = {}\n const connectedPeers = {}\n const rootTopicPlaintext = topicPath(libName, appId, roomId)\n const rootTopicP = sha1(rootTopicPlaintext)\n const selfTopicP = sha1(topicPath(rootTopicPlaintext, selfId))\n const key = genKey(config.password || '', appId, roomId)\n\n const withKey = f => async signal => ({\n type: signal.type,\n sdp: await f(key, signal.sdp)\n })\n\n const toPlain = withKey(decrypt)\n const toCipher = withKey(encrypt)\n\n const makeOffer = () => initPeer(true, config.rtcConfig)\n\n const connectPeer = (peer, peerId, clientId) => {\n if (connectedPeers[peerId]) {\n if (connectedPeers[peerId] !== peer) {\n peer.destroy()\n }\n return\n }\n\n connectedPeers[peerId] = peer\n onPeerConnect(peer, peerId)\n\n pendingOffers[peerId]?.forEach((peer, i) => {\n if (i !== clientId) {\n peer.destroy()\n }\n })\n delete pendingOffers[peerId]\n }\n\n const disconnectPeer = (peer, peerId) => {\n if (connectedPeers[peerId] === peer) {\n delete connectedPeers[peerId]\n }\n }\n\n const prunePendingOffer = (peerId, clientId) => {\n if (connectedPeers[peerId]) {\n return\n }\n\n const offer = pendingOffers[peerId]?.[clientId]\n\n if (offer) {\n delete pendingOffers[peerId][clientId]\n offer.destroy()\n }\n }\n\n const getOffers = n => {\n offerPool.push(...alloc(n, makeOffer))\n\n return all(\n offerPool\n .splice(0, n)\n .map(peer =>\n peer.offerPromise.then(toCipher).then(offer => ({peer, offer}))\n )\n )\n }\n\n const handleJoinError = (peerId, sdpType) =>\n onJoinError?.({\n error: `incorrect password (${config.password}) when decrypting ${sdpType}`,\n appId,\n peerId,\n roomId\n })\n\n const handleMessage = clientId => async (topic, msg, signalPeer) => {\n const [rootTopic, selfTopic] = await all([rootTopicP, selfTopicP])\n\n if (topic !== rootTopic && topic !== selfTopic) {\n return\n }\n\n const {peerId, offer, answer, peer} =\n typeof msg === 'string' ? fromJson(msg) : msg\n\n if (peerId === selfId || connectedPeers[peerId]) {\n return\n }\n\n if (peerId && !offer && !answer) {\n if (pendingOffers[peerId]?.[clientId]) {\n return\n }\n\n const [[{peer, offer}], topic] = await all([\n getOffers(1),\n sha1(topicPath(rootTopicPlaintext, peerId))\n ])\n\n pendingOffers[peerId] ||= []\n pendingOffers[peerId][clientId] = peer\n\n setTimeout(\n () => prunePendingOffer(peerId, clientId),\n announceIntervals[clientId] * 0.9\n )\n\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n signalPeer(topic, toJson({peerId: selfId, offer}))\n } else if (offer) {\n const myOffer = pendingOffers[peerId]?.[clientId]\n\n if (myOffer && selfId > peerId) {\n return\n }\n\n const peer = initPeer(false, config.rtcConfig)\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n let plainOffer\n\n try {\n plainOffer = await toPlain(offer)\n } catch (_) {\n handleJoinError(peerId, 'offer')\n return\n }\n\n if (peer.isDead) {\n return\n }\n\n const [topic, answer] = await all([\n sha1(topicPath(rootTopicPlaintext, peerId)),\n peer.signal(plainOffer)\n ])\n\n signalPeer(\n topic,\n toJson({peerId: selfId, answer: await toCipher(answer)})\n )\n } else if (answer) {\n let plainAnswer\n\n try {\n plainAnswer = await toPlain(answer)\n } catch (e) {\n handleJoinError(peerId, 'answer')\n return\n }\n\n if (peer) {\n peer.setHandlers({\n connect: () => connectPeer(peer, peerId, clientId),\n close: () => disconnectPeer(peer, peerId)\n })\n\n peer.signal(plainAnswer)\n } else {\n const peer = pendingOffers[peerId]?.[clientId]\n\n if (peer && !peer.isDead) {\n peer.signal(plainAnswer)\n }\n }\n }\n }\n\n if (!config) {\n throw mkErr('requires a config map as the first argument')\n }\n\n if (!appId && !config.firebaseApp) {\n throw mkErr('config map is missing appId field')\n }\n\n if (!roomId) {\n throw mkErr('roomId argument required')\n }\n\n if (!didInit) {\n const initRes = init(config)\n offerPool = alloc(poolSize, makeOffer)\n initPromises = Array.isArray(initRes) ? initRes : [initRes]\n didInit = true\n offerCleanupTimer = setInterval(\n () =>\n (offerPool = offerPool.filter(peer => {\n const shouldLive = Date.now() - peer.created < offerTtl\n\n if (!shouldLive) {\n peer.destroy()\n }\n\n return shouldLive\n })),\n offerTtl * 1.03\n )\n }\n\n const announceIntervals = initPromises.map(() => announceIntervalMs)\n const announceTimeouts = []\n\n const unsubFns = initPromises.map(async (clientP, i) =>\n subscribe(\n await clientP,\n await rootTopicP,\n await selfTopicP,\n handleMessage(i),\n getOffers\n )\n )\n\n all([rootTopicP, selfTopicP]).then(([rootTopic, selfTopic]) => {\n const queueAnnounce = async (client, i) => {\n const ms = await announce(client, rootTopic, selfTopic)\n\n if (typeof ms === 'number') {\n announceIntervals[i] = ms\n }\n\n announceTimeouts[i] = setTimeout(\n () => queueAnnounce(client, i),\n announceIntervals[i]\n )\n }\n\n unsubFns.forEach(async (didSub, i) => {\n await didSub\n queueAnnounce(await initPromises[i], i)\n })\n })\n\n let onPeerConnect = noOp\n\n occupiedRooms[appId] ||= {}\n\n return (occupiedRooms[appId][roomId] = room(\n f => (onPeerConnect = f),\n id => delete connectedPeers[id],\n () => {\n delete occupiedRooms[appId][roomId]\n announceTimeouts.forEach(clearTimeout)\n unsubFns.forEach(async f => (await f)())\n clearInterval(offerCleanupTimer)\n }\n ))\n }\n}\n","import Peer from '@thaunknown/simple-peer'\nimport {alloc} from './utils.js'\n\nconst dataEvent = 'data'\nconst signalEvent = 'signal'\n\nexport default (initiator, config) => {\n const peer = new Peer({\n ...{iceServers: [{urls: defaultIceServers}]},\n ...config,\n initiator,\n trickle: false\n })\n const onData = d => earlyDataBuffer.push(d)\n\n let earlyDataBuffer = []\n\n peer.on(dataEvent, onData)\n\n return {\n id: peer._id,\n\n created: Date.now(),\n\n connection: peer._pc,\n\n get channel() {\n return peer._channel\n },\n\n get isDead() {\n return peer.destroyed\n },\n\n signal: sdp =>\n new Promise(res => {\n if (!initiator) {\n peer.on(signalEvent, res)\n }\n peer.signal(sdp)\n }),\n\n sendData: data => peer.send(data),\n\n destroy: () => peer.destroy(),\n\n setHandlers: handlers =>\n Object.entries(handlers).forEach(([event, fn]) => peer.on(event, fn)),\n\n offerPromise: initiator\n ? new Promise(res => peer.on(signalEvent, res))\n : Promise.resolve(),\n\n addStream: stream => peer.addStream(stream),\n\n removeStream: stream => peer.removeStream(stream),\n\n addTrack: (track, stream) => peer.addTrack(track, stream),\n\n removeTrack: (track, stream) => peer.removeTrack(track, stream),\n\n replaceTrack: (oldTrack, newTrack, stream) =>\n peer.replaceTrack(oldTrack, newTrack, stream),\n\n drainEarlyData: f => {\n peer.off(dataEvent, onData)\n earlyDataBuffer.forEach(f)\n earlyDataBuffer = null\n }\n }\n}\n\nexport const defaultIceServers = [\n ...alloc(5, (_, i) => `stun:stun${i || ''}.l.google.com:19302`),\n 'stun:global.stun.twilio.com:3478'\n]\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport Lite from './lite.js'\r\nimport errCode from 'err-code'\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Lite {\r\n constructor (opts = {}) {\r\n super(opts)\r\n if (!this._pc) return\r\n\r\n this.streams = opts.streams || (opts.stream ? [opts.stream] : []) // support old \"stream\" option\r\n this._senderMap = new Map()\r\n\r\n if (this.streams) {\r\n this.streams.forEach(stream => {\r\n this.addStream(stream)\r\n })\r\n }\r\n this._pc.ontrack = event => {\r\n this._onTrack(event)\r\n }\r\n }\r\n\r\n /**\r\n * Add a Transceiver to the connection.\r\n * @param {String} kind\r\n * @param {Object=} init\r\n */\r\n addTransceiver (kind, init) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTransceiver after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTransceiver()')\r\n\r\n if (this.initiator) {\r\n try {\r\n this._pc.addTransceiver(kind, init)\r\n this._needsNegotiation()\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_ADD_TRANSCEIVER'))\r\n }\r\n } else {\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'transceiverRequest',\r\n transceiverRequest: { kind, init }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Add a MediaStream to the connection.\r\n * @param {MediaStream} stream\r\n */\r\n addStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addStream()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.addTrack(track, stream)\r\n })\r\n }\r\n\r\n /**\r\n * Add a MediaStreamTrack to the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n addTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot addTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('addTrack()')\r\n\r\n const submap = this._senderMap.get(track) || new Map() // nested Maps map [track, stream] to sender\r\n let sender = submap.get(stream)\r\n if (!sender) {\r\n sender = this._pc.addTrack(track, stream)\r\n submap.set(stream, sender)\r\n this._senderMap.set(track, submap)\r\n this._needsNegotiation()\r\n } else if (sender.removed) {\r\n throw errCode(new Error('Track has been removed. You should enable/disable tracks that you want to re-add.'), 'ERR_SENDER_REMOVED')\r\n } else {\r\n throw errCode(new Error('Track has already been added to that stream.'), 'ERR_SENDER_ALREADY_ADDED')\r\n }\r\n }\r\n\r\n /**\r\n * Replace a MediaStreamTrack by another in the connection.\r\n * @param {MediaStreamTrack} oldTrack\r\n * @param {MediaStreamTrack} newTrack\r\n * @param {MediaStream} stream\r\n */\r\n replaceTrack (oldTrack, newTrack, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot replaceTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('replaceTrack()')\r\n\r\n const submap = this._senderMap.get(oldTrack)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot replace track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n if (newTrack) this._senderMap.set(newTrack, submap)\r\n\r\n if (sender.replaceTrack != null) {\r\n sender.replaceTrack(newTrack)\r\n } else {\r\n this.__destroy(errCode(new Error('replaceTrack is not supported in this browser'), 'ERR_UNSUPPORTED_REPLACETRACK'))\r\n }\r\n }\r\n\r\n /**\r\n * Remove a MediaStreamTrack from the connection.\r\n * @param {MediaStreamTrack} track\r\n * @param {MediaStream} stream\r\n */\r\n removeTrack (track, stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeTrack after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSender()')\r\n\r\n const submap = this._senderMap.get(track)\r\n const sender = submap ? submap.get(stream) : null\r\n if (!sender) {\r\n throw errCode(new Error('Cannot remove track that was never added.'), 'ERR_TRACK_NOT_ADDED')\r\n }\r\n try {\r\n sender.removed = true\r\n this._pc.removeTrack(sender)\r\n } catch (err) {\r\n if (err.name === 'NS_ERROR_UNEXPECTED') {\r\n this._sendersAwaitingStable.push(sender) // HACK: Firefox must wait until (signalingState === stable) https://bugzilla.mozilla.org/show_bug.cgi?id=1133874\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_REMOVE_TRACK'))\r\n }\r\n }\r\n this._needsNegotiation()\r\n }\r\n\r\n /**\r\n * Remove a MediaStream from the connection.\r\n * @param {MediaStream} stream\r\n */\r\n removeStream (stream) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot removeStream after peer is destroyed'), 'ERR_DESTROYED')\r\n this._debug('removeSenders()')\r\n\r\n stream.getTracks().forEach(track => {\r\n this.removeTrack(track, stream)\r\n })\r\n }\r\n\r\n _requestMissingTransceivers () {\r\n if (this._pc.getTransceivers) {\r\n this._pc.getTransceivers().forEach(transceiver => {\r\n if (!transceiver.mid && transceiver.sender.track && !transceiver.requested) {\r\n transceiver.requested = true // HACK: Safari returns negotiated transceivers with a null mid\r\n this.addTransceiver(transceiver.sender.track.kind)\r\n }\r\n })\r\n }\r\n }\r\n\r\n _onTrack (event) {\r\n if (this.destroyed) return\r\n\r\n event.streams.forEach(eventStream => {\r\n this._debug('on track')\r\n this.emit('track', event.track, eventStream)\r\n\r\n this._remoteTracks.push({\r\n track: event.track,\r\n stream: eventStream\r\n })\r\n\r\n if (this._remoteStreams.some(remoteStream => {\r\n return remoteStream.id === eventStream.id\r\n })) return // Only fire one 'stream' event, even though there may be multiple tracks per stream\r\n\r\n this._remoteStreams.push(eventStream)\r\n queueMicrotask(() => {\r\n this._debug('on stream')\r\n this.emit('stream', eventStream) // ensure all tracks have been added\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default Peer\r\n","/*! simple-peer. MIT License. Feross Aboukhadijeh */\r\nimport debug from 'debug'\r\nimport { RTCPeerConnection, RTCSessionDescription, RTCIceCandidate } from 'webrtc-polyfill'\r\nimport { Duplex } from 'streamx'\r\nimport errCode from 'err-code'\r\nimport { randomBytes, arr2hex, text2arr } from 'uint8-util'\r\n\r\nconst Debug = debug('simple-peer')\r\n\r\nconst MAX_BUFFERED_AMOUNT = 64 * 1024\r\nconst ICECOMPLETE_TIMEOUT = 5 * 1000\r\nconst CHANNEL_CLOSING_TIMEOUT = 5 * 1000\r\n\r\n// HACK: Filter trickle lines when trickle is disabled #354\r\nfunction filterTrickle (sdp) {\r\n return sdp.replace(/a=ice-options:trickle\\s\\n/g, '')\r\n}\r\n\r\nfunction warn (message) {\r\n console.warn(message)\r\n}\r\n\r\n/**\r\n * WebRTC peer connection. Same API as node core `net.Socket`, plus a few extra methods.\r\n * Duplex stream.\r\n * @param {Object} opts\r\n */\r\nclass Peer extends Duplex {\r\n /** @type {RTCPeerConnection} */\r\n _pc\r\n constructor (opts) {\r\n opts = Object.assign({\r\n allowHalfOpen: false\r\n }, opts)\r\n\r\n super(opts)\r\n\r\n this.__objectMode = !!opts.objectMode // streamx is objectMode by default, so implement readable's fuctionality\r\n\r\n this._id = arr2hex(randomBytes(4)).slice(0, 7)\r\n this._debug('new peer %o', opts)\r\n\r\n this.channelName = opts.initiator\r\n ? opts.channelName || arr2hex(randomBytes(20))\r\n : null\r\n\r\n this.initiator = opts.initiator || false\r\n this.channelConfig = opts.channelConfig || Peer.channelConfig\r\n this.channelNegotiated = this.channelConfig.negotiated\r\n this.config = Object.assign({}, Peer.config, opts.config)\r\n this.offerOptions = opts.offerOptions || {}\r\n this.answerOptions = opts.answerOptions || {}\r\n this.sdpTransform = opts.sdpTransform || (sdp => sdp)\r\n this.trickle = opts.trickle !== undefined ? opts.trickle : true\r\n this.allowHalfTrickle = opts.allowHalfTrickle !== undefined ? opts.allowHalfTrickle : false\r\n this.iceCompleteTimeout = opts.iceCompleteTimeout || ICECOMPLETE_TIMEOUT\r\n\r\n this._destroying = false\r\n this._connected = false\r\n\r\n this.remoteAddress = undefined\r\n this.remoteFamily = undefined\r\n this.remotePort = undefined\r\n this.localAddress = undefined\r\n this.localFamily = undefined\r\n this.localPort = undefined\r\n\r\n if (!RTCPeerConnection) {\r\n if (typeof window === 'undefined') {\r\n throw errCode(new Error('No WebRTC support: Specify `opts.wrtc` option in this environment'), 'ERR_WEBRTC_SUPPORT')\r\n } else {\r\n throw errCode(new Error('No WebRTC support: Not a supported browser'), 'ERR_WEBRTC_SUPPORT')\r\n }\r\n }\r\n\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._iceComplete = false // ice candidate trickle done (got null candidate)\r\n this._iceCompleteTimer = null // send an offer/answer anyway after some timeout\r\n this._channel = null\r\n this._pendingCandidates = []\r\n\r\n this._isNegotiating = false // is this peer waiting for negotiation to complete?\r\n this._firstNegotiation = true\r\n this._batchedNegotiation = false // batch synchronous negotiations\r\n this._queuedNegotiation = false // is there a queued negotiation request?\r\n this._sendersAwaitingStable = []\r\n this._closingInterval = null\r\n\r\n this._remoteTracks = []\r\n this._remoteStreams = []\r\n\r\n this._chunk = null\r\n this._cb = null\r\n this._interval = null\r\n\r\n try {\r\n this._pc = new RTCPeerConnection(this.config)\r\n } catch (err) {\r\n this.__destroy(errCode(err, 'ERR_PC_CONSTRUCTOR'))\r\n return\r\n }\r\n\r\n // We prefer feature detection whenever possible, but sometimes that's not\r\n // possible for certain implementations.\r\n this._isReactNativeWebrtc = typeof this._pc._peerConnectionId === 'number'\r\n\r\n this._pc.oniceconnectionstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onicegatheringstatechange = () => {\r\n this._onIceStateChange()\r\n }\r\n this._pc.onconnectionstatechange = () => {\r\n this._onConnectionStateChange()\r\n }\r\n this._pc.onsignalingstatechange = () => {\r\n this._onSignalingStateChange()\r\n }\r\n this._pc.onicecandidate = event => {\r\n this._onIceCandidate(event)\r\n }\r\n\r\n // HACK: Fix for odd Firefox behavior, see: https://github.com/feross/simple-peer/pull/783\r\n if (typeof this._pc.peerIdentity === 'object') {\r\n this._pc.peerIdentity.catch(err => {\r\n this.__destroy(errCode(err, 'ERR_PC_PEER_IDENTITY'))\r\n })\r\n }\r\n\r\n // Other spec events, unused by this implementation:\r\n // - onconnectionstatechange\r\n // - onicecandidateerror\r\n // - onfingerprintfailure\r\n // - onnegotiationneeded\r\n\r\n if (this.initiator || this.channelNegotiated) {\r\n this._setupData({\r\n channel: this._pc.createDataChannel(this.channelName, this.channelConfig)\r\n })\r\n } else {\r\n this._pc.ondatachannel = event => {\r\n this._setupData(event)\r\n }\r\n }\r\n\r\n this._debug('initial negotiation')\r\n this._needsNegotiation()\r\n\r\n this._onFinishBound = () => {\r\n this._onFinish()\r\n }\r\n this.once('finish', this._onFinishBound)\r\n }\r\n\r\n get bufferSize () {\r\n return (this._channel && this._channel.bufferedAmount) || 0\r\n }\r\n\r\n // HACK: it's possible channel.readyState is \"closing\" before peer.destroy() fires\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n get connected () {\r\n return (this._connected && this._channel.readyState === 'open')\r\n }\r\n\r\n address () {\r\n return { port: this.localPort, family: this.localFamily, address: this.localAddress }\r\n }\r\n\r\n signal (data) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot signal after peer is destroyed'), 'ERR_DESTROYED')\r\n if (typeof data === 'string') {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (err) {\r\n data = {}\r\n }\r\n }\r\n this._debug('signal()')\r\n\r\n if (data.renegotiate && this.initiator) {\r\n this._debug('got request to renegotiate')\r\n this._needsNegotiation()\r\n }\r\n if (data.transceiverRequest && this.initiator) {\r\n this._debug('got request for transceiver')\r\n this.addTransceiver(data.transceiverRequest.kind, data.transceiverRequest.init)\r\n }\r\n if (data.candidate) {\r\n if (this._pc.remoteDescription && this._pc.remoteDescription.type) {\r\n this._addIceCandidate(data.candidate)\r\n } else {\r\n this._pendingCandidates.push(data.candidate)\r\n }\r\n }\r\n if (data.sdp) {\r\n this._pc.setRemoteDescription(new RTCSessionDescription(data))\r\n .then(() => {\r\n if (this.destroyed) return\r\n\r\n this._pendingCandidates.forEach(candidate => {\r\n this._addIceCandidate(candidate)\r\n })\r\n this._pendingCandidates = []\r\n\r\n if (this._pc.remoteDescription.type === 'offer') this._createAnswer()\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_SET_REMOTE_DESCRIPTION'))\r\n })\r\n }\r\n if (!data.sdp && !data.candidate && !data.renegotiate && !data.transceiverRequest) {\r\n this.__destroy(errCode(new Error('signal() called with invalid signal data'), 'ERR_SIGNALING'))\r\n }\r\n }\r\n\r\n _addIceCandidate (candidate) {\r\n const iceCandidateObj = new RTCIceCandidate(candidate)\r\n this._pc.addIceCandidate(iceCandidateObj)\r\n .catch(err => {\r\n if (!iceCandidateObj.address || iceCandidateObj.address.endsWith('.local')) {\r\n warn('Ignoring unsupported ICE candidate.')\r\n } else {\r\n this.__destroy(errCode(err, 'ERR_ADD_ICE_CANDIDATE'))\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Send text/binary data to the remote peer.\r\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array|string|Blob} chunk\r\n */\r\n send (chunk) {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot send after peer is destroyed'), 'ERR_DESTROYED')\r\n this._channel.send(chunk)\r\n }\r\n\r\n _needsNegotiation () {\r\n this._debug('_needsNegotiation')\r\n if (this._batchedNegotiation) return // batch synchronous renegotiations\r\n this._batchedNegotiation = true\r\n queueMicrotask(() => {\r\n this._batchedNegotiation = false\r\n if (this.initiator || !this._firstNegotiation) {\r\n this._debug('starting batched negotiation')\r\n this.negotiate()\r\n } else {\r\n this._debug('non-initiator initial negotiation request discarded')\r\n }\r\n this._firstNegotiation = false\r\n })\r\n }\r\n\r\n negotiate () {\r\n if (this._destroying) return\r\n if (this.destroyed) throw errCode(new Error('cannot negotiate after peer is destroyed'), 'ERR_DESTROYED')\r\n\r\n if (this.initiator) {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('start negotiation')\r\n setTimeout(() => { // HACK: Chrome crashes if we immediately call createOffer\r\n this._createOffer()\r\n }, 0)\r\n }\r\n } else {\r\n if (this._isNegotiating) {\r\n this._queuedNegotiation = true\r\n this._debug('already negotiating, queueing')\r\n } else {\r\n this._debug('requesting negotiation from initiator')\r\n this.emit('signal', { // request initiator to renegotiate\r\n type: 'renegotiate',\r\n renegotiate: true\r\n })\r\n }\r\n }\r\n this._isNegotiating = true\r\n }\r\n\r\n _final (cb) {\r\n if (!this._readableState.ended) this.push(null)\r\n cb(null)\r\n }\r\n\r\n __destroy (err) {\r\n this.end()\r\n this._destroy(() => {}, err)\r\n }\r\n\r\n _destroy (cb, err) {\r\n if (this.destroyed || this._destroying) return\r\n this._destroying = true\r\n\r\n this._debug('destroying (error: %s)', err && (err.message || err))\r\n\r\n setTimeout(() => { // allow events concurrent with the call to _destroy() to fire (see #692)\r\n this._connected = false\r\n this._pcReady = false\r\n this._channelReady = false\r\n this._remoteTracks = null\r\n this._remoteStreams = null\r\n this._senderMap = null\r\n\r\n clearInterval(this._closingInterval)\r\n this._closingInterval = null\r\n\r\n clearInterval(this._interval)\r\n this._interval = null\r\n this._chunk = null\r\n this._cb = null\r\n\r\n if (this._onFinishBound) this.removeListener('finish', this._onFinishBound)\r\n this._onFinishBound = null\r\n\r\n if (this._channel) {\r\n try {\r\n this._channel.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._channel.onmessage = null\r\n this._channel.onopen = null\r\n this._channel.onclose = null\r\n this._channel.onerror = null\r\n }\r\n if (this._pc) {\r\n try {\r\n this._pc.close()\r\n } catch (err) {}\r\n\r\n // allow events concurrent with destruction to be handled\r\n this._pc.oniceconnectionstatechange = null\r\n this._pc.onicegatheringstatechange = null\r\n this._pc.onsignalingstatechange = null\r\n this._pc.onicecandidate = null\r\n this._pc.ontrack = null\r\n this._pc.ondatachannel = null\r\n }\r\n this._pc = null\r\n this._channel = null\r\n if (err) this.emit('error', err)\r\n cb()\r\n }, 0)\r\n }\r\n\r\n _setupData (event) {\r\n if (!event.channel) {\r\n // In some situations `pc.createDataChannel()` returns `undefined` (in wrtc),\r\n // which is invalid behavior. Handle it gracefully.\r\n // See: https://github.com/feross/simple-peer/issues/163\r\n return this.__destroy(errCode(new Error('Data channel event is missing `channel` property'), 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n this._channel = event.channel\r\n this._channel.binaryType = 'arraybuffer'\r\n\r\n if (typeof this._channel.bufferedAmountLowThreshold === 'number') {\r\n this._channel.bufferedAmountLowThreshold = MAX_BUFFERED_AMOUNT\r\n }\r\n\r\n this.channelName = this._channel.label\r\n\r\n this._channel.onmessage = event => {\r\n this._onChannelMessage(event)\r\n }\r\n this._channel.onbufferedamountlow = () => {\r\n this._onChannelBufferedAmountLow()\r\n }\r\n this._channel.onopen = () => {\r\n this._onChannelOpen()\r\n }\r\n this._channel.onclose = () => {\r\n this._onChannelClose()\r\n }\r\n this._channel.onerror = event => {\r\n const err = event.error instanceof Error\r\n ? event.error\r\n : new Error(`Datachannel error: ${event.message} ${event.filename}:${event.lineno}:${event.colno}`)\r\n this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n\r\n // HACK: Chrome will sometimes get stuck in readyState \"closing\", let's check for this condition\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=882743\r\n let isClosing = false\r\n this._closingInterval = setInterval(() => { // No \"onclosing\" event\r\n if (this._channel && this._channel.readyState === 'closing') {\r\n if (isClosing) this._onChannelClose() // closing timed out: equivalent to onclose firing\r\n isClosing = true\r\n } else {\r\n isClosing = false\r\n }\r\n }, CHANNEL_CLOSING_TIMEOUT)\r\n }\r\n\r\n _write (chunk, cb) {\r\n if (this.destroyed) return cb(errCode(new Error('cannot write after peer is destroyed'), 'ERR_DATA_CHANNEL'))\r\n\r\n if (this._connected) {\r\n try {\r\n this.send(chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n if (this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n this._debug('start backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n this._cb = cb\r\n } else {\r\n cb(null)\r\n }\r\n } else {\r\n this._debug('write before connect')\r\n this._chunk = chunk\r\n this._cb = cb\r\n }\r\n }\r\n\r\n // When stream finishes writing, close socket. Half open connections are not\r\n // supported.\r\n _onFinish () {\r\n if (this.destroyed) return\r\n\r\n // Wait a bit before destroying so the socket flushes.\r\n // TODO: is there a more reliable way to accomplish this?\r\n const destroySoon = () => {\r\n setTimeout(() => this.__destroy(), 1000)\r\n }\r\n\r\n if (this._connected) {\r\n destroySoon()\r\n } else {\r\n this.once('connect', destroySoon)\r\n }\r\n }\r\n\r\n _startIceCompleteTimeout () {\r\n if (this.destroyed) return\r\n if (this._iceCompleteTimer) return\r\n this._debug('started iceComplete timeout')\r\n this._iceCompleteTimer = setTimeout(() => {\r\n if (!this._iceComplete) {\r\n this._iceComplete = true\r\n this._debug('iceComplete timeout completed')\r\n this.emit('iceTimeout')\r\n this.emit('_iceComplete')\r\n }\r\n }, this.iceCompleteTimeout)\r\n }\r\n\r\n _createOffer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createOffer(this.offerOptions)\r\n .then(offer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) offer.sdp = filterTrickle(offer.sdp)\r\n offer.sdp = this.sdpTransform(offer.sdp)\r\n\r\n const sendOffer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || offer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n }\r\n\r\n const onSuccess = () => {\r\n this._debug('createOffer success')\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendOffer()\r\n else this.once('_iceComplete', sendOffer) // wait for candidates\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(offer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_OFFER'))\r\n })\r\n }\r\n\r\n _createAnswer () {\r\n if (this.destroyed) return\r\n\r\n this._pc.createAnswer(this.answerOptions)\r\n .then(answer => {\r\n if (this.destroyed) return\r\n if (!this.trickle && !this.allowHalfTrickle) answer.sdp = filterTrickle(answer.sdp)\r\n answer.sdp = this.sdpTransform(answer.sdp)\r\n\r\n const sendAnswer = () => {\r\n if (this.destroyed) return\r\n const signal = this._pc.localDescription || answer\r\n this._debug('signal')\r\n this.emit('signal', {\r\n type: signal.type,\r\n sdp: signal.sdp\r\n })\r\n if (!this.initiator) this._requestMissingTransceivers?.()\r\n }\r\n\r\n const onSuccess = () => {\r\n if (this.destroyed) return\r\n if (this.trickle || this._iceComplete) sendAnswer()\r\n else this.once('_iceComplete', sendAnswer)\r\n }\r\n\r\n const onError = err => {\r\n this.__destroy(errCode(err, 'ERR_SET_LOCAL_DESCRIPTION'))\r\n }\r\n\r\n this._pc.setLocalDescription(answer)\r\n .then(onSuccess)\r\n .catch(onError)\r\n })\r\n .catch(err => {\r\n this.__destroy(errCode(err, 'ERR_CREATE_ANSWER'))\r\n })\r\n }\r\n\r\n _onConnectionStateChange () {\r\n if (this.destroyed || this._destroying) return\r\n if (this._pc.connectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Connection failed.'), 'ERR_CONNECTION_FAILURE'))\r\n }\r\n }\r\n\r\n _onIceStateChange () {\r\n if (this.destroyed) return\r\n const iceConnectionState = this._pc.iceConnectionState\r\n const iceGatheringState = this._pc.iceGatheringState\r\n\r\n this._debug(\r\n 'iceStateChange (connection: %s) (gathering: %s)',\r\n iceConnectionState,\r\n iceGatheringState\r\n )\r\n this.emit('iceStateChange', iceConnectionState, iceGatheringState)\r\n\r\n if (iceConnectionState === 'connected' || iceConnectionState === 'completed') {\r\n this._pcReady = true\r\n this._maybeReady()\r\n }\r\n if (iceConnectionState === 'failed') {\r\n this.__destroy(errCode(new Error('Ice connection failed.'), 'ERR_ICE_CONNECTION_FAILURE'))\r\n }\r\n if (iceConnectionState === 'closed') {\r\n this.__destroy(errCode(new Error('Ice connection closed.'), 'ERR_ICE_CONNECTION_CLOSED'))\r\n }\r\n }\r\n\r\n getStats (cb) {\r\n // statreports can come with a value array instead of properties\r\n const flattenValues = report => {\r\n if (Object.prototype.toString.call(report.values) === '[object Array]') {\r\n report.values.forEach(value => {\r\n Object.assign(report, value)\r\n })\r\n }\r\n return report\r\n }\r\n\r\n // Promise-based getStats() (standard)\r\n if (this._pc.getStats.length === 0 || this._isReactNativeWebrtc) {\r\n this._pc.getStats()\r\n .then(res => {\r\n const reports = []\r\n res.forEach(report => {\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Single-parameter callback-based getStats() (non-standard)\r\n } else if (this._pc.getStats.length > 0) {\r\n this._pc.getStats(res => {\r\n // If we destroy connection in `connect` callback this code might happen to run when actual connection is already closed\r\n if (this.destroyed) return\r\n\r\n const reports = []\r\n res.result().forEach(result => {\r\n const report = {}\r\n result.names().forEach(name => {\r\n report[name] = result.stat(name)\r\n })\r\n report.id = result.id\r\n report.type = result.type\r\n report.timestamp = result.timestamp\r\n reports.push(flattenValues(report))\r\n })\r\n cb(null, reports)\r\n }, err => cb(err))\r\n\r\n // Unknown browser, skip getStats() since it's anyone's guess which style of\r\n // getStats() they implement.\r\n } else {\r\n cb(null, [])\r\n }\r\n }\r\n\r\n _maybeReady () {\r\n this._debug('maybeReady pc %s channel %s', this._pcReady, this._channelReady)\r\n if (this._connected || this._connecting || !this._pcReady || !this._channelReady) return\r\n\r\n this._connecting = true\r\n\r\n // HACK: We can't rely on order here, for details see https://github.com/js-platform/node-webrtc/issues/339\r\n const findCandidatePair = () => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n this.getStats((err, items) => {\r\n if (this.destroyed || this._destroying) return\r\n\r\n // Treat getStats error as non-fatal. It's not essential.\r\n if (err) items = []\r\n\r\n const remoteCandidates = {}\r\n const localCandidates = {}\r\n const candidatePairs = {}\r\n let foundSelectedCandidatePair = false\r\n\r\n items.forEach(item => {\r\n // TODO: Once all browsers support the hyphenated stats report types, remove\r\n // the non-hypenated ones\r\n if (item.type === 'remotecandidate' || item.type === 'remote-candidate') {\r\n remoteCandidates[item.id] = item\r\n }\r\n if (item.type === 'localcandidate' || item.type === 'local-candidate') {\r\n localCandidates[item.id] = item\r\n }\r\n if (item.type === 'candidatepair' || item.type === 'candidate-pair') {\r\n candidatePairs[item.id] = item\r\n }\r\n })\r\n\r\n const setSelectedCandidatePair = selectedCandidatePair => {\r\n foundSelectedCandidatePair = true\r\n\r\n let local = localCandidates[selectedCandidatePair.localCandidateId]\r\n\r\n if (local && (local.ip || local.address)) {\r\n // Spec\r\n this.localAddress = local.ip || local.address\r\n this.localPort = Number(local.port)\r\n } else if (local && local.ipAddress) {\r\n // Firefox\r\n this.localAddress = local.ipAddress\r\n this.localPort = Number(local.portNumber)\r\n } else if (typeof selectedCandidatePair.googLocalAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n local = selectedCandidatePair.googLocalAddress.split(':')\r\n this.localAddress = local[0]\r\n this.localPort = Number(local[1])\r\n }\r\n if (this.localAddress) {\r\n this.localFamily = this.localAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n let remote = remoteCandidates[selectedCandidatePair.remoteCandidateId]\r\n\r\n if (remote && (remote.ip || remote.address)) {\r\n // Spec\r\n this.remoteAddress = remote.ip || remote.address\r\n this.remotePort = Number(remote.port)\r\n } else if (remote && remote.ipAddress) {\r\n // Firefox\r\n this.remoteAddress = remote.ipAddress\r\n this.remotePort = Number(remote.portNumber)\r\n } else if (typeof selectedCandidatePair.googRemoteAddress === 'string') {\r\n // TODO: remove this once Chrome 58 is released\r\n remote = selectedCandidatePair.googRemoteAddress.split(':')\r\n this.remoteAddress = remote[0]\r\n this.remotePort = Number(remote[1])\r\n }\r\n if (this.remoteAddress) {\r\n this.remoteFamily = this.remoteAddress.includes(':') ? 'IPv6' : 'IPv4'\r\n }\r\n\r\n this._debug(\r\n 'connect local: %s:%s remote: %s:%s',\r\n this.localAddress,\r\n this.localPort,\r\n this.remoteAddress,\r\n this.remotePort\r\n )\r\n }\r\n\r\n items.forEach(item => {\r\n // Spec-compliant\r\n if (item.type === 'transport' && item.selectedCandidatePairId) {\r\n setSelectedCandidatePair(candidatePairs[item.selectedCandidatePairId])\r\n }\r\n\r\n // Old implementations\r\n if (\r\n (item.type === 'googCandidatePair' && item.googActiveConnection === 'true') ||\r\n ((item.type === 'candidatepair' || item.type === 'candidate-pair') && item.selected)\r\n ) {\r\n setSelectedCandidatePair(item)\r\n }\r\n })\r\n\r\n // Ignore candidate pair selection in browsers like Safari 11 that do not have any local or remote candidates\r\n // But wait until at least 1 candidate pair is available\r\n if (!foundSelectedCandidatePair && (!Object.keys(candidatePairs).length || Object.keys(localCandidates).length)) {\r\n setTimeout(findCandidatePair, 100)\r\n return\r\n } else {\r\n this._connecting = false\r\n this._connected = true\r\n }\r\n\r\n if (this._chunk) {\r\n try {\r\n this.send(this._chunk)\r\n } catch (err) {\r\n return this.__destroy(errCode(err, 'ERR_DATA_CHANNEL'))\r\n }\r\n this._chunk = null\r\n this._debug('sent chunk from \"write before connect\"')\r\n\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n // If `bufferedAmountLowThreshold` and 'onbufferedamountlow' are unsupported,\r\n // fallback to using setInterval to implement backpressure.\r\n if (typeof this._channel.bufferedAmountLowThreshold !== 'number') {\r\n this._interval = setInterval(() => this._onInterval(), 150)\r\n if (this._interval.unref) this._interval.unref()\r\n }\r\n\r\n this._debug('connect')\r\n this.emit('connect')\r\n })\r\n }\r\n findCandidatePair()\r\n }\r\n\r\n _onInterval () {\r\n if (!this._cb || !this._channel || this._channel.bufferedAmount > MAX_BUFFERED_AMOUNT) {\r\n return\r\n }\r\n this._onChannelBufferedAmountLow()\r\n }\r\n\r\n _onSignalingStateChange () {\r\n if (this.destroyed) return\r\n\r\n if (this._pc.signalingState === 'stable') {\r\n this._isNegotiating = false\r\n\r\n // HACK: Firefox doesn't yet support removing tracks when signalingState !== 'stable'\r\n this._debug('flushing sender queue', this._sendersAwaitingStable)\r\n this._sendersAwaitingStable.forEach(sender => {\r\n this._pc.removeTrack(sender)\r\n this._queuedNegotiation = true\r\n })\r\n this._sendersAwaitingStable = []\r\n\r\n if (this._queuedNegotiation) {\r\n this._debug('flushing negotiation queue')\r\n this._queuedNegotiation = false\r\n this._needsNegotiation() // negotiate again\r\n } else {\r\n this._debug('negotiated')\r\n this.emit('negotiated')\r\n }\r\n }\r\n\r\n this._debug('signalingStateChange %s', this._pc.signalingState)\r\n this.emit('signalingStateChange', this._pc.signalingState)\r\n }\r\n\r\n _onIceCandidate (event) {\r\n if (this.destroyed) return\r\n if (event.candidate && this.trickle) {\r\n this.emit('signal', {\r\n type: 'candidate',\r\n candidate: {\r\n candidate: event.candidate.candidate,\r\n sdpMLineIndex: event.candidate.sdpMLineIndex,\r\n sdpMid: event.candidate.sdpMid\r\n }\r\n })\r\n } else if (!event.candidate && !this._iceComplete) {\r\n this._iceComplete = true\r\n this.emit('_iceComplete')\r\n }\r\n // as soon as we've received one valid candidate start timeout\r\n if (event.candidate) {\r\n this._startIceCompleteTimeout()\r\n }\r\n }\r\n\r\n _onChannelMessage (event) {\r\n if (this.destroyed) return\r\n let data = event.data\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data)\r\n } else if (this.__objectMode === false) {\r\n data = text2arr(data)\r\n }\r\n this.push(data)\r\n }\r\n\r\n _onChannelBufferedAmountLow () {\r\n if (this.destroyed || !this._cb) return\r\n this._debug('ending backpressure: bufferedAmount %d', this._channel.bufferedAmount)\r\n const cb = this._cb\r\n this._cb = null\r\n cb(null)\r\n }\r\n\r\n _onChannelOpen () {\r\n if (this._connected || this.destroyed) return\r\n this._debug('on channel open')\r\n this._channelReady = true\r\n this._maybeReady()\r\n }\r\n\r\n _onChannelClose () {\r\n if (this.destroyed) return\r\n this._debug('on channel close')\r\n this.__destroy()\r\n }\r\n\r\n _debug () {\r\n const args = [].slice.call(arguments)\r\n args[0] = '[' + this._id + '] ' + args[0]\r\n Debug.apply(null, args)\r\n }\r\n}\r\n\r\nPeer.WEBRTC_SUPPORT = !!RTCPeerConnection\r\n\r\n/**\r\n * Expose peer and data channel config for overriding all Peer\r\n * instances. Otherwise, just set opts.config or opts.channelConfig\r\n * when constructing a Peer.\r\n */\r\nPeer.config = {\r\n iceServers: [\r\n {\r\n urls: [\r\n 'stun:stun.l.google.com:19302',\r\n 'stun:global.stun.twilio.com:3478'\r\n ]\r\n }\r\n ],\r\n sdpSemantics: 'unified-plan'\r\n}\r\n\r\nPeer.channelConfig = {}\r\n\r\nexport default Peer\r\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","const scope = typeof window !== 'undefined' ? window : self\r\n\r\n// @ts-ignore\r\nexport const RTCPeerConnection = scope.RTCPeerConnection || scope.mozRTCPeerConnection || scope.webkitRTCPeerConnection\r\n// @ts-ignore\r\nexport const RTCSessionDescription = scope.RTCSessionDescription || scope.mozRTCSessionDescription || scope.webkitRTCSessionDescription\r\n// @ts-ignore\r\nexport const RTCIceCandidate = scope.RTCIceCandidate || scope.mozRTCIceCandidate || scope.webkitRTCIceCandidate\r\nexport const RTCIceTransport = scope.RTCIceTransport\r\nexport const RTCDataChannel = scope.RTCDataChannel\r\nexport const RTCSctpTransport = scope.RTCSctpTransport\r\nexport const RTCDtlsTransport = scope.RTCDtlsTransport\r\nexport const RTCCertificate = scope.RTCCertificate\r\nexport const MediaStream = scope.MediaStream\r\nexport const MediaStreamTrack = scope.MediaStreamTrack\r\nexport const MediaStreamTrackEvent = scope.MediaStreamTrackEvent\r\nexport const RTCPeerConnectionIceEvent = scope.RTCPeerConnectionIceEvent\r\nexport const RTCDataChannelEvent = scope.RTCDataChannelEvent\r\nexport const RTCTrackEvent = scope.RTCTrackEvent\r\nexport const RTCError = scope.RTCError\r\nexport const RTCErrorEvent = scope.RTCErrorEvent\r\nexport const RTCRtpTransceiver = scope.RTCRtpTransceiver\r\nexport const RTCRtpReceiver = scope.RTCRtpReceiver\r\nexport const RTCRtpSender = scope.RTCRtpSender\r\n\r\nexport * as default from './browser.js'\r\n","const { EventEmitter } = require('events')\nconst STREAM_DESTROYED = new Error('Stream was destroyed')\nconst PREMATURE_CLOSE = new Error('Premature close')\n\nconst queueTick = require('queue-tick')\nconst FIFO = require('fast-fifo')\nconst TextDecoder = require('text-decoder')\n\n/* eslint-disable no-multi-spaces */\n\n// 29 bits used total (4 from shared, 14 from read, and 11 from write)\nconst MAX = ((1 << 29) - 1)\n\n// Shared state\nconst OPENING = 0b0001\nconst PREDESTROYING = 0b0010\nconst DESTROYING = 0b0100\nconst DESTROYED = 0b1000\n\nconst NOT_OPENING = MAX ^ OPENING\nconst NOT_PREDESTROYING = MAX ^ PREDESTROYING\n\n// Read state (4 bit offset from shared state)\nconst READ_ACTIVE = 0b00000000000001 << 4\nconst READ_UPDATING = 0b00000000000010 << 4\nconst READ_PRIMARY = 0b00000000000100 << 4\nconst READ_QUEUED = 0b00000000001000 << 4\nconst READ_RESUMED = 0b00000000010000 << 4\nconst READ_PIPE_DRAINED = 0b00000000100000 << 4\nconst READ_ENDING = 0b00000001000000 << 4\nconst READ_EMIT_DATA = 0b00000010000000 << 4\nconst READ_EMIT_READABLE = 0b00000100000000 << 4\nconst READ_EMITTED_READABLE = 0b00001000000000 << 4\nconst READ_DONE = 0b00010000000000 << 4\nconst READ_NEXT_TICK = 0b00100000000000 << 4\nconst READ_NEEDS_PUSH = 0b01000000000000 << 4\nconst READ_READ_AHEAD = 0b10000000000000 << 4\n\n// Combined read state\nconst READ_FLOWING = READ_RESUMED | READ_PIPE_DRAINED\nconst READ_ACTIVE_AND_NEEDS_PUSH = READ_ACTIVE | READ_NEEDS_PUSH\nconst READ_PRIMARY_AND_ACTIVE = READ_PRIMARY | READ_ACTIVE\nconst READ_EMIT_READABLE_AND_QUEUED = READ_EMIT_READABLE | READ_QUEUED\nconst READ_RESUMED_READ_AHEAD = READ_RESUMED | READ_READ_AHEAD\n\nconst READ_NOT_ACTIVE = MAX ^ READ_ACTIVE\nconst READ_NON_PRIMARY = MAX ^ READ_PRIMARY\nconst READ_NON_PRIMARY_AND_PUSHED = MAX ^ (READ_PRIMARY | READ_NEEDS_PUSH)\nconst READ_PUSHED = MAX ^ READ_NEEDS_PUSH\nconst READ_PAUSED = MAX ^ READ_RESUMED\nconst READ_NOT_QUEUED = MAX ^ (READ_QUEUED | READ_EMITTED_READABLE)\nconst READ_NOT_ENDING = MAX ^ READ_ENDING\nconst READ_PIPE_NOT_DRAINED = MAX ^ READ_FLOWING\nconst READ_NOT_NEXT_TICK = MAX ^ READ_NEXT_TICK\nconst READ_NOT_UPDATING = MAX ^ READ_UPDATING\nconst READ_NO_READ_AHEAD = MAX ^ READ_READ_AHEAD\nconst READ_PAUSED_NO_READ_AHEAD = MAX ^ READ_RESUMED_READ_AHEAD\n\n// Write state (18 bit offset, 4 bit offset from shared state and 14 from read state)\nconst WRITE_ACTIVE = 0b00000000001 << 18\nconst WRITE_UPDATING = 0b00000000010 << 18\nconst WRITE_PRIMARY = 0b00000000100 << 18\nconst WRITE_QUEUED = 0b00000001000 << 18\nconst WRITE_UNDRAINED = 0b00000010000 << 18\nconst WRITE_DONE = 0b00000100000 << 18\nconst WRITE_EMIT_DRAIN = 0b00001000000 << 18\nconst WRITE_NEXT_TICK = 0b00010000000 << 18\nconst WRITE_WRITING = 0b00100000000 << 18\nconst WRITE_FINISHING = 0b01000000000 << 18\nconst WRITE_CORKED = 0b10000000000 << 18\n\nconst WRITE_NOT_ACTIVE = MAX ^ (WRITE_ACTIVE | WRITE_WRITING)\nconst WRITE_NON_PRIMARY = MAX ^ WRITE_PRIMARY\nconst WRITE_NOT_FINISHING = MAX ^ WRITE_FINISHING\nconst WRITE_DRAINED = MAX ^ WRITE_UNDRAINED\nconst WRITE_NOT_QUEUED = MAX ^ WRITE_QUEUED\nconst WRITE_NOT_NEXT_TICK = MAX ^ WRITE_NEXT_TICK\nconst WRITE_NOT_UPDATING = MAX ^ WRITE_UPDATING\nconst WRITE_NOT_CORKED = MAX ^ WRITE_CORKED\n\n// Combined shared state\nconst ACTIVE = READ_ACTIVE | WRITE_ACTIVE\nconst NOT_ACTIVE = MAX ^ ACTIVE\nconst DONE = READ_DONE | WRITE_DONE\nconst DESTROY_STATUS = DESTROYING | DESTROYED | PREDESTROYING\nconst OPEN_STATUS = DESTROY_STATUS | OPENING\nconst AUTO_DESTROY = DESTROY_STATUS | DONE\nconst NON_PRIMARY = WRITE_NON_PRIMARY & READ_NON_PRIMARY\nconst ACTIVE_OR_TICKING = WRITE_NEXT_TICK | READ_NEXT_TICK\nconst TICKING = ACTIVE_OR_TICKING & NOT_ACTIVE\nconst IS_OPENING = OPEN_STATUS | TICKING\n\n// Combined shared state and read state\nconst READ_PRIMARY_STATUS = OPEN_STATUS | READ_ENDING | READ_DONE\nconst READ_STATUS = OPEN_STATUS | READ_DONE | READ_QUEUED\nconst READ_ENDING_STATUS = OPEN_STATUS | READ_ENDING | READ_QUEUED\nconst READ_READABLE_STATUS = OPEN_STATUS | READ_EMIT_READABLE | READ_QUEUED | READ_EMITTED_READABLE\nconst SHOULD_NOT_READ = OPEN_STATUS | READ_ACTIVE | READ_ENDING | READ_DONE | READ_NEEDS_PUSH | READ_READ_AHEAD\nconst READ_BACKPRESSURE_STATUS = DESTROY_STATUS | READ_ENDING | READ_DONE\nconst READ_UPDATE_SYNC_STATUS = READ_UPDATING | OPEN_STATUS | READ_NEXT_TICK | READ_PRIMARY\n\n// Combined write state\nconst WRITE_PRIMARY_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_QUEUED_AND_UNDRAINED = WRITE_QUEUED | WRITE_UNDRAINED\nconst WRITE_QUEUED_AND_ACTIVE = WRITE_QUEUED | WRITE_ACTIVE\nconst WRITE_DRAIN_STATUS = WRITE_QUEUED | WRITE_UNDRAINED | OPEN_STATUS | WRITE_ACTIVE\nconst WRITE_STATUS = OPEN_STATUS | WRITE_ACTIVE | WRITE_QUEUED | WRITE_CORKED\nconst WRITE_PRIMARY_AND_ACTIVE = WRITE_PRIMARY | WRITE_ACTIVE\nconst WRITE_ACTIVE_AND_WRITING = WRITE_ACTIVE | WRITE_WRITING\nconst WRITE_FINISHING_STATUS = OPEN_STATUS | WRITE_FINISHING | WRITE_QUEUED_AND_ACTIVE | WRITE_DONE\nconst WRITE_BACKPRESSURE_STATUS = WRITE_UNDRAINED | DESTROY_STATUS | WRITE_FINISHING | WRITE_DONE\nconst WRITE_UPDATE_SYNC_STATUS = WRITE_UPDATING | OPEN_STATUS | WRITE_NEXT_TICK | WRITE_PRIMARY\n\nconst asyncIterator = Symbol.asyncIterator || Symbol('asyncIterator')\n\nclass WritableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapWritable, byteLength, byteLengthWritable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark\n this.buffered = 0\n this.error = null\n this.pipeline = null\n this.drains = null // if we add more seldomly used helpers we might them into a subobject so its a single ptr\n this.byteLength = byteLengthWritable || byteLength || defaultByteLength\n this.map = mapWritable || map\n this.afterWrite = afterWrite.bind(this)\n this.afterUpdateNextTick = updateWriteNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & WRITE_DONE) !== 0\n }\n\n push (data) {\n if (this.map !== null) data = this.map(data)\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n if (this.buffered < this.highWaterMark) {\n this.stream._duplexState |= WRITE_QUEUED\n return true\n }\n\n this.stream._duplexState |= WRITE_QUEUED_AND_UNDRAINED\n return false\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= WRITE_NOT_QUEUED\n\n return data\n }\n\n end (data) {\n if (typeof data === 'function') this.stream.once('finish', data)\n else if (data !== undefined && data !== null) this.push(data)\n this.stream._duplexState = (this.stream._duplexState | WRITE_FINISHING) & WRITE_NON_PRIMARY\n }\n\n autoBatch (data, cb) {\n const buffer = []\n const stream = this.stream\n\n buffer.push(data)\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED_AND_ACTIVE) {\n buffer.push(stream._writableState.shift())\n }\n\n if ((stream._duplexState & OPEN_STATUS) !== 0) return cb(null)\n stream._writev(buffer, cb)\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= WRITE_UPDATING\n\n do {\n while ((stream._duplexState & WRITE_STATUS) === WRITE_QUEUED) {\n const data = this.shift()\n stream._duplexState |= WRITE_ACTIVE_AND_WRITING\n stream._write(data, this.afterWrite)\n }\n\n if ((stream._duplexState & WRITE_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= WRITE_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & WRITE_FINISHING_STATUS) === WRITE_FINISHING) {\n stream._duplexState = (stream._duplexState | WRITE_ACTIVE) & WRITE_NOT_FINISHING\n stream._final(afterFinal.bind(this))\n return\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) === 0) return false\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & WRITE_UPDATE_SYNC_STATUS) === WRITE_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & WRITE_NEXT_TICK) !== 0) return\n this.stream._duplexState |= WRITE_NEXT_TICK\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass ReadableState {\n constructor (stream, { highWaterMark = 16384, map = null, mapReadable, byteLength, byteLengthReadable } = {}) {\n this.stream = stream\n this.queue = new FIFO()\n this.highWaterMark = highWaterMark === 0 ? 1 : highWaterMark\n this.buffered = 0\n this.readAhead = highWaterMark > 0\n this.error = null\n this.pipeline = null\n this.byteLength = byteLengthReadable || byteLength || defaultByteLength\n this.map = mapReadable || map\n this.pipeTo = null\n this.afterRead = afterRead.bind(this)\n this.afterUpdateNextTick = updateReadNT.bind(this)\n }\n\n get ended () {\n return (this.stream._duplexState & READ_DONE) !== 0\n }\n\n pipe (pipeTo, cb) {\n if (this.pipeTo !== null) throw new Error('Can only pipe to one destination')\n if (typeof cb !== 'function') cb = null\n\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.pipeTo = pipeTo\n this.pipeline = new Pipeline(this.stream, pipeTo, cb)\n\n if (cb) this.stream.on('error', noop) // We already error handle this so supress crashes\n\n if (isStreamx(pipeTo)) {\n pipeTo._writableState.pipeline = this.pipeline\n if (cb) pipeTo.on('error', noop) // We already error handle this so supress crashes\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline)) // TODO: just call finished from pipeTo itself\n } else {\n const onerror = this.pipeline.done.bind(this.pipeline, pipeTo)\n const onclose = this.pipeline.done.bind(this.pipeline, pipeTo, null) // onclose has a weird bool arg\n pipeTo.on('error', onerror)\n pipeTo.on('close', onclose)\n pipeTo.on('finish', this.pipeline.finished.bind(this.pipeline))\n }\n\n pipeTo.on('drain', afterDrain.bind(this))\n this.stream.emit('piping', pipeTo)\n pipeTo.emit('pipe', this.stream)\n }\n\n push (data) {\n const stream = this.stream\n\n if (data === null) {\n this.highWaterMark = 0\n stream._duplexState = (stream._duplexState | READ_ENDING) & READ_NON_PRIMARY_AND_PUSHED\n return false\n }\n\n if (this.map !== null) {\n data = this.map(data)\n if (data === null) {\n stream._duplexState &= READ_PUSHED\n return this.buffered < this.highWaterMark\n }\n }\n\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n\n stream._duplexState = (stream._duplexState | READ_QUEUED) & READ_PUSHED\n\n return this.buffered < this.highWaterMark\n }\n\n shift () {\n const data = this.queue.shift()\n\n this.buffered -= this.byteLength(data)\n if (this.buffered === 0) this.stream._duplexState &= READ_NOT_QUEUED\n return data\n }\n\n unshift (data) {\n const pending = [this.map !== null ? this.map(data) : data]\n while (this.buffered > 0) pending.push(this.shift())\n\n for (let i = 0; i < pending.length - 1; i++) {\n const data = pending[i]\n this.buffered += this.byteLength(data)\n this.queue.push(data)\n }\n\n this.push(pending[pending.length - 1])\n }\n\n read () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_STATUS) === READ_QUEUED) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n return data\n }\n\n if (this.readAhead === false) {\n stream._duplexState |= READ_READ_AHEAD\n this.updateNextTick()\n }\n\n return null\n }\n\n drain () {\n const stream = this.stream\n\n while ((stream._duplexState & READ_STATUS) === READ_QUEUED && (stream._duplexState & READ_FLOWING) !== 0) {\n const data = this.shift()\n if (this.pipeTo !== null && this.pipeTo.write(data) === false) stream._duplexState &= READ_PIPE_NOT_DRAINED\n if ((stream._duplexState & READ_EMIT_DATA) !== 0) stream.emit('data', data)\n }\n }\n\n update () {\n const stream = this.stream\n\n stream._duplexState |= READ_UPDATING\n\n do {\n this.drain()\n\n while (this.buffered < this.highWaterMark && (stream._duplexState & SHOULD_NOT_READ) === READ_READ_AHEAD) {\n stream._duplexState |= READ_ACTIVE_AND_NEEDS_PUSH\n stream._read(this.afterRead)\n this.drain()\n }\n\n if ((stream._duplexState & READ_READABLE_STATUS) === READ_EMIT_READABLE_AND_QUEUED) {\n stream._duplexState |= READ_EMITTED_READABLE\n stream.emit('readable')\n }\n\n if ((stream._duplexState & READ_PRIMARY_AND_ACTIVE) === 0) this.updateNonPrimary()\n } while (this.continueUpdate() === true)\n\n stream._duplexState &= READ_NOT_UPDATING\n }\n\n updateNonPrimary () {\n const stream = this.stream\n\n if ((stream._duplexState & READ_ENDING_STATUS) === READ_ENDING) {\n stream._duplexState = (stream._duplexState | READ_DONE) & READ_NOT_ENDING\n stream.emit('end')\n if ((stream._duplexState & AUTO_DESTROY) === DONE) stream._duplexState |= DESTROYING\n if (this.pipeTo !== null) this.pipeTo.end()\n }\n\n if ((stream._duplexState & DESTROY_STATUS) === DESTROYING) {\n if ((stream._duplexState & ACTIVE_OR_TICKING) === 0) {\n stream._duplexState |= ACTIVE\n stream._destroy(afterDestroy.bind(this))\n }\n return\n }\n\n if ((stream._duplexState & IS_OPENING) === OPENING) {\n stream._duplexState = (stream._duplexState | ACTIVE) & NOT_OPENING\n stream._open(afterOpen.bind(this))\n }\n }\n\n continueUpdate () {\n if ((this.stream._duplexState & READ_NEXT_TICK) === 0) return false\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n return true\n }\n\n updateCallback () {\n if ((this.stream._duplexState & READ_UPDATE_SYNC_STATUS) === READ_PRIMARY) this.update()\n else this.updateNextTick()\n }\n\n updateNextTick () {\n if ((this.stream._duplexState & READ_NEXT_TICK) !== 0) return\n this.stream._duplexState |= READ_NEXT_TICK\n if ((this.stream._duplexState & READ_UPDATING) === 0) queueTick(this.afterUpdateNextTick)\n }\n}\n\nclass TransformState {\n constructor (stream) {\n this.data = null\n this.afterTransform = afterTransform.bind(stream)\n this.afterFinal = null\n }\n}\n\nclass Pipeline {\n constructor (src, dst, cb) {\n this.from = src\n this.to = dst\n this.afterPipe = cb\n this.error = null\n this.pipeToFinished = false\n }\n\n finished () {\n this.pipeToFinished = true\n }\n\n done (stream, err) {\n if (err) this.error = err\n\n if (stream === this.to) {\n this.to = null\n\n if (this.from !== null) {\n if ((this.from._duplexState & READ_DONE) === 0 || !this.pipeToFinished) {\n this.from.destroy(this.error || new Error('Writable stream closed prematurely'))\n }\n return\n }\n }\n\n if (stream === this.from) {\n this.from = null\n\n if (this.to !== null) {\n if ((stream._duplexState & READ_DONE) === 0) {\n this.to.destroy(this.error || new Error('Readable stream closed before ending'))\n }\n return\n }\n }\n\n if (this.afterPipe !== null) this.afterPipe(this.error)\n this.to = this.from = this.afterPipe = null\n }\n}\n\nfunction afterDrain () {\n this.stream._duplexState |= READ_PIPE_DRAINED\n this.updateCallback()\n}\n\nfunction afterFinal (err) {\n const stream = this.stream\n if (err) stream.destroy(err)\n if ((stream._duplexState & DESTROY_STATUS) === 0) {\n stream._duplexState |= WRITE_DONE\n stream.emit('finish')\n }\n if ((stream._duplexState & AUTO_DESTROY) === DONE) {\n stream._duplexState |= DESTROYING\n }\n\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n // no need to wait the extra tick here, so we short circuit that\n if ((stream._duplexState & WRITE_UPDATING) === 0) this.update()\n else this.updateNextTick()\n}\n\nfunction afterDestroy (err) {\n const stream = this.stream\n\n if (!err && this.error !== STREAM_DESTROYED) err = this.error\n if (err) stream.emit('error', err)\n stream._duplexState |= DESTROYED\n stream.emit('close')\n\n const rs = stream._readableState\n const ws = stream._writableState\n\n if (rs !== null && rs.pipeline !== null) rs.pipeline.done(stream, err)\n\n if (ws !== null) {\n while (ws.drains !== null && ws.drains.length > 0) ws.drains.shift().resolve(false)\n if (ws.pipeline !== null) ws.pipeline.done(stream, err)\n }\n}\n\nfunction afterWrite (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n stream._duplexState &= WRITE_NOT_ACTIVE\n\n if (this.drains !== null) tickDrains(this.drains)\n\n if ((stream._duplexState & WRITE_DRAIN_STATUS) === WRITE_UNDRAINED) {\n stream._duplexState &= WRITE_DRAINED\n if ((stream._duplexState & WRITE_EMIT_DRAIN) === WRITE_EMIT_DRAIN) {\n stream.emit('drain')\n }\n }\n\n this.updateCallback()\n}\n\nfunction afterRead (err) {\n if (err) this.stream.destroy(err)\n this.stream._duplexState &= READ_NOT_ACTIVE\n if (this.readAhead === false && (this.stream._duplexState & READ_RESUMED) === 0) this.stream._duplexState &= READ_NO_READ_AHEAD\n this.updateCallback()\n}\n\nfunction updateReadNT () {\n if ((this.stream._duplexState & READ_UPDATING) === 0) {\n this.stream._duplexState &= READ_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction updateWriteNT () {\n if ((this.stream._duplexState & WRITE_UPDATING) === 0) {\n this.stream._duplexState &= WRITE_NOT_NEXT_TICK\n this.update()\n }\n}\n\nfunction tickDrains (drains) {\n for (let i = 0; i < drains.length; i++) {\n // drains.writes are monotonic, so if one is 0 its always the first one\n if (--drains[i].writes === 0) {\n drains.shift().resolve(true)\n i--\n }\n }\n}\n\nfunction afterOpen (err) {\n const stream = this.stream\n\n if (err) stream.destroy(err)\n\n if ((stream._duplexState & DESTROYING) === 0) {\n if ((stream._duplexState & READ_PRIMARY_STATUS) === 0) stream._duplexState |= READ_PRIMARY\n if ((stream._duplexState & WRITE_PRIMARY_STATUS) === 0) stream._duplexState |= WRITE_PRIMARY\n stream.emit('open')\n }\n\n stream._duplexState &= NOT_ACTIVE\n\n if (stream._writableState !== null) {\n stream._writableState.updateCallback()\n }\n\n if (stream._readableState !== null) {\n stream._readableState.updateCallback()\n }\n}\n\nfunction afterTransform (err, data) {\n if (data !== undefined && data !== null) this.push(data)\n this._writableState.afterWrite(err)\n}\n\nfunction newListener (name) {\n if (this._readableState !== null) {\n if (name === 'data') {\n this._duplexState |= (READ_EMIT_DATA | READ_RESUMED_READ_AHEAD)\n this._readableState.updateNextTick()\n }\n if (name === 'readable') {\n this._duplexState |= READ_EMIT_READABLE\n this._readableState.updateNextTick()\n }\n }\n\n if (this._writableState !== null) {\n if (name === 'drain') {\n this._duplexState |= WRITE_EMIT_DRAIN\n this._writableState.updateNextTick()\n }\n }\n}\n\nclass Stream extends EventEmitter {\n constructor (opts) {\n super()\n\n this._duplexState = 0\n this._readableState = null\n this._writableState = null\n\n if (opts) {\n if (opts.open) this._open = opts.open\n if (opts.destroy) this._destroy = opts.destroy\n if (opts.predestroy) this._predestroy = opts.predestroy\n if (opts.signal) {\n opts.signal.addEventListener('abort', abort.bind(this))\n }\n }\n\n this.on('newListener', newListener)\n }\n\n _open (cb) {\n cb(null)\n }\n\n _destroy (cb) {\n cb(null)\n }\n\n _predestroy () {\n // does nothing\n }\n\n get readable () {\n return this._readableState !== null ? true : undefined\n }\n\n get writable () {\n return this._writableState !== null ? true : undefined\n }\n\n get destroyed () {\n return (this._duplexState & DESTROYED) !== 0\n }\n\n get destroying () {\n return (this._duplexState & DESTROY_STATUS) !== 0\n }\n\n destroy (err) {\n if ((this._duplexState & DESTROY_STATUS) === 0) {\n if (!err) err = STREAM_DESTROYED\n this._duplexState = (this._duplexState | DESTROYING) & NON_PRIMARY\n\n if (this._readableState !== null) {\n this._readableState.highWaterMark = 0\n this._readableState.error = err\n }\n if (this._writableState !== null) {\n this._writableState.highWaterMark = 0\n this._writableState.error = err\n }\n\n this._duplexState |= PREDESTROYING\n this._predestroy()\n this._duplexState &= NOT_PREDESTROYING\n\n if (this._readableState !== null) this._readableState.updateNextTick()\n if (this._writableState !== null) this._writableState.updateNextTick()\n }\n }\n}\n\nclass Readable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | WRITE_DONE | READ_READ_AHEAD\n this._readableState = new ReadableState(this, opts)\n\n if (opts) {\n if (this._readableState.readAhead === false) this._duplexState &= READ_NO_READ_AHEAD\n if (opts.read) this._read = opts.read\n if (opts.eagerOpen) this._readableState.updateNextTick()\n if (opts.encoding) this.setEncoding(opts.encoding)\n }\n }\n\n setEncoding (encoding) {\n const dec = new TextDecoder(encoding)\n const map = this._readableState.map || echo\n this._readableState.map = mapOrSkip\n return this\n\n function mapOrSkip (data) {\n const next = dec.push(data)\n return next === '' && (data.byteLength !== 0 || dec.remaining > 0) ? null : map(next)\n }\n }\n\n _read (cb) {\n cb(null)\n }\n\n pipe (dest, cb) {\n this._readableState.updateNextTick()\n this._readableState.pipe(dest, cb)\n return dest\n }\n\n read () {\n this._readableState.updateNextTick()\n return this._readableState.read()\n }\n\n push (data) {\n this._readableState.updateNextTick()\n return this._readableState.push(data)\n }\n\n unshift (data) {\n this._readableState.updateNextTick()\n return this._readableState.unshift(data)\n }\n\n resume () {\n this._duplexState |= READ_RESUMED_READ_AHEAD\n this._readableState.updateNextTick()\n return this\n }\n\n pause () {\n this._duplexState &= (this._readableState.readAhead === false ? READ_PAUSED_NO_READ_AHEAD : READ_PAUSED)\n return this\n }\n\n static _fromAsyncIterator (ite, opts) {\n let destroy\n\n const rs = new Readable({\n ...opts,\n read (cb) {\n ite.next().then(push).then(cb.bind(null, null)).catch(cb)\n },\n predestroy () {\n destroy = ite.return()\n },\n destroy (cb) {\n if (!destroy) return cb(null)\n destroy.then(cb.bind(null, null)).catch(cb)\n }\n })\n\n return rs\n\n function push (data) {\n if (data.done) rs.push(null)\n else rs.push(data.value)\n }\n }\n\n static from (data, opts) {\n if (isReadStreamx(data)) return data\n if (data[asyncIterator]) return this._fromAsyncIterator(data[asyncIterator](), opts)\n if (!Array.isArray(data)) data = data === undefined ? [] : [data]\n\n let i = 0\n return new Readable({\n ...opts,\n read (cb) {\n this.push(i === data.length ? null : data[i++])\n cb(null)\n }\n })\n }\n\n static isBackpressured (rs) {\n return (rs._duplexState & READ_BACKPRESSURE_STATUS) !== 0 || rs._readableState.buffered >= rs._readableState.highWaterMark\n }\n\n static isPaused (rs) {\n return (rs._duplexState & READ_RESUMED) === 0\n }\n\n [asyncIterator] () {\n const stream = this\n\n let error = null\n let promiseResolve = null\n let promiseReject = null\n\n this.on('error', (err) => { error = err })\n this.on('readable', onreadable)\n this.on('close', onclose)\n\n return {\n [asyncIterator] () {\n return this\n },\n next () {\n return new Promise(function (resolve, reject) {\n promiseResolve = resolve\n promiseReject = reject\n const data = stream.read()\n if (data !== null) ondata(data)\n else if ((stream._duplexState & DESTROYED) !== 0) ondata(null)\n })\n },\n return () {\n return destroy(null)\n },\n throw (err) {\n return destroy(err)\n }\n }\n\n function onreadable () {\n if (promiseResolve !== null) ondata(stream.read())\n }\n\n function onclose () {\n if (promiseResolve !== null) ondata(null)\n }\n\n function ondata (data) {\n if (promiseReject === null) return\n if (error) promiseReject(error)\n else if (data === null && (stream._duplexState & READ_DONE) === 0) promiseReject(STREAM_DESTROYED)\n else promiseResolve({ value: data, done: data === null })\n promiseReject = promiseResolve = null\n }\n\n function destroy (err) {\n stream.destroy(err)\n return new Promise((resolve, reject) => {\n if (stream._duplexState & DESTROYED) return resolve({ value: undefined, done: true })\n stream.once('close', function () {\n if (err) reject(err)\n else resolve({ value: undefined, done: true })\n })\n })\n }\n }\n}\n\nclass Writable extends Stream {\n constructor (opts) {\n super(opts)\n\n this._duplexState |= OPENING | READ_DONE\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n if (opts.eagerOpen) this._writableState.updateNextTick()\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n static isBackpressured (ws) {\n return (ws._duplexState & WRITE_BACKPRESSURE_STATUS) !== 0\n }\n\n static drained (ws) {\n if (ws.destroyed) return Promise.resolve(false)\n const state = ws._writableState\n const pending = (isWritev(ws) ? Math.min(1, state.queue.length) : state.queue.length)\n const writes = pending + ((ws._duplexState & WRITE_WRITING) ? 1 : 0)\n if (writes === 0) return Promise.resolve(true)\n if (state.drains === null) state.drains = []\n return new Promise((resolve) => {\n state.drains.push({ writes, resolve })\n })\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Duplex extends Readable { // and Writable\n constructor (opts) {\n super(opts)\n\n this._duplexState = OPENING | (this._duplexState & READ_READ_AHEAD)\n this._writableState = new WritableState(this, opts)\n\n if (opts) {\n if (opts.writev) this._writev = opts.writev\n if (opts.write) this._write = opts.write\n if (opts.final) this._final = opts.final\n }\n }\n\n cork () {\n this._duplexState |= WRITE_CORKED\n }\n\n uncork () {\n this._duplexState &= WRITE_NOT_CORKED\n this._writableState.updateNextTick()\n }\n\n _writev (batch, cb) {\n cb(null)\n }\n\n _write (data, cb) {\n this._writableState.autoBatch(data, cb)\n }\n\n _final (cb) {\n cb(null)\n }\n\n write (data) {\n this._writableState.updateNextTick()\n return this._writableState.push(data)\n }\n\n end (data) {\n this._writableState.updateNextTick()\n this._writableState.end(data)\n return this\n }\n}\n\nclass Transform extends Duplex {\n constructor (opts) {\n super(opts)\n this._transformState = new TransformState(this)\n\n if (opts) {\n if (opts.transform) this._transform = opts.transform\n if (opts.flush) this._flush = opts.flush\n }\n }\n\n _write (data, cb) {\n if (this._readableState.buffered >= this._readableState.highWaterMark) {\n this._transformState.data = data\n } else {\n this._transform(data, this._transformState.afterTransform)\n }\n }\n\n _read (cb) {\n if (this._transformState.data !== null) {\n const data = this._transformState.data\n this._transformState.data = null\n cb(null)\n this._transform(data, this._transformState.afterTransform)\n } else {\n cb(null)\n }\n }\n\n destroy (err) {\n super.destroy(err)\n if (this._transformState.data !== null) {\n this._transformState.data = null\n this._transformState.afterTransform()\n }\n }\n\n _transform (data, cb) {\n cb(null, data)\n }\n\n _flush (cb) {\n cb(null)\n }\n\n _final (cb) {\n this._transformState.afterFinal = cb\n this._flush(transformAfterFlush.bind(this))\n }\n}\n\nclass PassThrough extends Transform {}\n\nfunction transformAfterFlush (err, data) {\n const cb = this._transformState.afterFinal\n if (err) return cb(err)\n if (data !== null && data !== undefined) this.push(data)\n this.push(null)\n cb(null)\n}\n\nfunction pipelinePromise (...streams) {\n return new Promise((resolve, reject) => {\n return pipeline(...streams, (err) => {\n if (err) return reject(err)\n resolve()\n })\n })\n}\n\nfunction pipeline (stream, ...streams) {\n const all = Array.isArray(stream) ? [...stream, ...streams] : [stream, ...streams]\n const done = (all.length && typeof all[all.length - 1] === 'function') ? all.pop() : null\n\n if (all.length < 2) throw new Error('Pipeline requires at least 2 streams')\n\n let src = all[0]\n let dest = null\n let error = null\n\n for (let i = 1; i < all.length; i++) {\n dest = all[i]\n\n if (isStreamx(src)) {\n src.pipe(dest, onerror)\n } else {\n errorHandle(src, true, i > 1, onerror)\n src.pipe(dest)\n }\n\n src = dest\n }\n\n if (done) {\n let fin = false\n\n const autoDestroy = isStreamx(dest) || !!(dest._writableState && dest._writableState.autoDestroy)\n\n dest.on('error', (err) => {\n if (error === null) error = err\n })\n\n dest.on('finish', () => {\n fin = true\n if (!autoDestroy) done(error)\n })\n\n if (autoDestroy) {\n dest.on('close', () => done(error || (fin ? null : PREMATURE_CLOSE)))\n }\n }\n\n return dest\n\n function errorHandle (s, rd, wr, onerror) {\n s.on('error', onerror)\n s.on('close', onclose)\n\n function onclose () {\n if (rd && s._readableState && !s._readableState.ended) return onerror(PREMATURE_CLOSE)\n if (wr && s._writableState && !s._writableState.ended) return onerror(PREMATURE_CLOSE)\n }\n }\n\n function onerror (err) {\n if (!err || error) return\n error = err\n\n for (const s of all) {\n s.destroy(err)\n }\n }\n}\n\nfunction echo (s) {\n return s\n}\n\nfunction isStream (stream) {\n return !!stream._readableState || !!stream._writableState\n}\n\nfunction isStreamx (stream) {\n return typeof stream._duplexState === 'number' && isStream(stream)\n}\n\nfunction isEnded (stream) {\n return !!stream._readableState && stream._readableState.ended\n}\n\nfunction isFinished (stream) {\n return !!stream._writableState && stream._writableState.ended\n}\n\nfunction getStreamError (stream, opts = {}) {\n const err = (stream._readableState && stream._readableState.error) || (stream._writableState && stream._writableState.error)\n\n // avoid implicit errors by default\n return (!opts.all && err === STREAM_DESTROYED) ? null : err\n}\n\nfunction isReadStreamx (stream) {\n return isStreamx(stream) && stream.readable\n}\n\nfunction isTypedArray (data) {\n return typeof data === 'object' && data !== null && typeof data.byteLength === 'number'\n}\n\nfunction defaultByteLength (data) {\n return isTypedArray(data) ? data.byteLength : 1024\n}\n\nfunction noop () {}\n\nfunction abort () {\n this.destroy(new Error('Stream aborted.'))\n}\n\nfunction isWritev (s) {\n return s._writev !== Writable.prototype._writev && s._writev !== Duplex.prototype._writev\n}\n\nmodule.exports = {\n pipeline,\n pipelinePromise,\n isStream,\n isStreamx,\n isEnded,\n isFinished,\n getStreamError,\n Stream,\n Writable,\n Readable,\n Duplex,\n Transform,\n // Export PassThrough for compatibility with Node.js core's stream module\n PassThrough\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = typeof queueMicrotask === 'function' ? queueMicrotask : (fn) => Promise.resolve().then(fn)\n","const FixedFIFO = require('./fixed-size')\n\nmodule.exports = class FastFIFO {\n constructor (hwm) {\n this.hwm = hwm || 16\n this.head = new FixedFIFO(this.hwm)\n this.tail = this.head\n this.length = 0\n }\n\n clear () {\n this.head = this.tail\n this.head.clear()\n this.length = 0\n }\n\n push (val) {\n this.length++\n if (!this.head.push(val)) {\n const prev = this.head\n this.head = prev.next = new FixedFIFO(2 * this.head.buffer.length)\n this.head.push(val)\n }\n }\n\n shift () {\n if (this.length !== 0) this.length--\n const val = this.tail.shift()\n if (val === undefined && this.tail.next) {\n const next = this.tail.next\n this.tail.next = null\n this.tail = next\n return this.tail.shift()\n }\n\n return val\n }\n\n peek () {\n const val = this.tail.peek()\n if (val === undefined && this.tail.next) return this.tail.next.peek()\n return val\n }\n\n isEmpty () {\n return this.length === 0\n }\n}\n","module.exports = class FixedFIFO {\n constructor (hwm) {\n if (!(hwm > 0) || ((hwm - 1) & hwm) !== 0) throw new Error('Max size for a FixedFIFO should be a power of two')\n this.buffer = new Array(hwm)\n this.mask = hwm - 1\n this.top = 0\n this.btm = 0\n this.next = null\n }\n\n clear () {\n this.top = this.btm = 0\n this.next = null\n this.buffer.fill(undefined)\n }\n\n push (data) {\n if (this.buffer[this.top] !== undefined) return false\n this.buffer[this.top] = data\n this.top = (this.top + 1) & this.mask\n return true\n }\n\n shift () {\n const last = this.buffer[this.btm]\n if (last === undefined) return undefined\n this.buffer[this.btm] = undefined\n this.btm = (this.btm + 1) & this.mask\n return last\n }\n\n peek () {\n return this.buffer[this.btm]\n }\n\n isEmpty () {\n return this.buffer[this.btm] === undefined\n }\n}\n","const PassThroughDecoder = require('./lib/pass-through-decoder')\nconst UTF8Decoder = require('./lib/utf8-decoder')\n\nmodule.exports = class TextDecoder {\n constructor (encoding = 'utf8') {\n this.encoding = normalizeEncoding(encoding)\n\n switch (this.encoding) {\n case 'utf8':\n this.decoder = new UTF8Decoder()\n break\n case 'utf16le':\n case 'base64':\n throw new Error('Unsupported encoding: ' + this.encoding)\n default:\n this.decoder = new PassThroughDecoder(this.encoding)\n }\n }\n\n get remaining () {\n return this.decoder.remaining\n }\n\n push (data) {\n if (typeof data === 'string') return data\n return this.decoder.decode(data)\n }\n\n // For Node.js compatibility\n write (data) {\n return this.push(data)\n }\n\n end (data) {\n let result = ''\n if (data) result = this.push(data)\n result += this.decoder.flush()\n return result\n }\n}\n\nfunction normalizeEncoding (encoding) {\n encoding = encoding.toLowerCase()\n\n switch (encoding) {\n case 'utf8':\n case 'utf-8':\n return 'utf8'\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le'\n case 'latin1':\n case 'binary':\n return 'latin1'\n case 'base64':\n case 'ascii':\n case 'hex':\n return encoding\n default:\n throw new Error('Unknown encoding: ' + encoding)\n }\n};\n","module.exports = class BrowserDecoder {\n constructor (encoding) {\n this.decoder = new TextDecoder(encoding === 'utf16le' ? 'utf16-le' : encoding)\n }\n\n get remaining () {\n return -1\n }\n\n decode (data) {\n return this.decoder.decode(data, { stream: true })\n }\n\n flush () {\n return this.decoder.decode(new Uint8Array(0))\n }\n}\n","'use strict';\n\n/**\n * @typedef {{ [key: string]: any }} Extensions\n * @typedef {Error} Err\n * @property {string} message\n */\n\n/**\n *\n * @param {Error} obj\n * @param {Extensions} props\n * @returns {Error & Extensions}\n */\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\n/**\n *\n * @param {any} err - An Error\n * @param {string|Extensions} code - A string code or props to set on the error\n * @param {Extensions} [props] - Props to set on the error\n * @returns {Error & Extensions}\n */\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = '';\n }\n\n if (code) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n // @ts-ignore\n const output = assign(new ErrClass(), props);\n\n return output;\n }\n}\n\nmodule.exports = createError;\n","import { arr2hex, hex2arr, alphabet } from './util.js'\r\nimport { decode, encode } from 'base64-arraybuffer'\r\n\r\nconst decoder = new TextDecoder()\r\n// 50% slower at < 48 chars, but little impact at 4M OPS/s vs 8M OPS/s\r\nexport const arr2text = (data, enc) => {\r\n if (!enc) return decoder.decode(data)\r\n const dec = new TextDecoder(enc)\r\n return dec.decode(data)\r\n}\r\n\r\n// sacrifice ~20% speed for bundle size\r\nconst encoder = new TextEncoder()\r\nexport const text2arr = str => encoder.encode(str)\r\n\r\nexport const arr2base = data => encode(data)\r\n\r\nexport const base2arr = str => new Uint8Array(decode(str))\r\n\r\nexport const bin2hex = str => {\r\n let res = ''\r\n let c\r\n let i = 0\r\n const len = str.length\r\n\r\n while (i < len) {\r\n c = str.charCodeAt(i++)\r\n res += alphabet[c >> 4] + alphabet[c & 0xF]\r\n }\r\n\r\n return res\r\n}\r\n\r\nconst MAX_ARGUMENTS_LENGTH = 0x10000\r\nexport const hex2bin = hex => {\r\n const points = hex2arr(hex)\r\n if (points.length <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode(...points)\r\n\r\n let res = ''\r\n let i = 0\r\n while (i < points.length) {\r\n res += String.fromCharCode(...points.subarray(i, i += MAX_ARGUMENTS_LENGTH))\r\n }\r\n return res\r\n}\r\n\r\nconst scope = typeof window !== 'undefined' ? window : self\r\nconst crypto = scope.crypto || scope.msCrypto || {}\r\nconst subtle = crypto.subtle || crypto.webkitSubtle\r\n\r\nconst formatMap = {\r\n hex: arr2hex,\r\n base64: arr2base\r\n}\r\n\r\nexport const hash = async (data, format, algo = 'sha-1') => {\r\n if (!subtle) throw new Error('no web crypto support')\r\n if (typeof data === 'string') data = text2arr(data)\r\n const out = new Uint8Array(await subtle.digest(algo, data))\r\n return format ? formatMap[format](out) : out\r\n}\r\n\r\nexport const randomBytes = size => {\r\n const view = new Uint8Array(size)\r\n return crypto.getRandomValues(view)\r\n}\r\n\r\nexport * from './util.js'\r\n","/* Common package for dealing with hex/string/uint8 conversions (and sha1 hashing)\r\n*\r\n* @author Jimmy Wärting (https://jimmy.warting.se/opensource)\r\n* @license MIT\r\n*/\r\nexport const alphabet = '0123456789abcdef'\r\nconst encodeLookup = []\r\nconst decodeLookup = []\r\n\r\nfor (let i = 0; i < 256; i++) {\r\n encodeLookup[i] = alphabet[i >> 4 & 0xf] + alphabet[i & 0xf]\r\n if (i < 16) {\r\n if (i < 10) {\r\n decodeLookup[0x30 + i] = i\r\n } else {\r\n decodeLookup[0x61 - 10 + i] = i\r\n }\r\n }\r\n}\r\n\r\nexport const arr2hex = data => {\r\n const length = data.length\r\n let string = ''\r\n let i = 0\r\n while (i < length) {\r\n string += encodeLookup[data[i++]]\r\n }\r\n return string\r\n}\r\n\r\nexport const hex2arr = str => {\r\n const sizeof = str.length >> 1\r\n const length = sizeof << 1\r\n const array = new Uint8Array(sizeof)\r\n let n = 0\r\n let i = 0\r\n while (i < length) {\r\n array[n++] = decodeLookup[str.charCodeAt(i++)] << 4 | decodeLookup[str.charCodeAt(i++)]\r\n }\r\n return array\r\n}\r\n\r\nexport const concat = (chunks, size = 0) => {\r\n const length = chunks.length || 0\r\n if (!size) {\r\n let i = length\r\n while (i--) size += chunks[i].length\r\n }\r\n const b = new Uint8Array(size)\r\n let offset = size\r\n let i = length\r\n while (i--) {\r\n offset -= chunks[i].length\r\n b.set(chunks[i], offset)\r\n }\r\n\r\n return b\r\n}\r\n\r\nexport const equal = (a, b) => {\r\n if (a.length !== b.length) return false\r\n for (let i = a.length; i > -1; i -= 1) {\r\n if ((a[i] !== b[i])) return false\r\n }\r\n return true\r\n}\r\n","/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {\n all,\n alloc,\n decodeBytes,\n encodeBytes,\n entries,\n fromEntries,\n fromJson,\n isBrowser,\n keys,\n libName,\n mkErr,\n noOp,\n toJson\n} from './utils.js'\n\nconst TypedArray = Object.getPrototypeOf(Uint8Array)\nconst typeByteLimit = 12\nconst typeIndex = 0\nconst nonceIndex = typeIndex + typeByteLimit\nconst tagIndex = nonceIndex + 1\nconst progressIndex = tagIndex + 1\nconst payloadIndex = progressIndex + 1\nconst chunkSize = 16 * 2 ** 10 - payloadIndex\nconst oneByteMax = 0xff\nconst buffLowEvent = 'bufferedamountlow'\nconst internalNs = ns => '@_' + ns\n\nexport default (onPeer, onPeerLeave, onSelfLeave) => {\n const peerMap = {}\n const actions = {}\n const actionsCache = {}\n const pendingTransmissions = {}\n const pendingPongs = {}\n const pendingStreamMetas = {}\n const pendingTrackMetas = {}\n const listeners = {\n onPeerJoin: noOp,\n onPeerLeave: noOp,\n onPeerStream: noOp,\n onPeerTrack: noOp\n }\n\n const iterate = (targets, f) =>\n (targets\n ? Array.isArray(targets)\n ? targets\n : [targets]\n : keys(peerMap)\n ).flatMap(id => {\n const peer = peerMap[id]\n\n if (!peer) {\n console.warn(`${libName}: no peer with id ${id} found`)\n return []\n }\n\n return f(id, peer)\n })\n\n const exitPeer = id => {\n if (!peerMap[id]) {\n return\n }\n\n delete peerMap[id]\n delete pendingTransmissions[id]\n delete pendingPongs[id]\n listeners.onPeerLeave(id)\n onPeerLeave(id)\n }\n\n const makeAction = type => {\n if (actions[type]) {\n return actionsCache[type]\n }\n\n if (!type) {\n throw mkErr('action type argument is required')\n }\n\n const typeBytes = encodeBytes(type)\n\n if (typeBytes.byteLength > typeByteLimit) {\n throw mkErr(\n `action type string \"${type}\" (${typeBytes.byteLength}b) exceeds ` +\n `byte limit (${typeByteLimit}). Hint: choose a shorter name.`\n )\n }\n\n const typeBytesPadded = new Uint8Array(typeByteLimit)\n typeBytesPadded.set(typeBytes)\n\n let nonce = 0\n\n actions[type] = {\n onComplete: noOp,\n onProgress: noOp,\n\n setOnComplete: f => (actions[type] = {...actions[type], onComplete: f}),\n\n setOnProgress: f => (actions[type] = {...actions[type], onProgress: f}),\n\n send: async (data, targets, meta, onProgress) => {\n if (meta && typeof meta !== 'object') {\n throw mkErr('action meta argument must be an object')\n }\n\n const dataType = typeof data\n\n if (dataType === 'undefined') {\n throw mkErr('action data cannot be undefined')\n }\n\n const isJson = dataType !== 'string'\n const isBlob = data instanceof Blob\n const isBinary =\n isBlob || data instanceof ArrayBuffer || data instanceof TypedArray\n\n if (meta && !isBinary) {\n throw mkErr('action meta argument can only be used with binary data')\n }\n\n const buffer = isBinary\n ? new Uint8Array(isBlob ? await data.arrayBuffer() : data)\n : encodeBytes(isJson ? toJson(data) : data)\n\n const metaEncoded = meta ? encodeBytes(toJson(meta)) : null\n\n const chunkTotal =\n Math.ceil(buffer.byteLength / chunkSize) + (meta ? 1 : 0) || 1\n\n const chunks = alloc(chunkTotal, (_, i) => {\n const isLast = i === chunkTotal - 1\n const isMeta = meta && i === 0\n const chunk = new Uint8Array(\n payloadIndex +\n (isMeta\n ? metaEncoded.byteLength\n : isLast\n ? buffer.byteLength -\n chunkSize * (chunkTotal - (meta ? 2 : 1))\n : chunkSize)\n )\n\n chunk.set(typeBytesPadded)\n chunk.set([nonce], nonceIndex)\n chunk.set(\n [isLast | (isMeta << 1) | (isBinary << 2) | (isJson << 3)],\n tagIndex\n )\n chunk.set(\n [Math.round(((i + 1) / chunkTotal) * oneByteMax)],\n progressIndex\n )\n chunk.set(\n meta\n ? isMeta\n ? metaEncoded\n : buffer.subarray((i - 1) * chunkSize, i * chunkSize)\n : buffer.subarray(i * chunkSize, (i + 1) * chunkSize),\n payloadIndex\n )\n\n return chunk\n })\n\n nonce = (nonce + 1) & oneByteMax\n\n return all(\n iterate(targets, async (id, peer) => {\n const {channel} = peer\n let chunkN = 0\n\n while (chunkN < chunkTotal) {\n const chunk = chunks[chunkN]\n\n if (channel.bufferedAmount > channel.bufferedAmountLowThreshold) {\n await new Promise(res => {\n const next = () => {\n channel.removeEventListener(buffLowEvent, next)\n res()\n }\n\n channel.addEventListener(buffLowEvent, next)\n })\n }\n\n if (!peerMap[id]) {\n break\n }\n\n peer.sendData(chunk)\n chunkN++\n onProgress?.(chunk[progressIndex] / oneByteMax, id, meta)\n }\n })\n )\n }\n }\n\n return (actionsCache[type] ||= [\n actions[type].send,\n actions[type].setOnComplete,\n actions[type].setOnProgress\n ])\n }\n\n const handleData = (id, data) => {\n const buffer = new Uint8Array(data)\n const type = decodeBytes(buffer.subarray(typeIndex, nonceIndex)).replaceAll(\n '\\x00',\n ''\n )\n const [nonce] = buffer.subarray(nonceIndex, tagIndex)\n const [tag] = buffer.subarray(tagIndex, progressIndex)\n const [progress] = buffer.subarray(progressIndex, payloadIndex)\n const payload = buffer.subarray(payloadIndex)\n const isLast = !!(tag & 1)\n const isMeta = !!(tag & (1 << 1))\n const isBinary = !!(tag & (1 << 2))\n const isJson = !!(tag & (1 << 3))\n\n if (!actions[type]) {\n console.warn(\n `${libName}: received message with unregistered type (${type})`\n )\n return\n }\n\n pendingTransmissions[id] ||= {}\n pendingTransmissions[id][type] ||= {}\n\n const target = (pendingTransmissions[id][type][nonce] ||= {chunks: []})\n\n if (isMeta) {\n target.meta = fromJson(decodeBytes(payload))\n } else {\n target.chunks.push(payload)\n }\n\n actions[type].onProgress(progress / oneByteMax, id, target.meta)\n\n if (!isLast) {\n return\n }\n\n const full = new Uint8Array(\n target.chunks.reduce((a, c) => a + c.byteLength, 0)\n )\n\n target.chunks.reduce((a, c) => {\n full.set(c, a)\n return a + c.byteLength\n }, 0)\n\n delete pendingTransmissions[id][type][nonce]\n\n if (isBinary) {\n actions[type].onComplete(full, id, target.meta)\n } else {\n const text = decodeBytes(full)\n actions[type].onComplete(isJson ? fromJson(text) : text, id)\n }\n }\n\n const leave = async () => {\n await sendLeave('')\n await new Promise(res => setTimeout(res, 99))\n entries(peerMap).forEach(([id, peer]) => {\n peer.destroy()\n delete peerMap[id]\n })\n onSelfLeave()\n }\n\n const [sendPing, getPing] = makeAction(internalNs('ping'))\n const [sendPong, getPong] = makeAction(internalNs('pong'))\n const [sendSignal, getSignal] = makeAction(internalNs('signal'))\n const [sendStreamMeta, getStreamMeta] = makeAction(internalNs('stream'))\n const [sendTrackMeta, getTrackMeta] = makeAction(internalNs('track'))\n const [sendLeave, getLeave] = makeAction(internalNs('leave'))\n\n onPeer((peer, id) => {\n if (peerMap[id]) {\n return\n }\n\n peerMap[id] = peer\n\n peer.setHandlers({\n data: d => handleData(id, d),\n stream: stream => {\n listeners.onPeerStream(stream, id, pendingStreamMetas[id])\n delete pendingStreamMetas[id]\n },\n track: (track, stream) => {\n listeners.onPeerTrack(track, stream, id, pendingTrackMetas[id])\n delete pendingTrackMetas[id]\n },\n signal: sdp => sendSignal(sdp, id),\n close: () => exitPeer(id),\n error: () => exitPeer(id)\n })\n\n listeners.onPeerJoin(id)\n peer.drainEarlyData?.(d => handleData(id, d))\n })\n\n getPing((_, id) => sendPong('', id))\n\n getPong((_, id) => {\n pendingPongs[id]?.()\n delete pendingPongs[id]\n })\n\n getSignal((sdp, id) => peerMap[id]?.signal(sdp))\n\n getStreamMeta((meta, id) => (pendingStreamMetas[id] = meta))\n\n getTrackMeta((meta, id) => (pendingTrackMetas[id] = meta))\n\n getLeave((_, id) => exitPeer(id))\n\n if (isBrowser) {\n addEventListener('beforeunload', leave)\n }\n\n return {\n makeAction,\n\n leave,\n\n ping: async id => {\n if (!id) {\n throw mkErr('ping() must be called with target peer ID')\n }\n\n const start = Date.now()\n\n sendPing('', id)\n await new Promise(res => (pendingPongs[id] = res))\n return Date.now() - start\n },\n\n getPeers: () =>\n fromEntries(entries(peerMap).map(([id, peer]) => [id, peer.connection])),\n\n addStream: (stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendStreamMeta(meta, id)\n }\n\n peer.addStream(stream)\n }),\n\n removeStream: (stream, targets) =>\n iterate(targets, (_, peer) => peer.removeStream(stream)),\n\n addTrack: (track, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.addTrack(track, stream)\n }),\n\n removeTrack: (track, stream, targets) =>\n iterate(targets, (_, peer) => peer.removeTrack(track, stream)),\n\n replaceTrack: (oldTrack, newTrack, stream, targets, meta) =>\n iterate(targets, async (id, peer) => {\n if (meta) {\n await sendTrackMeta(meta, id)\n }\n\n peer.replaceTrack(oldTrack, newTrack, stream)\n }),\n\n onPeerJoin: f => (listeners.onPeerJoin = f),\n\n onPeerLeave: f => (listeners.onPeerLeave = f),\n\n onPeerStream: f => (listeners.onPeerStream = f),\n\n onPeerTrack: f => (listeners.onPeerTrack = f)\n }\n}\n","export {getRelaySockets, joinRoom, selfId} from './nostr.js'\n","import {schnorr} from '@noble/curves/secp256k1'\nimport strategy from './strategy.js'\nimport {\n encodeBytes,\n fromJson,\n genId,\n getRelays,\n isBrowser,\n libName,\n makeSocket,\n selfId,\n socketGetter,\n toHex,\n toJson\n} from './utils.js'\n\nconst clients = {}\nconst defaultRedundancy = 5\nconst kind = 29333\nconst tag = 'x'\nconst eventMsgType = 'EVENT'\nconst privateKey = isBrowser && schnorr.utils.randomPrivateKey()\nconst publicKey = isBrowser && toHex(schnorr.getPublicKey(privateKey))\nconst subIdToTopic = {}\nconst msgHandlers = {}\n\nconst now = () => Math.floor(Date.now() / 1000)\n\nconst createEvent = async (topic, content) => {\n const payload = {\n kind,\n content,\n pubkey: publicKey,\n created_at: now(),\n tags: [[tag, topic]]\n }\n\n const id = toHex(\n new Uint8Array(\n await crypto.subtle.digest(\n 'SHA-256',\n encodeBytes(\n toJson([\n 0,\n payload.pubkey,\n payload.created_at,\n payload.kind,\n payload.tags,\n payload.content\n ])\n )\n )\n )\n )\n\n return toJson([\n eventMsgType,\n {\n ...payload,\n id,\n sig: toHex(await schnorr.sign(id, privateKey))\n }\n ])\n}\n\nconst subscribe = (subId, topic) => {\n subIdToTopic[subId] = topic\n return toJson([\n 'REQ',\n subId,\n {\n kinds: [kind],\n since: now(),\n ['#' + tag]: [topic]\n }\n ])\n}\n\nconst unsubscribe = subId => {\n delete subIdToTopic[subId]\n return toJson(['CLOSE', subId])\n}\n\nexport const joinRoom = strategy({\n init: config =>\n getRelays(config, defaultRelayUrls, defaultRedundancy).map(url => {\n const client = makeSocket(url, data => {\n const [msgType, subId, payload, relayMsg] = fromJson(data)\n\n if (msgType !== eventMsgType) {\n const prefix = `${libName}: relay failure from ${client.url} - `\n\n if (msgType === 'NOTICE') {\n console.warn(prefix + subId)\n } else if (msgType === 'OK' && !payload) {\n console.warn(prefix + relayMsg)\n }\n return\n }\n\n msgHandlers[subId]?.(subIdToTopic[subId], payload.content)\n })\n\n clients[url] = client\n\n return client.ready\n }),\n\n subscribe: (client, rootTopic, selfTopic, onMessage) => {\n const rootSubId = genId(64)\n const selfSubId = genId(64)\n\n msgHandlers[rootSubId] = msgHandlers[selfSubId] = (topic, data) =>\n onMessage(topic, data, async (peerTopic, signal) =>\n client.send(await createEvent(peerTopic, signal))\n )\n\n client.send(subscribe(rootSubId, rootTopic))\n client.send(subscribe(selfSubId, selfTopic))\n\n return () => {\n client.send(unsubscribe(rootSubId))\n client.send(unsubscribe(selfSubId))\n delete msgHandlers[rootSubId]\n delete msgHandlers[selfSubId]\n }\n },\n\n announce: async (client, rootTopic) =>\n client.send(await createEvent(rootTopic, toJson({peerId: selfId})))\n})\n\nexport const getRelaySockets = socketGetter(clients)\n\nexport {selfId} from './utils.js'\n\nexport const defaultRelayUrls = [\n 'relay.nostr.net',\n 'relay.snort.social',\n 'relay.piazza.today',\n 'relay.exit.pub',\n 'nostr.lu.ke',\n 'nostr.mom',\n 'relay.urbanzap.space',\n 'nostr.data.haus',\n 'nostr.sathoarder.com',\n 'relay.nostromo.social',\n 'relay.nostr.bg',\n 'nostr.stakey.net',\n 'nostr.vulpem.com',\n 'a.nos.lol',\n 'eu.purplerelay.com',\n 'nostr2.sanhauf.com',\n 'e.nos.lol'\n].map(url => 'wss://' + url)\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst _shortw_utils_js_1 = require(\"./_shortw_utils.js\");\nconst hash_to_curve_js_1 = require(\"./abstract/hash-to-curve.js\");\nconst modular_js_1 = require(\"./abstract/modular.js\");\nconst utils_js_1 = require(\"./abstract/utils.js\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = ((0, modular_js_1.pow2)(b3, _3n, P) * b3) % P;\n const b9 = ((0, modular_js_1.pow2)(b6, _3n, P) * b3) % P;\n const b11 = ((0, modular_js_1.pow2)(b9, _2n, P) * b2) % P;\n const b22 = ((0, modular_js_1.pow2)(b11, _11n, P) * b11) % P;\n const b44 = ((0, modular_js_1.pow2)(b22, _22n, P) * b22) % P;\n const b88 = ((0, modular_js_1.pow2)(b44, _44n, P) * b44) % P;\n const b176 = ((0, modular_js_1.pow2)(b88, _88n, P) * b88) % P;\n const b220 = ((0, modular_js_1.pow2)(b176, _44n, P) * b44) % P;\n const b223 = ((0, modular_js_1.pow2)(b220, _3n, P) * b3) % P;\n const t1 = ((0, modular_js_1.pow2)(b223, _23n, P) * b22) % P;\n const t2 = ((0, modular_js_1.pow2)(t1, _6n, P) * b2) % P;\n const root = (0, modular_js_1.pow2)(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = (0, modular_js_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexports.secp256k1 = (0, _shortw_utils_js_1.createCurve)({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = (0, modular_js_1.mod)(k - c1 * a1 - c2 * a2, n);\n let k2 = (0, modular_js_1.mod)(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = (0, utils_js_1.concatBytes)(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return (0, sha256_1.sha256)((0, utils_js_1.concatBytes)(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => (0, utils_js_1.numberToBytesBE)(n, 32);\nconst modP = (x) => (0, modular_js_1.mod)(x, secp256k1P);\nconst modN = (x) => (0, modular_js_1.mod)(x, secp256k1N);\nconst Point = exports.secp256k1.ProjectivePoint;\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n (0, utils_js_1.aInRange)('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = utils_js_1.bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = (0, utils_1.randomBytes)(32)) {\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = (0, utils_js_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = (0, utils_js_1.ensureBytes)('signature', signature, 64);\n const m = (0, utils_js_1.ensureBytes)('message', message);\n const pub = (0, utils_js_1.ensureBytes)('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!(0, utils_js_1.inRange)(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!(0, utils_js_1.inRange)(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n */\nexports.schnorr = (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE: utils_js_1.numberToBytesBE,\n bytesToNumberBE: utils_js_1.bytesToNumberBE,\n taggedHash,\n mod: modular_js_1.mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.isogenyMap)(Fp, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256_1.sha256,\n}))();\nexports.hashToCurve = (() => htf.hashToCurve)();\nexports.encodeToCurve = (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport {\n inRange,\n aInRange,\n bytesToNumberBE,\n concatBytes,\n ensureBytes,\n numberToBytesBE,\n} from './abstract/utils.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n */\nexport const secp256k1 = createCurve(\n {\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n /**\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k: bigint) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg) k1 = n - k1;\n if (k2neg) k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n },\n sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType, a: bigint, b: bigint) =>\n Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n) y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(\n message: Hex,\n privateKey: PrivKey,\n auxRand: Hex = randomBytes(32)\n): Uint8Array {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n) throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P)) return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N)) return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r) return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n } catch (error) {\n return false;\n }\n}\n\n/**\n * Schnorr signatures over secp256k1.\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n isogenyMap(\n Fp,\n [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n }))();\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n secp256k1.ProjectivePoint,\n (scalars: bigint[]) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n },\n {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = exports.SHA256 = void 0;\nconst _md_js_1 = require(\"./_md.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_js_1.HashMD {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.rotr)(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + (0, _md_js_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.rotr)(A, 22);\n const T2 = (sigma0 + (0, _md_js_1.Maj)(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\nexports.SHA256 = SHA256;\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/**\n * SHA2-224 hash function\n */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HashMD = exports.Maj = exports.Chi = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/**\n * Choice: a ? b : c\n */\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\nexports.Chi = Chi;\n/**\n * Majority function, true if any two inputs is true\n */\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\nexports.Maj = Maj;\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n (0, _assert_js_1.exists)(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.createView)(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.output)(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = (0, utils_js_1.createView)(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.HashMD = HashMD;\n//# sourceMappingURL=_md.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n/**\n * Polyfill for Safari 14\n */\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/**\n * Choice: a ? b : c\n */\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n\n/**\n * Majority function, true if any two inputs is true\n */\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBytes = isBytes;\nexports.number = number;\nexports.bool = bool;\nexports.bytes = bytes;\nexports.hash = hash;\nexports.exists = exists;\nexports.output = output;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = { number, bool, bytes, hash, exists, output };\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.byteSwap = exports.isLE = exports.rotl = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\nexports.isBytes = isBytes;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\nconst _assert_js_1 = require(\"./_assert.js\");\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexports.rotl = rotl;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nconst byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\nexports.byteSwap = byteSwap;\n// Conditionally byte swap if on a big-endian platform\nexports.byteSwapIfBE = exports.isLE ? (n) => n : (n) => (0, exports.byteSwap)(n);\n// In place byte swap for Uint32Array\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = (0, exports.byteSwap)(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n (0, _assert_js_1.bytes)(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n (0, _assert_js_1.bytes)(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n (0, _assert_js_1.bytes)(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nconst toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return crypto_1.crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHash = getHash;\nexports.createCurve = createCurve;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst weierstrass_js_1 = require(\"./abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => (0, hmac_1.hmac)(hash, key, (0, utils_1.concatBytes)(...msgs)),\n randomBytes: utils_1.randomBytes,\n };\n}\nfunction createCurve(curveDef, defHash) {\n const create = (hash) => (0, weierstrass_js_1.weierstrass)({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { CHash } from './abstract/utils.js';\nimport { CurveType, weierstrass } from './abstract/weierstrass.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n return {\n hash,\n hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, _assert_js_1.hash)(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n (0, _assert_js_1.exists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.bytes)(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC> extends Hash> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assertExists(this);\n assertBytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to?: HMAC): HMAC {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC(hash, key);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DER = void 0;\nexports.weierstrassPoints = weierstrassPoints;\nexports.weierstrass = weierstrass;\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nconst curve_js_1 = require(\"./curve.js\");\nconst mod = require(\"./modular.js\");\nconst ut = require(\"./utils.js\");\nconst utils_js_1 = require(\"./utils.js\");\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n (0, utils_js_1.abool)('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n (0, utils_js_1.abool)('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexports.DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = exports.DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = exports.DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = exports.DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected assertion');\n return hex;\n },\n decode(data) {\n const { Err: E } = exports.DER;\n if (data[0] & 128)\n throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = exports.DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = exports.DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\n key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE((0, utils_js_1.ensureBytes)('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = (0, utils_js_1.memoized)((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = (0, utils_js_1.memoized)((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes((0, utils_js_1.ensureBytes)('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return (0, curve_js_1.pippenger)(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (sc === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, sc);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = (0, curve_js_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = (0, curve_js_1.validateBasic)(curve);\n ut.validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nfunction weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n (0, utils_js_1.abool)('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => ut.bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.nByteLength;\n hex = (0, utils_js_1.ensureBytes)('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = exports.DER.toSig((0, utils_js_1.ensureBytes)('DER', hex));\n return new Signature(r, s);\n }\n assertValidity() {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN((0, utils_js_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return exports.DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = (0, utils_js_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push((0, utils_js_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = (0, utils_js_1.ensureBytes)('msgHash', msgHash);\n publicKey = (0, utils_js_1.ensureBytes)('publicKey', publicKey);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof exports.DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport {\n AffinePoint,\n BasicCurve,\n Group,\n GroupConstructor,\n validateBasic,\n wNAF,\n pippenger,\n} from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes, memoized, abool } from './utils.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n beta: bigint;\n splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve = BasicCurve & {\n // Params: a, b\n a: T;\n b: T;\n\n // Optional params\n allowedPrivateKeyLengths?: readonly number[]; // for P521\n wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n // When a cofactor != 1, there can be an effective methods to:\n // 1. Determine whether a point is torsion-free\n isTorsionFree?: (c: ProjConstructor, point: ProjPointType) => boolean;\n // 2. Clear torsion component\n clearCofactor?: (c: ProjConstructor, point: ProjPointType) => ProjPointType;\n};\n\ntype Entropy = Hex | boolean;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\nfunction validateSigVerOpts(opts: SignOpts | VerOpts) {\n if (opts.lowS !== undefined) abool('lowS', opts.lowS);\n if (opts.prehash !== undefined) abool('prehash', opts.prehash);\n}\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType extends Group> {\n readonly px: T;\n readonly py: T;\n readonly pz: T;\n get x(): T;\n get y(): T;\n multiply(scalar: bigint): ProjPointType;\n toAffine(iz?: T): AffinePoint;\n isTorsionFree(): boolean;\n clearCofactor(): ProjPointType;\n assertValidity(): void;\n hasEvenY(): boolean;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n\n multiplyUnsafe(scalar: bigint): ProjPointType;\n multiplyAndAddUnsafe(Q: ProjPointType, a: bigint, b: bigint): ProjPointType | undefined;\n _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor extends GroupConstructor> {\n new (x: T, y: T, z: T): ProjPointType;\n fromAffine(p: AffinePoint): ProjPointType;\n fromHex(hex: Hex): ProjPointType;\n fromPrivateKey(privateKey: PrivKey): ProjPointType;\n normalizeZ(points: ProjPointType[]): ProjPointType[];\n msm(points: ProjPointType[], scalars: bigint[]): ProjPointType;\n}\n\nexport type CurvePointsType = BasicWCurve & {\n // Bytes\n fromBytes?: (bytes: Uint8Array) => AffinePoint;\n toBytes?: (c: ProjConstructor, point: ProjPointType, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts(curve: CurvePointsType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n a: 'field',\n b: 'field',\n },\n {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n }\n );\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (\n typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function'\n ) {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes = {\n CURVE: ReturnType>;\n ProjectivePoint: ProjConstructor;\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n weierstrassEquation: (x: T) => T;\n isWithinCurveOrder: (num: bigint) => boolean;\n};\n\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\n\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag: number, data: string) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length & 1) throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 0b1000_0000) throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 0b1000_0000) : '';\n return `${ut.numberToHexUnpadded(tag)}${lenLen}${len}${data}`;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array } {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag) throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 0b1000_0000); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong) length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 0b0111_1111;\n if (!lenLen) throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4) throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen) throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0) throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes) length = (length << 8) | b;\n pos += lenLen;\n if (length < 128) throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length) throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num: bigint) {\n const { Err: E } = DER;\n if (num < _0n) throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000) hex = '00' + hex;\n if (hex.length & 1) throw new E('unexpected assertion');\n return hex;\n },\n decode(data: Uint8Array): bigint {\n const { Err: E } = DER;\n if (data[0] & 0b1000_0000) throw new E('Invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 0b1000_0000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length) throw new E('Invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig: { r: bigint; s: bigint }): string {\n const { _tlv: tlv, _int: int } = DER;\n const seq = `${tlv.encode(0x02, int.encode(sig.r))}${tlv.encode(0x02, int.encode(sig.s))}`;\n return tlv.encode(0x30, seq);\n },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function weierstrassPoints(opts: CurvePointsType): CurvePointsRes {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = mod.Field(CURVE.n, CURVE.nBitLength);\n\n const toBytes =\n CURVE.toBytes ||\n ((_c: ProjConstructor, point: ProjPointType, _isCompressed: boolean) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes =\n CURVE.fromBytes ||\n ((bytes: Uint8Array) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x: T): T {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num: bigint): boolean {\n return ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key: PrivKey): bigint {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key)) key = ut.bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num: bigint;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey) num = mod.mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n\n function assertPrjPoint(other: unknown) {\n if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n }\n\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p: Point, iz?: T): AffinePoint => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE)) return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p: Point) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py)) return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point implements ProjPointType {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n constructor(\n readonly px: T,\n readonly py: T,\n readonly pz: T\n ) {\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n Object.freeze(this);\n }\n\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p: AffinePoint): Point {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n const is0 = (i: T) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n\n get x(): T {\n return this.toAffine().x;\n }\n get y(): T {\n return this.toAffine().y;\n }\n\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points: Point[]): Point[] {\n const toInv = Fp.invertBatch(points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex: Hex): Point {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey: PrivKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n\n // Multiscalar Multiplication\n static msm(points: Point[], scalars: bigint[]) {\n return pippenger(Point, Fn, points, scalars);\n }\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n wnaf.setWindowSize(this, windowSize);\n }\n\n // A point on curve is valid if it conforms to equation.\n assertValidity(): void {\n assertValidMemo(this);\n }\n\n hasEvenY(): boolean {\n const { y } = this.toAffine();\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n\n /**\n * Compare one point to another.\n */\n equals(other: Point): boolean {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate(): Point {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other: Point): Point {\n assertPrjPoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n\n subtract(other: Point) {\n return this.add(other.negate());\n }\n\n is0() {\n return this.equals(Point.ZERO);\n }\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc: bigint): Point {\n ut.aInRange('scalar', sc, _0n, CURVE.n);\n const I = Point.ZERO;\n if (sc === _0n) return I;\n if (sc === _1n) return this;\n const { endo } = CURVE;\n if (!endo) return wnaf.unsafeLadder(this, sc);\n\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d: Point = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n) k1p = k1p.add(d);\n if (k2 & _1n) k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg) k1p = k1p.negate();\n if (k2neg) k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar: bigint): Point {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point: Point, fake: Point; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n } else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (\n P: Point,\n a: bigint // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz?: T): AffinePoint {\n return toAffineMemo(this, iz);\n }\n isTorsionFree(): boolean {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n) return true; // No subgroups, always torsion-free\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor(): Point {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n) return this; // Fast-path\n if (clearCofactor) return clearCofactor(Point, this) as Point;\n return this.multiplyUnsafe(CURVE.h);\n }\n\n toRawBytes(isCompressed = true): Uint8Array {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n\n toHex(isCompressed = true): string {\n abool('isCompressed', isCompressed);\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point as ProjConstructor,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\n\n// Instance\nexport interface SignatureType {\n readonly r: bigint;\n readonly s: bigint;\n readonly recovery?: number;\n assertValidity(): void;\n addRecoveryBit(recovery: number): RecoveredSignatureType;\n hasHighS(): boolean;\n normalizeS(): SignatureType;\n recoverPublicKey(msgHash: Hex): ProjPointType;\n toCompactRawBytes(): Uint8Array;\n toCompactHex(): string;\n // DER-encoded\n toDERRawBytes(isCompressed?: boolean): Uint8Array;\n toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n new (r: bigint, s: bigint): SignatureType;\n fromCompact(hex: Hex): SignatureType;\n fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType;\n\nexport type CurveType = BasicWCurve & {\n hash: CHash; // CHash not FHash because we need outputLen for DRBG\n hmac: HmacFnSync;\n randomBytes: (bytesLength?: number) => Uint8Array;\n lowS?: boolean;\n bits2int?: (bytes: Uint8Array) => bigint;\n bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n },\n {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n }\n );\n return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n CURVE: ReturnType;\n getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n ProjectivePoint: ProjConstructor;\n Signature: SignatureConstructor;\n utils: {\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n isValidPrivateKey(privateKey: PrivKey): boolean;\n randomPrivateKey: () => Uint8Array;\n precompute: (windowSize?: number, point?: ProjPointType) => ProjPointType;\n };\n};\n\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType;\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n function modN(a: bigint) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a: bigint) {\n return mod.invert(a, CURVE_ORDER);\n }\n\n const {\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed: boolean): Uint8Array {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes: Uint8Array) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER)) throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y: bigint;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n } catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return { x, y };\n } else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n } else {\n throw new Error(\n `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n );\n }\n },\n });\n const numToNByteStr = (num: bigint): string =>\n ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n function isBiggerThanHalfOrder(number: bigint) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n\n function normalizeS(s: bigint) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature implements SignatureType {\n constructor(\n readonly r: bigint,\n readonly s: bigint,\n readonly recovery?: number\n ) {\n this.assertValidity();\n }\n\n // pair (bytes of r, bytes of s)\n static fromCompact(hex: Hex) {\n const l = CURVE.nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex: Hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n\n assertValidity(): void {\n ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..N]\n }\n\n addRecoveryBit(recovery: number): RecoveredSignature {\n return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n }\n\n recoverPublicKey(msgHash: Hex): typeof Point.BASE {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToNByteStr(radj));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n\n // Signatures should be low-s, to prevent malleability.\n hasHighS(): boolean {\n return isBiggerThanHalfOrder(this.s);\n }\n\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n\n // DER-encoded\n toDERRawBytes() {\n return ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\n }\n }\n type RecoveredSignature = Signature & { recovery: number };\n\n const utils = {\n isValidPrivateKey(privateKey: PrivKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: (): Uint8Array => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey: PrivKey, isCompressed = true): Uint8Array {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item: PrivKey | PubKey): boolean {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && (item as Hex).length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\n\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int =\n CURVE.bits2int ||\n function (bytes: Uint8Array): bigint {\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN =\n CURVE.bits2int_modN ||\n function (bytes: Uint8Array): bigint {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num: bigint): Uint8Array {\n ut.aInRange(`num < 2^${CURVE.nBitLength}`, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.nByteLength);\n }\n\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n // Also it can be bigger for P224 + SHA256\n function prepSig(msgHash: Hex, privateKey: PrivKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n) return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n) return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(\n signature: Hex | SignatureLike,\n msgHash: Hex,\n publicKey: Hex,\n opts = defaultVerOpts\n ): boolean {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n validateSigVerOpts(opts);\n const { lowS, prehash } = opts;\n\n let _sig: Signature | undefined = undefined;\n let P: ProjPointType;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n _sig = Signature.fromDER(sg);\n } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\n }\n } else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n } else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n } catch (error) {\n if ((error as Error).message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\n if (lowS && _sig.hasHighS()) return false;\n if (prehash) msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R) return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp: mod.IField, Z: T) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u: T, v: T) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(\n Fp: mod.IField,\n opts: {\n A: T;\n B: T;\n Z: T;\n }\n) {\n mod.validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd) throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u: T): { x: T; y: T } => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wNAF = wNAF;\nexports.pippenger = pippenger;\nexports.validateBasic = validateBasic;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let p = c.ZERO;\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n wNAFCached(P, n, transform) {\n const W = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nfunction pippenger(c, field, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error(`wrong point at index ${i}`);\n });\n const wbits = (0, utils_js_1.bitLen)(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\nfunction validateBasic(curve) {\n (0, modular_js_1.validateField)(curve.Fp);\n (0, utils_js_1.validateObject)(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...(0, modular_js_1.nLength)(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject, bitLen } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper = (i: T[]) => T[];\n\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF>(c: GroupConstructor, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const validateW = (W: number) => {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error(`Wrong window size=${W}, should be [1..${bits}]`);\n };\n const opts = (W: number) => {\n validateW(W);\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm: T, W: number): Group[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n\n let p = c.ZERO;\n let f = c.BASE;\n\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n\n wNAFCached(P: T, n: bigint, transform: Mapper): { p: T; f: T } {\n const W: number = pointWindowSizes.get(P) || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W) as T[];\n if (W !== 1) pointPrecomputes.set(P, transform(comp));\n }\n return this.wNAF(W, comp, n);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n\n setWindowSize(P: T, W: number) {\n validateW(W);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM).\n * MSM is basically (Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param field field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger>(\n c: GroupConstructor,\n field: IField,\n points: T[],\n scalars: bigint[]\n): T {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n if (!Array.isArray(points) || !Array.isArray(scalars) || scalars.length !== points.length)\n throw new Error('arrays of points and scalars must have equal length');\n scalars.forEach((s, i) => {\n if (!field.isValid(s)) throw new Error(`wrong scalar at index ${i}`);\n });\n points.forEach((p, i) => {\n if (!(p instanceof (c as any))) throw new Error(`wrong point at index ${i}`);\n });\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(c.ZERO); // +1 for zero array\n const lastBits = Math.floor((field.BITS - 1) / windowSize) * windowSize;\n let sum = c.ZERO;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(c.ZERO);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = c.ZERO; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = c.ZERO; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0) for (let j = 0; j < windowSize; j++) sum = sum.double();\n }\n return sum as T;\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve = {\n Fp: IField; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic(curve: BasicCurve & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNegativeLE = void 0;\nexports.mod = mod;\nexports.pow = pow;\nexports.pow2 = pow2;\nexports.invert = invert;\nexports.tonelliShanks = tonelliShanks;\nexports.FpSqrt = FpSqrt;\nexports.validateField = validateField;\nexports.FpPow = FpPow;\nexports.FpInvertBatch = FpInvertBatch;\nexports.FpDiv = FpDiv;\nexports.FpLegendre = FpLegendre;\nexports.FpIsSquare = FpIsSquare;\nexports.nLength = nLength;\nexports.Field = Field;\nexports.FpSqrtOdd = FpSqrtOdd;\nexports.FpSqrtEven = FpSqrtEven;\nexports.hashToPrivateScalar = hashToPrivateScalar;\nexports.getFieldBytesLength = getFieldBytesLength;\nexports.getMinHashLength = getMinHashLength;\nexports.mapHashToField = mapHashToField;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nconst utils_js_1 = require(\"./utils.js\");\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n// Inverses number over modulo\nfunction invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nfunction FpSqrt(P) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nconst isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return (0, utils_js_1.validateObject)(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nfunction FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nfunction FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nfunction FpLegendre(order) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: (0, utils_js_1.bitMask)(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? (0, utils_js_1.numberToBytesLE)(num, BYTES) : (0, utils_js_1.numberToBytesBE)(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? (0, utils_js_1.bytesToNumberLE)(bytes) : (0, utils_js_1.bytesToNumberBE)(bytes);\n },\n });\n return Object.freeze(f);\n}\nfunction FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nfunction FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = (0, utils_js_1.ensureBytes)('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberLE)(hash) : (0, utils_js_1.bytesToNumberBE)(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? (0, utils_js_1.bytesToNumberBE)(key) : (0, utils_js_1.bytesToNumberLE)(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? (0, utils_js_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_js_1.numberToBytesBE)(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n numberToBytesBE,\n numberToBytesLE,\n validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n\n let Q: bigint, S: number, Z: bigint;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp: IField, n: T): T {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\n\nexport function FpSqrt(P: bigint) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp: IField, n: T) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField(field: IField) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f: IField, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f: IField, nums: T[]): T[] {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv(f: IField, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\nexport function FpLegendre(order: bigint) {\n // (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n // (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f: IField, x: T): T => f.pow(x, legendreConst);\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f: IField) {\n const legendre = FpLegendre(f.ORDER);\n return (x: T): boolean => {\n const p = legendre(f, x);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField & Required, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * NOTE: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial> = {}\n): Readonly {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.notImplemented = exports.bitMask = void 0;\nexports.isBytes = isBytes;\nexports.abytes = abytes;\nexports.abool = abool;\nexports.bytesToHex = bytesToHex;\nexports.numberToHexUnpadded = numberToHexUnpadded;\nexports.hexToNumber = hexToNumber;\nexports.hexToBytes = hexToBytes;\nexports.bytesToNumberBE = bytesToNumberBE;\nexports.bytesToNumberLE = bytesToNumberLE;\nexports.numberToBytesBE = numberToBytesBE;\nexports.numberToBytesLE = numberToBytesLE;\nexports.numberToVarBytesBE = numberToVarBytesBE;\nexports.ensureBytes = ensureBytes;\nexports.concatBytes = concatBytes;\nexports.equalBytes = equalBytes;\nexports.utf8ToBytes = utf8ToBytes;\nexports.inRange = inRange;\nexports.aInRange = aInRange;\nexports.bitLen = bitLen;\nexports.bitGet = bitGet;\nexports.bitSet = bitSet;\nexports.createHmacDrbg = createHmacDrbg;\nexports.validateObject = validateObject;\nexports.memoized = memoized;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nfunction abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nfunction inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nfunction bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_2n << BigInt(n - 1)) - _1n;\nexports.bitMask = bitMask;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nconst notImplemented = () => {\n throw new Error('not implemented');\n};\nexports.notImplemented = notImplemented;\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nexport function abytes(item: unknown): void {\n if (!isBytes(item)) throw new Error('Uint8Array expected');\n}\n\nexport function abool(title: string, value: boolean): void {\n if (typeof value !== 'boolean')\n throw new Error(`${title} must be valid boolean, got \"${value}\".`);\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Is positive bigint\nconst isPosBig = (n: bigint) => typeof n === 'bigint' && _0n <= n;\n\nexport function inRange(n: bigint, min: bigint, max: bigint) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title: string, n: bigint, min: bigint, max: bigint) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error(`expected valid ${title}: ${min} <= n < ${max}, got ${typeof n} ${n}`);\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn: (arg: T, ...args: O) => R) {\n const map = new WeakMap();\n return (arg: T, ...args: O): R => {\n const val = map.get(arg);\n if (val !== undefined) return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expand_message_xmd = expand_message_xmd;\nexports.expand_message_xof = expand_message_xof;\nexports.hash_to_field = hash_to_field;\nexports.isogenyMap = isogenyMap;\nexports.createHasher = createHasher;\nconst modular_js_1 = require(\"./modular.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = utils_js_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0);\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\nfunction anum(item) {\n if (!Number.isSafeInteger(item))\n throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255)\n DST = H((0, utils_js_1.concatBytes)((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255)\n throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = (0, utils_js_1.concatBytes)(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H((0, utils_js_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H((0, utils_js_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H((0, utils_js_1.concatBytes)(...args));\n }\n const pseudo_random_bytes = (0, utils_js_1.concatBytes)(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n (0, utils_js_1.abytes)(msg);\n (0, utils_js_1.abytes)(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update((0, utils_js_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest());\n}\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n (0, utils_js_1.validateObject)(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n (0, utils_js_1.abytes)(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? (0, utils_js_1.utf8ToBytes)(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n }\n else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n }\n else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n }\n else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = (0, modular_js_1.mod)(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\nfunction isogenyMap(field, map) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x, y) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) => val.reduce((acc, i) => field.add(field.mul(acc, x), i)));\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\nfunction createHasher(Point, mapToCurve, def) {\n if (typeof mapToCurve !== 'function')\n throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg, options) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options });\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg, options) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options });\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars) {\n if (!Array.isArray(scalars))\n throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n//# sourceMappingURL=hash-to-curve.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport type { AffinePoint, Group, GroupConstructor } from './curve.js';\nimport { IField, mod } from './modular.js';\nimport type { CHash } from './utils.js';\nimport { abytes, bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';\n\n/**\n * * `DST` is a domain separation tag, defined in section 2.2.5\n * * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m\n * * `m` is extension degree (1 for prime fields)\n * * `k` is the target security target in bits (e.g. 128), from section 5.1\n * * `expand` is `xmd` (SHA2, SHA3, BLAKE) or `xof` (SHAKE, BLAKE-XOF)\n * * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props\n */\ntype UnicodeOrBytes = string | Uint8Array;\nexport type Opts = {\n DST: UnicodeOrBytes;\n p: bigint;\n m: number;\n k: number;\n expand: 'xmd' | 'xof';\n hash: CHash;\n};\n\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value: number, length: number): Uint8Array {\n anum(value);\n anum(length);\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0) as number[];\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\n\nfunction strxor(a: Uint8Array, b: Uint8Array): Uint8Array {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\n\nfunction anum(item: unknown): void {\n if (!Number.isSafeInteger(item)) throw new Error('number expected');\n}\n\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nexport function expand_message_xmd(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255) DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (lenInBytes > 65535 || ell > 255) throw new Error('expand_message_xmd: invalid lenInBytes');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nexport function expand_message_xof(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n k: number,\n H: CHash\n): Uint8Array {\n abytes(msg);\n abytes(DST);\n anum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (\n H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest()\n );\n}\n\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg: Uint8Array, count: number, options: Opts): bigint[][] {\n validateObject(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n abytes(msg);\n anum(count);\n const DST = typeof _DST === 'string' ? utf8ToBytes(_DST) : _DST;\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n } else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n } else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n } else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\n\nexport function isogenyMap>(field: F, map: [T[], T[], T[], T[]]) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x: T, y: T) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) =>\n val.reduce((acc, i) => field.add(field.mul(acc, x), i))\n );\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\n\nexport interface H2CPoint extends Group> {\n add(rhs: H2CPoint): H2CPoint;\n toAffine(iz?: bigint): AffinePoint;\n clearCofactor(): H2CPoint;\n assertValidity(): void;\n}\n\nexport interface H2CPointConstructor extends GroupConstructor> {\n fromAffine(ap: AffinePoint): H2CPoint;\n}\n\nexport type MapToCurve = (scalar: bigint[]) => AffinePoint;\n\n// Separated from initialization opts, so users won't accidentally change per-curve parameters\n// (changing DST is ok!)\nexport type htfBasicOpts = { DST: UnicodeOrBytes };\n\nexport function createHasher(\n Point: H2CPointConstructor,\n mapToCurve: MapToCurve,\n def: Opts & { encodeDST?: UnicodeOrBytes }\n) {\n if (typeof mapToCurve !== 'function') throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options } as Opts);\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options } as Opts);\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n // Same as encodeToCurve, but without hash\n mapToCurve(scalars: bigint[]) {\n if (!Array.isArray(scalars)) throw new Error('mapToCurve: expected array of bigints');\n for (const i of scalars)\n if (typeof i !== 'bigint')\n throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);\n const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n","\n\n\n","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from \"./composables/date/date.mjs\";\nimport { createDefaults, DefaultsSymbol } from \"./composables/defaults.mjs\";\nimport { createDisplay, DisplaySymbol } from \"./composables/display.mjs\";\nimport { createGoTo, GoToSymbol } from \"./composables/goto.mjs\";\nimport { createIcons, IconSymbol } from \"./composables/icons.mjs\";\nimport { createLocale, LocaleSymbol } from \"./composables/locale.mjs\";\nimport { createTheme, ThemeSymbol } from \"./composables/theme.mjs\"; // Utilities\nimport { nextTick, reactive } from 'vue';\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from \"./util/index.mjs\"; // Types\nexport * from \"./composables/index.mjs\";\nexport function createVuetify() {\n let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n blueprint,\n ...rest\n } = vuetify;\n const options = mergeDeep(blueprint, rest);\n const {\n aliases = {},\n components = {},\n directives = {}\n } = options;\n const defaults = createDefaults(options.defaults);\n const display = createDisplay(options.display, options.ssr);\n const theme = createTheme(options.theme);\n const icons = createIcons(options.icons);\n const locale = createLocale(options.locale);\n const date = createDate(options.date, locale);\n const goTo = createGoTo(options.goTo, locale);\n const install = app => {\n for (const key in directives) {\n app.directive(key, directives[key]);\n }\n for (const key in components) {\n app.component(key, components[key]);\n }\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name\n }));\n }\n theme.install(app);\n app.provide(DefaultsSymbol, defaults);\n app.provide(DisplaySymbol, display);\n app.provide(ThemeSymbol, theme);\n app.provide(IconSymbol, icons);\n app.provide(LocaleSymbol, locale);\n app.provide(DateOptionsSymbol, date.options);\n app.provide(DateAdapterSymbol, date.instance);\n app.provide(GoToSymbol, goTo);\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update();\n });\n } else {\n const {\n mount\n } = app;\n app.mount = function () {\n const vm = mount(...arguments);\n nextTick(() => display.update());\n app.mount = mount;\n return vm;\n };\n }\n }\n getUid.reset();\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify() {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol)\n });\n }\n }\n });\n }\n };\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo\n };\n}\nexport const version = \"3.7.3\";\ncreateVuetify.version = version;\n\n// Vue's inject() can only be used in setup\nfunction inject(key) {\n const vm = this.$;\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;\n if (provides && key in provides) {\n return provides[key];\n }\n}\n//# sourceMappingURL=framework.mjs.map","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { nextTick, reactive } from 'vue'\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\nexport * from './composables'\nexport type { DateOptions, DateInstance, DateModule } from '@/composables/date'\n\nexport interface VuetifyOptions {\n aliases?: Record\n blueprint?: Blueprint\n components?: Record\n date?: DateOptions\n directives?: Record\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n","import { _ as _object_without_properties_loose } from \"./_object_without_properties_loose.js\";\n\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\nexport { _object_without_properties as _ };\n","function _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\nexport { _object_without_properties_loose as _ };\n","// Composables\nimport { useLocale } from \"../locale.mjs\"; // Utilities\nimport { inject, reactive, watch } from 'vue';\nimport { mergeDeep } from \"../../util/index.mjs\"; // Types\n// Adapters\nimport { VuetifyDateAdapter } from \"./adapters/vuetify.mjs\";\n/** Supports module augmentation to specify date adapter types */\nexport let DateModule;\nexport const DateOptionsSymbol = Symbol.for('vuetify:date-options');\nexport const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');\nexport function createDate(options, locale) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW'\n }\n }, options);\n return {\n options: _options,\n instance: createInstance(_options, locale)\n };\n}\nfunction createInstance(options, locale) {\n const instance = reactive(typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats\n }) : options.adapter);\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n return instance;\n}\nexport function useDate() {\n const options = inject(DateOptionsSymbol);\n if (!options) throw new Error('[Vuetify] Could not find injected date options');\n const locale = useLocale();\n return createInstance(options, locale);\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek(adapter, value) {\n const date = adapter.toJsDate(value);\n let year = date.getFullYear();\n let d1w1 = new Date(year, 0, 1);\n if (date < d1w1) {\n year = year - 1;\n d1w1 = new Date(year, 0, 1);\n } else {\n const tv = new Date(year + 1, 0, 1);\n if (date >= tv) {\n year = year + 1;\n d1w1 = tv;\n }\n }\n const diffTime = Math.abs(date.getTime() - d1w1.getTime());\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return Math.floor(diffDays / 7) + 1;\n}\n//# sourceMappingURL=date.mjs.map","// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record\n locale: Record\n}\n\nexport type DateOptions = Partial\n\nexport const DateOptionsSymbol: InjectionKey = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek (adapter: DateAdapter, value: any) {\n const date = adapter.toJsDate(value)\n let year = date.getFullYear()\n let d1w1 = new Date(year, 0, 1)\n\n if (date < d1w1) {\n year = year - 1\n d1w1 = new Date(year, 0, 1)\n } else {\n const tv = new Date(year + 1, 0, 1)\n if (date >= tv) {\n year = year + 1\n d1w1 = tv\n }\n }\n\n const diffTime = Math.abs(date.getTime() - d1w1.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n\n return Math.floor(diffDays / 7) + 1\n}\n","// Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { createVuetifyAdapter } from \"../locale/adapters/vuetify.mjs\"; // Types\nexport const LocaleSymbol = Symbol.for('vuetify:locale');\nfunction isLocaleInstance(obj) {\n return obj.name != null;\n}\nexport function createLocale(options) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);\n const rtl = createRtl(i18n, options);\n return {\n ...i18n,\n ...rtl\n };\n}\nexport function useLocale() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n return locale;\n}\nexport function provideLocale(props) {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n const i18n = locale.provide(props);\n const rtl = provideRtl(i18n, locale.rtl, props);\n const data = {\n ...i18n,\n ...rtl\n };\n provide(LocaleSymbol, data);\n return data;\n}\n\n// RTL\n\nexport const RtlSymbol = Symbol.for('vuetify:rtl');\nfunction genDefaults() {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false\n };\n}\nexport function createRtl(i18n, options) {\n const rtl = ref(options?.rtl ?? genDefaults());\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function provideRtl(locale, rtl, props) {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function useRtl() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance');\n return {\n isRtl: locale.isRtl,\n rtlClasses: locale.rtlClasses\n };\n}\n//# sourceMappingURL=locale.mjs.map","// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref\n current: Ref\n fallback: Ref\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref\n rtl: Ref>\n rtlClasses: Ref\n}\n\nexport const RtlSymbol: InjectionKey = Symbol.for('vuetify:rtl')\n\nfunction genDefaults () {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n }\n}\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref>(options?.rtl ?? genDefaults())\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n","// Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { consoleError, consoleWarn, getObjectValueByPath } from \"../../util/index.mjs\"; // Locales\nimport en from \"../en.mjs\"; // Types\nconst LANG_PREFIX = '$vuetify.';\nconst replace = (str, params) => {\n return str.replace(/\\{(\\d+)\\}/g, (match, index) => {\n return String(params[+index]);\n });\n};\nconst createTranslateFunction = (current, fallback, messages) => {\n return function (key) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params);\n }\n const shortKey = key.replace(LANG_PREFIX, '');\n const currentLocale = current.value && messages.value[current.value];\n const fallbackLocale = fallback.value && messages.value[fallback.value];\n let str = getObjectValueByPath(currentLocale, shortKey, null);\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`);\n str = getObjectValueByPath(fallbackLocale, shortKey, null);\n }\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`);\n str = key;\n }\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`);\n str = key;\n }\n return replace(str, params);\n };\n};\nfunction createNumberFunction(current, fallback) {\n return (value, options) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options);\n return numberFormat.format(value);\n };\n}\nfunction useProvided(props, prop, provided) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value;\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value;\n }\n });\n return internal;\n}\nfunction createProvideFunction(state) {\n return props => {\n const current = useProvided(props, 'locale', state.current);\n const fallback = useProvided(props, 'fallback', state.fallback);\n const messages = useProvided(props, 'messages', state.messages);\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n };\n}\nexport function createVuetifyAdapter(options) {\n const current = shallowRef(options?.locale ?? 'en');\n const fallback = shallowRef(options?.fallback ?? 'en');\n const messages = ref({\n en,\n ...options?.messages\n });\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({\n current,\n fallback,\n messages\n })\n };\n}\n//# sourceMappingURL=vuetify.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Locales\nimport en from '@/locale/en'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref,\n fallback: Ref,\n messages: Ref,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref, fallback: Ref) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided (props: any, prop: string, provided: Ref) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref\n}\n\nfunction createProvideFunction (state: { current: Ref, fallback: Ref, messages: Ref }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = shallowRef(options?.locale ?? 'en')\n const fallback = shallowRef(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, ref, toRaw, watch } from 'vue';\nimport { getCurrentInstance, toKebabCase } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useProxiedModel(props, prop, defaultValue) {\n let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;\n let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;\n const vm = getCurrentInstance('useProxiedModel');\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);\n const kebabProp = toKebabCase(prop);\n const checkKebab = kebabProp !== prop;\n const isControlled = checkKebab ? computed(() => {\n void props[prop];\n return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));\n }) : computed(() => {\n void props[prop];\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));\n });\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val;\n });\n });\n const model = computed({\n get() {\n const externalValue = props[prop];\n return transformIn(isControlled.value ? externalValue : internal.value);\n },\n set(internalValue) {\n const newValue = transformOut(internalValue);\n const value = toRaw(isControlled.value ? props[prop] : internal.value);\n if (value === newValue || transformIn(value) === internalValue) {\n return;\n }\n internal.value = newValue;\n vm?.emit(`update:${prop}`, newValue);\n }\n });\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value\n });\n return model;\n}\n//# sourceMappingURL=proxiedModel.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { EventProp } from '@/util'\n\ntype InnerVal = T extends any[] ? Readonly : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined },\n Prop extends Extract,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue';\n\n// Types\n\nexport function useToggleScope(source, fn) {\n let scope;\n function start() {\n scope = effectScope();\n scope.run(() => fn.length ? fn(() => {\n scope?.stop();\n start();\n }) : fn());\n }\n watch(source, active => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n//# sourceMappingURL=toggleScope.mjs.map","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue'\n\n// Types\nimport type { EffectScope, WatchSource } from 'vue'\n\nexport function useToggleScope (source: WatchSource, fn: (reset: () => void) => void) {\n let scope: EffectScope | undefined\n function start () {\n scope = effectScope()\n scope.run(() => fn.length\n ? fn(() => { scope?.stop(); start() })\n : (fn as any)()\n )\n }\n\n watch(source, active => {\n if (active && !scope) {\n start()\n } else if (!active) {\n scope?.stop()\n scope = undefined\n }\n }, { immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n","export * from \"./anchor.mjs\";\nexport * from \"./animation.mjs\";\nexport * from \"./bindProps.mjs\";\nexport * from \"./colorUtils.mjs\";\nexport * from \"./console.mjs\";\nexport * from \"./createSimpleFunctional.mjs\";\nexport * from \"./defineComponent.mjs\";\nexport * from \"./dom.mjs\";\nexport * from \"./easing.mjs\";\nexport * from \"./events.mjs\";\nexport * from \"./getCurrentInstance.mjs\";\nexport * from \"./getScrollParent.mjs\";\nexport * from \"./globals.mjs\";\nexport * from \"./helpers.mjs\";\nexport * from \"./injectSelf.mjs\";\nexport * from \"./isFixedPosition.mjs\";\nexport * from \"./propsFactory.mjs\";\nexport * from \"./useRender.mjs\";\n//# sourceMappingURL=index.mjs.map","export * from './anchor'\nexport * from './animation'\nexport * from './bindProps'\nexport * from './colorUtils'\nexport * from './console'\nexport * from './createSimpleFunctional'\nexport * from './defineComponent'\nexport * from './dom'\nexport * from './easing'\nexport * from './events'\nexport * from './getCurrentInstance'\nexport * from './getScrollParent'\nexport * from './globals'\nexport * from './helpers'\nexport * from './injectSelf'\nexport * from './isFixedPosition'\nexport * from './propsFactory'\nexport * from './useRender'\n","// Utilities\nimport { includes } from \"./helpers.mjs\";\nconst block = ['top', 'bottom'];\nconst inline = ['start', 'end', 'left', 'right'];\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor, isRtl) {\n let [side, align] = anchor.split(' ');\n if (!align) {\n align = includes(block, side) ? 'start' : includes(inline, side) ? 'top' : 'center';\n }\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl)\n };\n}\nexport function toPhysical(str, isRtl) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\nexport function flipSide(anchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.side],\n align: anchor.align\n };\n}\nexport function flipAlign(anchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.align]\n };\n}\nexport function flipCorner(anchor) {\n return {\n side: anchor.align,\n align: anchor.side\n };\n}\nexport function getAxis(anchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n//# sourceMappingURL=anchor.mjs.map","// Utilities\nimport { includes } from '@/util/helpers'\n\nconst block = ['top', 'bottom'] as const\nconst inline = ['start', 'end', 'left', 'right'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline[number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: 'left' | 'right' | 'center' }\n | { side: 'left' | 'right', align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor, isRtl: boolean) {\n let [side, align] = anchor.split(' ') as [Tblock | Tinline | 'center', Tblock | Tinline | 'center' | undefined]\n if (!align) {\n align =\n includes(block, side) ? 'start'\n : includes(inline, side) ? 'top'\n : 'center'\n }\n\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl),\n } as ParsedAnchor\n}\n\nexport function toPhysical (str: 'center' | Tblock | Tinline, isRtl: boolean) {\n if (str === 'start') return isRtl ? 'right' : 'left'\n if (str === 'end') return isRtl ? 'left' : 'right'\n return str\n}\n\nexport function flipSide (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\nexport function flipAlign (anchor: ParsedAnchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n }[anchor.align],\n } as ParsedAnchor\n}\n\nexport function flipCorner (anchor: ParsedAnchor) {\n return {\n side: anchor.align,\n align: anchor.side,\n } as ParsedAnchor\n}\n\nexport function getAxis (anchor: ParsedAnchor) {\n return includes(block, anchor.side) ? 'y' : 'x'\n}\n","function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue';\nimport { IN_BROWSER } from \"./globals.mjs\"; // Types\nexport function getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === undefined ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === undefined ? fallback : obj[path[last]];\n}\nexport function deepEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n // If the values are Date, compare them as timestamps\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n return props.every(p => deepEqual(a[p], b[p]));\n}\nexport function getObjectValueByPath(obj, path, fallback) {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback;\n if (obj[path] !== undefined) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback);\n}\nexport function getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === undefined ? fallback : item;\n if (property == null || typeof property === 'boolean') return fallback;\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n }\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n}\nexport function createRange(length) {\n let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Array.from({\n length\n }, (v, k) => start + k);\n}\nexport function getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = +window.getComputedStyle(el).getPropertyValue('z-index');\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nexport function convertToUnit(str) {\n let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';\n if (str == null || str === '') {\n return undefined;\n } else if (isNaN(+str)) {\n return String(str);\n } else if (!isFinite(+str)) {\n return undefined;\n } else {\n return `${Number(str)}${unit}`;\n }\n}\nexport function isObject(obj) {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport function isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nexport function refElement(obj) {\n if (obj && '$el' in obj) {\n const el = obj.$el;\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift'\n});\nexport function keys(o) {\n return Object.keys(o);\n}\nexport function has(obj, key) {\n return key.every(k => obj.hasOwnProperty(k));\n}\n// Array of keys\nexport function pick(obj, paths) {\n const found = {};\n const keys = new Set(Object.keys(obj));\n for (const path of paths) {\n if (keys.has(path)) {\n found[path] = obj[path];\n }\n }\n return found;\n}\n\n// Array of keys\n\n// Array of keys or RegExp to test keys against\n\nexport function pickWithRest(obj, paths, exclude) {\n const found = Object.create(null);\n const rest = Object.create(null);\n for (const key in obj) {\n if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nexport function omit(obj, exclude) {\n const clone = {\n ...obj\n };\n exclude.forEach(prop => delete clone[prop]);\n return clone;\n}\nexport function only(obj, include) {\n const clone = {};\n include.forEach(prop => clone[prop] = obj[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nexport const isOn = key => onRE.test(key);\nconst bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];\nconst compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];\nexport function isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the element inside.\n */\nexport function filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nexport function wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nexport function defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== 'boolean' && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nexport function debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nexport function throttle(fn, limit) {\n let throttling = false;\n return function () {\n if (!throttling) {\n throttling = true;\n setTimeout(() => throttling = false, limit);\n return fn(...arguments);\n }\n };\n}\nexport function clamp(value) {\n let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return Math.max(min, Math.min(max, value));\n}\nexport function getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;\n}\nexport function padEnd(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return str + char.repeat(Math.max(0, length - str.length));\n}\nexport function padStart(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nexport function chunk(str) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nexport function chunkArray(array) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Array.from({\n length: Math.ceil(array.length / size)\n }, (v, i) => array.slice(i * size, i * size + size));\n}\nexport function humanReadableFileSize(bytes) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G'];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nexport function mergeDeep() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let arrayFn = arguments.length > 2 ? arguments[2] : undefined;\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nexport function flattenFragments(nodes) {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nexport function toKebabCase() {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, '-').replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = new Map();\nexport function findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== 'object') return [];\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nvar _arr = /*#__PURE__*/new WeakMap();\nvar _pointer = /*#__PURE__*/new WeakMap();\nexport class CircularBuffer {\n constructor(size) {\n _classPrivateFieldInitSpec(this, _arr, []);\n _classPrivateFieldInitSpec(this, _pointer, 0);\n this.size = size;\n }\n push(val) {\n _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;\n _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);\n }\n values() {\n return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));\n }\n}\nexport function getEventCoordinates(e) {\n if ('touches' in e) {\n return {\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY\n };\n }\n return {\n clientX: e.clientX,\n clientY: e.clientY\n };\n}\n\n// Only allow a single return type\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\n\nexport function destructComputed(getter) {\n const refs = reactive({});\n const base = computed(getter);\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key];\n }\n }, {\n flush: 'sync'\n });\n return toRefs(refs);\n}\n\n/** Array.includes but value can be any type */\nexport function includes(arr, val) {\n return arr.includes(val);\n}\nexport function eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\nexport const EventProp = () => [Function, Array];\nexport function hasEvent(props, name) {\n name = 'on' + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nexport function callEvent(handler) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === 'function') {\n handler(...args);\n }\n}\nexport function focusableChildren(el) {\n let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`).join(', ');\n return [...el.querySelectorAll(targets)];\n}\nexport function getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === 'next' ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nexport function focusChild(el, location) {\n const focusable = focusableChildren(el);\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus();\n }\n } else if (location === 'first') {\n focusable[0]?.focus();\n } else if (location === 'last') {\n focusable.at(-1)?.focus();\n } else if (typeof location === 'number') {\n focusable[location]?.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');\n }\n}\nexport function isEmpty(val) {\n return val === null || val === undefined || typeof val === 'string' && val.trim() === '';\n}\nexport function noop() {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nexport function ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nexport function defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {};\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nexport function eagerComputed(fn, options) {\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n flush: 'sync',\n ...options\n });\n return readonly(result);\n}\nexport function isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nexport function templateRef() {\n const el = shallowRef();\n const fn = target => {\n el.value = target;\n };\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val\n });\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nexport function checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\n//# sourceMappingURL=helpers.mjs.map","// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n ToRefs,\n VNode,\n VNodeArrayChildren,\n VNodeChild,\n WatchOptions,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path?: string | null, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey> =\n | boolean | null | undefined // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | readonly (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: T, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property === true) return item === undefined ? fallback : item\n\n if (property == null || typeof property === 'boolean') return fallback\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is Record {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isPlainObject (obj: any): obj is Record {\n let proto\n return obj !== null && typeof obj === 'object' && (\n (proto = Object.getPrototypeOf(obj)) === Object.prototype ||\n proto === null\n )\n}\n\nexport function refElement (obj?: ComponentPublicInstance | HTMLElement): HTMLElement | undefined {\n if (obj && '$el' in obj) {\n const el = obj.$el as HTMLElement\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling as HTMLElement\n }\n return el\n }\n return obj as HTMLElement\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues: Record = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\nexport function has (obj: object, key: T[]): obj is Record {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract\n> = Record extends T ? Partial> : Pick\n\n// Array of keys\nexport function pick<\n T extends object,\n U extends Extract\n> (obj: T, paths: U[]): MaybePick {\n const found: any = {}\n\n const keys = new Set(Object.keys(obj))\n for (const path of paths) {\n if (keys.has(path)) {\n found[path] = obj[path]\n }\n }\n\n return found\n}\n\n// Array of keys\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: U[], exclude?: E[]): [yes: MaybePick>, no: Omit>]\n// Array of keys or RegExp to test keys against\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial]\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n ) && !exclude?.some(path => path === key)\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\nexport function omit<\n T extends object,\n U extends Extract\n> (obj: T, exclude: U[]): Omit {\n const clone = { ...obj }\n\n exclude.forEach(prop => delete clone[prop])\n\n return clone\n}\n\nexport function only<\n T extends object,\n U extends Extract\n> (obj: T, include: U[]): Pick {\n const clone = {} as T\n\n include.forEach(prop => clone[prop] = obj[prop])\n\n return clone\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nconst bubblingEvents = [\n 'onAfterscriptexecute',\n 'onAnimationcancel',\n 'onAnimationend',\n 'onAnimationiteration',\n 'onAnimationstart',\n 'onAuxclick',\n 'onBeforeinput',\n 'onBeforescriptexecute',\n 'onChange',\n 'onClick',\n 'onCompositionend',\n 'onCompositionstart',\n 'onCompositionupdate',\n 'onContextmenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onFocusin',\n 'onFocusout',\n 'onFullscreenchange',\n 'onFullscreenerror',\n 'onGesturechange',\n 'onGestureend',\n 'onGesturestart',\n 'onGotpointercapture',\n 'onInput',\n 'onKeydown',\n 'onKeypress',\n 'onKeyup',\n 'onLostpointercapture',\n 'onMousedown',\n 'onMousemove',\n 'onMouseout',\n 'onMouseover',\n 'onMouseup',\n 'onMousewheel',\n 'onPaste',\n 'onPointercancel',\n 'onPointerdown',\n 'onPointerenter',\n 'onPointerleave',\n 'onPointermove',\n 'onPointerout',\n 'onPointerover',\n 'onPointerup',\n 'onReset',\n 'onSelect',\n 'onSubmit',\n 'onTouchcancel',\n 'onTouchend',\n 'onTouchmove',\n 'onTouchstart',\n 'onTransitioncancel',\n 'onTransitionend',\n 'onTransitionrun',\n 'onTransitionstart',\n 'onWheel',\n]\n\nconst compositionIgnoreKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowLeft',\n 'Enter',\n 'Escape',\n 'Tab',\n ' ',\n]\n\nexport function isComposingIgnoreKey (e: KeyboardEvent): boolean {\n return e.isComposing && compositionIgnoreKeys.includes(e.key)\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the element inside.\n */\nexport function filterInputAttrs (attrs: Record) {\n const [events, props] = pickWithRest(attrs, [onRE])\n const inputEvents = omit(events, bubblingEvents)\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/])\n Object.assign(rootAttrs, events)\n Object.assign(inputAttrs, inputEvents)\n return [rootAttrs, inputAttrs]\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ntype IfAny = 0 extends (1 & T) ? Y : N;\nexport function wrapInArray (\n v: T | null | undefined\n): T extends readonly any[]\n ? IfAny\n : NonNullable[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v as any : [v]\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function debounce (fn: Function, delay: MaybeRef) {\n let timeoutId = 0 as any\n const wrap = (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), unref(delay))\n }\n wrap.clear = () => {\n clearTimeout(timeoutId)\n }\n wrap.immediate = fn\n return wrap\n}\n\nexport function throttle any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters): void | ReturnType => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function getDecimals (value: number) {\n const trimmedStr = value.toString().trim()\n return trimmedStr.includes('.')\n ? (trimmedStr.length - trimmedStr.indexOf('.') - 1)\n : 0\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function padStart (str: string, length: number, char = '0') {\n return char.repeat(Math.max(0, length - str.length)) + str\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function chunkArray (array: any[], size = 1) {\n return Array.from({ length: Math.ceil(array.length / size) }, (v, i) =>\n array.slice(i * size, i * size + size)\n )\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function mergeDeep (\n source: Record = {},\n target: Record = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport function toKebabCase (str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map()\n\nexport type MaybeRef = T | Ref\n\nexport function findChildrenWithProvide (\n key: InjectionKey | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent!)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer {\n readonly #arr: Array = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion = [T] extends [infer U] ? _NotAUnion : never\ntype _NotAUnion = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed (getter: ComputedGetter>): ToRefs\nexport function destructComputed (getter: ComputedGetter) {\n const refs = reactive({}) as T\n const base = computed(getter)\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key]\n }\n }, { flush: 'sync' })\n return toRefs(refs)\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nexport function eventName (propName: string) {\n return propName[2].toLowerCase() + propName.slice(3)\n}\n\nexport type EventProp void> = F\nexport const EventProp = () => [Function, Array] as PropType>\n\nexport function hasEvent (props: Record, name: string) {\n name = 'on' + capitalize(name)\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`])\n}\n\nexport function callEvent (handler: EventProp | undefined, ...args: T) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n\nexport function focusableChildren (el: Element, filterByTabIndex = true) {\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]']\n .map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`)\n .join(', ')\n return [...el.querySelectorAll(targets)] as HTMLElement[]\n}\n\nexport function getNextElement (elements: HTMLElement[], location?: 'next' | 'prev', condition?: (el: HTMLElement) => boolean) {\n let _el\n let idx = elements.indexOf(document.activeElement as HTMLElement)\n const inc = location === 'next' ? 1 : -1\n do {\n idx += inc\n _el = elements[idx]\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0)\n return _el\n}\n\nexport function focusChild (el: Element, location?: 'next' | 'prev' | 'first' | 'last' | number) {\n const focusable = focusableChildren(el)\n\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus()\n }\n } else if (location === 'first') {\n focusable[0]?.focus()\n } else if (location === 'last') {\n focusable.at(-1)?.focus()\n } else if (typeof location === 'number') {\n focusable[location]?.focus()\n } else {\n const _el = getNextElement(focusable, location)\n if (_el) _el.focus()\n else focusChild(el, location === 'next' ? 'first' : 'last')\n }\n}\n\nexport function isEmpty (val: any): boolean {\n return val === null || val === undefined || (typeof val === 'string' && val.trim() === '')\n}\n\nexport function noop () {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector (el: Element | undefined, selector: string): boolean | null {\n const supportsSelector = IN_BROWSER &&\n typeof CSS !== 'undefined' &&\n typeof CSS.supports !== 'undefined' &&\n CSS.supports(`selector(${selector})`)\n\n if (!supportsSelector) return null\n\n try {\n return !!el && el.matches(selector)\n } catch (err) {\n return null\n }\n}\n\nexport function ensureValidVNode (vnodes: VNodeArrayChildren): VNodeArrayChildren | null {\n return vnodes.some(child => {\n if (!isVNode(child)) return true\n if (child.type === Comment) return false\n return child.type !== Fragment ||\n ensureValidVNode(child.children as VNodeArrayChildren)\n })\n ? vnodes\n : null\n}\n\nexport function defer (timeout: number, cb: () => void) {\n if (!IN_BROWSER || timeout === 0) {\n cb()\n\n return () => {}\n }\n\n const timeoutId = window.setTimeout(cb, timeout)\n\n return () => window.clearTimeout(timeoutId)\n}\n\nexport function eagerComputed (fn: () => T, options?: WatchOptions): Readonly> {\n const result = shallowRef()\n\n watchEffect(() => {\n result.value = fn()\n }, {\n flush: 'sync',\n ...options,\n })\n\n return readonly(result)\n}\n\nexport function isClickInsideElement (event: MouseEvent, targetDiv: HTMLElement) {\n const mouseX = event.clientX\n const mouseY = event.clientY\n\n const divRect = targetDiv.getBoundingClientRect()\n const divLeft = divRect.left\n const divTop = divRect.top\n const divRight = divRect.right\n const divBottom = divRect.bottom\n\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom\n}\n\nexport type TemplateRef = {\n (target: Element | ComponentPublicInstance | null): void\n value: HTMLElement | ComponentPublicInstance | null | undefined\n readonly el: HTMLElement | undefined\n}\nexport function templateRef () {\n const el = shallowRef()\n const fn = (target: HTMLElement | ComponentPublicInstance | null) => {\n el.value = target\n }\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val,\n })\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value),\n })\n\n return fn as TemplateRef\n}\n\nexport function checkPrintable (e: KeyboardEvent) {\n const isPrintableChar = e.key.length === 1\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey\n return isPrintableChar && noModifier\n}\n","export const IN_BROWSER = typeof window !== 'undefined';\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;\n//# sourceMappingURL=globals.mjs.map","export const IN_BROWSER = typeof window !== 'undefined'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window\n","// Utilities\nimport { Box } from \"./box.mjs\";\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms(el) {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n const tx = style.transform;\n if (tx) {\n let ta, sx, sy, dx, dy;\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[5];\n dx = +ta[12];\n dy = +ta[13];\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[3];\n dx = +ta[4];\n dy = +ta[5];\n } else {\n return new Box(rect);\n }\n const to = style.transformOrigin;\n const x = rect.x - dx - (1 - sx) * parseFloat(to);\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1));\n const w = sx ? rect.width / sx : el.offsetWidth + 1;\n const h = sy ? rect.height / sy : el.offsetHeight + 1;\n return new Box({\n x,\n y,\n width: w,\n height: h\n });\n } else {\n return new Box(rect);\n }\n}\nexport function animate(el, keyframes, options) {\n if (typeof el.animate === 'undefined') return {\n finished: Promise.resolve()\n };\n let animation;\n try {\n animation = el.animate(keyframes, options);\n } catch (err) {\n return {\n finished: Promise.resolve()\n };\n }\n if (typeof animation.finished === 'undefined') {\n animation.finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation);\n };\n });\n }\n return animation;\n}\n//# sourceMappingURL=animation.mjs.map","// Utilities\nimport { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n","export class Box {\n constructor(_ref) {\n let {\n x,\n y,\n width,\n height\n } = _ref;\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n get top() {\n return this.y;\n }\n get bottom() {\n return this.y + this.height;\n }\n get left() {\n return this.x;\n }\n get right() {\n return this.x + this.width;\n }\n}\nexport function getOverflow(a, b) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right)\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom)\n }\n };\n}\nexport function getTargetBox(target) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n });\n } else {\n return target.getBoundingClientRect();\n }\n}\n//# sourceMappingURL=box.mjs.map","export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n\nexport function getTargetBox (target: HTMLElement | [x: number, y: number]) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0,\n })\n } else {\n return target.getBoundingClientRect()\n }\n}\n","// Utilities\nimport { eventName, isOn } from \"./helpers.mjs\";\nconst handlers = new WeakMap();\nexport function bindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k]);\n const _handler = handler || new Set();\n _handler.add([name, props[k]]);\n if (!handlers.has(el)) handlers.set(el, _handler);\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k);\n } else {\n el.setAttribute(k, props[k]);\n }\n }\n });\n}\nexport function unbindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else {\n el.removeAttribute(k);\n }\n });\n}\n//# sourceMappingURL=bindProps.mjs.map","// Utilities\nimport { eventName, isOn } from '@/util/helpers'\n\nconst handlers = new WeakMap void]>>()\n\nexport function bindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k])\n const _handler = handler || new Set()\n _handler.add([name, props[k]])\n if (!handlers.has(el)) handlers.set(el, _handler)\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, props[k])\n }\n }\n })\n}\n\nexport function unbindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else {\n el.removeAttribute(k)\n }\n })\n}\n","// Utilities\nimport { APCAcontrast } from \"./color/APCA.mjs\";\nimport { consoleWarn } from \"./console.mjs\";\nimport { chunk, has, padEnd } from \"./helpers.mjs\";\nimport * as CIELAB from \"./color/transformCIELAB.mjs\";\nimport * as sRGB from \"./color/transformSRGB.mjs\"; // Types\nexport function isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nexport function isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n rgba: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n hsl: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsla: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsv: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n }),\n hsva: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n })\n};\nexport function parseColor(color) {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) {\n // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: color & 0xFF\n };\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const {\n groups\n } = color.match(cssColorRe);\n const {\n fn,\n values\n } = groups;\n const realValues = values.split(/,\\s*/).map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('');\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color;\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);\n}\nexport function RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nexport function classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);\n let hexColor = '';\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const f = n => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255));\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n a\n };\n}\nexport function HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV(rgba) {\n if (!rgba) return {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return {\n h: hsv[0],\n s: hsv[1],\n v: hsv[2],\n a: rgba.a\n };\n}\nexport function HSVtoHSL(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h,\n s: sprime,\n l,\n a\n };\n}\nexport function HSLtoHSV(hsl) {\n const {\n h,\n s,\n l,\n a\n } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return {\n h,\n s: sprime,\n v,\n a\n };\n}\nexport function RGBtoCSS(_ref) {\n let {\n r,\n g,\n b,\n a\n } = _ref;\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nexport function HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase();\n}\nexport function RGBtoHex(_ref2) {\n let {\n r,\n g,\n b,\n a\n } = _ref2;\n return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;\n}\nexport function HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));\n a = a === undefined ? a : a / 255;\n return {\n r,\n g,\n b,\n a\n };\n}\nexport function HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nexport function HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nexport function parseHex(hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, 'F');\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('');\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F');\n }\n return hex;\n}\nexport function parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',');\n });\n}\nexport function lighten(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\nexport function darken(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma(color) {\n const rgb = parseColor(color);\n return sRGB.toXYZ(rgb)[1];\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nexport function getForeground(color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';\n}\n//# sourceMappingURL=colorUtils.mjs.map","// Utilities\nimport { APCAcontrast } from './color/APCA'\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function isParsableColor (color: string): boolean {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color)\n}\n\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record>,\n currentTheme: Partial,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record>,\n currentTheme: Partial,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n\nexport function getForeground (color: Color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)))\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)))\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n}\n","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4;\nconst Rco = 0.2126729; // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522; // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750; // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03; // Level that triggers the soft black clamp\nconst blkClmp = 1.45; // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005; // Lint trap\nconst scaleBoW = 1.25; // Scaling for dark text on light\nconst scaleWoB = 1.25; // Scaling for light text on dark\nconst loConThresh = 0.078; // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282; // = 1/0.078,\nconst loConOffset = 0.06; // The simple offset\nconst loClip = 0.001; // Output clip (lint trap #2)\n\nexport function APCAcontrast(text, background) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0;\n\n // SAPC CONTRAST\n\n let outputContrast; // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast = SAPC < loClip ? 0.0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\n//# sourceMappingURL=APCA.mjs.map","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\nimport type { RGB } from '@/util'\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: RGB, background: RGB) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC\n const Gtxt = (text.g / 255) ** mainTRC\n const Btxt = (text.b / 255) ** mainTRC\n\n const Rbg = (background.r / 255) ** mainTRC\n const Gbg = (background.g / 255) ** mainTRC\n const Bbg = (background.b / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue';\nexport function consoleWarn(message) {\n warn(`Vuetify: ${message}`);\n}\nexport function consoleError(message) {\n warn(`Vuetify error: ${message}`);\n}\nexport function deprecate(original, replacement) {\n replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);\n}\nexport function breaking(original, replacement) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed(original) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n//# sourceMappingURL=console.mjs.map","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue'\n\nexport function consoleWarn (message: string): void {\n warn(`Vuetify: ${message}`)\n}\n\nexport function consoleError (message: string): void {\n warn(`Vuetify error: ${message}`)\n}\n\nexport function deprecate (original: string, replacement: string | string[]) {\n replacement = Array.isArray(replacement)\n ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'`\n : `'${replacement}'`\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`)\n}\nexport function breaking (original: string, replacement: string) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed (original: string) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n","// Types\n\nconst delta = 0.20689655172413793; // 6÷29\n\nconst cielabForwardTransform = t => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29;\nconst cielabReverseTransform = t => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29);\nexport function fromXYZ(xyz) {\n const transform = cielabForwardTransform;\n const transformedY = transform(xyz[1]);\n return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))];\n}\nexport function toXYZ(lab) {\n const transform = cielabReverseTransform;\n const Ln = (lab[0] + 16) / 116;\n return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883];\n}\n//# sourceMappingURL=transformCIELAB.mjs.map","// Types\nimport type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { clamp } from \"../helpers.mjs\"; // Types\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]];\n\n// Forward gamma adjust\nconst srgbForwardTransform = C => C <= 0.0031308 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055;\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]];\n\n// Reverse gamma adjust\nconst srgbReverseTransform = C => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4;\nexport function fromXYZ(xyz) {\n const rgb = Array(3);\n const transform = srgbForwardTransform;\n const matrix = srgbForwardMatrix;\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);\n }\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n}\nexport function toXYZ(_ref) {\n let {\n r,\n g,\n b\n } = _ref;\n const xyz = [0, 0, 0];\n const transform = srgbReverseTransform;\n const matrix = srgbReverseMatrix;\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255);\n g = transform(g / 255);\n b = transform(b / 255);\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;\n }\n return xyz;\n}\n//# sourceMappingURL=transformSRGB.mjs.map","// Utilities\nimport { clamp } from '@/util/helpers'\n\n// Types\nimport type { RGB, XYZ } from '../colorUtils'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): RGB {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n }\n}\n\nexport function toXYZ ({ r, g, b }: RGB): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255)\n g = transform(g / 255)\n b = transform(b / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","// Composables\nimport { makeComponentProps } from \"../composables/component.mjs\"; // Utilities\nimport { camelize, capitalize, h } from 'vue';\nimport { genericComponent } from \"./defineComponent.mjs\";\nexport function createSimpleFunctional(klass) {\n let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';\n let name = arguments.length > 2 ? arguments[2] : undefined;\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n props: {\n tag: {\n type: String,\n default: tag\n },\n ...makeComponentProps()\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style\n }, slots.default?.());\n };\n }\n });\n}\n//# sourceMappingURL=createSimpleFunctional.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { camelize, capitalize, h } from 'vue'\nimport { genericComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style,\n }, slots.default?.())\n }\n },\n })\n}\n","// Utilities\nimport { propsFactory } from \"../util/propsFactory.mjs\"; // Types\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object],\n style: {\n type: [String, Array, Object],\n default: null\n }\n}, 'component');\n//# sourceMappingURL=component.mjs.map","// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object] as PropType,\n style: {\n type: [String, Array, Object] as PropType,\n default: null,\n },\n}, 'component')\n","// Types\n// eslint-disable-line vue/prefer-import-from-vue\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory(props, source) {\n return defaults => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : {\n type: props[prop]\n };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\n\n/**\n * Like `Partial` but doesn't care what the value is\n */\n\n// Copied from Vue\n//# sourceMappingURL=propsFactory.mjs.map","// Types\nimport type { IfAny } from '@vue/shared' // eslint-disable-line vue/prefer-import-from-vue\nimport type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source: string) {\n return = {}>(\n defaults?: Defaults\n ): AppendDefault => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source && !obj[prop].source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record\n ? Omit & {\n type: PropType>\n default: MergeDefault\n }\n : {\n type: PropType>\n default: MergeDefault\n }\n}\n\ntype MergeTypeDefault> = unknown extends D\n ? P\n : (P | D)\ntype MergeDefault> = unknown extends D\n ? P\n : (NonNullable

    | D)\n\n/**\n * Like `Partial` but doesn't care what the value is\n */\ntype PartialKeys = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n ? any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType\n : InferPropType\n : [T] extends [Prop]\n ? unknown extends V\n ? IfAny\n : V\n : T\n","// Composables\nimport { injectDefaults, internalUseDefaults } from \"../composables/defaults.mjs\"; // Utilities\nimport { defineComponent as _defineComponent // eslint-disable-line no-restricted-imports\n} from 'vue';\nimport { consoleWarn } from \"./console.mjs\";\nimport { pick } from \"./helpers.mjs\";\nimport { propsFactory } from \"./propsFactory.mjs\"; // Types\n// No props\n// Object Props\n// Implementation\nexport function defineComponent(options) {\n options._setup = options._setup ?? options.setup;\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value');\n return options;\n }\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)();\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style');\n options.filterProps = function filterProps(props) {\n return pick(props, propKeys);\n };\n options.props._as = String;\n options.setup = function setup(props, ctx) {\n const defaults = injectDefaults();\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, props._as ?? options.name, defaults);\n const setupBindings = options._setup(_props, ctx);\n provideSubDefaults();\n return setupBindings;\n };\n }\n return options;\n}\n\n// No argument - simple default slot\n\n// Generic constructor argument - generic props and slots\n\n// Slots argument - simple slots\n\n// Implementation\nexport function genericComponent() {\n let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options);\n}\nexport function defineFunctionalComponent(props, render) {\n render.props = props;\n return render;\n}\n\n// Adds a filterProps method to the component options\n\n// https://github.com/vuejs/core/pull/10557\n\n// not a vue Component\n//# sourceMappingURL=defineComponent.mjs.map","// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n Component,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComponentPublicInstance,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent & FilterPropsOptions\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners = { [K in T]: K extends `on${infer U}` ? Uncapitalize : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record\ntype Slot = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots = {\n [K in keyof T]: Slot\n}\ntype MakeSlots = {\n [K in keyof T]: VueSlot\n}\n\nexport type GenericProps> = {\n $props: Props & SlotsToProps\n $slots: MakeSlots\n}\n\ntype DefineComponentWithGenericProps, slots: RawSlots) => {\n $props?: Record\n})> = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters extends [any, infer SS extends RawSlots | undefined] ? Exclude : {},\n Slots extends RawSlots = ConstructorParameters[1],\n S extends SlotsType = SlotsType>>,\n III = InstanceType,\n P = III extends Record<'$props', any>\n ? Omit\n : PropsOptions,\n EEE extends EmitsOptions = E extends any[]\n ? E\n : III extends Record<'$props', any>\n ? Omit>\n : E,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n EEE,\n EE,\n PublicProps,\n ExtractPropTypes

    & ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes

    ,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps\n) => Base & T & FilterPropsOptions\n\ntype DefineComponentWithSlots = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType>>,\n>(\n options: ComponentOptionsWithObjectProps\n) => DefineComponent<\n ExtractPropTypes & SlotsToProps,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes & SlotsToProps & ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes,\n S\n> & FilterPropsOptions\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent, slots: any) => {\n $props?: Record\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes,\n Props = Readonly>,\n> (props: PropsOptions, render: T): FunctionalComponent & Omit> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps = T extends string[]\n ? {\n [K in string & `on${Capitalize}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize}`]?: K extends `on${infer C}`\n ? T[Uncapitalize] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions, Props = ExtractPropTypes> {\n filterProps<\n T extends Partial,\n U extends Exclude>\n > (props: T): Partial>\n}\n\n// https://github.com/vuejs/core/pull/10557\nexport type ComponentInstance = T extends { new (): ComponentPublicInstance }\n ? InstanceType\n : T extends FunctionalComponent\n ? ComponentPublicInstance>\n : T extends Component<\n infer Props,\n infer RawBindings,\n infer D,\n infer C,\n infer M\n >\n ? // NOTE we override Props/RawBindings/D to make sure is not `unknown`\n ComponentPublicInstance<\n unknown extends Props ? {} : Props,\n unknown extends RawBindings ? {} : RawBindings,\n unknown extends D ? {} : D,\n C,\n M\n >\n : never // not a vue Component\n\ntype ShortEmitsToObject = E extends Record ? {\n [K in keyof E]: (...args: E[K]) => any;\n} : E;\n","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/getCurrentInstance.mjs\";\nimport { mergeDeep, toKebabCase } from \"../util/helpers.mjs\";\nimport { injectSelf } from \"../util/injectSelf.mjs\"; // Types\nexport const DefaultsSymbol = Symbol.for('vuetify:defaults');\nexport function createDefaults(options) {\n return ref(options);\n}\nexport function injectDefaults() {\n const defaults = inject(DefaultsSymbol);\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');\n return defaults;\n}\nexport function provideDefaults(defaults, options) {\n const injectedDefaults = injectDefaults();\n const providedDefaults = ref(defaults);\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled);\n if (disabled) return injectedDefaults.value;\n const scoped = unref(options?.scoped);\n const reset = unref(options?.reset);\n const root = unref(options?.root);\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;\n let properties = mergeDeep(providedDefaults.value, {\n prev: injectedDefaults.value\n });\n if (scoped) return properties;\n if (reset || root) {\n const len = Number(reset || Infinity);\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break;\n }\n properties = properties.prev;\n }\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, {\n prev: properties\n }), properties[root]);\n }\n return properties;\n }\n return properties.prev ? mergeDeep(properties.prev, properties) : properties;\n });\n provide(DefaultsSymbol, newDefaults);\n return newDefaults;\n}\nfunction propIsDefined(vnode, prop) {\n return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';\n}\nexport function internalUseDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();\n const vm = getCurrentInstance('useDefaults');\n name = name ?? vm.type.name ?? vm.type.__name;\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name');\n }\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null);\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;\n }\n return propValue;\n }\n });\n const _subcomponentDefaults = shallowRef();\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(_ref => {\n let [key] = _ref;\n return key.startsWith(key[0].toUpperCase());\n });\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n function provideSubDefaults() {\n const injected = injectSelf(DefaultsSymbol, vm);\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;\n }));\n }\n return {\n props: _props,\n provideSubDefaults\n };\n}\nexport function useDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, name);\n provideSubDefaults();\n return _props;\n}\n//# sourceMappingURL=defaults.mjs.map","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record\n global?: Record\n}\n\nexport type DefaultsOptions = Partial\n\nexport const DefaultsSymbol: InjectionKey> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef,\n options?: {\n disabled?: MaybeRef\n reset?: MaybeRef\n root?: MaybeRef\n scoped?: MaybeRef\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop]\n : propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults () {\n const injected = injectSelf(DefaultsSymbol, vm)\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(\n injected?.value ?? {},\n _subcomponentDefaults.value\n ) : injected?.value\n }))\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record\nexport function useDefaults (\n props: Record = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue';\nimport { toKebabCase } from \"./helpers.mjs\"; // Types\nexport function getCurrentInstance(name, message) {\n const vm = _getCurrentInstance();\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);\n }\n return vm;\n}\nexport function getCurrentInstanceName() {\n let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';\n const vm = getCurrentInstance(name).type;\n return toKebabCase(vm?.aliasName || vm?.name);\n}\nlet _uid = 0;\nlet _map = new WeakMap();\nexport function getUid() {\n const vm = getCurrentInstance('getUid');\n if (_map.has(vm)) return _map.get(vm);else {\n const uid = _uid++;\n _map.set(vm, uid);\n return uid;\n }\n}\ngetUid.reset = () => {\n _uid = 0;\n _map = new WeakMap();\n};\n//# sourceMappingURL=getCurrentInstance.mjs.map","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\n// Types\nimport type { ComponentInternalInstance } from 'vue'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n const vm = getCurrentInstance(name).type\n\n return toKebabCase(vm?.aliasName || vm?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function injectSelf(key) {\n let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');\n const {\n provides\n } = vm;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n return undefined;\n}\n//# sourceMappingURL=injectSelf.mjs.map","// Utilities\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\n\n// Types\nimport type { ComponentInternalInstance, InjectionKey } from 'vue'\n\nexport function injectSelf(key: InjectionKey | string, vm?: ComponentInternalInstance): T | undefined\nexport function injectSelf (key: InjectionKey | string, vm = getCurrentInstance('injectSelf')) {\n const { provides } = vm\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n return undefined\n}\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot(node) {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode;\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null;\n return document;\n }\n const root = node.getRootNode();\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({\n composed: true\n }) !== document) return null;\n return root;\n}\n//# sourceMappingURL=dom.mjs.map","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n//# sourceMappingURL=easing.mjs.map","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)'\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving\n","// Utilities\nimport { isOn } from \"./helpers.mjs\";\nexport function getPrefixedEventHandlers(attrs, suffix, getData) {\n return Object.keys(attrs).filter(key => isOn(key) && key.endsWith(suffix)).reduce((acc, key) => {\n acc[key.slice(0, -suffix.length)] = event => attrs[key](event, getData(event));\n return acc;\n }, {});\n}\n//# sourceMappingURL=events.mjs.map","// Utilities\nimport { isOn } from '@/util/helpers'\n\ntype EventHandler = (event: Event) => any\n\nexport function getPrefixedEventHandlers (\n attrs: Record,\n suffix: T,\n getData: EventHandler\n): Record<`${string}${T}`, EventHandler> {\n return Object.keys(attrs)\n .filter(key => isOn(key) && key.endsWith(suffix))\n .reduce((acc: any, key) => {\n acc[key.slice(0, -suffix.length)] = (event: Event) => attrs[key](event, getData(event))\n return acc\n }, {} as Record<`${string}${T}`, EventHandler>)\n}\n","export function getScrollParent(el) {\n let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el;\n el = el.parentElement;\n }\n return document.scrollingElement;\n}\nexport function getScrollParents(el, stopAt) {\n const elements = [];\n if (stopAt && el && !stopAt.contains(el)) return elements;\n while (el) {\n if (hasScrollbar(el)) elements.push(el);\n if (el === stopAt) break;\n el = el.parentElement;\n }\n return elements;\n}\nexport function hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;\n}\nfunction isPotentiallyScrollable(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return ['scroll', 'auto'].includes(style.overflowY);\n}\n//# sourceMappingURL=getScrollParent.mjs.map","export function getScrollParent (el?: HTMLElement, includeHidden = false) {\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el\n el = el.parentElement!\n }\n\n return document.scrollingElement as HTMLElement\n}\n\nexport function getScrollParents (el?: Element | null, stopAt?: Element | null) {\n const elements: HTMLElement[] = []\n\n if (stopAt && el && !stopAt.contains(el)) return elements\n\n while (el) {\n if (hasScrollbar(el)) elements.push(el as HTMLElement)\n if (el === stopAt) break\n el = el.parentElement!\n }\n\n return elements\n}\n\nexport function hasScrollbar (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return style.overflowY === 'scroll' || (style.overflowY === 'auto' && el.scrollHeight > el.clientHeight)\n}\n\nfunction isPotentiallyScrollable (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['scroll', 'auto'].includes(style.overflowY)\n}\n","export function isFixedPosition(el) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true;\n }\n el = el.offsetParent;\n }\n return false;\n}\n//# sourceMappingURL=isFixedPosition.mjs.map","export function isFixedPosition (el?: HTMLElement) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true\n }\n el = el.offsetParent as HTMLElement\n }\n return false\n}\n","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function useRender(render) {\n const vm = getCurrentInstance('useRender');\n vm.render = render;\n}\n//# sourceMappingURL=useRender.mjs.map","// Utilities\nimport { getCurrentInstance } from './getCurrentInstance'\n\n// Types\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance('useRender') as any\n vm.render = render\n}\n","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel'\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...'\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.'\n },\n sortBy: 'Sort by'\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}'\n },\n dateRangeInput: {\n divider: 'to'\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates'\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date'\n }\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}'\n }\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today'\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}'\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)'\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time'\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page'\n }\n },\n stepper: {\n next: 'Next',\n prev: 'Previous'\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}'\n }\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more'\n }\n};\n//# sourceMappingURL=en.mjs.map","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel',\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n dateRangeInput: {\n divider: 'to',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates',\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date',\n },\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time',\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page',\n },\n },\n stepper: {\n next: 'Next',\n prev: 'Previous',\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more',\n },\n}\n","// Utilities\nimport { createRange, padStart } from \"../../../util/index.mjs\"; // Types\nconst firstDay = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0\n};\nfunction getWeekArray(date, locale, firstDayOfWeek) {\n const weeks = [];\n let currentWeek = [];\n const firstDayOfMonth = startOfMonth(date);\n const lastDayOfMonth = endOfMonth(date);\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\n currentWeek.push(adjacentDay);\n }\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i);\n\n // Add the day to the current week\n currentWeek.push(day);\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() + i);\n currentWeek.push(adjacentDay);\n }\n if (currentWeek.length > 0) {\n weeks.push(currentWeek);\n }\n return weeks;\n}\nfunction startOfWeek(date, locale, firstDayOfWeek) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n const d = new Date(date);\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1);\n }\n return d;\n}\nfunction endOfWeek(date, locale) {\n const d = new Date(date);\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1);\n }\n return d;\n}\nfunction startOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\nfunction endOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\nfunction parseLocalDate(value) {\n const parts = value.split('-').map(Number);\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2]);\n}\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\nfunction date(value) {\n if (value == null) return new Date();\n if (value instanceof Date) return value;\n if (typeof value === 'string') {\n let parsed;\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value);\n } else {\n parsed = Date.parse(value);\n }\n if (!isNaN(parsed)) return new Date(parsed);\n }\n return null;\n}\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2);\nfunction getWeekdays(locale, firstDayOfWeek) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000);\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);\n return new Intl.DateTimeFormat(locale, {\n weekday: 'narrow'\n }).format(weekday);\n });\n}\nfunction format(value, formatString, locale, formats) {\n const newDate = date(value) ?? new Date();\n const customFormat = formats?.[formatString];\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale);\n }\n let options = {};\n switch (formatString) {\n case 'fullDate':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'fullDateWithWeekday':\n options = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'normalDate':\n const day = newDate.getDate();\n const month = new Intl.DateTimeFormat(locale, {\n month: 'long'\n }).format(newDate);\n return `${day} ${month}`;\n case 'normalDateWithWeekday':\n options = {\n weekday: 'short',\n day: 'numeric',\n month: 'short'\n };\n break;\n case 'shortDate':\n options = {\n month: 'short',\n day: 'numeric'\n };\n break;\n case 'year':\n options = {\n year: 'numeric'\n };\n break;\n case 'month':\n options = {\n month: 'long'\n };\n break;\n case 'monthShort':\n options = {\n month: 'short'\n };\n break;\n case 'monthAndYear':\n options = {\n month: 'long',\n year: 'numeric'\n };\n break;\n case 'monthAndDate':\n options = {\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'weekday':\n options = {\n weekday: 'long'\n };\n break;\n case 'weekdayShort':\n options = {\n weekday: 'short'\n };\n break;\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate());\n case 'hours12h':\n options = {\n hour: 'numeric',\n hour12: true\n };\n break;\n case 'hours24h':\n options = {\n hour: 'numeric',\n hour12: false\n };\n break;\n case 'minutes':\n options = {\n minute: 'numeric'\n };\n break;\n case 'seconds':\n options = {\n second: 'numeric'\n };\n break;\n case 'fullTime':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime12h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime24h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'fullDateTime':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime12h':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime24h':\n options = {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDate':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n };\n break;\n case 'keyboardDateTime':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDateTime12h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: true\n };\n break;\n case 'keyboardDateTime24h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n break;\n default:\n options = customFormat ?? {\n timeZone: 'UTC',\n timeZoneName: 'short'\n };\n }\n return new Intl.DateTimeFormat(locale, options).format(newDate);\n}\nfunction toISO(adapter, value) {\n const date = adapter.toJsDate(value);\n const year = date.getFullYear();\n const month = padStart(String(date.getMonth() + 1), 2, '0');\n const day = padStart(String(date.getDate()), 2, '0');\n return `${year}-${month}-${day}`;\n}\nfunction parseISO(value) {\n const [year, month, day] = value.split('-').map(Number);\n return new Date(year, month - 1, day);\n}\nfunction addMinutes(date, amount) {\n const d = new Date(date);\n d.setMinutes(d.getMinutes() + amount);\n return d;\n}\nfunction addHours(date, amount) {\n const d = new Date(date);\n d.setHours(d.getHours() + amount);\n return d;\n}\nfunction addDays(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount);\n return d;\n}\nfunction addWeeks(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount * 7);\n return d;\n}\nfunction addMonths(date, amount) {\n const d = new Date(date);\n d.setDate(1);\n d.setMonth(d.getMonth() + amount);\n return d;\n}\nfunction getYear(date) {\n return date.getFullYear();\n}\nfunction getMonth(date) {\n return date.getMonth();\n}\nfunction getDate(date) {\n return date.getDate();\n}\nfunction getNextMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\n}\nfunction getPreviousMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1);\n}\nfunction getHours(date) {\n return date.getHours();\n}\nfunction getMinutes(date) {\n return date.getMinutes();\n}\nfunction startOfYear(date) {\n return new Date(date.getFullYear(), 0, 1);\n}\nfunction endOfYear(date) {\n return new Date(date.getFullYear(), 11, 31);\n}\nfunction isWithinRange(date, range) {\n return isAfter(date, range[0]) && isBefore(date, range[1]);\n}\nfunction isValid(date) {\n const d = new Date(date);\n return d instanceof Date && !isNaN(d.getTime());\n}\nfunction isAfter(date, comparing) {\n return date.getTime() > comparing.getTime();\n}\nfunction isAfterDay(date, comparing) {\n return isAfter(startOfDay(date), startOfDay(comparing));\n}\nfunction isBefore(date, comparing) {\n return date.getTime() < comparing.getTime();\n}\nfunction isEqual(date, comparing) {\n return date.getTime() === comparing.getTime();\n}\nfunction isSameDay(date, comparing) {\n return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameMonth(date, comparing) {\n return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameYear(date, comparing) {\n return date.getFullYear() === comparing.getFullYear();\n}\nfunction getDiff(date, comparing, unit) {\n const d = new Date(date);\n const c = new Date(comparing);\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear();\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000);\n default:\n {\n return d.getTime() - c.getTime();\n }\n }\n}\nfunction setHours(date, count) {\n const d = new Date(date);\n d.setHours(count);\n return d;\n}\nfunction setMinutes(date, count) {\n const d = new Date(date);\n d.setMinutes(count);\n return d;\n}\nfunction setMonth(date, count) {\n const d = new Date(date);\n d.setMonth(count);\n return d;\n}\nfunction setDate(date, day) {\n const d = new Date(date);\n d.setDate(day);\n return d;\n}\nfunction setYear(date, year) {\n const d = new Date(date);\n d.setFullYear(year);\n return d;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n}\nfunction endOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n}\nexport class VuetifyDateAdapter {\n constructor(options) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n date(value) {\n return date(value);\n }\n toJsDate(date) {\n return date;\n }\n toISO(date) {\n return toISO(this, date);\n }\n parseISO(date) {\n return parseISO(date);\n }\n addMinutes(date, amount) {\n return addMinutes(date, amount);\n }\n addHours(date, amount) {\n return addHours(date, amount);\n }\n addDays(date, amount) {\n return addDays(date, amount);\n }\n addWeeks(date, amount) {\n return addWeeks(date, amount);\n }\n addMonths(date, amount) {\n return addMonths(date, amount);\n }\n getWeekArray(date, firstDayOfWeek) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n startOfWeek(date, firstDayOfWeek) {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n endOfWeek(date) {\n return endOfWeek(date, this.locale);\n }\n startOfMonth(date) {\n return startOfMonth(date);\n }\n endOfMonth(date) {\n return endOfMonth(date);\n }\n format(date, formatString) {\n return format(date, formatString, this.locale, this.formats);\n }\n isEqual(date, comparing) {\n return isEqual(date, comparing);\n }\n isValid(date) {\n return isValid(date);\n }\n isWithinRange(date, range) {\n return isWithinRange(date, range);\n }\n isAfter(date, comparing) {\n return isAfter(date, comparing);\n }\n isAfterDay(date, comparing) {\n return isAfterDay(date, comparing);\n }\n isBefore(date, comparing) {\n return !isAfter(date, comparing) && !isEqual(date, comparing);\n }\n isSameDay(date, comparing) {\n return isSameDay(date, comparing);\n }\n isSameMonth(date, comparing) {\n return isSameMonth(date, comparing);\n }\n isSameYear(date, comparing) {\n return isSameYear(date, comparing);\n }\n setMinutes(date, count) {\n return setMinutes(date, count);\n }\n setHours(date, count) {\n return setHours(date, count);\n }\n setMonth(date, count) {\n return setMonth(date, count);\n }\n setDate(date, day) {\n return setDate(date, day);\n }\n setYear(date, year) {\n return setYear(date, year);\n }\n getDiff(date, comparing, unit) {\n return getDiff(date, comparing, unit);\n }\n getWeekdays(firstDayOfWeek) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);\n }\n getYear(date) {\n return getYear(date);\n }\n getMonth(date) {\n return getMonth(date);\n }\n getDate(date) {\n return getDate(date);\n }\n getNextMonth(date) {\n return getNextMonth(date);\n }\n getPreviousMonth(date) {\n return getPreviousMonth(date);\n }\n getHours(date) {\n return getHours(date);\n }\n getMinutes(date) {\n return getMinutes(date);\n }\n startOfDay(date) {\n return startOfDay(date);\n }\n endOfDay(date) {\n return endOfDay(date);\n }\n startOfYear(date) {\n return startOfYear(date);\n }\n endOfYear(date) {\n return endOfYear(date);\n }\n}\n//# sourceMappingURL=vuetify.mjs.map","// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nconst firstDay: Record = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0,\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7\n\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i))\n currentWeek.push(adjacentDay)\n }\n\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i)\n\n // Add the day to the current week\n currentWeek.push(day)\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek)\n currentWeek = []\n }\n }\n\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() + i)\n currentWeek.push(adjacentDay)\n }\n\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\n const d = new Date(date)\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1)\n }\n return d\n}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\n const parts = value.split('-').map(Number)\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2])\n}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000)\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i)\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter, value: Date) {\n const date = adapter.toJsDate(value)\n const year = date.getFullYear()\n const month = padStart(String(date.getMonth() + 1), 2, '0')\n const day = padStart(String(date.getDate()), 2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear()\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4)\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7))\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60))\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60))\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000)\n default: {\n return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter {\n locale: string\n formats?: Record\n\n constructor (options: { locale: string, formats?: Record }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue';\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from \"../util/index.mjs\";\nimport { IN_BROWSER, SUPPORTS_TOUCH } from \"../util/globals.mjs\"; // Types\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs\n\nexport const DisplaySymbol = Symbol.for('vuetify:display');\nconst defaultDisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n }\n};\nconst parseDisplayOptions = function () {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;\n return mergeDeep(defaultDisplayOptions, options);\n};\nfunction getClientWidth(ssr) {\n return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;\n}\nfunction getClientHeight(ssr) {\n return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;\n}\nfunction getPlatform(ssr) {\n const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';\n function match(regexp) {\n return Boolean(userAgent.match(regexp));\n }\n const android = match(/android/i);\n const ios = match(/iphone|ipad|ipod/i);\n const cordova = match(/cordova/i);\n const electron = match(/electron/i);\n const chrome = match(/chrome/i);\n const edge = match(/edge/i);\n const firefox = match(/firefox/i);\n const opera = match(/opera/i);\n const win = match(/win/i);\n const mac = match(/mac/i);\n const linux = match(/linux/i);\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr'\n };\n}\nexport function createDisplay(options, ssr) {\n const {\n thresholds,\n mobileBreakpoint\n } = parseDisplayOptions(options);\n const height = shallowRef(getClientHeight(ssr));\n const platform = shallowRef(getPlatform(ssr));\n const state = reactive({});\n const width = shallowRef(getClientWidth(ssr));\n function updateSize() {\n height.value = getClientHeight();\n width.value = getClientWidth();\n }\n function update() {\n updateSize();\n platform.value = getPlatform();\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm;\n const sm = width.value < thresholds.md && !xs;\n const md = width.value < thresholds.lg && !(sm || xs);\n const lg = width.value < thresholds.xl && !(md || sm || xs);\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);\n const xxl = width.value >= thresholds.xxl;\n const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];\n const mobile = width.value < breakpointValue;\n state.xs = xs;\n state.sm = sm;\n state.md = md;\n state.lg = lg;\n state.xl = xl;\n state.xxl = xxl;\n state.smAndUp = !xs;\n state.mdAndUp = !(xs || sm);\n state.lgAndUp = !(xs || sm || md);\n state.xlAndUp = !(xs || sm || md || lg);\n state.smAndDown = !(md || lg || xl || xxl);\n state.mdAndDown = !(lg || xl || xxl);\n state.lgAndDown = !(xl || xxl);\n state.xlAndDown = !xxl;\n state.name = name;\n state.height = height.value;\n state.width = width.value;\n state.mobile = mobile;\n state.mobileBreakpoint = mobileBreakpoint;\n state.platform = platform.value;\n state.thresholds = thresholds;\n });\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, {\n passive: true\n });\n }\n return {\n ...toRefs(state),\n update,\n ssr: !!ssr\n };\n}\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean,\n default: false\n },\n mobileBreakpoint: [Number, String]\n}, 'display');\nexport function useDisplay() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const display = inject(DisplaySymbol);\n if (!display) throw new Error('Could not find Vuetify display injection');\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile;\n if (!props.mobileBreakpoint) return display.mobile.value;\n const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];\n return display.width.value < breakpointValue;\n });\n const displayClasses = computed(() => {\n if (!name) return {};\n return {\n [`${name}--mobile`]: mobile.value\n };\n });\n return {\n ...display,\n displayClasses,\n mobile\n };\n}\n//# sourceMappingURL=display.mjs.map","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from '@/util'\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayProps {\n mobile?: boolean | null\n mobileBreakpoint?: number | DisplayBreakpoint\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport type SSROptions = boolean | {\n clientWidth: number\n clientHeight?: number\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref\n sm: Ref\n md: Ref\n lg: Ref\n xl: Ref\n xxl: Ref\n smAndUp: Ref\n mdAndUp: Ref\n lgAndUp: Ref\n xlAndUp: Ref\n smAndDown: Ref\n mdAndDown: Ref\n lgAndDown: Ref\n xlAndDown: Ref\n name: Ref\n height: Ref\n width: Ref\n mobile: Ref\n mobileBreakpoint: Ref\n platform: Ref\n thresholds: Ref\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerWidth\n : (typeof ssr === 'object' && ssr.clientWidth) || 0\n}\n\nfunction getClientHeight (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerHeight\n : (typeof ssr === 'object' && ssr.clientHeight) || 0\n}\n\nfunction getPlatform (ssr?: SSROptions): DisplayPlatform {\n const userAgent = IN_BROWSER && !ssr\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: SSROptions): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean as PropType,\n default: false,\n },\n mobileBreakpoint: [Number, String] as PropType,\n}, 'display')\n\nexport function useDisplay (\n props: DisplayProps = {},\n name = getCurrentInstanceName(),\n) {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile\n if (!props.mobileBreakpoint) return display.mobile.value\n\n const breakpointValue = typeof props.mobileBreakpoint === 'number'\n ? props.mobileBreakpoint\n : display.thresholds.value[props.mobileBreakpoint]\n\n return display.width.value < breakpointValue\n })\n\n const displayClasses = computed(() => {\n if (!name) return {}\n\n return { [`${name}--mobile`]: mobile.value }\n })\n\n return { ...display, displayClasses, mobile }\n}\n","// Utilities\nimport { computed, inject } from 'vue';\nimport { useRtl } from \"./locale.mjs\";\nimport { clamp, consoleWarn, mergeDeep, refElement } from \"../util/index.mjs\"; // Types\nexport const GoToSymbol = Symbol.for('vuetify:goto');\nfunction genDefaults() {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: t => t,\n easeInQuad: t => t ** 2,\n easeOutQuad: t => t * (2 - t),\n easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,\n easeInCubic: t => t ** 3,\n easeOutCubic: t => --t ** 3 + 1,\n easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: t => t ** 4,\n easeOutQuart: t => 1 - --t ** 4,\n easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,\n easeInQuint: t => t ** 5,\n easeOutQuint: t => 1 + --t ** 5,\n easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5\n }\n };\n}\nfunction getContainer(el) {\n return getTarget(el) ?? (document.scrollingElement || document.body);\n}\nfunction getTarget(el) {\n return typeof el === 'string' ? document.querySelector(el) : refElement(el);\n}\nfunction getOffset(target, horizontal, rtl) {\n if (typeof target === 'number') return horizontal && rtl ? -target : target;\n let el = getTarget(target);\n let totalOffset = 0;\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop;\n el = el.offsetParent;\n }\n return totalOffset;\n}\nexport function createGoTo(options, locale) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options)\n };\n}\nexport async function scrollTo(_target, _options, horizontal, goTo) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop';\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options);\n const rtl = goTo?.rtl.value;\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;\n const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`);\n let targetLocation;\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl);\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);\n if (options.layout) {\n const styles = window.getComputedStyle(target);\n const layoutOffset = styles.getPropertyValue('--v-layout-top');\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);\n }\n }\n targetLocation += options.offset;\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);\n const startLocation = container[property] ?? 0;\n if (targetLocation === startLocation) return Promise.resolve(targetLocation);\n const startTime = performance.now();\n return new Promise(resolve => requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));\n container[property] = location;\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation);\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable');\n return resolve(container[property]);\n }\n requestAnimationFrame(step);\n }));\n}\nexport function useGoTo() {\n let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const goToInstance = inject(GoToSymbol);\n const {\n isRtl\n } = useRtl();\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value)\n };\n async function go(target, options) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo);\n }\n go.horizontal = async (target, options) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo);\n };\n return go;\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget(container, value, rtl, horizontal) {\n const {\n scrollWidth,\n scrollHeight\n } = container;\n const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];\n let min;\n let max;\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth);\n max = 0;\n } else {\n min = 0;\n max = scrollWidth - containerWidth;\n }\n } else {\n min = 0;\n max = scrollHeight + -containerHeight;\n }\n return Math.max(Math.min(value, max), min);\n}\n//# sourceMappingURL=goto.mjs.map","// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record number>\n}\n\nexport type GoToOptions = Partial\n\nexport const GoToSymbol: InjectionKey = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Icons\nimport { aliases, mdi } from \"../iconsets/mdi.mjs\"; // Utilities\nimport { computed, inject, unref } from 'vue';\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from \"../util/index.mjs\"; // Types\nexport const IconValue = [String, Function, Object, Array];\nexport const IconSymbol = Symbol.for('vuetify:icons');\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true\n }\n}, 'icon');\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n props: makeIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n const Icon = props.icon;\n return _createVNode(props.tag, null, {\n default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]\n });\n };\n }\n});\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n inheritAttrs: false,\n props: makeIconProps(),\n setup(props, _ref2) {\n let {\n attrs\n } = _ref2;\n return () => {\n return _createVNode(props.tag, _mergeProps(attrs, {\n \"style\": null\n }), {\n default: () => [_createVNode(\"svg\", {\n \"class\": \"v-icon__svg\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"role\": \"img\",\n \"aria-hidden\": \"true\"\n }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createVNode(\"path\", {\n \"d\": path[0],\n \"fill-opacity\": path[1]\n }, null) : _createVNode(\"path\", {\n \"d\": path\n }, null)) : _createVNode(\"path\", {\n \"d\": props.icon\n }, null)])]\n });\n };\n }\n});\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, null, {\n default: () => [props.icon]\n });\n };\n }\n});\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, {\n \"class\": props.icon\n }, null);\n };\n }\n});\nfunction genDefaults() {\n return {\n svg: {\n component: VSvgIcon\n },\n class: {\n component: VClassIcon\n }\n };\n}\n\n// Composables\nexport function createIcons(options) {\n const sets = genDefaults();\n const defaultSet = options?.defaultSet ?? 'mdi';\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi;\n }\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]\n /* eslint-enable max-len */\n }\n }, options);\n}\nexport const useIcon = props => {\n const icons = inject(IconSymbol);\n if (!icons) throw new Error('Missing Vuetify Icons provide!');\n const iconData = computed(() => {\n const iconAlias = unref(props);\n if (!iconAlias) return {\n component: VComponentIcon\n };\n let icon = iconAlias;\n if (typeof icon === 'string') {\n icon = icon.trim();\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)];\n }\n }\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`);\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon\n };\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon\n };\n }\n const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet];\n return {\n component: iconSet.component,\n icon: iconName\n };\n });\n return {\n iconData\n };\n};\n//# sourceMappingURL=icons.mjs.map","// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, unref } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, FunctionalComponent, InjectionKey, PropType, Ref } from 'vue'\n\nexport type JSXComponent =\n | { new (): ComponentPublicInstance }\n | FunctionalComponent\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial\n sets: Record\n}\n\nexport type IconOptions = Partial\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n \n { props.icon ? : slots.default?.() }\n \n )\n }\n },\n})\nexport type VComponentIcon = InstanceType\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n \n \n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? \n : \n ))\n : \n }\n \n \n )\n }\n },\n})\nexport type VSvgIcon = InstanceType\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return { props.icon }\n }\n },\n})\nexport type VLigatureIcon = InstanceType\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return \n }\n },\n})\nexport type VClassIcon = InstanceType\n\nfunction genDefaults (): Record {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: Ref) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed(() => {\n const iconAlias = unref(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","// Composables\nimport { VClassIcon } from \"../composables/icons.mjs\"; // Utilities\nimport { h } from 'vue';\n\n// Types\n\nconst aliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle',\n // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle',\n // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper'\n};\nconst mdi = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: props => h(VClassIcon, {\n ...props,\n class: 'mdi'\n })\n};\nexport { aliases, mdi };\n//# sourceMappingURL=mdi.mjs.map","// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","// Utilities\nimport { computed, inject, provide, ref, watch, watchEffect } from 'vue';\nimport { createRange, darken, getCurrentInstance, getForeground, getLuma, IN_BROWSER, lighten, mergeDeep, parseColor, propsFactory, RGBtoHex } from \"../util/index.mjs\"; // Types\nexport const ThemeSymbol = Symbol.for('vuetify:theme');\nexport const makeThemeProps = propsFactory({\n theme: String\n}, 'theme');\nfunction genDefaults() {\n return {\n defaultTheme: 'light',\n variations: {\n colors: [],\n lighten: 0,\n darken: 0\n },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000'\n }\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#a3a3a3',\n 'on-surface-variant': '#424242',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC'\n }\n }\n }\n };\n}\nfunction parseThemeOptions() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();\n const defaults = genDefaults();\n if (!options) return {\n ...defaults,\n isDisabled: true\n };\n const themes = {};\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;\n themes[key] = mergeDeep(defaultTheme, theme);\n }\n return mergeDeep(defaults, {\n ...options,\n themes\n });\n}\n\n// Composables\nexport function createTheme(options) {\n const parsedOptions = parseThemeOptions(options);\n const name = ref(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const computedThemes = computed(() => {\n const acc = {};\n for (const [name, original] of Object.entries(themes.value)) {\n const theme = acc[name] = {\n ...original,\n colors: {\n ...original.colors\n }\n };\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name];\n if (!color) continue;\n for (const variation of ['lighten', 'darken']) {\n const fn = variation === 'lighten' ? lighten : darken;\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));\n }\n }\n }\n }\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;\n const onColor = `on-${color}`;\n const colorVal = parseColor(theme.colors[color]);\n theme.colors[onColor] = getForeground(colorVal);\n }\n }\n return acc;\n });\n const current = computed(() => computedThemes.value[name.value]);\n const styles = computed(() => {\n const lines = [];\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark']);\n }\n createCssClass(lines, ':root', genCssVariables(current.value));\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);\n }\n const bgLines = [];\n const fgLines = [];\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n } else {\n createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);\n }\n }\n lines.push(...bgLines, ...fgLines);\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');\n });\n function getHead() {\n return {\n style: [{\n children: styles.value,\n id: 'vuetify-theme-stylesheet',\n nonce: parsedOptions.cspNonce || false\n }]\n };\n }\n function install(app) {\n if (parsedOptions.isDisabled) return;\n const head = app._context.provides.usehead;\n if (head) {\n if (head.push) {\n const entry = head.push(getHead);\n if (IN_BROWSER) {\n watch(styles, () => {\n entry.patch(getHead);\n });\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;\n if (IN_BROWSER) {\n watch(styles, updateStyles, {\n immediate: true\n });\n } else {\n updateStyles();\n }\n function updateStyles() {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style');\n el.type = 'text/css';\n el.id = 'vuetify-theme-stylesheet';\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);\n styleEl = el;\n document.head.appendChild(styleEl);\n }\n if (styleEl) styleEl.innerHTML = styles.value;\n }\n }\n }\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current\n }\n };\n}\nexport function provideTheme(props) {\n getCurrentInstance('provideTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n const name = computed(() => {\n return props.theme ?? theme.name.value;\n });\n const current = computed(() => theme.themes.value[name.value]);\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);\n const newTheme = {\n ...theme,\n name,\n current,\n themeClasses\n };\n provide(ThemeSymbol, newTheme);\n return newTheme;\n}\nexport function useTheme() {\n getCurrentInstance('useTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n return theme;\n}\nfunction createCssClass(lines, selector, content) {\n lines.push(`${selector} {\\n`, ...content.map(line => ` ${line};\\n`), '}\\n');\n}\nfunction genCssVariables(theme) {\n const lightOverlay = theme.dark ? 2 : 1;\n const darkOverlay = theme.dark ? 1 : 2;\n const variables = [];\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value);\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);\n }\n }\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;\n variables.push(`--v-${key}: ${rgb ?? value}`);\n }\n return variables;\n}\n//# sourceMappingURL=theme.mjs.map","// Utilities\nimport {\n computed,\n inject,\n provide,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n createRange,\n darken,\n getCurrentInstance,\n getForeground,\n getLuma,\n IN_BROWSER,\n lighten,\n mergeDeep,\n parseColor,\n propsFactory,\n RGBtoHex,\n} from '@/util'\n\n// Types\nimport type { VueHeadClient } from '@unhead/vue'\nimport type { HeadClient } from '@vueuse/head'\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\n\ntype DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial } : T\n\nexport type ThemeOptions = false | {\n cspNonce?: string\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record\n}\nexport type ThemeDefinition = DeepPartial\n\ninterface InternalThemeOptions {\n cspNonce?: string\n isDisabled: boolean\n defaultTheme: string\n variations: false | VariationsOptions\n themes: Record\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface ThemeInstance {\n readonly isDisabled: boolean\n readonly themes: Ref>\n\n readonly name: Readonly>\n readonly current: DeepReadonly>\n readonly computedThemes: DeepReadonly>>\n\n readonly themeClasses: Readonly>\n readonly styles: Readonly>\n\n readonly global: {\n readonly name: Ref\n readonly current: DeepReadonly>\n }\n}\n\nexport const ThemeSymbol: InjectionKey = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nfunction genDefaults () {\n return {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#a3a3a3',\n 'on-surface-variant': '#424242',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#212529',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC',\n },\n },\n },\n }\n}\n\nfunction parseThemeOptions (options: ThemeOptions = genDefaults()): InternalThemeOptions {\n const defaults = genDefaults()\n\n if (!options) return { ...defaults, isDisabled: true } as any\n\n const themes: Record = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark'\n ? defaults.themes?.dark\n : defaults.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\n\n return mergeDeep(\n defaults,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options)\n const name = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n\n const computedThemes = computed(() => {\n const acc: Record = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const theme: InternalThemeDefinition = acc[name] = {\n ...original,\n colors: {\n ...original.colors,\n },\n }\n\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name]\n\n if (!color) continue\n\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount))\n }\n }\n }\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = parseColor(theme.colors[color]!)\n\n theme.colors[onColor] = getForeground(colorVal)\n }\n }\n\n return acc\n })\n const current = computed(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'])\n }\n\n createCssClass(lines, ':root', genCssVariables(current.value))\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.v-theme--${themeName}`, [\n `color-scheme: ${theme.dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme),\n ])\n }\n\n const bgLines: string[] = []\n const fgLines: string[] = []\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (/^on-[a-z]/.test(key)) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n } else {\n createCssClass(bgLines, `.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--v-theme-${key})) !important`,\n `color: rgb(var(--v-theme-on-${key})) !important`,\n ])\n createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`])\n }\n }\n\n lines.push(...bgLines, ...fgLines)\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n function getHead () {\n return {\n style: [{\n children: styles.value,\n id: 'vuetify-theme-stylesheet',\n nonce: parsedOptions.cspNonce || false as never,\n }],\n }\n }\n\n function install (app: App) {\n if (parsedOptions.isDisabled) return\n\n const head = app._context.provides.usehead as HeadClient & VueHeadClient | undefined\n if (head) {\n if (head.push) {\n const entry = head.push(getHead)\n if (IN_BROWSER) {\n watch(styles, () => { entry.patch(getHead) })\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(computed(getHead))\n watchEffect(() => head.updateDOM())\n } else {\n head.addHeadObjs(getHead())\n }\n }\n } else {\n let styleEl = IN_BROWSER\n ? document.getElementById('vuetify-theme-stylesheet')\n : null\n\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true })\n } else {\n updateStyles()\n }\n\n function updateStyles () {\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce)\n\n styleEl = el\n document.head.appendChild(styleEl)\n }\n\n if (styleEl) styleEl.innerHTML = styles.value\n }\n }\n }\n\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`)\n\n return {\n install,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\n styles,\n global: {\n name,\n current,\n },\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const name = computed(() => {\n return props.theme ?? theme.name.value\n })\n const current = computed(() => theme.themes.value[name.value])\n\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[]) {\n lines.push(\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition) {\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n variables.push(`--v-${key}: ${rgb ?? value}`)\n }\n\n return variables\n}\n","/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\nexport { useDate } from \"./date/index.mjs\";\nexport { useDefaults } from \"./defaults.mjs\";\nexport { useDisplay } from \"./display.mjs\";\nexport { useGoTo } from \"./goto.mjs\";\nexport { useLayout } from \"./layout.mjs\";\nexport { useLocale, useRtl } from \"./locale.mjs\";\nexport { useTheme } from \"./theme.mjs\";\n//# sourceMappingURL=index.mjs.map","/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDefaults } from './defaults'\nexport { useDisplay } from './display'\nexport { useGoTo } from './goto'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { GoToInstance } from './goto'\nexport type { IconAliases, IconProps, IconSet, IconOptions, JSXComponent } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n","export { createDate, useDate, DateAdapterSymbol } from \"./date.mjs\";\n//# sourceMappingURL=index.mjs.map","export { createDate, useDate, DateAdapterSymbol } from './date'\nexport type { DateAdapter } from './DateAdapter'\nexport type { DateOptions, DateInstance, DateModule } from './date'\n","// Composables\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef } from 'vue';\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from \"../util/index.mjs\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${getUid()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = computed(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map((_ref, index) => {\n let {\n id\n } = _ref;\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, _ref2) => {\n let {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n } = _ref2;\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = computed(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.mjs.map","// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, InjectionKey, Prop, Ref } from 'vue'\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom'\n\ninterface Layer {\n top: number\n bottom: number\n left: number\n right: number\n}\n\ninterface LayoutItem extends Layer {\n id: string\n size: number\n position: Position\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n order: Ref\n position: Ref\n layoutSize: Ref\n elementSize: Ref\n active: Ref\n disableTransitions?: Ref\n absolute: Ref\n }\n ) => {\n layoutItemStyles: Ref\n layoutItemScrimStyles: Ref\n zIndex: Ref\n }\n unregister: (id: string) => void\n mainRect: Ref\n mainStyles: Ref\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref\n layoutRect: Ref\n rootZIndex: Ref\n}\n\nexport const VuetifyLayoutKey: InjectionKey = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n order: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles,\n }\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n order: Ref\n position: Ref\n layoutSize: Ref\n elementSize: Ref\n active: Ref\n disableTransitions?: Ref\n absolute: Ref\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('[Vuetify] Could not find injected layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = shallowRef(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map>,\n layoutSizes: Map>,\n activeItems: Map>,\n): { id: string, layer: Layer }[] => {\n let previousLayer: Layer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref([])\n const positions = reactive(new Map>())\n const layoutSizes = reactive(new Map>())\n const priorities = reactive(new Map>())\n const activeItems = reactive(new Map>())\n const disabledTransitions = reactive(new Map>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer\n })\n\n const mainStyles = computed(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n const position = positions.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n position: position!.value,\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n const size = elementSize.value ?? layoutSize.value\n const unit = size === 0 ? '%' : 'px'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n } as const\n\n if (!isMounted.value) return styles\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`[Vuetify] Could not find layout item \"${id}\"`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height:\n isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width:\n !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)`\n : elementSize.value ? `${elementSize.value}px`\n : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1,\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' as const : undefined,\n overflow: parentLayout ? 'hidden' : undefined,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.mjs\";\nimport { IN_BROWSER } from \"../util/globals.mjs\"; // Types\nexport function useResizeObserver(callback) {\n let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.mjs.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { templateRef } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\nimport type { TemplateRef } from '@/util'\n\ninterface ResizeState {\n resizeRef: TemplateRef\n contentRect: DeepReadonly>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = templateRef()\n const contentRect = ref()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n","export * from \"./VApp/index.mjs\";\nexport * from \"./VAppBar/index.mjs\";\nexport * from \"./VAlert/index.mjs\";\nexport * from \"./VAutocomplete/index.mjs\";\nexport * from \"./VAvatar/index.mjs\";\nexport * from \"./VBadge/index.mjs\";\nexport * from \"./VBanner/index.mjs\";\nexport * from \"./VBottomNavigation/index.mjs\";\nexport * from \"./VBottomSheet/index.mjs\";\nexport * from \"./VBreadcrumbs/index.mjs\";\nexport * from \"./VBtn/index.mjs\";\nexport * from \"./VBtnGroup/index.mjs\";\nexport * from \"./VBtnToggle/index.mjs\"; // export * from './VCalendar'\nexport * from \"./VCard/index.mjs\";\nexport * from \"./VCarousel/index.mjs\";\nexport * from \"./VCheckbox/index.mjs\";\nexport * from \"./VChip/index.mjs\";\nexport * from \"./VChipGroup/index.mjs\";\nexport * from \"./VCode/index.mjs\";\nexport * from \"./VColorPicker/index.mjs\";\nexport * from \"./VCombobox/index.mjs\";\nexport * from \"./VConfirmEdit/index.mjs\";\nexport * from \"./VCounter/index.mjs\";\nexport * from \"./VDataIterator/index.mjs\";\nexport * from \"./VDataTable/index.mjs\";\nexport * from \"./VDatePicker/index.mjs\";\nexport * from \"./VDefaultsProvider/index.mjs\";\nexport * from \"./VDialog/index.mjs\";\nexport * from \"./VDivider/index.mjs\";\nexport * from \"./VEmptyState/index.mjs\";\nexport * from \"./VExpansionPanel/index.mjs\";\nexport * from \"./VFab/index.mjs\";\nexport * from \"./VField/index.mjs\";\nexport * from \"./VFileInput/index.mjs\";\nexport * from \"./VFooter/index.mjs\";\nexport * from \"./VForm/index.mjs\";\nexport * from \"./VGrid/index.mjs\";\nexport * from \"./VHover/index.mjs\";\nexport * from \"./VIcon/index.mjs\";\nexport * from \"./VImg/index.mjs\";\nexport * from \"./VInfiniteScroll/index.mjs\";\nexport * from \"./VInput/index.mjs\";\nexport * from \"./VItemGroup/index.mjs\";\nexport * from \"./VKbd/index.mjs\";\nexport * from \"./VLabel/index.mjs\";\nexport * from \"./VLayout/index.mjs\";\nexport * from \"./VLazy/index.mjs\";\nexport * from \"./VList/index.mjs\";\nexport * from \"./VLocaleProvider/index.mjs\";\nexport * from \"./VMain/index.mjs\";\nexport * from \"./VMenu/index.mjs\";\nexport * from \"./VMessages/index.mjs\";\nexport * from \"./VNavigationDrawer/index.mjs\";\nexport * from \"./VNoSsr/index.mjs\";\nexport * from \"./VOtpInput/index.mjs\"; // export * from './VOverflowBtn'\nexport * from \"./VOverlay/index.mjs\";\nexport * from \"./VPagination/index.mjs\";\nexport * from \"./VParallax/index.mjs\";\nexport * from \"./VProgressCircular/index.mjs\";\nexport * from \"./VProgressLinear/index.mjs\";\nexport * from \"./VRadio/index.mjs\";\nexport * from \"./VRadioGroup/index.mjs\";\nexport * from \"./VRangeSlider/index.mjs\";\nexport * from \"./VRating/index.mjs\";\nexport * from \"./VResponsive/index.mjs\";\nexport * from \"./VSelect/index.mjs\";\nexport * from \"./VSelectionControl/index.mjs\";\nexport * from \"./VSelectionControlGroup/index.mjs\";\nexport * from \"./VSheet/index.mjs\";\nexport * from \"./VSkeletonLoader/index.mjs\";\nexport * from \"./VSlideGroup/index.mjs\";\nexport * from \"./VSlider/index.mjs\";\nexport * from \"./VSnackbar/index.mjs\";\nexport * from \"./VSparkline/index.mjs\";\nexport * from \"./VSpeedDial/index.mjs\";\nexport * from \"./VStepper/index.mjs\";\nexport * from \"./VSwitch/index.mjs\";\nexport * from \"./VSystemBar/index.mjs\";\nexport * from \"./VTabs/index.mjs\";\nexport * from \"./VTable/index.mjs\";\nexport * from \"./VTextarea/index.mjs\";\nexport * from \"./VTextField/index.mjs\";\nexport * from \"./VThemeProvider/index.mjs\";\nexport * from \"./VTimeline/index.mjs\"; // export * from './VTimePicker'\nexport * from \"./VToolbar/index.mjs\";\nexport * from \"./VTooltip/index.mjs\"; // export * from './VTreeview'\nexport * from \"./VValidation/index.mjs\";\nexport * from \"./VVirtualScroll/index.mjs\";\nexport * from \"./VWindow/index.mjs\";\nexport * from \"./transitions/index.mjs\";\n//# sourceMappingURL=index.mjs.map","export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\nexport * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\nexport * from './VBottomSheet'\nexport * from './VBreadcrumbs'\nexport * from './VBtn'\nexport * from './VBtnGroup'\nexport * from './VBtnToggle'\n// export * from './VCalendar'\nexport * from './VCard'\nexport * from './VCarousel'\nexport * from './VCheckbox'\nexport * from './VChip'\nexport * from './VChipGroup'\nexport * from './VCode'\nexport * from './VColorPicker'\nexport * from './VCombobox'\nexport * from './VConfirmEdit'\nexport * from './VCounter'\nexport * from './VDataIterator'\nexport * from './VDataTable'\nexport * from './VDatePicker'\nexport * from './VDefaultsProvider'\nexport * from './VDialog'\nexport * from './VDivider'\nexport * from './VEmptyState'\nexport * from './VExpansionPanel'\nexport * from './VFab'\nexport * from './VField'\nexport * from './VFileInput'\nexport * from './VFooter'\nexport * from './VForm'\nexport * from './VGrid'\nexport * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\nexport * from './VInfiniteScroll'\nexport * from './VInput'\nexport * from './VItemGroup'\nexport * from './VKbd'\nexport * from './VLabel'\nexport * from './VLayout'\nexport * from './VLazy'\nexport * from './VList'\nexport * from './VLocaleProvider'\nexport * from './VMain'\nexport * from './VMenu'\nexport * from './VMessages'\nexport * from './VNavigationDrawer'\nexport * from './VNoSsr'\nexport * from './VOtpInput'\n// export * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VParallax'\nexport * from './VProgressCircular'\nexport * from './VProgressLinear'\nexport * from './VRadio'\nexport * from './VRadioGroup'\nexport * from './VRangeSlider'\nexport * from './VRating'\nexport * from './VResponsive'\nexport * from './VSelect'\nexport * from './VSelectionControl'\nexport * from './VSelectionControlGroup'\nexport * from './VSheet'\nexport * from './VSkeletonLoader'\nexport * from './VSlideGroup'\nexport * from './VSlider'\nexport * from './VSnackbar'\nexport * from './VSparkline'\nexport * from './VSpeedDial'\nexport * from './VStepper'\nexport * from './VSwitch'\nexport * from './VSystemBar'\nexport * from './VTabs'\nexport * from './VTable'\nexport * from './VTextarea'\nexport * from './VTextField'\nexport * from './VThemeProvider'\nexport * from './VTimeline'\n// export * from './VTimePicker'\nexport * from './VToolbar'\nexport * from './VTooltip'\n// export * from './VTreeview'\nexport * from './VValidation'\nexport * from './VVirtualScroll'\nexport * from './VWindow'\nexport * from './transitions'\n","export { VApp } from \"./VApp.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VApp } from './VApp'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VApp.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({\n fullHeight: true\n }),\n ...makeThemeProps()\n}, 'VApp');\nexport const VApp = genericComponent()({\n name: 'VApp',\n props: makeVAppProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const theme = provideTheme(props);\n const {\n layoutClasses,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n rtlClasses\n } = useRtl();\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],\n \"style\": [props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-application__wrap\"\n }, [slots.default?.()])]));\n return {\n getLayoutItem,\n items,\n theme\n };\n }\n});\n//# sourceMappingURL=VApp.mjs.map","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n}, 'VApp')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n \n

    \n { slots.default?.() }\n
    \n \n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType\n","export { VAppBar } from \"./VAppBar.mjs\";\nexport { VAppBarNavIcon } from \"./VAppBarNavIcon.mjs\";\nexport { VAppBarTitle } from \"./VAppBarTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAppBar } from './VAppBar'\nexport { VAppBarNavIcon } from './VAppBarNavIcon'\nexport { VAppBarTitle } from './VAppBarTitle'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VAppBar.css\";\n\n// Components\nimport { makeVToolbarProps, VToolbar } from \"../VToolbar/VToolbar.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeScrollProps, useScroll } from \"../../composables/scroll.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n location: {\n type: String,\n default: 'top',\n validator: value => ['top', 'bottom'].includes(value)\n },\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n height: {\n type: [Number, String],\n default: 64\n }\n}, 'VAppBar');\nexport const VAppBar = genericComponent()({\n name: 'VAppBar',\n props: makeVAppBarProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vToolbarRef = ref();\n const isActive = useProxiedModel(props, 'modelValue');\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);\n return {\n hide: behavior.has('hide'),\n fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image')\n // shrink: behavior.has('shrink'),\n };\n });\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value;\n return behavior.hide || behavior.fullyHide || behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value;\n });\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio\n } = useScroll(props, {\n canScroll\n });\n const canHide = computed(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);\n const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));\n const isFlat = computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));\n const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;\n const height = vToolbarRef.value?.contentHeight ?? 0;\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;\n if (!canHide.value) return height + extensionHeight;\n return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;\n });\n useToggleScope(computed(() => !!props.scrollBehavior), () => {\n watchEffect(() => {\n if (canHide.value) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value;\n } else {\n isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;\n }\n } else {\n isActive.value = true;\n }\n });\n });\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useRender(() => {\n const toolbarProps = VToolbar.filterProps(props);\n return _createVNode(VToolbar, _mergeProps({\n \"ref\": vToolbarRef,\n \"class\": ['v-app-bar', {\n 'v-app-bar--bottom': props.location === 'bottom'\n }, props.class],\n \"style\": [{\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value\n }, props.style]\n }, toolbarProps, {\n \"collapse\": isCollapsed.value,\n \"flat\": isFlat.value\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VAppBar.mjs.map","// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String as PropType<'hide' | 'fully-hide' | 'inverted' | 'collapse' | 'elevate' | 'fade-image' | (string & {})>,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n}, 'VAppBar')\n\nexport const VAppBar = genericComponent()({\n name: 'VAppBar',\n\n props: makeVAppBarProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const canHide = computed(() => (\n scrollBehavior.value.hide ||\n scrollBehavior.value.fullyHide\n ))\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.fullyHide &&\n !isActive.value\n ) || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n if (!canHide.value) return (height + extensionHeight)\n\n return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide\n ? (height + extensionHeight)\n : height\n })\n\n useToggleScope(computed(() => !!props.scrollBehavior), () => {\n watchEffect(() => {\n if (canHide.value) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n })\n })\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: shallowRef(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const toolbarProps = VToolbar.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VToolbar.css\";\n\n// Components\nimport { VToolbarTitle } from \"./VToolbarTitle.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'];\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64\n },\n image: String,\n title: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeThemeProps()\n}, 'VToolbar');\nexport const VToolbar = genericComponent()({\n name: 'VToolbar',\n props: makeVToolbarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()));\n const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));\n const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);\n provideDefaults({\n VBtn: {\n variant: 'text'\n }\n });\n useRender(() => {\n const hasTitle = !!(props.title || slots.title);\n const hasImage = !!(slots.image || props.image);\n const extension = slots.extension?.();\n isExtended.value = !!(props.extended || extension);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar', {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true\n }, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-toolbar__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(contentHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-toolbar__content\",\n \"style\": {\n height: convertToUnit(contentHeight.value)\n }\n }, [slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-toolbar__prepend\"\n }, [slots.prepend?.()]), hasTitle && _createVNode(VToolbarTitle, {\n \"key\": \"title\",\n \"text\": props.title\n }, {\n text: slots.title\n }), slots.default?.(), slots.append && _createVNode(\"div\", {\n \"class\": \"v-toolbar__append\"\n }, [slots.append?.()])])]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VTabs: {\n height: convertToUnit(extensionHeight.value)\n }\n }\n }, {\n default: () => [_createVNode(VExpandTransition, null, {\n default: () => [isExtended.value && _createVNode(\"div\", {\n \"class\": \"v-toolbar__extension\",\n \"style\": {\n height: convertToUnit(extensionHeight.value)\n }\n }, [extension])]\n })]\n })]\n });\n });\n return {\n contentHeight,\n extensionHeight\n };\n }\n});\n//# sourceMappingURL=VToolbar.mjs.map","// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VToolbarTitle } from './VToolbarTitle'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport type Density = null | 'prominent' | 'default' | 'comfortable' | 'compact'\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'VToolbar')\n\nexport type VToolbarSlots = {\n default: never\n image: never\n prepend: never\n append: never\n title: never\n extension: never\n}\n\nexport const VToolbar = genericComponent()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n \n { hasImage && (\n
    \n { !slots.image ? (\n \n ) : (\n \n )}\n
    \n )}\n\n \n \n { slots.prepend && (\n
    \n { slots.prepend?.() }\n
    \n )}\n\n { hasTitle && (\n \n {{ text: slots.title }}\n \n )}\n\n { slots.default?.() }\n\n { slots.append && (\n
    \n { slots.append?.() }\n
    \n )}\n \n \n\n \n \n { isExtended.value && (\n \n { extension }\n \n )}\n \n \n \n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarTitleProps = propsFactory({\n text: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VToolbarTitle');\nexport const VToolbarTitle = genericComponent()({\n name: 'VToolbarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text);\n return _createVNode(props.tag, {\n \"class\": ['v-toolbar-title', props.class],\n \"style\": props.style\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-toolbar-title__placeholder\"\n }, [slots.text ? slots.text() : props.text, slots.default?.()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VToolbarTitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVToolbarTitleProps = propsFactory({\n text: String,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VToolbarTitle')\n\nexport type VToolbarTitleSlots = {\n default: never\n text: never\n}\n\nexport const VToolbarTitle = genericComponent()({\n name: 'VToolbarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text)\n\n return (\n \n { hasText && (\n
    \n { slots.text ? slots.text() : props.text }\n\n { slots.default?.() }\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VToolbarTitle = InstanceType\n","// Utilities\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.mjs.map","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","import { createCssTransition, createJavascriptTransition } from \"./createTransition.mjs\";\nimport ExpandTransitionGenerator from \"./expand-transition.mjs\"; // Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition');\nexport const VFadeTransition = createCssTransition('fade-transition');\nexport const VScaleTransition = createCssTransition('scale-transition');\nexport const VScrollXTransition = createCssTransition('scroll-x-transition');\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');\nexport const VScrollYTransition = createCssTransition('scroll-y-transition');\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');\nexport const VSlideXTransition = createCssTransition('slide-x-transition');\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');\nexport const VSlideYTransition = createCssTransition('slide-y-transition');\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport { VDialogTransition } from \"./dialog-transition.mjs\";\n//# sourceMappingURL=index.mjs.map","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport { VDialogTransition } from './dialog-transition'\n\nexport type VFabTransition = InstanceType\nexport type VDialogBottomTransition = InstanceType\nexport type VDialogTopTransition = InstanceType\nexport type VFadeTransition = InstanceType\nexport type VScaleTransition = InstanceType\nexport type VScrollXTransition = InstanceType\nexport type VScrollXReverseTransition = InstanceType\nexport type VScrollYTransition = InstanceType\nexport type VScrollYReverseTransition = InstanceType\nexport type VSlideXTransition = InstanceType\nexport type VSlideXReverseTransition = InstanceType\nexport type VSlideYTransition = InstanceType\nexport type VSlideYReverseTransition = InstanceType\nexport type VExpandTransition = InstanceType\nexport type VExpandXTransition = InstanceType\n","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String\n}, 'transition');\nexport function createCssTransition(name, origin, mode) {\n return genericComponent()({\n name,\n props: makeTransitionProps({\n mode,\n origin\n }),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n if (props.origin) {\n el.style.transformOrigin = props.origin;\n }\n },\n onLeave(el) {\n if (props.leaveAbsolute) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = el;\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height\n };\n el.style.position = 'absolute';\n el.style.top = `${offsetTop}px`;\n el.style.left = `${offsetLeft}px`;\n el.style.width = `${offsetWidth}px`;\n el.style.height = `${offsetHeight}px`;\n }\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important');\n }\n },\n onAfterLeave(el) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const {\n position,\n top,\n left,\n width,\n height\n } = el._transitionInitialStyles;\n delete el._transitionInitialStyles;\n el.style.position = position || '';\n el.style.top = top || '';\n el.style.left = left || '';\n el.style.width = width || '';\n el.style.height = height || '';\n }\n }\n };\n return () => {\n const tag = props.group ? TransitionGroup : Transition;\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : {\n mode: props.mode\n }),\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\nexport function createJavascriptTransition(name, functions) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';\n return genericComponent()({\n name,\n props: {\n mode: {\n type: String,\n default: mode\n },\n disabled: Boolean,\n group: Boolean\n },\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const tag = props.group ? TransitionGroup : Transition;\n return () => {\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\n//# sourceMappingURL=createTransition.mjs.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { FunctionalComponent, PropType } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String,\n}, 'transition')\n\nexport function createCssTransition (\n name: string,\n origin?: string,\n mode?: string\n) {\n return genericComponent()({\n name,\n\n props: makeTransitionProps({\n mode,\n origin,\n }),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: HTMLElement) {\n if (props.origin) {\n el.style.transformOrigin = props.origin\n }\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }\n\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : { mode: props.mode }),\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n) {\n return genericComponent()({\n name,\n\n props: {\n mode: {\n type: String as PropType<'in-out' | 'out-in' | 'default'>,\n default: mode,\n },\n disabled: Boolean,\n group: Boolean,\n },\n\n setup (props, { slots }) {\n const tag = props.group ? TransitionGroup : Transition\n\n return () => {\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue';\nexport default function () {\n let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const sizeProperty = x ? 'width' : 'height';\n const offsetProperty = camelize(`offset-${sizeProperty}`);\n return {\n onBeforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n onEnter(el) {\n const initialStyle = el._initialStyle;\n el.style.setProperty('transition', 'none', 'important');\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden';\n const offset = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n onLeave(el) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => el.style[sizeProperty] = '0');\n },\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n function onAfterLeave(el) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n function resetStyles(el) {\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.mjs.map","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Utilities\nimport { Transition } from 'vue';\nimport { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, propsFactory, standardEasing } from \"../../util/index.mjs\";\nimport { getTargetBox } from \"../../util/box.mjs\"; // Types\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array]\n}, 'v-dialog-transition');\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n props: makeVDialogTransitionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n el.style.pointerEvents = 'none';\n el.style.visibility = 'hidden';\n },\n async onEnter(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n el.style.visibility = '';\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }, {}], {\n duration: 225 * speed,\n easing: deceleratedEasing\n });\n getChildren(el)?.forEach(el => {\n animate(el, [{\n opacity: 0\n }, {\n opacity: 0,\n offset: 0.33\n }, {}], {\n duration: 225 * 2 * speed,\n easing: standardEasing\n });\n });\n animation.finished.then(() => done());\n },\n onAfterEnter(el) {\n el.style.removeProperty('pointer-events');\n },\n onBeforeLeave(el) {\n el.style.pointerEvents = 'none';\n },\n async onLeave(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = getDimensions(props.target, el);\n const animation = animate(el, [{}, {\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }], {\n duration: 125 * speed,\n easing: acceleratedEasing\n });\n animation.finished.then(() => done());\n getChildren(el)?.forEach(el => {\n animate(el, [{}, {\n opacity: 0,\n offset: 0.2\n }, {\n opacity: 0\n }], {\n duration: 125 * 2 * speed,\n easing: standardEasing\n });\n });\n },\n onAfterLeave(el) {\n el.style.removeProperty('pointer-events');\n }\n };\n return () => {\n return props.target ? _createVNode(Transition, _mergeProps({\n \"name\": \"dialog-transition\"\n }, functions, {\n \"css\": false\n }), slots) : _createVNode(Transition, {\n \"name\": \"dialog-transition\"\n }, slots);\n };\n }\n});\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren(el) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;\n return els && [...els];\n}\nfunction getDimensions(target, el) {\n const targetBox = getTargetBox(target);\n const elBox = nullifyTransforms(el);\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');\n let offsetX = targetBox.left + targetBox.width / 2;\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2;\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2;\n }\n let offsetY = targetBox.top + targetBox.height / 2;\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2;\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2;\n }\n const tsx = targetBox.width / elBox.width;\n const tsy = targetBox.height / elBox.height;\n const maxs = Math.max(1, tsx, tsy);\n const sx = tsx / maxs || 0;\n const sy = tsy / maxs || 0;\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);\n const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed\n };\n}\n//# sourceMappingURL=dialog-transition.mjs.map","// Utilities\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n genericComponent,\n nullifyTransforms,\n propsFactory,\n standardEasing,\n} from '@/util'\nimport { getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array] as PropType,\n}, 'v-dialog-transition')\n\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n\n props: makeVDialogTransitionProps(),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n {},\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n {},\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n {},\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n \n )\n : \n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\nfunction getDimensions (target: HTMLElement | [x: number, y: number], el: HTMLElement) {\n const targetBox = getTargetBox(target)\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType\n","export { VDefaultsProvider } from \"./VDefaultsProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDefaultsProvider } from './VDefaultsProvider'\n","// Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean\n}, 'VDefaultsProvider');\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n props: makeVDefaultsProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n defaults,\n disabled,\n reset,\n root,\n scoped\n } = toRefs(props);\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled\n });\n return () => slots.default?.();\n }\n});\n//# sourceMappingURL=VDefaultsProvider.mjs.map","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { toRefs } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\n\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object as PropType,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean,\n}, 'VDefaultsProvider')\n\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n\n props: makeVDefaultsProviderProps(),\n\n setup (props, { slots }) {\n const { defaults, disabled, reset, root, scoped } = toRefs(props)\n\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled,\n })\n\n return () => slots.default?.()\n },\n})\n\nexport type VDefaultsProvider = InstanceType\n","export { VImg } from \"./VImg.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VImg } from './VImg'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VImg.css\";\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from \"../VResponsive/VResponsive.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, ref, shallowRef, toRef, vShow, watch, withDirectives } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, propsFactory, SUPPORTS_INTERSECTION, useRender } from \"../../util/index.mjs\"; // Types\n// not intended for public use, this is passed in by vuetify-loader\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String],\n default: undefined\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: ''\n },\n crossorigin: String,\n referrerpolicy: String,\n srcset: String,\n position: String,\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps()\n}, 'VImg');\nexport const VImg = genericComponent()({\n name: 'VImg',\n directives: {\n intersect\n },\n props: makeVImgProps(),\n emits: {\n loadstart: value => true,\n load: value => true,\n error: value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const vm = getCurrentInstance('VImg');\n const currentSrc = shallowRef(''); // Set from srcset\n const image = ref();\n const state = shallowRef(props.eager ? 'loading' : 'idle');\n const naturalWidth = shallowRef();\n const naturalHeight = shallowRef();\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object' ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0)\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0)\n };\n });\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value / naturalHeight.value || 0;\n });\n watch(() => props.src, () => {\n init(state.value !== 'idle');\n });\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value);\n }\n });\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init());\n function init(isIntersecting) {\n if (props.eager && isIntersecting) return;\n if (SUPPORTS_INTERSECTION && !isIntersecting && !props.eager) return;\n state.value = 'loading';\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image();\n lazyImg.src = normalisedSrc.value.lazySrc;\n pollForSize(lazyImg, null);\n }\n if (!normalisedSrc.value.src) return;\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError();\n }\n if (state.value === 'error') return;\n if (!aspectRatio.value) pollForSize(image.value, null);\n if (state.value === 'loading') onLoad();\n } else {\n if (!aspectRatio.value) pollForSize(image.value);\n getSrc();\n }\n });\n });\n }\n function onLoad() {\n if (vm.isUnmounted) return;\n getSrc();\n pollForSize(image.value);\n state.value = 'loaded';\n emit('load', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function onError() {\n if (vm.isUnmounted) return;\n state.value = 'error';\n emit('error', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function getSrc() {\n const img = image.value;\n if (img) currentSrc.value = img.currentSrc || img.src;\n }\n let timer = -1;\n onBeforeUnmount(() => {\n clearTimeout(timer);\n });\n function pollForSize(img) {\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n const poll = () => {\n clearTimeout(timer);\n if (vm.isUnmounted) return;\n const {\n naturalHeight: imgHeight,\n naturalWidth: imgWidth\n } = img;\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth;\n naturalHeight.value = imgHeight;\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout);\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n };\n poll();\n }\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover\n }));\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null;\n const img = _createVNode(\"img\", {\n \"class\": ['v-img__img', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"src\": normalisedSrc.value.src,\n \"srcset\": normalisedSrc.value.srcset,\n \"alt\": props.alt,\n \"crossorigin\": props.crossorigin,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable,\n \"sizes\": props.sizes,\n \"ref\": image,\n \"onLoad\": onLoad,\n \"onError\": onError\n }, null);\n const sources = slots.sources?.();\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [withDirectives(sources ? _createVNode(\"picture\", {\n \"class\": \"v-img__picture\"\n }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]\n });\n };\n const __preloadImage = () => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && _createVNode(\"img\", {\n \"class\": ['v-img__img', 'v-img__img--preload', containClasses.value],\n \"style\": {\n objectPosition: props.position\n },\n \"src\": normalisedSrc.value.lazySrc,\n \"alt\": props.alt,\n \"crossorigin\": props.crossorigin,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable\n }, null)]\n });\n const __placeholder = () => {\n if (!slots.placeholder) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && _createVNode(\"div\", {\n \"class\": \"v-img__placeholder\"\n }, [slots.placeholder()])]\n });\n };\n const __error = () => {\n if (!slots.error) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [state.value === 'error' && _createVNode(\"div\", {\n \"class\": \"v-img__error\"\n }, [slots.error()])]\n });\n };\n const __gradient = () => {\n if (!props.gradient) return null;\n return _createVNode(\"div\", {\n \"class\": \"v-img__gradient\",\n \"style\": {\n backgroundImage: `linear-gradient(${props.gradient})`\n }\n }, null);\n };\n const isBooted = shallowRef(false);\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n stop();\n }\n });\n }\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props);\n return _withDirectives(_createVNode(VResponsive, _mergeProps({\n \"class\": ['v-img', {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value\n }, backgroundColorClasses.value, roundedClasses.value, props.class],\n \"style\": [{\n width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)\n }, backgroundColorStyles.value, props.style]\n }, responsiveProps, {\n \"aspectRatio\": aspectRatio.value,\n \"aria-label\": props.alt,\n \"role\": props.alt ? 'img' : undefined\n }), {\n additional: () => _createVNode(_Fragment, null, [_createVNode(__image, null, null), _createVNode(__preloadImage, null, null), _createVNode(__gradient, null, null), _createVNode(__placeholder, null, null), _createVNode(__error, null, null)]),\n default: slots.default\n }), [[_resolveDirective(\"intersect\"), {\n handler: init,\n options: props.options\n }, null, {\n once: true\n }]]);\n });\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight\n };\n }\n});\n//# sourceMappingURL=VImg.mjs.map","// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const vm = getCurrentInstance('VImg')\n\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef()\n const naturalHeight = shallowRef()\n\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (vm.isUnmounted) return\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n \n )\n\n const sources = slots.sources?.()\n\n return (\n \n {\n withDirectives(\n sources\n ? { sources }{ img }\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n \n )\n }\n\n const __preloadImage = () => (\n \n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n \n )}\n \n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n \n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n
    { slots.placeholder() }
    \n }\n
    \n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n \n { state.value === 'error' &&\n
    { slots.error() }
    \n }\n
    \n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return
    \n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n {{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n \n ),\n default: slots.default,\n }}\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VResponsive.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport function useAspectStyles(props) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio);\n return ratio ? {\n paddingBottom: String(1 / ratio * 100) + '%'\n } : undefined;\n })\n };\n}\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VResponsive');\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n props: makeVResponsiveProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n aspectStyles\n } = useAspectStyles(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-responsive', {\n 'v-responsive--inline': props.inline\n }, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-responsive__sizer\",\n \"style\": aspectStyles.value\n }, null), slots.additional?.(), slots.default && _createVNode(\"div\", {\n \"class\": ['v-responsive__content', props.contentClass]\n }, [slots.default()])]));\n return {};\n }\n});\n//# sourceMappingURL=VResponsive.mjs.map","// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VResponsiveSlots = {\n default: never\n additional: never\n}\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VResponsive')\n\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n\n props: makeVResponsiveProps(),\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n
    \n\n { slots.additional?.() }\n\n { slots.default && (\n
    { slots.default() }
    \n )}\n
    \n ))\n\n return {}\n },\n})\n\nexport type VResponsive = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String]\n}, 'dimension');\nexport function useDimension(props) {\n const dimensionStyles = computed(() => {\n const styles = {};\n const height = convertToUnit(props.height);\n const maxHeight = convertToUnit(props.maxHeight);\n const maxWidth = convertToUnit(props.maxWidth);\n const minHeight = convertToUnit(props.minHeight);\n const minWidth = convertToUnit(props.minWidth);\n const width = convertToUnit(props.width);\n if (height != null) styles.height = height;\n if (maxHeight != null) styles.maxHeight = maxHeight;\n if (maxWidth != null) styles.maxWidth = maxWidth;\n if (minHeight != null) styles.minHeight = minHeight;\n if (minWidth != null) styles.minWidth = minWidth;\n if (width != null) styles.width = width;\n return styles;\n });\n return {\n dimensionStyles\n };\n}\n//# sourceMappingURL=dimensions.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => {\n const styles: Record = {}\n\n const height = convertToUnit(props.height)\n const maxHeight = convertToUnit(props.maxHeight)\n const maxWidth = convertToUnit(props.maxWidth)\n const minHeight = convertToUnit(props.minHeight)\n const minWidth = convertToUnit(props.minWidth)\n const width = convertToUnit(props.width)\n\n if (height != null) styles.height = height\n if (maxHeight != null) styles.maxHeight = maxHeight\n if (maxWidth != null) styles.maxWidth = maxWidth\n if (minHeight != null) styles.minHeight = minHeight\n if (minWidth != null) styles.minWidth = minWidth\n if (width != null) styles.width = width\n\n return styles\n })\n\n return { dimensionStyles }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const classes = [];\n const styles = {};\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background;\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor);\n styles.color = textColor;\n styles.caretColor = textColor;\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`);\n }\n }\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text;\n styles.caretColor = colors.value.text;\n } else {\n classes.push(`text-${colors.value.text}`);\n }\n }\n return {\n colorClasses: classes,\n colorStyles: styles\n };\n });\n}\nexport function useTextColor(props, name) {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(colors);\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(props, name) {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(colors);\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\n//# sourceMappingURL=color.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref\n textColorStyles: Ref\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n return destructComputed(() => {\n const classes: string[] = []\n const styles: CSSProperties = {}\n\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background\n\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background)\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor)\n\n styles.color = textColor\n styles.caretColor = textColor\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`)\n }\n }\n\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n } else {\n classes.push(`text-${colors.value.text}`)\n }\n }\n\n return { colorClasses: classes, colorStyles: styles }\n })\n}\n\nexport function useTextColor (color: Ref): TextColorData\nexport function useTextColor , K extends string> (props: T, name: K): TextColorData\nexport function useTextColor , K extends string> (\n props: T | Ref,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref): BackgroundColorData\nexport function useBackgroundColor , K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor , K extends string> (\n props: T | Ref,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined\n },\n tile: Boolean\n}, 'rounded');\nexport function useRounded(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded;\n const tile = isRef(props) ? props.value : props.tile;\n const classes = [];\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`);\n } else if (typeof rounded === 'string' || rounded === 0) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`);\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0');\n }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const tile = isRef(props) ? props.value : props.tile\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0')\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object],\n default: 'fade-transition',\n validator: val => val !== true\n }\n}, 'transition');\nexport const MaybeTransition = (props, _ref) => {\n let {\n slots\n } = _ref;\n const {\n transition,\n disabled,\n group,\n ...rest\n } = props;\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {};\n return h(component, mergeProps(typeof transition === 'string' ? {\n name: disabled ? '' : transition\n } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({\n disabled,\n group\n }).filter(_ref2 => {\n let [_, v] = _ref2;\n return v !== undefined;\n })), rest), slots);\n};\n//# sourceMappingURL=transition.mjs.map","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(\n typeof transition === 'string'\n ? { name: disabled ? '' : transition }\n : customProps as any,\n typeof transition === 'string'\n ? {}\n : Object.fromEntries(Object.entries({ disabled, group }).filter(([_, v]) => v !== undefined)),\n rest as any,\n ),\n slots\n )\n}\n","// Utilities\nimport { SUPPORTS_INTERSECTION } from \"../../util/index.mjs\"; // Types\nfunction mounted(el, binding) {\n if (!SUPPORTS_INTERSECTION) return;\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {}\n };\n const observer = new IntersectionObserver(function () {\n let entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n const _observe = el._observe?.[binding.instance.$.uid];\n if (!_observe) return; // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting);\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {\n handler(isIntersecting, entries, observer);\n }\n if (isIntersecting && modifiers.once) unmounted(el, binding);else _observe.init = true;\n }, options);\n el._observe = Object(el._observe);\n el._observe[binding.instance.$.uid] = {\n init: false,\n observer\n };\n observer.observe(el);\n}\nfunction unmounted(el, binding) {\n const observe = el._observe?.[binding.instance.$.uid];\n if (!observe) return;\n observe.observer.unobserve(el);\n delete el._observe[binding.instance.$.uid];\n}\nexport const Intersect = {\n mounted,\n unmounted\n};\nexport default Intersect;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border;\n const classes = [];\n if (border === true || border === '') {\n classes.push(`${name}--border`);\n } else if (typeof border === 'string' || border === 0) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`);\n }\n }\n return classes;\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border\n const classes: string[] = []\n\n if (border === true || border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof border === 'string' ||\n border === 0\n ) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator(v) {\n const value = parseInt(v);\n return !isNaN(value) && value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24;\n }\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n const classes = [];\n if (elevation == null) return classes;\n classes.push(`elevation-${elevation}`);\n return classes;\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.mjs.map","// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref\n}\n\nexport function useElevation (props: ElevationProps | Ref): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300\n }\n}, 'scroll');\nexport function useScroll(props) {\n let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n canScroll\n } = args;\n let previousScroll = 0;\n let previousScrollHeight = 0;\n const target = ref(null);\n const currentScroll = shallowRef(0);\n const savedScroll = shallowRef(0);\n const currentThreshold = shallowRef(0);\n const isScrollActive = shallowRef(false);\n const isScrollingUp = shallowRef(false);\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold);\n });\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);\n });\n const onScroll = () => {\n const targetEl = target.value;\n if (!targetEl || canScroll && !canScroll.value) return;\n previousScroll = currentScroll.value;\n currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight;\n return;\n }\n isScrollingUp.value = currentScroll.value < previousScroll;\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);\n };\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value;\n });\n watch(isScrollActive, () => {\n savedScroll.value = 0;\n });\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);\n return;\n }\n if (newTarget === target.value) return;\n target.value?.removeEventListener('scroll', onScroll);\n target.value = newTarget;\n target.value.addEventListener('scroll', onScroll, {\n passive: true\n });\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll);\n });\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, {\n immediate: true\n });\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll\n };\n}\n//# sourceMappingURL=scroll.mjs.map","// Utilities\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { clamp, consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport interface ScrollProps {\n scrollTarget?: string\n scrollThreshold?: string | number\n}\n\nexport interface ThresholdMetCallbackData {\n isScrollingUp: boolean\n currentThreshold: number\n savedScroll: Ref\n}\n\n// Composables\nexport const makeScrollProps = propsFactory({\n scrollTarget: {\n type: String,\n },\n scrollThreshold: {\n type: [String, Number],\n default: 300,\n },\n}, 'scroll')\n\nexport interface ScrollArguments {\n canScroll?: Readonly>\n}\n\nexport function useScroll (\n props: ScrollProps,\n args: ScrollArguments = {},\n) {\n const { canScroll } = args\n let previousScroll = 0\n let previousScrollHeight = 0\n const target = ref(null)\n const currentScroll = shallowRef(0)\n const savedScroll = shallowRef(0)\n const currentThreshold = shallowRef(0)\n const isScrollActive = shallowRef(false)\n const isScrollingUp = shallowRef(false)\n\n const scrollThreshold = computed(() => {\n return Number(props.scrollThreshold)\n })\n\n /**\n * 1: at top\n * 0: at threshold\n */\n const scrollRatio = computed(() => {\n return clamp(((scrollThreshold.value - currentScroll.value) / scrollThreshold.value) || 0)\n })\n\n const onScroll = () => {\n const targetEl = target.value\n\n if (!targetEl || (canScroll && !canScroll.value)) return\n\n previousScroll = currentScroll.value\n currentScroll.value = ('window' in targetEl) ? targetEl.pageYOffset : targetEl.scrollTop\n\n const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight\n if (previousScrollHeight !== currentScrollHeight) {\n previousScrollHeight = currentScrollHeight\n return\n }\n\n isScrollingUp.value = currentScroll.value < previousScroll\n currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value)\n }\n\n watch(isScrollingUp, () => {\n savedScroll.value = savedScroll.value || currentScroll.value\n })\n\n watch(isScrollActive, () => {\n savedScroll.value = 0\n })\n\n onMounted(() => {\n watch(() => props.scrollTarget, scrollTarget => {\n const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window\n\n if (!newTarget) {\n consoleWarn(`Unable to locate element with identifier ${scrollTarget}`)\n return\n }\n\n if (newTarget === target.value) return\n\n target.value?.removeEventListener('scroll', onScroll)\n target.value = newTarget\n target.value.addEventListener('scroll', onScroll, { passive: true })\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n target.value?.removeEventListener('scroll', onScroll)\n })\n\n // Do we need this? If yes - seems that\n // there's no need to expose onScroll\n canScroll && watch(canScroll, onScroll, { immediate: true })\n\n return {\n scrollThreshold,\n currentScroll,\n currentThreshold,\n isScrollActive,\n scrollRatio,\n\n // required only for testing\n // probably can be removed\n // later (2 chars chlng)\n isScrollingUp,\n savedScroll,\n }\n}\n","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = computed(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.mjs.map","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = shallowRef(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles, isBooted: readonly(isBooted) }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text'\n })\n}, 'VAppBarNavIcon');\nexport const VAppBarNavIcon = genericComponent()({\n name: 'VAppBarNavIcon',\n props: makeVAppBarNavIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VBtn, _mergeProps(props, {\n \"class\": ['v-app-bar-nav-icon']\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarNavIcon.mjs.map","// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text' as const,\n }),\n}, 'VAppBarNavIcon')\n\nexport const VAppBarNavIcon = genericComponent()({\n name: 'VAppBarNavIcon',\n\n props: makeVAppBarNavIconProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VAppBarNavIcon = InstanceType\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtn.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { useSelectLink } from \"../../composables/selectLink.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, withDirectives } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object],\n prependIcon: IconValue,\n appendIcon: IconValue,\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'button'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VBtn');\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n props: makeVBtnProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const group = useGroupItem(props, props.symbol, false);\n const link = useLink(props, attrs);\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active;\n }\n if (link.isLink.value) {\n return link.isActive?.value;\n }\n return group?.isSelected.value;\n });\n const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);\n const variantProps = computed(() => {\n const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;\n return {\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n };\n });\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const isDisabled = computed(() => group?.disabled.value || props.disabled);\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);\n });\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined;\n return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;\n });\n function onClick(e) {\n if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === '_blank')) return;\n link.navigate?.(e);\n group?.toggle();\n }\n useSelectLink(link, group?.select);\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasPrepend = !!(props.prependIcon || slots.prepend);\n const hasAppend = !!(props.appendIcon || slots.append);\n const hasIcon = !!(props.icon && props.icon !== true);\n return withDirectives(_createVNode(Tag, _mergeProps({\n \"type\": Tag === 'a' ? undefined : 'button',\n \"class\": ['v-btn', group?.selectedClass.value, {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--readonly': props.readonly,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],\n \"aria-busy\": props.loading ? true : undefined,\n \"disabled\": isDisabled.value || undefined,\n \"tabindex\": props.loading || props.readonly ? -1 : undefined,\n \"onClick\": onClick,\n \"value\": valueAttr.value\n }, link.linkProps), {\n default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && _createVNode(\"span\", {\n \"key\": \"prepend\",\n \"class\": \"v-btn__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.prependIcon,\n \"defaults\": {\n VIcon: {\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"span\", {\n \"class\": \"v-btn__content\",\n \"data-no-activator\": \"\"\n }, [!slots.default && hasIcon ? _createVNode(VIcon, {\n \"key\": \"content-icon\",\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"disabled\": !hasIcon,\n \"defaults\": {\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default?.() ?? props.text]\n })]), !props.icon && hasAppend && _createVNode(\"span\", {\n \"key\": \"append\",\n \"class\": \"v-btn__append\"\n }, [!slots.append ? _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"icon\": props.appendIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VIcon: {\n icon: props.appendIcon\n }\n }\n }, slots.append)]), !!props.loading && _createVNode(\"span\", {\n \"key\": \"loader\",\n \"class\": \"v-btn__loader\"\n }, [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"width\": \"2\"\n }, null)])]\n }), [[Ripple, !isDisabled.value && props.ripple, '', {\n center: !!props.icon\n }]]);\n });\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VBtn.mjs.map","// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { useSelectLink } from '@/composables/selectLink'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, withDirectives } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VBtnSlots = {\n default: never\n prepend: never\n append: never\n loader: never\n}\n\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VBtn')\n\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n\n props: makeVBtnProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n\n const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color)\n const variantProps = computed(() => {\n const showColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n return ({\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n })\n })\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0)\n : props.value\n })\n\n function onClick (e: MouseEvent) {\n if (\n isDisabled.value ||\n (link.isLink.value && (\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n (e.button !== 0) ||\n attrs.target === '_blank'\n ))\n ) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n\n return withDirectives(\n \n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n \n { !slots.prepend ? (\n \n ) : (\n \n )}\n \n )}\n\n \n { (!slots.default && hasIcon) ? (\n \n ) : (\n \n { slots.default?.() ?? props.text }\n \n )}\n \n\n { !props.icon && hasAppend && (\n \n { !slots.append ? (\n \n ) : (\n \n )}\n \n )}\n\n { !!props.loading && (\n \n { slots.loader?.() ?? (\n \n )}\n \n )}\n ,\n [[\n Ripple,\n !isDisabled.value && props.ripple,\n '',\n { center: !!props.icon },\n ]]\n )\n })\n\n return { group }\n },\n})\n\nexport type VBtn = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VBtnToggle.css\";\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from \"../VBtnGroup/VBtnGroup.mjs\"; // Composables\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps()\n}, 'VBtnToggle');\nexport const VBtnToggle = genericComponent()({\n name: 'VBtnToggle',\n props: makeVBtnToggleProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n next,\n prev,\n select,\n selected\n } = useGroup(props, VBtnToggleSymbol);\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props);\n return _createVNode(VBtnGroup, _mergeProps({\n \"class\": ['v-btn-toggle', props.class]\n }, btnGroupProps, {\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected\n })]\n });\n });\n return {\n next,\n prev,\n select\n };\n }\n});\n//# sourceMappingURL=VBtnToggle.mjs.map","// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick {}\n\nexport const VBtnToggleSymbol: InjectionKey = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: DefaultBtnToggleSlot\n}\n\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n}, 'VBtnToggle')\n\nexport const VBtnToggle = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VBtnToggleSlots,\n) => GenericProps>()({\n name: 'VBtnToggle',\n\n props: makeVBtnToggleProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n })}\n \n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VBtnGroup.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps()\n}, 'VBtnGroup');\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n props: makeVBtnGroupProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-btn-group', {\n 'v-btn-group--divided': props.divided\n }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": props.style\n }, slots);\n });\n }\n});\n//# sourceMappingURL=VBtnGroup.mjs.map","// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n}, 'VBtnGroup')\n\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n\n props: makeVBtnGroupProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n \n )\n })\n },\n})\n\nexport type VBtnGroup = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\nexport type Density = null | 'default' | 'comfortable' | 'compact'\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Composables\nimport { useColor } from \"./color.mjs\"; // Utilities\nimport { computed, unref } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nexport const allowedVariants = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];\nexport function genOverlays(isClickable, name) {\n return _createVNode(_Fragment, null, [isClickable && _createVNode(\"span\", {\n \"key\": \"overlay\",\n \"class\": `${name}__overlay`\n }, null), _createVNode(\"span\", {\n \"key\": \"underlay\",\n \"class\": `${name}__underlay`\n }, null)]);\n}\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String,\n default: 'elevated',\n validator: v => allowedVariants.includes(v)\n }\n}, 'variant');\nexport function useVariant(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const variantClasses = computed(() => {\n const {\n variant\n } = unref(props);\n return `${name}--variant-${variant}`;\n });\n const {\n colorClasses,\n colorStyles\n } = useColor(computed(() => {\n const {\n variant,\n color\n } = unref(props);\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color\n };\n }));\n return {\n colorClasses,\n colorStyles,\n variantClasses\n };\n}\n//# sourceMappingURL=variant.mjs.map","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport const allowedVariants = [\n 'elevated',\n 'flat',\n 'tonal',\n 'outlined',\n 'text',\n 'plain',\n] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n variant: Variant\n}\n\nexport function genOverlays (isClickable: boolean, name: string) {\n return (\n <>\n { isClickable && }\n\n \n \n )\n}\n\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String as PropType,\n default: 'elevated',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'variant')\n\nexport function useVariant (\n props: MaybeRef,\n name = getCurrentInstanceName(),\n) {\n const variantClasses = computed(() => {\n const { variant } = unref(props)\n return `${name}--variant-${variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => {\n const { variant, color } = unref(props)\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color,\n }\n }))\n\n return { colorClasses, colorStyles, variantClasses }\n}\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined\n },\n multiple: Boolean,\n mandatory: [Boolean, String],\n max: Number,\n selectedClass: String,\n disabled: Boolean\n}, 'group');\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String\n}, 'group-item');\n\n// Composables\n\nexport function useGroupItem(props, injectKey) {\n let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const vm = getCurrentInstance('useGroupItem');\n if (!vm) {\n throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');\n }\n const id = getUid();\n provide(Symbol.for(`${injectKey.description}:id`), id);\n const group = inject(injectKey, null);\n if (!group) {\n if (!required) return group;\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);\n }\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n group.register({\n id,\n value,\n disabled\n }, vm);\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n const isFirst = computed(() => {\n return group.items.value[0].id === id;\n });\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id;\n });\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);\n watch(isSelected, value => {\n vm.emit('group:selected', {\n value\n });\n }, {\n flush: 'sync'\n });\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: value => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group\n };\n}\nexport function useGroup(props, injectKey) {\n let isUnmounted = false;\n const items = reactive([]);\n const selected = useProxiedModel(props, 'modelValue', [], v => {\n if (v == null) return [];\n return getIds(items, wrapInArray(v));\n }, v => {\n const arr = getValues(items, v);\n return props.multiple ? arr : arr[0];\n });\n const groupVm = getCurrentInstance('useGroup');\n function register(item, vm) {\n // Is there a better way to fix this typing?\n const unwrapped = item;\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index;\n unwrapped.useIndexAsValue = true;\n }\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n function unregister(id) {\n if (isUnmounted) return;\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue();\n const index = items.findIndex(item => item.id === id);\n items.splice(index, 1);\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue() {\n const item = items.find(item => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n onMounted(() => {\n forceMandatoryValue();\n });\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i;\n }\n }\n });\n function select(id, value) {\n const item = items.find(item => item.id === id);\n if (value && item?.disabled) return;\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex(v => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;\n if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n function step(offset) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop');\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex(i => i.id === currentId);\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n if (newItem.disabled) return;\n selected.value = [items[newIndex].id];\n }\n }\n const state = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: id => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: value => getItemIndex(items, value)\n };\n provide(injectKey, state);\n return state;\n}\nfunction getItemIndex(items, value) {\n const ids = getIds(items, [value]);\n if (!ids.length) return -1;\n return items.findIndex(item => item.id === ids[0]);\n}\nfunction getIds(items, modelValue) {\n const ids = [];\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value));\n const itemByIndex = items[value];\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n return ids;\n}\nfunction getValues(items, ids) {\n const values = [];\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.mjs.map","// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref\n disabled: Ref\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref\n isFirst: Ref\n isLast: Ref\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref\n disabled: Ref\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey\n) {\n let isUnmounted = false\n const items = reactive([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n","export { VIcon } from \"./VIcon.mjs\";\nexport { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from \"../../composables/icons.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VIcon } from './VIcon'\nexport { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from '@/composables/icons'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce);\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": hasClick ? 'button' : undefined,\n \"aria-hidden\": !hasClick,\n \"tabindex\": hasClick ? props.disabled ? -1 : 0 : undefined\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce)\n\n return (\n \n { slotValue }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType\n","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n","export { VProgressCircular } from \"./VProgressCircular.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VProgressCircular } from './VProgressCircular'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressCircular.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String],\n modelValue: {\n type: [Number, String],\n default: 0\n },\n rotate: {\n type: [Number, String],\n default: 0\n },\n width: {\n type: [Number, String],\n default: 4\n },\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'div'\n }),\n ...makeThemeProps()\n}, 'VProgressCircular');\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n props: makeVProgressCircularProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const MAGIC_RADIUS_CONSTANT = 20;\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT;\n const root = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const {\n textColorClasses: underlayColorClasses,\n textColorStyles: underlayColorStyles\n } = useTextColor(toRef(props, 'bgColor'));\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));\n const width = computed(() => Number(props.width));\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);\n });\n const diameter = computed(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);\n const strokeWidth = computed(() => width.value / size.value * diameter.value);\n const strokeDashOffset = computed(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));\n watchEffect(() => {\n intersectionRef.value = root.value;\n resizeRef.value = root.value;\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": root,\n \"class\": ['v-progress-circular', {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink'\n }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class],\n \"style\": [sizeStyles.value, textColorStyles.value, props.style],\n \"role\": \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value\n }, {\n default: () => [_createVNode(\"svg\", {\n \"style\": {\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`\n },\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": `0 0 ${diameter.value} ${diameter.value}`\n }, [_createVNode(\"circle\", {\n \"class\": ['v-progress-circular__underlay', underlayColorClasses.value],\n \"style\": underlayColorStyles.value,\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": 0\n }, null), _createVNode(\"circle\", {\n \"class\": \"v-progress-circular__overlay\",\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": strokeDashOffset.value\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-circular__content\"\n }, [slots.default({\n value: normalizedValue.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressCircular.mjs.map","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n}, 'VProgressCircular')\n\ntype VProgressCircularSlots = {\n default: { value: number }\n}\n\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n\n props: makeVProgressCircularProps(),\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n \n \n \n\n \n \n\n { slots.default && (\n
    \n { slots.default({ value: normalizedValue.value }) }\n
    \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressCircular = InstanceType\n","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue';\nimport { SUPPORTS_INTERSECTION } from \"../util/index.mjs\";\nexport function useIntersectionObserver(callback, options) {\n const intersectionRef = ref();\n const isIntersecting = shallowRef(false);\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver(entries => {\n callback?.(entries, observer);\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting);\n }, options);\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n isIntersecting.value = false;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n intersectionRef,\n isIntersecting\n };\n}\n//# sourceMappingURL=intersectionObserver.mjs.map","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref()\n const isIntersecting = shallowRef(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String]\n}, 'loader');\nexport function useLoader(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading\n }));\n return {\n loaderClasses\n };\n}\nexport function LoaderSlot(props, _ref) {\n let {\n slots\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": `${props.name}__loader`\n }, [slots.default?.({\n color: props.color,\n isActive: props.active\n }) || _createVNode(VProgressLinear, {\n \"absolute\": props.absolute,\n \"active\": props.active,\n \"color\": props.color,\n \"height\": \"2\",\n \"indeterminate\": true\n }, null)]);\n}\n//# sourceMappingURL=loader.mjs.map","// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes>,\n { slots }: SetupContext,\n) {\n return (\n
    \n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n \n )}\n
    \n )\n}\n","export { VProgressLinear } from \"./VProgressLinear.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VProgressLinear } from './VProgressLinear'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressLinear.css\";\n\n// Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, Transition } from 'vue';\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100\n },\n modelValue: {\n type: [Number, String],\n default: 0\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VProgressLinear');\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n props: makeVProgressLinearProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const progress = useProxiedModel(props, 'modelValue');\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(props, 'color');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => props.bgColor || props.color));\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color));\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n roundedClasses\n } = useRounded(props);\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const max = computed(() => parseFloat(props.max));\n const height = computed(() => parseFloat(props.height));\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100));\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100));\n const isReversed = computed(() => isRtl.value !== props.reverse);\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;\n function handleClick(e) {\n if (!intersectionRef.value) return;\n const {\n left,\n right,\n width\n } = intersectionRef.value.getBoundingClientRect();\n const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;\n progress.value = Math.round(value / width * max.value);\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": intersectionRef,\n \"class\": ['v-progress-linear', {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped\n }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {})\n }, props.style],\n \"role\": \"progressbar\",\n \"aria-hidden\": props.active ? 'false' : 'true',\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value,\n \"onClick\": props.clickable && handleClick\n }, {\n default: () => [props.stream && _createVNode(\"div\", {\n \"key\": \"stream\",\n \"class\": ['v-progress-linear__stream', textColorClasses.value],\n \"style\": {\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": [backgroundColorStyles.value, {\n opacity: parseFloat(props.bgOpacity),\n width: props.stream ? 0 : undefined\n }]\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],\n \"style\": [bufferColorStyles.value, {\n opacity: parseFloat(props.bufferOpacity),\n width: convertToUnit(normalizedBuffer.value, '%')\n }]\n }, null), _createVNode(Transition, {\n \"name\": transition.value\n }, {\n default: () => [!props.indeterminate ? _createVNode(\"div\", {\n \"class\": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": [barColorStyles.value, {\n width: convertToUnit(normalizedValue.value, '%')\n }]\n }, null) : _createVNode(\"div\", {\n \"class\": \"v-progress-linear__indeterminate\"\n }, [['long', 'short'].map(bar => _createVNode(\"div\", {\n \"key\": bar,\n \"class\": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": barColorStyles.value\n }, null))])]\n }), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-linear__content\"\n }, [slots.default({\n value: normalizedValue.value,\n buffer: normalizedBuffer.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressLinear.mjs.map","// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useRtl } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\ntype VProgressLinearSlots = {\n default: { value: number, buffer: number }\n}\n\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VProgressLinear')\n\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n\n props: makeVProgressLinearProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl, rtlClasses } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { locationStyles } = useLocation(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const {\n backgroundColorClasses,\n backgroundColorStyles,\n } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles,\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color))\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles,\n } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseFloat(props.max))\n const height = computed(() => parseFloat(props.height))\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100))\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100))\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n \n { props.stream && (\n \n )}\n\n \n\n \n\n \n { !props.indeterminate ? (\n \n ) : (\n
    \n {['long', 'short'].map(bar => (\n \n ))}\n
    \n )}\n
    \n\n { slots.default && (\n
    \n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n
    \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressLinear = InstanceType\n","// Composables\nimport { useRtl } from \"./locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.mjs\"; // Types\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const makeLocationProps = propsFactory({\n location: String\n}, 'location');\nexport function useLocation(props) {\n let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let offset = arguments.length > 2 ? arguments[2] : undefined;\n const {\n isRtl\n } = useRtl();\n const locationStyles = computed(() => {\n if (!props.location) return {};\n const {\n side,\n align\n } = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);\n function getOffset(side) {\n return offset ? offset(side) : 0;\n }\n const styles = {};\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;\n } else {\n if (side === 'center') styles.top = styles.left = '50%';else {\n styles[{\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top'\n }[side]] = '50%';\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)'\n }[side];\n }\n return styles;\n });\n return {\n locationStyles\n };\n}\n//# sourceMappingURL=location.mjs.map","// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | null | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String,\n validator: /* istanbul ignore next */v => positionValues.includes(v)\n }\n}, 'position');\nexport function usePosition(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n return {\n positionClasses\n };\n}\n//# sourceMappingURL=position.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n","// Utilities\nimport { computed, nextTick, onScopeDispose, reactive, resolveDynamicComponent, toRef } from 'vue';\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nexport function useRoute() {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\nexport function useRouter() {\n return getCurrentInstance('useRouter')?.proxy?.$router;\n}\nexport function useLink(props, attrs) {\n const RouterLink = resolveDynamicComponent('RouterLink');\n const isLink = computed(() => !!(props.href || props.to));\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');\n });\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href');\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({\n href\n })\n };\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || '')\n }));\n const routerLink = RouterLink.useLink(linkProps.value);\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined);\n const route = useRoute();\n const isActive = computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n });\n const href = computed(() => props.to ? link.value?.route.value.href : props.href);\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined)\n })\n };\n}\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object],\n exact: Boolean\n}, 'router');\nlet inTransition = false;\nexport function useBackButton(router, cb) {\n let popped = false;\n let removeBefore;\n let removeAfter;\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next());\n } else {\n popped ? cb(next) : next();\n }\n inTransition = true;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n function onPopstate(e) {\n if (e.state?.replaced) return;\n popped = true;\n setTimeout(() => popped = false);\n }\n}\n//# sourceMappingURL=router.mjs.map","// Utilities\nimport {\n computed,\n nextTick,\n onScopeDispose, reactive,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit>, 'href'> {\n isLink: ComputedRef\n isClickable: ComputedRef\n href: Ref\n linkProps: Record\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n const href = toRef(props, 'href')\n return {\n isLink,\n isClickable,\n href,\n linkProps: reactive({ href }),\n }\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || ''),\n }))\n\n const routerLink = RouterLink.useLink(linkProps.value as UseLinkOptions)\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined)\n const route = useRoute()\n const isActive = computed(() => {\n if (!link.value) return false\n if (!props.exact) return link.value.isActive?.value ?? false\n if (!route.value) return link.value.isExactActive?.value ?? false\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query)\n })\n const href = computed(() => props.to ? link.value?.route.value.href : props.href)\n\n return {\n isLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': computed(() => isActive.value ? 'page' : undefined),\n }),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Utilities\nimport { nextTick, watch } from 'vue';\n\n// Types\n\nexport function useSelectLink(link, select) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true);\n });\n }\n }, {\n immediate: true\n });\n}\n//# sourceMappingURL=selectLink.mjs.map","// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n","// Styles\nimport \"./VRipple.css\";\n\n// Utilities\nimport { isObject, keyCodes } from \"../../util/index.mjs\"; // Types\nconst stopSymbol = Symbol('rippleStop');\nconst DELAY_RIPPLE = 80;\nfunction transform(el, value) {\n el.style.transform = value;\n el.style.webkitTransform = value;\n}\nfunction isTouchEvent(e) {\n return e.constructor.name === 'TouchEvent';\n}\nfunction isKeyboardEvent(e) {\n return e.constructor.name === 'KeyboardEvent';\n}\nconst calculate = function (e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let localX = 0;\n let localY = 0;\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect();\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;\n localX = target.clientX - offset.left;\n localY = target.clientY - offset.top;\n }\n let radius = 0;\n let scale = 0.3;\n if (el._ripple?.circle) {\n scale = 0.15;\n radius = el.clientWidth / 2;\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;\n }\n const centerX = `${(el.clientWidth - radius * 2) / 2}px`;\n const centerY = `${(el.clientHeight - radius * 2) / 2}px`;\n const x = value.center ? centerX : `${localX - radius}px`;\n const y = value.center ? centerY : `${localY - radius}px`;\n return {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n };\n};\nconst ripples = {\n /* eslint-disable max-statements */\n show(e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!el?._ripple?.enabled) {\n return;\n }\n const container = document.createElement('span');\n const animation = document.createElement('span');\n container.appendChild(animation);\n container.className = 'v-ripple__container';\n if (value.class) {\n container.className += ` ${value.class}`;\n }\n const {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n } = calculate(e, el, value);\n const size = `${radius * 2}px`;\n animation.className = 'v-ripple__animation';\n animation.style.width = size;\n animation.style.height = size;\n el.appendChild(container);\n const computed = window.getComputedStyle(el);\n if (computed && computed.position === 'static') {\n el.style.position = 'relative';\n el.dataset.previousPosition = 'static';\n }\n animation.classList.add('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--visible');\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);\n animation.dataset.activated = String(performance.now());\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--in');\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);\n }, 0);\n },\n hide(el) {\n if (!el?._ripple?.enabled) return;\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 0) return;\n const animation = ripples[ripples.length - 1];\n if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in');\n animation.classList.add('v-ripple__animation--out');\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition;\n delete el.dataset.previousPosition;\n }\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode);\n }, 300);\n }, delay);\n }\n};\nfunction isRippleEnabled(value) {\n return typeof value === 'undefined' || !!value;\n}\nfunction rippleShow(e) {\n const value = {};\n const element = e.currentTarget;\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return;\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true;\n if (isTouchEvent(e)) {\n element._ripple.touched = true;\n element._ripple.isTouch = true;\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return;\n }\n value.center = element._ripple.centered || isKeyboardEvent(e);\n if (element._ripple.class) {\n value.class = element._ripple.class;\n }\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return;\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value);\n };\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n }\n }, DELAY_RIPPLE);\n } else {\n ripples.show(e, element, value);\n }\n}\nfunction rippleStop(e) {\n e[stopSymbol] = true;\n}\nfunction rippleHide(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n window.clearTimeout(element._ripple.showTimer);\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e);\n });\n return;\n }\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false;\n }\n });\n ripples.hide(element);\n}\nfunction rippleCancelShow(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null;\n }\n window.clearTimeout(element._ripple.showTimer);\n}\nlet keyboardRipple = false;\nfunction keyboardRippleShow(e) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true;\n rippleShow(e);\n }\n}\nfunction keyboardRippleHide(e) {\n keyboardRipple = false;\n rippleHide(e);\n}\nfunction focusRippleHide(e) {\n if (keyboardRipple) {\n keyboardRipple = false;\n rippleHide(e);\n }\n}\nfunction updateRipple(el, binding, wasEnabled) {\n const {\n value,\n modifiers\n } = binding;\n const enabled = isRippleEnabled(value);\n if (!enabled) {\n ripples.hide(el);\n }\n el._ripple = el._ripple ?? {};\n el._ripple.enabled = enabled;\n el._ripple.centered = modifiers.center;\n el._ripple.circle = modifiers.circle;\n if (isObject(value) && value.class) {\n el._ripple.class = value.class;\n }\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, {\n passive: true\n });\n el.addEventListener('mousedown', rippleStop);\n return;\n }\n el.addEventListener('touchstart', rippleShow, {\n passive: true\n });\n el.addEventListener('touchend', rippleHide, {\n passive: true\n });\n el.addEventListener('touchmove', rippleCancelShow, {\n passive: true\n });\n el.addEventListener('touchcancel', rippleHide);\n el.addEventListener('mousedown', rippleShow);\n el.addEventListener('mouseup', rippleHide);\n el.addEventListener('mouseleave', rippleHide);\n el.addEventListener('keydown', keyboardRippleShow);\n el.addEventListener('keyup', keyboardRippleHide);\n el.addEventListener('blur', focusRippleHide);\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, {\n passive: true\n });\n } else if (!enabled && wasEnabled) {\n removeListeners(el);\n }\n}\nfunction removeListeners(el) {\n el.removeEventListener('mousedown', rippleShow);\n el.removeEventListener('touchstart', rippleShow);\n el.removeEventListener('touchend', rippleHide);\n el.removeEventListener('touchmove', rippleCancelShow);\n el.removeEventListener('touchcancel', rippleHide);\n el.removeEventListener('mouseup', rippleHide);\n el.removeEventListener('mouseleave', rippleHide);\n el.removeEventListener('keydown', keyboardRippleShow);\n el.removeEventListener('keyup', keyboardRippleHide);\n el.removeEventListener('dragstart', rippleHide);\n el.removeEventListener('blur', focusRippleHide);\n}\nfunction mounted(el, binding) {\n updateRipple(el, binding, false);\n}\nfunction unmounted(el) {\n delete el._ripple;\n removeListeners(el);\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n const wasEnabled = isRippleEnabled(binding.oldValue);\n updateRipple(el, binding, wasEnabled);\n}\nexport const Ripple = {\n mounted,\n unmounted,\n updated\n};\nexport default Ripple;\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from \"../VToolbar/VToolbarTitle.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\"; // Types\nexport const VAppBarTitle = genericComponent()({\n name: 'VAppBarTitle',\n props: makeVToolbarTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VToolbarTitle, _mergeProps(props, {\n \"class\": \"v-app-bar-title\"\n }), slots));\n return {};\n }\n});\n//# sourceMappingURL=VAppBarTitle.mjs.map","// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from '@/components/VToolbar/VToolbarTitle'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { VToolbarTitleSlots } from '@/components/VToolbar/VToolbarTitle'\n\nexport const VAppBarTitle = genericComponent()({\n name: 'VAppBarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VAppBarTitle = InstanceType\n","export { VAlert } from \"./VAlert.mjs\";\nexport { VAlertTitle } from \"./VAlertTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAlert } from './VAlert'\nexport { VAlertTitle } from './VAlertTitle'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAlert.css\";\n\n// Components\nimport { VAlertTitle } from \"./VAlertTitle.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst allowedTypes = ['success', 'info', 'warning', 'error'];\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String],\n validator: val => {\n return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);\n }\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n icon: {\n type: [Boolean, String, Function, Object],\n default: null\n },\n modelValue: {\n type: Boolean,\n default: true\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String,\n validator: val => allowedTypes.includes(val)\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAlert');\nexport const VAlert = genericComponent()({\n name: 'VAlert',\n props: makeVAlertProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const icon = computed(() => {\n if (props.icon === false) return undefined;\n if (!props.type) return props.icon;\n return props.icon ?? `$${props.type}`;\n });\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant\n }));\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'borderColor'));\n const {\n t\n } = useLocale();\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value);\n const hasTitle = !!(slots.title || props.title);\n const hasClose = !!(slots.close || props.closable);\n return isActive.value && _createVNode(props.tag, {\n \"class\": ['v-alert', props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true\n }, {\n 'v-alert--prominent': props.prominent\n }, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"alert\"\n }, {\n default: () => [genOverlays(false, 'v-alert'), props.border && _createVNode(\"div\", {\n \"key\": \"border\",\n \"class\": ['v-alert__border', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-alert__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": icon.value,\n \"size\": props.prominent ? 44 : 28\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !icon.value,\n \"defaults\": {\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-alert__content\"\n }, [hasTitle && _createVNode(VAlertTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-alert__append\"\n }, [slots.append()]), hasClose && _createVNode(\"div\", {\n \"key\": \"close\",\n \"class\": \"v-alert__close\"\n }, [!slots.close ? _createVNode(VBtn, _mergeProps({\n \"key\": \"close-btn\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\",\n \"variant\": \"text\"\n }, closeProps.value), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.close?.({\n props: closeProps.value\n })]\n })])]\n });\n };\n }\n});\n//# sourceMappingURL=VAlert.mjs.map","// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String] as PropType,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VAlert')\n\nexport type VAlertSlots = {\n default: never\n prepend: never\n title: never\n text: never\n append: never\n close: { props: Record }\n}\n\nexport const VAlert = genericComponent()({\n name: 'VAlert',\n\n props: makeVAlertProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n \n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n \n )}\n\n { hasPrepend && (\n
    \n { !slots.prepend ? (\n \n ) : (\n \n )}\n
    \n )}\n\n
    \n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n
    \n\n { slots.append && (\n
    \n { slots.append() }\n
    \n )}\n\n { hasClose && (\n
    \n { !slots.close ? (\n \n ) : (\n \n { slots.close?.({ props: closeProps.value }) }\n \n )}\n
    \n )}\n \n )\n }\n },\n})\n\nexport type VAlert = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VAlertTitle = createSimpleFunctional('v-alert-title');\n//# sourceMappingURL=VAlertTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlertTitle = InstanceType\n","export { VBtn } from \"./VBtn.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtn } from './VBtn'\n","export { VAutocomplete } from \"./VAutocomplete.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAutocomplete } from './VAutocomplete'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VAutocomplete.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-autocomplete__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: Boolean,\n search: String,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VAutocomplete');\nexport const VAutocomplete = genericComponent()({\n name: 'VAutocomplete',\n props: makeVAutocompleteProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:search': value => true,\n 'update:modelValue': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const search = useProxiedModel(props, 'search', '');\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm();\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const selectedValues = computed(() => model.value.map(selection => selection.props.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n search.value = '';\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n function onKeydown(e) {\n if (props.readonly || form?.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(displayItems.value[0]);\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);\n }\n }\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n }\n }\n function onChange(e) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === e.target.value);\n if (item) {\n select(item);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n const isSelecting = shallowRef(false);\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return;\n if (val) {\n isSelecting.value = true;\n search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');\n isPristine.value = true;\n nextTick(() => isSelecting.value = false);\n } else {\n if (!props.multiple && search.value == null) model.value = [];\n menu.value = false;\n if (!model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) search.value = '';\n selectionIndex.value = -1;\n }\n });\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return;\n if (val) menu.value = true;\n isPristine.value = !val;\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"onChange\": onChange,\n \"class\": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1\n }, props.class],\n \"style\": props.style,\n \"readonly\": props.readonly,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-autocomplete__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-autocomplete__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VAutocomplete.mjs.map","// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n { text.substr(0, matches) }\n { text.substr(matches, length) }\n { text.substr(matches + length) }\n \n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType,\n },\n clearOnSelect: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VAutocomplete')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VAutocomplete = genericComponent,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VAutocomplete',\n\n props: makeVAutocompleteProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:search': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm()\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const selectedValues = computed(() => model.value.map(selection => selection.props.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus()\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n }\n\n function onChange (e: Event) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === (e.target as HTMLInputElement).value)\n if (item) {\n select(item)\n }\n }\n }\n\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n const isSelecting = shallowRef(false)\n\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return\n\n if (val) {\n isSelecting.value = true\n search.value = (props.multiple || hasSelectionSlot.value) ? '' : String(model.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n if (!props.multiple && search.value == null) model.value = []\n menu.value = false\n if (!model.value.some(({ title }) => title === search.value)) search.value = ''\n selectionIndex.value = -1\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => item.value === s.value)\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n -1,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n \n { hasChips.value ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n
    \n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType\n","export { VAvatar } from \"./VAvatar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VAvatar } from './VAvatar'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VAvatar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAvatar');\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n props: makeVAvatarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-avatar', {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, sizeStyles.value, props.style]\n }, {\n default: () => [!slots.default ? props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"alt\": \"\",\n \"cover\": true\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": props.icon\n }, null) : props.text : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n },\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default()]\n }), genOverlays(false, 'v-avatar')]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VAvatar.mjs.map","// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VAvatar')\n\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n \n { !slots.default ? (\n props.image\n ? ()\n : props.icon\n ? ()\n : props.text\n ) : (\n \n { slots.default() }\n \n )}\n\n { genOverlays(false, 'v-avatar') }\n \n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType\n","export { VCheckbox } from \"./VCheckbox.mjs\";\nexport { VCheckboxBtn } from \"./VCheckboxBtn.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCheckbox } from './VCheckbox'\nexport { VCheckboxBtn } from './VCheckboxBtn'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VCheckbox.css\";\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from \"./VCheckboxBtn.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline'])\n}, 'VCheckbox');\nexport const VCheckbox = genericComponent()({\n name: 'VCheckbox',\n inheritAttrs: false,\n props: makeVCheckboxProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:focused': focused => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const uid = getUid();\n const id = computed(() => props.id || `checkbox-${uid}`);\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const checkboxProps = VCheckboxBtn.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-checkbox', props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VCheckboxBtn, _mergeProps(checkboxProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value\n }, controlAttrs, {\n \"error\": isValid.value === false,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"onFocus\": focus,\n \"onBlur\": blur\n }), slots);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckbox.mjs.map","// Styles\nimport './VCheckbox.sass'\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from './VCheckboxBtn'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '../VSelectionControl/VSelectionControl'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { GenericProps } from '@/util'\n\nexport type VCheckboxSlots = Omit & VSelectionControlSlots\n\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline']),\n}, 'VCheckbox')\n\nexport const VCheckbox = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VCheckboxSlots,\n) => GenericProps>()({\n name: 'VCheckbox',\n\n inheritAttrs: false,\n\n props: makeVCheckboxProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:focused': (focused: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `checkbox-${uid}`)\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const checkboxProps = VCheckboxBtn.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCheckbox = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate'\n },\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn'\n })\n}, 'VCheckboxBtn');\nexport const VCheckboxBtn = genericComponent()({\n name: 'VCheckboxBtn',\n props: makeVCheckboxBtnProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n function onChange(v) {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n const falseIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.falseIcon;\n });\n const trueIcon = computed(() => {\n return indeterminate.value ? props.indeterminateIcon : props.trueIcon;\n });\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue']);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"class\": ['v-checkbox-btn', props.class],\n \"style\": props.style,\n \"type\": \"checkbox\",\n \"falseIcon\": falseIcon.value,\n \"trueIcon\": trueIcon.value,\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckboxBtn.mjs.map","// Components\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\nimport type { GenericProps } from '@/util'\n\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn',\n }),\n}, 'VCheckboxBtn')\n\nexport const VCheckboxBtn = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSelectionControlSlots,\n) => GenericProps>()({\n name: 'VCheckboxBtn',\n\n props: makeVCheckboxBtnProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n\n function onChange (v: any) {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n const falseIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.falseIcon\n })\n\n const trueIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue'])\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCheckboxBtn = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VSelectionControl.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, matchesSelector, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps()\n}, 'VSelectionControl');\nexport function useSelectionControl(props) {\n const group = inject(VSelectionControlGroupSymbol, undefined);\n const {\n densityClasses\n } = useDensity(props);\n const modelValue = useProxiedModel(props, 'modelValue');\n const trueValue = computed(() => props.trueValue !== undefined ? props.trueValue : props.value !== undefined ? props.value : true);\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false);\n const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));\n const model = computed({\n get() {\n const val = group ? group.modelValue.value : modelValue.value;\n return isMultiple.value ? wrapInArray(val).some(v => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);\n },\n set(val) {\n if (props.readonly) return;\n const currentValue = val ? trueValue.value : falseValue.value;\n let newVal = currentValue;\n if (isMultiple.value) {\n newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter(item => !props.valueComparator(item, trueValue.value));\n }\n if (group) {\n group.modelValue.value = newVal;\n } else {\n modelValue.value = newVal;\n }\n }\n });\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined;\n return model.value ? props.color : props.baseColor;\n }));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => {\n return model.value && !props.error && !props.disabled ? props.color : props.baseColor;\n }));\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon\n };\n}\nexport const VSelectionControl = genericComponent()({\n name: 'VSelectionControl',\n directives: {\n Ripple\n },\n inheritAttrs: false,\n props: makeVSelectionControlProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue\n } = useSelectionControl(props);\n const uid = getUid();\n const isFocused = shallowRef(false);\n const isFocusVisible = shallowRef(false);\n const input = ref();\n const id = computed(() => props.id || `input-${uid}`);\n const isInteractive = computed(() => !props.disabled && !props.readonly);\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value;\n }\n });\n function onFocus(e) {\n if (!isInteractive.value) return;\n isFocused.value = true;\n if (matchesSelector(e.target, ':focus-visible') !== false) {\n isFocusVisible.value = true;\n }\n }\n function onBlur() {\n isFocused.value = false;\n isFocusVisible.value = false;\n }\n function onClickLabel(e) {\n e.stopPropagation();\n }\n function onInput(e) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value;\n }\n return;\n }\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate());\n }\n model.value = e.target.checked;\n }\n useRender(() => {\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const inputNode = _createVNode(\"input\", _mergeProps({\n \"ref\": input,\n \"checked\": model.value,\n \"disabled\": !!props.disabled,\n \"id\": id.value,\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onInput\": onInput,\n \"aria-disabled\": !!props.disabled,\n \"aria-label\": props.label,\n \"type\": props.type,\n \"value\": trueValue.value,\n \"name\": props.name,\n \"aria-checked\": props.type === 'checkbox' ? model.value : undefined\n }, inputAttrs), null);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-selection-control', {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': props.inline\n }, densityClasses.value, props.class]\n }, rootAttrs, {\n \"style\": props.style\n }), [_createVNode(\"div\", {\n \"class\": ['v-selection-control__wrapper', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles\n }), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-selection-control__input']\n }, [slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value\n }\n }) ?? _createVNode(_Fragment, null, [icon.value && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": icon.value\n }, null), inputNode])]), [[_resolveDirective(\"ripple\"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && _createVNode(VLabel, {\n \"for\": id.value,\n \"onClick\": onClickLabel\n }, {\n default: () => [label]\n })]);\n });\n return {\n isFocused,\n input\n };\n }\n});\n//# sourceMappingURL=VSelectionControl.mjs.map","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue'\nimport {\n filterInputAttrs,\n genericComponent,\n getUid,\n matchesSelector,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { CSSProperties, ExtractPropTypes, Ref, VNode, WritableComputedRef } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { EventProp, GenericProps } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef\n textColorClasses: Ref\n textColorStyles: Ref\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n inputNode: VNode\n icon: IconValue | undefined\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport type VSelectionControlSlots = {\n default: {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n }\n label: { label: string | undefined, props: Record }\n input: SelectionControlSlot\n}\n\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps(),\n}, 'VSelectionControl')\n\nexport function useSelectionControl (\n props: ExtractPropTypes> & {\n 'onUpdate:modelValue': EventProp | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? wrapInArray(val).some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined\n\n return model.value ? props.color : props.baseColor\n }))\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : props.baseColor\n }))\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon)\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSelectionControlSlots,\n) => GenericProps>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeVSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const isFocused = shallowRef(false)\n const isFocusVisible = shallowRef(false)\n const input = ref()\n const id = computed(() => props.id || `input-${uid}`)\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value\n }\n })\n\n function onFocus (e: FocusEvent) {\n if (!isInteractive.value) return\n\n isFocused.value = true\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') !== false) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n function onClickLabel (e: Event) {\n e.stopPropagation()\n }\n\n function onInput (e: Event) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value\n }\n\n return\n }\n\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate())\n }\n model.value = (e.target as HTMLInputElement).checked\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n \n )\n\n return (\n \n \n { slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles,\n })}\n\n \n { slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n } satisfies SelectionControlSlot) ?? (\n <>\n { icon.value && }\n\n { inputNode }\n \n )}\n \n \n\n { label && (\n \n { label }\n \n )}\n \n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType\n","export { VLabel } from \"./VLabel.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLabel } from './VLabel'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLabel.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLabelProps = propsFactory({\n text: String,\n onClick: EventProp(),\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VLabel');\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n props: makeVLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"label\", {\n \"class\": ['v-label', {\n 'v-label--clickable': !!props.onClick\n }, props.class],\n \"style\": props.style,\n \"onClick\": props.onClick\n }, [props.text, slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLabel.mjs.map","// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLabelProps = propsFactory({\n text: String,\n\n onClick: EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VLabel')\n\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n\n props: makeVLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n { props.text }\n\n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSelectionControlGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeThemeProps } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue';\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group');\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean,\n default: null\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n multiple: {\n type: Boolean,\n default: null\n },\n name: String,\n readonly: {\n type: Boolean,\n default: null\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps()\n}, 'SelectionControlGroup');\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl'\n })\n}, 'VSelectionControlGroup');\nexport const VSelectionControlGroup = genericComponent()({\n name: 'VSelectionControlGroup',\n props: makeVSelectionControlGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const modelValue = useProxiedModel(props, 'modelValue');\n const uid = getUid();\n const id = computed(() => props.id || `v-selection-control-group-${uid}`);\n const name = computed(() => props.name || id.value);\n const updateHandlers = new Set();\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn());\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb);\n onScopeDispose(() => {\n updateHandlers.delete(cb);\n });\n }\n });\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-selection-control-group', {\n 'v-selection-control-group--inline': props.inline\n }, props.class],\n \"style\": props.style,\n \"role\": props.type === 'radio' ? 'radiogroup' : undefined\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VSelectionControlGroup.mjs.map","// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { computed, onScopeDispose, provide, toRef } from 'vue'\nimport { deepEqual, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\nimport type { GenericProps } from '@/util'\n\nexport interface VSelectionGroupContext {\n modelValue: Ref\n forceUpdate: () => void\n onForceUpdate: (fn: () => void) => void\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey = Symbol.for('vuetify:selection-control-group')\n\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n multiple: {\n type: Boolean as PropType,\n default: null,\n },\n name: String,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps(),\n}, 'SelectionControlGroup')\n\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl',\n }),\n}, 'VSelectionControlGroup')\n\nexport const VSelectionControlGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: { default: never },\n) => GenericProps>()({\n name: 'VSelectionControlGroup',\n\n props: makeVSelectionControlGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n const updateHandlers = new Set<() => void>()\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn())\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb)\n onScopeDispose(() => {\n updateHandlers.delete(cb)\n })\n },\n })\n\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n density: toRef(props, 'density'),\n error: toRef(props, 'error'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n type: toRef(props, 'type'),\n valueComparator: toRef(props, 'valueComparator'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VInput.css\";\n\n// Components\nimport { useInputIcon } from \"./InputIcon.mjs\";\nimport { VMessages } from \"../VMessages/VMessages.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String],\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String],\n default: () => []\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical'].includes(v)\n },\n 'onClick:prepend': EventProp(),\n 'onClick:append': EventProp(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),\n ...makeThemeProps(),\n ...makeValidationProps()\n}, 'VInput');\nexport const VInput = genericComponent()({\n name: 'VInput',\n props: {\n ...makeVInputProps()\n },\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const {\n InputIcon\n } = useInputIcon(props);\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n } = useValidation(props, 'v-input', id);\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate\n }));\n const messages = computed(() => {\n if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {\n return errorMessages.value;\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint;\n } else {\n return props.messages;\n }\n });\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon);\n const hasAppend = !!(slots.append || props.appendIcon);\n const hasMessages = messages.value.length > 0;\n const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);\n return _createVNode(\"div\", {\n \"class\": ['v-input', `v-input--${props.direction}`, {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons\n }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-input__prepend\"\n }, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prepend\"\n }, null)]), slots.default && _createVNode(\"div\", {\n \"class\": \"v-input__control\"\n }, [slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-input__append\"\n }, [props.appendIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"append\"\n }, null), slots.append?.(slotProps.value)]), hasDetails && _createVNode(\"div\", {\n \"class\": \"v-input__details\"\n }, [_createVNode(VMessages, {\n \"id\": messagesId.value,\n \"active\": hasMessages,\n \"messages\": messages.value\n }, {\n message: slots.message\n }), slots.details?.(slotProps.value)])]);\n });\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages\n };\n }\n});\n//# sourceMappingURL=VInput.mjs.map","// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef\n messagesId: ComputedRef\n isDirty: ComputedRef\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isPristine: Ref\n isValid: ComputedRef\n isValidating: Ref\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), [\n 'maxWidth',\n 'minWidth',\n 'width',\n ]),\n ...makeThemeProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n \n { hasPrepend && (\n
    \n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n \n )}\n
    \n )}\n\n { slots.default && (\n
    \n { slots.default?.(slotProps.value) }\n
    \n )}\n\n { hasAppend && (\n
    \n { props.appendIcon && (\n \n )}\n\n { slots.append?.(slotProps.value) }\n
    \n )}\n\n { hasDetails && (\n
    \n \n\n { slots.details?.(slotProps.value) }\n
    \n )}\n \n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Types\nexport function useInputIcon(props) {\n const {\n t\n } = useLocale();\n function InputIcon(_ref) {\n let {\n name\n } = _ref;\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear'\n }[name];\n const listener = props[`onClick:${name}`];\n const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;\n return _createVNode(VIcon, {\n \"icon\": props[`${name}Icon`],\n \"aria-label\": label,\n \"onClick\": listener\n }, null);\n }\n return {\n InputIcon\n };\n}\n//# sourceMappingURL=InputIcon.mjs.map","// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp any> = T | T[]\ntype InputIconProps = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon> (props: T & InputIconProps) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n \n )\n }\n\n return { InputIcon }\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMessages.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String],\n default: () => []\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true\n }\n })\n}, 'VMessages');\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n props: makeVMessagesProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const messages = computed(() => wrapInArray(props.messages));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => props.color));\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"tag\": \"div\",\n \"class\": ['v-messages', textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style],\n \"role\": \"alert\",\n \"aria-live\": \"polite\"\n }, {\n default: () => [props.active && messages.value.map((message, i) => _createVNode(\"div\", {\n \"class\": \"v-messages__message\",\n \"key\": `${i}-${messages.value}`\n }, [slots.message ? slots.message({\n message\n }) : message]))]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMessages.mjs.map","// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: VMessageSlot\n}\n\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition as Component,\n leaveAbsolute: true,\n group: true,\n },\n }),\n}, 'VMessages')\n\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n\n props: makeVMessagesProps(),\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n \n { props.active && (\n messages.value.map((message, i) => (\n \n { slots.message ? slots.message({ message }) : message }\n \n ))\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType\n","// Composables\nimport { makeFocusProps } from \"./focus.mjs\";\nimport { useForm } from \"./form.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\";\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue';\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String],\n default: () => []\n },\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean,\n default: null\n },\n rules: {\n type: Array,\n default: () => []\n },\n modelValue: null,\n validateOn: String,\n validationValue: null,\n ...makeFocusProps()\n}, 'validation');\nexport function useValidation(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();\n const model = useProxiedModel(props, 'modelValue');\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);\n const form = useForm();\n const internalErrorMessages = ref([]);\n const isPristine = shallowRef(true);\n const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value));\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value));\n const errorMessages = computed(() => {\n return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;\n });\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules.length) return true;\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;\n } else {\n return !internalErrorMessages.value.length;\n }\n });\n const isValidating = shallowRef(false);\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value\n };\n });\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n onBeforeUnmount(() => {\n form?.unregister(uid.value);\n });\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n }\n form?.update(uid.value, isValid.value, errorMessages.value);\n });\n useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate();\n unwatch();\n });\n }\n });\n });\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate();\n });\n });\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value);\n });\n async function reset() {\n model.value = null;\n await nextTick();\n await resetValidation();\n }\n async function resetValidation() {\n isPristine.value = true;\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n async function validate() {\n let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const results = [];\n isValidating.value = true;\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break;\n }\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n if (result === true) continue;\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);\n continue;\n }\n results.push(result || '');\n }\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPristine.value = silent;\n return internalErrorMessages.value;\n }\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n//# sourceMappingURL=validation.mjs.map","// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'\ntype ValidateOn =\n | ValidateOnValue\n | `${ValidateOnValue} lazy`\n | `${ValidateOnValue} eager`\n | `lazy ${ValidateOnValue}`\n | `eager ${ValidateOnValue}`\n | 'lazy'\n | 'eager'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOn\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n if (value === 'eager') value = 'input eager'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input || (validateOn.value.invalidInput && isValid.value === false), () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n async function reset () {\n model.value = null\n await nextTick()\n await resetValidation()\n }\n\n async function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n","export { __values as _ } from \"tslib\";\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp()\n}, 'focus');\nexport function useFocus(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const isFocused = useProxiedModel(props, 'focused');\n const focusClasses = computed(() => {\n return {\n [`${name}--focused`]: isFocused.value\n };\n });\n function focus() {\n isFocused.value = true;\n }\n function blur() {\n isFocused.value = false;\n }\n return {\n focusClasses,\n isFocused,\n focus,\n blur\n };\n}\n//# sourceMappingURL=focus.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[boolean]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue';\nimport { consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\nexport const FormKey = Symbol.for('vuetify:form');\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n validateOn: {\n type: String,\n default: 'input'\n }\n}, 'form');\nexport function createForm(props) {\n const model = useProxiedModel(props, 'modelValue');\n const isDisabled = computed(() => props.disabled);\n const isReadonly = computed(() => props.readonly);\n const isValidating = shallowRef(false);\n const items = ref([]);\n const errors = ref([]);\n async function validate() {\n const results = [];\n let valid = true;\n errors.value = [];\n isValidating.value = true;\n for (const item of items.value) {\n const itemErrorMessages = await item.validate();\n if (itemErrorMessages.length > 0) {\n valid = false;\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages\n });\n }\n if (!valid && props.fastFail) break;\n }\n errors.value = results;\n isValidating.value = false;\n return {\n valid,\n errors: errors.value\n };\n }\n function reset() {\n items.value.forEach(item => item.reset());\n }\n function resetValidation() {\n items.value.forEach(item => item.resetValidation());\n }\n watch(items, () => {\n let valid = 0;\n let invalid = 0;\n const results = [];\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++;\n results.push({\n id: item.id,\n errorMessages: item.errorMessages\n });\n } else if (item.isValid === true) valid++;\n }\n errors.value = results;\n model.value = invalid > 0 ? false : valid === items.value.length ? true : null;\n }, {\n deep: true,\n flush: 'post'\n });\n provide(FormKey, {\n register: _ref => {\n let {\n id,\n vm,\n validate,\n reset,\n resetValidation\n } = _ref;\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`);\n }\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: []\n });\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id;\n });\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id);\n if (!found) return;\n found.isValid = isValid;\n found.errorMessages = errorMessages;\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn')\n });\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation\n };\n}\nexport function useForm() {\n return inject(FormKey, null);\n}\n//# sourceMappingURL=form.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, InjectionKey, PropType, Raw, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\nimport type { EventProp } from '@/util'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n vm: ComponentInternalInstance\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isValidating: Ref\n isValid: Ref\n validateOn: Ref\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n vm: Raw\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise {}\n\nexport const FormKey: InjectionKey = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType,\n default: null,\n },\n validateOn: {\n type: String as PropType,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref([])\n const errors = ref([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true, flush: 'post' })\n\n provide(FormKey, {\n register: ({ id, vm, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n","export { VChip } from \"./VChip.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VChip } from './VChip'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _withDirectives, vShow as _vShow, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n/* eslint-disable complexity */\n// Styles\nimport \"./VChip.css\";\n\n// Components\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VChipGroupSymbol } from \"../VChipGroup/VChipGroup.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { EventProp, genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete'\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true\n },\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'span'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChip');\nexport const VChip = genericComponent()({\n name: 'VChip',\n directives: {\n Ripple\n },\n props: makeVChipProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true,\n 'group:selected': val => true,\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses\n } = useSize(props);\n const {\n themeClasses\n } = provideTheme(props);\n const isActive = useProxiedModel(props, 'modelValue');\n const group = useGroupItem(props, VChipGroupSymbol, false);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n group?.toggle();\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e);\n }\n }\n return () => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasClose = !!(slots.close || props.closable);\n const hasFilter = !!(slots.filter || props.filter) && group;\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasColor = !group || group.isSelected.value;\n return isActive.value && _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-chip', {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill\n }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],\n \"style\": [hasColor ? colorStyles.value : undefined, props.style],\n \"disabled\": props.disabled || undefined,\n \"draggable\": props.draggable,\n \"tabindex\": isClickable.value ? 0 : undefined,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && _createVNode(VExpandXTransition, {\n \"key\": \"filter\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-chip__filter\"\n }, [!slots.filter ? _createVNode(VIcon, {\n \"key\": \"filter-icon\",\n \"icon\": props.filterIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"filter-defaults\",\n \"disabled\": !props.filterIcon,\n \"defaults\": {\n VIcon: {\n icon: props.filterIcon\n }\n }\n }, slots.filter)]), [[_vShow, group.isSelected.value]])]\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-chip__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon,\n \"start\": true\n }, null), props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"image\": props.prependAvatar,\n \"start\": true\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n image: props.prependAvatar,\n start: true\n },\n VIcon: {\n icon: props.prependIcon,\n start: true\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-chip__content\",\n \"data-no-activator\": \"\"\n }, [slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled\n }) ?? props.text]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-chip__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"end\": true,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"end\": true,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n end: true,\n image: props.appendAvatar\n },\n VIcon: {\n end: true,\n icon: props.appendIcon\n }\n }\n }, slots.append)]), hasClose && _createVNode(\"button\", _mergeProps({\n \"key\": \"close\",\n \"class\": \"v-chip__close\",\n \"type\": \"button\",\n \"data-testid\": \"close-chip\"\n }, closeProps.value), [!slots.close ? _createVNode(VIcon, {\n \"key\": \"close-icon\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\"\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small'\n }\n }\n }, slots.close)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple, null]]);\n };\n }\n});\n//# sourceMappingURL=VChip.mjs.map","/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VChipSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean\n }\n label: never\n prepend: never\n append: never\n close: never\n filter: never\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChip')\n\nexport const VChip = genericComponent()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n \n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n \n \n { !slots.filter ? (\n \n ) : (\n \n )}\n \n \n )}\n\n { hasPrepend && (\n
    \n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n \n )}\n\n { props.prependAvatar && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n\n
    \n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n
    \n\n { hasAppend && (\n
    \n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n\n { hasClose && (\n \n { !slots.close ? (\n \n ) : (\n \n )}\n \n )}\n \n )\n }\n },\n})\n\nexport type VChip = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VChipGroup.css\";\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-chip--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChipGroup');\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n props: makeVChipGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VChipGroupSymbol);\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n return _createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"class\": ['v-chip-group', {\n 'v-chip-group--column': props.column\n }, themeClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VChipGroup.mjs.map","// Styles\nimport './VChipGroup.sass'\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChipGroup')\n\ntype VChipGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VChipGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VChipGroupSlots,\n) => GenericProps>()({\n name: 'VChipGroup',\n\n props: makeVChipGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useGoTo } from \"../../composables/goto.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.mjs\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active'\n })\n}, 'VSlideGroup');\nexport const VSlideGroup = genericComponent()({\n name: 'VSlideGroup',\n props: makeVSlideGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const group = useGroup(props, props.symbol);\n const isOverflowing = shallowRef(false);\n const scrollOffset = shallowRef(0);\n const containerSize = shallowRef(0);\n const contentSize = shallowRef(0);\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const {\n resizeRef: containerRef,\n contentRect: containerRect\n } = useResizeObserver();\n const {\n resizeRef: contentRef,\n contentRect\n } = useResizeObserver();\n const goTo = useGoTo();\n const goToOptions = computed(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart'\n };\n });\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[0]);\n });\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);\n });\n if (IN_BROWSER) {\n let frame = -1;\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height';\n containerSize.value = containerRect.value[sizeProperty];\n contentSize.value = contentRect.value[sizeProperty];\n isOverflowing.value = containerSize.value + 1 < contentSize.value;\n }\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value];\n scrollToChildren(selectedElement, props.centerActive);\n }\n });\n });\n }\n const isFocused = shallowRef(false);\n function scrollToChildren(children, center) {\n let target = 0;\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n selectedElement: children\n });\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children\n });\n }\n scrollToPosition(target);\n }\n function scrollToPosition(newPosition) {\n if (!IN_BROWSER || !containerRef.el) return;\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n if (scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16) return;\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition = scrollWidth - containerWidth - newPosition;\n }\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value);\n } else {\n goTo(newPosition, goToOptions.value);\n }\n }\n function onScroll(e) {\n const {\n scrollTop,\n scrollLeft\n } = e.target;\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;\n }\n function onFocusin(e) {\n isFocused.value = true;\n if (!isOverflowing.value || !contentRef.el) return;\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item);\n return;\n }\n }\n }\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false;\n function onFocus(e) {\n if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();\n ignoreFocusEvent = false;\n }\n function onFocusAffixes() {\n ignoreFocusEvent = true;\n }\n function onKeydown(e) {\n if (!contentRef.el) return;\n function toFocus(location) {\n e.preventDefault();\n focus(location);\n }\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next');\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev');\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next');\n } else if (e.key === 'ArrowUp') {\n toFocus('prev');\n }\n }\n if (e.key === 'Home') {\n toFocus('first');\n } else if (e.key === 'End') {\n toFocus('last');\n }\n }\n function focus(location) {\n if (!contentRef.el) return;\n let el;\n if (!location) {\n const focusable = focusableChildren(contentRef.el);\n el = focusable[0];\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling;\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling;\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n }\n if (el) {\n el.focus({\n preventScroll: true\n });\n }\n }\n function scrollTo(location) {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1;\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;\n let newPosition = scrollOffset.value + offsetStep;\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition += scrollWidth - containerWidth;\n }\n scrollToPosition(newPosition);\n }\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected\n }));\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n\n // Always show arrows on desktop\n case 'desktop':\n return !mobile.value;\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true:\n return isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && (isOverflowing.value || Math.abs(scrollOffset.value) > 0);\n }\n });\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1;\n });\n const hasNext = computed(() => {\n if (!containerRef.value) return false;\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n const clientSize = getClientSize(isHorizontal.value, containerRef.el);\n const scrollSizeMax = scrollSize - clientSize;\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1;\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-slide-group', {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value\n }, displayClasses.value, props.class],\n \"style\": props.style,\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": ['v-slide-group__prev', {\n 'v-slide-group__prev--disabled': !hasPrev.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasPrev.value && scrollTo('prev')\n }, [slots.prev?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.nextIcon : props.prevIcon\n }, null)]\n })]), _createVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": \"v-slide-group__container\",\n \"onScroll\": onScroll\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-slide-group__content\",\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onKeydown\": onKeydown\n }, [slots.default?.(slotProps.value)])]), hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"next\",\n \"class\": ['v-slide-group__next', {\n 'v-slide-group__next--disabled': !hasNext.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasNext.value && scrollTo('next')\n }, [slots.next?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.prevIcon : props.nextIcon\n }, null)]\n })])]\n }));\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.mjs.map","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const goTo = useGoTo()\n const goToOptions = computed>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\n }\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\n })\n\n useRender(() => (\n \n { hasAffixes.value && (\n hasPrev.value && scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n\n \n \n { slots.default?.(slotProps.value) }\n \n \n\n { hasAffixes.value && (\n hasNext.value && scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n \n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType\n","export function calculateUpdatedTarget(_ref) {\n let {\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal\n } = _ref;\n const containerSize = getOffsetSize(isHorizontal, containerElement);\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);\n const childrenSize = getOffsetSize(isHorizontal, selectedElement);\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);\n const additionalOffset = childrenSize * 0.4;\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset;\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset;\n }\n return scrollPosition;\n}\nexport function calculateCenteredTarget(_ref2) {\n let {\n selectedElement,\n containerElement,\n isHorizontal\n } = _ref2;\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);\n return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;\n}\nexport function getScrollSize(isHorizontal, element) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';\n return element?.[key] || 0;\n}\nexport function getClientSize(isHorizontal, element) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight';\n return element?.[key] || 0;\n}\nexport function getScrollPosition(isHorizontal, rtl, element) {\n if (!element) {\n return 0;\n }\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = element;\n if (isHorizontal) {\n return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;\n }\n return element.scrollTop;\n}\nexport function getOffsetSize(isHorizontal, element) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n return element?.[key] || 0;\n}\nexport function getOffsetPosition(isHorizontal, element) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop';\n return element?.[key] || 0;\n}\n//# sourceMappingURL=helpers.mjs.map","export function calculateUpdatedTarget ({\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const containerSize = getOffsetSize(isHorizontal, containerElement)\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement)\n\n const childrenSize = getOffsetSize(isHorizontal, selectedElement)\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement)\n\n const additionalOffset = childrenSize * 0.4\n\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset\n }\n\n return scrollPosition\n}\n\nexport function calculateCenteredTarget ({\n selectedElement,\n containerElement,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isHorizontal: boolean\n}): number {\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement)\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement)\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement)\n\n return childrenOffsetPosition - (containerOffsetSize / 2) + (childrenOffsetSize / 2)\n}\n\nexport function getScrollSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight'\n return element?.[key] || 0\n}\n\nexport function getClientSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight'\n return element?.[key] || 0\n}\n\nexport function getScrollPosition (isHorizontal: boolean, rtl: boolean, element?: HTMLElement) {\n if (!element) {\n return 0\n }\n\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth,\n } = element\n\n if (isHorizontal) {\n return rtl\n ? scrollWidth - offsetWidth + scrollLeft\n : scrollLeft\n }\n\n return element.scrollTop\n}\n\nexport function getOffsetSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight'\n return element?.[key] || 0\n}\n\nexport function getOffsetPosition (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop'\n return element?.[key] || 0\n}\n","export { VList } from \"./VList.mjs\";\nexport { VListGroup } from \"./VListGroup.mjs\";\nexport { VListImg } from \"./VListImg.mjs\";\nexport { VListItem } from \"./VListItem.mjs\";\nexport { VListItemAction } from \"./VListItemAction.mjs\";\nexport { VListItemMedia } from \"./VListItemMedia.mjs\";\nexport { VListItemSubtitle } from \"./VListItemSubtitle.mjs\";\nexport { VListItemTitle } from \"./VListItemTitle.mjs\";\nexport { VListSubheader } from \"./VListSubheader.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VList } from './VList'\nexport { VListGroup } from './VListGroup'\nexport { VListImg } from './VListImg'\nexport { VListItem } from './VListItem'\nexport { VListItemAction } from './VListItemAction'\nexport { VListItemMedia } from './VListItemMedia'\nexport { VListItemSubtitle } from './VListItemSubtitle'\nexport { VListItemTitle } from './VListItemTitle'\nexport { VListSubheader } from './VListSubheader'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VList.css\";\n\n// Components\nimport { VListChildren } from \"./VListChildren.mjs\"; // Composables\nimport { createList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeItemsProps } from \"../../composables/list-items.mjs\";\nimport { makeNestedProps, useNested } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';\n}\nfunction transformItem(props, item) {\n const type = getPropertyFromItem(item, props.itemType, 'item');\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);\n const value = getPropertyFromItem(item, props.itemValue, undefined);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nfunction transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useListItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: String,\n collapseIcon: String,\n lines: {\n type: [Boolean, String],\n default: 'one'\n },\n slim: Boolean,\n nav: Boolean,\n 'onClick:open': EventProp(),\n 'onClick:select': EventProp(),\n 'onUpdate:opened': EventProp(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf',\n openStrategy: 'list'\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type'\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VList');\nexport const VList = genericComponent()({\n name: 'VList',\n props: makeVListProps(),\n emits: {\n 'update:selected': value => true,\n 'update:activated': value => true,\n 'update:opened': value => true,\n 'click:open': value => true,\n 'click:activate': value => true,\n 'click:select': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items\n } = useListItems(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n children,\n open,\n parents,\n select,\n getPath\n } = useNested(props);\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);\n const activeColor = toRef(props, 'activeColor');\n const baseColor = toRef(props, 'baseColor');\n const color = toRef(props, 'color');\n createList();\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon')\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant')\n }\n });\n const isFocused = shallowRef(false);\n const contentRef = ref();\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n function onFocus(e) {\n if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();\n }\n function onKeydown(e) {\n const target = e.target;\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return;\n if (e.key === 'ArrowDown') {\n focus('next');\n } else if (e.key === 'ArrowUp') {\n focus('prev');\n } else if (e.key === 'Home') {\n focus('first');\n } else if (e.key === 'End') {\n focus('last');\n } else {\n return;\n }\n e.preventDefault();\n }\n function onMousedown(e) {\n isFocused.value = true;\n }\n function focus(location) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location);\n }\n }\n useRender(() => {\n return _createVNode(props.tag, {\n \"ref\": contentRef,\n \"class\": ['v-list', {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": props.disabled || isFocused.value ? -1 : 0,\n \"role\": \"listbox\",\n \"aria-activedescendant\": undefined,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onFocus\": onFocus,\n \"onKeydown\": onKeydown,\n \"onMousedown\": onMousedown\n }, {\n default: () => [_createVNode(VListChildren, {\n \"items\": items.value,\n \"returnObject\": props.returnObject\n }, slots)]\n });\n });\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath\n };\n }\n});\n//# sourceMappingURL=VList.mjs.map","// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem extends ListItem {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction isPrimitive (value: unknown): value is string | number | boolean {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: String,\n collapseIcon: String,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemChildren?: SelectItemKey>\n itemProps?: SelectItemKey>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots>\n) => GenericProps>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon'),\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n \n \n \n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VListGroup } from \"./VListGroup.mjs\";\nimport { VListItem } from \"./VListItem.mjs\";\nimport { VListSubheader } from \"./VListSubheader.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\"; // Utilities\nimport { createList } from \"./list.mjs\";\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVListChildrenProps = propsFactory({\n items: Array,\n returnObject: Boolean\n}, 'VListChildren');\nexport const VListChildren = genericComponent()({\n name: 'VListChildren',\n props: makeVListChildrenProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n createList();\n return () => slots.default?.() ?? props.items?.map(_ref2 => {\n let {\n children,\n props: itemProps,\n type,\n raw: item\n } = _ref2;\n if (type === 'divider') {\n return slots.divider?.({\n props: itemProps\n }) ?? _createVNode(VDivider, itemProps, null);\n }\n if (type === 'subheader') {\n return slots.subheader?.({\n props: itemProps\n }) ?? _createVNode(VListSubheader, itemProps, null);\n }\n const slotsWithItem = {\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({\n ...slotProps,\n item\n }) : undefined,\n prepend: slots.prepend ? slotProps => slots.prepend?.({\n ...slotProps,\n item\n }) : undefined,\n append: slots.append ? slotProps => slots.append?.({\n ...slotProps,\n item\n }) : undefined,\n title: slots.title ? slotProps => slots.title?.({\n ...slotProps,\n item\n }) : undefined\n };\n const listGroupProps = VListGroup.filterProps(itemProps);\n return children ? _createVNode(VListGroup, _mergeProps({\n \"value\": itemProps?.value\n }, listGroupProps), {\n activator: _ref3 => {\n let {\n props: activatorProps\n } = _ref3;\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value\n };\n return slots.header ? slots.header({\n props: listItemProps\n }) : _createVNode(VListItem, listItemProps, slotsWithItem);\n },\n default: () => _createVNode(VListChildren, {\n \"items\": children,\n \"returnObject\": props.returnObject\n }, slots)\n }) : slots.item ? slots.item({\n props: itemProps\n }) : _createVNode(VListItem, _mergeProps(itemProps, {\n \"value\": props.returnObject ? item : itemProps.value\n }), slotsWithItem);\n });\n }\n});\n//# sourceMappingURL=VListChildren.mjs.map","// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '../VDivider'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots = {\n [K in keyof Omit]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots\n) => GenericProps>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n \n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n \n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n \n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value,\n }\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n \n )\n },\n default: () => (\n \n ),\n }}\n \n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n \n )\n )\n })\n },\n})\n","import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpandTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedGroupActivator, useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n useNestedGroupActivator();\n return () => slots.default?.();\n }\n});\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListGroup');\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n props: makeVListGroupProps(),\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const {\n isOpen,\n open,\n id: _id\n } = useNestedItem(toRef(props, 'value'), true);\n const id = computed(() => `v-list-group--id-${String(_id.value)}`);\n const list = useList();\n const {\n isBooted\n } = useSsrBoot();\n function onClick(e) {\n e.stopPropagation();\n open(!isOpen.value, e);\n }\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value\n }));\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon);\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,\n appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,\n title: props.title,\n value: props.value\n }\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-group', {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.activator && _createVNode(VDefaultsProvider, {\n \"defaults\": activatorDefaults.value\n }, {\n default: () => [_createVNode(VListGroupActivator, null, {\n default: () => [slots.activator({\n props: activatorProps.value,\n isOpen: isOpen.value\n })]\n })]\n }), _createVNode(MaybeTransition, {\n \"transition\": {\n component: VExpandTransition\n },\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-list-group__items\",\n \"role\": \"group\",\n \"aria-labelledby\": id.value\n }, [slots.default?.()]), [[_vShow, isOpen.value]])]\n })]\n }));\n return {\n isOpen\n };\n }\n});\n//# sourceMappingURL=VListGroup.mjs.map","// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useList } from './list'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VListGroupSlots = {\n default: never\n activator: { isOpen: boolean, props: Record }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListGroup')\n\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n\n props: makeVListGroupProps(),\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n const { isBooted } = useSsrBoot()\n\n function onClick (e: Event) {\n e.stopPropagation()\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }))\n\n useRender(() => (\n \n { slots.activator && (\n \n \n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n \n \n )}\n\n \n
    \n { slots.default?.() }\n
    \n
    \n \n ))\n\n return {\n isOpen,\n }\n },\n})\n\nexport type VListGroup = InstanceType\n","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue';\n\n// Types\n\n// Depth\nexport const DepthKey = Symbol.for('vuetify:depth');\nexport function useDepth(hasPrepend) {\n const parent = inject(DepthKey, shallowRef(-1));\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0));\n provide(DepthKey, depth);\n return depth;\n}\n\n// List\nexport const ListKey = Symbol.for('vuetify:list');\nexport function createList() {\n const parent = inject(ListKey, {\n hasPrepend: shallowRef(false),\n updateHasPrepend: () => null\n });\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: value => {\n if (value) data.hasPrepend.value = value;\n }\n };\n provide(ListKey, data);\n return parent;\n}\nexport function useList() {\n return inject(ListKey, null);\n}\n//# sourceMappingURL=list.mjs.map","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref) {\n const parent = inject(DepthKey, shallowRef(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: shallowRef(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n","// Composables\nimport { useProxiedModel } from \"../proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue';\nimport { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from \"./activeStrategies.mjs\";\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from \"./openStrategies.mjs\";\nimport { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from \"./selectStrategies.mjs\";\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VNestedSymbol = Symbol.for('vuetify:nested');\nexport const emptyNested = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => []\n }\n};\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object],\n selectStrategy: [String, Function, Object],\n openStrategy: [String, Object],\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean\n}, 'nested');\nexport const useNested = props => {\n let isUnmounted = false;\n const children = ref(new Map());\n const parents = ref(new Map());\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));\n const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n function getPath(id) {\n const path = [];\n let parent = id;\n while (parent != null) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n return path;\n }\n const vm = getCurrentInstance('nested');\n const nodeIds = new Set();\n const nested = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n parentId && id !== parentId && parents.value.set(id, parentId);\n isGroup && children.value.set(id, []);\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n },\n unregister: id => {\n if (isUnmounted) return;\n nodeIds.delete(id);\n children.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(parent, list.filter(child => child !== id));\n }\n parents.value.delete(id);\n },\n open: (id, value, event) => {\n vm.emit('click:open', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newSelected && (selected.value = newSelected);\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n vm.emit('click:activate', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newActivated && (activated.value = newActivated);\n },\n children,\n parents,\n getPath\n }\n };\n provide(VNestedSymbol, nested);\n return nested.root;\n};\nexport const useNestedItem = (id, isGroup) => {\n const parent = inject(VNestedSymbol, emptyNested);\n const uidSymbol = Symbol(getUid());\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);\n const item = {\n ...parent,\n id: computedId,\n open: (open, e) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated, e) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected, e) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value);\n });\n isGroup && provide(VNestedSymbol, item);\n return item;\n};\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested);\n provide(VNestedSymbol, {\n ...parent,\n isGroupActivator: true\n });\n};\n//# sourceMappingURL=nested.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref\n isGroupActivator?: boolean\n root: {\n children: Ref>\n parents: Ref>\n activatable: Ref\n selectable: Ref\n opened: Ref>\n activated: Ref>\n selected: Ref>\n selectedValues: Ref\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType,\n selectStrategy: [String, Function, Object] as PropType,\n openStrategy: [String, Object] as PropType,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map())\n const parents = ref(new Map())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nimport { wrapInArray } from \"../../util/index.mjs\";\nexport const independentActiveStrategy = mandatory => {\n const strategy = {\n activate: _ref => {\n let {\n id,\n value,\n activated\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated;\n if (value) {\n activated.add(id);\n } else {\n activated.delete(id);\n }\n return activated;\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents\n });\n }\n }\n return set;\n },\n out: v => {\n return Array.from(v);\n }\n };\n return strategy;\n};\nexport const independentSingleActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref2 => {\n let {\n activated,\n id,\n ...rest\n } = _ref2;\n id = toRaw(id);\n const singleSelected = activated.has(id) ? new Set([id]) : new Set();\n return parentStrategy.activate({\n ...rest,\n id,\n activated: singleSelected\n });\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n const arr = wrapInArray(v);\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents);\n }\n }\n return set;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref3 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref3;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleActiveStrategy = mandatory => {\n const parentStrategy = independentSingleActiveStrategy(mandatory);\n const strategy = {\n activate: _ref4 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\n//# sourceMappingURL=activeStrategies.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\nimport { wrapInArray } from '@/util'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type ActiveStrategyTransformInFn = (\n v: unknown | undefined,\n children: Map,\n parents: Map,\n) => Set\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set,\n children: Map,\n parents: Map,\n) => unknown\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n const arr = wrapInArray(v)\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents)\n }\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n","export const singleOpenStrategy = {\n open: _ref => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref;\n if (value) {\n const newOpened = new Set();\n newOpened.add(id);\n let parent = parents.get(id);\n while (parent != null) {\n newOpened.add(parent);\n parent = parents.get(parent);\n }\n return newOpened;\n } else {\n opened.delete(id);\n return opened;\n }\n },\n select: () => null\n};\nexport const multipleOpenStrategy = {\n open: _ref2 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref2;\n if (value) {\n let parent = parents.get(id);\n opened.add(id);\n while (parent != null && parent !== id) {\n opened.add(parent);\n parent = parents.get(parent);\n }\n return opened;\n } else {\n opened.delete(id);\n }\n return opened;\n },\n select: () => null\n};\nexport const listOpenStrategy = {\n open: multipleOpenStrategy.open,\n select: _ref3 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref3;\n if (!value) return opened;\n const path = [];\n let parent = parents.get(id);\n while (parent != null) {\n path.push(parent);\n parent = parents.get(parent);\n }\n return new Set(path);\n }\n};\n//# sourceMappingURL=openStrategies.mjs.map","export type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Set | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nexport const independentSelectStrategy = mandatory => {\n const strategy = {\n select: _ref => {\n let {\n id,\n value,\n selected\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref2) => {\n let [key, value] = _ref2;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 1 && on[0] === id) return selected;\n }\n selected.set(id, value ? 'on' : 'off');\n return selected;\n },\n in: (v, children, parents) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents\n });\n }\n return map;\n },\n out: v => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\nexport const independentSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref3 => {\n let {\n selected,\n id,\n ...rest\n } = _ref3;\n id = toRaw(id);\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();\n return parentStrategy.select({\n ...rest,\n id,\n selected: singleSelected\n });\n },\n in: (v, children, parents) => {\n let map = new Map();\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents);\n }\n return map;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref4 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSingleSelectStrategy(mandatory);\n const strategy = {\n select: _ref5 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref5;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const classicSelectStrategy = mandatory => {\n const strategy = {\n select: _ref6 => {\n let {\n id,\n value,\n selected,\n children,\n parents\n } = _ref6;\n id = toRaw(id);\n const original = new Map(selected);\n const items = [id];\n while (items.length) {\n const item = items.shift();\n selected.set(toRaw(item), value ? 'on' : 'off');\n if (children.has(item)) {\n items.push(...children.get(item));\n }\n }\n let parent = toRaw(parents.get(id));\n while (parent) {\n const childrenIds = children.get(parent);\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');\n parent = toRaw(parents.get(parent));\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref7) => {\n let [key, value] = _ref7;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 0) return original;\n }\n return selected;\n },\n in: (v, children, parents) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents\n });\n }\n return map;\n },\n out: (v, children) => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\n//# sourceMappingURL=selectStrategies.mjs.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Map\n\nexport type SelectStrategyTransformInFn = (\n v: readonly unknown[] | undefined,\n children: Map,\n parents: Map,\n) => Map\n\nexport type SelectStrategyTransformOutFn = (\n v: Map,\n children: Map,\n parents: Map,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n id = toRaw(id)\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(toRaw(item), value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = toRaw(parents.get(id))\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = toRaw(parents.get(parent))\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VListItem.css\";\n\n// Components\nimport { VListItemSubtitle } from \"./VListItemSubtitle.mjs\";\nimport { VListItemTitle } from \"./VListItemTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useList } from \"./list.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useNestedItem } from \"../../composables/nested/nested.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, watch } from 'vue';\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String],\n link: {\n type: Boolean,\n default: undefined\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VListItem');\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n directives: {\n Ripple\n },\n props: makeVListItemProps(),\n emits: {\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const link = useLink(props, attrs);\n const id = computed(() => props.value === undefined ? link.href.value : props.value);\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid\n } = useNestedItem(id, false);\n const list = useList();\n const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));\n const roundedProps = computed(() => props.rounded || props.nav);\n const color = computed(() => props.color ?? props.activeColor);\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n }));\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true);\n }\n if (val) {\n openOnSelect(val);\n }\n }, {\n immediate: true\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(roundedProps);\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value\n }));\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n if (isGroupActivator) return;\n if (root.activatable.value) {\n activate(!isActivated.value, e);\n } else if (root.selectable.value) {\n select(!isSelected.value, e);\n } else if (props.value != null) {\n select(!isSelected.value, e);\n }\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.target.dispatchEvent(new MouseEvent('click', e));\n }\n }\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = slots.title || props.title != null;\n const hasSubtitle = slots.subtitle || props.subtitle != null;\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n list?.updateHasPrepend(hasPrepend);\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color']);\n }\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-list-item', {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": isClickable.value ? list ? -2 : 0 : undefined,\n \"aria-selected\": root.activatable.value ? isActivated.value : isSelected.value,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }, link.linkProps), {\n default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-list-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n },\n VListItemAction: {\n start: true\n }\n }\n }, {\n default: () => [slots.prepend?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-list-item__content\",\n \"data-no-activator\": \"\"\n }, [hasTitle && _createVNode(VListItemTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.({\n title: props.title\n }) ?? props.title]\n }), hasSubtitle && _createVNode(VListItemSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.({\n subtitle: props.subtitle\n }) ?? props.subtitle]\n }), slots.default?.(slotProps.value)]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-list-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n },\n VListItemAction: {\n end: true\n }\n }\n }, {\n default: () => [slots.append?.(slotProps.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)])]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid\n };\n }\n});\n//# sourceMappingURL=VListItem.mjs.map","// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n \n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n
    \n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n { slots.prepend?.(slotProps.value) }\n \n )}\n\n
    \n
    \n )}\n\n
    \n { hasTitle && (\n \n { slots.title?.({ title: props.title }) ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n
    \n\n { hasAppend && (\n
    \n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n { slots.append?.(slotProps.value) }\n \n )}\n\n
    \n
    \n )}\n \n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n }\n },\n})\n\nexport type VListItem = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemSubtitle');\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n props: makeVListItemSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-subtitle', props.class],\n \"style\": [{\n '--v-list-item-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemSubtitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemSubtitle')\n\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n\n props: makeVListItemSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VListItemSubtitle = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title');\n//# sourceMappingURL=VListItemTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title')\n\nexport type VListItemTitle = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListSubheader');\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n props: makeVListSubheaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const hasText = !!(slots.default || props.title);\n return _createVNode(props.tag, {\n \"class\": ['v-list-subheader', {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky\n }, textColorClasses.value, props.class],\n \"style\": [{\n textColorStyles\n }, props.style]\n }, {\n default: () => [hasText && _createVNode(\"div\", {\n \"class\": \"v-list-subheader__text\"\n }, [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VListSubheader.mjs.map","// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListSubheader')\n\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n\n props: makeVListSubheaderProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n \n { hasText && (\n
    \n { slots.default?.() ?? props.title }\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VListSubheader = InstanceType\n","export { VDivider } from \"./VDivider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDivider } from './VDivider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDivider.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VDivider');\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n props: makeVDividerProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const dividerStyles = computed(() => {\n const styles = {};\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);\n }\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);\n }\n return styles;\n });\n useRender(() => {\n const divider = _createVNode(\"hr\", {\n \"class\": [{\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical\n }, themeClasses.value, textColorClasses.value, props.class],\n \"style\": [dividerStyles.value, textColorStyles.value, {\n '--v-border-opacity': props.opacity\n }, props.style],\n \"aria-orientation\": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,\n \"role\": `${attrs.role || 'separator'}`\n }, null);\n if (!slots.default) return divider;\n return _createVNode(\"div\", {\n \"class\": ['v-divider__wrapper', {\n 'v-divider__wrapper--vertical': props.vertical,\n 'v-divider__wrapper--inset': props.inset\n }]\n }, [divider, _createVNode(\"div\", {\n \"class\": \"v-divider__content\"\n }, [slots.default()]), divider]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDivider.mjs.map","// Styles\nimport './VDivider.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'height' | 'width'\ntype DividerStyles = Partial>\n\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VDivider')\n\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n\n props: makeVDividerProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n useRender(() => {\n const divider = (\n \n )\n\n if (!slots.default) return divider\n\n return (\n \n { divider }\n\n
    \n { slots.default() }\n
    \n\n { divider }\n
    \n )\n })\n\n return {}\n },\n})\n\nexport type VDivider = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { deepEqual, getPropertyFromItem, omit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: [String, Array, Function],\n default: 'title'\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'value'\n },\n itemChildren: {\n type: [Boolean, String, Array, Function],\n default: 'children'\n },\n itemProps: {\n type: [Boolean, String, Array, Function],\n default: 'props'\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n }\n}, 'list-items');\nexport function transformItem(props, item) {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, title);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useItems(props) {\n const items = computed(() => transformItems(props, props.items));\n const hasNullItem = computed(() => items.value.some(item => item.value === null));\n function transformIn(value) {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null);\n }\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v);\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v);\n });\n }\n function transformOut(value) {\n return props.returnObject ? value.map(_ref => {\n let {\n raw\n } = _ref;\n return raw;\n }) : value.map(_ref2 => {\n let {\n value\n } = _ref2;\n return value;\n });\n }\n return {\n items,\n transformIn,\n transformOut\n };\n}\n//# sourceMappingURL=list-items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, omit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport interface ListItem extends InternalItem {\n title: string\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: ListItem[]\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n valueComparator: typeof deepEqual\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'props',\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n}, 'list-items')\n\nexport function transformItem (props: Omit, item: any): ListItem {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? omit(item, ['children'])\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit, items: ItemProps['items']) {\n const array: ListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n const hasNullItem = computed(() => items.value.some(item => item.value === null))\n\n function transformIn (value: any[]): ListItem[] {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null)\n }\n\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v)\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v)\n })\n }\n\n function transformOut (value: ListItem[]): any[] {\n return props.returnObject\n ? value.map(({ raw }) => raw)\n : value.map(({ value }) => value)\n }\n\n return { items, transformIn, transformOut }\n}\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VListImg = createSimpleFunctional('v-list-img');\n//# sourceMappingURL=VListImg.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VListImg = createSimpleFunctional('v-list-img')\n\nexport type VListImg = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemActionProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemAction');\nexport const VListItemAction = genericComponent()({\n name: 'VListItemAction',\n props: makeVListItemActionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-list-item-action', {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemAction.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemActionProps = propsFactory({\n start: Boolean,\n end: Boolean,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemAction')\n\nexport const VListItemAction = genericComponent()({\n name: 'VListItemAction',\n\n props: makeVListItemActionProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VListItemAction = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVListItemMediaProps = propsFactory({\n start: Boolean,\n end: Boolean,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemMedia');\nexport const VListItemMedia = genericComponent()({\n name: 'VListItemMedia',\n props: makeVListItemMediaProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-list-item-media', {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end\n }, props.class],\n \"style\": props.style\n }, slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VListItemMedia.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemMediaProps = propsFactory({\n start: Boolean,\n end: Boolean,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemMedia')\n\nexport const VListItemMedia = genericComponent()({\n name: 'VListItemMedia',\n\n props: makeVListItemMediaProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VListItemMedia = InstanceType\n","export { VMenu } from \"./VMenu.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMenu } from './VMenu'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMenu.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, watch } from 'vue';\nimport { VMenuSymbol } from \"./shared.mjs\";\nimport { focusableChildren, focusChild, genericComponent, getNextElement, getUid, isClickInsideElement, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected',\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition',\n transition: {\n component: VDialogTransition\n }\n }), ['absolute'])\n}, 'VMenu');\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n props: makeVMenuProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const {\n isRtl\n } = useRtl();\n const uid = getUid();\n const id = computed(() => props.id || `v-menu-${uid}`);\n const overlay = ref();\n const parent = inject(VMenuSymbol, null);\n const openChildren = shallowRef(new Set());\n provide(VMenuSymbol, {\n register() {\n openChildren.value.add(uid);\n },\n unregister() {\n openChildren.value.delete(uid);\n },\n closeParents(e) {\n setTimeout(() => {\n if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {\n isActive.value = false;\n parent?.closeParents();\n }\n }, 40);\n }\n });\n onBeforeUnmount(() => parent?.unregister());\n onDeactivated(() => isActive.value = false);\n async function onFocusIn(e) {\n const before = e.relatedTarget;\n const after = e.target;\n await nextTick();\n if (isActive.value && before !== after && overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n focusable[0]?.focus();\n }\n }\n watch(isActive, val => {\n if (val) {\n parent?.register();\n document.addEventListener('focusin', onFocusIn, {\n once: true\n });\n } else {\n parent?.unregister();\n document.removeEventListener('focusin', onFocusIn);\n }\n });\n function onClickOutside(e) {\n parent?.closeParents(e);\n }\n function onKeydown(e) {\n if (props.disabled) return;\n if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {\n if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;\n if (e.key === 'Enter') e.preventDefault();\n const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);\n if (!nextElement) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n }\n function onActivatorKeydown(e) {\n if (props.disabled) return;\n const el = overlay.value?.contentEl;\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'next');\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'prev');\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault();\n focusChild(el, 'first');\n }\n }\n } else if (props.submenu ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight') : ['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true;\n e.preventDefault();\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)));\n }\n }\n const activatorProps = computed(() => mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"id\": id.value,\n \"class\": ['v-menu', props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"absolute\": true,\n \"activatorProps\": activatorProps.value,\n \"location\": props.location ?? (props.submenu ? 'end' : 'bottom'),\n \"onClick:outside\": onClickOutside,\n \"onKeydown\": onKeydown\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VMenu\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({\n id,\n ΨopenChildren: openChildren\n }, overlay);\n }\n});\n//# sourceMappingURL=VMenu.mjs.map","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => parent?.unregister())\n onDeactivated(() => isActive.value = false)\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => (\n \n { slots.default?.(...args) }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType\n","export { VOverlay } from \"./VOverlay.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VOverlay } from './VOverlay'\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, vShow as _vShow, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VOverlay.css\";\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from \"./locationStrategies.mjs\";\nimport { makeScrollStrategyProps, useScrollStrategies } from \"./scrollStrategies.mjs\";\nimport { makeActivatorProps, useActivator } from \"./useActivator.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useHydration } from \"../../composables/hydration.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useBackButton, useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useStack } from \"../../composables/stack.mjs\";\nimport { useTeleport } from \"../../composables/teleport.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport { ClickOutside } from \"../../directives/click-outside/index.mjs\"; // Utilities\nimport { computed, mergeProps, onBeforeUnmount, ref, Teleport, toRef, Transition, watch } from 'vue';\nimport { animate, convertToUnit, genericComponent, getCurrentInstance, getScrollParent, IN_BROWSER, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nfunction Scrim(props) {\n const {\n modelValue,\n color,\n ...rest\n } = props;\n return _createVNode(Transition, {\n \"name\": \"fade-transition\",\n \"appear\": true\n }, {\n default: () => [props.modelValue && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay__scrim', props.color.backgroundColorClasses.value],\n \"style\": props.color.backgroundColorStyles.value\n }, rest), null)]\n });\n}\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object],\n closeOnBack: {\n type: Boolean,\n default: true\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true\n },\n zIndex: {\n type: [Number, String],\n default: 2000\n },\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps()\n}, 'VOverlay');\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n directives: {\n ClickOutside\n },\n inheritAttrs: false,\n props: {\n _disableGlobalStack: Boolean,\n ...makeVOverlayProps()\n },\n emits: {\n 'click:outside': e => true,\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n slots,\n attrs,\n emit\n } = _ref;\n const vm = getCurrentInstance('VOverlay');\n const root = ref();\n const scrimEl = ref();\n const contentEl = ref();\n const model = useProxiedModel(props, 'modelValue');\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v;\n }\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses,\n isRtl\n } = useRtl();\n const {\n hasContent,\n onAfterLeave: _onAfterLeave\n } = useLazy(props, isActive);\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const {\n globalTop,\n localTop,\n stackStyles\n } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack);\n const {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n } = useActivator(props, {\n isActive,\n isTop: localTop,\n contentEl\n });\n const {\n teleportTarget\n } = useTeleport(() => {\n const target = props.attach || props.contained;\n if (target) return target;\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode();\n if (rootNode instanceof ShadowRoot) return rootNode;\n return false;\n });\n const {\n dimensionStyles\n } = useDimension(props);\n const isMounted = useHydration();\n const {\n scopeId\n } = useScopeId();\n watch(() => props.disabled, v => {\n if (v) isActive.value = false;\n });\n const {\n contentStyles,\n updateLocation\n } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive\n });\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation\n });\n function onClickOutside(e) {\n emit('click:outside', e);\n if (!props.persistent) isActive.value = false;else animateClick();\n }\n function closeConditional(e) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || e instanceof MouseEvent && e.shadowTarget === scrimEl.value);\n }\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown);\n } else {\n window.removeEventListener('keydown', onKeydown);\n }\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return;\n window.removeEventListener('keydown', onKeydown);\n });\n function onKeydown(e) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false;\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus();\n }\n } else animateClick();\n }\n }\n const router = useRouter();\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false);\n if (!props.persistent) isActive.value = false;else animateClick();\n } else {\n next();\n }\n });\n });\n const top = ref();\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value);\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop;\n }\n }\n });\n\n // Add a quick \"bounce\" animation to the content\n function animateClick() {\n if (props.noClickAnimation) return;\n contentEl.value && animate(contentEl.value, [{\n transformOrigin: 'center'\n }, {\n transform: 'scale(1.03)'\n }, {\n transformOrigin: 'center'\n }], {\n duration: 150,\n easing: standardEasing\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n }\n function onAfterLeave() {\n _onAfterLeave();\n emit('afterLeave');\n }\n useRender(() => _createVNode(_Fragment, null, [slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef\n }, activatorEvents.value, props.activatorProps)\n }), isMounted.value && hasContent.value && _createVNode(Teleport, {\n \"disabled\": !teleportTarget.value,\n \"to\": teleportTarget.value\n }, {\n default: () => [_createVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay', {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained\n }, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [stackStyles.value, {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value)\n }, props.style],\n \"ref\": root\n }, scopeId, attrs), [_createVNode(Scrim, _mergeProps({\n \"color\": scrimColor,\n \"modelValue\": isActive.value && !!props.scrim,\n \"ref\": scrimEl\n }, scrimEvents.value), null), _createVNode(MaybeTransition, {\n \"appear\": true,\n \"persisted\": true,\n \"transition\": props.transition,\n \"target\": target.value,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", _mergeProps({\n \"ref\": contentEl,\n \"class\": ['v-overlay__content', props.contentClass],\n \"style\": [dimensionStyles.value, contentStyles.value]\n }, contentEvents.value, props.contentProps), [slots.default?.({\n isActive\n })]), [[_vShow, isActive.value], [_resolveDirective(\"click-outside\"), {\n handler: onClickOutside,\n closeConditional,\n include: () => [activatorEl.value]\n }]])]\n })])]\n })]));\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation\n };\n }\n});\n//# sourceMappingURL=VOverlay.mjs.map","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n \n { props.modelValue && (\n \n )}\n \n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref }\n activator: { isActive: boolean, props: Record, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const vm = getCurrentInstance('VOverlay')\n const root = ref()\n const scrimEl = ref()\n const contentEl = ref()\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop, contentEl })\n const { teleportTarget } = useTeleport(() => {\n const target = props.attach || props.contained\n if (target) return target\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode()\n if (rootNode instanceof ShadowRoot) return rootNode\n return false\n })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || (e instanceof MouseEvent && e.shadowTarget === scrimEl.value)\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus()\n }\n } else animateClick()\n }\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n \n \n \n \n [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n
    \n \n \n \n )}\n \n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType\n","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\nimport { anchorToPoint, getOffset } from \"./util/point.mjs\";\nimport { clamp, consoleError, convertToUnit, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from \"../../util/index.mjs\";\nimport { Box, getOverflow, getTargetBox } from \"../../util/box.mjs\"; // Types\nconst locationStrategies = {\n static: staticLocationStrategy,\n // specific viewport position, usually centered\n connected: connectedLocationStrategy // connected to a certain element\n};\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function],\n default: 'static',\n validator: val => typeof val === 'function' || val in locationStrategies\n },\n location: {\n type: String,\n default: 'bottom'\n },\n origin: {\n type: String,\n default: 'auto'\n },\n offset: [Number, String, Array]\n}, 'VOverlay-location-strategies');\nexport function useLocationStrategies(props, data) {\n const contentStyles = ref({});\n const updateLocation = ref();\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset);\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n updateLocation.value = undefined;\n });\n window.addEventListener('resize', onResize, {\n passive: true\n });\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation;\n }\n });\n }\n function onResize(e) {\n updateLocation.value?.(e);\n }\n return {\n contentStyles,\n updateLocation\n };\n}\nfunction staticLocationStrategy() {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize(el, isRtl) {\n // const scrollables = new Map()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el);\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0);\n } else {\n contentBox.x -= parseFloat(el.style.left || 0);\n }\n contentBox.y -= parseFloat(el.style.top || 0);\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox;\n}\nfunction connectedLocationStrategy(data, props, contentStyles) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0\n });\n }\n const {\n preferredAnchor,\n preferredOrigin\n } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value);\n const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value);\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin)\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin\n };\n }\n });\n const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {\n return computed(() => {\n const val = parseFloat(props[key]);\n return isNaN(val) ? Infinity : val;\n });\n });\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n let observe = false;\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation();\n });\n watch([data.target, data.contentEl], (_ref, _ref2) => {\n let [newTarget, newContentEl] = _ref;\n let [oldTarget, oldContentEl] = _ref2;\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);\n if (oldContentEl) observer.unobserve(oldContentEl);\n if (newContentEl) observer.observe(newContentEl);\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n observer.disconnect();\n });\n\n // eslint-disable-next-line max-statements\n function updateLocation() {\n observe = false;\n requestAnimationFrame(() => observe = true);\n if (!data.target.value || !data.contentEl.value) return;\n const targetBox = getTargetBox(data.target.value);\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);\n const scrollParents = getScrollParents(data.contentEl.value);\n const viewportMargin = 12;\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement);\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);\n }\n }\n const viewport = scrollParents.reduce((box, el) => {\n const rect = el.getBoundingClientRect();\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight\n });\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)\n });\n }\n return scrollBox;\n }, undefined);\n viewport.x += viewportMargin;\n viewport.y += viewportMargin;\n viewport.width -= viewportMargin * 2;\n viewport.height -= viewportMargin * 2;\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value\n };\n function checkOverflow(_placement) {\n const box = new Box(contentBox);\n const targetPoint = anchorToPoint(_placement.anchor, targetBox);\n const contentPoint = anchorToPoint(_placement.origin, box);\n let {\n x,\n y\n } = getOffset(targetPoint, contentPoint);\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n box.x += x;\n box.y += y;\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n const overflows = getOverflow(box, viewport);\n return {\n overflows,\n x,\n y\n };\n }\n let x = 0;\n let y = 0;\n const available = {\n x: 0,\n y: 0\n };\n const flipped = {\n x: false,\n y: false\n };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy');\n break;\n }\n const {\n x: _x,\n y: _y,\n overflows\n } = checkOverflow(placement);\n x += _x;\n y += _y;\n contentBox.x += _x;\n contentBox.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n let reset = false;\n ['x', 'y'].forEach(key => {\n if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {\n const newPlacement = {\n anchor: {\n ...placement.anchor\n },\n origin: {\n ...placement.origin\n }\n };\n const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const {\n overflows: newOverflows\n } = checkOverflow(newPlacement);\n if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentBox.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentBox.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n break;\n }\n const axis = getAxis(placement.anchor);\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))\n });\n return {\n available,\n contentBox\n };\n }\n watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());\n nextTick(() => {\n const result = updateLocation();\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return;\n const {\n available,\n contentBox\n } = result;\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation();\n requestAnimationFrame(() => {\n updateLocation();\n });\n });\n }\n });\n return {\n updateLocation\n };\n}\nfunction pixelRound(val) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio;\n}\nfunction pixelCeil(val) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio;\n}\n//# sourceMappingURL=locationStrategies.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref\n target: Ref\n isActive: Ref\n isRtl: Ref\n}\n\ntype LocationStrategyFn = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFn\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType,\n default: 'bottom',\n },\n origin: {\n type: String as PropType,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n\n watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n const targetBox = getTargetBox(data.target.value)\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n","// Types\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(point, offset) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y\n };\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(point, offset) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y\n };\n}\n\n/** Get the difference between two points */\nexport function getOffset(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(anchor, box) {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const {\n side,\n align\n } = anchor;\n const x = align === 'left' ? 0 : align === 'center' ? box.width / 2 : align === 'right' ? box.width : align;\n const y = side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n return elementToViewport({\n x,\n y\n }, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const {\n side,\n align\n } = anchor;\n const x = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y = align === 'top' ? 0 : align === 'center' ? box.height / 2 : align === 'bottom' ? box.height : align;\n return elementToViewport({\n x,\n y\n }, box);\n }\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2\n }, box);\n}\n//# sourceMappingURL=point.mjs.map","// Types\nimport type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue';\nimport { requestNewFrame } from \"./requestNewFrame.mjs\";\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from \"../../util/index.mjs\"; // Types\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy\n};\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function],\n default: 'block',\n validator: val => typeof val === 'function' || val in scrollStrategies\n }\n}, 'VOverlay-scroll-strategies');\nexport function useScrollStrategies(props, data) {\n if (!IN_BROWSER) return;\n let scope;\n watchEffect(async () => {\n scope?.stop();\n if (!(data.isActive.value && props.scrollStrategy)) return;\n scope = effectScope();\n await new Promise(resolve => setTimeout(resolve));\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope);\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope);\n }\n });\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\nfunction closeScrollStrategy(data) {\n function onScroll(e) {\n data.isActive.value = false;\n }\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);\n}\nfunction blockScrollStrategy(data, props) {\n const offsetParent = data.root.value?.offsetParent;\n const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);\n if (scrollableParent) {\n data.root.value.classList.add('v-overlay--scroll-blocked');\n }\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));\n }\n el.classList.add('v-overlay-scroll-blocked');\n });\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));\n const scrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.style.removeProperty('--v-body-scroll-x');\n el.style.removeProperty('--v-body-scroll-y');\n el.style.removeProperty('--v-scrollbar-offset');\n el.classList.remove('v-overlay-scroll-blocked');\n el.scrollLeft = -x;\n el.scrollTop = -y;\n el.style.scrollBehavior = scrollBehavior;\n });\n if (scrollableParent) {\n data.root.value.classList.remove('v-overlay--scroll-blocked');\n }\n });\n}\nfunction repositionScrollStrategy(data, props, scope) {\n let slow = false;\n let raf = -1;\n let ric = -1;\n function update(e) {\n requestNewFrame(() => {\n const start = performance.now();\n data.updateLocation.value?.(e);\n const time = performance.now() - start;\n slow = time / (1000 / 60) > 2;\n });\n }\n ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e);\n });\n });\n } else {\n update(e);\n }\n });\n });\n });\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);\n cancelAnimationFrame(raf);\n });\n}\n\n/** @private */\nfunction bindScroll(el, onScroll) {\n const scrollElements = [document, ...getScrollParents(el)];\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll);\n });\n });\n}\n//# sourceMappingURL=scrollStrategies.mjs.map","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref\n contentEl: Ref\n targetEl: Ref\n isActive: Ref\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await new Promise(resolve => setTimeout(resolve))\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n","let clean = true;\nconst frames = [];\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame(cb) {\n if (!clean || frames.length) {\n frames.push(cb);\n run();\n } else {\n clean = false;\n cb();\n run();\n }\n}\nlet raf = -1;\nfunction run() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n const frame = frames.shift();\n if (frame) frame();\n if (frames.length) run();else clean = true;\n });\n}\n//# sourceMappingURL=requestNewFrame.mjs.map","let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n","// Components\nimport { VMenuSymbol } from \"../VMenu/shared.mjs\"; // Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\"; // Utilities\nimport { computed, effectScope, inject, mergeProps, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';\nimport { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, templateRef, unbindProps } from \"../../util/index.mjs\"; // Types\nexport const makeActivatorProps = propsFactory({\n target: [String, Object],\n activator: [String, Object],\n activatorProps: {\n type: Object,\n default: () => ({})\n },\n openOnClick: {\n type: Boolean,\n default: undefined\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined\n },\n closeOnContentClick: Boolean,\n ...makeDelayProps()\n}, 'VOverlay-activator');\nexport function useActivator(props, _ref) {\n let {\n isActive,\n isTop,\n contentEl\n } = _ref;\n const vm = getCurrentInstance('useActivator');\n const activatorEl = ref();\n let isHovered = false;\n let isFocused = false;\n let firstEnter = true;\n const openOnFocus = computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);\n const openOnClick = computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {\n if (isActive.value !== value) {\n firstEnter = true;\n }\n isActive.value = value;\n }\n });\n const cursorTarget = ref();\n const availableEvents = {\n onClick: e => {\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY];\n }\n isActive.value = !isActive.value;\n },\n onMouseenter: e => {\n if (e.sourceCapabilities?.firesTouchEvents) return;\n isHovered = true;\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onMouseleave: e => {\n isHovered = false;\n runCloseDelay();\n },\n onFocus: e => {\n if (matchesSelector(e.target, ':focus-visible') === false) return;\n isFocused = true;\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onBlur: e => {\n isFocused = false;\n e.stopPropagation();\n runCloseDelay();\n }\n };\n const activatorEvents = computed(() => {\n const events = {};\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick;\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter;\n events.onMouseleave = availableEvents.onMouseleave;\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus;\n events.onBlur = availableEvents.onBlur;\n }\n return events;\n });\n const contentEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true;\n runOpenDelay();\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true;\n runOpenDelay();\n };\n events.onFocusout = () => {\n isFocused = false;\n runCloseDelay();\n };\n }\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null);\n events.onClick = () => {\n isActive.value = false;\n menu?.closeParents();\n };\n }\n return events;\n });\n const scrimEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true;\n firstEnter = false;\n runOpenDelay();\n }\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n return events;\n });\n watch(isTop, val => {\n if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false;\n }\n });\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined;\n });\n }\n }, {\n flush: 'post'\n });\n const activatorRef = templateRef();\n watchEffect(() => {\n if (!activatorRef.value) return;\n nextTick(() => {\n activatorEl.value = activatorRef.el;\n });\n });\n const targetRef = templateRef();\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;\n if (targetRef.value) return targetRef.el;\n return getTarget(props.target, vm) || activatorEl.value;\n });\n const targetEl = computed(() => {\n return Array.isArray(target.value) ? undefined : target.value;\n });\n let scope;\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope();\n scope.run(() => {\n _useActivator(props, vm, {\n activatorEl,\n activatorEvents\n });\n });\n } else if (scope) {\n scope.stop();\n }\n }, {\n flush: 'post',\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n return {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n };\n}\nfunction _useActivator(props, vm, _ref2) {\n let {\n activatorEl,\n activatorEvents\n } = _ref2;\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal);\n activator && unbindActivatorProps(activator);\n }\n if (val) {\n nextTick(() => bindActivatorProps());\n }\n }, {\n immediate: true\n });\n watch(() => props.activatorProps, () => {\n bindActivatorProps();\n });\n onScopeDispose(() => {\n unbindActivatorProps();\n });\n function bindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n bindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function unbindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n unbindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function getActivator() {\n let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;\n const activator = getTarget(selector, vm);\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;\n return activatorEl.value;\n }\n}\nfunction getTarget(selector, vm) {\n if (!selector) return;\n let target;\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode;\n }\n target = el;\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector);\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el;\n } else {\n // HTMLElement | Element | [x, y]\n target = selector;\n }\n return target;\n}\n//# sourceMappingURL=useActivator.mjs.map","// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType,\n activator: [String, Object] as PropType,\n activatorProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop, contentEl }: {\n isActive: Ref\n isTop: Ref\n contentEl: Ref\n }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial = {}\n\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter\n events.onMouseleave = availableEvents.onMouseleave\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus\n events.onBlur = availableEvents.onBlur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.onClick = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n ) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\n })\n\n const targetRef = templateRef()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return targetRef.el\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n const activator = getTarget(selector, vm)\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined\n\n return activatorEl.value\n }\n}\n\nfunction getTarget (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\n let target\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n target = el\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el\n } else {\n // HTMLElement | Element | [x, y]\n target = selector\n }\n\n return target\n}\n","// Types\n\nexport const VMenuSymbol = Symbol.for('vuetify:v-menu');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (e?: MouseEvent): void\n}\n\nexport const VMenuSymbol: InjectionKey = Symbol.for('vuetify:v-menu')\n","// Utilities\nimport { defer, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String]\n}, 'delay');\nexport function useDelay(props, cb) {\n let clearDelay = () => {};\n function runDelay(isOpening) {\n clearDelay?.();\n const delay = Number(isOpening ? props.openDelay : props.closeDelay);\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening);\n resolve(isOpening);\n });\n });\n }\n function runOpenDelay() {\n return runDelay(true);\n }\n function runCloseDelay() {\n return runDelay(false);\n }\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay\n };\n}\n//# sourceMappingURL=delay.mjs.map","// Utilities\nimport { defer, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n let clearDelay: (() => void) = () => {}\n\n function runDelay (isOpening: boolean) {\n clearDelay?.()\n\n const delay = Number(isOpening ? props.openDelay : props.closeDelay)\n\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening)\n resolve(isOpening)\n })\n })\n }\n\n function runOpenDelay () {\n return runDelay(true)\n }\n\n function runCloseDelay () {\n return runDelay(false)\n }\n\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay,\n }\n}\n","// Composables\nimport { useDisplay } from \"./display.mjs\"; // Utilities\nimport { onMounted, shallowRef } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useHydration() {\n if (!IN_BROWSER) return shallowRef(false);\n const {\n ssr\n } = useDisplay();\n if (ssr) {\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n } else {\n return shallowRef(true);\n }\n}\n//# sourceMappingURL=hydration.mjs.map","// Composables\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { onMounted, shallowRef } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useHydration () {\n if (!IN_BROWSER) return shallowRef(false)\n\n const { ssr } = useDisplay()\n\n if (ssr) {\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n return isMounted\n } else {\n return shallowRef(true)\n }\n}\n","// Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = computed(() => isBooted.value || props.eager || active.value);\n watch(active, () => isBooted.value = true);\n function onAfterLeave() {\n if (!props.eager) isBooted.value = false;\n }\n return {\n isBooted,\n hasContent,\n onAfterLeave\n };\n}\n//# sourceMappingURL=lazy.mjs.map","// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref) {\n const isBooted = shallowRef(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n","// Utilities\nimport { getCurrentInstance } from \"../util/index.mjs\";\nexport function useScopeId() {\n const vm = getCurrentInstance('useScopeId');\n const scopeId = vm.vnode.scopeId;\n return {\n scopeId: scopeId ? {\n [scopeId]: ''\n } : undefined\n };\n}\n//# sourceMappingURL=scopeId.mjs.map","// Utilities\nimport { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\n","// Composables\nimport { useToggleScope } from \"./toggleScope.mjs\"; // Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/index.mjs\"; // Types\nconst StackSymbol = Symbol.for('vuetify:stack');\nconst globalStack = reactive([]);\nexport function useStack(isActive, zIndex, disableGlobalStack) {\n const vm = getCurrentInstance('useStack');\n const createStackEntry = !disableGlobalStack;\n const parent = inject(StackSymbol, undefined);\n const stack = reactive({\n activeChildren: new Set()\n });\n provide(StackSymbol, stack);\n const _zIndex = shallowRef(+zIndex.value);\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1];\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value]);\n }\n parent?.activeChildren.add(vm.uid);\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);\n globalStack.splice(idx, 1);\n }\n parent?.activeChildren.delete(vm.uid);\n });\n });\n const globalTop = shallowRef(true);\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid;\n setTimeout(() => globalTop.value = _isTop);\n });\n }\n const localTop = computed(() => !stack.activeChildren.size);\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({\n zIndex: _zIndex.value\n }))\n };\n}\n//# sourceMappingURL=stack.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly>,\n zIndex: Readonly>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = shallowRef(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = shallowRef(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n","// Utilities\nimport { computed, warn } from 'vue';\nimport { IN_BROWSER } from \"../util/index.mjs\";\nexport function useTeleport(target) {\n const teleportTarget = computed(() => {\n const _target = target();\n if (_target === true || !IN_BROWSER) return undefined;\n const targetElement = _target === false ? document.body : typeof _target === 'string' ? document.querySelector(_target) : _target;\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`);\n return undefined;\n }\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'));\n if (!container) {\n container = document.createElement('div');\n container.className = 'v-overlay-container';\n targetElement.appendChild(container);\n }\n return container;\n });\n return {\n teleportTarget\n };\n}\n//# sourceMappingURL=teleport.mjs.map","// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useTeleport (target: () => (boolean | string | ParentNode)) {\n const teleportTarget = computed(() => {\n const _target = target()\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'))\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n","// Utilities\nimport { attachedRoot } from \"../../util/index.mjs\"; // Types\nfunction defaultConditional() {\n return true;\n}\nfunction checkEvent(e, el, binding) {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false;\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot && root.host === e.target) return false;\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = (typeof binding.value === 'object' && binding.value.include || (() => []))();\n // Add the root element for the component this directive was defined on\n elements.push(el);\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target));\n}\nfunction checkIsActive(e, binding) {\n const isActive = typeof binding.value === 'object' && binding.value.closeConditional || defaultConditional;\n return isActive(e);\n}\nfunction directive(e, el, binding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target;\n el._clickOutside.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e);\n }, 0);\n}\nfunction handleShadow(el, callback) {\n const root = attachedRoot(el);\n callback(document);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root);\n }\n}\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted(el, binding) {\n const onClick = e => directive(e, el, binding);\n const onMousedown = e => {\n el._clickOutside.lastMousedownWasOutside = checkEvent(e, el, binding);\n };\n handleShadow(el, app => {\n app.addEventListener('click', onClick, true);\n app.addEventListener('mousedown', onMousedown, true);\n });\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false\n };\n }\n el._clickOutside[binding.instance.$.uid] = {\n onClick,\n onMousedown\n };\n },\n beforeUnmount(el, binding) {\n if (!el._clickOutside) return;\n handleShadow(el, app => {\n if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;\n const {\n onClick,\n onMousedown\n } = el._clickOutside[binding.instance.$.uid];\n app.removeEventListener('click', onClick, true);\n app.removeEventListener('mousedown', onMousedown, true);\n });\n delete el._clickOutside[binding.instance.$.uid];\n }\n};\nexport default ClickOutside;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { attachedRoot } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n beforeUnmount (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n","// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\n/** Omit keyof $props from T */\n\nfunction getDescriptor(obj, key) {\n let currentObj = obj;\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);\n if (descriptor) return descriptor;\n currentObj = Object.getPrototypeOf(currentObj);\n }\n return undefined;\n}\nexport function forwardRefs(target) {\n for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n refs[_key - 1] = arguments[_key];\n }\n target[Refs] = refs;\n return new Proxy(target, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key);\n return typeof val === 'function' ? val.bind(ref.value) : val;\n }\n }\n },\n has(target, key) {\n if (Reflect.has(target, key)) {\n return true;\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true;\n }\n }\n return false;\n },\n set(target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value);\n }\n }\n return false;\n },\n getOwnPropertyDescriptor(target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key);\n if (descriptor) return descriptor;\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue;\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);\n if (descriptor) return descriptor;\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && ref.value[Refs];\n if (!childRefs) continue;\n const queue = childRefs.slice();\n while (queue.length) {\n const ref = queue.shift();\n const descriptor = getDescriptor(ref.value, key);\n if (descriptor) return descriptor;\n const childRefs = ref.value && ref.value[Refs];\n if (childRefs) queue.push(...childRefs);\n }\n }\n return undefined;\n }\n });\n}\n//# sourceMappingURL=forwardRefs.mjs.map","// Types\nimport type { ComponentOptionsBase, ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<\n T,\n P extends string,\n E = Extract,\n> = [E] extends [never] ? T : Omit\ntype OmitPrivate = OmitPrefix\n\n/** Omit keyof $props from T */\ntype OmitProps = T extends { $props: any } ? Omit : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<\n T extends {},\n U extends Ref | undefined>[],\n UU = { [K in keyof U]: NonNullable> }[number],\n UC = { [K in keyof U]: OmitPrivate>>> }[number],\n R = T & UnionToIntersection & {\n _allExposed: T | (\n UU extends { $options: infer O }\n ? O extends ComponentOptionsBase\n ? E\n : never\n : never\n )\n }\n> (target: T, ...refs: U): R {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n set (target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value)\n }\n }\n\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VSelect.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"./useScrolling.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeItemsProps, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n closeText: {\n type: String,\n default: '$vuetify.close'\n },\n openText: {\n type: String,\n default: '$vuetify.open'\n },\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown'\n },\n menuProps: {\n type: Object\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n openOnClear: Boolean,\n itemColor: String,\n ...makeItemsProps({\n itemChildren: false\n })\n}, 'Select');\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: {\n component: VDialogTransition\n }\n })\n}, 'VSelect');\nexport const VSelect = genericComponent()({\n name: 'VSelect',\n props: makeVSelectProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:menu': ue => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm();\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const isFocused = shallowRef(false);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n let keyboardLookupPrefix = '';\n let keyboardLookupLastTime;\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));\n }\n return items.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox' // Set aria-haspopup to 'listbox'\n }\n };\n });\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n onKeydown(e);\n }\n }\n function onKeydown(e) {\n if (!e.key || props.readonly || form?.isReadonly.value) return;\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false;\n }\n if (e.key === 'Home') {\n listRef.value?.focus('first');\n } else if (e.key === 'End') {\n listRef.value?.focus('last');\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds\n\n if (props.multiple || !checkPrintable(e)) return;\n const now = performance.now();\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = '';\n }\n keyboardLookupPrefix += e.key.toLowerCase();\n keyboardLookupLastTime = now;\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));\n if (item !== undefined) {\n model.value = [item];\n const index = displayItems.value.indexOf(item);\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n }\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n nextTick(() => {\n menu.value = false;\n });\n }\n }\n function onBlur(e) {\n if (!listRef.value?.$el.contains(e.relatedTarget)) {\n menu.value = false;\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onModelUpdate(v) {\n if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v);\n if (item) {\n select(item);\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = '';\n }\n }\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip);\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": model.value.map(v => v.props.value).join(', '),\n \"onUpdate:modelValue\": onModelUpdate,\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-select', {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection\n }, props.class],\n \"style\": props.style,\n \"inputmode\": \"none\",\n \"placeholder\": placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"aria-label\": t(label.value),\n \"title\": t(label.value)\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-select__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, computedMenuProps.value), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref2 => {\n let {\n item,\n index,\n itemRef\n } = _ref2;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref3 => {\n let {\n isSelected\n } = _ref3;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": \"v-select__selection\"\n }, [hasChips ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-select__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-select__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-select__menu-icon\",\n \"icon\": props.menuIcon\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n menu,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VSelect.mjs.map","// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from './useScrolling'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n closeText: {\n type: String,\n default: '$vuetify.close',\n },\n openText: {\n type: String,\n default: '$vuetify.open',\n },\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object as PropType,\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n itemColor: String,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'Select')\n\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition as Component } }),\n}, 'VSelect')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VSelect = genericComponent,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VSelect',\n\n props: makeVSelectProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (ue: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm()\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n const isFocused = shallowRef(false)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)))\n }\n return items.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox', // Set aria-haspopup to 'listbox'\n },\n }\n })\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n onKeydown(e)\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (!e.key || props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n if (props.multiple || !checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix))\n if (item !== undefined) {\n model.value = [item]\n const index = displayItems.value.indexOf(item)\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n }\n\n /** @param set - null means toggle */\n function select (item: ListItem, set: boolean | null = true) {\n if (item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n\n nextTick(() => {\n menu.value = false\n })\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n vTextFieldRef.value?.focus()\n }\n }\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n function onModelUpdate (v: any) {\n if (v == null) model.value = []\n else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v)\n if (item) {\n select(item)\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = ''\n }\n }\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n v.props.value).join(', ') }\n onUpdate:modelValue={ onModelUpdate }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection,\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"none\"\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n aria-label={ t(label.value) }\n title={ t(label.value) }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n
    \n { hasChips ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n
    \n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType\n","import { Fragment as _Fragment, withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { filterFieldProps, makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function],\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text'\n },\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextField');\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextFieldProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n if (e.target === inputRef.value) return;\n onFocus();\n e.preventDefault();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = null;\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-text-field', {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner'],\n \"role\": props.role\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n const inputNode = _withDirectives(_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"name\": props.name,\n \"placeholder\": props.placeholder,\n \"size\": 1,\n \"type\": props.type,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]);\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__prefix__text\"\n }, [props.prefix])]), slots.default ? _createVNode(\"div\", {\n \"class\": fieldClass,\n \"data-no-activator\": \"\"\n }, [slots.default(), inputNode]) : cloneVNode(inputNode, {\n class: fieldClass\n }), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__suffix__text\"\n }, [props.suffix])])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VTextField.mjs.map","// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref()\n const vFieldRef = ref()\n const inputRef = ref()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n \n )\n\n return (\n <>\n { props.prefix && (\n \n \n { props.prefix }\n \n \n )}\n\n { slots.default ? (\n \n { slots.default() }\n { inputNode }\n \n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n \n \n { props.suffix }\n \n \n )}\n \n )\n },\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType\n","import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from \"vue\";\n// Styles\nimport \"./VCounter.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition\n }\n })\n}, 'VCounter');\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n functional: true,\n props: makeVCounterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value);\n });\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-counter', {\n 'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)\n }, props.class],\n \"style\": props.style\n }, [slots.default ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value\n }) : counter.value]), [[_vShow, props.active]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VCounter.mjs.map","// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\n\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: { component: VSlideYTransition as Component },\n }),\n}, 'VCounter')\n\nexport type VCounterSlot = {\n counter: string\n max: string | number | undefined\n value: string | number | undefined\n}\n\ntype VCounterSlots = {\n default: VCounterSlot\n}\n\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n\n functional: true,\n\n props: makeVCounterProps(),\n\n setup (props, { slots }) {\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n useRender(() => (\n \n parseFloat(props.max),\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n \n \n ))\n\n return {}\n },\n})\n\nexport type VCounter = InstanceType\n","import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _withDirectives, vShow as _vShow, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VField.css\";\n\n// Components\nimport { VFieldLabel } from \"./VFieldLabel.mjs\";\nimport { VExpandXTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { useInputIcon } from \"../VInput/InputIcon.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, toRef, watch } from 'vue';\nimport { animate, convertToUnit, EventProp, genericComponent, getUid, isOn, nullifyTransforms, pick, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear'\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String,\n default: 'filled',\n validator: v => allowedVariants.includes(v)\n },\n 'onClick:clear': EventProp(),\n 'onClick:appendInner': EventProp(),\n 'onClick:prependInner': EventProp(),\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps()\n}, 'VField');\nexport const VField = genericComponent()({\n name: 'VField',\n inheritAttrs: false,\n props: {\n id: String,\n ...makeFocusProps(),\n ...makeVFieldProps()\n },\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n focusClasses,\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const {\n InputIcon\n } = useInputIcon(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n rtlClasses\n } = useRtl();\n const isActive = computed(() => props.dirty || props.active);\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));\n const uid = getUid();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = computed(() => `${id.value}-messages`);\n const labelRef = ref();\n const floatingLabelRef = ref();\n const controlRef = ref();\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;\n }));\n watch(isActive, val => {\n if (hasLabel.value) {\n const el = labelRef.value.$el;\n const targetEl = floatingLabelRef.value.$el;\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el);\n const targetRect = targetEl.getBoundingClientRect();\n const x = targetRect.x - rect.x;\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);\n const targetWidth = targetRect.width / 0.75;\n const width = Math.abs(targetWidth - rect.width) > 1 ? {\n maxWidth: convertToUnit(targetWidth)\n } : undefined;\n const style = getComputedStyle(el);\n const targetStyle = getComputedStyle(targetEl);\n const duration = parseFloat(style.transitionDuration) * 1000 || 150;\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));\n const color = targetStyle.getPropertyValue('color');\n el.style.visibility = 'visible';\n targetEl.style.visibility = 'hidden';\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse'\n }).finished.then(() => {\n el.style.removeProperty('visibility');\n targetEl.style.removeProperty('visibility');\n });\n });\n }\n }, {\n flush: 'post'\n });\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus\n }));\n function onClick(e) {\n if (e.target !== document.activeElement) {\n e.preventDefault();\n }\n }\n function onKeydownClear(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n props['onClick:clear']?.(new MouseEvent('click'));\n }\n useRender(() => {\n const isOutlined = props.variant === 'outlined';\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);\n const hasClear = !!(props.clearable || slots.clear);\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);\n const label = () => slots.label ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-field', {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true\n }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style],\n \"onClick\": onClick\n }, attrs), [_createVNode(\"div\", {\n \"class\": \"v-field__overlay\"\n }, null), _createVNode(LoaderSlot, {\n \"name\": \"v-field\",\n \"active\": !!props.loading,\n \"color\": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color\n }, {\n default: slots.loader\n }), hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-field__prepend-inner\"\n }, [props.prependInnerIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prependInner\"\n }, null), slots['prepend-inner']?.(slotProps.value)]), _createVNode(\"div\", {\n \"class\": \"v-field__field\",\n \"data-no-activator\": \"\"\n }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"floating-label\",\n \"ref\": floatingLabelRef,\n \"class\": [textColorClasses.value],\n \"floating\": true,\n \"for\": id.value,\n \"style\": textColorStyles.value\n }, {\n default: () => [label()]\n }), _createVNode(VFieldLabel, {\n \"ref\": labelRef,\n \"for\": id.value\n }, {\n default: () => [label()]\n }), slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value\n },\n focus,\n blur\n })]), hasClear && _createVNode(VExpandXTransition, {\n \"key\": \"clear\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-field__clearable\",\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: props.clearIcon\n }\n }\n }, {\n default: () => [slots.clear ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear']\n }\n }) : _createVNode(InputIcon, {\n \"name\": \"clear\",\n \"onKeydown\": onKeydownClear,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, null)]\n })]), [[_vShow, props.dirty]])]\n }), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-field__append-inner\"\n }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"appendInner\"\n }, null)]), _createVNode(\"div\", {\n \"class\": ['v-field__outline', textColorClasses.value],\n \"style\": textColorStyles.value\n }, [isOutlined && _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-field__outline__start\"\n }, null), hasLabel.value && _createVNode(\"div\", {\n \"class\": \"v-field__outline__notch\"\n }, [_createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })]), _createVNode(\"div\", {\n \"class\": \"v-field__outline__end\"\n }, null)]), isPlainOrUnderlined.value && hasLabel.value && _createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value\n }, {\n default: () => [label()]\n })])]);\n });\n return {\n controlRef\n };\n }\n});\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps(attrs) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style');\n return pick(attrs, keys);\n}\n//# sourceMappingURL=VField.mjs.map","// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref\n isFocused: Ref\n controlRef: Ref\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref()\n const floatingLabelRef = ref()\n const controlRef = ref()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n function onKeydownClear (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n props['onClick:clear']?.(new MouseEvent('click'))\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n \n
    \n\n \n\n { hasPrepend && (\n
    \n { props.prependInnerIcon && (\n \n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n
    \n )}\n\n
    \n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n \n { label() }\n \n )}\n\n \n { label() }\n \n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n
    \n\n { hasClear && (\n \n {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n \n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n },\n })\n : (\n \n )}\n \n
    \n \n )}\n\n { hasAppend && (\n
    \n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n \n )}\n
    \n )}\n\n \n { isOutlined && (\n <>\n
    \n\n { hasLabel.value && (\n
    \n \n { label() }\n \n
    \n )}\n\n
    \n \n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n \n { label() }\n \n )}\n
    \n
    \n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n ...makeComponentProps()\n}, 'VFieldLabel');\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n props: makeVFieldLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VLabel, {\n \"class\": ['v-field-label', {\n 'v-field-label--floating': props.floating\n }, props.class],\n \"style\": props.style,\n \"aria-hidden\": props.floating || undefined\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFieldLabel.mjs.map","// Components\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n\n ...makeComponentProps(),\n}, 'VFieldLabel')\n\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n\n props: makeVFieldLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VFieldLabel = InstanceType\n","export { VVirtualScroll } from \"./VVirtualScroll.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VVirtualScroll } from './VVirtualScroll'\n","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VVirtualScroll.css\";\n\n// Components\nimport { VVirtualScrollItem } from \"./VVirtualScrollItem.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n renderless: Boolean,\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VVirtualScroll');\nexport const VVirtualScroll = genericComponent()({\n name: 'VVirtualScroll',\n props: makeVVirtualScrollProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vm = getCurrentInstance('VVirtualScroll');\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems\n } = useVirtual(props, toRef(props, 'items'));\n useToggleScope(() => props.renderless, () => {\n function handleListeners() {\n let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const method = add ? 'addEventListener' : 'removeEventListener';\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, {\n passive: true\n });\n document[method]('scrollend', handleScrollend);\n } else {\n containerRef.value?.[method]('scroll', handleScroll, {\n passive: true\n });\n containerRef.value?.[method]('scrollend', handleScrollend);\n }\n }\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el, true);\n handleListeners(true);\n });\n onScopeDispose(handleListeners);\n });\n useRender(() => {\n const children = computedItems.value.map(item => _createVNode(VVirtualScrollItem, {\n \"key\": item.index,\n \"renderless\": props.renderless,\n \"onUpdate:height\": height => handleItemResize(item.index, height)\n }, {\n default: slotProps => slots.default?.({\n item: item.raw,\n index: item.index,\n ...slotProps\n })\n }));\n return props.renderless ? _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value)\n }\n }, null), children, _createVNode(\"div\", {\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, null)]) : _createVNode(\"div\", {\n \"ref\": containerRef,\n \"class\": ['v-virtual-scroll', props.class],\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"style\": [dimensionStyles.value, props.style]\n }, [_createVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__container\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, [children])]);\n });\n return {\n calculateVisibleItems,\n scrollToIndex\n };\n }\n});\n//# sourceMappingURL=VVirtualScroll.mjs.map","// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport interface VVirtualScrollSlot {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n renderless: Boolean,\n\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VVirtualScroll')\n\nexport const VVirtualScroll = genericComponent(\n props: {\n items?: readonly T[]\n renderless?: Renderless\n },\n slots: {\n default: VVirtualScrollSlot & (Renderless extends true ? {\n itemRef: Ref\n } : {})\n }\n) => GenericProps>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const vm = getCurrentInstance('VVirtualScroll')\n const { dimensionStyles } = useDimension(props)\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems,\n } = useVirtual(props, toRef(props, 'items'))\n\n useToggleScope(() => props.renderless, () => {\n function handleListeners (add = false) {\n const method = add ? 'addEventListener' : 'removeEventListener'\n\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, { passive: true })\n document[method]('scrollend', handleScrollend)\n } else {\n containerRef.value?.[method]('scroll', handleScroll, { passive: true })\n containerRef.value?.[method]('scrollend', handleScrollend)\n }\n }\n\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el as HTMLElement, true)\n handleListeners(true)\n })\n onScopeDispose(handleListeners)\n })\n\n useRender(() => {\n const children = computedItems.value.map(item => (\n handleItemResize(item.index, height) }\n >\n { slotProps => slots.default?.({ item: item.raw, index: item.index, ...slotProps }) }\n \n ))\n\n return props.renderless ? (\n <>\n
    \n { children }\n
    \n \n ) : (\n \n \n { children }\n
    \n
    \n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n ...makeComponentProps()\n}, 'VVirtualScrollItem');\nexport const VVirtualScrollItem = genericComponent()({\n name: 'VVirtualScrollItem',\n inheritAttrs: false,\n props: makeVVirtualScrollItemProps(),\n emits: {\n 'update:height': height => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver(undefined, 'border');\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height);\n });\n useRender(() => props.renderless ? _createVNode(_Fragment, null, [slots.default?.({\n itemRef: resizeRef\n })]) : _createVNode(\"div\", _mergeProps({\n \"ref\": resizeRef,\n \"class\": ['v-virtual-scroll__item', props.class],\n \"style\": props.style\n }, attrs), [slots.default?.()]));\n }\n});\n//# sourceMappingURL=VVirtualScrollItem.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps, TemplateRef } from '@/util'\n\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n\n ...makeComponentProps(),\n}, 'VVirtualScrollItem')\n\nexport const VVirtualScrollItem = genericComponent(\n props: {\n renderless?: Renderless\n },\n slots: {\n default: Renderless extends true ? {\n itemRef: TemplateRef\n } : never\n }\n) => GenericProps>()({\n name: 'VVirtualScrollItem',\n\n inheritAttrs: false,\n\n props: makeVVirtualScrollItemProps(),\n\n emits: {\n 'update:height': (height: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { resizeRef, contentRect } = useResizeObserver(undefined, 'border')\n\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height)\n })\n\n useRender(() => props.renderless ? (\n <>\n { slots.default?.({ itemRef: resizeRef }) }\n \n ) : (\n \n { (slots.default as any)?.() }\n \n ))\n },\n})\n","// Composables\nimport { useDisplay } from \"./display.mjs\";\nimport { useResizeObserver } from \"./resizeObserver.mjs\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { clamp, debounce, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nconst UP = -1;\nconst DOWN = 1;\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100;\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null\n },\n height: [Number, String]\n}, 'virtual');\nexport function useVirtual(props, items) {\n const display = useDisplay();\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height) || display.height.value) / (itemHeight.value || 16)) || 1);\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n\n /** The scrollable element */\n const containerRef = ref();\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref();\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n watchEffect(() => {\n resizeRef.value = containerRef.value;\n });\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement ? display.height.value : contentRect.value?.height || parseInt(props.height) || 0;\n });\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);\n });\n let sizes = Array.from({\n length: items.value.length\n });\n let offsets = Array.from({\n length: items.value.length\n });\n const updateTime = shallowRef(0);\n let targetScrollIndex = -1;\n function getSize(index) {\n return sizes[index] || itemHeight.value;\n }\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return;\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch();\n markerOffset = markerRef.value.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n if (!~targetScrollIndex) return;\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n function handleItemResize(index, height) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n function calculateOffset(index) {\n index = clamp(index, 0, items.value.length - 1);\n return offsets[index] || 0;\n }\n function calculateIndex(scrollTop) {\n return binaryClosest(offsets, scrollTop);\n }\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n }\n });\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n calculateVisibleItems();\n }\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n scrollVelocity = 0;\n lastScrollTime = 0;\n calculateVisibleItems();\n }\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) && (direction !== DOWN || end > last.value)) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n function scrollToIndex(index) {\n const offset = calculateOffset(index);\n if (!containerRef.value || index && !offset) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value\n }));\n });\n watch(items, () => {\n sizes = Array.from({\n length: items.value.length\n });\n offsets = Array.from({\n length: items.value.length\n });\n updateOffsets.immediate();\n calculateVisibleItems();\n }, {\n deep: true\n });\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest(arr, val) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n if (arr[high] < val) {\n return high;\n }\n while (low <= high) {\n mid = low + high >> 1;\n item = arr[mid];\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n return target;\n}\n//# sourceMappingURL=virtual.mjs.map","// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight?: number | string\n height?: number | string\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual (props: VirtualProps, items: Ref) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from({ length: items.value.length })\n let offsets = Array.from({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n return offsets[index] || 0\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => ({\n raw: item,\n index: index + first.value,\n }))\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: true })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n","// Utilities\nimport { shallowRef, watch } from 'vue';\n\n// Types\n\nexport function useScrolling(listRef, textFieldRef) {\n const isScrolling = shallowRef(false);\n let scrollTimeout;\n function onListScroll(e) {\n cancelAnimationFrame(scrollTimeout);\n isScrolling.value = true;\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false;\n });\n });\n }\n async function finishScrolling() {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop();\n resolve();\n });\n } else resolve();\n });\n }\n async function onListKeydown(e) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus();\n }\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return;\n const el = listRef.value?.$el;\n if (!el) return;\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth'\n });\n }\n await finishScrolling();\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)');\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top;\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n child.focus();\n break;\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom;\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n child.focus();\n break;\n }\n }\n }\n }\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown\n }; // typescript doesn't know about vue's event merging\n}\n//# sourceMappingURL=useScrolling.mjs.map","// Utilities\nimport { shallowRef, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { VList } from '@/components/VList'\nimport type { VTextField } from '@/components/VTextField'\n\nexport function useScrolling (listRef: Ref, textFieldRef: Ref) {\n const isScrolling = shallowRef(false)\n let scrollTimeout: number\n function onListScroll (e: Event) {\n cancelAnimationFrame(scrollTimeout)\n isScrolling.value = true\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false\n })\n })\n }\n async function finishScrolling () {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop()\n resolve()\n })\n } else resolve()\n })\n }\n async function onListKeydown (e: KeyboardEvent) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus()\n }\n\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return\n const el: HTMLElement = listRef.value?.$el\n if (!el) return\n\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n await finishScrolling()\n\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)')\n\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n (child as HTMLElement).focus()\n break\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n (child as HTMLElement).focus()\n break\n }\n }\n }\n }\n\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown,\n } as Record // typescript doesn't know about vue's event merging\n}\n","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue';\nimport { getPropertyFromItem, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\n// Composables\nexport const defaultFilter = (value, query, item) => {\n if (value == null || query == null) return -1;\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());\n};\nexport const makeFilterProps = propsFactory({\n customFilter: Function,\n customKeyFilter: Object,\n filterKeys: [Array, String],\n filterMode: {\n type: String,\n default: 'intersection'\n },\n noFilter: Boolean\n}, 'filter');\nexport function filterItems(items, query, options) {\n const array = [];\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter;\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;\n if (!items?.length) return array;\n loop: for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]);\n const customMatches = {};\n const defaultMatches = {};\n let match = -1;\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed);\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key);\n const keyFilter = options?.customKeyFilter?.[key];\n match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;\n } else if (options?.filterMode === 'every') {\n continue loop;\n }\n }\n } else {\n match = filter(item, query, item);\n if (match !== -1 && match !== false) {\n defaultMatches.title = match;\n }\n }\n const defaultMatchesLength = Object.keys(defaultMatches).length;\n const customMatchesLength = Object.keys(customMatches).length;\n if (!defaultMatchesLength && !customMatchesLength) continue;\n if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;\n if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength)) continue;\n }\n array.push({\n index: i,\n matches: {\n ...defaultMatches,\n ...customMatches\n }\n });\n }\n return array;\n}\nexport function useFilter(props, items, query, options) {\n const filteredItems = ref([]);\n const filteredMatches = ref(new Map());\n const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query);\n const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);\n const results = filterItems(transformedItems.value, strQuery, {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter)\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter\n });\n const originalItems = unref(items);\n const _filteredItems = [];\n const _filteredMatches = new Map();\n results.forEach(_ref => {\n let {\n index,\n matches\n } = _ref;\n const item = originalItems[index];\n _filteredItems.push(item);\n _filteredMatches.set(item.value, matches);\n });\n filteredItems.value = _filteredItems;\n filteredMatches.value = _filteredMatches;\n });\n function getMatches(item) {\n return filteredMatches.value.get(item.value);\n }\n return {\n filteredItems,\n filteredMatches,\n getMatches\n };\n}\n//# sourceMappingURL=filter.mjs.map","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType,\n customKeyFilter: Object as PropType,\n filterKeys: [Array, String] as PropType,\n filterMode: {\n type: String as PropType,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record = {}\n const defaultMatches: Record = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter (\n props: FilterProps,\n items: MaybeRef,\n query: Ref | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef\n }\n) {\n const filteredItems: Ref = ref([])\n const filteredMatches: Ref>> = ref(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n","export { VBadge } from \"./VBadge.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBadge } from './VBadge'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBadge.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, pickWithRest, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBadgeProps = propsFactory({\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge'\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top end'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({\n transition: 'scale-rotate-transition'\n })\n}, 'VBadge');\nexport const VBadge = genericComponent()({\n name: 'VBadge',\n inheritAttrs: false,\n props: makeVBadgeProps(),\n setup(props, ctx) {\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n roundedClasses\n } = useRounded(props);\n const {\n t\n } = useLocale();\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'textColor'));\n const {\n themeClasses\n } = useTheme();\n const {\n locationStyles\n } = useLocation(props, true, side => {\n const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;\n return base + (['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0) : 0);\n });\n useRender(() => {\n const value = Number(props.content);\n const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;\n const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);\n return _createVNode(props.tag, _mergeProps({\n \"class\": ['v-badge', {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline\n }, props.class]\n }, attrs, {\n \"style\": props.style\n }), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-badge__wrapper\"\n }, [ctx.slots.default?.(), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(\"span\", _mergeProps({\n \"class\": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],\n \"style\": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],\n \"aria-atomic\": \"true\",\n \"aria-label\": t(props.label, value),\n \"aria-live\": \"polite\",\n \"role\": \"status\"\n }, badgeAttrs), [props.dot ? undefined : ctx.slots.badge ? ctx.slots.badge?.() : props.icon ? _createVNode(VIcon, {\n \"icon\": props.icon\n }, null) : content]), [[_vShow, props.modelValue]])]\n })])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBadge.mjs.map","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, pickWithRest, propsFactory, useRender } from '@/util'\n\nexport type VBadgeSlots = {\n default: never\n badge: never\n}\n\nexport const makeVBadgeProps = propsFactory({\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top end' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n}, 'VBadge')\n\nexport const VBadge = genericComponent()({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: makeVBadgeProps(),\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const { t } = useLocale()\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n const { themeClasses } = useTheme()\n\n const { locationStyles } = useLocation(props, true, side => {\n const base = props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n\n return base + (\n ['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0)\n : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0)\n : 0\n )\n })\n\n useRender(() => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= +props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = pickWithRest(ctx.attrs as Record, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n \n
    \n { ctx.slots.default?.() }\n\n \n \n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? \n : content\n }\n \n \n
    \n \n )\n })\n\n return {}\n },\n})\n\nexport type VBadge = InstanceType\n","export { VBanner } from \"./VBanner.mjs\";\nexport { VBannerActions } from \"./VBannerActions.mjs\";\nexport { VBannerText } from \"./VBannerText.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBanner } from './VBanner'\nexport { VBannerActions } from './VBannerActions'\nexport { VBannerText } from './VBannerText'\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBanner.css\";\n\n// Components\nimport { VBannerActions } from \"./VBannerActions.mjs\";\nimport { VBannerText } from \"./VBannerText.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VBanner');\nexport const VBanner = genericComponent()({\n name: 'VBanner',\n props: makeVBannerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n themeClasses\n } = provideTheme(props);\n const color = toRef(props, 'color');\n const density = toRef(props, 'density');\n provideDefaults({\n VBannerActions: {\n color,\n density\n }\n });\n useRender(() => {\n const hasText = !!(props.text || slots.text);\n const hasPrependMedia = !!(props.avatar || props.icon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n return _createVNode(props.tag, {\n \"class\": ['v-banner', {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"role\": \"banner\"\n }, {\n default: () => [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-banner__prepend\"\n }, [!slots.prepend ? _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"color\": color.value,\n \"density\": density.value,\n \"icon\": props.icon,\n \"image\": props.avatar\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-banner__content\"\n }, [hasText && _createVNode(VBannerText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.()]), slots.actions && _createVNode(VBannerActions, {\n \"key\": \"actions\"\n }, slots.actions)]\n });\n });\n }\n});\n//# sourceMappingURL=VBanner.mjs.map","// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n \n { hasPrepend && (\n
    \n { !slots.prepend ? (\n \n ) : (\n \n )}\n
    \n )}\n\n
    \n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default?.() }\n
    \n\n { slots.actions && (\n \n )}\n \n )\n })\n },\n})\n\nexport type VBanner = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n ...makeComponentProps()\n}, 'VBannerActions');\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n props: makeVBannerActionsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-banner-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VBannerActions.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n\n ...makeComponentProps(),\n}, 'VBannerActions')\n\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n\n props: makeVBannerActionsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VBannerActions = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VBannerText = createSimpleFunctional('v-banner-text');\n//# sourceMappingURL=VBannerText.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n\nexport type VBannerText = InstanceType\n","export { VBottomNavigation } from \"./VBottomNavigation.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBottomNavigation } from './VBottomNavigation'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBottomNavigation.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomNavigationProps = propsFactory({\n baseColor: String,\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: v => !v || ['horizontal', 'shift'].includes(v)\n },\n height: {\n type: [Number, String],\n default: 56\n },\n active: {\n type: Boolean,\n default: true\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({\n name: 'bottom-navigation'\n }),\n ...makeTagProps({\n tag: 'header'\n }),\n ...makeGroupProps({\n selectedClass: 'v-btn--selected'\n }),\n ...makeThemeProps()\n}, 'VBottomNavigation');\nexport const VBottomNavigation = genericComponent()({\n name: 'VBottomNavigation',\n props: makeVBottomNavigationProps(),\n emits: {\n 'update:active': value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = useTheme();\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));\n const isActive = useProxiedModel(props, 'active', props.active);\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute')\n });\n useGroup(props, VBtnToggleSymbol);\n provideDefaults({\n VBtn: {\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text'\n }\n }, {\n scoped: true\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-bottom-navigation', {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift'\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, {\n height: convertToUnit(height.value)\n }, ssrBootStyles.value, props.style]\n }, {\n default: () => [slots.default && _createVNode(\"div\", {\n \"class\": \"v-bottom-navigation__content\"\n }, [slots.default()])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomNavigation.mjs.map","// Styles\nimport './VBottomNavigation.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport const makeVBottomNavigationProps = propsFactory({\n baseColor: String,\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n active: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({ selectedClass: 'v-btn--selected' }),\n ...makeThemeProps(),\n}, 'VBottomNavigation')\n\nexport const VBottomNavigation = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: { default: never },\n) => GenericProps>()({\n name: 'VBottomNavigation',\n\n props: makeVBottomNavigationProps(),\n\n emits: {\n 'update:active': (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = useProxiedModel(props, 'active', props.active)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n useRender(() => {\n return (\n \n { slots.default && (\n
    \n { slots.default() }\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBottomNavigation = InstanceType\n","export { VBottomSheet } from \"./VBottomSheet.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBottomSheet } from './VBottomSheet'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VBottomSheet.css\";\n\n// Components\nimport { makeVDialogProps, VDialog } from \"../VDialog/VDialog.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBottomSheetProps = propsFactory({\n inset: Boolean,\n ...makeVDialogProps({\n transition: 'bottom-sheet-transition'\n })\n}, 'VBottomSheet');\nexport const VBottomSheet = genericComponent()({\n name: 'VBottomSheet',\n props: makeVBottomSheetProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const dialogProps = VDialog.filterProps(props);\n return _createVNode(VDialog, _mergeProps(dialogProps, {\n \"contentClass\": ['v-bottom-sheet__content', props.contentClass],\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"class\": ['v-bottom-sheet', {\n 'v-bottom-sheet--inset': props.inset\n }, props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VBottomSheet.mjs.map","// Styles\nimport './VBottomSheet.sass'\n\n// Components\nimport { makeVDialogProps, VDialog } from '@/components/VDialog/VDialog'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVBottomSheetProps = propsFactory({\n inset: Boolean,\n\n ...makeVDialogProps({\n transition: 'bottom-sheet-transition',\n }),\n}, 'VBottomSheet')\n\nexport const VBottomSheet = genericComponent()({\n name: 'VBottomSheet',\n\n props: makeVBottomSheetProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const dialogProps = VDialog.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBottomSheet = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDialog.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue';\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true\n },\n scrollable: Boolean,\n ...makeVOverlayProps({\n origin: 'center center',\n scrollStrategy: 'block',\n transition: {\n component: VDialogTransition\n },\n zIndex: 2400\n })\n}, 'VDialog');\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n props: makeVDialogProps(),\n emits: {\n 'update:modelValue': value => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const overlay = ref();\n function onFocusin(e) {\n const before = e.relatedTarget;\n const after = e.target;\n if (before !== after && overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)) {\n const focusable = focusableChildren(overlay.value.contentEl);\n if (!focusable.length) return;\n const firstElement = focusable[0];\n const lastElement = focusable[focusable.length - 1];\n if (before === firstElement) {\n lastElement.focus();\n } else {\n firstElement.focus();\n }\n }\n }\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);\n }, {\n immediate: true\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({\n preventScroll: true\n });\n }\n }\n function onAfterLeave() {\n emit('afterLeave');\n }\n watch(isActive, async val => {\n if (!val) {\n await nextTick();\n overlay.value.activatorEl?.focus({\n preventScroll: true\n });\n }\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog'\n }, props.activatorProps);\n const contentProps = mergeProps({\n tabindex: -1\n }, props.contentProps);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-dialog', {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable\n }, props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"aria-modal\": \"true\",\n \"activatorProps\": activatorProps,\n \"contentProps\": contentProps,\n \"role\": \"dialog\",\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VDialog\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VDialog.mjs.map","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({ preventScroll: true })\n }\n }\n\n function onAfterLeave () {\n emit('afterLeave')\n }\n\n watch(isActive, async val => {\n if (!val) {\n await nextTick()\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog',\n }, props.activatorProps)\n const contentProps = mergeProps({\n tabindex: -1,\n }, props.contentProps)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => (\n \n { slots.default?.(...args) }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType\n","export { VBreadcrumbs } from \"./VBreadcrumbs.mjs\";\nexport { VBreadcrumbsItem } from \"./VBreadcrumbsItem.mjs\";\nexport { VBreadcrumbsDivider } from \"./VBreadcrumbsDivider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBreadcrumbs } from './VBreadcrumbs'\nexport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nexport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBreadcrumbs.css\";\n\n// Components\nimport { VBreadcrumbsDivider } from \"./VBreadcrumbsDivider.mjs\";\nimport { VBreadcrumbsItem } from \"./VBreadcrumbsItem.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBreadcrumbsProps = propsFactory({\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/'\n },\n icon: IconValue,\n items: {\n type: Array,\n default: () => []\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'ul'\n })\n}, 'VBreadcrumbs');\nexport const VBreadcrumbs = genericComponent()({\n name: 'VBreadcrumbs',\n props: makeVBreadcrumbsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider')\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled')\n }\n });\n const items = computed(() => props.items.map(item => {\n return typeof item === 'string' ? {\n item: {\n title: item\n },\n raw: item\n } : {\n item,\n raw: item\n };\n }));\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon);\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [hasPrepend && _createVNode(\"li\", {\n \"key\": \"prepend\",\n \"class\": \"v-breadcrumbs__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"start\": true,\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n icon: props.icon,\n start: true\n }\n }\n }, slots.prepend)]), items.value.map((_ref2, index, array) => {\n let {\n item,\n raw\n } = _ref2;\n return _createVNode(_Fragment, null, [slots.item?.({\n item,\n index\n }) ?? _createVNode(VBreadcrumbsItem, _mergeProps({\n \"key\": index,\n \"disabled\": index >= array.length - 1\n }, typeof item === 'string' ? {\n title: item\n } : item), {\n default: slots.title ? () => slots.title?.({\n item,\n index\n }) : undefined\n }), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {\n default: slots.divider ? () => slots.divider?.({\n item: raw,\n index\n }) : undefined\n })]);\n }), slots.default?.()]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbs.mjs.map","// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { LinkProps } from '@/composables/router'\nimport type { GenericProps } from '@/util'\n\nexport type InternalBreadcrumbItem = Partial & {\n title: string\n disabled?: boolean\n}\n\nexport type BreadcrumbItem = string | InternalBreadcrumbItem\n\nexport const makeVBreadcrumbsProps = propsFactory({\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n}, 'VBreadcrumbs')\n\nexport const VBreadcrumbs = genericComponent(\n props: {\n items?: T[]\n },\n slots: {\n prepend: never\n title: { item: InternalBreadcrumbItem, index: number }\n divider: { item: T, index: number }\n item: { item: InternalBreadcrumbItem, index: number }\n default: never\n }\n) => GenericProps>()({\n name: 'VBreadcrumbs',\n\n props: makeVBreadcrumbsProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n const items = computed(() => props.items.map(item => {\n return typeof item === 'string' ? { item: { title: item }, raw: item } : { item, raw: item }\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n \n { hasPrepend && (\n
  • \n { !slots.prepend ? (\n \n ) : (\n \n )}\n
  • \n )}\n\n { items.value.map(({ item, raw }, index, array) => (\n <>\n { slots.item?.({ item, index }) ?? (\n = array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n )}\n\n { index < array.length - 1 && (\n slots.divider?.({ item: raw, index }) : undefined,\n }}\n />\n )}\n \n ))}\n\n { slots.default?.() }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsDividerProps = propsFactory({\n divider: [Number, String],\n ...makeComponentProps()\n}, 'VBreadcrumbsDivider');\nexport const VBreadcrumbsDivider = genericComponent()({\n name: 'VBreadcrumbsDivider',\n props: makeVBreadcrumbsDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(\"li\", {\n \"class\": ['v-breadcrumbs-divider', props.class],\n \"style\": props.style\n }, [slots?.default?.() ?? props.divider]));\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsDivider.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBreadcrumbsDividerProps = propsFactory({\n divider: [Number, String],\n\n ...makeComponentProps(),\n}, 'VBreadcrumbsDivider')\n\nexport const VBreadcrumbsDivider = genericComponent()({\n name: 'VBreadcrumbsDivider',\n\n props: makeVBreadcrumbsDividerProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n { slots?.default?.() ?? props.divider }\n \n ))\n\n return {}\n },\n})\n\nexport type VBreadcrumbsDivider = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVBreadcrumbsItemProps = propsFactory({\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeRouterProps(),\n ...makeTagProps({\n tag: 'li'\n })\n}, 'VBreadcrumbsItem');\nexport const VBreadcrumbsItem = genericComponent()({\n name: 'VBreadcrumbsItem',\n props: makeVBreadcrumbsItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const link = useLink(props, attrs);\n const isActive = computed(() => props.active || link.isActive?.value);\n const color = computed(() => isActive.value ? props.activeColor : props.color);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": ['v-breadcrumbs-item', {\n 'v-breadcrumbs-item--active': isActive.value,\n 'v-breadcrumbs-item--disabled': props.disabled,\n [`${props.activeClass}`]: isActive.value && props.activeClass\n }, textColorClasses.value, props.class],\n \"style\": [textColorStyles.value, props.style],\n \"aria-current\": isActive.value ? 'page' : undefined\n }, {\n default: () => [!link.isLink.value ? slots.default?.() ?? props.title : _createVNode(\"a\", _mergeProps({\n \"class\": \"v-breadcrumbs-item--link\",\n \"onClick\": link.navigate\n }, link.linkProps), [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VBreadcrumbsItem.mjs.map","// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBreadcrumbsItemProps = propsFactory({\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n title: String,\n\n ...makeComponentProps(),\n ...makeRouterProps(),\n ...makeTagProps({ tag: 'li' }),\n}, 'VBreadcrumbsItem')\n\nexport const VBreadcrumbsItem = genericComponent()({\n name: 'VBreadcrumbsItem',\n\n props: makeVBreadcrumbsItemProps(),\n\n setup (props, { slots, attrs }) {\n const link = useLink(props, attrs)\n const isActive = computed(() => props.active || link.isActive?.value)\n const color = computed(() => isActive.value ? props.activeColor : props.color)\n\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n useRender(() => {\n return (\n \n { !link.isLink.value ? slots.default?.() ?? props.title : (\n \n { slots.default?.() ?? props.title }\n
    \n )}\n \n )\n })\n return {}\n },\n})\n\nexport type VBreadcrumbsItem = InstanceType\n","export { VBtnGroup } from \"./VBtnGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtnGroup } from './VBtnGroup'\n","export { VBtnToggle } from \"./VBtnToggle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VBtnToggle } from './VBtnToggle'\n","export { VCard } from \"./VCard.mjs\";\nexport { VCardActions } from \"./VCardActions.mjs\";\nexport { VCardItem } from \"./VCardItem.mjs\";\nexport { VCardSubtitle } from \"./VCardSubtitle.mjs\";\nexport { VCardText } from \"./VCardText.mjs\";\nexport { VCardTitle } from \"./VCardTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCard } from './VCard'\nexport { VCardActions } from './VCardActions'\nexport { VCardItem } from './VCardItem'\nexport { VCardSubtitle } from './VCardSubtitle'\nexport { VCardText } from './VCardText'\nexport { VCardTitle } from './VCardTitle'\n","import { withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n/* eslint-disable complexity */\n\n// Styles\nimport \"./VCard.css\";\n\n// Components\nimport { VCardActions } from \"./VCardActions.mjs\";\nimport { VCardItem } from \"./VCardItem.mjs\";\nimport { VCardText } from \"./VCardText.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeRouterProps, useLink } from \"../../composables/router.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VCard');\nexport const VCard = genericComponent()({\n name: 'VCard',\n directives: {\n Ripple\n },\n props: makeVCardProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const link = useLink(props, attrs);\n const isLink = computed(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = !!(slots.title || props.title != null);\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null);\n const hasHeader = hasTitle || hasSubtitle;\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);\n const hasImage = !!(slots.image || props.image);\n const hasCardItem = hasHeader || hasPrepend || hasAppend;\n const hasText = !!(slots.text || props.text != null);\n return _withDirectives(_createVNode(Tag, _mergeProps({\n \"class\": ['v-card', {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"onClick\": isClickable.value && link.navigate,\n \"tabindex\": props.disabled ? -1 : undefined\n }, link.linkProps), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-card__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(LoaderSlot, {\n \"name\": \"v-card\",\n \"active\": !!props.loading,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading\n }, {\n default: slots.loader\n }), hasCardItem && _createVNode(VCardItem, {\n \"key\": \"item\",\n \"prependAvatar\": props.prependAvatar,\n \"prependIcon\": props.prependIcon,\n \"title\": props.title,\n \"subtitle\": props.subtitle,\n \"appendAvatar\": props.appendAvatar,\n \"appendIcon\": props.appendIcon\n }, {\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append\n }), hasText && _createVNode(VCardText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.(), slots.actions && _createVNode(VCardActions, null, {\n default: slots.actions\n }), genOverlays(isClickable.value, 'v-card')]\n }), [[_resolveDirective(\"ripple\"), isClickable.value && props.ripple]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCard.mjs.map","/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCardItemSlots } from './VCardItem'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VCard')\n\nexport type VCardSlots = VCardItemSlots & {\n default: never\n actions: never\n text: never\n loader: LoaderSlotProps\n image: never\n item: never\n}\n\nexport const VCard = genericComponent()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeVCardProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title != null)\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text != null)\n\n return (\n \n { hasImage && (\n
    \n { !slots.image ? (\n \n ) : (\n \n )}\n
    \n )}\n\n \n\n { hasCardItem && (\n \n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n \n )}\n\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n \n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { genericComponent, useRender } from \"../../util/index.mjs\";\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n props: makeComponentProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-card-actions', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VCardActions.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeComponentProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VCardSubtitle } from \"./VCardSubtitle.mjs\";\nimport { VCardTitle } from \"./VCardTitle.mjs\";\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n ...makeComponentProps(),\n ...makeDensityProps()\n}, 'VCardItem');\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n props: makeCardItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n return _createVNode(\"div\", {\n \"class\": ['v-card-item', props.class],\n \"style\": props.style\n }, [hasPrepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-card-item__prepend\"\n }, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createVNode(\"div\", {\n \"class\": \"v-card-item__content\"\n }, [hasTitle && _createVNode(VCardTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), hasSubtitle && _createVNode(VCardSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.() ?? props.subtitle]\n }), slots.default?.()]), hasAppend && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-card-item__append\"\n }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n }\n }\n }, slots.append)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCardItem.mjs.map","// Components\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VCardItemSlots = {\n default: never\n prepend: never\n append: never\n title: never\n subtitle: never\n}\n\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n}, 'VCardItem')\n\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n\n props: makeCardItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n return (\n \n { hasPrepend && (\n
    \n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n\n
    \n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.() ?? props.subtitle }\n \n )}\n\n { slots.default?.() }\n
    \n\n { hasAppend && (\n
    \n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardSubtitle');\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n props: makeVCardSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-subtitle', props.class],\n \"style\": [{\n '--v-card-subtitle-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardSubtitle.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardSubtitle')\n\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n\n props: makeVCardSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardSubtitle = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCardTitle = createSimpleFunctional('v-card-title');\n//# sourceMappingURL=VCardTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n\nexport type VCardTitle = InstanceType\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardText');\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n props: makeVCardTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-card-text', props.class],\n \"style\": [{\n '--v-card-text-opacity': props.opacity\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardText.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardText')\n\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n\n props: makeVCardTextProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardText = InstanceType\n","export { VCarousel } from \"./VCarousel.mjs\";\nexport { VCarouselItem } from \"./VCarouselItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCarousel } from './VCarousel'\nexport { VCarouselItem } from './VCarouselItem'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VCarousel.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { onMounted, ref, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter'\n },\n height: {\n type: [Number, String],\n default: 500\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: value => Number(value) > 0\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String],\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force',\n showArrows: true\n })\n}, 'VCarousel');\nexport const VCarousel = genericComponent()({\n name: 'VCarousel',\n props: makeVCarouselProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n t\n } = useLocale();\n const windowRef = ref();\n let slideTimeout = -1;\n watch(model, restartTimeout);\n watch(() => props.interval, restartTimeout);\n watch(() => props.cycle, val => {\n if (val) restartTimeout();else window.clearTimeout(slideTimeout);\n });\n onMounted(startTimeout);\n function startTimeout() {\n if (!props.cycle || !windowRef.value) return;\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);\n }\n function restartTimeout() {\n window.clearTimeout(slideTimeout);\n window.requestAnimationFrame(startTimeout);\n }\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"ref\": windowRef\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-carousel', {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters\n }, props.class],\n \"style\": [{\n height: convertToUnit(props.height)\n }, props.style]\n }), {\n default: slots.default,\n additional: _ref2 => {\n let {\n group\n } = _ref2;\n return _createVNode(_Fragment, null, [!props.hideDelimiters && _createVNode(\"div\", {\n \"class\": \"v-carousel__controls\",\n \"style\": {\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto'\n }\n }, [group.items.value.length > 0 && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text'\n }\n },\n \"scoped\": true\n }, {\n default: () => [group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: ['v-carousel__controls__item', group.isSelected(item.id) && 'v-btn--active'],\n onClick: () => group.select(item.id, true)\n };\n return slots.item ? slots.item({\n props,\n item\n }) : _createVNode(VBtn, _mergeProps(item, props), null);\n })]\n })]), props.progress && _createVNode(VProgressLinear, {\n \"class\": \"v-carousel__progress\",\n \"color\": typeof props.progress === 'string' ? props.progress : undefined,\n \"modelValue\": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100\n }, null)]);\n },\n prev: slots.prev,\n next: slots.next\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCarousel.mjs.map","// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VWindowSlots } from '@/components/VWindow/VWindow'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => Number(value) > 0,\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String] as PropType,\n\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force' as const,\n showArrows: true,\n }),\n}, 'VCarousel')\n\ntype VCarouselSlots = VWindowSlots & {\n item: {\n props: Record\n item: {\n id: number\n value: unknown\n disabled: boolean | undefined\n }\n }\n}\n\nexport const VCarousel = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VCarouselSlots,\n) => GenericProps>()({\n name: 'VCarousel',\n\n props: makeVCarouselProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n \n { group.items.value.length > 0 && (\n \n { group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: [\n 'v-carousel__controls__item',\n group.isSelected(item.id) && 'v-btn--active',\n ],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : ()\n })}\n \n )}\n \n )}\n\n { props.progress && (\n \n )}\n \n ),\n prev: slots.prev,\n next: slots.next,\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCarousel = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VWindow.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useGroup } from \"../../composables/group.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Directives\nimport { Touch } from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VWindowSymbol = Symbol.for('vuetify:v-window');\nexport const VWindowGroupSymbol = Symbol.for('vuetify:v-window-group');\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object],\n default: '$next'\n },\n prevIcon: {\n type: [Boolean, String, Function, Object],\n default: '$prev'\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || v === 'hover'\n },\n touch: {\n type: [Object, Boolean],\n default: undefined\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active'\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String],\n default: 'force'\n },\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VWindow');\nexport const VWindow = genericComponent()({\n name: 'VWindow',\n directives: {\n Touch\n },\n props: makeVWindowProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isRtl\n } = useRtl();\n const {\n t\n } = useLocale();\n const group = useGroup(props, VWindowGroupSymbol);\n const rootRef = ref();\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);\n const isReversed = shallowRef(false);\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x';\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;\n const direction = reverse ? '-reverse' : '';\n return `v-window-${axis}${direction}-transition`;\n });\n const transitionCount = shallowRef(0);\n const transitionHeight = ref(undefined);\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id));\n });\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length;\n const lastIndex = itemsLength - 1;\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal;\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true;\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false;\n } else {\n isReversed.value = newVal < oldVal;\n }\n });\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef\n });\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0);\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);\n function prev() {\n canMoveBack.value && group.prev();\n }\n function next() {\n canMoveForward.value && group.next();\n }\n const arrows = computed(() => {\n const arrows = [];\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev')\n };\n arrows.push(canMoveBack.value ? slots.prev ? slots.prev({\n props: prevProps\n }) : _createVNode(VBtn, prevProps, null) : _createVNode(\"div\", null, null));\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next')\n };\n arrows.push(canMoveForward.value ? slots.next ? slots.next({\n props: nextProps\n }) : _createVNode(VBtn, nextProps, null) : _createVNode(\"div\", null, null));\n return arrows;\n });\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch;\n const options = {\n left: () => {\n isRtlReverse.value ? prev() : next();\n },\n right: () => {\n isRtlReverse.value ? next() : prev();\n },\n start: _ref2 => {\n let {\n originalEvent\n } = _ref2;\n originalEvent.stopPropagation();\n }\n };\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch)\n };\n });\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"ref\": rootRef,\n \"class\": ['v-window', {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover'\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-window__container\",\n \"style\": {\n height: transitionHeight.value\n }\n }, [slots.default?.({\n group\n }), props.showArrows !== false && _createVNode(\"div\", {\n \"class\": \"v-window__controls\"\n }, [arrows.value])]), slots.additional?.({\n group\n })]\n }), [[_resolveDirective(\"touch\"), touchOptions.value]]));\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VWindow.mjs.map","// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef\n transitionCount: Ref\n transitionHeight: Ref\n isReversed: Ref\n rootRef: Ref\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType,\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : \n :
    \n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : \n :
    \n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n \n \n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n
    \n { arrows.value }\n
    \n )}\n
    \n\n { slots.additional?.({ group }) }\n \n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType\n","// Utilities\nimport { keys } from \"../../util/index.mjs\"; // Types\nconst handleGesture = wrapper => {\n const {\n touchstartX,\n touchendX,\n touchstartY,\n touchendY\n } = wrapper;\n const dirRatio = 0.5;\n const minDistance = 16;\n wrapper.offsetX = touchendX - touchstartX;\n wrapper.offsetY = touchendY - touchstartY;\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);\n wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);\n }\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);\n wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);\n }\n};\nfunction touchstart(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchstartX = touch.clientX;\n wrapper.touchstartY = touch.clientY;\n wrapper.start?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction touchend(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchendX = touch.clientX;\n wrapper.touchendY = touch.clientY;\n wrapper.end?.({\n originalEvent: event,\n ...wrapper\n });\n handleGesture(wrapper);\n}\nfunction touchmove(event, wrapper) {\n const touch = event.changedTouches[0];\n wrapper.touchmoveX = touch.clientX;\n wrapper.touchmoveY = touch.clientY;\n wrapper.move?.({\n originalEvent: event,\n ...wrapper\n });\n}\nfunction createHandlers() {\n let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end\n };\n return {\n touchstart: e => touchstart(e, wrapper),\n touchend: e => touchend(e, wrapper),\n touchmove: e => touchmove(e, wrapper)\n };\n}\nfunction mounted(el, binding) {\n const value = binding.value;\n const target = value?.parent ? el.parentElement : el;\n const options = value?.options ?? {\n passive: true\n };\n const uid = binding.instance?.$.uid; // TODO: use custom uid generator\n\n if (!target || !uid) return;\n const handlers = createHandlers(binding.value);\n target._touchHandlers = target._touchHandlers ?? Object.create(null);\n target._touchHandlers[uid] = handlers;\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options);\n });\n}\nfunction unmounted(el, binding) {\n const target = binding.value?.parent ? el.parentElement : el;\n const uid = binding.instance?.$.uid;\n if (!target?._touchHandlers || !uid) return;\n const handlers = target._touchHandlers[uid];\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName]);\n });\n delete target._touchHandlers[uid];\n}\nexport const Touch = {\n mounted,\n unmounted\n};\nexport default Touch;\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport { keys } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\nexport interface TouchHandlers {\n start?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n end?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n move?: (wrapperEvent: { originalEvent: TouchEvent } & TouchData) => void\n left?: (wrapper: TouchData) => void\n right?: (wrapper: TouchData) => void\n up?: (wrapper: TouchData) => void\n down?: (wrapper: TouchData) => void\n}\n\nexport interface TouchData {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n touchendX: number\n touchendY: number\n offsetX: number\n offsetY: number\n}\n\nexport type TouchWrapper = TouchHandlers & TouchData\n\nexport interface TouchValue extends TouchHandlers {\n parent?: boolean\n options?: AddEventListenerOptions\n}\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nexport interface TouchDirectiveBinding extends Omit {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ originalEvent: event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ originalEvent: event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ originalEvent: event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVImgProps, VImg } from \"../VImg/VImg.mjs\";\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps()\n}, 'VCarouselItem');\nexport const VCarouselItem = genericComponent()({\n name: 'VCarouselItem',\n inheritAttrs: false,\n props: makeVCarouselItemProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n useRender(() => {\n const imgProps = VImg.filterProps(props);\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"class\": ['v-carousel-item', props.class]\n }, windowItemProps), {\n default: () => [_createVNode(VImg, _mergeProps(attrs, imgProps), slots)]\n });\n });\n }\n});\n//# sourceMappingURL=VCarouselItem.mjs.map","// Components\nimport { makeVImgProps, VImg } from '@/components/VImg/VImg'\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nexport const makeVCarouselItemProps = propsFactory({\n ...makeVImgProps(),\n ...makeVWindowItemProps(),\n}, 'VCarouselItem')\n\nexport const VCarouselItem = genericComponent()({\n name: 'VCarouselItem',\n\n inheritAttrs: false,\n\n props: makeVCarouselItemProps(),\n\n setup (props, { slots, attrs }) {\n useRender(() => {\n const imgProps = VImg.filterProps(props)\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n \n \n )\n })\n },\n})\n\nexport type VCarouselItem = InstanceType\n","import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport Touch from \"../../directives/touch/index.mjs\"; // Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VWindowGroupSymbol, VWindowSymbol } from \"./VWindow.mjs\";\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined\n },\n transition: {\n type: [Boolean, String],\n default: undefined\n },\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps()\n}, 'VWindowItem');\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n directives: {\n Touch\n },\n props: makeVWindowItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const window = inject(VWindowSymbol);\n const groupItem = useGroupItem(props, VWindowGroupSymbol);\n const {\n isBooted\n } = useSsrBoot();\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');\n const isTransitioning = shallowRef(false);\n const hasTransition = computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));\n function onAfterTransition() {\n if (!isTransitioning.value || !window) {\n return;\n }\n\n // Finalize transition state.\n isTransitioning.value = false;\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1;\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined;\n }\n }\n }\n function onBeforeTransition() {\n if (isTransitioning.value || !window) {\n return;\n }\n\n // Initialize transition state here.\n isTransitioning.value = true;\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight);\n }\n window.transitionCount.value += 1;\n }\n function onTransitionCancelled() {\n onAfterTransition(); // This should have the same path as normal transition end.\n }\n function onEnterTransition(el) {\n if (!isTransitioning.value) {\n return;\n }\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return;\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight);\n });\n }\n const transition = computed(() => {\n const name = window.isReversed.value ? props.reverseTransition : props.transition;\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition\n };\n });\n const {\n hasContent\n } = useLazy(props, groupItem.isSelected);\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": transition.value,\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-window-item', groupItem.selectedClass.value, props.class],\n \"style\": props.style\n }, [hasContent.value && slots.default?.()]), [[_vShow, groupItem.isSelected.value]])]\n }));\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VWindowItem.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const makeVWindowItemProps = propsFactory({\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n}, 'VWindowItem')\n\nexport const VWindowItem = genericComponent()({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: makeVWindowItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n const { isBooted } = useSsrBoot()\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = shallowRef(false)\n const hasTransition = computed(() => isBooted.value && (\n window.isReversed.value\n ? props.reverseTransition !== false\n : props.transition !== false\n ))\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n useRender(() => (\n \n \n { hasContent.value && slots.default?.() }\n
    \n \n ))\n\n return { groupItem }\n },\n})\n\nexport type VWindowItem = InstanceType\n","export { VChipGroup } from \"./VChipGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VChipGroup } from './VChipGroup'\n","// Styles\nimport \"./VCode.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VCode = createSimpleFunctional('v-code');\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VCode.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCode = createSimpleFunctional('v-code')\n\nexport type VCode = InstanceType\n","export { VColorPicker } from \"./VColorPicker.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VColorPicker } from './VColorPicker'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPicker.css\";\n\n// Components\nimport { VColorPickerCanvas } from \"./VColorPickerCanvas.mjs\";\nimport { VColorPickerEdit } from \"./VColorPickerEdit.mjs\";\nimport { VColorPickerPreview } from \"./VColorPickerPreview.mjs\";\nimport { VColorPickerSwatches } from \"./VColorPickerSwatches.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, onBeforeMount, ref, watch } from 'vue';\nimport { extractColor, modes, nullColor } from \"./util/index.mjs\";\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n showSwatches: Boolean,\n swatches: Array,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150\n },\n modelValue: {\n type: [Object, String]\n },\n ...omit(makeVSheetProps({\n width: 300\n }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])\n}, 'VColorPicker');\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n props: makeVColorPickerProps(),\n emits: {\n 'update:modelValue': color => true,\n 'update:mode': mode => true\n },\n setup(props) {\n const mode = useProxiedModel(props, 'mode');\n const hue = ref(null);\n const model = useProxiedModel(props, 'modelValue', undefined, v => {\n if (v == null || v === '') return null;\n let c;\n try {\n c = RGBtoHSV(parseColor(v));\n } catch (err) {\n consoleWarn(err);\n return null;\n }\n return c;\n }, v => {\n if (!v) return null;\n return extractColor(v, props.modelValue);\n });\n const currentColor = computed(() => {\n return model.value ? {\n ...model.value,\n h: hue.value ?? model.value.h\n } : null;\n });\n const {\n rtlClasses\n } = useRtl();\n let externalChange = true;\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true;\n return;\n }\n if (!v) return;\n hue.value = v.h;\n }, {\n immediate: true\n });\n const updateColor = hsva => {\n externalChange = false;\n hue.value = hsva.h;\n model.value = hsva;\n };\n onBeforeMount(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0];\n });\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n return _createVNode(VSheet, _mergeProps({\n \"rounded\": props.rounded,\n \"elevation\": props.elevation,\n \"theme\": props.theme,\n \"class\": ['v-color-picker', rtlClasses.value, props.class],\n \"style\": [{\n '--v-color-picker-color-hsv': HSVtoCSS({\n ...(currentColor.value ?? nullColor),\n a: 1\n })\n }, props.style]\n }, sheetProps, {\n \"maxWidth\": props.width\n }), {\n default: () => [!props.hideCanvas && _createVNode(VColorPickerCanvas, {\n \"key\": \"canvas\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled,\n \"dotSize\": props.dotSize,\n \"width\": props.width,\n \"height\": props.canvasHeight\n }, null), (!props.hideSliders || !props.hideInputs) && _createVNode(\"div\", {\n \"key\": \"controls\",\n \"class\": \"v-color-picker__controls\"\n }, [!props.hideSliders && _createVNode(VColorPickerPreview, {\n \"key\": \"preview\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"hideAlpha\": !mode.value.endsWith('a'),\n \"disabled\": props.disabled\n }, null), !props.hideInputs && _createVNode(VColorPickerEdit, {\n \"key\": \"edit\",\n \"modes\": props.modes,\n \"mode\": mode.value,\n \"onUpdate:mode\": m => mode.value = m,\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"disabled\": props.disabled\n }, null)]), props.showSwatches && _createVNode(VColorPickerSwatches, {\n \"key\": \"swatches\",\n \"color\": currentColor.value,\n \"onUpdate:color\": updateColor,\n \"maxHeight\": props.swatchesMaxHeight,\n \"swatches\": props.swatches,\n \"disabled\": props.disabled\n }, null)]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VColorPicker.mjs.map","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onBeforeMount, ref, watch } from 'vue'\nimport { extractColor, modes, nullColor } from './util'\nimport { consoleWarn, defineComponent, HSVtoCSS, omit, parseColor, propsFactory, RGBtoHSV, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String as PropType,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n}, 'VColorPicker')\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: makeVColorPickerProps(),\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const hue = ref(null)\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n if (v == null || v === '') return null\n\n let c: HSV\n try {\n c = RGBtoHSV(parseColor(v as any))\n } catch (err) {\n consoleWarn(err as any)\n return null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n const currentColor = computed(() => {\n return model.value\n ? { ...model.value, h: hue.value ?? model.value.h }\n : null\n })\n const { rtlClasses } = useRtl()\n\n let externalChange = true\n watch(model, v => {\n if (!externalChange) {\n // prevent hue shift from rgb conversion inaccuracy\n externalChange = true\n return\n }\n if (!v) return\n hue.value = v.h\n }, { immediate: true })\n\n const updateColor = (hsva: HSV) => {\n externalChange = false\n hue.value = hsva.h\n model.value = hsva\n }\n\n onBeforeMount(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n return (\n \n { !props.hideCanvas && (\n \n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n
    \n { !props.hideSliders && (\n \n )}\n\n { !props.hideInputs && (\n mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n
    \n )}\n\n { props.showSwatches && (\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerCanvas.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue';\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10\n },\n height: {\n type: [Number, String],\n default: 150\n },\n width: {\n type: [Number, String],\n default: 300\n },\n ...makeComponentProps()\n}, 'VColorPickerCanvas');\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n props: makeVColorPickerCanvasProps(),\n emits: {\n 'update:color': color => true,\n 'update:position': hue => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const isInteracting = shallowRef(false);\n const canvasRef = ref();\n const canvasWidth = shallowRef(parseFloat(props.width));\n const canvasHeight = shallowRef(parseFloat(props.height));\n const _dotPosition = ref({\n x: 0,\n y: 0\n });\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set(val) {\n if (!canvasRef.value) return;\n const {\n x,\n y\n } = val;\n _dotPosition.value = val;\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1\n });\n }\n });\n const dotStyles = computed(() => {\n const {\n x,\n y\n } = dotPosition.value;\n const radius = parseInt(props.dotSize, 10) / 2;\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`\n };\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return;\n const {\n width,\n height\n } = entries[0].contentRect;\n canvasWidth.value = width;\n canvasHeight.value = height;\n });\n function updateDotPosition(x, y, rect) {\n const {\n left,\n top,\n width,\n height\n } = rect;\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height)\n };\n }\n function handleMouseDown(e) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault();\n }\n if (props.disabled) return;\n handleMouseMove(e);\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n window.addEventListener('touchmove', handleMouseMove);\n window.addEventListener('touchend', handleMouseUp);\n }\n function handleMouseMove(e) {\n if (props.disabled || !canvasRef.value) return;\n isInteracting.value = true;\n const coords = getEventCoordinates(e);\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect());\n }\n function handleMouseUp() {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', handleMouseMove);\n window.removeEventListener('touchend', handleMouseUp);\n }\n function updateCanvas() {\n if (!canvasRef.value) return;\n const canvas = canvasRef.value;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0);\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)'); // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`);\n ctx.fillStyle = saturationGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black\n ctx.fillStyle = valueGradient;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n watch(() => props.color?.h, updateCanvas, {\n immediate: true\n });\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas();\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1]\n };\n }, {\n flush: 'post'\n });\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false;\n return;\n }\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value\n } : {\n x: 0,\n y: 0\n };\n }, {\n deep: true,\n immediate: true\n });\n onMounted(() => updateCanvas());\n useRender(() => _createVNode(\"div\", {\n \"ref\": resizeRef,\n \"class\": ['v-color-picker-canvas', props.class],\n \"style\": props.style,\n \"onMousedown\": handleMouseDown,\n \"onTouchstartPassive\": handleMouseDown\n }, [_createVNode(\"canvas\", {\n \"ref\": canvasRef,\n \"width\": canvasWidth.value,\n \"height\": canvasHeight.value\n }, null), props.color && _createVNode(\"div\", {\n \"class\": ['v-color-picker-canvas__dot', {\n 'v-color-picker-canvas__dot--disabled': props.disabled\n }],\n \"style\": dotStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerCanvas.mjs.map","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object as PropType,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n },\n })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = width\n canvasHeight.value = height\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n \n \n { props.color && (\n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerEdit.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { modes, nullColor } from \"./util/index.mjs\";\nimport { defineComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst VColorPickerInput = _ref => {\n let {\n label,\n ...rest\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-edit__input\"\n }, [_createVNode(\"input\", rest, null), _createVNode(\"span\", null, [label])]);\n};\nexport const makeVColorPickerEditProps = propsFactory({\n color: Object,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: v => Object.keys(modes).includes(v)\n },\n modes: {\n type: Array,\n default: () => Object.keys(modes),\n validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))\n },\n ...makeComponentProps()\n}, 'VColorPickerEdit');\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n props: makeVColorPickerEditProps(),\n emits: {\n 'update:color': color => true,\n 'update:mode': mode => true\n },\n setup(props, _ref2) {\n let {\n emit\n } = _ref2;\n const enabledModes = computed(() => {\n return props.modes.map(key => ({\n ...modes[key],\n name: key\n }));\n });\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode);\n if (!mode) return [];\n const color = props.color ? mode.to(props.color) : null;\n return mode.inputs?.map(_ref3 => {\n let {\n getValue,\n getColor,\n ...inputProps\n } = _ref3;\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: e => {\n const target = e.target;\n if (!target) return;\n emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));\n }\n };\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-edit', props.class],\n \"style\": props.style\n }, [inputs.value?.map(props => _createVNode(VColorPickerInput, props, null)), enabledModes.value.length > 1 && _createVNode(VBtn, {\n \"icon\": \"$unfold\",\n \"size\": \"x-small\",\n \"variant\": \"plain\",\n \"onClick\": () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode);\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name);\n }\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerEdit.mjs.map","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { computed } from 'vue'\nimport { modes, nullColor } from './util'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n \n \n { label }\n \n )\n}\n\nexport const makeVColorPickerEditProps = propsFactory({\n color: Object as PropType,\n disabled: Boolean,\n mode: {\n type: String as PropType,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerEdit')\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: makeVColorPickerEditProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:mode': (mode: keyof typeof modes) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : null\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: color && getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n \n { inputs.value?.map(props => (\n \n ))}\n { enabledModes.value.length > 1 && (\n {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n }}\n />\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerEdit = InstanceType\n","// Utilities\nimport { HexToHSV, HSLtoHSV, HSVtoHex, HSVtoHSL, HSVtoRGB, RGBtoHSV } from \"../../../util/colorUtils.mjs\";\nimport { has } from \"../../../util/helpers.mjs\"; // Types\nfunction stripAlpha(color, stripAlpha) {\n if (stripAlpha) {\n const {\n a,\n ...rest\n } = color;\n return rest;\n }\n return color;\n}\nexport function extractColor(color, input) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color);\n if (color.a === 1) return hex.slice(0, 7);else return hex;\n }\n if (typeof input === 'object') {\n let converted;\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1);\n }\n return color;\n}\nexport function hasAlpha(color) {\n if (!color) return false;\n if (typeof color === 'string') {\n return color.length > 7;\n }\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha']);\n }\n return false;\n}\nexport const nullColor = {\n h: 0,\n s: 0,\n v: 0,\n a: 1\n};\nconst rgba = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'R',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.r),\n getColor: (c, v) => ({\n ...c,\n r: Number(v)\n })\n }, {\n label: 'G',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.g),\n getColor: (c, v) => ({\n ...c,\n g: Number(v)\n })\n }, {\n label: 'B',\n max: 255,\n step: 1,\n getValue: c => Math.round(c.b),\n getColor: (c, v) => ({\n ...c,\n b: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref => {\n let {\n a\n } = _ref;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoRGB,\n from: RGBtoHSV\n};\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3)\n};\nconst hsla = {\n inputProps: {\n type: 'number',\n min: 0\n },\n inputs: [{\n label: 'H',\n max: 360,\n step: 1,\n getValue: c => Math.round(c.h),\n getColor: (c, v) => ({\n ...c,\n h: Number(v)\n })\n }, {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.s * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n s: Number(v)\n })\n }, {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: c => Math.round(c.l * 100) / 100,\n getColor: (c, v) => ({\n ...c,\n l: Number(v)\n })\n }, {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: _ref2 => {\n let {\n a\n } = _ref2;\n return a != null ? Math.round(a * 100) / 100 : 1;\n },\n getColor: (c, v) => ({\n ...c,\n a: Number(v)\n })\n }],\n to: HSVtoHSL,\n from: HSLtoHSV\n};\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3)\n};\nconst hexa = {\n inputProps: {\n type: 'text'\n },\n inputs: [{\n label: 'HEXA',\n getValue: c => c,\n getColor: (c, v) => v\n }],\n to: HSVtoHex,\n from: HexToHSV\n};\nconst hex = {\n ...hexa,\n inputs: [{\n label: 'HEX',\n getValue: c => c.slice(0, 7),\n getColor: (c, v) => v\n }]\n};\nexport const modes = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa\n};\n//# sourceMappingURL=index.mjs.map","// Utilities\nimport {\n HexToHSV,\n HSLtoHSV,\n HSVtoHex,\n HSVtoHSL,\n HSVtoRGB,\n RGBtoHSV,\n} from '@/util/colorUtils'\nimport { has } from '@/util/helpers'\n\n// Types\nimport type { HSL, HSV, RGB } from '@/util/colorUtils'\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSV, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']) && color.a === 1)\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 0, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSV\n to: (color: HSV) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.r),\n getColor: (c: RGB, v: string): RGB => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.g),\n getColor: (c: RGB, v: string): RGB => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGB) => Math.round(c.b),\n getColor: (c: RGB, v: string): RGB => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: RGB) => a != null ? Math.round(a * 100) / 100 : 1,\n getColor: (c: RGB, v: string): RGB => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoRGB,\n from: RGBtoHSV,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSL) => Math.round(c.h),\n getColor: (c: HSL, v: string): HSL => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.s * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSL) => Math.round(c.l * 100) / 100,\n getColor: (c: HSL, v: string): HSL => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: ({ a }: HSL) => a != null ? Math.round(a * 100) / 100 : 1,\n getColor: (c: HSL, v: string): HSL => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVtoHSL,\n from: HSLtoHSV,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVtoHex,\n from: HexToHSV,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n} satisfies Record\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerPreview.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSlider } from \"../VSlider/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { onUnmounted } from 'vue';\nimport { nullColor } from \"./util/index.mjs\";\nimport { defineComponent, HexToHSV, HSVtoCSS, propsFactory, SUPPORTS_EYE_DROPPER, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVColorPickerPreviewProps = propsFactory({\n color: {\n type: Object\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n ...makeComponentProps()\n}, 'VColorPickerPreview');\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n props: makeVColorPickerPreviewProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const abortController = new AbortController();\n onUnmounted(() => abortController.abort());\n async function openEyeDropper() {\n if (!SUPPORTS_EYE_DROPPER) return;\n const eyeDropper = new window.EyeDropper();\n try {\n const result = await eyeDropper.open({\n signal: abortController.signal\n });\n const colorHexValue = HexToHSV(result.sRGBHex);\n emit('update:color', {\n ...(props.color ?? nullColor),\n ...colorHexValue\n });\n } catch (e) {}\n }\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-preview', {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha\n }, props.class],\n \"style\": props.style\n }, [SUPPORTS_EYE_DROPPER && _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__eye-dropper\",\n \"key\": \"eyeDropper\"\n }, [_createVNode(VBtn, {\n \"onClick\": openEyeDropper,\n \"icon\": \"$eyeDropper\",\n \"variant\": \"plain\",\n \"density\": \"comfortable\"\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__dot\"\n }, [_createVNode(\"div\", {\n \"style\": {\n background: HSVtoCSS(props.color ?? nullColor)\n }\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-color-picker-preview__sliders\"\n }, [_createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__hue\",\n \"modelValue\": props.color?.h,\n \"onUpdate:modelValue\": h => emit('update:color', {\n ...(props.color ?? nullColor),\n h\n }),\n \"step\": 0,\n \"min\": 0,\n \"max\": 360,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null), !props.hideAlpha && _createVNode(VSlider, {\n \"class\": \"v-color-picker-preview__track v-color-picker-preview__alpha\",\n \"modelValue\": props.color?.a ?? 1,\n \"onUpdate:modelValue\": a => emit('update:color', {\n ...(props.color ?? nullColor),\n a\n }),\n \"step\": 1 / 256,\n \"min\": 0,\n \"max\": 1,\n \"disabled\": props.disabled,\n \"thumbSize\": 14,\n \"trackSize\": 8,\n \"trackFillColor\": \"white\",\n \"hideDetails\": true\n }, null)])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerPreview.mjs.map","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSlider } from '@/components/VSlider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { onUnmounted } from 'vue'\nimport { nullColor } from './util'\nimport {\n defineComponent,\n HexToHSV,\n HSVtoCSS,\n propsFactory,\n SUPPORTS_EYE_DROPPER,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Hex, HSV } from '@/util'\n\nexport const makeVColorPickerPreviewProps = propsFactory({\n color: {\n type: Object as PropType,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n\n ...makeComponentProps(),\n}, 'VColorPickerPreview')\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: makeVColorPickerPreviewProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n const abortController = new AbortController()\n\n onUnmounted(() => abortController.abort())\n\n async function openEyeDropper () {\n if (!SUPPORTS_EYE_DROPPER) return\n\n const eyeDropper = new window.EyeDropper()\n try {\n const result = await eyeDropper.open({ signal: abortController.signal })\n const colorHexValue = HexToHSV(result.sRGBHex as Hex)\n emit('update:color', { ...(props.color ?? nullColor), ...colorHexValue })\n } catch (e) {}\n }\n\n useRender(() => (\n \n { SUPPORTS_EYE_DROPPER && (\n
    \n \n
    \n )}\n\n
    \n
    \n
    \n\n
    \n emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n\n { !props.hideAlpha && (\n emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 1 / 256 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n )}\n
    \n
    \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerPreview = InstanceType\n","export { VSlider } from \"./VSlider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSlider } from './VSlider'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VSlider.css\";\n\n// Components\nimport { VSliderThumb } from \"./VSliderThumb.mjs\";\nimport { VSliderTrack } from \"./VSliderTrack.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\"; // Composables\nimport { makeSliderProps, useSlider, useSteps } from \"./slider.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n modelValue: {\n type: [Number, String],\n default: 0\n }\n}, 'VSlider');\nexport const VSlider = genericComponent()({\n name: 'VSlider',\n props: makeVSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': v => true,\n start: value => true,\n end: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const thumbContainerRef = ref();\n const {\n rtlClasses\n } = useRtl();\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, value => {\n return steps.roundValue(value == null ? steps.min.value : value);\n });\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const roundedValue = roundValue(value);\n model.value = roundedValue;\n emit('end', roundedValue);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n return model.value = roundValue(value);\n },\n getActiveThumb: () => thumbContainerRef.value?.$el\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStop = computed(() => position(model.value));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"id\": slotProps.id.value,\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": id.value,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": 0,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": thumbContainerRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused.value,\n \"min\": min.value,\n \"max\": max.value,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": v => model.value = v,\n \"position\": trackStop.value,\n \"elevation\": props.elevation,\n \"onFocus\": focus,\n \"onBlur\": blur,\n \"ripple\": props.ripple,\n \"name\": props.name\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSlider.mjs.map","// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeSliderProps, useSlider, useSteps } from './slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSliderThumbSlots } from './VSliderThumb'\nimport type { VSliderTrackSlots } from './VSliderTrack'\nimport type { VInputSlot, VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & VSliderThumbSlots & VSliderTrackSlots & {\n label: VInputSlot\n}\n\nexport const makeVSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n}, 'VSlider')\n\nexport const VSlider = genericComponent()({\n name: 'VSlider',\n\n props: makeVSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n start: (value: number) => true,\n end: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const thumbContainerRef = ref()\n const { rtlClasses } = useRtl()\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n value => {\n return steps.roundValue(value == null ? steps.min.value : value)\n },\n )\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const roundedValue = roundValue(value)\n model.value = roundedValue\n emit('end', roundedValue)\n },\n onSliderMove: ({ value }) => model.value = roundValue(value),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n \n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n \n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n \n ) : undefined,\n default: ({ id, messagesId }) => (\n \n \n\n \n {{ 'tick-label': slots['tick-label'] }}\n \n\n (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n ripple={ props.ripple }\n name={ props.name }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType\n","import { vShow as _vShow, withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSliderThumb.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\";\nimport { VScaleTransition } from \"../transitions/index.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useElevation } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\"; // Directives\nimport Ripple from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true\n },\n min: {\n type: Number,\n required: true\n },\n modelValue: {\n type: Number,\n required: true\n },\n position: {\n type: Number,\n required: true\n },\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n name: String,\n ...makeComponentProps()\n}, 'VSliderThumb');\nexport const VSliderThumb = genericComponent()({\n name: 'VSliderThumb',\n directives: {\n Ripple\n },\n props: makeVSliderThumbProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const slider = inject(VSliderSymbol);\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd\n } = slider;\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined);\n const {\n elevationClasses\n } = useElevation(elevationProps);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(thumbColor);\n const {\n pageup,\n pagedown,\n end,\n home,\n left,\n right,\n down,\n up\n } = keyValues;\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up];\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3];else return [1, 5, 10];\n });\n function parseKeydown(e, value) {\n if (!relevantKeys.includes(e.key)) return;\n e.preventDefault();\n const _step = step.value || 0.1;\n const steps = (props.max - props.min) / _step;\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];\n const direction = increase.includes(e.key) ? 1 : -1;\n const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;\n value = value + direction * _step * multipliers.value[multiplier];\n } else if (e.key === home) {\n value = props.min;\n } else if (e.key === end) {\n value = props.max;\n } else {\n const direction = e.key === pagedown ? 1 : -1;\n value = value - direction * _step * (steps > 100 ? steps / 10 : 10);\n }\n return Math.max(props.min, Math.min(props.max, value));\n }\n function onKeydown(e) {\n const newValue = parseKeydown(e, props.modelValue);\n newValue != null && emit('update:modelValue', newValue);\n }\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');\n return _createVNode(\"div\", {\n \"class\": ['v-slider-thumb', {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value\n }, props.class, rtlClasses.value],\n \"style\": [{\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value)\n }, props.style],\n \"role\": \"slider\",\n \"tabindex\": disabled.value ? -1 : 0,\n \"aria-label\": props.name,\n \"aria-valuemin\": props.min,\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.modelValue,\n \"aria-readonly\": !!readonly.value,\n \"aria-orientation\": direction.value,\n \"onKeydown\": !readonly.value ? onKeydown : undefined\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value],\n \"style\": {\n ...textColorStyles.value\n }\n }, null), _withDirectives(_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__ripple', textColorClasses.value],\n \"style\": textColorStyles.value\n }, null), [[_resolveDirective(\"ripple\"), props.ripple, null, {\n circle: true,\n center: true\n }]]), _createVNode(VScaleTransition, {\n \"origin\": \"bottom center\"\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": \"v-slider-thumb__label-container\"\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-thumb__label']\n }, [_createVNode(\"div\", null, [slots['thumb-label']?.({\n modelValue: props.modelValue\n }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderThumb.mjs.map","// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n name: String,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent()({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n \n \n \n \n \n \n
    \n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n
    \n \n \n
    \n \n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType\n","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue';\nimport { clamp, createRange, getDecimals, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VSliderSymbol = Symbol.for('vuetify:v-slider');\nexport function getOffset(e, el, direction) {\n const vertical = direction === 'vertical';\n const rect = el.getBoundingClientRect();\n const touch = 'touches' in e ? e.touches[0] : e;\n return vertical ? touch.clientY - (rect.top + rect.height / 2) : touch.clientX - (rect.left + rect.width / 2);\n}\nfunction getPosition(e, position) {\n if ('touches' in e && e.touches.length) return e.touches[0][position];else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position];else return e[position];\n}\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n readonly: {\n type: Boolean,\n default: null\n },\n max: {\n type: [Number, String],\n default: 100\n },\n min: {\n type: [Number, String],\n default: 0\n },\n step: {\n type: [Number, String],\n default: 0\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String],\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n thumbSize: {\n type: [Number, String],\n default: 20\n },\n showTicks: {\n type: [Boolean, String],\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always'\n },\n ticks: {\n type: [Array, Object]\n },\n tickSize: {\n type: [Number, String],\n default: 2\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n reverse: Boolean,\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2\n }),\n ripple: {\n type: Boolean,\n default: true\n }\n}, 'Slider');\nexport const useSteps = props => {\n const min = computed(() => parseFloat(props.min));\n const max = computed(() => parseFloat(props.max));\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));\n function roundValue(value) {\n value = parseFloat(value);\n if (step.value <= 0) return value;\n const clamped = clamp(value, min.value, max.value);\n const offset = min.value % step.value;\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));\n }\n return {\n min,\n max,\n step,\n decimals,\n roundValue\n };\n};\nexport const useSlider = _ref => {\n let {\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const isReversed = toRef(props, 'reverse');\n const vertical = computed(() => props.direction === 'vertical');\n const indexFromEnd = computed(() => vertical.value !== isReversed.value);\n const {\n min,\n max,\n step,\n decimals,\n roundValue\n } = steps;\n const thumbSize = computed(() => parseInt(props.thumbSize, 10));\n const tickSize = computed(() => parseInt(props.tickSize, 10));\n const trackSize = computed(() => parseInt(props.trackSize, 10));\n const numTicks = computed(() => (max.value - min.value) / step.value);\n const disabled = toRef(props, 'disabled');\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);\n const mousePressed = shallowRef(false);\n const startOffset = shallowRef(0);\n const trackContainerRef = ref();\n const activeThumbRef = ref();\n function parseMouseMove(e) {\n const vertical = props.direction === 'vertical';\n const start = vertical ? 'top' : 'left';\n const length = vertical ? 'height' : 'width';\n const position = vertical ? 'clientY' : 'clientX';\n const {\n [start]: trackStart,\n [length]: trackLength\n } = trackContainerRef.value?.$el.getBoundingClientRect();\n const clickOffset = getPosition(e, position);\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;\n return roundValue(min.value + clickPos * (max.value - min.value));\n }\n const handleStop = e => {\n onSliderEnd({\n value: parseMouseMove(e)\n });\n mousePressed.value = false;\n startOffset.value = 0;\n };\n const handleStart = e => {\n activeThumbRef.value = getActiveThumb(e);\n if (!activeThumbRef.value) return;\n activeThumbRef.value.focus();\n mousePressed.value = true;\n if (activeThumbRef.value.contains(e.target)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction);\n } else {\n startOffset.value = 0;\n onSliderMove({\n value: parseMouseMove(e)\n });\n }\n onSliderStart({\n value: parseMouseMove(e)\n });\n };\n const moveListenerOptions = {\n passive: true,\n capture: true\n };\n function onMouseMove(e) {\n onSliderMove({\n value: parseMouseMove(e)\n });\n }\n function onSliderMouseUp(e) {\n e.stopPropagation();\n e.preventDefault();\n handleStop(e);\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.removeEventListener('mouseup', onSliderMouseUp);\n }\n function onSliderTouchend(e) {\n handleStop(e);\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.removeEventListener('touchend', onSliderTouchend);\n }\n function onSliderTouchstart(e) {\n handleStart(e);\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions);\n e.target?.addEventListener('touchend', onSliderTouchend, {\n passive: false\n });\n }\n function onSliderMousedown(e) {\n e.preventDefault();\n handleStart(e);\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions);\n window.addEventListener('mouseup', onSliderMouseUp, {\n passive: false\n });\n }\n const position = val => {\n const percentage = (val - min.value) / (max.value - min.value) * 100;\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);\n };\n const showTicks = toRef(props, 'showTicks');\n const parsedTicks = computed(() => {\n if (!showTicks.value) return [];\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + t * step.value;\n return {\n value,\n position: position(value)\n };\n }) : [];\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({\n value: t,\n position: position(t),\n label: t.toString()\n }));\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: props.ticks[key]\n }));\n });\n const hasLabels = computed(() => parsedTicks.value.some(_ref2 => {\n let {\n label\n } = _ref2;\n return !!label;\n }));\n const data = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical\n };\n provide(VSliderSymbol, data);\n return data;\n};\n//# sourceMappingURL=slider.mjs.map","/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref\n color: Ref\n decimals: Ref\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref\n elevation: Ref\n min: Ref\n max: Ref\n mousePressed: Ref\n numTicks: Ref\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref\n rounded: Ref\n roundValue: (value: number) => number\n thumbLabel: Ref\n showTicks: Ref\n startOffset: Ref\n step: Ref\n thumbSize: Ref\n thumbColor: Ref\n trackColor: Ref\n trackFillColor: Ref\n trackSize: Ref\n ticks: Ref | undefined>\n tickSize: Ref\n trackContainerRef: Ref\n vertical: Ref\n parsedTicks: Ref\n hasLabels: Ref\n isReversed: Ref\n indexFromEnd: Ref\n}\n\nexport const VSliderSymbol: InjectionKey = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref()\n const activeThumbRef = ref()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n onSliderEnd({ value: parseMouseMove(e) })\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n onSliderStart({ value: parseMouseMove(e) })\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(props, 'showTicks')\n const parsedTicks = computed(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSliderTrack.css\";\n\n// Components\nimport { VSliderSymbol } from \"./slider.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useRounded } from \"../../composables/rounded.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true\n },\n stop: {\n type: Number,\n required: true\n },\n ...makeComponentProps()\n}, 'VSliderTrack');\nexport const VSliderTrack = genericComponent()({\n name: 'VSliderTrack',\n props: makeVSliderTrackProps(),\n emits: {},\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slider = inject(VSliderSymbol);\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider');\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd\n } = slider;\n const {\n roundedClasses\n } = useRounded(rounded);\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles\n } = useBackgroundColor(trackFillColor);\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles\n } = useBackgroundColor(trackColor);\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`);\n const endDir = computed(() => vertical.value ? 'height' : 'width');\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%'\n };\n });\n const trackFillWidth = computed(() => props.stop - props.start);\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%')\n };\n });\n const computedTicks = computed(() => {\n if (!showTicks.value) return [];\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;\n return _createVNode(\"div\", {\n \"key\": tick.value,\n \"class\": ['v-slider-track__tick', {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value\n }],\n \"style\": {\n [startDir.value]: directionValue\n }\n }, [(tick.label || slots['tick-label']) && _createVNode(\"div\", {\n \"class\": \"v-slider-track__tick-label\"\n }, [slots['tick-label']?.({\n tick,\n index\n }) ?? tick.label])]);\n });\n });\n useRender(() => {\n return _createVNode(\"div\", {\n \"class\": ['v-slider-track', roundedClasses.value, props.class],\n \"style\": [{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": ['v-slider-track__background', trackColorClasses.value, {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value\n }],\n \"style\": {\n ...backgroundStyles.value,\n ...trackColorStyles.value\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-slider-track__fill', trackFillColorClasses.value],\n \"style\": {\n ...trackFillStyles.value,\n ...trackFillColorStyles.value\n }\n }, null), showTicks.value && _createVNode(\"div\", {\n \"class\": ['v-slider-track__ticks', {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always'\n }]\n }, [computedTicks.value])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSliderTrack.mjs.map","// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Tick } from './slider'\n\nexport type VSliderTrackSlots = {\n 'tick-label': { tick: Tick, index: number }\n}\n\nexport const makeVSliderTrackProps = propsFactory({\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n\n ...makeComponentProps(),\n}, 'VSliderTrack')\n\nexport const VSliderTrack = genericComponent()({\n name: 'VSliderTrack',\n\n props: makeVSliderTrackProps(),\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n indexFromEnd,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n = props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [startDir.value]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n
    \n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n
    \n )\n }\n \n )\n })\n })\n\n useRender(() => {\n return (\n \n \n \n\n { showTicks.value && (\n \n { computedTicks.value }\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VColorPickerSwatches.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\"; // Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast, parseColor, propsFactory, RGBtoCSS, RGBtoHSV, useRender } from \"../../util/index.mjs\";\nimport colors from \"../../util/colors.mjs\"; // Types\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array,\n default: () => parseDefaultColors(colors)\n },\n disabled: Boolean,\n color: Object,\n maxHeight: [Number, String],\n ...makeComponentProps()\n}, 'VColorPickerSwatches');\nfunction parseDefaultColors(colors) {\n return Object.keys(colors).map(key => {\n const color = colors[key];\n return color.base ? [color.base, color.darken4, color.darken3, color.darken2, color.darken1, color.lighten1, color.lighten2, color.lighten3, color.lighten4, color.lighten5] : [color.black, color.white, color.transparent];\n });\n}\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n props: makeVColorPickerSwatchesProps(),\n emits: {\n 'update:color': color => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-color-picker-swatches', props.class],\n \"style\": [{\n maxHeight: convertToUnit(props.maxHeight)\n }, props.style]\n }, [_createVNode(\"div\", null, [props.swatches.map(swatch => _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__swatch\"\n }, [swatch.map(color => {\n const rgba = parseColor(color);\n const hsva = RGBtoHSV(rgba);\n const background = RGBtoCSS(rgba);\n return _createVNode(\"div\", {\n \"class\": \"v-color-picker-swatches__color\",\n \"onClick\": () => hsva && emit('update:color', hsva)\n }, [_createVNode(\"div\", {\n \"style\": {\n background\n }\n }, [props.color && deepEqual(props.color, hsva) ? _createVNode(VIcon, {\n \"size\": \"x-small\",\n \"icon\": \"$success\",\n \"color\": getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black'\n }, null) : undefined])]);\n })]))])]));\n return {};\n }\n});\n//# sourceMappingURL=VColorPickerSwatches.mjs.map","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport {\n convertToUnit,\n deepEqual,\n defineComponent,\n getContrast,\n parseColor,\n propsFactory,\n RGBtoCSS,\n RGBtoHSV,\n useRender,\n} from '@/util'\nimport colors from '@/util/colors'\n\n// Types\nimport type { DeepReadonly, PropType } from 'vue'\nimport type { Color, HSV } from '@/util'\n\nexport const makeVColorPickerSwatchesProps = propsFactory({\n swatches: {\n type: Array as PropType>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType,\n maxHeight: [Number, String],\n\n ...makeComponentProps(),\n}, 'VColorPickerSwatches')\n\nfunction parseDefaultColors (colors: Record>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: makeVColorPickerSwatchesProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n },\n\n setup (props, { emit }) {\n useRender(() => (\n \n
    \n { props.swatches.map(swatch => (\n
    \n { swatch.map(color => {\n const rgba = parseColor(color)\n const hsva = RGBtoHSV(rgba)\n const background = RGBtoCSS(rgba)\n\n return (\n hsva && emit('update:color', hsva) }\n >\n
    \n { props.color && deepEqual(props.color, hsva)\n ? 2 ? 'white' : 'black' } />\n : undefined\n }\n
    \n
    \n )\n })}\n
    \n ))}\n \n \n ))\n\n return {}\n },\n})\n\nexport type VColorPickerSwatches = InstanceType\n","export const red = {\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000'\n};\nexport const pink = {\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162'\n};\nexport const purple = {\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff'\n};\nexport const deepPurple = {\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea'\n};\nexport const indigo = {\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe'\n};\nexport const blue = {\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff'\n};\nexport const lightBlue = {\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea'\n};\nexport const cyan = {\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4'\n};\nexport const teal = {\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5'\n};\nexport const green = {\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853'\n};\nexport const lightGreen = {\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17'\n};\nexport const lime = {\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00'\n};\nexport const yellow = {\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600'\n};\nexport const amber = {\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00'\n};\nexport const orange = {\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00'\n};\nexport const deepOrange = {\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00'\n};\nexport const brown = {\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723'\n};\nexport const blueGrey = {\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238'\n};\nexport const grey = {\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121'\n};\nexport const shades = {\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00'\n};\nexport default {\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades\n};\n//# sourceMappingURL=colors.mjs.map","export const red = {\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n}\n\nexport const pink = {\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n}\n\nexport const purple = {\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n}\n\nexport const deepPurple = {\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n}\n\nexport const indigo = {\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n}\n\nexport const blue = {\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n}\n\nexport const lightBlue = {\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n}\n\nexport const cyan = {\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n}\n\nexport const teal = {\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n}\n\nexport const green = {\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n}\n\nexport const lightGreen = {\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n}\n\nexport const lime = {\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n}\n\nexport const yellow = {\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n}\n\nexport const amber = {\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n}\n\nexport const orange = {\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n}\n\nexport const deepOrange = {\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n}\n\nexport const brown = {\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n}\n\nexport const blueGrey = {\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n}\n\nexport const grey = {\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n}\n\nexport const shades = {\n black: '#000000',\n white: '#ffffff',\n transparent: '#ffffff00',\n}\n\nexport default {\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n}\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VSheet.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSheetProps = propsFactory({\n color: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSheet');\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n props: makeVSheetProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSheet.mjs.map","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVSheetProps = propsFactory({\n color: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VSheet')\n\nexport const VSheet = genericComponent()({\n name: 'VSheet',\n\n props: makeVSheetProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VSheet = InstanceType\n","export { VCombobox } from \"./VCombobox.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCombobox } from './VCombobox'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VCombobox.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VList, VListItem } from \"../VList/index.mjs\";\nimport { VMenu } from \"../VMenu/index.mjs\";\nimport { makeSelectProps } from \"../VSelect/VSelect.mjs\";\nimport { VTextField } from \"../VTextField/index.mjs\";\nimport { makeVTextFieldProps } from \"../VTextField/VTextField.mjs\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.mjs\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.mjs\";\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { useForm } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { transformItem, useItems } from \"../../composables/list-items.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTransitionProps } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, ensureValidVNode, genericComponent, IN_BROWSER, isComposingIgnoreKey, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nfunction highlightResult(text, matches, length) {\n if (matches == null) return text;\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');\n return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(0, matches)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__mask\"\n }, [text.substr(matches, length)]), _createVNode(\"span\", {\n \"class\": \"v-combobox__unmask\"\n }, [text.substr(matches + length)])]) : text;\n}\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n delimiters: Array,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps({\n hideNoData: true,\n returnObject: true\n }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: false\n })\n}, 'VCombobox');\nexport const VCombobox = genericComponent()({\n name: 'VCombobox',\n props: makeVComboboxProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:search': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n _menu.value = v;\n }\n });\n const selectionIndex = shallowRef(-1);\n let cleared = false;\n const color = computed(() => vTextFieldRef.value?.color);\n const label = computed(() => menu.value ? props.closeText : props.openText);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const form = useForm();\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');\n const search = computed({\n get: () => {\n return _search.value;\n },\n set: val => {\n _search.value = val ?? '';\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)];\n }\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim();\n if (v) select(transformItem(props, v));\n });\n _search.value = '';\n }\n }\n if (!val) selectionIndex.value = -1;\n isPristine.value = !val;\n }\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : props.multiple ? model.value.length : search.value.length;\n });\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => cleared = false);\n } else if (isFocused.value && !menu.value) {\n menu.value = true;\n }\n emit('update:search', value);\n });\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? '';\n }\n });\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => isPristine.value ? '' : search.value);\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n cleared = true;\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus();\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown(e) {\n if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value.selectionStart;\n const length = model.value.length;\n if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(filteredItems.value[0]);\n }\n isPristine.value = true;\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value));\n if (hasSelectionSlot.value) _search.value = '';\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length);\n }\n }\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value.setSelectionRange(0, 0);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n }\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n _search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return;\n selectionIndex.value = -1;\n menu.value = false;\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value));\n return;\n }\n if (!hasSelectionSlot.value) return;\n if (model.value.some(_ref3 => {\n let {\n title\n } = _ref3;\n return title === search.value;\n })) {\n _search.value = '';\n } else {\n select(transformItem(props, search.value));\n }\n }\n });\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-combobox', {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!hasSelectionSlot.value,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true\n }, props.class],\n \"style\": props.style,\n \"readonly\": props.readonly,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-combobox__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value\n }, {\n default: _ref4 => {\n let {\n item,\n index,\n itemRef\n } = _ref4;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref5 => {\n let {\n isSelected\n } = _ref5;\n return _createVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\"\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createVNode(\"div\", {\n \"key\": item.value,\n \"class\": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],\n \"style\": index === selectionIndex.value ? textColorStyles.value : {}\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createVNode(\"span\", {\n \"class\": \"v-combobox__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-combobox__menu-icon\",\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": t(label.value),\n \"title\": t(label.value),\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VCombobox.mjs.map","// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { transformItem, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n checkPrintable,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n isComposingIgnoreKey,\n noop,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n { text.substr(0, matches) }\n { text.substr(matches, length) }\n { text.substr(matches + length) }\n \n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val = string | ([T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any))\n\ntype Value =\n Multiple extends true\n ? readonly Val[]\n : Val | null\n\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType,\n },\n clearOnSelect: {\n type: Boolean,\n default: true,\n },\n delimiters: Array as PropType,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VCombobox = genericComponent,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value = Value\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemProps?: SelectItemKey>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit & {\n item: { item: ListItem, index: number, props: Record }\n chip: { item: ListItem, index: number, props: Record }\n selection: { item: ListItem, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps>()({\n name: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:search': (value: string) => true,\n 'update:menu': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref()\n const vVirtualScrollRef = ref()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n _menu.value = v\n },\n })\n const selectionIndex = shallowRef(-1)\n let cleared = false\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n\n const hasChips = computed(() => !!(props.chips || slots.chip))\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection)\n\n const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '')\n\n const search = computed({\n get: () => {\n return _search.value\n },\n set: (val: string | null) => {\n _search.value = val ?? ''\n if (!props.multiple && !hasSelectionSlot.value) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (props.multiple ? model.value.length : search.value.length)\n })\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n\n watch(model, value => {\n if (!props.multiple && !hasSelectionSlot.value) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n vTextFieldRef.value?.focus()\n }\n }\n // eslint-disable-next-line complexity\n function onKeydown (e: KeyboardEvent) {\n if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (\n highlightFirst.value &&\n ['Enter', 'Tab'].includes(e.key) &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n if (hasSelectionSlot.value) _search.value = ''\n }\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (\n !props.multiple &&\n hasSelectionSlot.value &&\n model.value.length > 0 &&\n !search.value\n ) return select(model.value[0], false)\n\n if (~selectionIndex.value) {\n const originalSelectionIndex = selectionIndex.value\n select(model.value[selectionIndex.value], false)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n }\n\n if (!props.multiple) return\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n /** @param set - null means toggle */\n function select (item: ListItem | undefined, set: boolean | null = true) {\n if (!item || item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n\n if (props.clearOnSelect) {\n search.value = ''\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n _search.value = add && !hasSelectionSlot.value ? item.title : ''\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple && !hasSelectionSlot.value)) model.value = []\n }\n\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (search.value) {\n if (props.multiple) {\n select(transformItem(props, search.value))\n return\n }\n\n if (!hasSelectionSlot.value) return\n\n if (model.value.some(({ title }) => title === search.value)) {\n _search.value = ''\n } else {\n select(transformItem(props, search.value))\n }\n }\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(() => props.items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n \n { hasList && (\n e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n tabindex=\"-1\"\n aria-live=\"polite\"\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n \n ))}\n\n \n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item, null),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n \n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n \n ) : undefined }\n\n { item.props.prependAvatar && (\n \n )}\n\n { item.props.prependIcon && (\n \n )}\n \n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n \n )\n }}\n \n\n { slots['append-item']?.() }\n \n )}\n \n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips.value\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n \n { hasChips.value ? (\n !slots.chip ? (\n \n ) : (\n \n { slotContent }\n \n )\n ) : (\n slotContent ?? (\n \n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n ,\n )}\n \n )\n )}\n \n )\n })}\n \n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { (!props.hideNoData || props.items.length) && props.menuIcon ? (\n \n ) : undefined }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType\n","export { VTextField } from \"./VTextField.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTextField } from './VTextField'\n","export { VConfirmEdit } from \"./VConfirmEdit.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VConfirmEdit } from './VConfirmEdit'\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useLocale } from \"../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel'\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok'\n }\n}, 'VConfirmEdit');\nexport const VConfirmEdit = genericComponent()({\n name: 'VConfirmEdit',\n props: makeVConfirmEditProps(),\n emits: {\n cancel: () => true,\n save: value => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const internalModel = ref();\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value));\n });\n const {\n t\n } = useLocale();\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value);\n });\n function save() {\n model.value = internalModel.value;\n emit('save', internalModel.value);\n }\n function cancel() {\n internalModel.value = structuredClone(toRaw(model.value));\n emit('cancel');\n }\n let actionsUsed = false;\n useRender(() => {\n const actions = _createVNode(_Fragment, null, [_createVNode(VBtn, {\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": cancel,\n \"text\": t(props.cancelText)\n }, null), _createVNode(VBtn, {\n \"disabled\": isPristine.value,\n \"variant\": \"text\",\n \"color\": props.color,\n \"onClick\": save,\n \"text\": t(props.okText)\n }, null)]);\n return _createVNode(_Fragment, null, [slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions() {\n actionsUsed = true;\n return actions;\n }\n }), !actionsUsed && actions]);\n });\n return {\n save,\n cancel,\n isPristine\n };\n }\n});\n//# sourceMappingURL=VConfirmEdit.mjs.map","// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRaw, watchEffect } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref, VNode } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type VConfirmEditSlots = {\n default: {\n model: Ref\n save: () => void\n cancel: () => void\n isPristine: boolean\n get actions (): VNode\n }\n}\n\nexport const makeVConfirmEditProps = propsFactory({\n modelValue: null,\n color: String,\n cancelText: {\n type: String,\n default: '$vuetify.confirmEdit.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.confirmEdit.ok',\n },\n}, 'VConfirmEdit')\n\nexport const VConfirmEdit = genericComponent (\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n 'onSave'?: (value: T) => void\n },\n slots: VConfirmEditSlots\n) => GenericProps>()({\n name: 'VConfirmEdit',\n\n props: makeVConfirmEditProps(),\n\n emits: {\n cancel: () => true,\n save: (value: any) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const internalModel = ref()\n watchEffect(() => {\n internalModel.value = structuredClone(toRaw(model.value))\n })\n\n const { t } = useLocale()\n\n const isPristine = computed(() => {\n return deepEqual(model.value, internalModel.value)\n })\n\n function save () {\n model.value = internalModel.value\n emit('save', internalModel.value)\n }\n\n function cancel () {\n internalModel.value = structuredClone(toRaw(model.value))\n emit('cancel')\n }\n\n let actionsUsed = false\n useRender(() => {\n const actions = (\n <>\n \n\n \n \n )\n return (\n <>\n {\n slots.default?.({\n model: internalModel,\n save,\n cancel,\n isPristine: isPristine.value,\n get actions () {\n actionsUsed = true\n return actions\n },\n })\n }\n\n { !actionsUsed && actions }\n \n )\n })\n\n return {\n save,\n cancel,\n isPristine,\n }\n },\n})\n\nexport type VConfirmEdit = InstanceType\n","export { VCounter } from \"./VCounter.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VCounter } from './VCounter'\n","export { VDataIterator } from \"./VDataIterator.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDataIterator } from './VDataIterator'\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { makeDataTableExpandProps, provideExpanded } from \"../VDataTable/composables/expand.mjs\";\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"../VDataTable/composables/group.mjs\";\nimport { useOptions } from \"../VDataTable/composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"../VDataTable/composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"../VDataTable/composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"../VDataTable/composables/sort.mjs\"; // Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from \"./composables/items.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { LoaderSlot } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({\n itemsPerPage: 5\n }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition,\n hideOnLeave: true\n }\n })\n}, 'VDataIterator');\nexport const VDataIterator = genericComponent()({\n name: 'VDataIterator',\n props: makeVDataIteratorProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:groupBy': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupBy = useProxiedModel(props, 'groupBy');\n const search = toRef(props, 'search');\n const {\n items\n } = useDataIteratorItems(props);\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.raw\n });\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.raw\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-data-iterator', {\n 'v-data-iterator--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.header?.(slotProps.value), _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [props.loading ? _createVNode(LoaderSlot, {\n \"key\": \"loader\",\n \"name\": \"v-data-iterator\",\n \"active\": true\n }, {\n default: slotProps => slots.loader?.(slotProps)\n }) : _createVNode(\"div\", {\n \"key\": \"items\"\n }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]\n }), slots.footer?.(slotProps.value)]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VDataIterator.mjs.map","// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { makeDataTableExpandProps, provideExpanded } from '@/components/VDataTable/composables/expand'\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from '@/components/VDataTable/composables/group'\nimport { useOptions } from '@/components/VDataTable/composables/options'\nimport {\n createPagination,\n makeDataTablePaginateProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/VDataTable/composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from '@/components/VDataTable/composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from '@/components/VDataTable/composables/sort'\n\n// Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from './composables/items'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { LoaderSlot } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { DataIteratorItem } from './composables/items'\nimport type { Group } from '@/components/VDataTable/composables/group'\nimport type { SortItem } from '@/components/VDataTable/composables/sort'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\ntype VDataIteratorSlotProps = {\n page: number\n itemsPerPage: number\n sortBy: readonly SortItem[]\n pageCount: number\n toggleSort: ReturnType['toggleSort']\n prevPage: ReturnType['prevPage']\n nextPage: ReturnType['nextPage']\n setPage: ReturnType['setPage']\n setItemsPerPage: ReturnType['setItemsPerPage']\n isSelected: ReturnType['isSelected']\n select: ReturnType['select']\n selectAll: ReturnType['selectAll']\n toggleSelect: ReturnType['toggleSelect']\n isExpanded: ReturnType['isExpanded']\n toggleExpand: ReturnType['toggleExpand']\n isGroupOpen: ReturnType['isGroupOpen']\n toggleGroup: ReturnType['toggleGroup']\n items: readonly DataIteratorItem[]\n groupedItems: readonly (DataIteratorItem | Group>)[]\n}\n\nexport type VDataIteratorSlots = {\n default: VDataIteratorSlotProps\n header: VDataIteratorSlotProps\n footer: VDataIteratorSlotProps\n loader: LoaderSlotProps\n 'no-data': never\n}\n\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({ itemsPerPage: 5 }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition as Component,\n hideOnLeave: true,\n },\n }),\n}, 'VDataIterator')\n\nexport const VDataIterator = genericComponent (\n props: {\n items?: readonly T[]\n },\n slots: VDataIteratorSlots,\n) => GenericProps>()({\n name: 'VDataIterator',\n\n props: makeVDataIteratorProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:groupBy': (value: any) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const search = toRef(props, 'search')\n\n const { items } = useDataIteratorItems(props)\n const { filteredItems } = useFilter(props, items, search, { transform: item => item.raw })\n\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, { transform: item => item.raw })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const itemsLength = computed(() => flatItems.value.length)\n\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage,\n } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n }))\n\n useRender(() => (\n \n { slots.header?.(slotProps.value) }\n\n \n { props.loading ? (\n \n { slotProps => slots.loader?.(slotProps) }\n \n ) : (\n
    \n { !paginatedItems.value.length\n ? slots['no-data']?.()\n : slots.default?.(slotProps.value)\n }\n
    \n )}\n
    \n\n { slots.footer?.(slotProps.value) }\n \n ))\n\n return {}\n },\n})\n\nexport type VDataIterator = InstanceType\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { inject, provide, toRef } from 'vue';\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-expand');\nexport const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');\nexport function provideExpanded(props) {\n const expandOnClick = toRef(props, 'expandOnClick');\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v);\n }, v => {\n return [...v.values()];\n });\n function expand(item, value) {\n const newExpanded = new Set(expanded.value);\n if (!value) {\n newExpanded.delete(item.value);\n } else {\n newExpanded.add(item.value);\n }\n expanded.value = newExpanded;\n }\n function isExpanded(item) {\n return expanded.value.has(item.value);\n }\n function toggleExpand(item) {\n expand(item, !isExpanded(item));\n }\n const data = {\n expand,\n expanded,\n expandOnClick,\n isExpanded,\n toggleExpand\n };\n provide(VDataTableExpandedKey, data);\n return data;\n}\nexport function useExpanded() {\n const data = inject(VDataTableExpandedKey);\n if (!data) throw new Error('foo');\n return data;\n}\n//# sourceMappingURL=expand.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { inject, provide, toRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItem } from '../types'\n\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'DataTable-expand')\n\nexport const VDataTableExpandedKey: InjectionKey<{\n expand: (item: DataTableItem, value: boolean) => void\n expanded: Ref>\n expandOnClick: Ref\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n}> = Symbol.for('vuetify:datatable:expanded')\n\ntype ExpandProps = {\n expandOnClick: boolean\n expanded: readonly string[]\n 'onUpdate:expanded': ((value: any[]) => void) | undefined\n}\n\nexport function provideExpanded (props: ExpandProps) {\n const expandOnClick = toRef(props, 'expandOnClick')\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v)\n }, v => {\n return [...v.values()]\n })\n\n function expand (item: DataTableItem, value: boolean) {\n const newExpanded = new Set(expanded.value)\n\n if (!value) {\n newExpanded.delete(item.value)\n } else {\n newExpanded.add(item.value)\n }\n\n expanded.value = newExpanded\n }\n\n function isExpanded (item: DataTableItem) {\n return expanded.value.has(item.value)\n }\n\n function toggleExpand (item: DataTableItem) {\n expand(item, !isExpanded(item))\n }\n\n const data = { expand, expanded, expandOnClick, isExpanded, toggleExpand }\n\n provide(VDataTableExpandedKey, data)\n\n return data\n}\n\nexport function useExpanded () {\n const data = inject(VDataTableExpandedKey)\n\n if (!data) throw new Error('foo')\n\n return data\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, ref } from 'vue';\nimport { getObjectValueByPath, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-group');\nconst VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');\nexport function createGroupBy(props) {\n const groupBy = useProxiedModel(props, 'groupBy');\n return {\n groupBy\n };\n}\nexport function provideGroupBy(options) {\n const {\n disableSort,\n groupBy,\n sortBy\n } = options;\n const opened = ref(new Set());\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false\n })).concat(disableSort?.value ? [] : sortBy.value);\n });\n function isGroupOpen(group) {\n return opened.value.has(group.id);\n }\n function toggleGroup(group) {\n const newOpened = new Set(opened.value);\n if (!isGroupOpen(group)) newOpened.add(group.id);else newOpened.delete(group.id);\n opened.value = newOpened;\n }\n function extractRows(items) {\n function dive(group) {\n const arr = [];\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item));\n } else {\n arr.push(item);\n }\n }\n return arr;\n }\n return dive({\n type: 'group',\n items,\n id: 'dummy',\n key: 'dummy',\n value: 'dummy',\n depth: 0\n });\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = {\n sortByWithGroups,\n toggleGroup,\n opened,\n groupBy,\n extractRows,\n isGroupOpen\n };\n provide(VDataTableGroupSymbol, data);\n return data;\n}\nexport function useGroupBy() {\n const data = inject(VDataTableGroupSymbol);\n if (!data) throw new Error('Missing group!');\n return data;\n}\nfunction groupItemsByProperty(items, groupBy) {\n if (!items.length) return [];\n const groups = new Map();\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy);\n if (!groups.has(value)) {\n groups.set(value, []);\n }\n groups.get(value).push(item);\n }\n return groups;\n}\nfunction groupItems(items, groupBy) {\n let depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n let prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'root';\n if (!groupBy.length) return [];\n const groupedItems = groupItemsByProperty(items, groupBy[0]);\n const groups = [];\n const rest = groupBy.slice(1);\n groupedItems.forEach((items, value) => {\n const key = groupBy[0];\n const id = `${prefix}_${key}_${value}`;\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group'\n });\n });\n return groups;\n}\nfunction flattenItems(items, opened) {\n const flatItems = [];\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item);\n }\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened));\n }\n } else {\n flatItems.push(item);\n }\n }\n return flatItems;\n}\nexport function useGroupedItems(items, groupBy, opened) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value;\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));\n return flattenItems(groupedItems, opened.value);\n });\n return {\n flatItems\n };\n}\n//# sourceMappingURL=group.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableItem } from '../types'\n\nexport interface GroupableItem {\n type: 'item'\n raw: T\n}\n\nexport interface Group {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'DataTable-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref\n groupBy: Ref\n extractRows: (items: (DataTableItem | Group)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: {\n groupBy: Ref\n sortBy: Ref\n disableSort?: Ref\n}) {\n const { disableSort, groupBy, sortBy } = options\n const opened = ref(new Set())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(disableSort?.value ? [] : sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows (items: readonly (T | Group)[]) {\n function dive (group: Group): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return arr\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems (items: readonly (T | Group)[], opened: Set): readonly (T | Group)[] {\n const flatItems: (T | Group)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened))\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems (\n items: Ref,\n groupBy: Ref,\n opened: Ref>\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value)\n })\n\n return { flatItems }\n}\n","// Utilities\nimport { computed, watch } from 'vue';\nimport { deepEqual, getCurrentInstance } from \"../../../util/index.mjs\"; // Types\nexport function useOptions(_ref) {\n let {\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n } = _ref;\n const vm = getCurrentInstance('VDataTable');\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value\n }));\n let oldOptions = null;\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return;\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== options.value.search) {\n page.value = 1;\n }\n vm.emit('update:options', options.value);\n oldOptions = options.value;\n }, {\n deep: true,\n immediate: true\n });\n}\n//# sourceMappingURL=options.mjs.map","// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n}: {\n page: Ref\n itemsPerPage: Ref\n sortBy: Ref\n groupBy: Ref\n search: Ref\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value,\n }))\n\n let oldOptions: typeof options.value | null = null\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== options.value.search) {\n page.value = 1\n }\n\n vm.emit('update:options', options.value)\n oldOptions = options.value\n }, { deep: true, immediate: true })\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, watch } from 'vue';\nimport { clamp, getCurrentInstance, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n }\n}, 'DataTable-paginate');\nconst VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');\nexport function createPagination(props) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));\n return {\n page,\n itemsPerPage\n };\n}\nexport function providePagination(options) {\n const {\n page,\n itemsPerPage,\n itemsLength\n } = options;\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0;\n return itemsPerPage.value * (page.value - 1);\n });\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value;\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);\n });\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;\n return Math.ceil(itemsLength.value / itemsPerPage.value);\n });\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value;\n }\n });\n function setItemsPerPage(value) {\n itemsPerPage.value = value;\n page.value = 1;\n }\n function nextPage() {\n page.value = clamp(page.value + 1, 1, pageCount.value);\n }\n function prevPage() {\n page.value = clamp(page.value - 1, 1, pageCount.value);\n }\n function setPage(value) {\n page.value = clamp(value, 1, pageCount.value);\n }\n const data = {\n page,\n itemsPerPage,\n startIndex,\n stopIndex,\n pageCount,\n itemsLength,\n nextPage,\n prevPage,\n setPage,\n setItemsPerPage\n };\n provide(VDataTablePaginationSymbol, data);\n return data;\n}\nexport function usePagination() {\n const data = inject(VDataTablePaginationSymbol);\n if (!data) throw new Error('Missing pagination!');\n return data;\n}\nexport function usePaginatedItems(options) {\n const vm = getCurrentInstance('usePaginatedItems');\n const {\n items,\n startIndex,\n stopIndex,\n itemsPerPage\n } = options;\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value;\n return items.value.slice(startIndex.value, stopIndex.value);\n });\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val);\n });\n return {\n paginatedItems\n };\n}\n//# sourceMappingURL=paginate.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watch } from 'vue'\nimport { clamp, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group } from './group'\nimport type { EventProp } from '@/util'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'DataTable-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref\n itemsPerPage: Ref\n startIndex: Ref\n stopIndex: Ref\n pageCount: Ref\n itemsLength: Ref\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': EventProp | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': EventProp | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref\n itemsPerPage: Ref\n itemsLength: Ref\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (options: {\n items: Ref)[]>\n startIndex: Ref\n stopIndex: Ref\n itemsPerPage: Ref\n}) {\n const vm = getCurrentInstance('usePaginatedItems')\n\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val)\n })\n\n return { paginatedItems }\n}\n","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide } from 'vue';\nimport { deepEqual, propsFactory, wrapInArray } from \"../../../util/index.mjs\"; // Types\nconst singleSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: _ref => {\n let {\n items,\n value\n } = _ref;\n return new Set(value ? [items[0]?.value] : []);\n },\n selectAll: _ref2 => {\n let {\n selected\n } = _ref2;\n return selected;\n }\n};\nconst pageSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref3 => {\n let {\n currentPage\n } = _ref3;\n return currentPage;\n },\n select: _ref4 => {\n let {\n items,\n value,\n selected\n } = _ref4;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref5 => {\n let {\n value,\n currentPage,\n selected\n } = _ref5;\n return pageSelectStrategy.select({\n items: currentPage,\n value,\n selected\n });\n }\n};\nconst allSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref6 => {\n let {\n allItems\n } = _ref6;\n return allItems;\n },\n select: _ref7 => {\n let {\n items,\n value,\n selected\n } = _ref7;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref8 => {\n let {\n value,\n allItems,\n selected\n } = _ref8;\n return allSelectStrategy.select({\n items: allItems,\n value,\n selected\n });\n }\n};\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object],\n default: 'page'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n valueComparator: {\n type: Function,\n default: deepEqual\n }\n}, 'DataTable-select');\nexport const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');\nexport function provideSelection(props, _ref9) {\n let {\n allItems,\n currentPage\n } = _ref9;\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v;\n }));\n }, v => {\n return [...v.values()];\n });\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable));\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n switch (props.selectStrategy) {\n case 'single':\n return singleSelectStrategy;\n case 'all':\n return allSelectStrategy;\n case 'page':\n default:\n return pageSelectStrategy;\n }\n });\n function isSelected(items) {\n return wrapInArray(items).every(item => selected.value.has(item.value));\n }\n function isSomeSelected(items) {\n return wrapInArray(items).some(item => selected.value.has(item.value));\n }\n function select(items, value) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n function toggleSelect(item) {\n select([item], !isSelected([item]));\n }\n function selectAll(value) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n const someSelected = computed(() => selected.value.size > 0);\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value\n });\n return !!items.length && isSelected(items);\n });\n const showSelectAll = computed(() => selectStrategy.value.showSelectAll);\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll\n };\n provide(VDataTableSelectionSymbol, data);\n return data;\n}\nexport function useSelection() {\n const data = inject(VDataTableSelectionSymbol);\n if (!data) throw new Error('Missing selection!');\n return data;\n}\n//# sourceMappingURL=select.mjs.map","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set\n }) => Set\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set\n }) => Set\n}\n\ntype SelectionProps = Pick & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref, currentPage: Ref }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = computed(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n","// Composables\nimport { useLocale } from \"../../../composables/index.mjs\";\nimport { useProxiedModel } from \"../../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, toRef } from 'vue';\nimport { getObjectValueByPath, isEmpty, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array,\n default: () => []\n },\n customKeySort: Object,\n multiSort: Boolean,\n mustSort: Boolean\n}, 'DataTable-sort');\nconst VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');\nexport function createSort(props) {\n const sortBy = useProxiedModel(props, 'sortBy');\n const mustSort = toRef(props, 'mustSort');\n const multiSort = toRef(props, 'multiSort');\n return {\n sortBy,\n mustSort,\n multiSort\n };\n}\nexport function provideSort(options) {\n const {\n sortBy,\n mustSort,\n multiSort,\n page\n } = options;\n const toggleSort = column => {\n if (column.key == null) return;\n let newSortBy = sortBy.value.map(x => ({\n ...x\n })) ?? [];\n const item = newSortBy.find(x => x.key === column.key);\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, {\n key: column.key,\n order: 'asc'\n }];else newSortBy = [{\n key: column.key,\n order: 'asc'\n }];\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc';\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key);\n }\n } else {\n item.order = 'desc';\n }\n sortBy.value = newSortBy;\n if (page) page.value = 1;\n };\n function isSorted(column) {\n return !!sortBy.value.find(item => item.key === column.key);\n }\n const data = {\n sortBy,\n toggleSort,\n isSorted\n };\n provide(VDataTableSortSymbol, data);\n return data;\n}\nexport function useSort() {\n const data = inject(VDataTableSortSymbol);\n if (!data) throw new Error('Missing sort!');\n return data;\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems(props, items, sortBy, options) {\n const locale = useLocale();\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value;\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value\n },\n sortRawFunctions: options?.sortRawFunctions?.value\n });\n });\n return {\n sortedItems\n };\n}\nexport function sortItems(items, sortByItems, locale, options) {\n const stringCollator = new Intl.Collator(locale, {\n sensitivity: 'accent',\n usage: 'sort'\n });\n const transformedItems = items.map(item => [item, options?.transform ? options.transform(item) : item]);\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false;\n const sortKey = sortByItems[i].key;\n const sortOrder = sortByItems[i].order ?? 'asc';\n if (sortOrder === false) continue;\n let sortA = getObjectValueByPath(a[1], sortKey);\n let sortB = getObjectValueByPath(b[1], sortKey);\n let sortARaw = a[0].raw;\n let sortBRaw = b[0].raw;\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA];\n [sortARaw, sortBRaw] = [sortBRaw, sortARaw];\n }\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (hasCustomResult) continue;\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime();\n }\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0;\n if (isEmpty(sortA)) return -1;\n if (isEmpty(sortB)) return 1;\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);\n return stringCollator.compare(sortA, sortB);\n }\n }\n return 0;\n }).map(_ref => {\n let [item] = _ref;\n return item;\n });\n}\n//# sourceMappingURL=sort.mjs.map","// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, isEmpty, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\nimport type { InternalItem } from '@/composables/filter'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType,\n default: () => ([]),\n },\n customKeySort: Object as PropType>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref\n mustSort: Ref\n multiSort: Ref\n page?: Ref\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n if (column.key == null) return\n\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems (\n props: {\n customKeySort: Record | undefined\n },\n items: Ref,\n sortBy: Ref,\n options?: {\n transform?: (item: T) => {}\n sortFunctions?: Ref | undefined>\n sortRawFunctions?: Ref | undefined>\n },\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value,\n },\n sortRawFunctions: options?.sortRawFunctions?.value,\n })\n })\n\n return { sortedItems }\n}\n\nexport function sortItems (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n options?: {\n transform?: (item: T) => Record\n sortFunctions?: Record\n sortRawFunctions?: Record\n },\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n const transformedItems = items.map(item => (\n [item, options?.transform ? options.transform(item) : item as never] as const)\n )\n\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a[1], sortKey)\n let sortB = getObjectValueByPath(b[1], sortKey)\n let sortARaw = a[0].raw\n let sortBRaw = b[0].raw\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n ;[sortARaw, sortBRaw] = [sortBRaw, sortARaw]\n }\n\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (hasCustomResult) continue\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0\n if (isEmpty(sortA)) return -1\n if (isEmpty(sortB)) return 1\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n }).map(([item]) => item)\n}\n","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataIteratorItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n returnObject: Boolean\n}, 'DataIterator-items');\nexport function transformItem(props, item) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n return {\n type: 'item',\n value,\n selectable,\n raw: item\n };\n}\nexport function transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useDataIteratorItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GroupableItem } from '@/components/VDataTable/composables/group'\nimport type { SelectableItem } from '@/components/VDataTable/composables/select'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataIteratorItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\nexport interface DataIteratorItem extends GroupableItem, SelectableItem {\n value: unknown\n}\n\n// Composables\nexport const makeDataIteratorItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType,\n default: null,\n },\n returnObject: Boolean,\n}, 'DataIterator-items')\n\nexport function transformItem (\n props: Omit,\n item: any\n): DataIteratorItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n\n return {\n type: 'item',\n value,\n selectable,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit,\n items: DataIteratorItemProps['items']\n) {\n const array: DataIteratorItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useDataIteratorItems (props: DataIteratorItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n","export { VDataTable } from \"./VDataTable.mjs\";\nexport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nexport { VDataTableFooter } from \"./VDataTableFooter.mjs\";\nexport { VDataTableRows } from \"./VDataTableRows.mjs\";\nexport { VDataTableRow } from \"./VDataTableRow.mjs\";\nexport { VDataTableVirtual } from \"./VDataTableVirtual.mjs\";\nexport { VDataTableServer } from \"./VDataTableServer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDataTable } from './VDataTable'\nexport { VDataTableHeaders } from './VDataTableHeaders'\nexport { VDataTableFooter } from './VDataTableFooter'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VDataTable.css\";\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { makeVDataTableRowsProps, VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVTableProps, VTable } from \"../VTable/VTable.mjs\"; // Composables\nimport { makeDataTableExpandProps, provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders, makeDataTableHeaderProps } from \"./composables/headers.mjs\";\nimport { makeDataTableItemsProps, useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"./composables/paginate.mjs\";\nimport { makeDataTableSelectProps, provideSelection } from \"./composables/select.mjs\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\"; // Utilities\nimport { computed, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps()\n}, 'DataTable');\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTable');\nexport const VDataTable = genericComponent()({\n name: 'VDataTable',\n props: makeVDataTableProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": paginatedItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTable.mjs.map","// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef, toRefs } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef['sortBy']>\n pageCount: number\n toggleSort: ReturnType['toggleSort']\n setItemsPerPage: ReturnType['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType['isSelected']\n select: ReturnType['select']\n selectAll: ReturnType['selectAll']\n toggleSelect: ReturnType['toggleSelect']\n isExpanded: ReturnType['isExpanded']\n toggleExpand: ReturnType['toggleExpand']\n isGroupOpen: ReturnType['isGroupOpen']\n toggleGroup: ReturnType['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem | Group>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n default: VDataTableSlotProps\n colgroup: VDataTableSlotProps\n top: VDataTableSlotProps\n body: VDataTableSlotProps\n tbody: VDataTableSlotProps\n thead: VDataTableSlotProps\n tfoot: VDataTableSlotProps\n bottom: VDataTableSlotProps\n 'body.prepend': VDataTableSlotProps\n 'body.append': VDataTableSlotProps\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n headers?: DeepReadonly>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots>,\n) => GenericProps>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n \n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n \n )}\n { slots['body.append']?.(slotProps.value) }\n \n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n \n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n \n\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDataTableFooter.css\";\n\n// Components\nimport { VPagination } from \"../VPagination/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { usePagination } from \"./composables/paginate.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText'\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText'\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage'\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage'\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage'\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage'\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => [{\n value: 10,\n title: '10'\n }, {\n value: 25,\n title: '25'\n }, {\n value: 50,\n title: '50'\n }, {\n value: 100,\n title: '100'\n }, {\n value: -1,\n title: '$vuetify.dataFooter.itemsPerPageAll'\n }]\n },\n showCurrentPage: Boolean\n}, 'VDataTableFooter');\nexport const VDataTableFooter = genericComponent()({\n name: 'VDataTableFooter',\n props: makeVDataTableFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n page,\n pageCount,\n startIndex,\n stopIndex,\n itemsLength,\n itemsPerPage,\n setItemsPerPage\n } = usePagination();\n const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1 ? t('$vuetify.dataFooter.itemsPerPageAll') : String(option)\n };\n }\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title)\n };\n }));\n useRender(() => {\n const paginationProps = VPagination.filterProps(props);\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-footer\"\n }, [slots.prepend?.(), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__items-per-page\"\n }, [_createVNode(\"span\", null, [t(props.itemsPerPageText)]), _createVNode(VSelect, {\n \"items\": itemsPerPageOptions.value,\n \"modelValue\": itemsPerPage.value,\n \"onUpdate:modelValue\": v => setItemsPerPage(Number(v)),\n \"density\": \"compact\",\n \"variant\": \"outlined\",\n \"hide-details\": true\n }, null)]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__info\"\n }, [_createVNode(\"div\", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createVNode(\"div\", {\n \"class\": \"v-data-table-footer__pagination\"\n }, [_createVNode(VPagination, _mergeProps({\n \"modelValue\": page.value,\n \"onUpdate:modelValue\": $event => page.value = $event,\n \"density\": \"comfortable\",\n \"first-aria-label\": props.firstPageLabel,\n \"last-aria-label\": props.lastPageLabel,\n \"length\": pageCount.value,\n \"next-aria-label\": props.nextPageLabel,\n \"previous-aria-label\": props.prevPageLabel,\n \"rounded\": true,\n \"show-first-last-page\": true,\n \"total-visible\": props.showCurrentPage ? 1 : 0,\n \"variant\": \"plain\"\n }, paginationProps), null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableFooter.mjs.map","// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n
    \n { slots.prepend?.() }\n\n \n\n \n\n \n
    \n )\n })\n\n return {}\n },\n})\n","export { VPagination } from \"./VPagination.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VPagination } from './VPagination'\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VPagination.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeBorderProps } from \"../../composables/border.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale, useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useRefs } from \"../../composables/refs.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue';\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1\n },\n modelValue: {\n type: Number,\n default: props => props.start\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: val => val % 1 === 0\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root'\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page'\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage'\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first'\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous'\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next'\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last'\n },\n ellipsis: {\n type: String,\n default: '...'\n },\n showFirstLastPage: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VPagination');\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n props: makeVPaginationProps(),\n emits: {\n 'update:modelValue': value => true,\n first: value => true,\n prev: value => true,\n next: value => true,\n last: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const page = useProxiedModel(props, 'modelValue');\n const {\n t,\n n\n } = useLocale();\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n width\n } = useDisplay();\n const maxButtons = shallowRef(-1);\n provideDefaults(undefined, {\n scoped: true\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n const {\n target,\n contentRect\n } = entries[0];\n const firstItem = target.querySelector('.v-pagination__list > *');\n if (!firstItem) return;\n const totalWidth = contentRect.width;\n const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n maxButtons.value = getMax(totalWidth, itemWidth);\n });\n const length = computed(() => parseInt(props.length, 10));\n const start = computed(() => parseInt(props.start, 10));\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;\n return getMax(width.value, 58);\n });\n function getMax(totalWidth, itemWidth) {\n const minButtons = props.showFirstLastPage ? 5 : 3;\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));\n }\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];\n if (totalVisible.value <= 0) return [];else if (totalVisible.value === 1) return [page.value];\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];\n }\n });\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue(e, value, event) {\n e.preventDefault();\n page.value = value;\n event && emit(event, value);\n }\n const {\n refs,\n updateRef\n } = useRefs();\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation')\n }\n });\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = e => updateRef(e, index);\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true\n }\n };\n } else {\n const isActive = item === page.value;\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: e => setValue(e, item)\n }\n };\n }\n });\n });\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: e => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: e => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: e => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: e => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled\n } : undefined\n };\n });\n function updateFocus() {\n const currentIndex = page.value - start.value;\n refs.value[currentIndex]?.$el.focus();\n }\n function onKeydown(e) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1;\n nextTick(updateFocus);\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1;\n nextTick(updateFocus);\n }\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-pagination', themeClasses.value, props.class],\n \"style\": props.style,\n \"role\": \"navigation\",\n \"aria-label\": t(props.ariaLabel),\n \"onKeydown\": onKeydown,\n \"data-test\": \"v-pagination-root\"\n }, {\n default: () => [_createVNode(\"ul\", {\n \"class\": \"v-pagination__list\"\n }, [props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"first\",\n \"class\": \"v-pagination__first\",\n \"data-test\": \"v-pagination-first\"\n }, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.first), null)]), _createVNode(\"li\", {\n \"key\": \"prev\",\n \"class\": \"v-pagination__prev\",\n \"data-test\": \"v-pagination-prev\"\n }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.prev), null)]), items.value.map((item, index) => _createVNode(\"li\", {\n \"key\": item.key,\n \"class\": ['v-pagination__item', {\n 'v-pagination__item--is-active': item.isActive\n }],\n \"data-test\": \"v-pagination-item\"\n }, [slots.item ? slots.item(item) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, item.props), {\n default: () => [item.page]\n })])), _createVNode(\"li\", {\n \"key\": \"next\",\n \"class\": \"v-pagination__next\",\n \"data-test\": \"v-pagination-next\"\n }, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.next), null)]), props.showFirstLastPage && _createVNode(\"li\", {\n \"key\": \"last\",\n \"class\": \"v-pagination__last\",\n \"data-test\": \"v-pagination-last\"\n }, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.last), null)])])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VPagination.mjs.map","// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue'\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\ntype ItemSlot = {\n isActive: boolean\n key: string | number\n page: string\n props: Record\n}\n\ntype ControlSlot = {\n icon: IconValue\n onClick: (e: Event) => void\n disabled: boolean\n 'aria-label': string\n 'aria-disabled': boolean\n}\n\nexport type VPaginationSlots = {\n item: ItemSlot\n first: ControlSlot\n prev: ControlSlot\n next: ControlSlot\n last: ControlSlot\n}\n\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VPagination')\n\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n\n props: makeVPaginationProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { width } = useDisplay()\n const maxButtons = shallowRef(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n\n maxButtons.value = getMax(totalWidth, itemWidth)\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return getMax(width.value, 58)\n })\n\n function getMax (totalWidth: number, itemWidth: number) {\n const minButtons = props.showFirstLastPage ? 5 : 3\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n }\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 0) return []\n else if (totalVisible.value === 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n \n
      \n { props.showFirstLastPage && (\n
    • \n { slots.first ? slots.first(controls.value.first!) : (\n \n )}\n
    • \n )}\n\n
    • \n { slots.prev ? slots.prev(controls.value.prev) : (\n \n )}\n
    • \n\n { items.value.map((item, index) => (\n \n { slots.item ? slots.item(item) : (\n { item.page }\n )}\n \n ))}\n\n \n { slots.next ? slots.next(controls.value.next) : (\n \n )}\n \n\n { props.showFirstLastPage && (\n \n { slots.last ? slots.last(controls.value.last!) : (\n \n )}\n \n )}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType\n","// Utilities\nimport { onBeforeUpdate, ref } from 'vue';\n\n// Types\n\nexport function useRefs() {\n const refs = ref([]);\n onBeforeUpdate(() => refs.value = []);\n function updateRef(e, i) {\n refs.value[i] = e;\n }\n return {\n refs,\n updateRef\n };\n}\n//# sourceMappingURL=refs.mjs.map","// Utilities\nimport { onBeforeUpdate, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useRefs () {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>\n\n onBeforeUpdate(() => (refs.value = []))\n\n function updateRef (e: any, i: number) {\n refs.value[i] = e\n }\n\n return { refs, updateRef }\n}\n","export { VSelect } from \"./VSelect.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelect } from './VSelect'\n","import { resolveDirective as _resolveDirective, Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\";\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VSelect } from \"../VSelect/index.mjs\"; // Composables\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { computed, mergeProps } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n sticky: Boolean,\n disableSort: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc'\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc'\n },\n headerProps: {\n type: Object\n },\n ...makeDisplayProps(),\n ...makeLoaderProps()\n}, 'VDataTableHeaders');\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n props: makeVDataTableHeadersProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n someSelected,\n allSelected,\n selectAll,\n showSelectAll\n } = useSelection();\n const {\n columns,\n headers\n } = useHeaders();\n const {\n loaderClasses\n } = useLoader(props);\n function getFixedStyles(column, y) {\n if (!props.sticky && !column.fixed) return undefined;\n return {\n position: 'sticky',\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined\n };\n }\n function getSortIcon(column) {\n const item = sortBy.value.find(item => item.key === column.key);\n if (!item) return props.sortAscIcon;\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;\n }\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon\n }));\n const headerCellClasses = computed(() => ['v-data-table__th', {\n 'v-data-table__th--sticky': props.sticky\n }, displayClasses.value, loaderClasses.value]);\n const VDataTableHeaderCell = _ref2 => {\n let {\n column,\n x,\n y\n } = _ref2;\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {});\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"align\": column.align,\n \"class\": [{\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed\n }, ...headerCellClasses.value],\n \"style\": {\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y)\n },\n \"colspan\": column.colspan,\n \"rowspan\": column.rowspan,\n \"onClick\": column.sortable ? () => toggleSort(column) : undefined,\n \"fixed\": column.fixed,\n \"nowrap\": column.nowrap,\n \"lastFixed\": column.lastFixed,\n \"noPadding\": noPadding\n }, headerProps), {\n default: () => {\n const columnSlotName = `header.${column.key}`;\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon\n };\n if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {\n \"modelValue\": allSelected.value,\n \"indeterminate\": someSelected.value && !allSelected.value,\n \"onUpdate:modelValue\": selectAll\n }, null));\n }\n return _createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(\"span\", null, [column.title]), column.sortable && !props.disableSort && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"class\": \"v-data-table-header__sort-icon\",\n \"icon\": getSortIcon(column)\n }, null), props.multiSort && isSorted(column) && _createVNode(\"div\", {\n \"key\": \"badge\",\n \"class\": ['v-data-table-header__sort-badge', ...backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value\n }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);\n }\n });\n };\n const VDataTableMobileHeaderCell = () => {\n const headerProps = mergeProps(props.headerProps ?? {} ?? {});\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort);\n });\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');\n if (showSelectColumn == null) return;\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';\n });\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"class\": [...headerCellClasses.value],\n \"colspan\": headers.value.length + 1\n }, headerProps), {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(VSelect, {\n \"chips\": true,\n \"class\": \"v-data-table__td-sort-select\",\n \"clearable\": true,\n \"density\": \"default\",\n \"items\": displayItems.value,\n \"label\": t('$vuetify.dataTable.sortBy'),\n \"multiple\": props.multiSort,\n \"variant\": \"underlined\",\n \"onClick:clear\": () => sortBy.value = [],\n \"appendIcon\": appendIcon.value,\n \"onClick:append\": () => selectAll(!allSelected.value)\n }, {\n ...slots,\n chip: props => _createVNode(VChip, {\n \"onClick\": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, {\n default: () => [props.item.title, _createVNode(VIcon, {\n \"class\": ['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active'],\n \"icon\": getSortIcon(props.item.raw),\n \"size\": \"small\"\n }, null)]\n })\n })])]\n });\n };\n useRender(() => {\n return mobile.value ? _createVNode(\"tr\", null, [_createVNode(VDataTableMobileHeaderCell, null, null)]) : _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode(\"tr\", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {\n \"column\": column,\n \"x\": x,\n \"y\": y\n }, null))])), props.loading && _createVNode(\"tr\", {\n \"class\": \"v-data-table-progress\"\n }, [_createVNode(\"th\", {\n \"colspan\": columns.value.length\n }, [_createVNode(LoaderSlot, {\n \"name\": \"v-data-table-progress\",\n \"absolute\": true,\n \"active\": true,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true\n }, {\n default: slots.loader\n })])])]);\n });\n }\n});\n//# sourceMappingURL=VDataTableHeaders.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef['sortBy']>\n someSelected: UnwrapRef['someSelected']>\n allSelected: UnwrapRef['allSelected']>\n toggleSort: ReturnType['toggleSort']\n selectAll: ReturnType['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType['selectAll']\n isSorted: ReturnType['isSorted']\n toggleSort: ReturnType['toggleSort']\n sortBy: UnwrapRef['sortBy']>\n someSelected: UnwrapRef['someSelected']>\n allSelected: UnwrapRef['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n sticky: Boolean,\n disableSort: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType>,\n },\n\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!props.sticky && !column.fixed) return undefined\n\n return {\n position: 'sticky',\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': props.sticky,\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n toggleSort(column) : undefined }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\n \n ))\n }\n\n return (\n
    \n { column.title }\n { column.sortable && !props.disableSort && (\n \n )}\n { props.multiSort && isSorted(column) && (\n \n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n
    \n )}\n \n )\n },\n }}\n \n )\n }\n\n const VDataTableMobileHeaderCell = () => {\n const headerProps = mergeProps(props.headerProps ?? {} ?? {})\n\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select')\n\n if (showSelectColumn == null) return\n\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff'\n })\n\n return (\n \n
    \n sortBy.value = [] }\n appendIcon={ appendIcon.value }\n onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n ...slots,\n chip: props => (\n toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n \n \n ),\n }}\n \n
    \n \n )\n }\n\n useRender(() => {\n return mobile.value ? (\n \n \n \n ) : (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n \n { row.map((column, x) => (\n \n ))}\n \n ))}\n\n { props.loading && (\n \n \n \n \n \n )}\n \n )\n })\n },\n})\n\nexport type VDataTableHeaders = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { convertToUnit, defineFunctionalComponent } from \"../../util/index.mjs\"; // Types\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String,\n default: 'start'\n },\n fixed: Boolean,\n fixedOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n noPadding: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean\n}, (props, _ref) => {\n let {\n slots\n } = _ref;\n const Tag = props.tag ?? 'td';\n return _createVNode(Tag, {\n \"class\": ['v-data-table__td', {\n 'v-data-table-column--fixed': props.fixed,\n 'v-data-table-column--last-fixed': props.lastFixed,\n 'v-data-table-column--no-padding': props.noPadding,\n 'v-data-table-column--nowrap': props.nowrap\n }, `v-data-table-column--align-${props.align}`],\n \"style\": {\n height: convertToUnit(props.height),\n width: convertToUnit(props.width),\n maxWidth: convertToUnit(props.maxWidth),\n left: convertToUnit(props.fixedOffset || null)\n }\n }, {\n default: () => [slots.default?.()]\n });\n});\n//# sourceMappingURL=VDataTableColumn.mjs.map","// Utilities\nimport { convertToUnit, defineFunctionalComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'start',\n },\n fixed: Boolean,\n fixedOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n noPadding: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean,\n}, (props, { slots }) => {\n const Tag = props.tag ?? 'td'\n return (\n \n { slots.default?.() }\n \n )\n})\n","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue';\nimport { consoleError, propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array\n}, 'DataTable-header');\nexport const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');\nconst defaultHeader = {\n title: '',\n sortable: false\n};\nconst defaultActionHeader = {\n ...defaultHeader,\n width: 48\n};\nfunction priorityQueue() {\n let arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n const queue = arr.map(element => ({\n element,\n priority: 0\n }));\n return {\n enqueue: (element, priority) => {\n let added = false;\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n if (item.priority > priority) {\n queue.splice(i, 0, {\n element,\n priority\n });\n added = true;\n break;\n }\n }\n if (!added) queue.push({\n element,\n priority\n });\n },\n size: () => queue.length,\n count: () => {\n let count = 0;\n if (!queue.length) return 0;\n const whole = Math.floor(queue[0].priority);\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1;\n }\n return count;\n },\n dequeue: () => {\n return queue.shift();\n }\n };\n}\nfunction extractLeaves(item) {\n let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (!item.children) {\n columns.push(item);\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns);\n }\n }\n return columns;\n}\nfunction extractKeys(headers) {\n let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n for (const item of headers) {\n if (item.key) keys.add(item.key);\n if (item.children) {\n extractKeys(item.children, keys);\n }\n }\n return keys;\n}\nfunction getDefaultItem(item) {\n if (!item.key) return undefined;\n if (item.key === 'data-table-group') return defaultHeader;\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader;\n return undefined;\n}\nfunction getDepth(item) {\n let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item.children) return depth;\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)));\n}\nfunction parseFixedColumns(items) {\n let seenFixed = false;\n function setFixed(item) {\n let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!item) return;\n if (parentFixed) {\n item.fixed = true;\n }\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true);\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true;\n } else if (isNaN(+item.width)) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);\n }\n seenFixed = true;\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i]);\n }\n } else {\n seenFixed = false;\n }\n }\n }\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i]);\n }\n function setFixedOffset(item) {\n let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item) return fixedOffset;\n if (item.children) {\n item.fixedOffset = fixedOffset;\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset);\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset;\n fixedOffset += parseFloat(item.width || '0') || 0;\n }\n return fixedOffset;\n }\n let fixedOffset = 0;\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset);\n }\n}\nfunction parse(items, maxDepth) {\n const headers = [];\n let currentDepth = 0;\n const queue = priorityQueue(items);\n while (queue.size() > 0) {\n let rowSize = queue.count();\n const row = [];\n let fraction = 1;\n while (rowSize > 0) {\n const {\n element: item,\n priority\n } = queue.dequeue();\n const diff = maxDepth - currentDepth - getDepth(item);\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1\n });\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + fraction / Math.pow(10, currentDepth + 2);\n queue.enqueue(child, currentDepth + diff + sort);\n }\n }\n fraction += 1;\n rowSize -= 1;\n }\n currentDepth += 1;\n headers.push(row);\n }\n const columns = items.map(item => extractLeaves(item)).flat();\n return {\n columns,\n headers\n };\n}\nfunction convertToInternalHeaders(items) {\n const internalHeaders = [];\n for (const item of items) {\n const defaultItem = {\n ...getDefaultItem(item),\n ...item\n };\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null);\n const value = defaultItem.value ?? key ?? null;\n const internalItem = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined\n };\n internalHeaders.push(internalItem);\n }\n return internalHeaders;\n}\nexport function createHeaders(props, options) {\n const headers = ref([]);\n const columns = ref([]);\n const sortFunctions = ref({});\n const sortRawFunctions = ref({});\n const filterFunctions = ref({});\n watchEffect(() => {\n const _headers = props.headers || Object.keys(props.items[0] ?? {}).map(key => ({\n key,\n title: capitalize(key)\n }));\n const items = _headers.slice();\n const keys = extractKeys(items);\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({\n key: 'data-table-group',\n title: 'Group'\n });\n }\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({\n key: 'data-table-select'\n });\n }\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({\n key: 'data-table-expand'\n });\n }\n const internalHeaders = convertToInternalHeaders(items);\n parseFixedColumns(internalHeaders);\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1;\n const parsed = parse(internalHeaders, maxDepth);\n headers.value = parsed.headers;\n columns.value = parsed.columns;\n const flatHeaders = parsed.headers.flat(1);\n for (const header of flatHeaders) {\n if (!header.key) continue;\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort;\n }\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw;\n }\n }\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter;\n }\n }\n });\n const data = {\n headers,\n columns,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n };\n provide(VDataTableHeadersSymbol, data);\n return data;\n}\nexport function useHeaders() {\n const data = inject(VDataTableHeadersSymbol);\n if (!data) throw new Error('Missing headers!');\n return data;\n}\n//# sourceMappingURL=headers.mjs.map","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue'\nimport { consoleError, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableCompareFunction, DataTableHeader, InternalDataTableHeader } from '../types'\nimport type { FilterKeyFunctions } from '@/composables/filter'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array as PropType>,\n}, 'DataTable-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref\n columns: Ref\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly | undefined\n items: any[]\n}\n\nconst defaultHeader = { title: '', sortable: false }\nconst defaultActionHeader = { ...defaultHeader, width: 48 }\n\nfunction priorityQueue (arr: T[] = []) {\n const queue: { element: T, priority: number }[] = arr.map(element => ({ element, priority: 0 }))\n\n return {\n enqueue: (element: T, priority: number) => {\n let added = false\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i]\n if (item.priority > priority) {\n queue.splice(i, 0, { element, priority })\n added = true\n break\n }\n }\n\n if (!added) queue.push({ element, priority })\n },\n size: () => queue.length,\n count: () => {\n let count = 0\n\n if (!queue.length) return 0\n\n const whole = Math.floor(queue[0].priority)\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1\n }\n\n return count\n },\n dequeue: () => {\n return queue.shift()\n },\n }\n}\n\nfunction extractLeaves (item: InternalDataTableHeader, columns: InternalDataTableHeader[] = []) {\n if (!item.children) {\n columns.push(item)\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns)\n }\n }\n\n return columns\n}\n\nfunction extractKeys (headers: DeepReadonly, keys = new Set()) {\n for (const item of headers) {\n if (item.key) keys.add(item.key)\n\n if (item.children) {\n extractKeys(item.children, keys)\n }\n }\n\n return keys\n}\n\nfunction getDefaultItem (item: DeepReadonly) {\n if (!item.key) return undefined\n if (item.key === 'data-table-group') return defaultHeader\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader\n return undefined\n}\n\nfunction getDepth (item: InternalDataTableHeader, depth = 0): number {\n if (!item.children) return depth\n\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)))\n}\n\nfunction parseFixedColumns (items: InternalDataTableHeader[]) {\n let seenFixed = false\n function setFixed (item: InternalDataTableHeader, parentFixed = false) {\n if (!item) return\n\n if (parentFixed) {\n item.fixed = true\n }\n\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true)\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true\n } else if (isNaN(+item.width!)) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`)\n }\n seenFixed = true\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i])\n }\n } else {\n seenFixed = false\n }\n }\n }\n\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i])\n }\n\n function setFixedOffset (item: InternalDataTableHeader, fixedOffset = 0) {\n if (!item) return fixedOffset\n\n if (item.children) {\n item.fixedOffset = fixedOffset\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset)\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset\n fixedOffset += parseFloat(item.width || '0') || 0\n }\n\n return fixedOffset\n }\n\n let fixedOffset = 0\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset)\n }\n}\n\nfunction parse (items: InternalDataTableHeader[], maxDepth: number) {\n const headers: InternalDataTableHeader[][] = []\n let currentDepth = 0\n const queue = priorityQueue(items)\n\n while (queue.size() > 0) {\n let rowSize = queue.count()\n const row: InternalDataTableHeader[] = []\n let fraction = 1\n while (rowSize > 0) {\n const { element: item, priority } = queue.dequeue()!\n const diff = maxDepth - currentDepth - getDepth(item)\n\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1,\n })\n\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + (fraction / Math.pow(10, currentDepth + 2))\n queue.enqueue(child, currentDepth + diff + sort)\n }\n }\n\n fraction += 1\n rowSize -= 1\n }\n currentDepth += 1\n headers.push(row)\n }\n\n const columns = items.map(item => extractLeaves(item)).flat()\n\n return { columns, headers }\n}\n\nfunction convertToInternalHeaders (items: DeepReadonly) {\n const internalHeaders: InternalDataTableHeader[] = []\n for (const item of items) {\n const defaultItem = { ...getDefaultItem(item), ...item }\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null)\n const value = defaultItem.value ?? key ?? null\n const internalItem: InternalDataTableHeader = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined,\n }\n\n internalHeaders.push(internalItem)\n }\n\n return internalHeaders\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref\n showSelect?: Ref\n showExpand?: Ref\n }\n) {\n const headers = ref([])\n const columns = ref([])\n const sortFunctions = ref>({})\n const sortRawFunctions = ref>({})\n const filterFunctions = ref({})\n\n watchEffect(() => {\n const _headers = props.headers ||\n Object.keys(props.items[0] ?? {}).map(key => ({ key, title: capitalize(key) })) as never\n\n const items = _headers.slice()\n const keys = extractKeys(items)\n\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({ key: 'data-table-group', title: 'Group' })\n }\n\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({ key: 'data-table-select' })\n }\n\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({ key: 'data-table-expand' })\n }\n\n const internalHeaders = convertToInternalHeaders(items)\n\n parseFixedColumns(internalHeaders)\n\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1\n const parsed = parse(internalHeaders, maxDepth)\n\n headers.value = parsed.headers\n columns.value = parsed.columns\n\n const flatHeaders = parsed.headers.flat(1)\n\n for (const header of flatHeaders) {\n if (!header.key) continue\n\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort\n }\n\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw\n }\n }\n\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter\n }\n }\n })\n\n const data = { headers, columns, sortFunctions, sortRawFunctions, filterFunctions }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableGroupHeaderRow } from \"./VDataTableGroupHeaderRow.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { Fragment, mergeProps } from 'vue';\nimport { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText'\n },\n hideNoData: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n ...makeDisplayProps()\n}, 'VDataTableRows');\nexport const VDataTableRows = genericComponent()({\n name: 'VDataTableRows',\n inheritAttrs: false,\n props: makeVDataTableRowsProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n columns\n } = useHeaders();\n const {\n expandOnClick,\n toggleExpand,\n isExpanded\n } = useExpanded();\n const {\n isSelected,\n toggleSelect\n } = useSelection();\n const {\n toggleGroup,\n isGroupOpen\n } = useGroupBy();\n const {\n t\n } = useLocale();\n const {\n mobile\n } = useDisplay(props);\n useRender(() => {\n if (props.loading && (!props.items.length || slots.loading)) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-loading\",\n \"key\": \"loading\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots.loading?.() ?? t(props.loadingText)])]);\n }\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return _createVNode(\"tr\", {\n \"class\": \"v-data-table-rows-no-data\",\n \"key\": \"no-data\"\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots['no-data']?.() ?? t(props.noDataText)])]);\n }\n return _createVNode(_Fragment, null, [props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen\n };\n return slots['group-header'] ? slots['group-header'](slotProps) : _createVNode(VDataTableGroupHeaderRow, _mergeProps({\n \"key\": `group-header_${item.id}`,\n \"item\": item\n }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);\n }\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect\n };\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps({\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item);\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n mobile: mobile.value\n }, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem\n }) : props.rowProps)\n };\n return _createVNode(_Fragment, {\n \"key\": itemSlotProps.props.key\n }, [slots.item ? slots.item(itemSlotProps) : _createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableRows.mjs.map","// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots = VDataTableGroupHeaderRowSlots & VDataTableRowSlots & {\n item: ItemSlot & { props: Record }\n loading: never\n 'group-header': GroupHeaderSlot\n 'no-data': never\n 'expanded-row': ItemSlot\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType>,\n cellProps: [Object, Function] as PropType>,\n\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent(\n props: {\n items?: readonly (DataTableItem | Group)[]\n },\n slots: VDataTableRowsSlots,\n) => GenericProps>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n \n \n { slots.loading?.() ?? t(props.loadingText) }\n \n \n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n \n \n { slots['no-data']?.() ?? t(props.noDataText) }\n \n \n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n slotProps) }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n \n { slots.item ? slots.item(itemSlotProps) : (\n \n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n \n )\n })}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType\n","import { createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useGroupBy } from \"./composables/group.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object,\n required: true\n }\n}, 'VDataTableGroupHeaderRow');\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n props: makeVDataTableGroupHeaderRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isGroupOpen,\n toggleGroup,\n extractRows\n } = useGroupBy();\n const {\n isSelected,\n isSomeSelected,\n select\n } = useSelection();\n const {\n columns\n } = useHeaders();\n const rows = computed(() => {\n return extractRows([props.item]);\n });\n return () => _createVNode(\"tr\", {\n \"class\": \"v-data-table-group-header-row\",\n \"style\": {\n '--v-data-table-group-header-row-depth': props.item.depth\n }\n }, [columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? '$expand' : '$next';\n const onClick = () => toggleGroup(props.item);\n return slots['data-table-group']?.({\n item: props.item,\n count: rows.value.length,\n props: {\n icon,\n onClick\n }\n }) ?? _createVNode(VDataTableColumn, {\n \"class\": \"v-data-table-group-header-row__column\"\n }, {\n default: () => [_createVNode(VBtn, {\n \"size\": \"small\",\n \"variant\": \"text\",\n \"icon\": icon,\n \"onClick\": onClick\n }, null), _createVNode(\"span\", null, [props.item.value]), _createVNode(\"span\", null, [_createTextVNode(\"(\"), rows.value.length, _createTextVNode(\")\")])]\n });\n }\n if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value);\n const indeterminate = isSomeSelected(rows.value) && !modelValue;\n const selectGroup = v => select(rows.value, v);\n return slots['data-table-select']?.({\n props: {\n modelValue,\n indeterminate,\n 'onUpdate:modelValue': selectGroup\n }\n }) ?? _createVNode(\"td\", null, [_createVNode(VCheckboxBtn, {\n \"modelValue\": modelValue,\n \"indeterminate\": indeterminate,\n \"onUpdate:modelValue\": selectGroup\n }, null)]);\n }\n return _createVNode(\"td\", null, null);\n })]);\n }\n});\n//# sourceMappingURL=VDataTableGroupHeaderRow.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\n\nexport type VDataTableGroupHeaderRowSlots = {\n 'data-table-group': { item: Group, count: number, props: Record }\n 'data-table-select': { props: Record }\n}\n\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object as PropType,\n required: true,\n },\n}, 'VDataTableGroupHeaderRow')\n\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n\n props: makeVDataTableGroupHeaderRowProps(),\n\n setup (props, { slots }) {\n const { isGroupOpen, toggleGroup, extractRows } = useGroupBy()\n const { isSelected, isSomeSelected, select } = useSelection()\n const { columns } = useHeaders()\n\n const rows = computed(() => {\n return extractRows([props.item])\n })\n\n return () => (\n \n { columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? '$expand' : '$next'\n const onClick = () => toggleGroup(props.item)\n\n return slots['data-table-group']?.({ item: props.item, count: rows.value.length, props: { icon, onClick } }) ?? (\n \n \n { props.item.value }\n ({ rows.value.length })\n \n )\n }\n\n if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value)\n const indeterminate = isSomeSelected(rows.value) && !modelValue\n const selectGroup = (v: boolean) => select(rows.value, v)\n return slots['data-table-select']?.({ props: { modelValue, indeterminate, 'onUpdate:modelValue': selectGroup } }) ?? (\n \n \n \n )\n }\n\n return \n })}\n \n )\n },\n})\n","import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.mjs\";\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.mjs\"; // Composables\nimport { useExpanded } from \"./composables/expand.mjs\";\nimport { useHeaders } from \"./composables/headers.mjs\";\nimport { useSelection } from \"./composables/select.mjs\";\nimport { useSort } from \"./composables/sort.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\"; // Utilities\nimport { toDisplayString, withModifiers } from 'vue';\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object,\n cellProps: [Object, Function],\n onClick: EventProp(),\n onContextmenu: EventProp(),\n onDblclick: EventProp(),\n ...makeDisplayProps()\n}, 'VDataTableRow');\nexport const VDataTableRow = genericComponent()({\n name: 'VDataTableRow',\n props: makeVDataTableRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n displayClasses,\n mobile\n } = useDisplay(props, 'v-data-table__tr');\n const {\n isSelected,\n toggleSelect,\n someSelected,\n allSelected,\n selectAll\n } = useSelection();\n const {\n isExpanded,\n toggleExpand\n } = useExpanded();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n columns\n } = useHeaders();\n useRender(() => _createVNode(\"tr\", {\n \"class\": ['v-data-table__tr', {\n 'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)\n }, displayClasses.value],\n \"onClick\": props.onClick,\n \"onContextmenu\": props.onContextmenu,\n \"onDblclick\": props.onDblclick\n }, [props.item && columns.value.map((column, i) => {\n const item = props.item;\n const slotName = `item.${column.key}`;\n const headerSlotName = `header.${column.key}`;\n const slotProps = {\n index: props.index,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand\n };\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => ''\n };\n const cellProps = typeof props.cellProps === 'function' ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column\n }) : props.cellProps;\n const columnCellProps = typeof column.cellProps === 'function' ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value\n }) : column.cellProps;\n return _createVNode(VDataTableColumn, _mergeProps({\n \"align\": column.align,\n \"class\": {\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select'\n },\n \"fixed\": column.fixed,\n \"fixedOffset\": column.fixedOffset,\n \"lastFixed\": column.lastFixed,\n \"maxWidth\": !mobile.value ? column.maxWidth : undefined,\n \"noPadding\": column.key === 'data-table-select' || column.key === 'data-table-expand',\n \"nowrap\": column.nowrap,\n \"width\": !mobile.value ? column.width : undefined\n }, cellProps, columnCellProps), {\n default: () => {\n if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {\n \"disabled\": !item.selectable,\n \"modelValue\": isSelected([item]),\n \"onClick\": withModifiers(() => toggleSelect(item), ['stop'])\n }, null);\n }\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? _createVNode(VBtn, {\n \"icon\": isExpanded(item) ? '$collapse' : '$expand',\n \"size\": \"small\",\n \"variant\": \"text\",\n \"onClick\": withModifiers(() => toggleExpand(item), ['stop'])\n }, null);\n }\n const displayValue = toDisplayString(slotProps.value);\n return !mobile.value ? displayValue : _createVNode(_Fragment, null, [_createVNode(\"div\", {\n \"class\": \"v-data-table__td-title\"\n }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), _createVNode(\"div\", {\n \"class\": \"v-data-table__td-value\"\n }, [slots[slotName]?.(slotProps) ?? displayValue])]);\n }\n });\n })]));\n }\n});\n//# sourceMappingURL=VDataTableRow.mjs.map","// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\n\n// Utilities\nimport { toDisplayString, withModifiers } from 'vue'\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { CellProps, DataTableItem, ItemKeySlot } from './types'\nimport type { VDataTableHeaderCellColumnSlotProps } from './VDataTableHeaders'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowSlots = {\n 'item.data-table-select': Omit, 'value'>\n 'item.data-table-expand': Omit, 'value'>\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & {\n [key: `item.${string}`]: ItemKeySlot\n [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps\n}\n\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object as PropType,\n cellProps: [Object, Function] as PropType>,\n onClick: EventProp<[MouseEvent]>(),\n onContextmenu: EventProp<[MouseEvent]>(),\n onDblclick: EventProp<[MouseEvent]>(),\n\n ...makeDisplayProps(),\n}, 'VDataTableRow')\n\nexport const VDataTableRow = genericComponent(\n props: {\n item?: DataTableItem\n cellProps?: CellProps\n },\n slots: VDataTableRowSlots,\n) => GenericProps>()({\n name: 'VDataTableRow',\n\n props: makeVDataTableRowProps(),\n\n setup (props, { slots }) {\n const { displayClasses, mobile } = useDisplay(props, 'v-data-table__tr')\n const { isSelected, toggleSelect, someSelected, allSelected, selectAll } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { columns } = useHeaders()\n\n useRender(() => (\n \n { props.item && columns.value.map((column, i) => {\n const item = props.item!\n const slotName = `item.${column.key}` as const\n const headerSlotName = `header.${column.key}` as const\n const slotProps = {\n index: props.index!,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n } satisfies ItemKeySlot\n\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => '',\n }\n\n const cellProps = typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column,\n })\n : props.cellProps\n const columnCellProps = typeof column.cellProps === 'function'\n ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n })\n : column.cellProps\n\n return (\n \n {{\n default: () => {\n if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n toggleExpand(item), ['stop']) }\n />\n )\n }\n\n const displayValue = toDisplayString(slotProps.value)\n\n return !mobile.value ? displayValue : (\n <>\n
    \n { slots[headerSlotName]?.(columnSlotProps) ?? column.title }\n
    \n\n
    \n { slots[slotName]?.(slotProps) ?? displayValue }\n
    \n \n )\n },\n }}\n \n )\n })}\n \n ))\n },\n})\n\nexport type VDataTableRow = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTable.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTable');\nexport const VTable = genericComponent()({\n name: 'VTable',\n props: makeVTableProps(),\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-table', {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover\n }, themeClasses.value, densityClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.top?.(), slots.default ? _createVNode(\"div\", {\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VTable.mjs.map","// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VTableSlots = {\n default: never\n top: never\n bottom: never\n wrapper: never\n}\n\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTable')\n\nexport const VTable = genericComponent()({\n name: 'VTable',\n\n props: makeVTableProps(),\n\n setup (props, { slots, emit }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n \n { slots.top?.() }\n\n { slots.default ? (\n \n \n { slots.default() }\n
    \n \n ) : slots.wrapper?.()}\n\n { slots.bottom?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType\n","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.mjs\"; // Types\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n returnObject: Boolean\n}, 'DataTable-items');\nexport function transformItem(props, item, index, columns) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value);\n return obj;\n }, {});\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item\n };\n}\nexport function transformItems(props, items, columns) {\n return items.map((item, index) => transformItem(props, item, index, columns));\n}\nexport function useDataTableItems(props, columns) {\n const items = computed(() => transformItems(props, props.items, columns.value));\n return {\n items\n };\n}\n//# sourceMappingURL=items.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { CellProps, DataTableItem, InternalDataTableHeader, RowProps } from '../types'\nimport type { SelectItemKey } from '@/util'\n\nexport interface DataTableItemProps {\n items: any[]\n itemValue: SelectItemKey\n itemSelectable: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType,\n default: null,\n },\n rowProps: [Object, Function] as PropType>,\n cellProps: [Object, Function] as PropType>,\n returnObject: Boolean,\n}, 'DataTable-items')\n\nexport function transformItem (\n props: Omit,\n item: any,\n index: number,\n columns: InternalDataTableHeader[]\n): DataTableItem {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue)\n const selectable = getPropertyFromItem(item, props.itemSelectable, true)\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value!)\n return obj\n }, {} as Record)\n\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item,\n }\n}\n\nexport function transformItems (\n props: Omit,\n items: DataTableItemProps['items'],\n columns: InternalDataTableHeader[]\n): DataTableItem[] {\n return items.map((item, index) => transformItem(props, item, index, columns))\n}\n\nexport function useDataTableItems (props: DataTableItemProps, columns: Ref) {\n const items = computed(() => transformItems(props, props.items, columns.value))\n\n return { items }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRow } from \"./VDataTableRow.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VTable } from \"../VTable/index.mjs\";\nimport { VVirtualScrollItem } from \"../VVirtualScroll/VVirtualScrollItem.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort, useSortedItems } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.mjs\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.mjs\"; // Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps()\n}, 'VDataTableVirtual');\nexport const VDataTableVirtual = genericComponent()({\n name: 'VDataTableVirtual',\n props: makeVDataTableVirtualProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(props, 'search');\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened);\n const allItems = computed(() => extractRows(flatItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems,\n currentPage: allItems\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend\n } = useVirtual(props, flatItems);\n const displayItems = computed(() => computedItems.value.map(item => item.raw));\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n wrapper: () => _createVNode(\"div\", {\n \"ref\": containerRef,\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"table\", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {\n \"sticky\": props.fixedHeader\n }), slots)]), !props.hideDefaultBody && _createVNode(\"tbody\", null, [_createVNode(\"tr\", {\n \"ref\": markerRef,\n \"style\": {\n height: convertToUnit(paddingTop.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)]), slots['body.prepend']?.(slotProps.value), _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": displayItems.value\n }), {\n ...slots,\n item: itemSlotProps => _createVNode(VVirtualScrollItem, {\n \"key\": itemSlotProps.internalItem.index,\n \"renderless\": true,\n \"onUpdate:height\": height => handleItemResize(itemSlotProps.internalItem.index, height)\n }, {\n default: _ref2 => {\n let {\n itemRef\n } = _ref2;\n return slots.item?.({\n ...itemSlotProps,\n itemRef\n }) ?? _createVNode(VDataTableRow, _mergeProps(itemSlotProps.props, {\n \"ref\": itemRef,\n \"key\": itemSlotProps.internalItem.index,\n \"index\": itemSlotProps.internalItem.index\n }), slots);\n }\n })\n }), slots['body.append']?.(slotProps.value), _createVNode(\"tr\", {\n \"style\": {\n height: convertToUnit(paddingBottom.value),\n border: 0\n }\n }, [_createVNode(\"td\", {\n \"colspan\": columns.value.length,\n \"style\": {\n height: 0,\n border: 0\n }\n }, null)])])])]),\n bottom: () => slots.bottom?.(slotProps.value)\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableVirtual.mjs.map","// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps = Omit<\n VDataTableSlotProps,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps\n top: VDataTableVirtualSlotProps\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps\n 'body.prepend': VDataTableVirtualSlotProps\n 'body.append': VDataTableVirtualSlotProps\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots>,\n) => GenericProps>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n \n \n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { !props.hideDefaultBody && (\n \n \n \n \n\n { slots['body.prepend']?.(slotProps.value) }\n\n \n {{\n ...slots,\n item: itemSlotProps => (\n handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n \n )\n )}\n \n ),\n }}\n \n\n { slots['body.append']?.(slotProps.value) }\n\n \n \n \n \n )}\n
    \n \n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n \n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType\n","export { VTable } from \"./VTable.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTable } from './VTable'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Components\nimport { makeDataTableProps } from \"./VDataTable.mjs\";\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.mjs\";\nimport { VDataTableHeaders } from \"./VDataTableHeaders.mjs\";\nimport { VDataTableRows } from \"./VDataTableRows.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { VTable } from \"../VTable/index.mjs\"; // Composables\nimport { provideExpanded } from \"./composables/expand.mjs\";\nimport { createGroupBy, provideGroupBy, useGroupedItems } from \"./composables/group.mjs\";\nimport { createHeaders } from \"./composables/headers.mjs\";\nimport { useDataTableItems } from \"./composables/items.mjs\";\nimport { useOptions } from \"./composables/options.mjs\";\nimport { createPagination, makeDataTablePaginateProps, providePagination } from \"./composables/paginate.mjs\";\nimport { provideSelection } from \"./composables/select.mjs\";\nimport { createSort, provideSort } from \"./composables/sort.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { computed, provide, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true\n },\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTableServer');\nexport const VDataTableServer = genericComponent()({\n name: 'VDataTableServer',\n props: makeVDataTableServerProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': page => true,\n 'update:itemsPerPage': page => true,\n 'update:sortBy': sortBy => true,\n 'update:options': options => true,\n 'update:expanded': options => true,\n 'update:groupBy': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const itemsLength = computed(() => parseInt(props.itemsLength, 10));\n const {\n columns,\n headers\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand')\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n opened,\n isGroupOpen,\n toggleGroup,\n extractRows\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n flatItems\n } = useGroupedItems(items, groupBy, opened);\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: items\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n const itemsWithoutGroups = computed(() => extractRows(items.value));\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search')\n });\n provide('v-data-table', {\n toggleSort,\n sortBy\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText')\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode(\"thead\", {\n \"key\": \"thead\",\n \"class\": \"v-data-table__thead\",\n \"role\": \"rowgroup\"\n }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {\n \"sticky\": props.fixedHeader\n }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createVNode(\"tbody\", {\n \"class\": \"v-data-table__tbody\",\n \"role\": \"rowgroup\"\n }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": flatItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n }\n});\n//# sourceMappingURL=VDataTableServer.mjs.map","// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef, toRefs } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableServer = genericComponent(\n props: {\n items?: T\n itemValue?: SelectItemKey>\n rowProps?: RowProps>\n cellProps?: CellProps>\n itemSelectable?: SelectItemKey>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots>,\n) => GenericProps>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n \n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n \n \n \n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n \n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n \n )}\n { slots['body.append']?.(slotProps.value) }\n \n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n \n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n \n\n \n \n ),\n }}\n \n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType\n","export { VDatePicker } from \"./VDatePicker.mjs\";\nexport { VDatePickerControls } from \"./VDatePickerControls.mjs\";\nexport { VDatePickerHeader } from \"./VDatePickerHeader.mjs\";\nexport { VDatePickerMonth } from \"./VDatePickerMonth.mjs\";\nexport { VDatePickerMonths } from \"./VDatePickerMonths.mjs\";\nexport { VDatePickerYears } from \"./VDatePickerYears.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDatePicker } from './VDatePicker'\nexport { VDatePickerControls } from './VDatePickerControls'\nexport { VDatePickerHeader } from './VDatePickerHeader'\nexport { VDatePickerMonth } from './VDatePickerMonth'\nexport { VDatePickerMonths } from './VDatePickerMonths'\nexport { VDatePickerYears } from './VDatePickerYears'\n","import { Fragment as _Fragment, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePicker.css\";\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from \"./VDatePickerControls.mjs\";\nimport { VDatePickerHeader } from \"./VDatePickerHeader.mjs\";\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from \"./VDatePickerMonth.mjs\";\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from \"./VDatePickerMonths.mjs\";\nimport { makeVDatePickerYearsProps, VDatePickerYears } from \"./VDatePickerYears.mjs\";\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVPickerProps, VPicker } from \"../../labs/VPicker/VPicker.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header'\n },\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static'\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({\n title: '$vuetify.datePicker.title'\n }),\n modelValue: null\n}, 'VDatePicker');\nexport const VDatePicker = genericComponent()({\n name: 'VDatePicker',\n props: makeVDatePickerProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);\n const viewMode = useProxiedModel(props, 'viewMode');\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0]);\n return value && adapter.isValid(value) ? value : adapter.date();\n });\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));\n const isReversing = shallowRef(false);\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length);\n }\n return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);\n });\n const text = computed(() => {\n let date = adapter.date();\n date = adapter.setDate(date, 1);\n date = adapter.setMonth(date, month.value);\n date = adapter.setYear(date, year.value);\n return adapter.format(date, 'monthAndYear');\n });\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);\n const minDate = computed(() => {\n const date = adapter.date(props.min);\n return props.min && adapter.isValid(date) ? date : null;\n });\n const maxDate = computed(() => {\n const date = adapter.date(props.max);\n return props.max && adapter.isValid(date) ? date : null;\n });\n const disabled = computed(() => {\n if (props.disabled) return true;\n const targets = [];\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next']);\n } else {\n let _date = adapter.date();\n _date = adapter.setYear(_date, year.value);\n _date = adapter.setMonth(_date, month.value);\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1);\n adapter.isAfter(minDate.value, date) && targets.push('prev');\n }\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1);\n adapter.isAfter(date, maxDate.value) && targets.push('next');\n }\n }\n return targets;\n });\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext() {\n if (month.value < 11) {\n month.value++;\n } else {\n year.value++;\n month.value = 0;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickPrev() {\n if (month.value > 0) {\n month.value--;\n } else {\n year.value--;\n month.value = 11;\n onUpdateYear(year.value);\n }\n onUpdateMonth(month.value);\n }\n function onClickDate() {\n viewMode.value = 'month';\n }\n function onClickMonth() {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months';\n }\n function onClickYear() {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year';\n }\n function onUpdateMonth(value) {\n if (viewMode.value === 'months') onClickMonth();\n emit('update:month', value);\n }\n function onUpdateYear(value) {\n if (viewMode.value === 'year') onClickYear();\n emit('update:year', value);\n }\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal);\n const arrAfter = wrapInArray(val);\n if (!arrAfter.length) return;\n const before = adapter.date(arrBefore[arrBefore.length - 1]);\n const after = adapter.date(arrAfter[arrAfter.length - 1]);\n const newMonth = adapter.getMonth(after);\n const newYear = adapter.getYear(after);\n if (newMonth !== month.value) {\n month.value = newMonth;\n onUpdateMonth(month.value);\n }\n if (newYear !== year.value) {\n year.value = newYear;\n onUpdateYear(year.value);\n }\n isReversing.value = adapter.isBefore(before, after);\n });\n useRender(() => {\n const pickerProps = VPicker.filterProps(props);\n const datePickerControlsProps = VDatePickerControls.filterProps(props);\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props);\n const datePickerMonthProps = VDatePickerMonth.filterProps(props);\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue']);\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue']);\n const headerProps = {\n header: header.value,\n transition: headerTransition.value\n };\n return _createVNode(VPicker, _mergeProps(pickerProps, {\n \"class\": ['v-date-picker', `v-date-picker--${viewMode.value}`, {\n 'v-date-picker--show-week': props.showWeek\n }, props.class],\n \"style\": props.style\n }), {\n title: () => slots.title?.() ?? _createVNode(\"div\", {\n \"class\": \"v-date-picker__title\"\n }, [t(props.title)]),\n header: () => slots.header ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VDatePickerHeader: {\n ...headerProps\n }\n }\n }, {\n default: () => [slots.header?.(headerProps)]\n }) : _createVNode(VDatePickerHeader, _mergeProps({\n \"key\": \"header\"\n }, datePickerHeaderProps, headerProps, {\n \"onClick\": viewMode.value !== 'month' ? onClickDate : undefined\n }), {\n ...slots,\n default: undefined\n }),\n default: () => _createVNode(_Fragment, null, [_createVNode(VDatePickerControls, _mergeProps(datePickerControlsProps, {\n \"disabled\": disabled.value,\n \"text\": text.value,\n \"onClick:next\": onClickNext,\n \"onClick:prev\": onClickPrev,\n \"onClick:month\": onClickMonth,\n \"onClick:year\": onClickYear\n }), null), _createVNode(VFadeTransition, {\n \"hideOnLeave\": true\n }, {\n default: () => [viewMode.value === 'months' ? _createVNode(VDatePickerMonths, _mergeProps({\n \"key\": \"date-picker-months\"\n }, datePickerMonthsProps, {\n \"modelValue\": month.value,\n \"onUpdate:modelValue\": [$event => month.value = $event, onUpdateMonth],\n \"min\": minDate.value,\n \"max\": maxDate.value,\n \"year\": year.value\n }), null) : viewMode.value === 'year' ? _createVNode(VDatePickerYears, _mergeProps({\n \"key\": \"date-picker-years\"\n }, datePickerYearsProps, {\n \"modelValue\": year.value,\n \"onUpdate:modelValue\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null) : _createVNode(VDatePickerMonth, _mergeProps({\n \"key\": \"date-picker-month\"\n }, datePickerMonthProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"month\": month.value,\n \"onUpdate:month\": [$event => month.value = $event, onUpdateMonth],\n \"year\": year.value,\n \"onUpdate:year\": [$event => year.value = $event, onUpdateYear],\n \"min\": minDate.value,\n \"max\": maxDate.value\n }), null)]\n })]),\n actions: slots.actions\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePicker.mjs.map","// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n return (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n let date = adapter.date()\n\n date = adapter.setDate(date, 1)\n date = adapter.setMonth(date, month.value)\n date = adapter.setYear(date, year.value)\n\n return adapter.format(date, 'monthAndYear')\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth (value: number) {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', value)\n }\n\n function onUpdateYear (value: number) {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', value)\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth(month.value)\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear(year.value)\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n slots.title?.() ?? (\n
    \n { t(props.title) }\n
    \n ),\n header: () => slots.header ? (\n \n { slots.header?.(headerProps) }\n \n ) : (\n \n ),\n default: () => (\n <>\n \n\n \n { viewMode.value === 'months' ? (\n \n ) : viewMode.value === 'year' ? (\n \n ) : (\n \n )}\n \n \n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerControls.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VSpacer } from \"../VGrid/index.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array],\n default: undefined\n },\n disabled: {\n type: [Boolean, String, Array],\n default: false\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup'\n },\n text: String,\n viewMode: {\n type: String,\n default: 'month'\n }\n}, 'VDatePickerControls');\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n props: makeVDatePickerControlsProps(),\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('text') : !!props.disabled;\n });\n const disableYear = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('mode') : !!props.disabled;\n });\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;\n });\n const disableNext = computed(() => {\n return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;\n });\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n function onClickYear() {\n emit('click:year');\n }\n function onClickMonth() {\n emit('click:month');\n }\n useRender(() => {\n // TODO: add slot support and scope defaults\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-controls']\n }, [_createVNode(VBtn, {\n \"class\": \"v-date-picker-controls__month-btn\",\n \"disabled\": disableMonth.value,\n \"text\": props.text,\n \"variant\": \"text\",\n \"rounded\": true,\n \"onClick\": onClickMonth\n }, null), _createVNode(VBtn, {\n \"key\": \"mode-btn\",\n \"class\": \"v-date-picker-controls__mode-btn\",\n \"disabled\": disableYear.value,\n \"density\": \"comfortable\",\n \"icon\": props.modeIcon,\n \"variant\": \"text\",\n \"onClick\": onClickYear\n }, null), _createVNode(VSpacer, {\n \"key\": \"mode-spacer\"\n }, null), _createVNode(\"div\", {\n \"key\": \"month-buttons\",\n \"class\": \"v-date-picker-controls__month\"\n }, [_createVNode(VBtn, {\n \"disabled\": disablePrev.value,\n \"icon\": props.prevIcon,\n \"variant\": \"text\",\n \"onClick\": onClickPrev\n }, null), _createVNode(VBtn, {\n \"disabled\": disableNext.value,\n \"icon\": props.nextIcon,\n \"variant\": \"text\",\n \"onClick\": onClickNext\n }, null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerControls.mjs.map","// Styles\nimport './VDatePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSpacer } from '@/components/VGrid'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array] as PropType,\n default: undefined,\n },\n disabled: {\n type: [Boolean, String, Array] as PropType,\n default: false,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup',\n },\n text: String,\n viewMode: {\n type: String as PropType<'month' | 'months' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true,\n },\n\n setup (props, { emit }) {\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('text')\n : !!props.disabled\n })\n const disableYear = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : !!props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickYear () {\n emit('click:year')\n }\n\n function onClickMonth () {\n emit('click:month')\n }\n\n useRender(() => {\n // TODO: add slot support and scope defaults\n return (\n \n
    \n\n \n\n \n\n \n \n\n \n \n \n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType\n","export { VContainer } from \"./VContainer.mjs\";\nexport { VCol } from \"./VCol.mjs\";\nexport { VRow } from \"./VRow.mjs\";\nexport { VSpacer } from \"./VSpacer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VContainer } from './VContainer'\nexport { VCol } from './VCol'\nexport { VRow } from './VRow'\nexport { VSpacer } from './VSpacer'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VContainer');\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n props: makeVContainerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = useRtl();\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-container', {\n 'v-container--fluid': props.fluid\n }, rtlClasses.value, props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VContainer.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false,\n },\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VContainer')\n\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n\n props: makeVContainerProps(),\n\n setup (props, { slots }) {\n const { rtlClasses } = useRtl()\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VContainer = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false\n };\n return props;\n }, {});\n})();\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = 'offset' + capitalize(val);\n props[offsetKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = 'order' + capitalize(val);\n props[orderKey] = {\n type: [String, Number],\n default: null\n };\n return props;\n }, {});\n})();\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps)\n};\nfunction breakpointClass(type, prop, val) {\n let className = type;\n if (val == null || val === false) {\n return undefined;\n }\n if (prop) {\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n if (type === 'col') {\n className = 'v-' + className;\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase();\n }\n // .order-md-6\n className += `-${val}`;\n return className.toLowerCase();\n}\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: str => ALIGN_SELF_VALUES.includes(str)\n },\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCol');\nexport const VCol = genericComponent()({\n name: 'VCol',\n props: makeVColProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n const hasColClasses = classList.some(className => className.startsWith('v-col-'));\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf\n });\n return classList;\n });\n return () => h(props.tag, {\n class: [classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VCol.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\ntype BreakpointOffset = `offset${Capitalize}`\ntype BreakpointOrder = `order${Capitalize}`\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = ('offset' + capitalize(val)) as BreakpointOffset\n props[offsetKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = ('order' + capitalize(val)) as BreakpointOrder\n props[orderKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCol')\n\nexport const VCol = genericComponent()({\n name: 'VCol',\n\n props: makeVColProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { breakpoints } from \"../../composables/display.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { capitalize, computed, h } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nconst ALIGNMENT = ['start', 'end', 'center'];\nconst SPACE = ['space-between', 'space-around', 'space-evenly'];\nfunction makeRowProps(prefix, def) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val);\n props[prefixKey] = def();\n return props;\n }, {});\n}\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'];\nconst alignValidator = str => ALIGN_VALUES.includes(str);\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator\n}));\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE];\nconst justifyValidator = str => JUSTIFY_VALUES.includes(str);\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator\n}));\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'];\nconst alignContentValidator = str => ALIGN_CONTENT_VALUES.includes(str);\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator\n}));\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps)\n};\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content'\n};\nfunction breakpointClass(type, prop, val) {\n let className = classMap[type];\n if (val == null) {\n return undefined;\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '');\n className += `-${breakpoint}`;\n }\n // .align-items-sm-center\n className += `-${val}`;\n return className.toLowerCase();\n}\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator\n },\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VRow');\nexport const VRow = genericComponent()({\n name: 'VRow',\n props: makeVRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const classes = computed(() => {\n const classList = [];\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type;\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value = props[prop];\n const className = breakpointClass(type, prop, value);\n if (className) classList.push(className);\n });\n }\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent\n });\n return classList;\n });\n return () => h(props.tag, {\n class: ['v-row', classes.value, props.class],\n style: props.style\n }, slots.default?.());\n }\n});\n//# sourceMappingURL=VRow.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\ntype BreakpointAlign = `align${Capitalize}`\ntype BreakpointJustify = `justify${Capitalize}`\ntype BreakpointAlignContent = `alignContent${Capitalize}`\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <\n Name extends BreakpointAlign | BreakpointJustify | BreakpointAlignContent,\n Type,\n> (prefix: string, def: () => Prop) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val) as Name\n props[prefixKey] = def()\n return props\n }, {} as Record>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\ntype AlignValue = typeof ALIGN_VALUES[number]\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String as PropType,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\ntype JustifyValue = typeof JUSTIFY_VALUES[number]\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\ntype AlignContentValue = typeof ALIGN_CONTENT_VALUES[number]\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VRow')\n\nexport const VRow = genericComponent()({\n name: 'VRow',\n\n props: makeVRowProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n 'v-row',\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType\n","// Styles\nimport \"./VGrid.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');\n//# sourceMappingURL=VSpacer.mjs.map","// Styles\nimport './VGrid.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerHeader.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp()\n}, 'VDatePickerHeader');\nexport const VDatePickerHeader = genericComponent()({\n name: 'VDatePickerHeader',\n props: makeVDatePickerHeaderProps(),\n emits: {\n click: () => true,\n 'click:append': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n function onClick() {\n emit('click');\n }\n function onClickAppend() {\n emit('click:append');\n }\n useRender(() => {\n const hasContent = !!(slots.default || props.header);\n const hasAppend = !!(slots.append || props.appendIcon);\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-header', {\n 'v-date-picker-header--clickable': !!props.onClick\n }, backgroundColorClasses.value],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onClick\n }, [slots.prepend && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-date-picker-header__prepend\"\n }, [slots.prepend()]), hasContent && _createVNode(MaybeTransition, {\n \"key\": \"content\",\n \"name\": props.transition\n }, {\n default: () => [_createVNode(\"div\", {\n \"key\": props.header,\n \"class\": \"v-date-picker-header__content\"\n }, [slots.default?.() ?? props.header])]\n }), hasAppend && _createVNode(\"div\", {\n \"class\": \"v-date-picker-header__append\"\n }, [!slots.append ? _createVNode(VBtn, {\n \"key\": \"append-btn\",\n \"icon\": props.appendIcon,\n \"variant\": \"text\",\n \"onClick\": onClickAppend\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VBtn: {\n icon: props.appendIcon,\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.append?.()]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerHeader.mjs.map","// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp<[MouseEvent]>(),\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n click: () => true,\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClick () {\n emit('click')\n }\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n \n { slots.prepend && (\n
    \n { slots.prepend() }\n
    \n )}\n\n { hasContent && (\n \n
    \n { slots.default?.() ?? props.header }\n
    \n
    \n )}\n\n { hasAppend && (\n
    \n { !slots.append ? (\n \n ) : (\n \n { slots.append?.() }\n \n )}\n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType\n","import { createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VDatePickerMonth.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { makeCalendarProps, useCalendar } from \"../../composables/calendar.mjs\";\nimport { useDate } from \"../../composables/date/date.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String],\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition'\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition'\n },\n ...makeCalendarProps()\n}, 'VDatePickerMonth');\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n props: makeVDatePickerMonthProps(),\n emits: {\n 'update:modelValue': date => true,\n 'update:month': date => true,\n 'update:year': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const daysRef = ref();\n const {\n daysInMonth,\n model,\n weekNumbers\n } = useCalendar(props);\n const adapter = useDate();\n const rangeStart = shallowRef();\n const rangeStop = shallowRef();\n const isReverse = shallowRef(false);\n const transition = computed(() => {\n return !isReverse.value ? props.transition : props.reverseTransition;\n });\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0];\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1];\n }\n }\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;\n return model.value.length >= max;\n });\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return;\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);\n });\n function onRangeClick(value) {\n const _value = adapter.startOfDay(value);\n if (model.value.length === 0) {\n rangeStart.value = undefined;\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0];\n rangeStop.value = undefined;\n }\n if (!rangeStart.value) {\n rangeStart.value = _value;\n model.value = [rangeStart.value];\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined;\n model.value = [];\n return;\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value);\n rangeStart.value = _value;\n } else {\n rangeStop.value = adapter.endOfDay(_value);\n }\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');\n const datesInRange = [rangeStart.value];\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i);\n datesInRange.push(nextDate);\n }\n datesInRange.push(rangeStop.value);\n model.value = datesInRange;\n } else {\n rangeStart.value = value;\n rangeStop.value = undefined;\n model.value = [rangeStart.value];\n }\n }\n function onMultipleClick(value) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value));\n if (index === -1) {\n model.value = [...model.value, value];\n } else {\n const value = [...model.value];\n value.splice(index, 1);\n model.value = value;\n }\n }\n function onClick(value) {\n if (props.multiple === 'range') {\n onRangeClick(value);\n } else if (props.multiple) {\n onMultipleClick(value);\n } else {\n model.value = [value];\n }\n }\n return () => _createVNode(\"div\", {\n \"class\": \"v-date-picker-month\"\n }, [props.showWeek && _createVNode(\"div\", {\n \"key\": \"weeks\",\n \"class\": \"v-date-picker-month__weeks\"\n }, [!props.hideWeekdays && _createVNode(\"div\", {\n \"key\": \"hide-week-days\",\n \"class\": \"v-date-picker-month__day\"\n }, [_createTextVNode(\"\\xA0\")]), weekNumbers.value.map(week => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']\n }, [week]))]), _createVNode(MaybeTransition, {\n \"name\": transition.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"ref\": daysRef,\n \"key\": daysInMonth.value[0].date?.toString(),\n \"class\": \"v-date-picker-month__days\"\n }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', 'v-date-picker-month__weekday']\n }, [weekDay])), daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date)\n },\n item,\n i\n };\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true;\n }\n return _createVNode(\"div\", {\n \"class\": ['v-date-picker-month__day', {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart\n }],\n \"data-v-date\": !item.isDisabled ? item.isoDate : undefined\n }, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date)\n }\n }\n }, {\n default: () => [slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null)]\n })]);\n })])]\n })]);\n }\n});\n//# sourceMappingURL=VDatePickerMonth.mjs.map","// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...makeCalendarProps(),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = computed(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n return () => (\n
    \n { props.showWeek && (\n
    \n { !props.hideWeekdays && (\n
     
    \n )}\n { weekNumbers.value.map(week => (\n { week }
    \n ))}\n
    \n )}\n\n \n \n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n { weekDay }\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n \n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n \n )}\n \n )}\n \n )\n })}\n \n \n \n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType\n","// Composables\nimport { getWeek, useDate } from \"./date/date.mjs\";\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\n// Types\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function],\n disabled: Boolean,\n displayValue: null,\n modelValue: Array,\n month: [Number, String],\n max: null,\n min: null,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array,\n default: () => [0, 1, 2, 3, 4, 5, 6]\n },\n weeksInMonth: {\n type: String,\n default: 'dynamic'\n },\n firstDayOfWeek: [Number, String]\n}, 'calendar');\nexport function useCalendar(props) {\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue);\n if (model.value.length > 0) return adapter.date(model.value[0]);\n if (props.min) return adapter.date(props.min);\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0]);\n return adapter.date();\n });\n const year = useProxiedModel(props, 'year', undefined, v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value);\n return adapter.startOfYear(adapter.setYear(adapter.date(), value));\n }, v => adapter.getYear(v));\n const month = useProxiedModel(props, 'month', undefined, v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));\n return adapter.setMonth(date, value);\n }, v => adapter.getMonth(v));\n const weekDays = computed(() => {\n const firstDayOfWeek = Number(props.firstDayOfWeek ?? 0);\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7);\n });\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);\n const days = weeks.flat();\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7;\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1];\n let week = [];\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day));\n if (day % 7 === 0) {\n weeks.push(week);\n week = [];\n }\n }\n }\n return weeks;\n });\n function genDays(days, today) {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay());\n }).map((date, index) => {\n const isoDate = adapter.toISO(date);\n const isAdjacent = !adapter.isSameMonth(date, month.value);\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));\n const isSame = adapter.isSameDay(date, month.value);\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth')\n };\n });\n }\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek);\n const week = [];\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day));\n }\n const today = adapter.date();\n return genDays(week, today);\n });\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat();\n const today = adapter.date();\n return genDays(days, today);\n });\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null;\n });\n });\n function isDisabled(value) {\n if (props.disabled) return true;\n const date = adapter.date(value);\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true;\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true;\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));\n }\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date);\n }\n return false;\n }\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers\n };\n}\n//# sourceMappingURL=calendar.mjs.map","// Composables\nimport { getWeek, useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean) | undefined\n disabled: boolean\n displayValue: unknown\n modelValue: unknown[] | undefined\n max: unknown\n min: unknown\n showAdjacentMonths: boolean\n month: number | string | undefined\n weekdays: number[]\n year: number | string | undefined\n weeksInMonth: 'dynamic' | 'static'\n firstDayOfWeek: number | string | undefined\n\n 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined\n 'onUpdate:month': ((value: number) => void) | undefined\n 'onUpdate:year': ((value: number) => void) | undefined\n}\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function] as PropType boolean)>,\n disabled: Boolean,\n displayValue: null as any as PropType,\n modelValue: Array as PropType,\n month: [Number, String],\n max: null as any as PropType,\n min: null as any as PropType,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n weeksInMonth: {\n type: String as PropType<'dynamic' | 'static'>,\n default: 'dynamic',\n },\n firstDayOfWeek: [Number, String],\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weekDays = computed(() => {\n const firstDayOfWeek = Number(props.firstDayOfWeek ?? 0)\n\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7)\n })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n function genDays (days: unknown[], today: unknown) {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n isoDate,\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isStart,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isEnd,\n isSame,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek)\n const week = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day))\n }\n\n const today = adapter.date()\n\n return genDays(week, today)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat()\n const today = adapter.date() as Date\n\n return genDays(days, today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? getWeek(adapter, week[0]) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers,\n }\n}\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDatePickerMonths.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number,\n year: Number\n}, 'VDatePickerMonths');\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n props: makeVDatePickerMonthsProps(),\n emits: {\n 'update:modelValue': date => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date());\n if (props.year) {\n date = adapter.setYear(date, props.year);\n }\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort');\n const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));\n date = adapter.getNextMonth(date);\n return {\n isDisabled,\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date());\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-months\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-months__content\"\n }, [months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n disabled: month.isDisabled,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i)\n };\n function onClick(i) {\n if (model.value === i) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = i;\n }\n return slots.month?.({\n month,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerMonths.mjs.map","// Styles\nimport './VDatePickerMonths.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthsSlots = {\n month: {\n month: {\n text: string\n value: number\n }\n i: number\n props: {\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null as any as PropType,\n max: null as any as PropType,\n modelValue: Number,\n year: Number,\n}, 'VDatePickerMonths')\n\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n\n props: makeVDatePickerMonthsProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date())\n if (props.year) {\n date = adapter.setYear(date, props.year)\n }\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort')\n const isDisabled =\n !!(\n (props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date)) ||\n (props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))))\n )\n date = adapter.getNextMonth(date)\n\n return {\n isDisabled,\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date())\n })\n\n useRender(() => (\n \n
    \n { months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n disabled: month.isDisabled,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i),\n } as const\n\n function onClick (i: number) {\n if (model.value === i) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = i\n }\n\n return slots.month?.({\n month,\n i,\n props: btnProps,\n }) ?? (\n \n )\n })}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VDatePickerMonths = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDatePickerYears.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { useDate } from \"../../composables/date/index.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, watchEffect } from 'vue';\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null,\n max: null,\n modelValue: Number\n}, 'VDatePickerYears');\nexport const VDatePickerYears = genericComponent()({\n name: 'VDatePickerYears',\n props: makeVDatePickerYearsProps(),\n emits: {\n 'update:modelValue': year => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const adapter = useDate();\n const model = useProxiedModel(props, 'modelValue');\n const years = computed(() => {\n const year = adapter.getYear(adapter.date());\n let min = year - 100;\n let max = year + 52;\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min));\n }\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max));\n }\n let date = adapter.startOfYear(adapter.date());\n date = adapter.setYear(date, min);\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year');\n date = adapter.setYear(date, adapter.getYear(date) + 1);\n return {\n text,\n value: i\n };\n });\n });\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date());\n });\n const yearRef = templateRef();\n onMounted(async () => {\n await nextTick();\n yearRef.el?.scrollIntoView({\n block: 'center'\n });\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-date-picker-years\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createVNode(\"div\", {\n \"class\": \"v-date-picker-years__content\"\n }, [years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value);\n return;\n }\n model.value = year.value;\n }\n };\n return slots.year?.({\n year,\n i,\n props: btnProps\n }) ?? _createVNode(VBtn, _mergeProps({\n \"key\": \"month\"\n }, btnProps), null);\n })])]));\n return {};\n }\n});\n//# sourceMappingURL=VDatePickerYears.mjs.map","// Styles\nimport './VDatePickerYears.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VDatePickerYearsSlots = {\n year: {\n year: {\n text: string\n value: number\n }\n i: number\n props: {\n active: boolean\n color?: string\n rounded: boolean\n text: string\n variant: 'flat' | 'text'\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null as any as PropType,\n max: null as any as PropType,\n modelValue: Number,\n}, 'VDatePickerYears')\n\nexport const VDatePickerYears = genericComponent()({\n name: 'VDatePickerYears',\n\n props: makeVDatePickerYearsProps(),\n\n emits: {\n 'update:modelValue': (year: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n const years = computed(() => {\n const year = adapter.getYear(adapter.date())\n\n let min = year - 100\n let max = year + 52\n\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min))\n }\n\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max))\n }\n\n let date = adapter.startOfYear(adapter.date())\n\n date = adapter.setYear(date, min)\n\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year')\n date = adapter.setYear(date, adapter.getYear(date) + 1)\n\n return {\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date())\n })\n\n const yearRef = templateRef()\n\n onMounted(async () => {\n await nextTick()\n yearRef.el?.scrollIntoView({ block: 'center' })\n })\n\n useRender(() => (\n \n
    \n { years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = year.value\n },\n } as const\n\n return slots.year?.({\n year,\n i,\n props: btnProps,\n }) ?? (\n \n )\n })}\n
    \n \n ))\n\n return {}\n },\n})\n\nexport type VDatePickerYears = InstanceType\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VPicker.css\";\n\n// Components\nimport { VPickerTitle } from \"./VPickerTitle.mjs\";\nimport { VDefaultsProvider } from \"../../components/VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { makeVSheetProps, VSheet } from \"../../components/VSheet/VSheet.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n ...makeVSheetProps()\n}, 'VPicker');\nexport const VPicker = genericComponent()({\n name: 'VPicker',\n props: makeVPickerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasTitle = !!(props.title || slots.title);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-picker', {\n 'v-picker--landscape': props.landscape,\n 'v-picker--with-actions': !!slots.actions\n }, props.class],\n \"style\": props.style\n }), {\n default: () => [!props.hideHeader && _createVNode(\"div\", {\n \"key\": \"header\",\n \"class\": [backgroundColorClasses.value],\n \"style\": [backgroundColorStyles.value]\n }, [hasTitle && _createVNode(VPickerTitle, {\n \"key\": \"picker-title\"\n }, {\n default: () => [slots.title?.() ?? props.title]\n }), slots.header && _createVNode(\"div\", {\n \"class\": \"v-picker__header\"\n }, [slots.header()])]), _createVNode(\"div\", {\n \"class\": \"v-picker__body\"\n }, [slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n slim: true,\n variant: 'text'\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-picker__actions\"\n }, [slots.actions()])]\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VPicker.mjs.map","// Styles\nimport './VPicker.sass'\n\n// Components\nimport { VPickerTitle } from './VPickerTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VPickerSlots = {\n header: never\n default: never\n actions: never\n title: never\n}\n\nexport const makeVPickerProps = propsFactory({\n bgColor: String,\n landscape: Boolean,\n title: String,\n hideHeader: Boolean,\n\n ...makeVSheetProps(),\n}, 'VPicker')\n\nexport const VPicker = genericComponent()({\n name: 'VPicker',\n\n props: makeVPickerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n const hasTitle = !!(props.title || slots.title)\n\n return (\n \n { !props.hideHeader && (\n \n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { slots.header && (\n
    \n { slots.header() }\n
    \n )}\n \n )}\n\n
    \n { slots.default?.() }\n
    \n\n { slots.actions && (\n \n
    \n { slots.actions() }\n
    \n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VPicker = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VPickerTitle = createSimpleFunctional('v-picker-title');\n//# sourceMappingURL=VPickerTitle.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VPickerTitle = createSimpleFunctional('v-picker-title')\n\nexport type VPickerTitle = InstanceType\n","export { VDialog } from \"./VDialog.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VDialog } from './VDialog'\n","export { VEmptyState } from \"./VEmptyState.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VEmptyState } from './VEmptyState'\n","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VEmptyState.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useDisplay } from \"../../composables/display.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String,\n default: 'center'\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500\n },\n href: String,\n to: String,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({\n size: undefined\n }),\n ...makeThemeProps()\n}, 'VEmptyState');\nexport const VEmptyState = genericComponent()({\n name: 'VEmptyState',\n props: makeVEmptyStateProps(),\n emits: {\n 'click:action': e => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n displayClasses\n } = useDisplay();\n function onClickAction(e) {\n emit('click:action', e);\n }\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText);\n const hasHeadline = !!(slots.headline || props.headline);\n const hasTitle = !!(slots.title || props.title);\n const hasText = !!(slots.text || props.text);\n const hasMedia = !!(slots.media || props.image || props.icon);\n const size = props.size || (props.image ? 200 : 96);\n return _createVNode(\"div\", {\n \"class\": ['v-empty-state', {\n [`v-empty-state--${props.justify}`]: true\n }, themeClasses.value, backgroundColorClasses.value, displayClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style]\n }, [hasMedia && _createVNode(\"div\", {\n \"key\": \"media\",\n \"class\": \"v-empty-state__media\"\n }, [!slots.media ? _createVNode(_Fragment, null, [props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"height\": size\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.color,\n \"size\": size,\n \"icon\": props.icon\n }, null) : undefined]) : _createVNode(VDefaultsProvider, {\n \"key\": \"media-defaults\",\n \"defaults\": {\n VImg: {\n src: props.image,\n height: size\n },\n VIcon: {\n size,\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.media()]\n })]), hasHeadline && _createVNode(\"div\", {\n \"key\": \"headline\",\n \"class\": \"v-empty-state__headline\"\n }, [slots.headline?.() ?? props.headline]), hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-empty-state__title\"\n }, [slots.title?.() ?? props.title]), hasText && _createVNode(\"div\", {\n \"key\": \"text\",\n \"class\": \"v-empty-state__text\",\n \"style\": {\n maxWidth: convertToUnit(props.textWidth)\n }\n }, [slots.text?.() ?? props.text]), slots.default && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-empty-state__content\"\n }, [slots.default()]), hasActions && _createVNode(\"div\", {\n \"key\": \"actions\",\n \"class\": \"v-empty-state__actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n class: 'v-empty-state__action-btn',\n color: props.color ?? 'surface-variant',\n text: props.actionText\n }\n }\n }, {\n default: () => [slots.actions?.({\n props: {\n onClick: onClickAction\n }\n }) ?? _createVNode(VBtn, {\n \"onClick\": onClickAction\n }, null)]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VEmptyState.mjs.map","// Styles\nimport './VEmptyState.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport type VEmptyStateSlots = {\n actions: {\n props: {\n onClick: (e: Event) => void\n }\n }\n default: never\n headline: never\n title: never\n media: never\n text: never\n}\n\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500,\n },\n href: String,\n to: String,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({ size: undefined }),\n ...makeThemeProps(),\n}, 'VEmptyState')\n\nexport const VEmptyState = genericComponent()({\n name: 'VEmptyState',\n\n props: makeVEmptyStateProps(),\n\n emits: {\n 'click:action': (e: Event) => true,\n },\n\n setup (props, { emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { dimensionStyles } = useDimension(props)\n const { displayClasses } = useDisplay()\n\n function onClickAction (e: Event) {\n emit('click:action', e)\n }\n\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText)\n const hasHeadline = !!(slots.headline || props.headline)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(slots.text || props.text)\n const hasMedia = !!(slots.media || props.image || props.icon)\n const size = props.size || (props.image ? 200 : 96)\n\n return (\n \n { hasMedia && (\n
    \n { !slots.media ? (\n <>\n { props.image ? (\n \n ) : props.icon ? (\n \n ) : undefined }\n \n ) : (\n \n { slots.media() }\n \n )}\n
    \n )}\n\n { hasHeadline && (\n
    \n { slots.headline?.() ?? props.headline }\n
    \n )}\n\n { hasTitle && (\n
    \n { slots.title?.() ?? props.title }\n
    \n )}\n\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default && (\n
    \n { slots.default() }\n
    \n )}\n\n { hasActions && (\n
    \n \n {\n slots.actions?.({ props: { onClick: onClickAction } }) ?? (\n \n )\n }\n \n
    \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VEmptyState = InstanceType\n","export { VExpansionPanels } from \"./VExpansionPanels.mjs\";\nexport { VExpansionPanel } from \"./VExpansionPanel.mjs\";\nexport { VExpansionPanelText } from \"./VExpansionPanelText.mjs\";\nexport { VExpansionPanelTitle } from \"./VExpansionPanelTitle.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VExpansionPanels } from './VExpansionPanels'\nexport { VExpansionPanel } from './VExpansionPanel'\nexport { VExpansionPanelText } from './VExpansionPanelText'\nexport { VExpansionPanelTitle } from './VExpansionPanelTitle'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VExpansionPanel.css\";\n\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelProps } from \"./VExpansionPanel.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, pick, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'];\nexport const makeVExpansionPanelsProps = propsFactory({\n flat: Boolean,\n ...makeGroupProps(),\n ...pick(makeVExpansionPanelProps(), ['bgColor', 'collapseIcon', 'color', 'eager', 'elevation', 'expandIcon', 'focusable', 'hideActions', 'readonly', 'ripple', 'rounded', 'tile', 'static']),\n ...makeThemeProps(),\n ...makeComponentProps(),\n ...makeTagProps(),\n variant: {\n type: String,\n default: 'default',\n validator: v => allowedVariants.includes(v)\n }\n}, 'VExpansionPanels');\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n props: makeVExpansionPanelsProps(),\n emits: {\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n next,\n prev\n } = useGroup(props, VExpansionPanelSymbol);\n const {\n themeClasses\n } = provideTheme(props);\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);\n provideDefaults({\n VExpansionPanel: {\n bgColor: toRef(props, 'bgColor'),\n collapseIcon: toRef(props, 'collapseIcon'),\n color: toRef(props, 'color'),\n eager: toRef(props, 'eager'),\n elevation: toRef(props, 'elevation'),\n expandIcon: toRef(props, 'expandIcon'),\n focusable: toRef(props, 'focusable'),\n hideActions: toRef(props, 'hideActions'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n rounded: toRef(props, 'rounded'),\n static: toRef(props, 'static')\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-expansion-panels', {\n 'v-expansion-panels--flat': props.flat,\n 'v-expansion-panels--tile': props.tile\n }, themeClasses.value, variantClass.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n prev,\n next\n })]\n }));\n return {\n next,\n prev\n };\n }\n});\n//# sourceMappingURL=VExpansionPanels.mjs.map","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { makeVExpansionPanelProps } from './VExpansionPanel'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport type VExpansionPanelSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VExpansionPanelSlots = {\n default: VExpansionPanelSlot\n}\n\nexport const makeVExpansionPanelsProps = propsFactory({\n flat: Boolean,\n\n ...makeGroupProps(),\n ...pick(makeVExpansionPanelProps(), [\n 'bgColor',\n 'collapseIcon',\n 'color',\n 'eager',\n 'elevation',\n 'expandIcon',\n 'focusable',\n 'hideActions',\n 'readonly',\n 'ripple',\n 'rounded',\n 'tile',\n 'static',\n ]),\n ...makeThemeProps(),\n ...makeComponentProps(),\n ...makeTagProps(),\n\n variant: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'VExpansionPanels')\n\nexport const VExpansionPanels = genericComponent()({\n name: 'VExpansionPanels',\n\n props: makeVExpansionPanelsProps(),\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { next, prev } = useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n bgColor: toRef(props, 'bgColor'),\n collapseIcon: toRef(props, 'collapseIcon'),\n color: toRef(props, 'color'),\n eager: toRef(props, 'eager'),\n elevation: toRef(props, 'elevation'),\n expandIcon: toRef(props, 'expandIcon'),\n focusable: toRef(props, 'focusable'),\n hideActions: toRef(props, 'hideActions'),\n readonly: toRef(props, 'readonly'),\n ripple: toRef(props, 'ripple'),\n rounded: toRef(props, 'rounded'),\n static: toRef(props, 'static'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.({ prev, next }) }\n \n ))\n\n return {\n next,\n prev,\n }\n },\n})\n\nexport type VExpansionPanels = InstanceType\n","// Types\n\nexport const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey = Symbol.for('vuetify:v-expansion-panel')\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { makeVExpansionPanelTextProps, VExpansionPanelText } from \"./VExpansionPanelText.mjs\";\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from \"./VExpansionPanelTitle.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, provide } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelProps = propsFactory({\n title: String,\n text: String,\n bgColor: String,\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n ...makeVExpansionPanelTextProps()\n}, 'VExpansionPanel');\nexport const VExpansionPanel = genericComponent()({\n name: 'VExpansionPanel',\n props: makeVExpansionPanelProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const groupItem = useGroupItem(props, VExpansionPanelSymbol);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'bgColor');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled);\n const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index);\n return arr;\n }, []));\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === 1);\n });\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);\n return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);\n });\n provide(VExpansionPanelSymbol, groupItem);\n useRender(() => {\n const hasText = !!(slots.text || props.text);\n const hasTitle = !!(slots.title || props.title);\n const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props);\n const expansionPanelTextProps = VExpansionPanelText.filterProps(props);\n return _createVNode(props.tag, {\n \"class\": ['v-expansion-panel', {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value\n }, roundedClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style]\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": ['v-expansion-panel__shadow', ...elevationClasses.value]\n }, null), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VExpansionPanelTitle: {\n ...expansionPanelTitleProps\n },\n VExpansionPanelText: {\n ...expansionPanelTextProps\n }\n }\n }, {\n default: () => [hasTitle && _createVNode(VExpansionPanelTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title ? slots.title() : props.title]\n }), hasText && _createVNode(VExpansionPanelText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text ? slots.text() : props.text]\n }), slots.default?.()]\n })]\n });\n });\n return {\n groupItem\n };\n }\n});\n//# sourceMappingURL=VExpansionPanel.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { makeVExpansionPanelTextProps, VExpansionPanelText } from './VExpansionPanelText'\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelProps = propsFactory({\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n ...makeVExpansionPanelTextProps(),\n}, 'VExpansionPanel')\n\nexport type VExpansionPanelSlots = {\n default: never\n title: never\n text: never\n}\n\nexport const VExpansionPanel = genericComponent()({\n name: 'VExpansionPanel',\n\n props: makeVExpansionPanelProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n const expansionPanelTitleProps = VExpansionPanelTitle.filterProps(props)\n const expansionPanelTextProps = VExpansionPanelText.filterProps(props)\n\n return (\n \n \n\n \n { hasTitle && (\n \n { slots.title ? slots.title() : props.title }\n \n )}\n\n { hasText && (\n \n { slots.text ? slots.text() : props.text }\n \n )}\n\n { slots.default?.() }\n \n \n )\n })\n\n return {\n groupItem,\n }\n },\n})\n\nexport type VExpansionPanel = InstanceType\n","import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VExpandTransition } from \"../transitions/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.mjs\"; // Utilities\nimport { inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVExpansionPanelTextProps = propsFactory({\n ...makeComponentProps(),\n ...makeLazyProps()\n}, 'VExpansionPanelText');\nexport const VExpansionPanelText = genericComponent()({\n name: 'VExpansionPanelText',\n props: makeVExpansionPanelTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel');\n const {\n hasContent,\n onAfterLeave\n } = useLazy(props, expansionPanel.isSelected);\n useRender(() => _createVNode(VExpandTransition, {\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createVNode(\"div\", {\n \"class\": ['v-expansion-panel-text', props.class],\n \"style\": props.style\n }, [slots.default && hasContent.value && _createVNode(\"div\", {\n \"class\": \"v-expansion-panel-text__wrapper\"\n }, [slots.default?.()])]), [[_vShow, expansionPanel.isSelected.value]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelText.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\n\n// Utilities\nimport { inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTextProps = propsFactory({\n ...makeComponentProps(),\n ...makeLazyProps(),\n}, 'VExpansionPanelText')\n\nexport const VExpansionPanelText = genericComponent()({\n name: 'VExpansionPanelText',\n\n props: makeVExpansionPanelTextProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel')\n\n const { hasContent, onAfterLeave } = useLazy(props, expansionPanel.isSelected)\n\n useRender(() => (\n \n \n { slots.default && hasContent.value && (\n
    \n { slots.default?.() }\n
    \n )}\n \n
    \n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelText = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VExpansionPanelSymbol } from \"./shared.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false\n },\n readonly: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VExpansionPanelTitle');\nexport const VExpansionPanelTitle = genericComponent()({\n name: 'VExpansionPanelTitle',\n directives: {\n Ripple\n },\n props: makeVExpansionPanelTitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const expansionPanel = inject(VExpansionPanelSymbol);\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n dimensionStyles\n } = useDimension(props);\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly\n }));\n const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);\n useRender(() => _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-expansion-panel-title', {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n 'v-expansion-panel-title--focusable': props.focusable,\n 'v-expansion-panel-title--static': props.static\n }, backgroundColorClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, dimensionStyles.value, props.style],\n \"type\": \"button\",\n \"tabindex\": expansionPanel.disabled.value ? -1 : undefined,\n \"disabled\": expansionPanel.disabled.value,\n \"aria-expanded\": expansionPanel.isSelected.value,\n \"onClick\": !props.readonly ? expansionPanel.toggle : undefined\n }, [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__overlay\"\n }, null), slots.default?.(slotProps.value), !props.hideActions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: icon.value\n }\n }\n }, {\n default: () => [_createVNode(\"span\", {\n \"class\": \"v-expansion-panel-title__icon\"\n }, [slots.actions?.(slotProps.value) ?? _createVNode(VIcon, null, null)])]\n })]), [[_resolveDirective(\"ripple\"), props.ripple]]));\n return {};\n }\n});\n//# sourceMappingURL=VExpansionPanelTitle.mjs.map","// Components\nimport { VExpansionPanelSymbol } from './shared'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ninterface ExpansionPanelTitleSlot {\n collapseIcon: IconValue\n disabled: boolean | undefined\n expanded: boolean\n expandIcon: IconValue\n readonly: boolean\n}\n\nexport type VExpansionPanelTitleSlots = {\n default: ExpansionPanelTitleSlot\n actions: ExpansionPanelTitleSlot\n}\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n focusable: Boolean,\n static: Boolean,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: false,\n },\n readonly: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VExpansionPanelTitle')\n\nexport const VExpansionPanelTitle = genericComponent()({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: makeVExpansionPanelTitleProps(),\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n const { dimensionStyles } = useDimension(props)\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n const icon = computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon)\n\n useRender(() => (\n \n \n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n \n \n { slots.actions?.(slotProps.value) ?? }\n \n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType\n","export { VFab } from \"./VFab.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFab } from './VFab'\n","import { withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, vShow as _vShow } from \"vue\";\n// Styles\nimport \"./VFab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true\n },\n ...omit(makeVBtnProps({\n active: true\n }), ['location']),\n ...makeLayoutItemProps(),\n ...makeLocationProps(),\n ...makeTransitionProps({\n transition: 'fab-transition'\n })\n}, 'VFab');\nexport const VFab = genericComponent()({\n name: 'VFab',\n props: makeVFabProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const height = shallowRef(56);\n const layoutItemStyles = ref();\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n height.value = entries[0].target.clientHeight;\n });\n const hasPosition = computed(() => props.app || props.absolute);\n const position = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ').shift() ?? 'bottom';\n });\n const orientation = computed(() => {\n if (!hasPosition.value) return false;\n return props.location?.split(' ')[1] ?? 'end';\n });\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n const vFabRef = ref();\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(\"div\", {\n \"ref\": vFabRef,\n \"class\": ['v-fab', {\n 'v-fab--absolute': props.absolute,\n 'v-fab--app': !!props.app,\n 'v-fab--extended': props.extended,\n 'v-fab--offset': props.offset,\n [`v-fab--${position.value}`]: hasPosition.value,\n [`v-fab--${orientation.value}`]: hasPosition.value\n }, props.class],\n \"style\": [props.app ? {\n ...layoutItemStyles.value\n } : {\n height: 'inherit',\n width: undefined\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-fab__container\"\n }, [_createVNode(MaybeTransition, {\n \"appear\": props.appear,\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createVNode(VBtn, _mergeProps({\n \"ref\": resizeRef\n }, btnProps, {\n \"active\": undefined,\n \"location\": undefined\n }), slots), [[_vShow, props.active]])]\n })])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VFab.mjs.map","// Styles\nimport './VFab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\nimport type { Position } from '@/composables/layout'\n\nexport const makeVFabProps = propsFactory({\n app: Boolean,\n appear: Boolean,\n extended: Boolean,\n layout: Boolean,\n offset: Boolean,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...omit(makeVBtnProps({ active: true }), ['location']),\n ...makeLayoutItemProps(),\n ...makeLocationProps(),\n ...makeTransitionProps({ transition: 'fab-transition' }),\n}, 'VFab')\n\nexport const VFab = genericComponent()({\n name: 'VFab',\n\n props: makeVFabProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const height = shallowRef(56)\n const layoutItemStyles = ref()\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n height.value = entries[0].target.clientHeight\n })\n\n const hasPosition = computed(() => props.app || props.absolute)\n\n const position = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location?.split(' ').shift() ?? 'bottom'\n }) as ComputedRef\n\n const orientation = computed(() => {\n if (!hasPosition.value) return false\n\n return props.location?.split(' ')[1] ?? 'end'\n })\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position,\n layoutSize: computed(() => props.layout ? height.value + 24 : 0),\n elementSize: computed(() => height.value + 24),\n active: computed(() => props.app && model.value),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n const vFabRef = ref()\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n \n
    \n \n \n \n
    \n \n )\n })\n\n return {}\n },\n})\n\nexport type VFab = InstanceType\n","export { VField } from \"./VField.mjs\";\nexport { VFieldLabel } from \"./VFieldLabel.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VField } from './VField'\nexport { VFieldLabel } from './VFieldLabel'\n","export { VFileInput } from \"./VFileInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFileInput } from './VFileInput'\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VFileInput.css\";\n\n// Components\nimport { VChip } from \"../VChip/index.mjs\";\nimport { VCounter } from \"../VCounter/index.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize'\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter'\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String],\n default: false,\n validator: v => {\n return typeof v === 'boolean' || [1000, 1024].includes(Number(v));\n }\n },\n ...makeVInputProps({\n prependIcon: '$file'\n }),\n modelValue: {\n type: [Array, Object],\n default: props => props.multiple ? [] : null,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object');\n }\n },\n ...makeVFieldProps({\n clearable: true\n })\n}, 'VFileInput');\nexport const VFileInput = genericComponent()({\n name: 'VFileInput',\n inheritAttrs: false,\n props: makeVFileInputProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': files => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => !props.multiple && Array.isArray(val) ? val[0] : val);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined);\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, _ref2) => {\n let {\n size = 0\n } = _ref2;\n return bytes + size;\n }, 0));\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value));\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const {\n name = '',\n size = 0\n } = file;\n return !props.showSize ? name : `${name} (${humanReadableFileSize(size, base.value)})`;\n }));\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0;\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value);else return t(props.counterString, fileCount);\n });\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => isFocused.value || props.active);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onClickPrepend(e) {\n inputRef.value?.click();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onControlClick(e) {\n inputRef.value?.click();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = [];\n callEvent(props['onClick:clear'], e);\n });\n }\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length;\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = '';\n }\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-file-input', {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style,\n \"onClick:prepend\": onClickPrepend\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref3 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref3;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"prepend-icon\": props.prependIcon,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref4 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref4;\n return _createVNode(_Fragment, null, [_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"type\": \"file\",\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"multiple\": props.multiple,\n \"name\": props.name,\n \"onClick\": e => {\n e.stopPropagation();\n if (isReadonly.value) e.preventDefault();\n onFocus();\n },\n \"onChange\": e => {\n if (!e.target) return;\n const target = e.target;\n model.value = [...(target.files ?? [])];\n },\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), _createVNode(\"div\", {\n \"class\": fieldClass\n }, [!!model.value?.length && !props.hideInput && (slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value\n }) : props.chips ? fileNames.value.map(text => _createVNode(VChip, {\n \"key\": text,\n \"size\": \"small\",\n \"text\": text\n }, null)) : fileNames.value.join(', '))])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": !!model.value?.length,\n \"value\": counterValue.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VFileInput.mjs.map","// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref()\n const vFieldRef = ref()\n const inputRef = ref()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n
    \n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n \n ))\n : fileNames.value.join(', ')\n )}\n
    \n \n ),\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n
    \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType\n","export { VFooter } from \"./VFooter.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VFooter } from './VFooter'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VFooter.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'footer'\n }),\n ...makeThemeProps()\n}, 'VFooter');\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n props: makeVFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const layoutItemStyles = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const autoHeight = shallowRef(32);\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n autoHeight.value = entries[0].target.clientHeight;\n });\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute')\n });\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value;\n });\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {\n height: convertToUnit(props.height)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFooter.mjs.map","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFooterProps = propsFactory({\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n}, 'VFooter')\n\nexport const VFooter = genericComponent()({\n name: 'VFooter',\n\n props: makeVFooterProps(),\n\n setup (props, { slots }) {\n const layoutItemStyles = ref()\n\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = shallowRef(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n\n useToggleScope(() => props.app, () => {\n const layout = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute'),\n })\n\n watchEffect(() => {\n layoutItemStyles.value = layout.layoutItemStyles.value\n })\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VFooter = InstanceType\n","export { VForm } from \"./VForm.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VForm } from './VForm'\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { createForm, makeFormProps } from \"../../composables/form.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps()\n}, 'VForm');\nexport const VForm = genericComponent()({\n name: 'VForm',\n props: makeVFormProps(),\n emits: {\n 'update:modelValue': val => true,\n submit: e => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const form = createForm(props);\n const formRef = ref();\n function onReset(e) {\n e.preventDefault();\n form.reset();\n }\n function onSubmit(_e) {\n const e = _e;\n const ready = form.validate();\n e.then = ready.then.bind(ready);\n e.catch = ready.catch.bind(ready);\n e.finally = ready.finally.bind(ready);\n emit('submit', e);\n if (!e.defaultPrevented) {\n ready.then(_ref2 => {\n let {\n valid\n } = _ref2;\n if (valid) {\n formRef.value?.submit();\n }\n });\n }\n e.preventDefault();\n }\n useRender(() => _createVNode(\"form\", {\n \"ref\": formRef,\n \"class\": ['v-form', props.class],\n \"style\": props.style,\n \"novalidate\": true,\n \"onReset\": onReset,\n \"onSubmit\": onSubmit\n }, [slots.default?.(form)]));\n return forwardRefs(form, formRef);\n }\n});\n//# sourceMappingURL=VForm.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createForm, makeFormProps } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps(),\n}, 'VForm')\n\ntype VFormSlots = {\n default: ReturnType\n}\n\nexport const VForm = genericComponent()({\n name: 'VForm',\n\n props: makeVFormProps(),\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n \n { slots.default?.(form) }\n \n )))\n\n return forwardRefs(form, formRef)\n },\n})\n\nexport type VForm = InstanceType\n","export { VHover } from \"./VHover.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VHover } from './VHover'\n","// Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVHoverProps = propsFactory({\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n ...makeDelayProps()\n}, 'VHover');\nexport const VHover = genericComponent()({\n name: 'VHover',\n props: makeVHoverProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isHovering = useProxiedModel(props, 'modelValue');\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => !props.disabled && (isHovering.value = value));\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay\n }\n });\n }\n});\n//# sourceMappingURL=VHover.mjs.map","// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\ntype VHoverSlots = {\n default: {\n isHovering: boolean | null\n props: Record\n }\n}\n\nexport const makeVHoverProps = propsFactory({\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: null,\n },\n\n ...makeDelayProps(),\n}, 'VHover')\n\nexport const VHover = genericComponent()({\n name: 'VHover',\n\n props: makeVHoverProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isHovering = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (isHovering.value = value))\n\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n\nexport type VHover = InstanceType\n","export { VInfiniteScroll } from \"./VInfiniteScroll.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VInfiniteScroll } from './VInfiniteScroll'\n","import { createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VInfiniteScroll.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\"; // Composables\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n side: {\n type: String,\n default: 'end',\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n mode: {\n type: String,\n default: 'intersect',\n validator: v => ['intersect', 'manual'].includes(v)\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore'\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty'\n },\n ...makeDimensionProps(),\n ...makeTagProps()\n}, 'VInfiniteScroll');\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n props: {\n side: {\n type: String,\n required: true\n },\n rootMargin: String\n },\n emits: {\n intersect: (side, isIntersecting) => true\n },\n setup(props, _ref) {\n let {\n emit\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val);\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll-intersect\",\n \"style\": {\n '--v-infinite-margin-size': props.rootMargin\n },\n \"ref\": intersectionRef\n }, [_createTextVNode(\"\\xA0\")]));\n return {};\n }\n});\nexport const VInfiniteScroll = genericComponent()({\n name: 'VInfiniteScroll',\n props: makeVInfiniteScrollProps(),\n emits: {\n load: options => true\n },\n setup(props, _ref2) {\n let {\n slots,\n emit\n } = _ref2;\n const rootEl = ref();\n const startStatus = shallowRef('ok');\n const endStatus = shallowRef('ok');\n const margin = computed(() => convertToUnit(props.margin));\n const isIntersecting = shallowRef(false);\n function setScrollAmount(amount) {\n if (!rootEl.value) return;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n rootEl.value[property] = amount;\n }\n function getScrollAmount() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n return rootEl.value[property];\n }\n function getScrollSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth';\n return rootEl.value[property];\n }\n function getContainerSize() {\n if (!rootEl.value) return 0;\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth';\n return rootEl.value[property];\n }\n onMounted(() => {\n if (!rootEl.value) return;\n if (props.side === 'start') {\n setScrollAmount(getScrollSize());\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2);\n }\n });\n function setStatus(side, status) {\n if (side === 'start') {\n startStatus.value = status;\n } else if (side === 'end') {\n endStatus.value = status;\n }\n }\n function getStatus(side) {\n return side === 'start' ? startStatus.value : endStatus.value;\n }\n let previousScrollSize = 0;\n function handleIntersect(side, _isIntersecting) {\n isIntersecting.value = _isIntersecting;\n if (isIntersecting.value) {\n intersecting(side);\n }\n }\n function intersecting(side) {\n if (props.mode !== 'manual' && !isIntersecting.value) return;\n const status = getStatus(side);\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return;\n previousScrollSize = getScrollSize();\n setStatus(side, 'loading');\n function done(status) {\n setStatus(side, status);\n nextTick(() => {\n if (status === 'empty' || status === 'error') return;\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side);\n });\n });\n });\n });\n }\n });\n }\n emit('load', {\n side,\n done\n });\n }\n const {\n t\n } = useLocale();\n function renderSide(side, status) {\n if (props.side !== side && props.side !== 'both') return;\n const onClick = () => intersecting(side);\n const slotProps = {\n side,\n props: {\n onClick,\n color: props.color\n }\n };\n if (status === 'error') return slots.error?.(slotProps);\n if (status === 'empty') return slots.empty?.(slotProps) ?? _createVNode(\"div\", null, [t(props.emptyText)]);\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n return slots['load-more']?.(slotProps) ?? _createVNode(VBtn, {\n \"variant\": \"outlined\",\n \"color\": props.color,\n \"onClick\": onClick\n }, {\n default: () => [t(props.loadMoreText)]\n });\n }\n return slots.loading?.(slotProps) ?? _createVNode(VProgressCircular, {\n \"indeterminate\": true,\n \"color\": props.color\n }, null);\n }\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => {\n const Tag = props.tag;\n const hasStartIntersect = props.side === 'start' || props.side === 'both';\n const hasEndIntersect = props.side === 'end' || props.side === 'both';\n const intersectMode = props.mode === 'intersect';\n return _createVNode(Tag, {\n \"ref\": rootEl,\n \"class\": ['v-infinite-scroll', `v-infinite-scroll--${props.direction}`, {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect\n }],\n \"style\": dimensionStyles.value\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('start', startStatus.value)]), hasStartIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"start\",\n \"side\": \"start\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), slots.default?.(), hasEndIntersect && intersectMode && _createVNode(VInfiniteScrollIntersect, {\n \"key\": \"end\",\n \"side\": \"end\",\n \"onIntersect\": handleIntersect,\n \"rootMargin\": margin.value\n }, null), _createVNode(\"div\", {\n \"class\": \"v-infinite-scroll__side\"\n }, [renderSide('end', endStatus.value)])]\n });\n });\n }\n});\n//# sourceMappingURL=VInfiniteScroll.mjs.map","// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType,\n required: true,\n },\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n  \n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref()\n const startStatus = shallowRef('ok')\n const endStatus = shallowRef('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = shallowRef(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || ['empty', 'loading'].includes(status)) return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ??
    { t(props.emptyText) }
    \n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n \n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n \n { t(props.loadMoreText) }\n \n )\n }\n\n return slots.loading?.(slotProps) ?? (\n \n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n \n
    \n { renderSide('start', startStatus.value) }\n
    \n\n { hasStartIntersect && intersectMode && (\n \n )}\n\n { slots.default?.() }\n\n { hasEndIntersect && intersectMode && (\n \n )}\n\n
    \n { renderSide('end', endStatus.value) }\n
    \n \n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType\n","export { VInput } from \"./VInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VInput } from './VInput'\n","export { VItemGroup } from \"./VItemGroup.mjs\";\nexport { VItem } from \"./VItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VItemGroup } from './VItemGroup'\nexport { VItem } from './VItem'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VItemGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VItemGroup');\nexport const VItemGroup = genericComponent()({\n name: 'VItemGroup',\n props: makeVItemGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VItemGroupSymbol);\n return () => _createVNode(props.tag, {\n \"class\": ['v-item-group', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n }\n});\n//# sourceMappingURL=VItemGroup.mjs.map","// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VItemGroup')\n\ntype VItemGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VItemGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VItemGroupSlots,\n) => GenericProps>()({\n name: 'VItemGroup',\n\n props: makeVItemGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n \n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n \n )\n },\n})\n\nexport type VItemGroup = InstanceType\n","// Composables\nimport { VItemGroupSymbol } from \"./VItemGroup.mjs\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\";\nexport const VItem = genericComponent()({\n name: 'VItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n select,\n toggle,\n selectedClass,\n value,\n disabled\n } = useGroupItem(props, VItemGroupSymbol);\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value\n });\n }\n});\n//# sourceMappingURL=VItem.mjs.map","// Composables\nimport { VItemGroupSymbol } from './VItemGroup'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\ntype VItemSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean | undefined\n }\n}\n\nexport const VItem = genericComponent()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType\n","// Styles\nimport \"./VKbd.css\";\n\n// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VKbd = createSimpleFunctional('v-kbd');\n//# sourceMappingURL=index.mjs.map","// Styles\nimport './VKbd.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VKbd = createSimpleFunctional('v-kbd')\n\nexport type VKbd = InstanceType\n","export { VLayout } from \"./VLayout.mjs\";\nexport { VLayoutItem } from \"./VLayoutItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLayout } from './VLayout'\nexport { VLayoutItem } from './VLayoutItem'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayout.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { createLayout, makeLayoutProps } from \"../../composables/layout.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLayoutProps = propsFactory({\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLayoutProps()\n}, 'VLayout');\nexport const VLayout = genericComponent()({\n name: 'VLayout',\n props: makeVLayoutProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRef\n } = createLayout(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createVNode(\"div\", {\n \"ref\": layoutRef,\n \"class\": [layoutClasses.value, props.class],\n \"style\": [dimensionStyles.value, layoutStyles.value, props.style]\n }, [slots.default?.()]));\n return {\n getLayoutItem,\n items\n };\n }\n});\n//# sourceMappingURL=VLayout.mjs.map","// Styles\nimport './VLayout.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLayoutProps = propsFactory({\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLayoutProps(),\n}, 'VLayout')\n\nexport const VLayout = genericComponent()({\n name: 'VLayout',\n\n props: makeVLayoutProps(),\n\n setup (props, { slots }) {\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n\nexport type VLayout = InstanceType\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLayoutItem.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVLayoutItemProps = propsFactory({\n position: {\n type: String,\n required: true\n },\n size: {\n type: [Number, String],\n default: 300\n },\n modelValue: Boolean,\n ...makeComponentProps(),\n ...makeLayoutItemProps()\n}, 'VLayoutItem');\nexport const VLayoutItem = genericComponent()({\n name: 'VLayoutItem',\n props: makeVLayoutItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute')\n });\n return () => _createVNode(\"div\", {\n \"class\": ['v-layout-item', props.class],\n \"style\": [layoutItemStyles.value, props.style]\n }, [slots.default?.()]);\n }\n});\n//# sourceMappingURL=VLayoutItem.mjs.map","// Styles\nimport './VLayoutItem.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVLayoutItemProps = propsFactory({\n position: {\n type: String as PropType<'top' | 'right' | 'bottom' | 'left'>,\n required: true,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n modelValue: Boolean,\n\n ...makeComponentProps(),\n ...makeLayoutItemProps(),\n}, 'VLayoutItem')\n\nexport const VLayoutItem = genericComponent()({\n name: 'VLayoutItem',\n\n props: makeVLayoutItemProps(),\n\n setup (props, { slots }) {\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute'),\n })\n\n return () => (\n \n { slots.default?.() }\n \n )\n },\n})\n\nexport type VLayoutItem = InstanceType\n","export { VLazy } from \"./VLazy.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLazy } from './VLazy'\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.mjs\"; // Directives\nimport intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVLazyProps = propsFactory({\n modelValue: Boolean,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: 'fade-transition'\n })\n}, 'VLazy');\nexport const VLazy = genericComponent()({\n name: 'VLazy',\n directives: {\n intersect\n },\n props: makeVLazyProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const isActive = useProxiedModel(props, 'modelValue');\n function onIntersect(isIntersecting) {\n if (isActive.value) return;\n isActive.value = isIntersecting;\n }\n useRender(() => _withDirectives(_createVNode(props.tag, {\n \"class\": ['v-lazy', props.class],\n \"style\": [dimensionStyles.value, props.style]\n }, {\n default: () => [isActive.value && _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [slots.default?.()]\n })]\n }), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect,\n options: props.options\n }, null]]));\n return {};\n }\n});\n//# sourceMappingURL=VLazy.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVLazyProps = propsFactory({\n modelValue: Boolean,\n options: {\n type: Object as PropType,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'fade-transition' }),\n}, 'VLazy')\n\nexport const VLazy = genericComponent()({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: makeVLazyProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n\n function onIntersect (isIntersecting: boolean) {\n if (isActive.value) return\n\n isActive.value = isIntersecting\n }\n\n useRender(() => (\n \n { isActive.value && (\n \n { slots.default?.() }\n \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VLazy = InstanceType\n","export { VLocaleProvider } from \"./VLocaleProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VLocaleProvider } from './VLocaleProvider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VLocaleProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVLocaleProviderProps = propsFactory({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined\n },\n ...makeComponentProps()\n}, 'VLocaleProvider');\nexport const VLocaleProvider = genericComponent()({\n name: 'VLocaleProvider',\n props: makeVLocaleProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n rtlClasses\n } = provideLocale(props);\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-locale-provider', rtlClasses.value, props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLocaleProvider.mjs.map","// Styles\nimport './VLocaleProvider.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLocaleProviderProps = propsFactory({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeComponentProps(),\n}, 'VLocaleProvider')\n\nexport const VLocaleProvider = genericComponent()({\n name: 'VLocaleProvider',\n\n props: makeVLocaleProviderProps(),\n\n setup (props, { slots }) {\n const { rtlClasses } = provideLocale(props)\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VLocaleProvider = InstanceType\n","export { VMain } from \"./VMain.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMain } from './VMain'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMain.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { useLayout } from \"../../composables/layout.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({\n tag: 'main'\n })\n}, 'VMain');\nexport const VMain = genericComponent()({\n name: 'VMain',\n props: makeVMainProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n mainStyles\n } = useLayout();\n const {\n ssrBootStyles\n } = useSsrBoot();\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-main', {\n 'v-main--scrollable': props.scrollable\n }, props.class],\n \"style\": [mainStyles.value, ssrBootStyles.value, dimensionStyles.value, props.style]\n }, {\n default: () => [props.scrollable ? _createVNode(\"div\", {\n \"class\": \"v-main__scroller\"\n }, [slots.default?.()]) : slots.default?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMain.mjs.map","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVMainProps = propsFactory({\n scrollable: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps({ tag: 'main' }),\n}, 'VMain')\n\nexport const VMain = genericComponent()({\n name: 'VMain',\n\n props: makeVMainProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n useRender(() => (\n \n { props.scrollable\n ? (\n
    \n { slots.default?.() }\n
    \n )\n : slots.default?.()\n }\n \n ))\n\n return {}\n },\n})\n\nexport type VMain = InstanceType\n","export { VMessages } from \"./VMessages.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VMessages } from './VMessages'\n","export { VNavigationDrawer } from \"./VNavigationDrawer.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VNavigationDrawer } from './VNavigationDrawer'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VNavigationDrawer.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useSticky } from \"./sticky.mjs\";\nimport { useTouch } from \"./touch.mjs\";\nimport { useRtl } from \"../../composables/index.mjs\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.mjs\";\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDelayProps, useDelay } from \"../../composables/delay.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useRouter } from \"../../composables/router.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\"; // Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, Transition, watch } from 'vue';\nimport { genericComponent, propsFactory, toPhysical, useRender } from \"../../util/index.mjs\"; // Types\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n permanent: Boolean,\n rail: {\n type: Boolean,\n default: null\n },\n railWidth: {\n type: [Number, String],\n default: 56\n },\n scrim: {\n type: [Boolean, String],\n default: true\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256\n },\n location: {\n type: String,\n default: 'start',\n validator: value => locations.includes(value)\n },\n sticky: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps()\n}, 'VNavigationDrawer');\nexport const VNavigationDrawer = genericComponent()({\n name: 'VNavigationDrawer',\n props: makeVNavigationDrawerProps(),\n emits: {\n 'update:modelValue': val => true,\n 'update:rail': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n roundedClasses\n } = useRounded(props);\n const router = useRouter();\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const {\n scopeId\n } = useScopeId();\n const rootEl = ref();\n const isHovering = shallowRef(false);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n isHovering.value = value;\n });\n const width = computed(() => {\n return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);\n });\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value);\n });\n const isPersistent = computed(() => props.persistent);\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));\n const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val));\n });\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && nextTick(() => isActive.value = !val));\n });\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));\n });\n watch(() => props.permanent, val => {\n if (val) isActive.value = true;\n });\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value;\n }\n const {\n isDragging,\n dragProgress\n } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location\n });\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;\n return isDragging.value ? size * dragProgress.value : size;\n });\n const elementSize = computed(() => ['top', 'bottom'].includes(props.location) ? 0 : width.value);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || isSticky.value && typeof isStuck.value !== 'string')\n });\n const {\n isStuck,\n stickyStyles\n } = useSticky({\n rootEl,\n isSticky,\n layoutItemStyles\n });\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n }));\n const scrimStyles = computed(() => ({\n ...(isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none'\n } : undefined),\n ...layoutItemScrimStyles.value\n }));\n provideDefaults({\n VList: {\n bgColor: 'transparent'\n }\n });\n useRender(() => {\n const hasImage = slots.image || props.image;\n return _createVNode(_Fragment, null, [_createVNode(props.tag, _mergeProps({\n \"ref\": rootEl,\n \"onMouseenter\": runOpenDelay,\n \"onMouseleave\": runCloseDelay,\n \"class\": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--persistent': isPersistent.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style, ['top', 'bottom'].includes(location.value) ? {\n height: 'auto'\n } : {}]\n }, scopeId, attrs), {\n default: () => [hasImage && _createVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-navigation-drawer__img\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"alt\": \"\",\n \"cover\": true,\n \"height\": \"inherit\",\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image\n }\n }\n }, slots.image)]), slots.prepend && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__prepend\"\n }, [slots.prepend?.()]), _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__content\"\n }, [slots.default?.()]), slots.append && _createVNode(\"div\", {\n \"class\": \"v-navigation-drawer__append\"\n }, [slots.append?.()])]\n }), _createVNode(Transition, {\n \"name\": \"fade-transition\"\n }, {\n default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createVNode(\"div\", _mergeProps({\n \"class\": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],\n \"style\": [scrimStyles.value, scrimColor.backgroundColorStyles.value],\n \"onClick\": () => {\n if (isPersistent.value) return;\n isActive.value = false;\n }\n }, scopeId), null)]\n })]);\n });\n return {\n isStuck\n };\n }\n});\n//# sourceMappingURL=VNavigationDrawer.mjs.map","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n persistent: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDelayProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref()\n const isHovering = shallowRef(false)\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n isHovering.value = value\n })\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isPersistent = computed(() => props.persistent)\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n if (props.modelValue == null && !isTemporary.value) {\n isActive.value = props.permanent || !mobile.value\n }\n\n const { isDragging, dragProgress } = useTouch({\n el: rootEl,\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const elementSize = computed(() => ['top', 'bottom'].includes(props.location) ? 0 : width.value)\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n \n { hasImage && (\n
    \n { !slots.image ? (\n \n ) : (\n \n )}\n
    \n )}\n\n { slots.prepend && (\n
    \n { slots.prepend?.() }\n
    \n )}\n\n
    \n { slots.default?.() }\n
    \n\n { slots.append && (\n
    \n { slots.append?.() }\n
    \n )}\n \n\n \n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n {\n if (isPersistent.value) return\n isActive.value = false\n }}\n { ...scopeId }\n />\n )}\n \n \n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType\n","// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';\nimport { convertToUnit } from \"../../util/index.mjs\"; // Types\nexport function useSticky(_ref) {\n let {\n rootEl,\n isSticky,\n layoutItemStyles\n } = _ref;\n const isStuck = shallowRef(false);\n const stuckPosition = shallowRef(0);\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;\n return [isSticky.value ? {\n top: 'auto',\n bottom: 'auto',\n height: undefined\n } : undefined, isStuck.value ? {\n [side]: convertToUnit(stuckPosition.value)\n } : {\n top: layoutItemStyles.value.top\n }];\n });\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, {\n passive: true\n });\n } else {\n window.removeEventListener('scroll', onScroll);\n }\n }, {\n immediate: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', onScroll);\n });\n let lastScrollTop = 0;\n function onScroll() {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down';\n const rect = rootEl.value.getBoundingClientRect();\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0);\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);\n const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value).getPropertyValue('--v-body-scroll-y')) || 0;\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top';\n stuckPosition.value = layoutTop;\n } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll;\n isStuck.value = true;\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0;\n isStuck.value = 'bottom';\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top;\n isStuck.value = 'top';\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop;\n isStuck.value = 'top';\n }\n }\n lastScrollTop = window.scrollY;\n }\n return {\n isStuck,\n stickyStyles\n };\n}\n//# sourceMappingURL=sticky.mjs.map","// Utilities\nimport { computed, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref, StyleValue } from 'vue'\n\ninterface StickyProps {\n rootEl: Ref\n isSticky: Ref\n layoutItemStyles: Ref\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = shallowRef(false)\n const stuckPosition = shallowRef(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n const bodyScroll = parseFloat(getComputedStyle(rootEl.value!).getPropertyValue('--v-body-scroll-y')) || 0\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top - bodyScroll\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n if (!bodyScroll) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n } else if (isStuck.value !== 'top') {\n stuckPosition.value = -top + bodyScroll + layoutTop\n isStuck.value = 'top'\n }\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { useVelocity } from \"../../composables/touch.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue';\n\n// Types\n\nexport function useTouch(_ref) {\n let {\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position\n } = _ref;\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, {\n passive: true\n });\n window.addEventListener('touchmove', onTouchmove, {\n passive: false\n });\n window.addEventListener('touchend', onTouchend, {\n passive: true\n });\n });\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart);\n window.removeEventListener('touchmove', onTouchmove);\n window.removeEventListener('touchend', onTouchend);\n });\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value));\n const {\n addMovement,\n endTouch,\n getVelocity\n } = useVelocity();\n let maybeDragging = false;\n const isDragging = shallowRef(false);\n const dragProgress = shallowRef(0);\n const offset = shallowRef(0);\n let start;\n function getOffset(pos, active) {\n return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);\n }\n function getProgress(pos) {\n let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();\n return limit ? Math.max(0, Math.min(1, progress)) : progress;\n }\n function onTouchstart(e) {\n if (touchless.value) return;\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n const touchZone = 25;\n const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();\n const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());\n if (inTouchZone || inElement || isActive.value && isTemporary.value) {\n start = [touchX, touchY];\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value);\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);\n maybeDragging = offset.value > -20 && offset.value < 80;\n endTouch(e);\n addMovement(e);\n }\n }\n function onTouchmove(e) {\n const touchX = e.changedTouches[0].clientX;\n const touchY = e.changedTouches[0].clientY;\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false;\n return;\n }\n const dx = Math.abs(touchX - start[0]);\n const dy = Math.abs(touchY - start[1]);\n const thresholdMet = isHorizontal.value ? dx > dy && dx > 3 : dy > dx && dy > 3;\n if (thresholdMet) {\n isDragging.value = true;\n maybeDragging = false;\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false;\n }\n }\n if (!isDragging.value) return;\n e.preventDefault();\n addMovement(e);\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false);\n dragProgress.value = Math.max(0, Math.min(1, progress));\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true);\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false);\n }\n }\n function onTouchend(e) {\n maybeDragging = false;\n if (!isDragging.value) return;\n addMovement(e);\n isDragging.value = false;\n const velocity = getVelocity(e.changedTouches[0].identifier);\n const vx = Math.abs(velocity.x);\n const vy = Math.abs(velocity.y);\n const thresholdMet = isHorizontal.value ? vx > vy && vx > 400 : vy > vx && vy > 3;\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n }[position.value] || oops());\n } else {\n isActive.value = dragProgress.value > 0.5;\n }\n }\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),\n transition: 'none'\n } : undefined;\n });\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null;\n const transition = el.value?.style.transition ?? null;\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none');\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null);\n });\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform);\n el.value?.style.setProperty('transition', transition);\n });\n });\n return {\n isDragging,\n dragProgress,\n dragStyles\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, onScopeDispose, shallowRef, watchEffect } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({\n el,\n isActive,\n isTemporary,\n width,\n touchless,\n position,\n}: {\n el: Ref\n isActive: Ref\n isTemporary: Ref\n width: Ref\n touchless: Ref\n position: Ref<'left' | 'right' | 'top' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => ['left', 'right'].includes(position.value))\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = shallowRef(false)\n const dragProgress = shallowRef(0)\n const offset = shallowRef(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'top' ? pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'top' ? (pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'top' ? touchY < touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'top' ? touchY < width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n maybeDragging = offset.value > -20 && offset.value < 80\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n useToggleScope(isDragging, () => {\n const transform = el.value?.style.transform ?? null\n const transition = el.value?.style.transition ?? null\n\n watchEffect(() => {\n el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none')\n el.value?.style.setProperty('transition', dragStyles.value?.transition || null)\n })\n\n onScopeDispose(() => {\n el.value?.style.setProperty('transform', transform)\n el.value?.style.setProperty('transition', transition)\n })\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","// Utilities\nimport { CircularBuffer } from \"../util/index.mjs\";\nconst HORIZON = 100; // ms\nconst HISTORY = 20; // number of samples to keep\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity(work) {\n const sqrt2 = 1.41421356237;\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2;\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity(samples) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0;\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0;\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t);\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0;\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue;\n }\n const vprev = kineticEnergyToVelocity(work); // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t); // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr);\n if (i === samples.length - 1) {\n work *= 0.5;\n }\n }\n return kineticEnergyToVelocity(work) * 1000;\n}\nexport function useVelocity() {\n const touches = {};\n function addMovement(e) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY));\n samples.push([e.timeStamp, touch]);\n });\n }\n function endTouch(e) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier];\n });\n }\n function getVelocity(id) {\n const samples = touches[id]?.values().reverse();\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`);\n }\n const newest = samples[0];\n const x = [];\n const y = [];\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break;\n x.push({\n t: val[0],\n d: val[1].clientX\n });\n y.push({\n t: val[0],\n d: val[1].clientY\n });\n }\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction() {\n const {\n x,\n y\n } = this;\n const [absX, absY] = [Math.abs(x), Math.abs(y)];\n return absX > absY && x >= 0 ? 'right' : absX > absY && x <= 0 ? 'left' : absY > absX && y >= 0 ? 'down' : absY > absX && y <= 0 ? 'up' : oops();\n }\n };\n }\n return {\n addMovement,\n endTouch,\n getVelocity\n };\n}\nfunction oops() {\n throw new Error();\n}\n//# sourceMappingURL=touch.mjs.map","// Utilities\nimport { CircularBuffer } from '@/util'\n\nconst HORIZON = 100 // ms\nconst HISTORY = 20 // number of samples to keep\n\nexport interface Sample {\n t: number\n d: number\n}\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity (work: number) {\n const sqrt2 = 1.41421356237\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity (samples: Sample[]) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t)\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue\n }\n const vprev = kineticEnergyToVelocity(work) // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t) // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr)\n if (i === samples.length - 1) {\n work *= 0.5\n }\n }\n return kineticEnergyToVelocity(work) * 1000\n}\n\nexport function useVelocity () {\n const touches: Record | undefined> = {}\n\n function addMovement (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY))\n samples.push([e.timeStamp, touch])\n })\n }\n\n function endTouch (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier]\n })\n }\n\n function getVelocity (id: number) {\n const samples = touches[id]?.values().reverse()\n\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`)\n }\n\n const newest = samples[0]\n const x: Sample[] = []\n const y: Sample[] = []\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break\n\n x.push({ t: val[0], d: val[1].clientX })\n y.push({ t: val[0], d: val[1].clientY })\n }\n\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction () {\n const { x, y } = this\n const [absX, absY] = [Math.abs(x), Math.abs(y)]\n\n return absX > absY && x >= 0 ? 'right'\n : absX > absY && x <= 0 ? 'left'\n : absY > absX && y >= 0 ? 'down'\n : absY > absX && y <= 0 ? 'up'\n : oops()\n },\n }\n }\n\n return { addMovement, endTouch, getVelocity }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","export { VNoSsr } from \"./VNoSsr.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VNoSsr } from './VNoSsr'\n","// Composables\nimport { useHydration } from \"../../composables/hydration.mjs\"; // Utilities\nimport { defineComponent } from \"../../util/index.mjs\";\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n const show = useHydration();\n return () => show.value && slots.default?.();\n }\n});\n//# sourceMappingURL=VNoSsr.mjs.map","// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = useHydration()\n\n return () => show.value && slots.default?.()\n },\n})\n\nexport type VNoSsr = InstanceType\n","export { VOtpInput } from \"./VOtpInput.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VOtpInput } from './VOtpInput'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VOtpInput.css\";\n\n// Components\nimport { makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { VOverlay } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/VProgressCircular.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp'\n },\n length: {\n type: [Number, String],\n default: 6\n },\n modelValue: {\n type: [Number, String],\n default: undefined\n },\n placeholder: String,\n type: {\n type: String,\n default: 'number'\n },\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined'\n }), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'rounded', 'style', 'theme', 'variant'])\n}, 'VOtpInput');\nexport const VOtpInput = genericComponent()({\n name: 'VOtpInput',\n props: makeVOtpInputProps(),\n emits: {\n finish: val => true,\n 'update:focused': val => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));\n const {\n t\n } = useLocale();\n const length = computed(() => Number(props.length));\n const fields = computed(() => Array(length.value).fill(0));\n const focusIndex = ref(-1);\n const contentRef = ref();\n const inputRef = ref([]);\n const current = computed(() => inputRef.value[focusIndex.value]);\n function onInput() {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = '';\n return;\n }\n const array = model.value.slice();\n const value = current.value.value;\n array[focusIndex.value] = value;\n let target = null;\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1;\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next';\n }\n model.value = array;\n if (target) focusChild(contentRef.value, target);\n }\n function onKeydown(e) {\n const array = model.value.slice();\n const index = focusIndex.value;\n let target = null;\n if (!['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].includes(e.key)) return;\n e.preventDefault();\n if (e.key === 'ArrowLeft') {\n target = 'prev';\n } else if (e.key === 'ArrowRight') {\n target = 'next';\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = '';\n model.value = array;\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev';\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select();\n });\n }\n }\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value, target);\n }\n });\n }\n function onPaste(index, e) {\n e.preventDefault();\n e.stopPropagation();\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';\n if (isValidNumber(clipboardText)) return;\n model.value = clipboardText.split('');\n inputRef.value?.[index].blur();\n }\n function reset() {\n model.value = [];\n }\n function onFocus(e, index) {\n focus();\n focusIndex.value = index;\n }\n function onBlur() {\n blur();\n focusIndex.value = -1;\n }\n function isValidNumber(value) {\n return props.type === 'number' && /[^0-9]/g.test(value);\n }\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant)\n }\n }, {\n scoped: true\n });\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''));\n }, {\n deep: true\n });\n watch(focusIndex, val => {\n if (val < 0) return;\n nextTick(() => {\n inputRef.value[val]?.select();\n });\n });\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-otp-input', {\n 'v-otp-input--divided': !!props.divider\n }, props.class],\n \"style\": [props.style]\n }, rootAttrs), [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-otp-input__content\",\n \"style\": [dimensionStyles.value]\n }, [fields.value.map((_, i) => _createVNode(_Fragment, null, [props.divider && i !== 0 && _createVNode(\"span\", {\n \"class\": \"v-otp-input__divider\"\n }, [props.divider]), _createVNode(VField, {\n \"focused\": isFocused.value && props.focusAll || focusIndex.value === i,\n \"key\": i\n }, {\n ...slots,\n loader: undefined,\n default: () => {\n return _createVNode(\"input\", {\n \"ref\": val => inputRef.value[i] = val,\n \"aria-label\": t(props.label, i + 1),\n \"autofocus\": i === 0 && props.autofocus,\n \"autocomplete\": \"one-time-code\",\n \"class\": ['v-otp-input__field'],\n \"disabled\": props.disabled,\n \"inputmode\": props.type === 'number' ? 'numeric' : 'text',\n \"min\": props.type === 'number' ? 0 : undefined,\n \"maxlength\": \"1\",\n \"placeholder\": props.placeholder,\n \"type\": props.type === 'number' ? 'text' : props.type,\n \"value\": model.value[i],\n \"onInput\": onInput,\n \"onFocus\": e => onFocus(e, i),\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"onPaste\": event => onPaste(i, event)\n }, null);\n }\n })])), _createVNode(\"input\", _mergeProps({\n \"class\": \"v-otp-input-input\",\n \"type\": \"hidden\"\n }, inputAttrs, {\n \"value\": model.value.join('')\n }), null), _createVNode(VOverlay, {\n \"contained\": true,\n \"content-class\": \"v-otp-input__loader\",\n \"model-value\": !!props.loading,\n \"persistent\": true\n }, {\n default: () => [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"size\": \"24\",\n \"width\": \"2\"\n }, null)]\n }), slots.default?.()])]);\n });\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur());\n },\n focus: () => {\n inputRef.value?.[0].focus();\n },\n reset,\n isFocused\n };\n }\n});\n//# sourceMappingURL=VOtpInput.mjs.map","// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref()\n const inputRef = ref([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? ''\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n \n \n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n { props.divider }\n )}\n\n \n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n \n \n ))}\n\n \n\n \n { slots.loader?.() ?? (\n \n )}\n \n\n { slots.default?.() }\n \n \n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType\n","export { VParallax } from \"./VParallax.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VParallax } from './VParallax'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VParallax.css\";\n\n// Components\nimport { VImg } from \"../VImg/index.mjs\"; // Composables\nimport { useDisplay } from \"../../composables/index.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\"; // Utilities\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nfunction floor(val) {\n return Math.floor(Math.abs(val)) * Math.sign(val);\n}\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5\n },\n ...makeComponentProps()\n}, 'VParallax');\nexport const VParallax = genericComponent()({\n name: 'VParallax',\n props: makeVParallaxProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const {\n height: displayHeight\n } = useDisplay();\n const root = ref();\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el;\n });\n let scrollParent;\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value);\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent;\n scrollParent.addEventListener('scroll', onScroll, {\n passive: true\n });\n onScroll();\n } else {\n scrollParent.removeEventListener('scroll', onScroll);\n }\n });\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll);\n });\n watch(displayHeight, onScroll);\n watch(() => contentRect.value?.height, onScroll);\n const scale = computed(() => {\n return 1 - clamp(+props.scale);\n });\n let frame = -1;\n function onScroll() {\n if (!isIntersecting.value) return;\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n const el = (root.value?.$el).querySelector('.v-img__img');\n if (!el) return;\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;\n const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;\n const height = contentRect.value.height;\n const center = top + (height - scrollHeight) / 2;\n const translate = floor((scrollPos - center) * scale.value);\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height);\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`);\n });\n }\n useRender(() => _createVNode(VImg, {\n \"class\": ['v-parallax', {\n 'v-parallax--active': isIntersecting.value\n }, props.class],\n \"style\": props.style,\n \"ref\": root,\n \"cover\": true,\n \"onLoadstart\": onScroll,\n \"onLoad\": onScroll\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VParallax.mjs.map","// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue'\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5,\n },\n\n ...makeComponentProps(),\n}, 'VParallax')\n\nexport const VParallax = genericComponent()({\n name: 'VParallax',\n\n props: makeVParallaxProps(),\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n const { height: displayHeight } = useDisplay()\n\n const root = ref()\n\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el\n })\n\n let scrollParent: Element | Document\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n watch(displayHeight, onScroll)\n watch(() => contentRect.value?.height, onScroll)\n\n const scale = computed(() => {\n return 1 - clamp(+props.scale)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop\n const top = intersectionRef.value!.getBoundingClientRect().top + scrollPos\n const height = contentRect.value!.height\n\n const center = top + (height - scrollHeight) / 2\n const translate = floor((scrollPos - center) * scale.value)\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height)\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`)\n })\n }\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType\n","export { VRadio } from \"./VRadio.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRadio } from './VRadio'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.mjs.map","// Components\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\n\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn',\n }),\n}, 'VRadio')\n\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n\n props: makeVRadioProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType\n","export { VRadioGroup } from \"./VRadioGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRadioGroup } from './VRadioGroup'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { VSelectionControl } from \"../VSelectionControl/index.mjs\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.mjs\"; // Composables\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadioGroup.mjs.map","// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControl } from '@/components/VSelectionControl'\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { GenericProps } from '@/util'\n\nexport type VRadioGroupSlots = Omit & {\n default: never\n label: {\n label: string | undefined\n props: Record\n }\n}\n\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n}, 'VRadioGroup')\n\nexport const VRadioGroup = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VRadioGroupSlots,\n) => GenericProps>()({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: makeVRadioGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const controlProps = VSelectionControl.filterProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n \n { label }\n \n )}\n\n \n \n ),\n }}\n
    \n )\n })\n\n return {}\n },\n})\n\nexport type VRadioGroup = InstanceType\n","export { VSelectionControl } from \"./VSelectionControl.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelectionControl } from './VSelectionControl'\n","export { VRangeSlider } from \"./VRangeSlider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRangeSlider } from './VRangeSlider'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"../VSlider/VSlider.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VLabel } from \"../VLabel/index.mjs\";\nimport { getOffset, makeSliderProps, useSlider, useSteps } from \"../VSlider/slider.mjs\";\nimport { VSliderThumb } from \"../VSlider/VSliderThumb.mjs\";\nimport { VSliderTrack } from \"../VSlider/VSliderTrack.mjs\"; // Composables\nimport { makeFocusProps, useFocus } from \"../../composables/focus.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRangeSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n strict: Boolean,\n modelValue: {\n type: Array,\n default: () => [0, 0]\n }\n}, 'VRangeSlider');\nexport const VRangeSlider = genericComponent()({\n name: 'VRangeSlider',\n props: makeVRangeSliderProps(),\n emits: {\n 'update:focused': value => true,\n 'update:modelValue': value => true,\n end: value => true,\n start: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const startThumbRef = ref();\n const stopThumbRef = ref();\n const inputRef = ref();\n const {\n rtlClasses\n } = useRtl();\n function getActiveThumb(e) {\n if (!startThumbRef.value || !stopThumbRef.value) return;\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction);\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction);\n const a = Math.abs(startOffset);\n const b = Math.abs(stopOffset);\n return a < b || a === b && startOffset < 0 ? startThumbRef.value.$el : stopThumbRef.value.$el;\n }\n const steps = useSteps(props);\n const model = useProxiedModel(props, 'modelValue', undefined, arr => {\n if (!arr?.length) return [0, 0];\n return arr.map(value => steps.roundValue(value));\n });\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n trackContainerRef,\n readonly\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value);\n },\n onSliderEnd: _ref2 => {\n let {\n value\n } = _ref2;\n const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];\n if (!props.strict && newValue[0] < newValue[1]) {\n model.value = newValue;\n }\n emit('end', model.value);\n },\n onSliderMove: _ref3 => {\n let {\n value\n } = _ref3;\n const [start, stop] = model.value;\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el;\n activeThumbRef.value?.focus();\n }\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(value, stop), stop];\n } else {\n model.value = [start, Math.max(start, value)];\n }\n },\n getActiveThumb\n });\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const trackStart = computed(() => position(model.value[0]));\n const trackStop = computed(() => position(model.value[1]));\n useRender(() => {\n const inputProps = VInput.filterProps(props);\n const hasPrepend = !!(props.label || slots.label || slots.prepend);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-slider', 'v-range-slider', {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled\n }, rtlClasses.value, props.class],\n \"style\": props.style,\n \"ref\": inputRef\n }, inputProps, {\n \"focused\": isFocused.value\n }), {\n ...slots,\n prepend: hasPrepend ? slotProps => _createVNode(_Fragment, null, [slots.label?.(slotProps) ?? (props.label ? _createVNode(VLabel, {\n \"class\": \"v-slider__label\",\n \"text\": props.label\n }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,\n default: _ref4 => {\n let {\n id,\n messagesId\n } = _ref4;\n return _createVNode(\"div\", {\n \"class\": \"v-slider__container\",\n \"onMousedown\": !readonly.value ? onSliderMousedown : undefined,\n \"onTouchstartPassive\": !readonly.value ? onSliderTouchstart : undefined\n }, [_createVNode(\"input\", {\n \"id\": `${id.value}_start`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[0]\n }, null), _createVNode(\"input\", {\n \"id\": `${id.value}_stop`,\n \"name\": props.name || id.value,\n \"disabled\": !!props.disabled,\n \"readonly\": !!props.readonly,\n \"tabindex\": \"-1\",\n \"value\": model.value[1]\n }, null), _createVNode(VSliderTrack, {\n \"ref\": trackContainerRef,\n \"start\": trackStart.value,\n \"stop\": trackStop.value\n }, {\n 'tick-label': slots['tick-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": startThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === startThumbRef.value?.$el,\n \"modelValue\": model.value[0],\n \"onUpdate:modelValue\": v => model.value = [v, model.value[1]],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = startThumbRef.value?.$el;\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (model.value[0] === model.value[1] && model.value[1] === min.value && e.relatedTarget !== stopThumbRef.value?.$el) {\n startThumbRef.value?.$el.blur();\n stopThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": min.value,\n \"max\": model.value[1],\n \"position\": trackStart.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n }), _createVNode(VSliderThumb, {\n \"ref\": stopThumbRef,\n \"aria-describedby\": messagesId.value,\n \"focused\": isFocused && activeThumbRef.value === stopThumbRef.value?.$el,\n \"modelValue\": model.value[1],\n \"onUpdate:modelValue\": v => model.value = [model.value[0], v],\n \"onFocus\": e => {\n focus();\n activeThumbRef.value = stopThumbRef.value?.$el;\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (model.value[0] === model.value[1] && model.value[0] === max.value && e.relatedTarget !== startThumbRef.value?.$el) {\n stopThumbRef.value?.$el.blur();\n startThumbRef.value?.$el.focus();\n }\n },\n \"onBlur\": () => {\n blur();\n activeThumbRef.value = undefined;\n },\n \"min\": model.value[0],\n \"max\": max.value,\n \"position\": trackStop.value,\n \"ripple\": props.ripple\n }, {\n 'thumb-label': slots['thumb-label']\n })]);\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRangeSlider.mjs.map","// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { getOffset, makeSliderProps, useSlider, useSteps } from '@/components/VSlider/slider'\nimport { VSliderThumb } from '@/components/VSlider/VSliderThumb'\nimport { VSliderTrack } from '@/components/VSlider/VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport type { VSliderSlots } from '../VSlider/VSlider'\n\nexport const makeVRangeSliderProps = propsFactory({\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType,\n default: () => ([0, 0]),\n },\n}, 'VRangeSlider')\n\nexport const VRangeSlider = genericComponent()({\n name: 'VRangeSlider',\n\n props: makeVRangeSliderProps(),\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n end: (value: [number, number]) => true,\n start: (value: [number, number]) => true,\n },\n\n setup (props, { slots, emit }) {\n const startThumbRef = ref()\n const stopThumbRef = ref()\n const inputRef = ref()\n const { rtlClasses } = useRtl()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const steps = useSteps(props)\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr?.length) return [0, 0]\n\n return arr.map(value => steps.roundValue(value))\n },\n ) as WritableComputedRef<[number, number]> & { readonly externalValue: number[] }\n\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n trackContainerRef,\n readonly,\n } = useSlider({\n props,\n steps,\n onSliderStart: () => {\n emit('start', model.value)\n },\n onSliderEnd: ({ value }) => {\n const newValue: [number, number] = activeThumbRef.value === startThumbRef.value?.$el\n ? [value, model.value[1]]\n : [model.value[0], value]\n\n if (!props.strict && newValue[0] < newValue[1]) {\n model.value = newValue\n }\n\n emit('end', model.value)\n },\n onSliderMove: ({ value }) => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = value > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(value, stop), stop]\n } else {\n model.value = [start, Math.max(start, value)]\n }\n },\n getActiveThumb,\n })\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n useRender(() => {\n const inputProps = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n \n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? (\n props.label\n ? (\n \n ) : undefined\n )}\n\n { slots.prepend?.(slotProps) }\n \n ) : undefined,\n default: ({ id, messagesId }) => (\n \n \n\n \n\n \n {{ 'tick-label': slots['tick-label'] }}\n \n\n (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n }}\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n }}\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n ripple={ props.ripple }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n\n (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n }}\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n }}\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n ripple={ props.ripple }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRangeSlider = InstanceType\n","export { VRating } from \"./VRating.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VRating } from './VRating'\n","import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VRating.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDensityProps } from \"../../composables/density.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef } from 'vue';\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item'\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty'\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull'\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0\n },\n itemLabels: Array,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: v => ['top', 'bottom'].includes(v)\n },\n ripple: Boolean,\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VRating');\nexport const VRating = genericComponent()({\n name: 'VRating',\n props: makeVRatingProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n themeClasses\n } = provideTheme(props);\n const rating = useProxiedModel(props, 'modelValue');\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));\n const range = computed(() => createRange(Number(props.length), 1));\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));\n const hoverIndex = shallowRef(-1);\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1;\n const isFilled = normalizedValue.value >= value;\n const isHovered = hoverIndex.value >= value;\n const isFullIcon = isHovering ? isHovered : isFilled;\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon;\n const activeColor = props.activeColor ?? props.color;\n const color = isFilled || isHovered ? activeColor : props.color;\n return {\n isFilled,\n isHovered,\n icon,\n color\n };\n }));\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter() {\n hoverIndex.value = value;\n }\n function onMouseleave() {\n hoverIndex.value = -1;\n }\n function onClick() {\n if (props.disabled || props.readonly) return;\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value;\n }\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick\n };\n }));\n const name = computed(() => props.name ?? `v-rating-${getUid()}`);\n function VRatingItem(_ref2) {\n let {\n value,\n index,\n showStar = true\n } = _ref2;\n const {\n onMouseenter,\n onMouseleave,\n onClick\n } = eventState.value[index + 1];\n const id = `${name.value}-${String(value).replace('.', '-')}`;\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain'\n };\n return _createVNode(_Fragment, null, [_createVNode(\"label\", {\n \"for\": id,\n \"class\": {\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0\n },\n \"onMouseenter\": onMouseenter,\n \"onMouseleave\": onMouseleave,\n \"onClick\": onClick\n }, [_createVNode(\"span\", {\n \"class\": \"v-rating__hidden\"\n }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value\n }) : _createVNode(VBtn, _mergeProps({\n \"aria-label\": t(props.itemAriaLabel, value, props.length)\n }, btnProps), null)]), _createVNode(\"input\", {\n \"class\": \"v-rating__hidden\",\n \"name\": name.value,\n \"id\": id,\n \"type\": \"radio\",\n \"value\": value,\n \"checked\": normalizedValue.value === value,\n \"tabindex\": -1,\n \"readonly\": props.readonly,\n \"disabled\": props.disabled\n }, null)]);\n }\n function createLabel(labelProps) {\n if (slots['item-label']) return slots['item-label'](labelProps);\n if (labelProps.label) return _createVNode(\"span\", null, [labelProps.label]);\n return _createVNode(\"span\", null, [_createTextVNode(\"\\xA0\")]);\n }\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label'];\n return _createVNode(props.tag, {\n \"class\": ['v-rating', {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly\n }, themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [_createVNode(VRatingItem, {\n \"value\": 0,\n \"index\": -1,\n \"showStar\": false\n }, null), range.value.map((value, i) => _createVNode(\"div\", {\n \"class\": \"v-rating__wrapper\"\n }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined, _createVNode(\"div\", {\n \"class\": \"v-rating__item\"\n }, [props.halfIncrements ? _createVNode(_Fragment, null, [_createVNode(VRatingItem, {\n \"value\": value - 0.5,\n \"index\": i * 2\n }, null), _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i * 2 + 1\n }, null)]) : _createVNode(VRatingItem, {\n \"value\": value,\n \"index\": i\n }, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({\n value,\n index: i,\n label: props.itemLabels?.[i]\n }) : undefined]))]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VRating.mjs.map","// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: VRatingItemSlot\n 'item-label': VRatingItemLabelSlot\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VRating')\n\nexport const VRating = genericComponent()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = shallowRef(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n { t(props.itemAriaLabel, value, props.length) }\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n \n )\n }\n \n\n \n \n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return { labelProps.label }\n\n return  \n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n \n \n\n { range.value.map((value, i) => (\n
    \n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n
    \n { props.halfIncrements ? (\n <>\n \n \n \n ) : (\n \n )}\n
    \n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n
    \n ))}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType\n","export { VResponsive } from \"./VResponsive.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VResponsive } from './VResponsive'\n","export { VSelectionControlGroup } from \"./VSelectionControlGroup.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSelectionControlGroup } from './VSelectionControlGroup'\n","export { VSheet } from \"./VSheet.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSheet } from './VSheet'\n","export { VSkeletonLoader } from \"./VSkeletonLoader.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSkeletonLoader } from './VSkeletonLoader'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSkeletonLoader.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { useLocale } from \"../../composables/locale.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.mjs\"; // Types\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text'\n};\nfunction genBone(type) {\n let children = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return _createVNode(\"div\", {\n \"class\": ['v-skeleton-loader__bone', `v-skeleton-loader__${type}`]\n }, [children]);\n}\nfunction genBones(bone) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@');\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({\n length\n }).map(() => genStructure(type));\n}\nfunction genStructure(type) {\n let children = [];\n if (!type) return children;\n\n // TODO: figure out a better way to type this\n const bone = rootTypes[type];\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type);\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type);\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone);\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone);\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone));\n return [genBone(type, children)];\n}\nfunction mapBones(bones) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure);\n}\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading'\n },\n type: {\n type: [String, Array],\n default: 'ossein'\n },\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps()\n}, 'VSkeletonLoader');\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n props: makeVSkeletonLoaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n t\n } = useLocale();\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')));\n useRender(() => {\n const isLoading = !slots.default || props.loading;\n const loadingProps = props.boilerplate || !isLoading ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert'\n };\n return _createVNode(\"div\", _mergeProps({\n \"class\": ['v-skeleton-loader', {\n 'v-skeleton-loader--boilerplate': props.boilerplate\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],\n \"style\": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]\n }, loadingProps), [isLoading ? items.value : slots.default?.()]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VSkeletonLoader.mjs.map","// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useLocale } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone = T | VSkeletonBone[]\n\nexport type VSkeletonBones = VSkeletonBone\nexport type VSkeletonLoaderType = keyof typeof rootTypes\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n ossein: 'ossein',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n \n { children }\n \n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<\n | VSkeletonLoaderType | (string & {})\n | ReadonlyArray\n >,\n default: 'ossein',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'VSkeletonLoader')\n\nexport const VSkeletonLoader = genericComponent()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n const loadingProps = (props.boilerplate || !isLoading) ? {} : {\n ariaLive: 'polite',\n ariaLabel: t(props.loadingText),\n role: 'alert',\n }\n\n return (\n \n { isLoading ? items.value : slots.default?.() }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType\n","export { VSlideGroup } from \"./VSlideGroup.mjs\";\nexport { VSlideGroupItem } from \"./VSlideGroupItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSlideGroup } from './VSlideGroup'\nexport { VSlideGroupItem } from './VSlideGroupItem'\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\"; // Utilities\nimport { VSlideGroupSymbol } from \"./VSlideGroup.mjs\";\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupItem = genericComponent()({\n name: 'VSlideGroupItem',\n props: makeGroupItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol);\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value\n });\n }\n});\n//# sourceMappingURL=VSlideGroupItem.mjs.map","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Utilities\nimport { VSlideGroupSymbol } from './VSlideGroup'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { UnwrapRef } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\ntype VSlideGroupItemSlots = {\n default: {\n isSelected: UnwrapRef\n select: GroupItemProvide['select']\n toggle: GroupItemProvide['toggle']\n selectedClass: UnwrapRef\n }\n}\n\nexport const VSlideGroupItem = genericComponent()({\n name: 'VSlideGroupItem',\n\n props: makeGroupItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n\nexport type VSlideGroupItem = InstanceType\n","export { VSnackbar } from \"./VSnackbar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSnackbar } from './VSnackbar'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSnackbar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\";\nimport { VProgressLinear } from \"../VProgressLinear/index.mjs\"; // Composables\nimport { useLayout } from \"../../composables/index.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { VuetifyLayoutKey } from \"../../composables/layout.mjs\";\nimport { makeLocationProps } from \"../../composables/location.mjs\";\nimport { makePositionProps, usePosition } from \"../../composables/position.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\";\nimport { useToggleScope } from \"../../composables/toggleScope.mjs\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.mjs\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { genericComponent, omit, propsFactory, refElement, useRender } from \"../../util/index.mjs\"; // Types\nfunction useCountdown(milliseconds) {\n const time = shallowRef(milliseconds());\n let timer = -1;\n function clear() {\n clearInterval(timer);\n }\n function reset() {\n clear();\n nextTick(() => time.value = milliseconds());\n }\n function start(el) {\n const style = el ? getComputedStyle(el) : {\n transitionDuration: 0.2\n };\n const interval = parseFloat(style.transitionDuration) * 1000 || 200;\n clear();\n if (time.value <= 0) return;\n const startTime = performance.now();\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval;\n time.value = Math.max(milliseconds() - elapsed, 0);\n if (time.value <= 0) clear();\n }, interval);\n }\n onScopeDispose(clear);\n return {\n clear,\n time,\n start,\n reset\n };\n}\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000\n },\n vertical: Boolean,\n ...makeLocationProps({\n location: 'bottom'\n }),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition'\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy'])\n}, 'VSnackbar');\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n props: makeVSnackbarProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n positionClasses\n } = usePosition(props);\n const {\n scopeId\n } = useScopeId();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n roundedClasses\n } = useRounded(props);\n const countdown = useCountdown(() => Number(props.timeout));\n const overlay = ref();\n const timerRef = ref();\n const isHovering = shallowRef(false);\n const startY = shallowRef(0);\n const mainStyles = ref();\n const hasLayout = inject(VuetifyLayoutKey, undefined);\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout();\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value;\n });\n });\n watch(isActive, startTimeout);\n watch(() => props.timeout, startTimeout);\n onMounted(() => {\n if (isActive.value) startTimeout();\n });\n let activeTimeout = -1;\n function startTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n const timeout = Number(props.timeout);\n if (!isActive.value || timeout === -1) return;\n const element = refElement(timerRef.value);\n countdown.start(element);\n activeTimeout = window.setTimeout(() => {\n isActive.value = false;\n }, timeout);\n }\n function clearTimeout() {\n countdown.reset();\n window.clearTimeout(activeTimeout);\n }\n function onPointerenter() {\n isHovering.value = true;\n clearTimeout();\n }\n function onPointerleave() {\n isHovering.value = false;\n startTimeout();\n }\n function onTouchstart(event) {\n startY.value = event.touches[0].clientY;\n }\n function onTouchend(event) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false;\n }\n }\n function onAfterLeave() {\n if (isHovering.value) onPointerleave();\n }\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true;\n return acc;\n }, {});\n });\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n const hasContent = !!(slots.default || slots.text || props.text);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-snackbar', {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical\n }, locationClasses.value, positionClasses.value, props.class],\n \"style\": [mainStyles.value, props.style]\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"contentProps\": mergeProps({\n class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],\n style: [colorStyles.value],\n onPointerenter,\n onPointerleave\n }, overlayProps.contentProps),\n \"persistent\": true,\n \"noClickAnimation\": true,\n \"scrim\": false,\n \"scrollStrategy\": \"none\",\n \"_disableGlobalStack\": true,\n \"onTouchstartPassive\": onTouchstart,\n \"onTouchend\": onTouchend,\n \"onAfterLeave\": onAfterLeave\n }, scopeId), {\n default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createVNode(\"div\", {\n \"key\": \"timer\",\n \"class\": \"v-snackbar__timer\"\n }, [_createVNode(VProgressLinear, {\n \"ref\": timerRef,\n \"color\": typeof props.timer === 'string' ? props.timer : 'info',\n \"max\": props.timeout,\n \"model-value\": countdown.time.value\n }, null)]), hasContent && _createVNode(\"div\", {\n \"key\": \"content\",\n \"class\": \"v-snackbar__content\",\n \"role\": \"status\",\n \"aria-live\": \"polite\"\n }, [slots.text?.() ?? props.text, slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true\n }\n }\n }, {\n default: () => [_createVNode(\"div\", {\n \"class\": \"v-snackbar__actions\"\n }, [slots.actions({\n isActive\n })])]\n })],\n activator: slots.activator\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VSnackbar.mjs.map","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record }\n default: never\n actions: { isActive: Ref }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref()\n const timerRef = ref()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n function onAfterLeave () {\n if (isHovering.value) onPointerleave()\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n \n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n
    \n \n
    \n )}\n\n { hasContent && (\n \n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n \n )}\n\n { slots.actions && (\n \n
    \n { slots.actions({ isActive }) }\n
    \n \n )}\n
    \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType\n","export { VSparkline } from \"./VSparkline.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSparkline } from './VSparkline'\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVBarlineProps, VBarline } from \"./VBarline.mjs\";\nimport { makeVTrendlineProps, VTrendline } from \"./VTrendline.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String,\n default: 'trend'\n },\n ...makeVBarlineProps(),\n ...makeVTrendlineProps()\n}, 'VSparkline');\nexport const VSparkline = genericComponent()({\n name: 'VSparkline',\n props: makeVSparklineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10);\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5;\n return height;\n });\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline;\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props);\n return _createVNode(Tag, _mergeProps({\n \"key\": props.type,\n \"class\": textColorClasses.value,\n \"style\": textColorStyles.value,\n \"viewBox\": `0 0 ${props.width} ${parseInt(totalHeight.value, 10)}`\n }, lineProps), slots);\n });\n }\n});\n//# sourceMappingURL=VSparkline.mjs.map","// Components\nimport { makeVBarlineProps, VBarline } from './VBarline'\nimport { makeVTrendlineProps, VTrendline } from './VTrendline'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport const makeVSparklineProps = propsFactory({\n type: {\n type: String as PropType<'trend' | 'bar'>,\n default: 'trend',\n },\n\n ...makeVBarlineProps(),\n ...makeVTrendlineProps(),\n}, 'VSparkline')\n\nexport type VSparklineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport const VSparkline = genericComponent()({\n name: 'VSparkline',\n\n props: makeVSparklineProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const totalHeight = computed(() => {\n let height = parseInt(props.height, 10)\n\n if (hasLabels.value) height += parseInt(props.labelSize, 10) * 1.5\n\n return height\n })\n\n useRender(() => {\n const Tag = props.type === 'trend' ? VTrendline : VBarline\n const lineProps = props.type === 'trend' ? VTrendline.filterProps(props) : VBarline.filterProps(props)\n\n return (\n \n )\n })\n },\n})\n\nexport type VSparkline = InstanceType\n","import { Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { computed } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n ...makeLineProps()\n}, 'VBarline');\nexport const VBarline = genericComponent()({\n name: 'VBarline',\n props: makeVBarlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `barline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500);\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4);\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)));\n const boundary = computed(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10)\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n function genBars(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n let minValue = props.min != null ? Number(props.min) : Math.min(...values);\n if (minValue > 0 && props.min == null) minValue = 0;\n if (maxValue < 0 && props.max == null) maxValue = 0;\n const gridX = maxX / totalValues;\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n const horizonY = maxY - Math.abs(minValue * gridY);\n return values.map((value, index) => {\n const height = Math.abs(gridY * value);\n return {\n x: minX + index * gridX,\n y: horizonY - height + +(value < 0) * height,\n height,\n value\n };\n });\n }\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genBars(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n const bars = computed(() => genBars(items.value, boundary.value));\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\"\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), _createVNode(\"clipPath\", {\n \"id\": `${id.value}-clip`\n }, [bars.value.map(item => _createVNode(\"rect\", {\n \"x\": item.x + offsetX.value,\n \"y\": item.y,\n \"width\": lineWidth.value,\n \"height\": item.height,\n \"rx\": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0,\n \"ry\": typeof props.smooth === 'number' ? props.smooth : props.smooth ? 2 : 0\n }, [props.autoDraw && _createVNode(_Fragment, null, [_createVNode(\"animate\", {\n \"attributeName\": \"y\",\n \"from\": item.y + item.height,\n \"to\": item.y,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null), _createVNode(\"animate\", {\n \"attributeName\": \"height\",\n \"from\": \"0\",\n \"to\": item.height,\n \"dur\": `${autoDrawDuration.value}ms`,\n \"fill\": \"freeze\"\n }, null)])]))]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + offsetX.value + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 2 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"g\", {\n \"clip-path\": `url(#${id.value}-clip)`,\n \"fill\": `url(#${id.value})`\n }, [_createVNode(\"rect\", {\n \"x\": 0,\n \"y\": 0,\n \"width\": Math.max(props.modelValue.length * lineWidth.value, Number(props.width)),\n \"height\": props.height\n }, null)])]);\n });\n }\n});\n//# sourceMappingURL=VBarline.mjs.map","// Utilities\nimport { computed } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VBarlineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Bar {\n x: number\n y: number\n height: number\n value: number\n}\n\nexport const makeVBarlineProps = propsFactory({\n autoLineWidth: Boolean,\n\n ...makeLineProps(),\n}, 'VBarline')\n\nexport const VBarline = genericComponent()({\n name: 'VBarline',\n\n props: makeVBarlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `barline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || 500)\n\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n\n const lineWidth = computed(() => parseFloat(props.lineWidth) || 4)\n\n const totalWidth = computed(() => Math.max(props.modelValue.length * lineWidth.value, Number(props.width)))\n\n const boundary = computed(() => {\n return {\n minX: 0,\n maxX: totalWidth.value,\n minY: 0,\n maxY: parseInt(props.height, 10),\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n\n function genBars (\n values: number[],\n boundary: Boundary\n ): Bar[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n let maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n let minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n if (minValue > 0 && props.min == null) minValue = 0\n if (maxValue < 0 && props.max == null) maxValue = 0\n\n const gridX = maxX / totalValues\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n const horizonY = maxY - Math.abs(minValue * gridY)\n\n return values.map((value, index) => {\n const height = Math.abs(gridY * value)\n\n return {\n x: minX + index * gridX,\n y: horizonY - height +\n +(value < 0) * height,\n height,\n value,\n }\n })\n }\n\n const parsedLabels = computed(() => {\n const labels = []\n const points = genBars(items.value, boundary.value)\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = props.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n })\n\n const bars = computed(() => genBars(items.value, boundary.value))\n const offsetX = computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2)\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n return (\n \n \n \n {\n gradientData.map((color, index) => (\n \n ))\n }\n \n \n\n \n {\n bars.value.map(item => (\n \n { props.autoDraw && (\n <>\n \n \n \n )}\n \n ))\n }\n \n\n { hasLabels.value && (\n \n {\n parsedLabels.value.map((item, i) => (\n \n { slots.label?.({ index: i, value: item.value }) ?? item.value }\n \n ))\n }\n \n )}\n\n \n \n \n \n )\n })\n },\n})\n\nexport type VBarline = InstanceType\n","// Utilities\nimport { propsFactory } from \"../../../util/index.mjs\"; // Types\nexport const makeLineProps = propsFactory({\n autoDraw: Boolean,\n autoDrawDuration: [Number, String],\n autoDrawEasing: {\n type: String,\n default: 'ease'\n },\n color: String,\n gradient: {\n type: Array,\n default: () => []\n },\n gradientDirection: {\n type: String,\n validator: val => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top'\n },\n height: {\n type: [String, Number],\n default: 75\n },\n labels: {\n type: Array,\n default: () => []\n },\n labelSize: {\n type: [Number, String],\n default: 7\n },\n lineWidth: {\n type: [String, Number],\n default: 4\n },\n id: String,\n itemValue: {\n type: String,\n default: 'value'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n min: [String, Number],\n max: [String, Number],\n padding: {\n type: [String, Number],\n default: 8\n },\n showLabels: Boolean,\n smooth: Boolean,\n width: {\n type: [Number, String],\n default: 300\n }\n}, 'Line');\n//# sourceMappingURL=line.mjs.map","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type SparklineItem = number | { value: number }\n\nexport const makeLineProps = propsFactory({\n autoDraw: Boolean,\n autoDrawDuration: [Number, String],\n autoDrawEasing: {\n type: String,\n default: 'ease',\n },\n color: String,\n gradient: {\n type: Array as PropType,\n default: () => ([]),\n },\n gradientDirection: {\n type: String as PropType<'top' | 'bottom' | 'left' | 'right'>,\n validator: (val: string) => ['top', 'bottom', 'left', 'right'].includes(val),\n default: 'top',\n },\n height: {\n type: [String, Number],\n default: 75,\n },\n labels: {\n type: Array as PropType,\n default: () => ([]),\n },\n labelSize: {\n type: [Number, String],\n default: 7,\n },\n lineWidth: {\n type: [String, Number],\n default: 4,\n },\n id: String,\n itemValue: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: Array as PropType,\n default: () => ([]),\n },\n min: [String, Number],\n max: [String, Number],\n padding: {\n type: [String, Number],\n default: 8,\n },\n showLabels: Boolean,\n smooth: Boolean,\n width: {\n type: [Number, String],\n default: 300,\n },\n}, 'Line')\n","import { createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue';\nimport { makeLineProps } from \"./util/line.mjs\";\nimport { genPath as _genPath } from \"./util/path.mjs\";\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n ...makeLineProps()\n}, 'VTrendline');\nexport const VTrendline = genericComponent()({\n name: 'VTrendline',\n props: makeVTrendlineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const uid = getUid();\n const id = computed(() => props.id || `trendline-${uid}`);\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000));\n const lastLength = ref(0);\n const path = ref(null);\n function genPoints(values, boundary) {\n const {\n minX,\n maxX,\n minY,\n maxY\n } = boundary;\n const totalValues = values.length;\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values);\n const minValue = props.min != null ? Number(props.min) : Math.min(...values);\n const gridX = (maxX - minX) / (totalValues - 1);\n const gridY = (maxY - minY) / (maxValue - minValue || 1);\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value\n };\n });\n }\n const hasLabels = computed(() => {\n return Boolean(props.showLabels || props.labels.length > 0 || !!slots?.label);\n });\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4;\n });\n const totalWidth = computed(() => Number(props.width));\n const boundary = computed(() => {\n const padding = Number(props.padding);\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding\n };\n });\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)));\n const parsedLabels = computed(() => {\n const labels = [];\n const points = genPoints(items.value, boundary.value);\n const len = points.length;\n for (let i = 0; labels.length < len; i++) {\n const item = points[i];\n let value = props.labels[i];\n if (!value) {\n value = typeof item === 'object' ? item.value : item;\n }\n labels.push({\n x: item.x,\n value: String(value)\n });\n }\n return labels;\n });\n watch(() => props.modelValue, async () => {\n await nextTick();\n if (!props.autoDraw || !path.value) return;\n const pathRef = path.value;\n const length = pathRef.getTotalLength();\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`;\n pathRef.style.strokeDashoffset = `${length}`;\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect();\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.strokeDashoffset = '0';\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center';\n pathRef.style.transition = 'none';\n pathRef.style.transform = `scaleY(0)`;\n pathRef.getBoundingClientRect();\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`;\n pathRef.style.transform = `scaleY(1)`;\n }\n lastLength.value = length;\n }, {\n immediate: true\n });\n function genPath(fill) {\n return _genPath(genPoints(items.value, boundary.value), props.smooth ? 8 : Number(props.smooth), fill, parseInt(props.height, 10));\n }\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();\n return _createVNode(\"svg\", {\n \"display\": \"block\",\n \"stroke-width\": parseFloat(props.lineWidth) ?? 4\n }, [_createVNode(\"defs\", null, [_createVNode(\"linearGradient\", {\n \"id\": id.value,\n \"gradientUnits\": \"userSpaceOnUse\",\n \"x1\": props.gradientDirection === 'left' ? '100%' : '0',\n \"y1\": props.gradientDirection === 'top' ? '100%' : '0',\n \"x2\": props.gradientDirection === 'right' ? '100%' : '0',\n \"y2\": props.gradientDirection === 'bottom' ? '100%' : '0'\n }, [gradientData.map((color, index) => _createVNode(\"stop\", {\n \"offset\": index / Math.max(gradientData.length - 1, 1),\n \"stop-color\": color || 'currentColor'\n }, null))])]), hasLabels.value && _createVNode(\"g\", {\n \"key\": \"labels\",\n \"style\": {\n textAnchor: 'middle',\n dominantBaseline: 'mathematical',\n fill: 'currentColor'\n }\n }, [parsedLabels.value.map((item, i) => _createVNode(\"text\", {\n \"x\": item.x + lineWidth.value / 2 + lineWidth.value / 2,\n \"y\": parseInt(props.height, 10) - 4 + (parseInt(props.labelSize, 10) || 7 * 0.75),\n \"font-size\": Number(props.labelSize) || 7\n }, [slots.label?.({\n index: i,\n value: item.value\n }) ?? item.value]))]), _createVNode(\"path\", {\n \"ref\": path,\n \"d\": genPath(props.fill),\n \"fill\": props.fill ? `url(#${id.value})` : 'none',\n \"stroke\": props.fill ? 'none' : `url(#${id.value})`\n }, null), props.fill && _createVNode(\"path\", {\n \"d\": genPath(false),\n \"fill\": \"none\",\n \"stroke\": props.color ?? props.gradient?.[0]\n }, null)]);\n });\n }\n});\n//# sourceMappingURL=VTrendline.mjs.map","// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { makeLineProps } from './util/line'\nimport { genPath as _genPath } from './util/path'\nimport { genericComponent, getPropertyFromItem, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VTrendlineSlots = {\n default: void\n label: { index: number, value: string }\n}\n\nexport type SparklineItem = number | { value: number }\n\nexport type SparklineText = {\n x: number\n value: string\n}\n\nexport interface Boundary {\n minX: number\n minY: number\n maxX: number\n maxY: number\n}\n\nexport interface Point {\n x: number\n y: number\n value: number\n}\n\nexport const makeVTrendlineProps = propsFactory({\n fill: Boolean,\n\n ...makeLineProps(),\n}, 'VTrendline')\n\nexport const VTrendline = genericComponent()({\n name: 'VTrendline',\n\n props: makeVTrendlineProps(),\n\n setup (props, { slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `trendline-${uid}`)\n const autoDrawDuration = computed(() => Number(props.autoDrawDuration) || (props.fill ? 500 : 2000))\n\n const lastLength = ref(0)\n const path = ref(null)\n\n function genPoints (\n values: number[],\n boundary: Boundary\n ): Point[] {\n const { minX, maxX, minY, maxY } = boundary\n const totalValues = values.length\n const maxValue = props.max != null ? Number(props.max) : Math.max(...values)\n const minValue = props.min != null ? Number(props.min) : Math.min(...values)\n\n const gridX = (maxX - minX) / (totalValues - 1)\n const gridY = (maxY - minY) / ((maxValue - minValue) || 1)\n\n return values.map((value, index) => {\n return {\n x: minX + index * gridX,\n y: maxY - (value - minValue) * gridY,\n value,\n }\n })\n }\n const hasLabels = computed(() => {\n return Boolean(\n props.showLabels ||\n props.labels.length > 0 ||\n !!slots?.label\n )\n })\n const lineWidth = computed(() => {\n return parseFloat(props.lineWidth) || 4\n })\n const totalWidth = computed(() => Number(props.width))\n\n const boundary = computed(() => {\n const padding = Number(props.padding)\n\n return {\n minX: padding,\n maxX: totalWidth.value - padding,\n minY: padding,\n maxY: parseInt(props.height, 10) - padding,\n }\n })\n const items = computed(() => props.modelValue.map(item => getPropertyFromItem(item, props.itemValue, item)))\n const parsedLabels = computed(() => {\n const labels = []\n const points = genPoints(items.value, boundary.value)\n const len = points.length\n\n for (let i = 0; labels.length < len; i++) {\n const item = points[i]\n let value = props.labels[i]\n\n if (!value) {\n value = typeof item === 'object'\n ? item.value\n : item\n }\n\n labels.push({\n x: item.x,\n value: String(value),\n })\n }\n\n return labels\n })\n\n watch(() => props.modelValue, async () => {\n await nextTick()\n\n if (!props.autoDraw || !path.value) return\n\n const pathRef = path.value\n const length = pathRef.getTotalLength()\n\n if (!props.fill) {\n // Initial setup to \"hide\" the line by using the stroke dash array\n pathRef.style.strokeDasharray = `${length}`\n pathRef.style.strokeDashoffset = `${length}`\n\n // Force reflow to ensure the transition starts from this state\n pathRef.getBoundingClientRect()\n\n // Animate the stroke dash offset to \"draw\" the line\n pathRef.style.transition = `stroke-dashoffset ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.strokeDashoffset = '0'\n } else {\n // Your existing logic for filled paths remains the same\n pathRef.style.transformOrigin = 'bottom center'\n pathRef.style.transition = 'none'\n pathRef.style.transform = `scaleY(0)`\n pathRef.getBoundingClientRect()\n pathRef.style.transition = `transform ${autoDrawDuration.value}ms ${props.autoDrawEasing}`\n pathRef.style.transform = `scaleY(1)`\n }\n\n lastLength.value = length\n }, { immediate: true })\n\n function genPath (fill: boolean) {\n return _genPath(\n genPoints(items.value, boundary.value),\n props.smooth ? 8 : Number(props.smooth),\n fill,\n parseInt(props.height, 10)\n )\n }\n\n useRender(() => {\n const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse()\n\n return (\n \n \n \n {\n gradientData.map((color, index) => (\n \n ))\n }\n \n \n\n { hasLabels.value && (\n \n {\n parsedLabels.value.map((item, i) => (\n \n { slots.label?.({ index: i, value: item.value }) ?? item.value }\n \n ))\n }\n \n )}\n\n \n\n { props.fill && (\n \n )}\n \n )\n })\n },\n})\n\nexport type VTrendline = InstanceType\n","// @ts-nocheck\n/* eslint-disable */\n\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath(points, radius) {\n let fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n let height = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 75;\n if (points.length === 0) return '';\n const start = points.shift();\n const end = points[points.length - 1];\n return (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) + points.map((point, index) => {\n const next = points[index + 1];\n const prev = points[index - 1] || start;\n const isCollinear = next && checkCollinear(next, point, prev);\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`;\n }\n const threshold = Math.min(getDistance(prev, point), getDistance(next, point));\n const isTooCloseForRadius = threshold / 2 < radius;\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius;\n const before = moveTo(prev, point, radiusForPoint);\n const after = moveTo(next, point, radiusForPoint);\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`;\n }).join('') + (fill ? `L${end.x} ${height - start.x + 2} Z` : '');\n}\nfunction int(value) {\n return parseInt(value, 10);\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear(p0, p1, p2) {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y);\n}\nexport function getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\nexport function moveTo(to, from, radius) {\n const vector = {\n x: to.x - from.x,\n y: to.y - from.y\n };\n const length = Math.sqrt(vector.x * vector.x + vector.y * vector.y);\n const unitVector = {\n x: vector.x / length,\n y: vector.y / length\n };\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius\n };\n}\n//# sourceMappingURL=path.mjs.map","// @ts-nocheck\n/* eslint-disable */\n\nimport { Point } from '../VSparkline'\n// import { checkCollinear, getDistance, moveTo } from './math'\n\n/**\n * From https://github.com/unsplash/react-trend/blob/master/src/helpers/DOM.helpers.js#L18\n */\nexport function genPath (points: Point[], radius: number, fill = false, height = 75) {\n if (points.length === 0) return ''\n const start = points.shift()!\n const end = points[points.length - 1]\n\n return (\n (fill ? `M${start.x} ${height - start.x + 2} L${start.x} ${start.y}` : `M${start.x} ${start.y}`) +\n points\n .map((point, index) => {\n const next = points[index + 1]\n const prev = points[index - 1] || start\n const isCollinear = next && checkCollinear(next, point, prev)\n\n if (!next || isCollinear) {\n return `L${point.x} ${point.y}`\n }\n\n const threshold = Math.min(\n getDistance(prev, point),\n getDistance(next, point)\n )\n const isTooCloseForRadius = threshold / 2 < radius\n const radiusForPoint = isTooCloseForRadius ? threshold / 2 : radius\n\n const before = moveTo(prev, point, radiusForPoint)\n const after = moveTo(next, point, radiusForPoint)\n\n return `L${before.x} ${before.y}S${point.x} ${point.y} ${after.x} ${after.y}`\n })\n .join('') +\n (fill ? `L${end.x} ${height - start.x + 2} Z` : '')\n )\n}\n\nfunction int (value: string | number): number {\n return parseInt(value, 10)\n}\n\n/**\n * https://en.wikipedia.org/wiki/Collinearity\n * x=(x1+x2)/2\n * y=(y1+y2)/2\n */\nexport function checkCollinear (p0: Point, p1: Point, p2: Point): boolean {\n return int(p0.x + p2.x) === int(2 * p1.x) && int(p0.y + p2.y) === int(2 * p1.y)\n}\n\nexport function getDistance (p1: Point, p2: Point): number {\n return Math.sqrt(\n Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)\n )\n}\n\nexport function moveTo (to: Point, from: Point, radius: number) {\n const vector = { x: to.x - from.x, y: to.y - from.y }\n const length = Math.sqrt((vector.x * vector.x) + (vector.y * vector.y))\n const unitVector = { x: vector.x / length, y: vector.y / length }\n\n return {\n x: from.x + unitVector.x * radius,\n y: from.y + unitVector.y * radius,\n }\n}\n","export { VSpeedDial } from \"./VSpeedDial.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSpeedDial } from './VSpeedDial'\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSpeedDial.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { makeVMenuProps, VMenu } from \"../VMenu/VMenu.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { MaybeTransition } from \"../../composables/transition.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center',\n transition: 'scale-transition'\n })\n}, 'VSpeedDial');\nexport const VSpeedDial = genericComponent()({\n name: 'VSpeedDial',\n props: makeVSpeedDialProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const menuRef = ref();\n const location = computed(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? [];\n return `${y} ${x}`;\n });\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true\n }));\n useRender(() => {\n const menuProps = VMenu.filterProps(props);\n return _createVNode(VMenu, _mergeProps(menuProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": props.class,\n \"style\": props.style,\n \"contentClass\": ['v-speed-dial__content', locationClasses.value, props.contentClass],\n \"location\": location.value,\n \"ref\": menuRef,\n \"transition\": \"fade-transition\"\n }), {\n ...slots,\n default: slotProps => _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n size: 'small'\n }\n }\n }, {\n default: () => [_createVNode(MaybeTransition, {\n \"appear\": true,\n \"group\": true,\n \"transition\": props.transition\n }, {\n default: () => [slots.default?.(slotProps)]\n })]\n })\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSpeedDial.mjs.map","// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref()\n\n const location = computed(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? []\n\n return `${y} ${x}` as Anchor\n })\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: slotProps => (\n \n \n { slots.default?.(slotProps) }\n \n \n ),\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType\n","export { VStepper } from \"./VStepper.mjs\";\nexport { VStepperActions } from \"./VStepperActions.mjs\";\nexport { VStepperHeader } from \"./VStepperHeader.mjs\";\nexport { VStepperItem } from \"./VStepperItem.mjs\";\nexport { VStepperWindow } from \"./VStepperWindow.mjs\";\nexport { VStepperWindowItem } from \"./VStepperWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VStepper } from './VStepper'\nexport { VStepperActions } from './VStepperActions'\nexport { VStepperHeader } from './VStepperHeader'\nexport { VStepperItem } from './VStepperItem'\nexport { VStepperWindow } from './VStepperWindow'\nexport { VStepperWindowItem } from './VStepperWindowItem'\n","import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VStepper.css\";\n\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVStepperActionsProps, VStepperActions } from \"./VStepperActions.mjs\";\nimport { VStepperHeader } from \"./VStepperHeader.mjs\";\nimport { VStepperItem } from \"./VStepperItem.mjs\";\nimport { VStepperWindow } from \"./VStepperWindow.mjs\";\nimport { VStepperWindowItem } from \"./VStepperWindowItem.mjs\";\nimport { VDivider } from \"../VDivider/index.mjs\";\nimport { makeVSheetProps, VSheet } from \"../VSheet/VSheet.mjs\"; // Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\"; // Utilities\nimport { computed, toRefs } from 'vue';\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: String,\n default: 'title'\n },\n itemValue: {\n type: String,\n default: 'value'\n },\n nonLinear: Boolean,\n flat: Boolean,\n ...makeDisplayProps()\n}, 'Stepper');\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force',\n selectedClass: 'v-stepper-item--selected'\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText'])\n}, 'VStepper');\nexport const VStepper = genericComponent()({\n name: 'VStepper',\n props: makeVStepperProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items: _items,\n next,\n prev,\n selected\n } = useGroup(props, VStepperSymbol);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const {\n completeIcon,\n editIcon,\n errorIcon,\n color,\n editable,\n prevText,\n nextText\n } = toRefs(props);\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, index + 1);\n return {\n title,\n value,\n raw: item\n };\n }));\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id));\n });\n const disabled = computed(() => {\n if (props.disabled) return props.disabled;\n if (activeIndex.value === 0) return 'prev';\n if (activeIndex.value === _items.value.length - 1) return 'next';\n return false;\n });\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText\n }\n });\n useRender(() => {\n const sheetProps = VSheet.filterProps(props);\n const hasHeader = !!(slots.header || props.items.length);\n const hasWindow = props.items.length > 0;\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions);\n return _createVNode(VSheet, _mergeProps(sheetProps, {\n \"color\": props.bgColor,\n \"class\": ['v-stepper', {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value\n }, displayClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [hasHeader && _createVNode(VStepperHeader, {\n \"key\": \"stepper-header\"\n }, {\n default: () => [items.value.map((_ref2, index) => {\n let {\n raw,\n ...item\n } = _ref2;\n return _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle\n })]);\n })]\n }), hasWindow && _createVNode(VStepperWindow, {\n \"key\": \"stepper-window\"\n }, {\n default: () => [items.value.map(item => _createVNode(VStepperWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item)\n }))]\n }), slots.default?.({\n prev,\n next\n }), hasActions && (slots.actions?.({\n next,\n prev\n }) ?? _createVNode(VStepperActions, {\n \"key\": \"stepper-actions\",\n \"onClick:prev\": prev,\n \"onClick:next\": next\n }, slots))]\n });\n });\n return {\n prev,\n next\n };\n }\n});\n//# sourceMappingURL=VStepper.mjs.map","// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: String,\n editIcon: String,\n editable: Boolean,\n errorIcon: String,\n hideActions: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n \n { hasHeader && (\n \n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && () }\n\n \n \n ))}\n \n )}\n\n { hasWindow && (\n \n { items.value.map(item => (\n slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n \n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n \n )\n )}\n \n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType\n","// Types\n\nexport const VStepperSymbol = Symbol.for('vuetify:v-stepper');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey = Symbol.for('vuetify:v-stepper')\n","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VBtn } from \"../VBtn/VBtn.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\"; // Composables\nimport { useLocale } from \"../../composables/locale.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String],\n default: false\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev'\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next'\n }\n}, 'VStepperActions');\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n props: makeVStepperActionsProps(),\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n function onClickPrev() {\n emit('click:prev');\n }\n function onClickNext() {\n emit('click:next');\n }\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev\n };\n const nextSlotProps = {\n onClick: onClickNext\n };\n return _createVNode(\"div\", {\n \"class\": \"v-stepper-actions\"\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n disabled: ['prev', true].includes(props.disabled),\n text: t(props.prevText),\n variant: 'text'\n }\n }\n }, {\n default: () => [slots.prev?.({\n props: prevSlotProps\n }) ?? _createVNode(VBtn, prevSlotProps, null)]\n }), _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VBtn: {\n color: props.color,\n disabled: ['next', true].includes(props.disabled),\n text: t(props.nextText),\n variant: 'tonal'\n }\n }\n }, {\n default: () => [slots.next?.({\n props: nextSlotProps\n }) ?? _createVNode(VBtn, nextSlotProps, null)]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperActions.mjs.map","// Components\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VStepperActionsSlots = {\n prev: {\n props: { onClick: () => void }\n }\n next: {\n props: { onClick: () => void }\n }\n}\n\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String] as PropType,\n default: false,\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n}, 'VStepperActions')\n\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n\n props: makeVStepperActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev,\n }\n const nextSlotProps = {\n onClick: onClickNext,\n }\n\n return (\n
    \n \n { slots.prev?.({ props: prevSlotProps }) ?? (\n \n )}\n \n\n \n { slots.next?.({ props: nextSlotProps }) ?? (\n \n )}\n \n
    \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperActions = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.mjs\";\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header');\n//# sourceMappingURL=VStepperHeader.mjs.map","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header')\n\nexport type VStepperHeader = InstanceType\n","import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VStepperItem.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/VAvatar.mjs\";\nimport { VIcon } from \"../VIcon/VIcon.mjs\"; // Composables\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.mjs\";\nimport { genOverlays } from \"../../composables/variant.mjs\"; // Directives\nimport { Ripple } from \"../../directives/ripple/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete'\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit'\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error'\n },\n icon: String,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n rules: {\n type: Array,\n default: () => []\n }\n}, 'StepperItem');\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps()\n}, 'VStepperItem');\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n directives: {\n Ripple\n },\n props: makeVStepperItemProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = useGroupItem(props, VStepperSymbol, true);\n const step = computed(() => group?.value.value ?? props.value);\n const isValid = computed(() => props.rules.every(handler => handler() === true));\n const isClickable = computed(() => !props.disabled && props.editable);\n const canEdit = computed(() => !props.disabled && props.editable);\n const hasError = computed(() => props.error || !isValid.value);\n const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon;\n if (hasCompleted.value) return props.completeIcon;\n if (group.isSelected.value && props.editable) return props.editIcon;\n return props.icon;\n });\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value\n }));\n useRender(() => {\n const hasColor = (!group || group.isSelected.value || hasCompleted.value || canEdit.value) && !hasError.value && !props.disabled;\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n function onClick() {\n group?.toggle();\n }\n return _withDirectives(_createVNode(\"button\", {\n \"class\": ['v-stepper-item', {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value\n }, group?.selectedClass.value],\n \"disabled\": !props.editable,\n \"onClick\": onClick\n }, [isClickable.value && genOverlays(true, 'v-stepper-item'), _createVNode(VAvatar, {\n \"key\": \"stepper-avatar\",\n \"class\": \"v-stepper-item__avatar\",\n \"color\": hasColor ? props.color : undefined,\n \"size\": 24\n }, {\n default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {\n \"icon\": icon.value\n }, null) : step.value)]\n }), _createVNode(\"div\", {\n \"class\": \"v-stepper-item__content\"\n }, [hasTitle && _createVNode(\"div\", {\n \"key\": \"title\",\n \"class\": \"v-stepper-item__title\"\n }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && _createVNode(\"div\", {\n \"key\": \"subtitle\",\n \"class\": \"v-stepper-item__subtitle\"\n }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[_resolveDirective(\"ripple\"), props.ripple && props.editable, null]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperItem.mjs.map","// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { genOverlays } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './shared'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItem = string | Record\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string | number\n subtitle?: string | number\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n}, 'StepperItem')\n\nexport const makeVStepperItemProps = propsFactory({\n ...makeStepperItemProps(),\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const isClickable = computed(() => !props.disabled && props.editable)\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (group.isSelected.value && props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n \n { isClickable.value && genOverlays(true, 'v-stepper-item') }\n\n \n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n \n ) : step.value\n )}\n \n\n
    \n { hasTitle && (\n \n { slots.title?.(slotProps.value) ?? props.title }\n
    \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n \n \n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { VStepperSymbol } from \"./shared.mjs\";\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VStepperWindow');\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n props: makeVStepperWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VStepperSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VStepperWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-stepper-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindow.mjs.map","// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VStepperWindowItem');\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n props: makeVStepperWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VStepperWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-stepper-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VStepperWindowItem.mjs.map","// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVStepperWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VStepperWindowItem')\n\nexport const VStepperWindowItem = genericComponent()({\n name: 'VStepperWindowItem',\n\n props: makeVStepperWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindowItem = InstanceType\n","export { VSwitch } from \"./VSwitch.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSwitch } from './VSwitch'\n","import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSwitch.css\";\n\n// Components\nimport { VScaleTransition } from \"../transitions/index.mjs\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/VDefaultsProvider.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\";\nimport { VProgressCircular } from \"../VProgressCircular/index.mjs\";\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { LoaderSlot, useLoader } from \"../../composables/loader.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { filterInputAttrs, genericComponent, getUid, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false\n },\n ...makeVInputProps(),\n ...makeVSelectionControlProps()\n}, 'VSwitch');\nexport const VSwitch = genericComponent()({\n name: 'VSwitch',\n inheritAttrs: false,\n props: makeVSwitchProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n const {\n loaderClasses\n } = useLoader(props);\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const control = ref();\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;\n });\n const uid = getUid();\n const id = computed(() => props.id || `switch-${uid}`);\n function onChange() {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n function onTrackClick(e) {\n e.stopPropagation();\n e.preventDefault();\n control.value?.input?.click();\n }\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"class\": ['v-switch', {\n 'v-switch--flat': props.flat\n }, {\n 'v-switch--inset': props.inset\n }, {\n 'v-switch--indeterminate': indeterminate.value\n }, loaderClasses.value, props.class]\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value,\n \"focused\": isFocused.value,\n \"style\": props.style\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid\n } = _ref2;\n const slotProps = {\n model,\n isValid\n };\n return _createVNode(VSelectionControl, _mergeProps({\n \"ref\": control\n }, controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"type\": \"checkbox\",\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, controlAttrs), {\n ...slots,\n default: _ref3 => {\n let {\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref3;\n return _createVNode(\"div\", {\n \"class\": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": backgroundColorStyles.value,\n \"onClick\": onTrackClick\n }, [slots['track-true'] && _createVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-switch__track-true\"\n }, [slots['track-true'](slotProps)]), slots['track-false'] && _createVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-switch__track-false\"\n }, [slots['track-false'](slotProps)])]);\n },\n input: _ref4 => {\n let {\n inputNode,\n icon,\n backgroundColorClasses,\n backgroundColorStyles\n } = _ref4;\n return _createVNode(_Fragment, null, [inputNode, _createVNode(\"div\", {\n \"class\": ['v-switch__thumb', {\n 'v-switch__thumb--filled': icon || props.loading\n }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],\n \"style\": props.inset ? undefined : backgroundColorStyles.value\n }, [slots.thumb ? _createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon,\n size: 'x-small'\n }\n }\n }, {\n default: () => [slots.thumb({\n ...slotProps,\n icon\n })]\n }) : _createVNode(VScaleTransition, null, {\n default: () => [!props.loading ? icon && _createVNode(VIcon, {\n \"key\": String(icon),\n \"icon\": icon,\n \"size\": \"x-small\"\n }, null) : _createVNode(LoaderSlot, {\n \"name\": \"v-switch\",\n \"active\": true,\n \"color\": isValid.value === false ? undefined : loaderColor.value\n }, {\n default: slotProps => slots.loader ? slots.loader(slotProps) : _createVNode(VProgressCircular, {\n \"active\": slotProps.isActive,\n \"color\": slotProps.color,\n \"indeterminate\": true,\n \"size\": \"16\",\n \"width\": \"2\"\n }, null)\n })]\n })])]);\n }\n });\n }\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VSwitch.mjs.map","// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { VScaleTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\nimport { makeVSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, Ref } from 'vue'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\nimport type { IconValue } from '@/composables/icons'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nexport type VSwitchSlot = {\n model: Ref\n isValid: ComputedRef\n}\n\nexport type VSwitchSlots =\n & VInputSlots\n & VSelectionControlSlots\n & {\n loader: LoaderSlotProps\n thumb: { icon: IconValue | undefined } & VSwitchSlot\n 'track-false': VSwitchSlot\n 'track-true': VSwitchSlot\n }\n\nexport const makeVSwitchProps = propsFactory({\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeVSelectionControlProps(),\n}, 'VSwitch')\n\nexport const VSwitch = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VSwitchSlots,\n) => GenericProps>()({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: makeVSwitchProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n const { loaderClasses } = useLoader(props)\n const { isFocused, focus, blur } = useFocus(props)\n const control = ref()\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n function onTrackClick (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n control.value?.input?.click()\n }\n\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs)\n const inputProps = VInput.filterProps(props)\n const controlProps = VSelectionControl.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => {\n const slotProps = {\n model,\n isValid,\n }\n\n return (\n \n {{\n ...slots,\n default: ({ backgroundColorClasses, backgroundColorStyles }) => (\n \n { slots['track-true'] && (\n
    \n { slots['track-true'](slotProps) }\n
    \n )}\n\n { slots['track-false'] && (\n
    \n { slots['track-false'](slotProps) }\n
    \n )}\n \n ),\n input: ({ inputNode, icon, backgroundColorClasses, backgroundColorStyles }) => (\n <>\n { inputNode }\n \n { slots.thumb ? (\n \n { slots.thumb({ ...slotProps, icon }) }\n \n ) : (\n \n { !props.loading ? (\n (icon && (\n \n ))) : (\n \n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n \n )\n )}\n \n )}\n \n )}\n \n \n ),\n }}\n
    \n )\n },\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType\n","export { VSystemBar } from \"./VSystemBar.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VSystemBar } from './VSystemBar'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VSystemBar.css\";\n\n// Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { makeLayoutItemProps, useLayoutItem } from \"../../composables/layout.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, shallowRef, toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVSystemBarProps = propsFactory({\n color: String,\n height: [Number, String],\n window: Boolean,\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VSystemBar');\nexport const VSystemBar = genericComponent()({\n name: 'VSystemBar',\n props: makeVSystemBarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'color'));\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n ssrBootStyles\n } = useSsrBoot();\n const height = computed(() => props.height ?? (props.window ? 32 : 24));\n const {\n layoutItemStyles\n } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: shallowRef('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute')\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-system-bar', {\n 'v-system-bar--window': props.window\n }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VSystemBar.mjs.map","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVSystemBarProps = propsFactory({\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VSystemBar')\n\nexport const VSystemBar = genericComponent()({\n name: 'VSystemBar',\n\n props: makeVSystemBarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { ssrBootStyles } = useSsrBoot()\n const height = computed(() => props.height ?? (props.window ? 32 : 24))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: shallowRef('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VSystemBar = InstanceType\n","export { VTab } from \"./VTab.mjs\";\nexport { VTabs } from \"./VTabs.mjs\";\nexport { VTabsWindow } from \"./VTabsWindow.mjs\";\nexport { VTabsWindowItem } from \"./VTabsWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTab } from './VTab'\nexport { VTabs } from './VTabs'\nexport { VTabsWindow } from './VTabsWindow'\nexport { VTabsWindowItem } from './VTabsWindowItem'\n","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\"; // Utilities\nimport { computed, ref } from 'vue';\nimport { VTabsSymbol } from \"./shared.mjs\";\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n sliderColor: String,\n hideSlider: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text'\n }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])\n}, 'VTab');\nexport const VTab = genericComponent()({\n name: 'VTab',\n props: makeVTabProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n textColorClasses: sliderColorClasses,\n textColorStyles: sliderColorStyles\n } = useTextColor(props, 'sliderColor');\n const rootEl = ref();\n const sliderEl = ref();\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false);\n function updateSlider(_ref2) {\n let {\n value\n } = _ref2;\n if (value) {\n const prevEl = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider');\n const nextEl = sliderEl.value;\n if (!prevEl || !nextEl) return;\n const color = getComputedStyle(prevEl).color;\n const prevBox = prevEl.getBoundingClientRect();\n const nextBox = nextEl.getBoundingClientRect();\n const xy = isHorizontal.value ? 'x' : 'y';\n const XY = isHorizontal.value ? 'X' : 'Y';\n const rightBottom = isHorizontal.value ? 'right' : 'bottom';\n const widthHeight = isHorizontal.value ? 'width' : 'height';\n const prevPos = prevBox[xy];\n const nextPos = nextBox[xy];\n const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];\n const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;\n const sigma = 1.5;\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],\n transformOrigin: Array(3).fill(origin)\n }, {\n duration: 225,\n easing: standardEasing\n });\n }\n }\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(VBtn, _mergeProps({\n \"symbol\": VTabsSymbol,\n \"ref\": rootEl,\n \"class\": ['v-tab', props.class],\n \"style\": props.style,\n \"tabindex\": isSelected.value ? 0 : -1,\n \"role\": \"tab\",\n \"aria-selected\": String(isSelected.value),\n \"active\": false\n }, btnProps, attrs, {\n \"block\": props.fixed,\n \"maxWidth\": props.fixed ? 300 : undefined,\n \"onGroup:selected\": updateSlider\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && _createVNode(\"div\", {\n \"ref\": sliderEl,\n \"class\": ['v-tab__slider', sliderColorClasses.value],\n \"style\": sliderColorStyles.value\n }, null)])\n });\n });\n return forwardRefs({}, rootEl);\n }\n});\n//# sourceMappingURL=VTab.mjs.map","// Styles\nimport './VTab.sass'\n\n// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { VTabsSymbol } from './shared'\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text' as const,\n }), [\n 'active',\n 'block',\n 'flat',\n 'location',\n 'position',\n 'symbol',\n ]),\n}, 'VTab')\n\nexport const VTab = genericComponent()({\n name: 'VTab',\n\n props: makeVTabProps(),\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n\n const rootEl = ref()\n const sliderEl = ref()\n\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false)\n\n function updateSlider ({ value }: { value: boolean }) {\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0\n\n const sigma = 1.5\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n 'none',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const btnProps = VBtn.filterProps(props)\n\n return (\n \n {{\n ...slots,\n default: () => (\n <>\n { slots.default?.() ?? props.text }\n\n { !props.hideSlider && (\n \n )}\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({}, rootEl)\n },\n})\n\nexport type VTab = InstanceType\n","// Types\n\nexport const VTabsSymbol = Symbol.for('vuetify:v-tabs');\n//# sourceMappingURL=shared.mjs.map","// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VTabsSymbol: InjectionKey = Symbol.for('vuetify:v-tabs')\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTabs.css\";\n\n// Components\nimport { VTab } from \"./VTab.mjs\";\nimport { VTabsWindow } from \"./VTabsWindow.mjs\";\nimport { VTabsWindowItem } from \"./VTabsWindowItem.mjs\";\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nfunction parseItems(items) {\n if (!items) return [];\n return items.map(item => {\n if (!isObject(item)) return {\n text: item,\n value: item\n };\n return item;\n });\n}\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String,\n default: 'start'\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined\n },\n hideSlider: Boolean,\n sliderColor: String,\n ...makeVSlideGroupProps({\n mandatory: 'force',\n selectedClass: 'v-tab-item--selected'\n }),\n ...makeDensityProps(),\n ...makeTagProps()\n}, 'VTabs');\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n props: makeVTabsProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const items = computed(() => parseItems(props.items));\n const {\n densityClasses\n } = useDensity(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n const {\n scopeId\n } = useScopeId();\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n const hasWindow = !!(slots.window || props.items.length > 0);\n return _createVNode(_Fragment, null, [_createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked\n }, densityClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [{\n '--v-tabs-height': convertToUnit(props.height)\n }, backgroundColorStyles.value, props.style],\n \"role\": \"tablist\",\n \"symbol\": VTabsSymbol\n }, scopeId, attrs), {\n default: () => [slots.default?.() ?? items.value.map(item => slots.tab?.({\n item\n }) ?? _createVNode(VTab, _mergeProps(item, {\n \"key\": item.text,\n \"value\": item.value\n }), {\n default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({\n item\n }) : undefined\n }))]\n }), hasWindow && _createVNode(VTabsWindow, _mergeProps({\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"key\": \"tabs-window\"\n }, scopeId), {\n default: () => [items.value.map(item => slots.item?.({\n item\n }) ?? _createVNode(VTabsWindowItem, {\n \"value\": item.value\n }, {\n default: () => slots[`item.${item.value}`]?.({\n item\n })\n })), slots.window?.()]\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabs.mjs.map","// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VTab } from './VTab'\nimport { VTabsWindow } from './VTabsWindow'\nimport { VTabsWindowItem } from './VTabsWindowItem'\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport type TabItem = string | number | Record\n\nexport type VTabsSlot = {\n item: TabItem\n}\n\nexport type VTabsSlots = {\n default: never\n tab: VTabsSlot\n item: VTabsSlot\n window: never\n} & {\n [key: `tab.${string}`]: VTabsSlot\n [key: `item.${string}`]: VTabsSlot\n}\n\nfunction parseItems (items: readonly TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (!isObject(item)) return { text: item, value: item }\n\n return item\n })\n}\n\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n sliderColor: String,\n\n ...makeVSlideGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-tab-item--selected',\n }),\n ...makeDensityProps(),\n ...makeTagProps(),\n}, 'VTabs')\n\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n\n props: makeVTabsProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { scopeId } = useScopeId()\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n const hasWindow = !!(slots.window || props.items.length > 0)\n\n return (\n <>\n \n { slots.default?.() ?? items.value.map(item => (\n slots.tab?.({ item }) ?? (\n slots[`tab.${item.value}`]?.({ item }) : undefined,\n }}\n />\n )\n ))}\n \n\n { hasWindow && (\n \n { items.value.map(item => slots.item?.({ item }) ?? (\n slots[`item.${item.value}`]?.({ item }),\n }}\n />\n ))}\n\n { slots.window?.() }\n \n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowProps, VWindow } from \"../VWindow/VWindow.mjs\"; // Composables\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Utilities\nimport { computed, inject } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])\n}, 'VTabsWindow');\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n props: makeVTabsWindowProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const group = inject(VTabsSymbol, null);\n const _model = useProxiedModel(props, 'modelValue');\n const model = computed({\n get() {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value;\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value;\n },\n set(val) {\n _model.value = val;\n }\n });\n useRender(() => {\n const windowProps = VWindow.filterProps(props);\n return _createVNode(VWindow, _mergeProps({\n \"_as\": \"VTabsWindow\"\n }, windowProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs-window', props.class],\n \"style\": props.style,\n \"mandatory\": false,\n \"touch\": false\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindow.mjs.map","// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTabsSymbol } from './shared'\n\nexport const makeVTabsWindowProps = propsFactory({\n ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory']),\n}, 'VTabsWindow')\n\nexport const VTabsWindow = genericComponent()({\n name: 'VTabsWindow',\n\n props: makeVTabsWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VTabsSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VTabs group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VTabs, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindow = InstanceType\n","import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Components\nimport { makeVWindowItemProps, VWindowItem } from \"../VWindow/VWindowItem.mjs\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTabsWindowItemProps = propsFactory({\n ...makeVWindowItemProps()\n}, 'VTabsWindowItem');\nexport const VTabsWindowItem = genericComponent()({\n name: 'VTabsWindowItem',\n props: makeVTabsWindowItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props);\n return _createVNode(VWindowItem, _mergeProps({\n \"_as\": \"VTabsWindowItem\"\n }, windowItemProps, {\n \"class\": ['v-tabs-window-item', props.class],\n \"style\": props.style\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabsWindowItem.mjs.map","// Components\nimport { makeVWindowItemProps, VWindowItem } from '@/components/VWindow/VWindowItem'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVTabsWindowItemProps = propsFactory({\n ...makeVWindowItemProps(),\n}, 'VTabsWindowItem')\n\nexport const VTabsWindowItem = genericComponent()({\n name: 'VTabsWindowItem',\n\n props: makeVTabsWindowItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const windowItemProps = VWindowItem.filterProps(props)\n\n return (\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTabsWindowItem = InstanceType\n","export { VTextarea } from \"./VTextarea.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTextarea } from './VTextarea'\n","import { vModelText as _vModelText, withDirectives as _withDirectives, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTextarea.css\";\nimport \"../VTextField/VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { VField } from \"../VField/index.mjs\";\nimport { filterFieldProps, makeVFieldProps } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: Function,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: v => !isNaN(parseFloat(v))\n },\n maxRows: {\n type: [Number, String],\n validator: v => !isNaN(parseFloat(v))\n },\n suffix: String,\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextarea');\nexport const VTextarea = genericComponent()({\n name: 'VTextarea',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextareaProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const controlHeight = shallowRef('');\n const textareaRef = ref();\n const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = '';\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n const sizerRef = ref();\n const rows = ref(+props.rows);\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows;\n });\n function calculateInputHeight() {\n if (!props.autoGrow) return;\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return;\n const style = getComputedStyle(sizerRef.value);\n const fieldStyle = getComputedStyle(vFieldRef.value.$el);\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) + parseFloat(style.getPropertyValue('--v-input-padding-top')) + parseFloat(style.getPropertyValue('--v-field-padding-bottom'));\n const height = sizerRef.value.scrollHeight;\n const lineHeight = parseFloat(style.lineHeight);\n const minHeight = Math.max(parseFloat(props.rows) * lineHeight + padding, parseFloat(fieldStyle.getPropertyValue('--v-input-control-height')));\n const maxHeight = parseFloat(props.maxRows) * lineHeight + padding || Infinity;\n const newHeight = clamp(height ?? 0, minHeight, maxHeight);\n rows.value = Math.floor((newHeight - padding) / lineHeight);\n controlHeight.value = convertToUnit(newHeight);\n });\n }\n onMounted(calculateInputHeight);\n watch(model, calculateInputHeight);\n watch(() => props.rows, calculateInputHeight);\n watch(() => props.maxRows, calculateInputHeight);\n watch(() => props.density, calculateInputHeight);\n let observer;\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight);\n observer.observe(sizerRef.value);\n } else {\n observer?.disconnect();\n }\n });\n onBeforeUnmount(() => {\n observer?.disconnect();\n });\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-textarea v-text-field', {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"style\": {\n '--v-textarea-control-height': controlHeight.value\n },\n \"onClick\": onControlClick,\n \"onMousedown\": onControlMousedown,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner']\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"centerAffix\": rows.value === 1 && !isPlainOrUnderlined.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [props.prefix]), _withDirectives(_createVNode(\"textarea\", _mergeProps({\n \"ref\": textareaRef,\n \"class\": fieldClass,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"placeholder\": props.placeholder,\n \"rows\": props.rows,\n \"name\": props.name,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]), props.autoGrow && _withDirectives(_createVNode(\"textarea\", {\n \"class\": [fieldClass, 'v-textarea__sizer'],\n \"id\": `${slotProps.id}-sizer`,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"ref\": sizerRef,\n \"readonly\": true,\n \"aria-hidden\": \"true\"\n }, null), [[_vModelText, model.value]]), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [props.suffix])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef);\n }\n});\n//# sourceMappingURL=VTextarea.mjs.map","// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent()({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref()\n const vFieldRef = ref()\n const controlHeight = shallowRef('')\n const textareaRef = ref()\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref()\n const rows = ref(+props.rows)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = +props.rows\n })\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n \n { props.prefix }\n \n )}\n\n \n\n { props.autoGrow && (\n \n )}\n\n { props.suffix && (\n \n { props.suffix }\n \n )}\n \n ),\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType\n","export { VThemeProvider } from \"./VThemeProvider.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VThemeProvider } from './VThemeProvider'\n","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VThemeProvider.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\";\nexport const makeVThemeProviderProps = propsFactory({\n withBackground: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeTagProps()\n}, 'VThemeProvider');\nexport const VThemeProvider = genericComponent()({\n name: 'VThemeProvider',\n props: makeVThemeProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n return () => {\n if (!props.withBackground) return slots.default?.();\n return _createVNode(props.tag, {\n \"class\": ['v-theme-provider', themeClasses.value, props.class],\n \"style\": props.style\n }, {\n default: () => [slots.default?.()]\n });\n };\n }\n});\n//# sourceMappingURL=VThemeProvider.mjs.map","// Styles\nimport './VThemeProvider.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\nexport const makeVThemeProviderProps = propsFactory({\n withBackground: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeTagProps(),\n}, 'VThemeProvider')\n\nexport const VThemeProvider = genericComponent()({\n name: 'VThemeProvider',\n\n props: makeVThemeProviderProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n\n return () => {\n if (!props.withBackground) return slots.default?.()\n\n return (\n \n { slots.default?.() }\n \n )\n }\n },\n})\n\nexport type VThemeProvider = InstanceType\n","export { VTimeline } from \"./VTimeline.mjs\";\nexport { VTimelineItem } from \"./VTimelineItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTimeline } from './VTimeline'\nexport { VTimelineItem } from './VTimelineItem'\n","import { createVNode as _createVNode, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VTimeline.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, only, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { makeVTimelineItemProps } from \"./VTimelineItem.mjs\";\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: v => ['center', 'start'].includes(v)\n },\n direction: {\n type: String,\n default: 'vertical',\n validator: v => ['vertical', 'horizontal'].includes(v)\n },\n justify: {\n type: String,\n default: 'auto',\n validator: v => ['auto', 'center'].includes(v)\n },\n side: {\n type: String,\n validator: v => v == null || ['start', 'end'].includes(v)\n },\n lineThickness: {\n type: [String, Number],\n default: 2\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: v => ['start', 'end', 'both'].includes(v)\n },\n ...only(makeVTimelineItemProps({\n lineInset: 0\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTimeline');\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n props: makeVTimelineProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n rtlClasses\n } = useRtl();\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor')\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'dotColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size')\n }\n });\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;\n return side && `v-timeline--side-${side}`;\n });\n const truncateClasses = computed(() => {\n const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];\n switch (props.truncateLine) {\n case 'both':\n return classes;\n case 'start':\n return classes[0];\n case 'end':\n return classes[1];\n default:\n return null;\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {\n 'v-timeline--inset-line': !!props.lineInset\n }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness)\n }, props.style]\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VTimeline.mjs.map","// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport { makeVTimelineItemProps } from './VTimelineItem'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop,\n justify: {\n type: String,\n default: 'auto',\n validator: (v: any) => ['auto', 'center'].includes(v),\n },\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop,\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop,\n\n ...only(makeVTimelineItemProps({\n lineInset: 0,\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTimeline')\n\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n\n props: makeVTimelineProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'dotColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VTimeline = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VTimelineDivider } from \"./VTimelineDivider.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.mjs\";\nimport { makeElevationProps } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { ref, shallowRef, watch } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\n// Types\nexport const makeVTimelineItemProps = propsFactory({\n density: String,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps()\n}, 'VTimelineItem');\nexport const VTimelineItem = genericComponent()({\n name: 'VTimelineItem',\n props: makeVTimelineItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n dimensionStyles\n } = useDimension(props);\n const dotSize = shallowRef(0);\n const dotRef = ref();\n watch(dotRef, newValue => {\n if (!newValue) return;\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0;\n }, {\n flush: 'post'\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-item', {\n 'v-timeline-item--fill-dot': props.fillDot\n }, props.class],\n \"style\": [{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n '--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)\n }, props.style]\n }, [_createVNode(\"div\", {\n \"class\": \"v-timeline-item__body\",\n \"style\": dimensionStyles.value\n }, [slots.default?.()]), _createVNode(VTimelineDivider, {\n \"ref\": dotRef,\n \"hideDot\": props.hideDot,\n \"icon\": props.icon,\n \"iconColor\": props.iconColor,\n \"size\": props.size,\n \"elevation\": props.elevation,\n \"dotColor\": props.dotColor,\n \"fillDot\": props.fillDot,\n \"rounded\": props.rounded\n }, {\n default: slots.icon\n }), props.density !== 'compact' && _createVNode(\"div\", {\n \"class\": \"v-timeline-item__opposite\"\n }, [!props.hideOpposite && slots.opposite?.()])]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineItem.mjs.map","// Components\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VTimelineItemSlots = {\n default: never\n icon: never\n opposite: never\n}\n\nexport const makeVTimelineItemProps = propsFactory({\n density: String as PropType<'default' | 'compact'>,\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: IconValue,\n iconColor: String,\n lineInset: [Number, String],\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n}, 'VTimelineItem')\n\nexport const VTimelineItem = genericComponent()({\n name: 'VTimelineItem',\n\n props: makeVTimelineItemProps(),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = shallowRef(0)\n const dotRef = ref()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n useRender(() => (\n \n \n { slots.default?.() }\n \n\n \n\n { props.density !== 'compact' && (\n
    \n { !props.hideOpposite && slots.opposite?.() }\n
    \n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VTimelineItem = InstanceType\n","import { resolveDirective as _resolveDirective, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVTimelineDividerProps = propsFactory({\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps()\n}, 'VTimelineDivider');\nexport const VTimelineDivider = genericComponent()({\n name: 'VTimelineDivider',\n props: makeVTimelineDividerProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props, 'v-timeline-divider__dot');\n const {\n backgroundColorStyles,\n backgroundColorClasses\n } = useBackgroundColor(toRef(props, 'dotColor'));\n const {\n roundedClasses\n } = useRounded(props, 'v-timeline-divider__dot');\n const {\n elevationClasses\n } = useElevation(props);\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles\n } = useBackgroundColor(toRef(props, 'lineColor'));\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-timeline-divider', {\n 'v-timeline-divider--fill-dot': props.fillDot\n }, props.class],\n \"style\": props.style\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__before', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null), !props.hideDot && _createVNode(\"div\", {\n \"key\": \"dot\",\n \"class\": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],\n \"style\": sizeStyles.value\n }, [_createVNode(\"div\", {\n \"class\": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],\n \"style\": backgroundColorStyles.value\n }, [!slots.default ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"color\": props.iconColor,\n \"icon\": props.icon,\n \"size\": props.size\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"icon-defaults\",\n \"disabled\": !props.icon,\n \"defaults\": {\n VIcon: {\n color: props.iconColor,\n icon: props.icon,\n size: props.size\n }\n }\n }, slots.default)])]), _createVNode(\"div\", {\n \"class\": ['v-timeline-divider__after', lineColorClasses.value],\n \"style\": lineColorStyles.value\n }, null)]));\n return {};\n }\n});\n//# sourceMappingURL=VTimelineDivider.mjs.map","// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVTimelineDividerProps = propsFactory({\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n icon: IconValue,\n iconColor: String,\n lineColor: String,\n\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n}, 'VTimelineDivider')\n\nexport const VTimelineDivider = genericComponent()({\n name: 'VTimelineDivider',\n\n props: makeVTimelineDividerProps(),\n\n setup (props, { slots }) {\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n const {\n backgroundColorClasses: lineColorClasses,\n backgroundColorStyles: lineColorStyles,\n } = useBackgroundColor(toRef(props, 'lineColor'))\n\n useRender(() => (\n \n \n\n { !props.hideDot && (\n \n \n { !slots.default ? (\n \n ) : (\n \n )}\n \n \n )}\n\n \n \n ))\n\n return {}\n },\n})\n\nexport type VTimelineDivider = InstanceType\n","export { VToolbar } from \"./VToolbar.mjs\";\nexport { VToolbarTitle } from \"./VToolbarTitle.mjs\";\nexport { VToolbarItems } from \"./VToolbarItems.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VToolbar } from './VToolbar'\nexport { VToolbarTitle } from './VToolbarTitle'\nexport { VToolbarItems } from './VToolbarItems'\n","import { createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeVariantProps } from \"../../composables/variant.mjs\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVToolbarItemsProps = propsFactory({\n ...makeComponentProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VToolbarItems');\nexport const VToolbarItems = genericComponent()({\n name: 'VToolbarItems',\n props: makeVToolbarItemsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant')\n }\n });\n useRender(() => _createVNode(\"div\", {\n \"class\": ['v-toolbar-items', props.class],\n \"style\": props.style\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VToolbarItems.mjs.map","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVToolbarItemsProps = propsFactory({\n ...makeComponentProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VToolbarItems')\n\nexport const VToolbarItems = genericComponent()({\n name: 'VToolbarItems',\n\n props: makeVToolbarItemsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n height: 'inherit',\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VToolbarItems = InstanceType\n","export { VTooltip } from \"./VTooltip.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VTooltip } from './VTooltip'\n","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.mjs\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.mjs\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { useScopeId } from \"../../composables/scopeId.mjs\"; // Utilities\nimport { computed, mergeProps, ref } from 'vue';\nimport { genericComponent, getUid, omit, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: false\n }), ['absolute', 'persistent'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = getUid();\n const id = computed(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = computed(() => {\n if (props.transition) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"persistent\": true,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.mjs.map","// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end' as const,\n locationStrategy: 'connected' as const,\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto' as const,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: false,\n }), [\n 'absolute',\n 'persistent',\n ]),\n}, 'VTooltip')\n\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n\n props: makeVTooltipProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const overlay = ref()\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-describedby': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VTooltip = InstanceType\n","export { VValidation } from \"./VValidation.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VValidation } from './VValidation'\n","// Composables\nimport { makeValidationProps, useValidation } from \"../../composables/validation.mjs\"; // Utilities\nimport { genericComponent } from \"../../util/index.mjs\"; // Types\nexport const VValidation = genericComponent()({\n name: 'VValidation',\n props: makeValidationProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const validation = useValidation(props, 'validation');\n return () => slots.default?.(validation);\n }\n});\n//# sourceMappingURL=VValidation.mjs.map","// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport type VValidationSlots = {\n default: ReturnType\n}\n\nexport const VValidation = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VValidationSlots,\n) => GenericProps>()({\n name: 'VValidation',\n\n props: makeValidationProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const validation = useValidation(props, 'validation')\n\n return () => slots.default?.(validation)\n },\n})\n\nexport type VValidation = InstanceType\n","export { VWindow } from \"./VWindow.mjs\";\nexport { VWindowItem } from \"./VWindowItem.mjs\";\n//# sourceMappingURL=index.mjs.map","export { VWindow } from './VWindow'\nexport { VWindowItem } from './VWindowItem'\n","export { ClickOutside } from \"./click-outside/index.mjs\"; // export { Color } from './color'\nexport { Intersect } from \"./intersect/index.mjs\";\nexport { Mutate } from \"./mutate/index.mjs\";\nexport { Resize } from \"./resize/index.mjs\";\nexport { Ripple } from \"./ripple/index.mjs\";\nexport { Scroll } from \"./scroll/index.mjs\";\nexport { Touch } from \"./touch/index.mjs\";\nexport { Tooltip } from \"./tooltip/index.mjs\";\n//# sourceMappingURL=index.mjs.map","export { ClickOutside } from './click-outside'\n// export { Color } from './color'\nexport { Intersect } from './intersect'\nexport { Mutate } from './mutate'\nexport { Resize } from './resize'\nexport { Ripple } from './ripple'\nexport { Scroll } from './scroll'\nexport { Touch } from './touch'\nexport { Tooltip } from './tooltip'\n","// Types\n\nfunction mounted(el, binding) {\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n once,\n immediate,\n ...modifierKeys\n } = modifiers;\n const defaultValue = !Object.keys(modifierKeys).length;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue\n }\n };\n const observer = new MutationObserver(function () {\n let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n handler?.(mutations, observer);\n if (once) unmounted(el, binding);\n });\n if (immediate) handler?.([], observer);\n el._mutate = Object(el._mutate);\n el._mutate[binding.instance.$.uid] = {\n observer\n };\n observer.observe(el, options);\n}\nfunction unmounted(el, binding) {\n if (!el._mutate?.[binding.instance.$.uid]) return;\n el._mutate[binding.instance.$.uid].observer.disconnect();\n delete el._mutate[binding.instance.$.uid];\n}\nexport const Mutate = {\n mounted,\n unmounted\n};\nexport default Mutate;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { MutationOptions } from '@/composables/mutationObserver'\n\nexport interface MutationDirectiveBinding extends Omit {\n value: MutationCallback | { handler: MutationCallback, options?: MutationObserverInit }\n modifiers: MutationOptions\n}\n\nfunction mounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { once, immediate, ...modifierKeys } = modifiers\n const defaultValue = !Object.keys(modifierKeys).length\n\n const { handler, options } = typeof value === 'object'\n ? value\n : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue,\n },\n }\n\n const observer = new MutationObserver((\n mutations: MutationRecord[] = [],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (once) unmounted(el, binding)\n })\n\n if (immediate) handler?.([], observer)\n\n el._mutate = Object(el._mutate)\n el._mutate![binding.instance!.$.uid] = { observer }\n\n observer.observe(el, options)\n}\n\nfunction unmounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n if (!el._mutate?.[binding.instance!.$.uid]) return\n\n el._mutate[binding.instance!.$.uid]!.observer.disconnect()\n delete el._mutate[binding.instance!.$.uid]\n}\n\nexport const Mutate = {\n mounted,\n unmounted,\n}\n\nexport default Mutate\n","// Types\n\nfunction mounted(el, binding) {\n const handler = binding.value;\n const options = {\n passive: !binding.modifiers?.active\n };\n window.addEventListener('resize', handler, options);\n el._onResize = Object(el._onResize);\n el._onResize[binding.instance.$.uid] = {\n handler,\n options\n };\n if (!binding.modifiers?.quiet) {\n handler();\n }\n}\nfunction unmounted(el, binding) {\n if (!el._onResize?.[binding.instance.$.uid]) return;\n const {\n handler,\n options\n } = el._onResize[binding.instance.$.uid];\n window.removeEventListener('resize', handler, options);\n delete el._onResize[binding.instance.$.uid];\n}\nexport const Resize = {\n mounted,\n unmounted\n};\nexport default Resize;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit {\n value: () => void\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![binding.instance!.$.uid] = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n if (!el._onResize?.[binding.instance!.$.uid]) return\n\n const { handler, options } = el._onResize[binding.instance!.$.uid]!\n\n window.removeEventListener('resize', handler, options)\n\n delete el._onResize[binding.instance!.$.uid]\n}\n\nexport const Resize = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","// Types\n\nfunction mounted(el, binding) {\n const {\n self = false\n } = binding.modifiers ?? {};\n const value = binding.value;\n const options = typeof value === 'object' && value.options || {\n passive: true\n };\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler;\n const target = self ? el : binding.arg ? document.querySelector(binding.arg) : window;\n if (!target) return;\n target.addEventListener('scroll', handler, options);\n el._onScroll = Object(el._onScroll);\n el._onScroll[binding.instance.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target\n };\n}\nfunction unmounted(el, binding) {\n if (!el._onScroll?.[binding.instance.$.uid]) return;\n const {\n handler,\n options,\n target = el\n } = el._onScroll[binding.instance.$.uid];\n target.removeEventListener('scroll', handler, options);\n delete el._onScroll[binding.instance.$.uid];\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) return;\n unmounted(el, binding);\n mounted(el, binding);\n}\nexport const Scroll = {\n mounted,\n unmounted,\n updated\n};\nexport default Scroll;\n//# sourceMappingURL=index.mjs.map","// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![binding.instance!.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (!el._onScroll?.[binding.instance!.$.uid]) return\n\n const { handler, options, target = el } = el._onScroll[binding.instance!.$.uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[binding.instance!.$.uid]\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el, binding)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Components\nimport { VTooltip } from \"../../components/VTooltip/index.mjs\"; // Composables\nimport { useDirectiveComponent } from \"../../composables/directiveComponent.mjs\"; // Types\nexport const Tooltip = useDirectiveComponent(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value\n };\n});\nexport default Tooltip;\n//# sourceMappingURL=index.mjs.map","// Components\nimport { VTooltip } from '@/components/VTooltip'\n\n// Composables\nimport { useDirectiveComponent } from '@/composables/directiveComponent'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface TooltipDirectiveBinding extends Omit, 'arg' | 'value'> {\n arg?: { [T in Anchor]: T extends `${infer A} ${infer B}` ? `${A}-${B}` : T }[Anchor]\n value: boolean | string | Record\n}\n\nexport const Tooltip = useDirectiveComponent(VTooltip, binding => {\n return {\n activator: 'parent',\n location: binding.arg?.replace('-', ' '),\n text: typeof binding.value === 'boolean' ? undefined : binding.value,\n }\n})\n\nexport default Tooltip\n","// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue';\nimport { consoleError, isObject } from \"../util/index.mjs\"; // Types\nexport function useDirectiveComponent(component, props) {\n const concreteComponent = typeof component === 'string' ? resolveComponent(component) : component;\n const hook = mountComponent(concreteComponent, props);\n return {\n mounted: hook,\n updated: hook,\n unmounted(el) {\n render(null, el);\n }\n };\n}\nfunction mountComponent(component, props) {\n return function (el, binding, vnode) {\n const _props = typeof props === 'function' ? props(binding) : props;\n const text = binding.value?.text ?? binding.value ?? _props?.text;\n const value = isObject(binding.value) ? binding.value : {};\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent;\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance.$ ? findComponentParent(vnode, binding.instance.$)?.provides : vnode.ctx?.provides) ?? binding.instance.$.provides;\n const node = h(component, mergeProps(_props, value), children);\n node.appContext = Object.assign(Object.create(null), binding.instance.$.appContext, {\n provides\n });\n render(node, el);\n };\n}\nfunction findComponentParent(vnode, root) {\n // Walk the tree from root until we find the child vnode\n const stack = new Set();\n const walk = children => {\n for (const child of children) {\n if (!child) continue;\n if (child === vnode || child.el && vnode.el && child.el === vnode.el) {\n return true;\n }\n stack.add(child);\n let result;\n if (child.suspense) {\n result = walk([child.ssContent]);\n } else if (Array.isArray(child.children)) {\n result = walk(child.children);\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree]);\n }\n if (result) {\n return result;\n }\n stack.delete(child);\n }\n return false;\n };\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides');\n return root;\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse();\n for (const child of result) {\n if (child.component) {\n return child.component;\n }\n }\n return root;\n}\n//# sourceMappingURL=directiveComponent.mjs.map","// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue'\nimport { consoleError, isObject } from '@/util'\n\n// Types\nimport type {\n Component,\n ComponentInternalInstance,\n ComponentPublicInstance,\n ConcreteComponent,\n DirectiveBinding,\n ObjectDirective,\n VNode,\n} from 'vue'\nimport type { ComponentInstance } from '@/util'\n\ntype ExcludeProps =\n | 'v-slots'\n | `v-slot:${string}`\n | `on${Uppercase}${string}`\n | 'key'\n | 'ref'\n | 'ref_for'\n | 'ref_key'\n | '$children'\n\ndeclare const CustomDirectiveSymbol: unique symbol\ntype DirectiveHook = (el: any, binding: B, vnode: VNode, prevVNode: VNode) => void\nexport interface CustomDirective {\n created?: DirectiveHook\n beforeMount?: DirectiveHook\n mounted?: DirectiveHook\n beforeUpdate?: DirectiveHook\n updated?: DirectiveHook\n beforeUnmount?: DirectiveHook\n unmounted?: DirectiveHook\n [CustomDirectiveSymbol]: true\n}\n\nexport function useDirectiveComponent <\n Binding extends DirectiveBinding,\n> (component: string | Component, props?: (binding: Binding) => Record): CustomDirective\nexport function useDirectiveComponent <\n C extends Component,\n Props = Omit['$props'], ExcludeProps>\n> (component: string | C, props?: Record): ObjectDirective\nexport function useDirectiveComponent (\n component: string | Component,\n props?: Record | ((binding: DirectiveBinding) => Record)\n): ObjectDirective | CustomDirective {\n const concreteComponent = (typeof component === 'string'\n ? resolveComponent(component)\n : component) as ConcreteComponent\n\n const hook = mountComponent(concreteComponent, props)\n\n return {\n mounted: hook,\n updated: hook,\n unmounted (el: HTMLElement) {\n render(null, el)\n },\n }\n}\n\nfunction mountComponent (component: ConcreteComponent, props?: Record | ((binding: DirectiveBinding) => Record)) {\n return function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n const _props = typeof props === 'function' ? props(binding) : props\n const text = binding.value?.text ?? binding.value ?? _props?.text\n const value = isObject(binding.value) ? binding.value : {}\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance!.$\n ? findComponentParent(vnode, binding.instance!.$)?.provides\n : vnode.ctx?.provides) ?? binding.instance!.$.provides\n\n const node = h(component, mergeProps(_props, value), children)\n node.appContext = Object.assign(\n Object.create(null),\n (binding.instance as ComponentPublicInstance).$.appContext,\n { provides }\n )\n\n render(node, el)\n }\n}\n\nfunction findComponentParent (vnode: VNode, root: ComponentInternalInstance): ComponentInternalInstance | null {\n // Walk the tree from root until we find the child vnode\n const stack = new Set()\n const walk = (children: VNode[]): boolean => {\n for (const child of children) {\n if (!child) continue\n\n if (child === vnode || (child.el && vnode.el && child.el === vnode.el)) {\n return true\n }\n\n stack.add(child)\n let result\n if (child.suspense) {\n result = walk([child.ssContent!])\n } else if (Array.isArray(child.children)) {\n result = walk(child.children as VNode[])\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree])\n }\n if (result) {\n return result\n }\n stack.delete(child)\n }\n\n return false\n }\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides')\n return root\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse()\n for (const child of result) {\n if (child.component) {\n return child.component\n }\n }\n return root\n}\n"],"names":["modules","entry","mainEntry","parcelRequireName","globalName","globalObject","globalThis","self","window","global","previousRequire","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","i","length","mainExports","define","amd","_ref","app","parcelHelpers","defineInteropFlag","export","navigateTo","_asyncToGenerator","_objectSpread","_tsGenerator","_vue","_indexVue","_indexVueDefault","interopDefault","_classroomVue","_classroomVueDefault","_deployVue","_deployVueDefault","_vuetify","_mdiMjs","_components","_directives","vuetify","createVuetify","components","directives","icons","defaultSet","aliases","sets","mdi","getParams","match","values","result","slice","params","fromEntries","keys","Array","from","route","path","matchAll","map","key","_","url","replace","history","replaceState","pushState","router","routes","view","_state","potentialMatches","default","station","location","search","RegExp","redirect","find","unmount","createApp","use","mount","document","body","apply","arguments","addEventListener","e","target","matches","preventDefault","href","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","value","error","done","Promise","then","_async_to_generator","fn","args","undefined","a","__esModule","exportAll","source","dest","forEach","prototype","hasOwnProperty","enumerable","destName","_object_spread","_definePropertyJs","ownKeys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","_define_property","obj","configurable","writable","_tslib","__generator","__extends","__assign","__rest","__decorate","__param","__esDecorate","__runInitializers","__propKey","__setFunctionName","__metadata","__awaiter","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__spreadArray","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","__disposeResources","__rewriteRelativeImportExtension","_typeOf","extendStatics","d","b","setPrototypeOf","__proto__","p","TypeError","String","__","constructor","create","assign","t","s","n","indexOf","propertyIsEnumerable","decorators","desc","c","r","Reflect","decorate","paramIndex","decorator","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","kind","descriptor","context","access","addInitializer","push","set","init","unshift","thisArg","useValue","prefix","description","metadataKey","metadataValue","metadata","_arguments","P","generator","fulfilled","step","next","rejected","adopt","y","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","v","op","pop","o","m","k","k2","ar","il","j","jl","to","pack","l","asyncIterator","q","AsyncIterator","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","receiver","state","has","env","async","dispose","inner","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","fail","hasError","preserveJsx","test","tsx","ext","cm","toLowerCase","_type_of","compile","_runtimeDom","renderer","Transition","TransitionGroup","VueElement","createSSRApp","defineCustomElement","defineSSRCustomElement","hydrate","initDirectivesForSSR","render","useCssModule","useCssVars","useHost","useShadowRoot","vModelCheckbox","vModelDynamic","vModelRadio","vModelSelect","vModelText","vShow","withKeys","withModifiers","_assertThisInitialized","_classCallCheck","_createClass","_inherits","_slicedToArray","_toConsumableArray","_createSuper","_runtimeCore","_shared","policy","tt","trustedTypes","createPolicy","createHTML","val","unsafeToTrustedHTML","doc","templateContainer","createElement","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","type","css","Boolean","duration","Number","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","extend","BaseTransitionPropsValidators","props","param","slots","h","BaseTransition","resolveTransitionProps","displayName","callHook","hook","isArray","h2","hasExplicitCallback","some","rawProps","baseProps","_rawProps_name","_rawProps_enterFromClass","_rawProps_enterActiveClass","_rawProps_enterToClass","_rawProps_appearFromClass","_rawProps_appearActiveClass","_rawProps_appearToClass","_rawProps_leaveFromClass","_rawProps_leaveActiveClass","_rawProps_leaveToClass","durations","normalizeDuration","isObject","NumberOf","enter","leave","enterDuration","leaveDuration","onBeforeEnter","onEnter","onEnterCancelled","onLeave","onLeaveCancelled","_baseProps_onBeforeAppear","onBeforeAppear","_baseProps_onAppear","onAppear","_baseProps_onAppearCancelled","onAppearCancelled","finishEnter","el","isAppear","removeTransitionClass","finishLeave","_isLeaving","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","toNumber","cls","split","classList","add","Set","remove","_vtc","size","cb","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","setTimeout","_getTransitionInfo","getTransitionInfo","timeout","propCount","endEvent","ended","end","removeEventListener","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","Math","max","hasTransform","toString","delays","_Math","toMs","offsetHeight","vShowOriginalDisplay","vShowHidden","beforeMount","param1","transition","style","display","beforeEnter","setDisplay","mounted","updated","oldValue","beforeUnmount","CSS_VAR_TEXT","getter","instance","getCurrentInstance","updateTeleports","ut","vars","proxy","querySelectorAll","uid","node","setVarsOnNode","setVars","ce","setVarsOnVNode","vnode","shapeFlag","suspense","activeBranch","pendingBranch","isHydrating","effects","component","subTree","Fragment","children","Static","anchor","nextSibling","onBeforeMount","watchPostEffect","onMounted","ob","MutationObserver","observe","parentNode","childList","onUnmounted","disconnect","nodeType","cssText","setProperty","displayRE","importantRE","setStyle","startsWith","prefixed","autoPrefix","rawName","cached","prefixCache","camelize","capitalize","prefixes","hyphenate","xlinkNS","patchAttr","isSVG","isBoolean","isSpecialBooleanAttr","removeAttributeNS","setAttributeNS","includeBooleanAttr","removeAttribute","setAttribute","isSymbol","patchDOMProp","parentComponent","attrName","tag","tagName","includes","getAttribute","newValue","_value","needRemove","event","handler","options","veiKey","optionsModifierRE","cachedNow","isNativeOn","charCodeAt","REMOVAL","extraOptions","_createApp","Comp","defineComponent","isPlainObject","VueCustomElement","_super","initialProps","def","BaseClass","_def","_this","_props","_isVueCE","_instance","_app","_nonce","nonce","_connected","_resolved","_numberProps","_styleChildren","WeakSet","_ob","shadowRoot","_root","attachShadow","mode","__asyncLoader","_resolveProps","isConnected","_parseSlots","host","_parent","_setParent","_update","_pendingResolve","_resolveDef","provides","nextTick","_this1","attributes","_setAttr","mutations","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","attributeName","numberProps","isAsync","opt","_applyStyles","_mount","asyncDef","_loop","hasOwn","unref","exposed","__VUE_PROD_DEVTOOLS__","configureApp","_ceVNode","_createVNode","declaredPropKeys","_setProp","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_step1","_iterator1","_getProp","hasAttribute","camelKey","shouldReflect","shouldUpdate","onVnodeMounted","onVnodeUpdated","_renderSlots","createVNode","isCE","dispatch","dispatchEvent","CustomEvent","detail","emit","_len","_key","owner","textContent","prepend","_slots","firstChild","slotName","removeChild","outlets","_teleportTarget","scopeId","__scopeId","content","walker","createTreeWalker","child","nextNode","insertBefore","comp","HTMLElement","_class","caller","EMPTY_OBJ","__cssModules","positionMap","WeakMap","newPositionMap","moveCbKey","enterCbKey","moveClass","setup","prevChildren","useTransitionState","onUpdated","root","clone","container","cloneNode","appendChild","callPendingCbs","recordPosition","movedChildren","applyTranslation","transform","webkitTransform","transitionDuration","propertyName","toRaw","cssTransitionProps","Element","setTransitionHooks","resolveTransitionHooks","getBoundingClientRect","getTransitionRawChildren","i1","child1","oldPos","newPos","dx","left","dy","top","getModelAssigner","invokeArrayFns","onCompositionStart","composing","onCompositionEnd","Event","assignKey","created","_param_modifiers","modifiers","lazy","trim","number","castToNumber","domValue","looseToNumber","beforeUpdate","elValue","activeElement","deep","modelValue","_modelValue","elementValue","getValue","checked","index","looseIndexOf","found","filtered","splice","isSet","cloned","getCheckboxValue","setChecked","binding","looseEqual","isSetModel","selectedVal","selected","multiple","_assigning","setSelected","_binding","isMultiple","isArrayValue","_ret","option","optionValue","optionType","selectedIndex","callModelHook","prevVNode","resolveDynamicModel","modelToUse","systemModifiers","modifierGuards","stop","stopPropagation","prevent","currentTarget","ctrl","ctrlKey","shiftKey","alt","altKey","meta","metaKey","button","middle","right","exact","_withMods","cacheKey","join","guard","keyNames","esc","space","up","down","_withKeys","eventKey","rendererOptions","patchProp","prevValue","nextValue","namespace","transitionClasses","className","patchStyle","prev","isCssString","isString","hasControlledDisplay","prevStyle","key1","key2","cssVarText","isOn","isModelListener","patchEvent","invokers","existingInvoker","invoker","_parseName","parseName","_vts","attached","Date","now","callWithAsyncErrorHandling","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","e2","shouldSetAsProp","isFunction","_trueValue","_falseValue","insert","is","createElementNS","createText","text","createTextNode","createComment","setText","nodeValue","setElementText","querySelector","selector","setScopeId","insertStaticContent","start","before","previousSibling","lastChild","innerHTML","template","wrapper","enabledHydration","ensureRenderer","createRenderer","ensureHydrationRenderer","createHydrationRenderer","_ensureRenderer","_ensureHydrationRenderer","containerOrSelector","normalizeContainer","_component","resolveRootNamespace","SVGElement","MathMLElement","ssrDirectiveInitialized","getSSRProps","toUpperCase","_assert_this_initialized","ReferenceError","_class_call_check","Constructor","_defineProperties","_create_class","protoProps","staticProps","_setPrototypeOfJs","subClass","superClass","_set_prototype_of","_sliced_to_array","_arrayWithHolesJs","_iterableToArrayLimitJs","_nonIterableRestJs","_unsupportedIterableToArrayJs","arr","_array_with_holes","_iterable_to_array_limit","_s","_e","_i","_arr","_n","_d","_non_iterable_rest","_unsupported_iterable_to_array","_arrayLikeToArrayJs","minLen","_array_like_to_array","len","arr2","_to_consumable_array","_arrayWithoutHolesJs","_iterableToArrayJs","_nonIterableSpreadJs","_array_without_holes","_iterable_to_array","iter","_non_iterable_spread","_create_super","_getPrototypeOfJs","_isNativeReflectConstructJs","_possibleConstructorReturnJs","Derived","hasNativeReflectConstruct","Super","construct","_get_prototype_of","getPrototypeOf","_is_native_reflect_construct","valueOf","_possible_constructor_return","_assertThisInitializedJs","_typeOfJs","_obj","devtools$1","_obj1","internalSetCurrentInstance","setInSSRSetupState","installWithProxy","_reactivity","EffectScope","ReactiveEffect","TrackOpTypes","TriggerOpTypes","customRef","effect","effectScope","getCurrentScope","getCurrentWatcher","isProxy","isReactive","isReadonly","isRef","isShallow","markRaw","onScopeDispose","onWatcherCleanup","proxyRefs","reactive","readonly","ref","shallowReactive","shallowReadonly","shallowRef","toRef","toRefs","toValue","triggerRef","normalizeClass","normalizeProps","normalizeStyle","toDisplayString","toHandlerKey","Comment","DeprecationTypes","ErrorCodes","ErrorTypeStrings","KeepAlive","Suspense","Teleport","Text","assertNumber","callWithErrorHandling","cloneVNode","compatUtils","computed","createBlock","createCommentVNode","createElementBlock","createBaseVNode","createPropsRestProxy","createSlots","createStaticVNode","createTextVNode","defineAsyncComponent","defineEmits","defineExpose","defineModel","defineOptions","defineProps","defineSlots","devtools","guardReactiveProps","handleError","hasInjectionContext","hydrateOnIdle","hydrateOnInteraction","hydrateOnMediaQuery","hydrateOnVisible","initCustomFormatter","inject","isMemoSame","isRuntimeOnly","isVNode","mergeDefaults","mergeModels","mergeProps","onActivated","onBeforeUnmount","onBeforeUpdate","onDeactivated","onErrorCaptured","onRenderTracked","onRenderTriggered","onServerPrefetch","openBlock","popScopeId","provide","pushScopeId","queuePostFlushCb","registerRuntimeCompiler","renderList","renderSlot","resolveComponent","resolveDirective","resolveDynamicComponent","resolveFilter","setBlockTracking","setDevtoolsHook","ssrContextKey","ssrUtils","toHandlers","transformVNodeArgs","useAttrs","useId","useModel","useSSRContext","useSlots","useTemplateRef","version","warn","watch","watchEffect","watchSyncEffect","withAsyncContext","withCtx","withDefaults","withDirectives","withMemo","withScopeId","_defineProperty","isWarning","warn$1","msg","pauseTracking","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","currentVNode","normalizedStack","last","recurseCount","parentInstance","_a","_b","JSON","stringify","formatComponentName","logs","_console","warnArgs","isRoot","open","close","formatProp","console","resetTracking","SETUP_FUNCTION","RENDER_FUNCTION","NATIVE_EVENT_HANDLER","COMPONENT_EVENT_HANDLER","VNODE_HOOK","DIRECTIVE_HOOK","TRANSITION_HOOK","APP_ERROR_HANDLER","APP_WARN_HANDLER","FUNCTION_REF","ASYNC_COMPONENT_LOADER","SCHEDULER","COMPONENT_UPDATE","APP_UNMOUNT_CLEANUP","ErrorTypeStrings$1","isPromise","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","queueJob","job","flags","jobId","getId","lastJob","findInsertionIndex","middleJob","middleJobId","queueFlush","flushJobs","seen","NOOP","job1","flushPostFlushCbs","flushPreFlushCbs","_activePostFlushCbs","deduped","sort","Infinity","buffer","devtoolsNotInstalled","emit$1","_devtools$1","setDevtoolsHook$1","enabled","navigator","userAgent","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","devtoolsComponentAdded","createDevtoolsComponentHook","devtoolsComponentUpdated","_devtoolsComponentRemoved","devtoolsComponentRemoved","cleanupBuffer","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","_id","ctx","renderFnWithContext","prevInstance","_c","getComponentPublicInstance","bindings","dirs","_directives_i","dir","tmp","traverse","invokeDirectiveHook","oldBindings","TeleportEndKey","isTeleport","__isTeleport","isTeleportDisabled","disabled","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","moveTeleport","parentAnchor","move","moveType","targetAnchor","isReorder","process","n1","n2","parentSuspense","slotScopeIds","optimized","internals","mountChildren","mc","patchChildren","pc","patchBlockChildren","pbc","_internals_o","dynamicChildren","placeholder","mainAnchor","container2","anchor2","mountToTarget","prepareAnchor","updateCssVars","defer","queuePostRenderEffect","targetStart","mainAnchor1","wasDisabled","currentContainer","traverseStaticChildren","nextTarget","doRemove","um","hostRemove","_param_o","shouldRemove","hydrateChildren","targetNode","_lpa","data","isDisabled","leaveCbKey","isMounted","isLeaving","isUnmounting","leavingVNodes","Map","TransitionHookValidator","Function","appear","persisted","onAfterEnter","onBeforeLeave","onAfterLeave","onAfterAppear","recursiveGetSubtree","findNonCommentChild","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","hooks","oldChild","oldInnerChild","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","postClone","_props_persisted","callAsyncHook","every","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","vnode2","hooks2","isKeepAlive","ssContent","ssFallback","keepComment","parentKey","ret","keyedFragmentCount","patchFlag","idPrefix","ids","markAsyncBoundary","refs","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","hasLoggedMismatchError","logMismatchError","getContainerType","namespaceURI","isComment","createHydrationFunctions","rendererInternals","mountComponent","mt","patch","_rendererInternals_o","hydrateNode","isFragmentStart","onMismatch","handleMismatch","domType","__VUE_PROD_HYDRATION_MISMATCH_DETAILS__","isTemplateNode","replaceNode","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAnchor","forcePatch","vnodeHooks","needCallTransitionHooks","needTransition","hasWarned","isMismatchAllowed","clientText","isCustomElement","propHasMismatch","clientValue","actual","expected","isSetEqual","toClassSet","mismatchType","mismatchKey","stringifyStyle","actualMap","toStyleMap","expectedMap","_step_value","resolveCssVars","getCssVars","cssVars","getEscapedCssVarName","isMapEqual","isKnownSvgAttr","isBooleanAttr","isKnownHtmlAttr","isRenderableAttrValue","format","v1","MismatchTypeString","endsWith","isReservedProp","onClick","onVnodeBeforeMount","invokeVNodeHook","queueEffectWithSuspense","parentVNode","normalizeVNode","isText","fragmentSlotScopeIds","isFragment","parentElement","next2","newNode","oldNode","parentNode2","replaceChild","hasChildNodes","_vnode","str","styleMap","item","_item_split","allowMismatchAttr","allowedType","allowedAttr","list","requestIdleCallback","getGlobalThis","cancelIdleCallback","clearTimeout","opts","IntersectionObserver","entries","isIntersecting","_el_getBoundingClientRect","bottom","innerHeight","innerWidth","query","mql","matchMedia","once","interactions","hasHydrated","doHydrate","teardown","loader","resolvedComp","loadingComponent","errorComponent","_source_delay","delay","hydrateStrategy","_source_suspensible","suspensible","userOnError","onError","pendingRequest","retries","load","thisRequest","toStringTag","__asyncHydrate","forEachElement","depth","bum","isUnmounted","__asyncResolved","currentInstance","createInnerComp","isInSSRComponentSetup","loaded","delayed","_parent_vnode","ref2","__isKeepAlive","include","exclude","sharedContext","current","__v_cache","_sharedContext_renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","instance2","isDeactivated","vnodeHook","deactivate","invalidateMount","da","onVnodeUnmounted","doWatch","_param","flush","pendingCacheKey","cacheSubtree","isSuspense","getInnerChild","rawVNode","cachedVNode","parseInt","pattern","isRegExp","lastIndex","registerKeepAliveHook","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","__weh","reset","setCurrentInstance","createHook","lifecycle","COMPONENTS","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","Component","selfName","registry","renderItem","sourceIsArray","sourceIsReactiveArray","needsWrap","shallowReadArray","toReactive","i2","l1","dynamicSlots","slot","fallback","noSlotted","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$slots","$refs","$parent","$root","$host","$emit","$options","__VUE_OPTIONS_API__","resolveMergedOptions","$forceUpdate","$nextTick","$watch","instanceWatch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","normalizedProps","cssModule","globalProperties","accessCache","propsOptions","shouldCacheAccess","publicGetter","track","_param__","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","isGloballyAllowed","defaults","getContext","setupContext","createSetupContext","normalizePropsOrEmits","reduce","normalized","skipFactory","excludedKeys","getAwaitable","awaitable","unsetCurrentInstance","resolved","base","mixins","extendsOptions","_instance_appContext","globalMixins","optionsCache","optionMergeStrategies","mergeOptions","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","methods","mergeObjectOptions","beforeCreate","mergeAsArray","beforeDestroy","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","merged","normalizeInject","createAppContext","isNativeTag","NO","performance","compilerOptions","propsCache","emitsCache","uid$1","currentApp","parentProvides","defaultValue","treatDefaultAsFactory","_context","internalObjectProto","createInternalObject","isInternalObject","setFullProps","rawCastValues","_instance_propsOptions","needCastKeys","hasAttrsChanged","isEmitListener","emitsOptions","rawCurrentProps","castValues","resolvePropValue","isAbsent","hasDefault","propsDefaults","mixinPropsCache","validatePropName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","$stable","baseCreateRenderer","createHydrationFns","__VUE__","__VUE_DEVTOOLS_GLOBAL_HOOK__","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","patchElement","resolveChildrenNamespace","cloneIfMounted","__vnode","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","patchProps","propsToUpdate","dynamicProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","updateComponent","initialVNode","createComponentInstance","setupComponent","asyncDep","registerDep","setupRenderEffect","shouldUpdateComponent","nextVNode","prevProps","nextProps","nextChildren","hasPropsChanged","asyncResolved","updateComponentPreRender","componentUpdateFn","vnodeHook1","bu","u","parent1","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","subComponent","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","bm","isAsyncWrapperVNode","hydrateSubTree","_injectChildStyle","scopedInitialVNode","scope","on","off","run","runIfDirty","scheduler","updateProps","rawPrevProps","kebabKey","camelizedKey","trigger","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","EMPTY_ARR","oldLength","newLength","commonLength","min","nextChild","l2","e1","n11","n21","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","arrI","nextIndex","nextChild1","anchor1","remove2","performLeave","cacheIndex","renderCache","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","removeFragment","performRemove","suspenseId","pendingId","deps","teleportEnd","isFlushing","rootComponent","rootProps","installedPlugins","pluginCleanupFns","_uid","_container","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","onUnmount","cleanupFn","runWithContext","lastApp","currentNamespace","encoding","allowed","shallow","ch1","ch2","ssrCleanup","immediate","baseWatchOptions","runsImmediately","__watcherHandles","watchStopHandle","pause","isPre","isFirstRun","augmentJob","watchHandle","publicThis","createPathGetter","segments","camelizedName","hyphenatedName","getModelModifiers","localValue","prevEmittedValue","prevSetValue","propValue","hasChanged","emittedValue","modelName","modelModifiers","handlerName","rawArgs","onceHandler","emitted","fallthroughAttrs","withProxy","inheritAttrs","proxyToUse","render2","getFunctionalFallthrough","blockStack","filterModelListeners","nextKeys","__isSuspense","mountSuspense","hiddenContainer","createSuspenseBoundary","triggerEvent","setActiveBranch","isInFallback","patchSuspense","newBranch","newFallback","normalize","isSlotChildren","normalizeSuspenseSlot","eventListener","parentSuspenseId","isSuspensible","initialAnchor","_parent_effects","sync","parentComponent2","delayEnter","hasUnresolvedAncestor","fallbackVNode","namespace2","mountFallback","optimized2","isInPendingSuspense","hydratedEl","asyncSetupResult","handleSetupResult","parentSuspense2","block","trackBlock","isBlockTreeEnabled","currentBlock","closeBlock","filterSingleRoot","singleRoot","_suspense_effects","branch","disableTracking","setupBlock","__v_isVNode","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","__vccOpts","klass","extraProps","mergeRef","cloneTransition","mergedProps","flag","numberOfNodes","asBlock","memo","slotFlag","toMerge","incoming","emptyAppContext","exposeProxy","normalizePropsOptions","hasExtends","extendProps","raw2","_normalizePropsOptions","normalizedKey","normalizedKey1","prop","propType","shouldCast","shouldCastTrue","typeName","normalizeEmitsOptions","extendEmits","normalizedFromExtend","bc","rtg","rtc","sp","registerGlobalSetter","setter","setters","isSSR","_instance_vnode","isStateful","initProps","setupResult","setupStatefulComponent","Proxy","isAsyncSetup","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","devtoolsRawSetupState","_compile","_rc","skipOptions","_instance_appContext_config","delimiters","componentCompilerOptions","finalCompilerOptions","applyOptions","dataOptions","computedOptions","watchOptions","provideOptions","injectOptions","renderTracked","renderTriggered","expose","filters","resolveInjections","methodHandler","createWatcher","handler1","registerLifecycleHook","_hook","attrsProxyHandlers","classifyRE","includeInferred","__name","__file","inferFromRegistry","getterOrOptions","debugOptions","propsOrChildren","pushWarningContext","popWarningContext","activeEffectScope","activeSub","batchedSub","batchedComputed","ARRAY_ITERATE_KEY","EffectFlags","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveFlags","WatchErrorCodes","enableTracking","onEffectCleanup","reactiveReadArray","toReadonly","detached","_active","cleanups","_isPaused","scopes","currentEffectScope","fromParent","ACTIVE","RUNNING","TRACKING","NOTIFIED","DIRTY","ALLOW_RECURSE","PAUSED","pausedQueueEffects","depsTail","cleanup","active","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","isDirty","batchDepth","sub","isComputed","endBatch","next1","prevActiveLink","dep","activeLink","head","tail","prevDep","removeDep","refreshComputed","_dirty","globalVersion","prevSub","soft","nextSub","subs","sc","runner","trackStack","Link","Dep","debugInfo","addSub","currentTail","notify","targetMap","depsMap","oldTarget","targetIsArray","isArrayIndex","isIntegerKey","isMap","array","arrayInstrumentations","_reactiveReadArray","searchProxy","separator","noTracking","toReversed","comparer","toSorted","toSpliced","method","wrapValue","arrayProto","wrappedRetFn","methodFn","result2","wrappedFn","acc","isNonTrackableKeys","makeMap","builtInSymbols","getOwnPropertyNames","BaseReactiveHandler","_isReadonly","_isShallow","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","MutableReactiveHandler","isOldValueReadonly","hadKey","deleteProperty","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createReadonlyMethod","createInstrumentationGetter","instrumentations","rawTarget","rawKey","wrap","callback","observed","clear","proto","_getProto","hadItems","iteratorMethods","targetIsMap","isPair","innerIterator","isKeyOnly","_innerIterator_next","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isExtensible","targetTypeMap","rawType","toRawType","createRef","rawValue","RefImpl","_rawValue","useDirectValue","shallowUnwrapHandlers","objectWithRefs","CustomRefImpl","factory","_factory","_get","_set","newVal","object","propertyToRef","ObjectRefImpl","_object","_defaultValue","depMap","GetterRefImpl","_getter","ComputedRefImpl","__v_isRef","GET","HAS","ITERATE","SET","ADD","DELETE","CLEAR","SKIP","IS_REACTIVE","IS_READONLY","IS_SHALLOW","RAW","IS_REF","WATCH_GETTER","WATCH_CALLBACK","WATCH_CLEANUP","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","boundCleanup","reactiveGetter","source2","forceTrigger","isMultiSource","currentEffect","baseGetter","_cb","fill","immediateFirstRun","dirty","currentWatcher","cleanup2","_globalThis","PatchFlagNames","PatchFlags","ShapeFlags","SlotFlags","cssVarNameEscapeSymbolsRE","escapeHtml","escapeHtmlComment","genCacheKey","genPropsAccessExp","generateCodeFrame","isBuiltInDirective","isDate","isGloballyWhitelisted","isHTMLTag","isKnownMathMLAttr","isMathMLTag","isSSRSafeAttrName","isSVGTag","isVoidTag","objectToString","parseStringStyle","propsToAttrMap","slotFlagsText","toTypeString","cacheStringFunction","hit","camelizeRE","hyphenateRE","charAt","fns","parseFloat","isNaN","NaN","identRE","TEXT","CLASS","STYLE","PROPS","FULL_PROPS","NEED_HYDRATION","STABLE_FRAGMENT","KEYED_FRAGMENT","UNKEYED_FRAGMENT","NEED_PATCH","DYNAMIC_SLOTS","DEV_ROOT_FRAGMENT","CACHED","BAIL","ELEMENT","FUNCTIONAL_COMPONENT","STATEFUL_COMPONENT","TEXT_CHILDREN","ARRAY_CHILDREN","SLOTS_CHILDREN","TELEPORT","SUSPENSE","COMPONENT_SHOULD_KEEP_ALIVE","COMPONENT_KEPT_ALIVE","COMPONENT","STABLE","DYNAMIC","FORWARDED","lines","newlineSequences","idx","count","line","repeat","lineLength","newLineSeqLength","pad","length1","listDelimiterRE","propertyDelimiterRE","styleCommentRE","specialBooleanAttrs","unsafeAttrCharRE","attrValidationCache","isUnsafe","acceptCharset","htmlFor","httpEquiv","escapeRE","string","escaped","exec","html","commentStripRE","src","doubleEscape","aValidType","bValidType","getTime","looseCompareArrays","equal","aKeysCount","aHasKey","bHasKey","findIndex","replacer","val2","stringifySymbol","script","_database","_utils","_footerVue","_footerVueDefault","Footer","database","Database","setObservable","rooms","classrooms","peerID","getPeerID","copyPeerID","copyToClipboard","switchClassroomProtection","setProtection","deleteClass","drop","forkClass","classroom","infoHash","createdBy","removeKeysStartingWithSecret","members","teacher","student","put","timestamp","createClass","dateCreated","logo","selfAssign","defaultNumberOfRooms","studentConfig","teacherConfig","stationConfig","width","height","_dexie","deleteDatabase","observables","db","Dexie","stores","log","indexedDB","orderBy","toArray","withTimestamp","_tmp","hashJsonObject","hash","unsubscribe","observable","liveQuery","where","equals","first","subscribe","domDeps","Dexie$1","RangeSet","mergeRanges","rangesOverlap","_global","extension","_hasOwn","setProp","functionOrGetSet","derive","Child","Parent","getPropertyDescriptor","pd","_slice","override","origFunc","overridedFactory","assert","asap$1","setImmediate","arrayToObject","extractor","nameAndValue","getByKeyPath","keyPath","rv","period","innerObj","substr","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","shallowClone","flatten","intrinsicTypeNames","num","intrinsicTypes","circularRefs","deepClone","any","innerDeepClone","iteratorSymbol","getIteratorOf","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","isAsyncFunction","debug","libraryFilter","NEEDS_THROW_FOR_STACK","getErrorWithStack","prettyStack","exception","numIgnoredFrames","frame","idbDomErrorNames","errorList","dexieErrorNames","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","DexieError","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","pos","failuresByPos","_stack","errnames","exceptions","fullName","msgOrInner","Syntax","SyntaxError","Type","Range","RangeError","exceptionMap","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","onsuccess","onerror","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","thiz","INTERNAL","_a$1","globalP","crypto","subtle","nativeP","digest","Uint8Array","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","stack_being_generated","schedulePhysicalTick","physicalTick","hiddenDiv","asap","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","currentFulfiller","rejectionMapper","globalPSD","unhandleds","onunhandled","globalError","pgp","finalize","uh","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","onuncatched","_lib","psd","_PSD","_stackHolder","_prev","_numPrev","handleRejection","executePromiseTask","promise","shouldExecuteTick","beginMicroTickScope","_then","propagateAllListeners","endMicroTickScope","ex","thenProp","microTaskId","totalEchoes","onFulfilled","onRejected","possibleAwait","decrementExpectedAwaits","propagateToListener","Listener","nativeAwaitCompatibleWrap","linkToPreviousPromise","zone","reason","_promise","tryCatch","origProp","listeners","finalizePhysicalTick","listener","callListener","markErrorAsHandled","numPrev","wasRootExec","callbacks","unhandledErrs","finalizers","PromiseReject","errorCatcher","outerScope","switchToZone","onFinally","stacks","getStack","limit","errorName","failure","ms","handle","Timeout","snapShot","all","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","follow","zoneProps","finalizer","allSettled","possiblePromises","results","status","AggregateError","task","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","globalEnv","PromiseProp","nthen","getPatchedPromiseThen","gthen","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","GlobalPromise_1","targetEnv","GlobalPromise","a3","outerZone","origThen","onResolved","UNHANDLEDREJECTION","eventData","createEvent","initEvent","PromiseRejectionEvent","onunhandledrejection","defaultPrevented","DEXIE_VERSION","maxString","fromCharCode","minKey","INVALID_KEY_ARGUMENT","STRING_EXPECTED","connections","isIEOrEdge","dexieStackFrameFilter","DBNAMES_DB","READONLY","READWRITE","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Table","_trans","writeLocked","trans","_tx","tableName","checkTableInTransaction","schema","NotFound","idbtrans","transless","tempTransaction","storeNames","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","isOpen","_close","_completion","dbOpenError","isBeingOpened","_options","autoOpen","dbReadyPromise","keyOrCrit","core","reading","fire","indexOrCrit","WhereClause","keyPaths","compoundIndex","indexes","primKey","ix","compound","_maxKey","keyPathsInValidOrder","kp","idxByName","idb","_deps","cmp","prevIndex","prevFilterFn","multi","filterFunction","toCollection","and","thenShortcut","offset","numRows","each","Collection","reverse","mapToClass","mappedClass","readHook","defineClass","auto","objToAdd","mutate","numFailures","lastResult","keyOrObject","modify","InvalidArgument","range","bulkGet","getMany","bulkAdd","objects","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","bulkPut","objectsToPut","bulkDelete","numKeys","Events","evs","eventName","subscriber","addEventType","chainFunction","defaultFunction","addConfiguredEvents","cfg","subscribers","makeClassConstructor","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","isLimitFilter","curr","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","coreTable","keysOnly","unique","coreTrans","iterate","valueMapper","set_1","union","cursor","advance","_iterate","cursorPromise","advancer","ta","tb","compareUint8Arrays","al","bl","getUint8Array","compareArrays","ArrayBuffer","isView","tsTag","byteOffset","byteLength","_read","table","_write","_addAlgorithm","sortBy","parts","lastPart","getval","order","sorter","aVal","bVal","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","isMatch","indexName","_ondirectionchange","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","changes","modifyer","anythingModified","outbound","extractKey","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","criteria","deleteCallback","changeSpec","simpleCompare","simpleCompareReverse","collectionOrWhereClause","T","collection","emptyCollection","whereClause","rangeEqual","addIgnoreCaseAlgorithm","needles","suffix","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowerKey","lowestPossibleCasing","casing","nextCasing","upperNeedle","lowerNeedle","llp","lwrKeyChar","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","_$cmp","ascending","descending","_min","_max","sortDirection","rangeSorter","newRange","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","checkKey","startsWithAnyOf","eventRejectHandler","DEXIE_STORAGE_MUTATED_EVENT_NAME","STORAGE_MUTATED_DOM_EVENT_NAME","globalEvents","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","OpenFailed","transaction","durability","chromeTransactionDurability","ev","_reject","onabort","oncomplete","_resolve","storagemutated","bWriteLock","ReadOnly","waitFor","promiseLike","_waitingFor","_waitingQueue","store","objectStore","spin","_spinCount","currentWaitPromise","abort","memoizedTables","_memoizedTables","tableSchema","transactionBoundTable","createIndexSpec","nameFromKeyPath","createTableSchema","getMaxKey","IdbKeyRange","only","getKeyExtractor","arrayify","_id_counter","getKeyPathAlias","generateMiddlewareStacks","tmpTrans","middlewares","IDBKeyRange","stackImpl","_novip","_middlewares","dbcore","createDBCore","makeIDBKeyRange","upperBound","lowerBound","bound","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","req","isAddOrPut","reqs","_$_a","args1","args2","keyCount","callbackCount","successHandler","_pos","request","_$query","nonInfinitLimit","idbKeyRange","getAll","getAllKeys","count_1","req_1","openKeyCursor","result_1","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","tableMap","MIN_KEY","MAX_KEY","tbl","setApiOnPlace","objs","tableNames","dbschema","propDesc","removeTablesApi","lowerVersionFirst","_cfg","getSchemaDiff","oldSchema","newSchema","diff","del","change","oldDef","newDef","recreate","oldIndexes","newIndexes","idxName","oldIdx","newIdx","createTable","createObjectStore","addIndex","createIndex","buildGlobalSchema","globalSchema","dbStoreNames","storeName","idbindex","adjustToExistingIndexNames","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","Version","_parseStoresSpec","outSchema","primKeyAndIndexes","indexNum","storesSource","versions","_versions","storesSpec","_allTables","_storeNames","upgrade","upgradeFunction","contentUpgrade","getDbNamesTable","indexedDB1","dbNamesDB","addons","dbnames","hasDatabasesNative","databases","vip","awaitIterator","callNext","onSuccess","getNext","extractTransactionArgs","_tableArgs_","scopeFunc","virtualIndexMiddleware","level","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","translateRequest","getObjectDiff","prfx","ap","bp","apTypeName","hooksMiddleware","downCore","downTable","dxTrans","deleting","creating","updating","addPutOrDelete","deleteNextChunk","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","getFromTransactionCache","cacheExistingValuesMiddleware","cachedResult","isEmptyRange","fromOrTree","addRange","rebalance","rightWasCutOff","newSet","_addRangeSet","rangeSet1","rangeSet2","getRangeSetIterator","nextResult1","nextResult2","keyProvided","rootClone","oldRootRight","computeDepth","rangeSet","addKey","addKeys","observabilityMiddleware","dbName","FULL_RANGE","tableClone","mutatedParts","getRangeSet","part","pkRangeSet","delsRangeSet","newObjs","oldCache","oldObjs","trackAffectedIndexes","addKeyOrKeys","oldKey","newKey","getRange","readSubscribers","subscr","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","wantValues_1","cursor_1","pkey","verno","dependencies","onReadyBeingFired","dbReadyResolve","cancelOpen","openCanceller","autoSchema","ready","bSticky","db_1","keyRangeGenerator","keyRange","whereCtx","readingHook","complete","wasActive","versionNumber","orCollection","_IDBKeyRange","newVersion","oldVersion","parentTransaction","_fireOnBlocked","vcFired","addon","round","versionInstance","_whenReady","unuse","mw","dexieOpen","intervalId","throwIfCancelled","resolveDbReady","upgradeTransaction","wasCreated","tryOpenDB","onblocked","onupgradeneeded","allowEmptyDB","delreq","NoSuchDatabase","idbUpgradeTrans","rejectTransaction","oldVer","anyContentUpgraderHasRun","populate","updateTablesAndIndexes","versToRun","tuple","Upgrade","store_1","deleteIndex","returnValue_1","upgradeSchema_1","contentUpgradeIsAsync_1","promiseFollowed","decrementor","deleteRemovedTables","deleteObjectStore","runQueue","createMissingTables","contains","ch","onversionchange","onclose","userAgentData","tryIdb","setInterval","clearInterval","fireRemainders","remainders_1","hasArguments","doDelete","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","idbMode","onlyIfCompatible","SubTransaction","enterTransaction","enterTransactionScope","returnValue","scopeFuncIsAsync","PrematureCommit","InvalidTable","symbolObservable","Observable","_subscribe","extendObservabilitySet","querier","hasValue","currentValue","observer","closed","accumMuts","currentObs","subscription","mutationListener","querying","startedListening","shouldNotify","doQuery","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","propagateLocally","updateParts","wasMe","propagatingLocally","databaseName","exists","getDatabaseNames","infos","ignoreTransaction","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","delByKeyPath","semVer","pow","maxKey","updatedParts","event_1","initCustomEvent","BroadcastChannel","bc_1","changedParts","postMessage","onmessage","localStorage","setItem","trig","random","includeUncontrolled","client","parse","swContainer","serviceWorker","domError","parseClassroom","scrapeModule","download","debounce","setToValue","validateUrl","getShortPeerID","toLocaleLowerCase","deepEqual","object1","object2","keys1","keys2","val1","areObjects","_objectSpreadProps","_jsYaml","_secureLs","_secureLsDefault","loadResource","absoluteURL","URL","clipboard","writeText","showInCustom","showIn","dump","_scrapeModule","_yaml_load","_yaml_load1","yaml","links","scripts","moduleEl","fetch","response","main","icon","shownIn","srcdoc","escape","origin","getElementsByTagName","innerText","baseURL","pat","filename","element","encodeURIComponent","click","func","wait","callNow","pathArr","protocols","protocol","chars","floor","SessionID","ls","encodingType","withSession","jsonObject","_hashJsonObject","msgUint8","TextEncoder","encode","hashArray","padStart","_object_spread_props","getOwnPropertyDescriptors","defineProperties","enumerableOnly","symbols","CORE_SCHEMA","DEFAULT_SCHEMA","FAILSAFE_SCHEMA","JSON_SCHEMA","YAMLException","loadAll","safeDump","safeLoad","safeLoadAll","types","common","isNothing","subject","cycle","isNegativeZero","NEGATIVE_INFINITY","formatError","compact","mark","column","snippet","YAMLException$1","captureStackTrace","getLine","lineStart","lineEnd","position","maxLineLength","maxHalfLength","maxLength","indent","linesBefore","linesAfter","re","lineStarts","lineEnds","foundLineNo","lineNoLength","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","instanceOf","predicate","represent","representName","defaultStyle","styleAliases","alias","compileList","currentType","previousType","previousIndex","Schema$1","definition","implicit","explicit","type$1","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","compileMap","scalar","sequence","mapping","collectType","seq","failsafe","_null","canonical","lowercase","uppercase","camelcase","empty","bool","_int","hasDigits","sign","binary","octal","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","_float","POSITIVE_INFINITY","json","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","year","month","day","hour","minute","second","date","fraction","delta","UTC","tz_hour","setTime","toISOString","merge","BASE64_MAP","bitlen","tailbits","input","bits","_hasOwnProperty$3","_toString$2","omap","pair","pairKey","pairHasKey","objectKeys","_toString$1","pairs","_hasOwnProperty$2","_default","_hasOwnProperty$1","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","simpleEscapeSequence","simpleEscapeCheck","simpleEscapeMap","State$1","onWarning","legacy","implicitTypes","typeMap","lineIndent","firstTabInLine","documents","generateError","throwError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","tagMap","decodeURIComponent","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","sourceKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_tag","_anchor","detected","anchorMap","composeNode","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","typeList","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","CONTEXT_BLOCK_OUT","CONTEXT_BLOCK_IN","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","readBlockMapping","following","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readFlowCollection","_lineStart","terminator","isExplicitPair","isMapping","readNext","readBlockScalar","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","CHOMPING_CLIP","readSingleQuotedScalar","captureEnd","readDoubleQuotedScalar","hexLength","hexResult","fromHexCode","lc","readAlias","readPlainScalar","withinFlowCollection","hasPendingContent","_lineIndent","_kind","loadDocuments","nullpos","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","_toString","_hasOwnProperty","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","State","noArrayIndent","skipInvalid","flowLevel","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","quotingType","forceQuotes","explicitTypes","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","inblock","cIsNsCharOrWhitespace","cIsNsChar","codePointAt","needIndentIndicator","leadingSpaceRe","blockHeader","indentPerLevel","indentIndicator","clip","keep","dropEndingNewline","foldLine","breakRe","writeBlockSequence","writeNode","CHAR_LINE_FEED","detectType","iskey","isblockseq","tagStr","duplicateIndex","duplicate","objectOrArray","writeBlockMapping","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","writeFlowMapping","writeFlowSequence","chooseScalarStyle","singleLineOnly","testAmbiguousType","_char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafeFirst","testImplicitResolving","foldString","nextLF","moreIndented","lineRe","prevMoreIndented","escapeString","escapeSeq","encodeHex","character","encodeURI","renamed","getDuplicateReferences","duplicatesIndexes","inspectNode","float","int","__WEBPACK_DEFAULT_EXPORT__","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","Base64","_keyStr","_utf8Encode","decode","_utf8Decode","c3","SecureLS","_constants__WEBPACK_IMPORTED_MODULE_0__","_enc_utf8__WEBPACK_IMPORTED_MODULE_1__","_utils__WEBPACK_IMPORTED_MODULE_2__","crypto_js_aes__WEBPACK_IMPORTED_MODULE_3__","crypto_js_aes__WEBPACK_IMPORTED_MODULE_3___default","crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4__","crypto_js_rabbit__WEBPACK_IMPORTED_MODULE_4___default","crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5__","crypto_js_rc4__WEBPACK_IMPORTED_MODULE_5___default","crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6__","crypto_js_tripledes__WEBPACK_IMPORTED_MODULE_6___default","lz_string_libs_lz_string__WEBPACK_IMPORTED_MODULE_7__","_Base64__WEBPACK_IMPORTED_MODULE_8__","encryptors","EncrytionTypes","AES","DES","RABBIT","RC4","_ref_encryptionSecret","encryptionSecret","_ref_encryptionNamespace","encryptionNamespace","_ref_isCompression","isCompression","_ref_encodingType","BASE64","_ref_storage","storage","_ref_metaKey","_name","LZString","compressToUTF16","decompressFromUTF16","enc","metaData","getMetaData","_isBase64","_isBase64EncryptionType","_isAES","_isAESEncryptionType","_isDES","_isDESEncryptionType","_isRabbit","_isRabbitEncryptionType","_isRC4","_isRC4EncryptionType","_isCompression","_isDataCompressionEnabled","resetAllKeys","getObjectFromKey","generateSecretKey","setMetaData","getItem","dataToStore","processData","setDataToLocalStorage","getMetaKey","isAllKeysData","jsonData","encodedData","encryptor","getEncryptionType","encrypt","compressedData","extractKeyNames","decodedData","WarningEnum","KEY_NOT_PROVIDED","getDataFromLocalStorage","deCompressedData","getEncryptionSecret","bytes","decrypt","_Utf8","isKeyPresent","META_KEY_REMOVE","removeFromKeysList","removeItem","CryptoJSWordArray","nBytes","rcache","words","mz","_r","sigBytes","DEFAULT_TEXT","WarningTypes","secretPhrase","Latin1","wordArray","latin1Chars","crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0__","crypto_js_pbkdf2__WEBPACK_IMPORTED_MODULE_0___default","_constants__WEBPACK_IMPORTED_MODULE_1__","_WordArray__WEBPACK_IMPORTED_MODULE_2__","salt","key128Bits","keySize","_ref_keys","module1","CryptoJS","BlockCipher","C_algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","RCON","C_lib","C","lib","algo","xi","sx","x2","x4","x8","_doReset","_nRounds","_keyPriorReset","keyWords","ksRows","nRounds","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","M","_doCryptBlock","decryptBlock","s0","s3","t0","t1","t2","t3","_createHelper","Base","WordArray","BufferedBlockAlgorithm","C_enc","EvpKDF","Cipher","C_mode","BlockCipherMode","CBC","Pkcs7","CipherParams","OpenSSLFormatter","SerializableCipher","OpenSSLKdf","PasswordBasedCipher","Utf8","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","_append","_process","_doFinalize","ivSize","selectCipherStrategy","cipher","ciphertext","StreamCipher","blockSize","iv","Encryptor","Decryptor","_cipher","_iv","xorBlock","undefined1","_prevBlock","processBlock","thisBlock","C_pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","modeCreator","_minBufferSize","_mode","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","C_format","OpenSSL","openSSLStr","ciphertextWords","cipherCfg","_parse","C_kdf","kdf","execute","password","hasher","compute","derivedParams","Math1","msCrypto","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","F","subtype","overrides","$super","properties","encoder","Hex","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","ceil","hexChars","bite","hexStr","hexStrLength","latin1Str","latin1StrLength","utf8Str","unescape","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","_createHmacHelper","HMAC","_map","base64Chars","triplet","byte1","byte2","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","parseLoop","bitsCombined","bits1","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","abs","sin","_hash","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","SHA256","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","S","C_","G","Rabbit","K","X","_X","_C","nextState","IV","IV_0","IV_1","i0","i3","gx","ga","gb","gh","gl","keySigBytes","_S","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","W","SHA1","HmacSHA1","getFractionalBits","nPrime","isPrime","sqrtN","sqrt","factor","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key3","_des1","_des2","_des3","__WEBPACK_AMD_DEFINE_RESULT__","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","compressToBase64","_compress","decompressFromBase64","_decompress","compressed","compressToUint8Array","uncompressed","compress","buf","TotalLen","current_value","decompressFromUint8Array","decompress","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","ii","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","resetValue","getNextValue","w","resb","maxpower","power","dictionary","enlargeIn","dictSize","numBits","__webpack_module_cache__","moduleId","cachedModule","_SecureLS__WEBPACK_IMPORTED_MODULE_0__","_cache","$setup","_component_v_btn","_component_v_tooltip","_component_v_row","_component_v_footer","color","elevation","justify","activator","density","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_component_v_list_item_title","_component_v_list_item_subtitle","_component_v_list_item","_component_v_list","_component_v_menu","_component_v_app_bar","_component_v_switch","_component_v_chip","_component_v_img","_component_v_card_title","_component_v_card_subtitle","_component_v_card_text","_component_v_icon","_component_v_spacer","_component_v_card_actions","_component_v_card","_component_v_col","_component_v_container","_component_v_main","_component_Footer","_component_v_app","title","append","variant","$event","fluid","cols","sm","md","lg","_classroom_data_meta","_classroom_data","onChange","cover","_classroom_data_members","createElementVNode","depressed","_settingsVue","_settingsVueDefault","_chat","_chatDefault","_checks","_checksDefault","_modulesVue","_modulesVueDefault","_peer","_peerDefault","_navigator_mediaDevices","_navigator","webRTCSupport","mediaDevices","getUserMedia","stationName","sessionStorage","states","receivedConfiguration","connectedToNetwork","configuration","communication","isOwner","showSideMenu","showSettings","scrapedModules","liveClassProxy","isStation","userName","componentKey","chat","messages","truncated","stationNameInput","stationNameRules","isNameTaken","getPeer_ID","_this_configuration","_self_communication","_self_communication1","newSetup","getRole","scrapeModules","getRooms","sortedKeys","_this_configuration_data_members_teacher","_this_configuration_data_members","_this_configuration_data","saveClass","Settings","usersInRoom","users","room","gotoRoom","_this_communication","addRoom","updateClass","sendMessage","setStationName","rule","reload","Chat","Checks","Modules","_mainVue","_mainVueDefault","_membersVue","_membersVueDefault","_stationsVue","_stationsVueDefault","_shareVue","_shareVueDefault","required","writeProtection","tab","configClone","configChanged","updateModules","updateMembers","Main","Members","Stations","Share","_component_v_text_field","_component_v_textarea","_component_v_checkbox","counter","outlined","filled","copyUrl","_component_v_alert","_component_v_divider","dense","rows","shaped","_vuedraggable","_vuedraggableDefault","_moduleVue","_moduleVueDefault","errors","moduleImportUrl","oldIndex","validate_config","validate_url","deleteModule","loadURL","scrapedModule","draggable","__WEBPACK_EXTERNAL_MODULE__8bbf__","__WEBPACK_EXTERNAL_MODULE_a352__","installedModules","ns","property","TO_STRING_TAG","wellKnownSymbol","aFunction","that","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getWindowNames","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","O","fails","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","classof","regexpExec","R","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","CollectionPrototype","$forEach","getBuiltIn","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","V8_VERSION","SPECIES","METHOD_NAME","foo","toInteger","integer","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","hiddenKeys","enumBugKeys","anObject","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","toLength","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","searchString","v8","Iterators","definePropertyModule","Properties","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","point","UNSCOPABLES","ArrayPrototype","MATCH","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","argumentsLength","mapfn","iteratorMethod","$entries","argument","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","regexp","rx","functionalReplace","fullUnicode","unicode","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","replacement","getSubstitution","tailPos","capture","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","bitmap","flattenIntoArray","arraySpeciesCreate","flatMap","A","sourceLen","CONVERT_TO_STRING","codeAt","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","wmget","wmhas","wmset","STATE","enforce","TYPE","inspectSource","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","addToUnscopables","wrappedWellKnownSymbolModule","NAME","Symbol1","activeXDocument","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","contentWindow","NullProtoObject","domain","ActiveXObject","createIteratorConstructor","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","propertyKey","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","getCurrentScript","currentScript","pageSource","inlineScriptSourceRegExp","inlineScriptSource","stackDetails","ieStackRegExp","ffStackRegExp","scriptLocation","currentLocation","documentElement","readyState","functionToString","postfix","re1","re2","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","sticky","charsAdded","strCopy","multiline","feature","detection","POLYFILL","NATIVE","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","returnMethod","nativeDefineProperty","Attributes","a2bf","original","mapper","targetIndex","sourceIndex","mapFn","a352","a434","ACCESSORS","deleteCount","insertCount","actualDeleteCount","actualStart","a4d3","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","shared","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","symbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","$replacer","a630","checkCorrectnessOfIteration","iterable","a640","a691","ab13","ac1f","ad6d","ignoreCase","dotAll","ae40","thrower","argument0","argument1","ae93","PrototypeOfArrayIteratorPrototype","arrayIterator","b041","TO_STRING_TAG_SUPPORT","b0c0","FunctionPrototype","FunctionPrototypeToString","nameRE","b622","createWellKnownSymbol","withoutSetter","b64b","nativeKeys","b727","IndexedObject","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","_$self","boundFunction","c04e","PREFERRED_STRING","c430","c6b6","c6cd","SHARED","c740","$findIndex","FIND_INDEX","SKIPS_HOLES","c8ba","c975","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","ca84","caad","$includes","cc12","document1","EXISTS","ce4e","d012","d039","d066","variable","d1e7","NASHORN_BUG","d28b","d2bb","aPossiblePrototype","CORRECT_SETTER","d3b7","d44e","d58f","IS_RIGHT","d784","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","d81d","$map","da84","check","dbb4","dbf1","ddb0","ArrayIteratorMethods","ArrayValues","df75","e01a","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","_native","e163","CORRECT_PROTOTYPE_GETTER","e177","e260","ARRAY_ITERATOR","Arguments","e439","FAILS_ON_PRIMITIVES","e538","e893","e8b5","e95a","f5df","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","f772","fb15","_objectSpread2","_arrayLikeToArray","_unsupportedIterableToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","removeNode","insertNodeAt","fatherNode","refNode","regex","manageAndEmit","manage","eventHandlerNames","events","evt","tags","isHtmlAttribute","project","_ref2","getValidSortableEntries","_ref9","_ref10","_ref11","_ref12","_$value","_ref13","_ref14","getHtmlElementFromNode","domElement","__draggable_context","componentStructure_ComponentStructure","ComponentStructure","_ref2$nodes","nodes","header","defaultNodes","footer","realList","externalComponent","rootTransition","_isRootComponent","domIndex","domChildren","firstDomListElement","external_commonjs_vue_commonjs2_vue_root_Vue_","_emit","evtName","evtData","_manage","_this2","originalElement","_manageAndEmit","_this3","delegateCallBack","draggingElement","draggableComponent","itemKey","componentData","_ref3","_ref3$componentData","getKey","componentStructure","computeNodes","normalizedList","_map2","slotValue","_ref4","_ref5","_this4","_ref6","callBackBuilder","sortableOptions","_ref7","_ref8","eventType","eventBuilder","targetDomElement","_sortable","__draggable_component__","destroy","newOptionValue","getUnderlyingVm","getUnderlyingPotencialDraggableComponent","htmElement","emitChanges","_this5","alterList","onList","newList","spliceList","updatePosition","getRelatedContextFromMoveEvent","related","getVmIndexFromDomIndex","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","pullMode","_this$context","removed","onDragUpdate","computeFutureIndex","relatedContext","currentDomIndex","currentIndex","draggedInList","willInsertAfter","onDragMove","originalEvent","futureIndex","draggedContext","onDragEnd","fb6a","nativeSlice","fin","fc6a","fdbc","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","fdbf","_typeof","_extends","MultiDragPlugin","Sortable","SwapPlugin","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","passive","substring","msMatchesSelector","webkitMatchesSelector","closest","includeCTX","R_SPACE","toggleClass","defaultView","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","ghost","dragged","lastElementChild","previousElementSibling","_$index","nodeName","getRelativeScrollOffset","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","throttle","_throttleTimeout","scrollBy","Polymer","jQuery","Zepto","dom","setRect","rect","unsetRect","expando","plugins","initializeByDefault","PluginManager","pluginName","pluginEvent","sortable","eventCanceled","cancel","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","bubbles","cancelable","lastPutMode","allEventProperties","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","nearestEmptyInsertDetectEvent","nearest","touches","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","animate","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","offsetWidth","animated","_onMove","retVal","onMoveFn","onMove","draggedRect","relatedRect","_disableDraggable","_unsilent","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","composedPath","_saveInputCheckedState","inputs","isContentEditable","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","selection","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","inserted","ghostMatrix","relativeScrollOffset","PositionGhostAbsolutely","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","sibling","targetBeforeFirstSwap","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","save","handleEvent","dropEffect","_generateId","sum","useAnimation","items","utils","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","toSortable","changedTouches","onSpill","Revert","Remove","Swap","swapClass","dragStart","lastSwapEl","dragOverValid","swap","prevSwapEl","p1","p2","isEqualNode","nulling","swapItem","startIndex","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","dragStartGlobal","multiDrag","removeMultiDragElements","dragOver","clonesInserted","dragOverCompleted","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","dragMatrix","dragOverAnimationComplete","originalEvt","multiDragIndex","nullingGlobal","destroyGlobal","deselect","oldIndicies","newIndicies","clones","elementsInserted","AutoScroll","forceAutoScrollFallback","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","_editorVue","_editorVueDefault","Editor","_vuePrismEditor","_prismCore","errorMessage","highlighter","highlight","languages","PrismEditor","isWindows","platform","isMacLike","lineNumbers","autoStyleLineNumbers","tabSize","insertSpaces","ignoreTabKey","lineNumbersHeight","codeData","setLineNumbersHeight","styleLineNumbers","isEmpty","lineNumbersCount","_recordCurrentState","pre","$editor","$lineNumbers","editorStyles","btlr","bblr","stylesList","textarea","selectionStart","selectionEnd","_recordChange","_getLines","_applyEdits","record","_updateInput","overwrite","_this$history","extras","_this$_getLines$pop","_this$_getLines$pop2","previous","handleChange","_e$target","_undoEdit","_this$history2","_redoEdit","_this$history3","handleKeyDown","keyCode","blur","_e$target2","tabCharacter","linesBeforeCaret","endLine","startLineText","_linesBeforeCaret","_startLine","_endLine","_startLineText","updatedSelection","hasSelection","textBeforeCaret","_updatedSelection","_updatedSelection2","lineNumberWidthCalculator","onInput","onKeydown","onKeyup","onFocus","onBlur","spellCheck","autocapitalize","autocomplete","autocorrect","preview","editorContainer","Prism","_self","lang","uniqueId","plainTextGrammar","manual","disableWorkerMessageHandler","util","tokens","Token","objId","visited","getLanguage","setLanguage","language","isActive","defaultActivation","no","plaintext","txt","redef","inside","grammar","token","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","elements","highlightElement","insertHighlightedCode","highlightedCode","Worker","worker","immediateClose","tokenize","rest","tokenList","LinkedList","addAfter","matchGrammar","startNode","rematch","patterns","cause","patternObj","lookbehind","greedy","currentNode","reach","removeCount","matchPattern","matchStr","removeFrom","removeRange","nestedRematch","matchedStr","lookbehindLength","classes","highlightAutomaticallyCallback","comment","punctuation","operator","boolean","webmanifest","Prism1","anchorOrAlias","plainKey","createValuePattern","datetime","important","yml","_component_v_expansion_panel_title","_component_prism_editor","_component_v_expansion_panel_text","_component_v_expansion_panel","actions","_component_v_radio","_component_v_radio_group","_component_Editor","_component_v_expansion_panels","_component_Module","_component_draggable","_$props_scrapedModules_index","selectedURL","selectedFile","showTemplate","restoreSuccess","saveError","restoreFileRules","updateConfig","newConfig","downloadClass","blob","Blob","createObjectURL","revokeObjectURL","restoreURL","newClass","ok","restoreFile","reader","FileReader","readAsText","onload","_reader_result","selectedURLIcon","selectedFileIcon","_component_v_file_input","onMouseover","onMouseleave","_component_v_toolbar_title","_component_v_tab","_component_v_tabs","_component_v_toolbar","_component_Main","_component_v_window_item","_component_Members","_component_Modules","_component_Stations","_component_Share","_component_v_window","_component_v_badge","dark","flat","onUpdateMembers","overlap","dot","_markdownIt","_markdownItDefault","_highlightJs","_highlightJsDefault","linkify","typographer","ignoreIllegals","show","deletedMessages","permanent","send","toDate","toLocaleString","_indexMjsDefault","_indexMjs","_utilsMjs","_rendererMjs","_rendererMjsDefault","_parserCoreMjs","_parserCoreMjsDefault","_parserBlockMjs","_parserBlockMjsDefault","_parserInlineMjs","_parserInlineMjsDefault","_linkifyIt","_linkifyItDefault","_mdurl","_punycodeJs","_punycodeJsDefault","_defaultMjs","_defaultMjsDefault","_zeroMjs","_zeroMjsDefault","_commonmarkMjs","_commonmarkMjsDefault","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","RECODE_HOSTNAME_FOR","normalizeLink","parsed","hostname","toASCII","er","normalizeLinkText","toUnicode","defaultChars","MarkdownIt","presetName","inline","helpers","configure","presets","rules","ruler","enableOnly","rules2","ruler2","enable","ignoreInvalid","chain","missed","disable","parseInline","inlineMode","renderInline","unescapeMd","unescapeAll","isValidEntityCode","fromCodePoint","arrayReplaceAt","isSpace","isWhiteSpace","isMdAsciiPunct","isPunctChar","normalizeReference","_ucMicro","_entities","sources","newElements","UNESCAPE_MD_RE","UNESCAPE_ALL_RE","ENTITY_RE","DIGITAL_ENTITY_TEST_RE","entity","replaceEntityPattern","decoded","decodeHTML","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","REGEXP_ESCAPE_RE","mdurl","ucmicro","_decodeMjsDefault","_encodeMjsDefault","_formatMjsDefault","_parseMjsDefault","_decodeMjs","_encodeMjs","_formatMjs","_parseMjs","decodeCache","getDecodeCache","b1","b2","chr","b21","b3","chr1","b22","b31","b4","chr2","componentChars","encodeCache","keepEscaped","getEncodeCache","nextCode","slashes","auth","port","pathname","Url","protocolPattern","portPattern","simplePathPattern","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","hostlessProtocol","javascript","slashedProtocol","http","https","ftp","gopher","file","slashesDenoteHost","simplePath","lowerProto","hec","atSign","hostEnd","lastIndexOf","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","qm","_regexMjsDefault","_regexMjsDefault1","_regexMjsDefault2","_regexMjsDefault3","_regexMjsDefault4","_regexMjsDefault5","_regexMjs","_regexMjs1","_regexMjs2","_regexMjs3","_regexMjs4","_regexMjs5","EntityLevel","EncodingMode","_escapeJs","encodeXML","escapeUTF8","escapeAttribute","escapeText","_encodeJs","encodeHTML","encodeNonAsciiHTML","_decodeJs","EntityDecoder","DecodingMode","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeStrict","XML","HTML","Strict","UTF8","Attribute","ASCII","CharCodes","BinTrieFlags","EntityDecoderState","_decodeCodepointJs","replaceCodePoint","_decodeDataHtmlJsDefault","_decodeDataXmlJsDefault","_decodeCodepointJsDefault","determineBranch","_decodeDataHtmlJs","_decodeDataXmlJs","isNumber","ZERO","NINE","decodeTree","emitCodePoint","EntityStart","consumed","treeIndex","excess","decodeMode","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","digitCount","startIdx","char","UPPER_A","UPPER_F","LOWER_A","LOWER_F","addToNumericResult","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","isEntityInAttributeInvalidEnd","EQUALS","UPPER_Z","LOWER_Z","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","decoder","startEntity","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","Legacy","Uint16Array","decodeCodePoint","decodeMap","codePoint","output","_encodeHtmlJs","_encodeHtmlJsDefault","htmlReplacer","encodeHTMLTrieRe","xmlReplacer","regExp","lastIdx","nextChar","cp","getCodePoint","restoreDiff","xmlCodeMap","getEscaper","_parseLinkLabelMjsDefault","_parseLinkDestinationMjsDefault","_parseLinkTitleMjsDefault","_parseLinkLabelMjs","_parseLinkDestinationMjs","_parseLinkTitleMjs","parseLinkLabel","disableNested","marker","prevPos","posMax","skipToken","labelEnd","parseLinkDestination","parseLinkTitle","prev_state","can_continue","default_rules","Renderer","code_inline","slf","renderAttrs","code_block","fence","highlighted","langName","langAttrs","attrIndex","tmpAttrs","langPrefix","image","renderInlineAsText","renderToken","hardbreak","xhtmlOut","softbreak","breaks","html_block","html_inline","hidden","nesting","needLf","nextToken","_rulerMjs","_rulerMjsDefault","_stateCoreMjs","_stateCoreMjsDefault","_normalizeMjs","_normalizeMjsDefault","_blockMjs","_blockMjsDefault","_inlineMjs","_inlineMjsDefault","_linkifyMjs","_linkifyMjsDefault","_replacementsMjs","_replacementsMjsDefault","_smartquotesMjs","_smartquotesMjsDefault","_textJoinMjs","_textJoinMjsDefault","_rules","Core","getRules","Ruler","__rules__","__cache__","__find__","__compile__","chains","altName","at","beforeName","ruleName","afterName","chainName","_tokenMjs","_tokenMjsDefault","StateCore","markup","attrPush","attrData","attrSet","attrGet","attrJoin","NEWLINES_RE","NULL_RE","tok","blockTokens","pretest","htmlLinkLevel","currentToken","isLinkOpen","lastPos","ln","fullUrl","urlText","token_o","token_t","token_c","token1","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","blkIdx","replace_scoped","inlineTokens","inside_autolink","replace_rare","smartquotes","QUOTE_TEST_RE","QUOTE_RE","replaceAt","process_inlines","thisLevel","OUTER","canOpen","canClose","isSingle","lastChar","isLastPunctChar","isNextPunctChar","isLastWhiteSpace","isNextWhiteSpace","single","openQuote","closeQuote","quotes","text_join","_stateBlockMjs","_stateBlockMjsDefault","_tableMjs","_tableMjsDefault","_codeMjs","_codeMjsDefault","_fenceMjs","_fenceMjsDefault","_blockquoteMjs","_blockquoteMjsDefault","_hrMjs","_hrMjsDefault","_listMjs","_listMjsDefault","_referenceMjs","_referenceMjsDefault","_htmlBlockMjs","_htmlBlockMjsDefault","_headingMjs","_headingMjsDefault","_lheadingMjs","_lheadingMjsDefault","_paragraphMjs","_paragraphMjsDefault","ParserBlock","maxNesting","hasEmptyLines","skipEmptyLines","sCount","blkIndent","prevLine","tight","outTokens","lineMax","StateBlock","bMarks","eMarks","tShift","bsCount","ddIndent","listIndent","parentType","indent_found","skipSpaces","skipSpacesBack","skipChars","skipCharsBack","getLines","begin","keepLastLF","escapedSplit","isEscaped","silent","tbodyLines","nextLine","firstCh","secondCh","lineText","columns","aligns","columnCount","oldParentType","terminatorRules","token_to","tableLines","token_tho","token_htro","token_ho","token_il","autocompletedCells","terminate","token_tbo","token_tro","token_tdo","token_il1","mem","haveEndMarker","blockquote","oldLineMax","oldBMarks","oldBSCount","oldSCount","oldTShift","lastLineEmpty","isOutdented","initial","spaceAfterMarker","adjustTab","oldIndent","hr","cnt","skipBulletListMarker","skipOrderedListMarker","isOrdered","markerValue","posAfterMarker","isTerminatingParagraph","markerCharCode","listTokIdx","listLines","prevEmptyEnd","contentStart","indentAfterMarker","itemLines","oldTight","oldListIndent","markTightParagraphs","reference","getNextLine","isContinuation","lineContent","lineContent1","lineContent2","destRes","destEndPos","destEndLineNo","lineContent3","titleRes","lineContent4","ch3","ch4","references","_htmlBlocksMjs","_htmlBlocksMjsDefault","_htmlReMjs","HTML_SEQUENCES","HTML_OPEN_CLOSE_TAG_RE","HTML_TAG_RE","open_tag","close_tag","heading","token_i","lheading","paragraph","_stateInlineMjs","_stateInlineMjsDefault","_textMjs","_textMjsDefault","_newlineMjs","_newlineMjsDefault","_escapeMjs","_escapeMjsDefault","_backticksMjs","_backticksMjsDefault","_strikethroughMjs","_strikethroughMjsDefault","_emphasisMjs","_emphasisMjsDefault","_linkMjs","_linkMjsDefault","_imageMjs","_imageMjsDefault","_autolinkMjs","_autolinkMjsDefault","_htmlInlineMjs","_htmlInlineMjsDefault","_entityMjs","_entityMjsDefault","_balancePairsMjs","_balancePairsMjsDefault","_fragmentsJoinMjs","_fragmentsJoinMjsDefault","_rules2","postProcess","ParserInline","pending","pushPending","StateInline","tokens_meta","pendingLevel","_prev_delimiters","backticks","backticksScanned","linkLevel","token_meta","scanDelims","canSplitWord","left_flanking","right_flanking","can_open","can_close","isTerminatorChar","SCHEME_RE","matchAtStart","newline","pmax","ws","ESCAPED","escapedStr","origStr","backtick","matchStart","openerLength","matchEnd","closerLength","loneMarkers","startDelim","endDelim","scanned","isStrong","parseReference","labelStart","autolink","EMAIL_RE","AUTOLINK_RE","fullUrl1","token_o1","token_t1","token_c1","DIGITAL_RE","NAMED_RE","match1","processDelimiters","openersBottom","headerIdx","lastTokenIdx","jumps","closerIdx","closer","minOpenerIdx","openerIdx","newMinOpenerIdx","opener","isOddMatch","lastJump","link_pairs","fragments_join","_reMjs","_reMjsDefault","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","validate","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","createNormalizer","__opts__","tlds","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","slist","schema_test","src_ZPCc","schema_search","schema_at_start","__index__","__text_cache__","Match","__last_index__","__schema__","createMatch","LinkifyIt","schemas","ml","me","tld_pos","testSchemaAt","at_pos","keepOld","src_Any","Any","src_Cc","Cc","src_Z","Z","src_P","src_ZCc","text_separators","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","_String","ucs2decode","ucs2encode","regexPunycode","regexNonASCII","regexSeparators","overflow","stringFromCharCode","mapDomain","codePoints","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","inputLength","bias","basic","oldi","maxInt","baseMinusT","out","basicLength","handledCPCount","currentValue1","handledCPCountPlusOne","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue2","qMinusT","ucs2","hljs","registerLanguage","HighlightJS","_wrapNativeSuper","Response","isMatchIgnored","escapeHTML","inherit$1","emitsWrappingTags","scopeToCSSClass","pieces","HTMLRenderer","parseTree","classPrefix","walk","span","TokenTreeEmitter","TokenTree","openNode","closeNode","emitter","closeAllNodes","rootNode","builder","_walk","addText","_collapse","lookahead","anyNumberOfTimes","optional","either","countMatchGroups","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","relevance","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","MODES","freeze","APOS_STRING_MODE","illegal","BINARY_NUMBER_MODE","C_NUMBER_MODE","END_SAME_AS_BEGIN","resp","_beginMatch","ignoreMatch","MATCH_NOTHING_RE","METHOD_GUARD","NUMBER_MODE","PHRASAL_WORDS_MODE","QUOTE_STRING_MODE","REGEXP_MODE","RE_STARTERS_RE","SHEBANG","beginShebang","TITLE_MODE","UNDERSCORE_TITLE_MODE","skipIfHasPrecedingDot","scopeClassName","beginKeywords","__beforeBegin","keywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","endsParent","COMMON_KEYWORDS","seenDeprecations","deprecated","MultiClassError","remapScopeNames","regexes","scopeNames","positions","_multi","MultiClass","beginScope","_wrap","endScope","beginMultiClass","skip","returnBegin","endMultiClass","excludeEnd","returnEnd","HTMLInjectionError","Error1","NO_MATCH","HLJS","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","codeOrLanguageName","optionsOrCode","_highlight","codeToHighlight","continuation","keywordHits","processKeywords","modeBuffer","keywordPatternRe","word","case_insensitive","keywordRelevance","cssClass","classNameAliases","emitKeyword","processBuffer","subLanguage","processSubLanguage","continuations","_top","highlightAuto","__addSublanguage","_emitter","keyword","startScope","emitMultiClass","startNewMode","lastMatch","processLexeme","textBeforeMatch","lexeme","_$err","badRule","doBeginMatch","newMode","beforeCallbacks","matcher","regexIndex","resumeScanAtSamePosition","processed","doEndMatch","matchPlusRemainder","endMode","endOfMode","endRe","endsWithParent","_$err1","compileLanguage","langRe","unicodeRegex","MultiRegex","matchIndexes","matchAt","terminators","matcherRe","matchData","ResumableMultiRegex","multiRegexes","addRule","getMatcher","resumingScanAtSamePosition","m2","considerAll","compilerExtensions","compileMode","isCompiled","mm","keywordPattern","$pattern","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","keywordList","providedScore","commonKeyword","cmode","beginRe","terminatorEnd","illegalRe","variants","cachedVariants","dependencyOnParent","term","processContinuations","__emitTokens","processedCount","toHTML","_illegalBy","resultSoFar","errorRaised","languageSubset","autoDetection","sorted","supersetOf","_sorted","best","secondBest","blockLanguage","dataset","resultLang","currentLang","wantsHighlight","blocks","registerAliases","aliasList","highlightBlock","userOptions","inherit","initHighlighting","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","unregisterLanguage","listLanguages","addPlugin","removePlugin","debugMode","safeMode","versionString","deepFreeze","newInstance","_wrap_native_super","_constructJs","_isNativeFunctionJs","Class","Wrapper","_construct","_is_native_function","KEYWORD","v7_keywords","LITERAL","NUMBERS","STRINGS","DATE","COMMENTS","FUNCTION","literal","built_in","v7_system_constants","v8_system_sets_of_values","v8_shared_object","HTTP_VERBS","PKG_NAME_RE","INTEGER_RE","EXPONENT_RE","ID_REGEX","BAD_CHARS","VAR_DECLS","builtInTypeMode","objectHandleMode","genericMode","IP_ADDRESS","STRING","PARAMS","COMMENT_MODE_1","COMMENT_MODE_2","KEYWORDS","NUMBER","SUBST","TEMPLATE_STRING","PARAMS_CONTAINS","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","ARDUINO","_type_hints","_hint","kws","_hints","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","STRONG","EMPHASIS","SHORTKEYS","BACKTICK_ESCAPE","VARIABLE","VAR","HERE_DOC","QUOTE_STRING","ARITHMETIC","KNOWN_SHEBANG","SH_LIKE_SHELLS","TYPES","preprocessor","strings","COMMENT_MODES","CHAR_STRING","PROCEDURE","OBJECT","CLASS_DEFINITION","EXPRESSIONS","SYMBOLSTART","SYMBOL_RE","globals","CHARACTER","REGEX","COMMA","COLLECTION","LIST","BODY","DEFAULT_CONTAINS","LITERALS","BUILT_INS","KEYWORDS$1","kw","JS_IDENT_RE","TITLE","POSSIBLE_PARAMS_RE","COMMANDS","INT_SUFFIX","CRYSTAL_METHOD_RE","CRYSTAL_PATH_RE","CRYSTAL_KEYWORDS","EXPANSION","recursiveParen","Q_STRING","REGEXP","CRYSTAL_DEFAULT_CONTAINS","NORMAL_KEYWORDS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","FUNCTION_MODIFIERS","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","IMPORTANT","BLOCK_COMMENT","HEXCOLOR","ATTRIBUTE_SELECTOR_MODE","CSS_NUMBER_MODE","CSS_VARIABLE","keyframePosition","attribute","D_KEYWORDS","decimal_integer_re","decimal_integer_nosus_re","hexadecimal_digits_re","decimal_exponent_re","integer_re","escape_sequence_re","D_NESTING_COMMENT_MODE","INLINE_HTML","LINK","BOLD","ITALIC","BOLD_WITHOUT_ITALIC","ITALIC_WITHOUT_BOLD","CONTAINABLE","BRACED_SUBST","BUILT_IN_TYPES","NULLABLE_BUILT_IN_TYPES","DIRECTIVE","FILTER","REFERENCE","commentMode","ruleBodyMode","ELIXIR_IDENT_RE","KWS","SIGIL_DELIMITERS","SIGIL_DELIMITER_MODES","escapeSigilEnd","LOWERCASE_SIGIL","UPCASE_SIGIL","REGEX_SIGIL","ELIXIR_DEFAULT_CONTAINS","CONSTRUCTOR","RECORD","RUBY_METHOD_RE","CLASS_NAME_RE","CLASS_NAME_WITH_NAMESPACE_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","digits","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","CHAR_LITERAL","BLOCK_STATEMENTS","BASIC_MODES","DIRECTIVES","OPTIONAL_NUMBER_SUFFIX","OPTIONAL_NUMBER_EXP","FUNCTION_DEF","BANG_KEYWORD_MODE","KNOWN_TYPES","ALL_KEYWORDS","QUOTED_IDENTIFIER","BEGIN_GENERIC_TYPE_SYMBOL_RE","GENERIC_TYPE_SYMBOL","makeOperatorMode","OPERATOR_CHARS","includeEqual","OPERATOR_CHAR_RE","OPERATOR_CHAR_OR_DOT_RE","OPERATOR_FIRST_CHAR_OF_MULTIPLE_RE","SYMBOLIC_OPERATOR_RE","OPERATOR","OPERATOR_WITHOUT_EQUAL","makeTypeAnnotationMode","prefixScope","TYPE_ANNOTATION","DISCRIMINATED_UNION_TYPE_ANNOTATION","TYPE_DECLARATION","COMPUTATION_EXPRESSION","QUOTED_STRING","TRIPLE_QUOTED_STRING","SYMBOLS","QSTR","ASSIGNMENT","COMMENT_WORD","DESCTEXT","AT_COMMENT_MODE","STRUCT_TYPE","PARSE_PARAMS","DEFINITION","inherits","BUILT_IN_REF","STRING_REF","FUNCTION_REF_PARAMS","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","ANY_ID","IDENTIFIER_REGEX","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","HELPER_PARAMETER","SUB_EXPRESSION","HASH","HELPER_PARAMETERS","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","decimalDigits","hexDigits","PRAGMA","VERSION","HEADER","HEADERS_AND_BODY","HINT","HINT_COL","VARIABLES","ANY_KEY","DOCTAGS","CONSTANTS","METHODS","interfaces","FUNCTION_NAME_IDENT_RE","frac","NUMERIC","JAVA_IDENT_RE","GENERIC_IDENT_RE","recurRegex","substitution","ANNOTATION","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","hasClosingTag","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","GRAPHQL_TEMPLATE","IDENT_RE$1","SUBST_INTERNALS","SUBST_AND_COMMENTS","CLASS_OR_EXTENDS","CLASS_REFERENCE","PROPERTY_ACCESS","FUNC_LEAD_IN_RE","FUNCTION_VARIABLE","afterMatchIndex","afterMatch","LITERALS_MODE","VARIABLE_NAME_RE","INTERPOLATION","INTERPOLATED_VARIABLE","COMMAND","LABEL","ANNOTATION_USE_SITE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","LASSO_IDENT_RE","LASSO_ANGLE_RE","LASSO_CLOSE_RE","LASSO_KEYWORDS","HTML_COMMENT","LASSO_NOPROCESS","LASSO_START","LASSO_CODE","KNOWN_CONTROL_WORDS","L3_REGEX","DOUBLE_CARET_VARIANTS","EVERYTHING_BUT_VERBATIM","BRACE_GROUP_NO_VERBATIM","ARGUMENT_BRACES","ARGUMENT_BRACKETS","SPACE_GOBBLER","ARGUMENT_M","ARGUMENT_O","ARGUMENT_AND_THEN","starts_mode","CSNAME","csname","BEGIN_ENV","envname","VERBATIM_DELIMITED_EQUAL","innerName","VERBATIM_DELIMITED_ENV","VERBATIM_DELIMITED_BRACES","VERBATIM","IDENT","PSEUDO_SELECTORS","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","AT_KEYWORDS","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","PSEUDO_SELECTORS$1","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","QUOTED","QUOTED_ATOM","TITLE1","TITLE2","SUBST_SIMPLE","LSL_NUMBERS","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","SYSTEM_SYMBOLS","BASE_NUMBER_RE","APPROXIMATE_NUMBER_RE","MATHEMATICA_NUMBER_RE","SYSTEM_SYMBOLS_SET","MESSAGES","brace","TRANSPOSE_RE","TRANSPOSE","ATOM","REGEX_MODIFIERS","PERL_KEYWORDS","METHOD","ATTR","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","PAIRED_RE","PERL_DEFAULT_CONTAINS","FUNC_DEFINITION","section","ANTIQUOTE","DEFINES","LANGUAGES","PARAMETERS","COMPILER","FUNCTION_DEFINITION","IDENTIFIER_RE","CLASS_KEYWORDS","SPECIAL_VARS","FUNCTIONS","OXYGENE_KEYWORDS","CURLY_COMMENT","PAREN_COMMENT","CURLY_SUBCOMMENT","COMMENT_MODE","DOLLAR_STRING","TYPES_RE","FUNCTIONS_RE","SQL_KW","SQL_BI","NOT_PERL_ETC","PASCAL_CASE_CLASS_NAME_RE","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","NOWDOC","WHITESPACE","normalizeKeywords","CONSTRUCTOR_CALL","CONSTANT_REFERENCE","LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON","NAMED_ARGUMENT","PARAMS_MODE","FUNCTION_INVOKE","ATTRIBUTE_CONTAINS","APOS_STRING","PS_COMMENT","PS_CLASS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","FUNC_NAME","PARENTED","LINE_COMMENT","BACKTICK_STRING","WS0","EQUAL_DELIM","WS_DELIM","RESERVED_WORDS","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","QML_IDENT_RE","QML_OBJECT","NUMBER_TYPES_RE","OPERATORS_RE","PUNCTUATION_RE","IDENTIFIER","PROPERTY","STATEMENTS","GLOBAL_COMMANDS","COMMON_COMMANDS","OBJECTS","RAW_IDENTIFIER","NUMBER_SUFFIX","BUILTINS","SCHEME_IDENT_RE","SCHEME_SIMPLE_NUMBER_RE","QUOTED_IDENT","QUOTED_LIST","COMMON_CONTAINS","PSEUDO_CLASSES$1","PSEUDO_ELEMENTS$1","smali_instr_low_prio","VAR_IDENT_RE","CHAR","RESERVED_FUNCTIONS","COMBOS","reduceRelevancy","when","qualifyFn","DISTRIBUTIONS","INCLUDE","RANGE_CONSTRAINTS","LOOKAHEAD_TAG_END","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","identifier","typeIdentifier","keywordAttributes","availabilityKeywords","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","REGEX_KEYWORDS","KEYWORD_MODES","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","MULTILINE_STRING","SINGLE_LINE_STRING","REGEXP_CONTENTS","EXTENDED_REGEXP_LITERAL","IDENTIFIERS","GENERIC_ARGUMENTS","GENERIC_PARAMETERS","FUNCTION_PARAMETERS","FUNCTION_OR_MACRO","PRECEDENCEGROUP","interpolation","submodes","URI_CHARACTERS","CONTAINER_STRING","VALUE_CONTAINER","TCL_IDENT","TPID","TPLABEL","TPIO","FUNCTION_NAMES","TAG_NAMES","tagNamed","tagnames","CUSTOM_TAG","tsLanguage","NAMESPACE","INTERFACE","DECORATOR","swapMode","indx","ATTRIBUTE_HIGHLIGHT","functionDeclaration","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DOC_COMMENT","BUILT_IN_FUNCTIONS","LANGUAGE_VARS","FIELD","COMMENT_DOCS","ALL_KWS","DOUBLE_QUOTE_TEXT","_hljs","_component_v_navigation_drawer","maxlength","align","user","model","_component_v_progress_circular","_component_v_overlay","indeterminate","_muuri","_muuriDefault","username","username_","grid","roomName","_this_liveClassProxy_users_this_username","modulesType","scrapedModulesFilter","gridUpdate","scrapedModules_","messageHandler","iframes","_iframes_i_contentWindow","dragEnabled","layoutOnInit","layoutDuration","layoutEasing","layout","fillGaps","horizontal","alignRight","alignBottom","rounding","updateState","module_url","broadcast","_yjs","role","class_id","iframeOrigin","updateIframe","encodedFullState","encodeStateAsUpdate","btoa","liveClass","AbsolutePosition","AbstractConnector","AbstractStruct","AbstractType","YArray","ContentAny","ContentBinary","ContentDeleted","ContentDoc","ContentEmbed","ContentFormat","ContentJSON","ContentString","ContentType","Doc","GC","ID","Item","YMap","PermanentUserData","RelativePosition","Skip","Snapshot","YText","UndoManager","UpdateDecoderV1","UpdateDecoderV2","UpdateEncoderV1","UpdateEncoderV2","YXmlElement","YXmlFragment","YXmlHook","YXmlText","YArrayEvent","YEvent","YMapEvent","YTextEvent","YXmlEvent","applyUpdate","applyUpdateV2","cleanupYTextFormatting","compareIDs","compareRelativePositions","convertUpdateFormatV1ToV2","convertUpdateFormatV2ToV1","createAbsolutePositionFromRelativePosition","createDeleteSet","createDeleteSetFromStructStore","createDocFromSnapshot","createID","createRelativePositionFromJSON","createRelativePositionFromTypeIndex","createSnapshot","decodeRelativePosition","decodeSnapshot","decodeSnapshotV2","decodeStateVector","decodeUpdate","decodeUpdateV2","diffUpdate","diffUpdateV2","emptySnapshot","encodeRelativePosition","encodeSnapshot","encodeSnapshotV2","encodeStateAsUpdateV2","encodeStateVector","encodeStateVectorFromUpdate","encodeStateVectorFromUpdateV2","equalDeleteSets","equalSnapshots","findIndexSS","findRootTypeKey","getState","getTypeChildren","isDeleted","isParentOf","iterateDeletedStructs","logType","logUpdate","logUpdateV2","mergeDeleteSets","mergeUpdates","mergeUpdatesV2","obfuscateUpdate","obfuscateUpdateV2","parseUpdateMeta","parseUpdateMetaV2","readUpdate","readUpdateV2","relativePositionToJSON","snapshot","snapshotContainsUpdate","transact","tryGc","typeListToArraySnapshot","typeMapGetAllSnapshot","typeMapGetSnapshot","_getPrototypeOf","_observable","_array","_math","_encoding","_decoding","_random","_buffer","_error","_binary","_function","_logging","_time","_string","_environment","ObservableV2","ydoc","awareness","DeleteItem","clock","DeleteSet","clients","ds","deletes","clientid","structs","iterateStructs","findIndexDS","dis","midindex","midclock","sortAndMergeDeleteSet","dels","dss","dssI","delsLeft","appendTo","addToDeleteSet","setIfUndefined","ss","dsitems","struct","deleted","writeDeleteSet","writeVarUint","restEncoder","resetDsCurVal","writeDsClock","writeDsLen","readDeleteSet","numClients","readVarUint","restDecoder","numberOfDeletes","dsField","readDsClock","readDsLen","readAndApplyDeleteSet","unappliedDS","clockEnd","splitItem","toUint8Array","ds1","ds2","deleteItems1","deleteItems2","di1","di2","generateNewClientId","uint32","_ref_guid","guid","uuidv4","_ref_collectionid","collectionid","_ref_gc","gc","_ref_gcFilter","gcFilter","_ref_meta","_ref_autoLoad","autoLoad","_ref_shouldLoad","shouldLoad","clientID","share","StructStore","_transactionCleanups","subdocs","_item","isLoaded","isSynced","isDestroyed","whenLoaded","provideSyncedPromise","eventHandler","whenSynced","subdocsLoaded","TypeConstructor","_integrate","Constr","_start","toJSON","subdoc","subdocsAdded","subdocsRemoved","DSDecoderV1","readUint8","readVarString","readAny","copyUint8Array","readVarUint8Array","DSDecoderV2","dsCurrVal","keyClockDecoder","IntDiffOptRleDecoder","clientDecoder","UintOptRleDecoder","leftClockDecoder","rightClockDecoder","infoDecoder","RleDecoder","stringDecoder","StringDecoder","parentInfoDecoder","typeRefDecoder","lenDecoder","read","keyClock","DSEncoderV1","createEncoder","writeUint8","writeVarString","isYKey","writeAny","writeVarUint8Array","embed","DSEncoderV2","unexpectedCase","keyMap","keyClockEncoder","IntDiffOptRleEncoder","clientEncoder","UintOptRleEncoder","leftClockEncoder","rightClockEncoder","infoEncoder","RleEncoder","stringEncoder","StringEncoder","parentInfoEncoder","typeRefEncoder","lenEncoder","writeUint8Array","writeStructs","startNewStructs","writeClient","firstStruct","writeClientsStructs","_sm","getStateVector","_clock","readClientsStructRefs","clientRefs","numOfStateUpdates","numberOfStructs","readClient","readInfo","BITS5","readLen","len1","cantCopyParentInfo","BIT7","BIT8","readLeftID","readRightID","readParentInfo","readString","BIT6","readItemContent","integrateStructs","clientsStructRefs","clientsStructRefsIds","getNextStructTarget","nextStructsTarget","curStructsTarget","restStructs","missingSV","updateMissingSv","mclock","stackHead","addStackToRestSS","unapplicableItems","localClock","missing","getMissing","structRefs","integrate","transactionOrigin","structDecoder","local","retry","pendingStructs","_step_value1","client1","clock1","dsRest","pendingDs","pendingDSUpdate","createDecoder","dsRest2","YDecoder","writeStateAsUpdate","targetStateVector","encodedTargetStateVector","updates","readStateVector","ssLength","decodedState","writeStateVector","sv","encodeStateVectorV2","EventHandler","createEventHandler","addEventHandlerListener","removeEventHandlerListener","callEventHandlerListeners","arg0","arg1","callAll","writeID","readID","storeType","getMap","yusers","initUser","userDescription","addClientId","getContent","encodedDs","keysChanged","_ref_filter","_event","userOverwrite","_userDescription","yds","deleteSet","tname","assoc","rpos","_json_tname","createAbsolutePosition","createRelativePosition","typeid","countable","lastId","writeRelativePosition","writeVarInt","readRelativePosition","itemID","readVarInt","uint8Array","followUndoneDeletions","rightID","typeID","followRedone","snap1","snap2","sv1","sv2","dsitems1","dsitems2","dsitem1","dsitem2","isVisible","splitSnapshotAffectedStructs","getItemCleanStart","originDoc","newDoc","lastStructIndex","snapshotContainsUpdateV2","updateDecoder","lazyDecoder","LazyStructReader","mergedDS","lastStruct","addStruct","findIndexCleanStart","getItemCleanEnd","replaceStruct","newStruct","clockStart","beforeState","afterState","changedParentTypes","_mergeStructs","_needFormattingCleanup","writeUpdateMessageFromTransaction","addChangedTypeToTransaction","parentSub","tryToMergeWithLefts","mergeWith","tryGcDeleteSet","deleteItems","di","deleteItem","endDeleteItemClock","si","struct1","tryMergeDeleteSet","mostRightIndexToCheck","cleanupTransactions","transactionCleanups","mergeStructs","fs","itemtype","_callObserver","_dEH","_path","event1","event2","cleanupYTextAfterTransaction","beforeClock","firstChangePos","_$i","_mergeStructs_i_id","replacedStructPos","print","ORANGE","UNBOLD","RED","_observers","encoder1","initialCall","finishCleanup","StackItem","deletions","insertions","clearUndoManagerStackItem","tr","stackItem","keepItem","popStackItem","undoManager","_tr","currStackItem","itemsToRedo","itemsToDelete","performedChange","redone","_followRedone","redoItem","ignoreRemoteMapChanges","deleteFilter","subProps","_searchMarker","typeScope","_ref_captureTimeout","captureTimeout","_ref_captureTransaction","captureTransaction","_ref_deleteFilter","_ref_trackedOrigins","trackedOrigins","_ref_ignoreRemoteMapChanges","_ref_doc","addToScope","undoStack","redoStack","undoing","redoing","lastChange","afterTransactionHandler","stopCapturing","endClock","startClock","getUnixTime","didAdd","lastOp","changeEvent","ytypes","ytype","yt","clearUndoStack","clearRedoStack","canUndo","canRedo","undoStackCleared","redoStackCleared","filterSkips","lazyStructReaderGenerator","LazyStructWriter","currClient","written","clientStructs","YEncoder","stopCounting","currClock","writeBinaryEncoder","sliceStruct","_left_id","_left_id1","_leftItem_id","leftItem","client2","clock2","rightOrigin","updateDecoders","lazyStructDecoders","currWrite","updateEncoder","lazyStructEncoder","dec","dec1","dec2","clockDiff","currDecoder","firstClient","writeStructToLazyStructWriter","diff1","finishLazyStructWriting","lazyStructWriter","svClock","flushLazyStructWriter","lazyWriter","partStructs","convertUpdateFormat","blockTransformer","createObfuscator","_ref_formatting","formatting","_ref_subdocs","_ref_yxml","yxml","mapKeyCache","nodeNameCache","formattingKeyCache","formattingValueCache","hookName","c4","c5","c6","errorComputeChanges","_changes","_keys","_delta","getPathTo","action","adds","packOp","retain","warnPrematureAccess","globalSearchMarkerTimestamp","ArraySearchMarker","refreshMarkerTimestamp","overwriteMarker","markPosition","searchMarker","pm","findMarker","yarray","pindex","updateMarkerChanges","_t_doc","callTypeObservers","changedType","_eH","methodUnimplemented","_encoder","_parentSubs","typeListSlice","_type_doc","cs","typeListToArray","typeListForEach","typeListMap","typeListCreateIterator","currentContent","currentContentIndex","typeListGet","typeListInsertGenericsAfter","referenceItem","ownClientId","jsonContent","packJsonContent","lengthExceeded","typeListInsertGenerics","typeListPushGenerics","maxMarker","currMarker","typeListDelete","startLength","typeMapDelete","typeMapSet","typeMapGet","_parent_doc","typeMapGetAll","typeMapHas","createMapIterator","iteratorFilter","AbstractType1","_prelimContent","_this_doc","parentSubs","_this__prelimContent","writeTypeRef","YArrayRefID","ymap","iteratorMap","YMapRefID","equalAttrs","equalFlat","ItemTextListPosition","currentAttributes","updateCurrentAttributes","findNextPosition","findPosition","useSearchMarker","insertNegatedAttributes","currPos","negatedAttributes","forward","nextFormat","minimizeAttributeChanges","_attributes_currPos_right_content_key","insertAttributes","_currPos_currentAttributes_get","currentVal","insertText","_val","getLength","formatText","_currPos_right_content","attr","newlines","cleanupFormattingGap","startAttributes","currAttributes","endFormats","cf","reachedCurr","_startAttributes_get","_currAttributes_get","startAttrValue","cleanupContextlessFormattingGap","copy","needFullCleanup","afterClock","_hasFormatting","yText","deleteText","startAttrs","ytext","childListChanged","oldAttributes","deleteLen","addOp","_item_content","_currentAttributes_get","_oldAttributes_get","_currentAttributes_get1","curVal1","_pending","applyDelta","toDelta","_ref_sanitize","sanitize","ins","prevSnapshot","computeYChange","packStr","addAttributes","computeDelta","insertEmbed","attributeValue","YTextRefID","YXmlTreeWalker","_root_doc","_filter","_currentNode","_firstCall","_first","xml","_document","fragment","createDocumentFragment","_createAssociation","xmlType","toDOM","YXmlFragmentRefID","_prelimAttrs","getAttributes","stringBuilder","keysLen","attrsString","YXmlElementRefID","writeKey","attributesChanged","createDom","YXmlHookRefID","nestedNodes","YXmlTextRefID","encodingRef","writeInfo","writeLen","writeBuf","markDeleted","createDocFromOpts","writeString","writeJSON","_offset","_right","isDevMode","getVariable","firstCharCode","typeRefs","_decoder","readKey","_copy","nextID","rightItem","isDeletedByUndoStack","redoitems","ownClientID","parentItem","leftTrace","rightTrace","nextClock","nextId","redoneItem","isCountable","BIT2","BIT4","isMarked","BIT1","doKeep","BIT3","conflictingItems","itemsBeforeOrigin","parentGCd","getRef","writeLeftID","writeRightID","ykey","writeParentInfo","contentRefs","readBuf","readJSON","readTypeRef","glo","importIdentifier","_superPropBaseJs","_super_prop_base","_mapJs","_setJs","_arrayJs","_f","observers","createT","_set_values_next_value","unfold","fold","uniqueBy","seed","folder","happened","mapped","imul","log10","log2","exp10","exp","Encoder","verifyLen","setUint8","writeUint16","setUint16","writeUint32","writeUint32BigEndian","setUint32","_writeVarStringNative","_writeVarStringPolyfill","writeTerminatedString","writeTerminatedUint8Array","writeOnDataView","writeFloat32","writeFloat64","writeBigInt64","writeBigUint64","IntDiffEncoder","RleIntDiffEncoder","IncUintOptRleEncoder","_mathJs","_numberJs","_binaryJs","_stringJs","cpos","cbuf","bufs","uint8arr","curPos","bufferLen","BITS8","BITS7","isNegative","BITS6","_strBuffer","_maxStrBSize","utf8TextEncoder","encodeInto","encodeUtf8","encodedString","leftCopyLen","rightCopyLen","subarray","dview","DataView","setFloat32","setFloat64","setBigInt64","setBigUint64","floatTestBed","isInteger","BITS31","getFloat32","writer","flushUintOptRleEncoder","flushIntDiffOptRleEncoder","encodedDiff","sarr","lensE","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","LOWEST_INT32","HIGHEST_INT32","HIGHEST_UINT32","countBits","BITS32","isFinite","BIT5","BIT9","BIT10","BIT11","BIT12","BIT13","BIT14","BIT15","BIT16","BIT17","BIT18","BIT19","BIT20","BIT21","BIT22","BIT23","BIT24","BIT25","BIT26","BIT27","BIT28","BIT29","BIT30","BIT31","BIT32","BITS0","BITS1","BITS2","BITS3","BITS4","BITS9","BITS10","BITS11","BITS12","BITS13","BITS14","BITS15","BITS16","BITS17","BITS18","BITS19","BITS20","BITS21","BITS22","BITS23","BITS24","BITS25","BITS26","BITS27","BITS28","BITS29","BITS30","MAX_UTF16_CHARACTER","trimLeft","fromCamelCase","utf8ByteLength","_encodeUtf8Polyfill","_encodeUtf8Native","_decodeUtf8Polyfill","utf8TextDecoder","_decodeUtf8Native","decodeUtf8","trimLeftRegex","fromCamelCaseRegex","remainingLen","bufPos","nextLen","TextDecoder","fatal","ignoreBOM","Decoder","readUint8Array","readTailAsUint8Array","skip8","readUint16","readUint32","readUint32BigEndian","peekUint8","peekUint16","peekUint32","peekVarUint","peekVarInt","_readVarStringPolyfill","_readVarStringNative","readTerminatedUint8Array","readTerminatedString","peekVarString","readFromDataView","readFloat32","readFloat64","readBigInt64","readBigUint64","IntDiffDecoder","RleIntDiffDecoder","IncUintOptRleDecoder","_errorJs","_encodingJs","errorUnexpectedEndOfArray","errorIntegerOutOfRange","uint","mult","dv","getFloat64","getBigInt64","getBigUint64","readAnyLookupTable","spos","rand","uint53","oneOf","_webcrypto","uuidv4Template","createEmpty","resolveWith","untilAsync","_timeJs","intervalResolution","startTime","hasTimeout","intervalHandle","noTimeout","getDate","humanizeDuration","_metricJs","seconds","minutes","hours","days","yotta","zetta","exa","peta","tera","giga","mega","kilo","hecto","deca","deci","centi","milli","micro","nano","pico","femto","atto","zepto","yocto","prefixUp","prefixDown","baseMultiplier","nPow","createUint8ArrayFromLen","createUint8ArrayViewFromArrayBuffer","createUint8ArrayFromArrayBuffer","toBase64","fromBase64","toBase64UrlEncoded","fromBase64UrlEncoded","toHexString","fromHexString","encodeAny","decodeAny","shiftNBitsLeft","_environmentJs","_decodingJs","Buffer","isBrowser","atob","replaceAll","base64","hex","hlen","newBuf","bs","N","ieee754","customInspectSymbol","createBuffer","encodingOrOffset","allocUnsafe","fromString","isEncoding","fromArrayView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","SharedArrayBuffer","fromObject","isBuffer","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","hexSliceLookupTable","utf8Slice","asciiSlice","latin1Slice","fromByteArray","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","checkOffset","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","SlowBuffer","alloc","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","hexWrite","strLen","blitBuffer","asciiToBytes","byteArray","utf16leToBytes","units","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","maxBytes","writeUintBE","writeUIntBE","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","getMessage","NodeError","addNumericalSeparator","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","i16","BufferBigIntNotDefined","b64","lens","getLens","validLen","placeHoldersLen","Arr","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","eLen","eMax","eBias","nBits","rt","LN2","isNode","isMac","hasParam","getParam","getConf","ensureConf","hasConf","production","supportsColor","_conditionsJs","_storageJs","_functionJs","release","computeParams","pargs","argv","currParamName","parg","kv","_kv_split","defaultVal","undefinedToNull","varStorage","forceColor","isOneOf","stdout","isTTY","cachedSetTimeout","cachedClearTimeout","currentQueue","defaultSetTimout","defaultClearTimeout","runTimeout","fun","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","noop","browser","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","offChange","_localStorage","VarStoragePolyfill","usePolyfill","equalityStrict","equalityFlat","equalityDeep","isTemplate","_objectJs","hasProperty","_k","_loggingCommonJs","BLUE","GREY","GREEN","PURPLE","UNCOLOR","printError","printImg","printImgBase64","groupCollapsed","groupEnd","printDom","printCanvas","vconsoles","VConsole","createVConsole","createModuleLogger","_pairJs","_domJs","_jsonJs","_eventloopJs","_browserStyleMap","computeLoggingArgs","_args_","strBuilder","logArgs","style1","mapToStyleString","computeNoColorLoggingArgs","vc","createNode","canvas","toDataURL","_computeLineSpans","spans","lineStyle","ccontainer","collapsed","enqueue","triangleDown","triangleRight","nextContainer","toggleAttribute","Pair","createReversed","domParser","emitCustomEvent","setAttributes","setAttributesMap","addEventListeners","removeEventListeners","pairToStyleString","pairsToStyleString","getElementById","parseFragment","parseElement","replaceWith","ELEMENT_NODE","TEXT_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","checkNodeType","DOMParser","parseFromString","childNodes","firstElementChild","oldEl","newEl","interval","Animation","animationFrame","idleCallback","createDebouncer","_runQueue","createTimeoutClass","clearFunction","TT","timeoutId","Interval","cancelAnimationFrame","Idle","timer","_symbolJs","loggingColors","nextColor","lastLoggingTime","_print","debugRegexVar","doLogging","timeNow","timeDiff","mapIterator","createIterator","fmap","_iterator_next","_$options","allow","onLoad","frameborder","itemRect","returnData","gridsArray","feat","itemsToLayout","GRID_INSTANCES","ITEM_ELEMENT_MAP","ACTION_SWAP","ACTION_MOVE","EVENT_LAYOUT_START","EVENT_LAYOUT_END","EVENT_LAYOUT_ABORT","EVENT_REMOVE","EVENT_HIDE_START","EVENT_FILTER","EVENT_SORT","EVENT_MOVE","EVENT_SEND","EVENT_BEFORE_SEND","EVENT_RECEIVE","EVENT_BEFORE_RECEIVE","EVENT_DRAG_RELEASE_END","HAS_TOUCH_EVENTS","HAS_POINTER_EVENTS","PointerEvent","HAS_MS_POINTER_EVENTS","msPointerEnabled","Emitter","_events","_queue","_counter","_clearOnEmit","argsLength","endIndex","burst","countListeners","pointerout","EdgeHack","dragger","_dragger","_timeout","_outEvent","_isActive","_addBehaviour","_removeBehaviour","_onTimeout","_resetData","_onStart","_onOut","_getTrackedTouch","_onCancel","vendorPrefixes","cache$2","getPrefixedPropName","prefixedProp","camelProp","hasPassiveEvents","isPassiveEventsSupported","passiveOpts","ua","isEdge","isIE","isFirefox","isAndroid","listenerOptions","taProp","taPropPrefixed","Dragger","element1","cssProps","_element","_isDestroyed","_cssProps","_touchAction","_pointerId","_startTime","_startX","_startY","_currentX","_currentY","_onEnd","_edgeHack","setCssProps","setTouchAction","_preventDefault","_inputEvents","_pointerEvents","_msPointerEvents","_touchEvents","_mouseEvents","_emitterEvents","_activeInstances","_activateInstance","_bindListeners","_deactivateInstance","_unbindListeners","_getEventPointerId","pointerId","_getTouchById","_reset","_createEvent","srcEvent","distance","getDistance","deltaX","getDeltaX","deltaY","getDeltaY","deltaTime","getDeltaTime","isFirst","isFinal","screenX","screenY","pageX","pageY","currentProps1","dt","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","Ticker","numLanes","_nextStep","_lanes","_stepQueue","_stepCallbacks","TickerLane","indices","laneQueue","laneCallbacks","laneIndices","lanes","stepQueue","stepCallbacks","laneIndex","LAYOUT_READ","LAYOUT_WRITE","VISIBILITY_READ","VISIBILITY_WRITE","DRAG_START_READ","DRAG_START_WRITE","DRAG_MOVE_READ","DRAG_MOVE_WRITE","DRAG_SCROLL_READ","DRAG_SCROLL_WRITE","DRAG_SORT_READ","PLACEHOLDER_LAYOUT_READ","PLACEHOLDER_LAYOUT_WRITE","PLACEHOLDER_RESIZE_WRITE","AUTO_SCROLL_READ","AUTO_SCROLL_WRITE","DEBOUNCE_READ","ticker","cancelLayoutTick","itemId","cancelVisibilityTick","cancelDragStartTick","cancelDragMoveTick","cancelDragScrollTick","addDragSortTick","cancelPlaceholderLayoutTick","addAutoScrollTick","cache$1","getStyle","getPropertyValue","getStyleAsFloat","DOC_ELEM","THRESHOLD_DATA","getScrollElement","getScrollLeft","pageXOffset","getScrollTop","pageYOffset","getScrollLeftMax","getScrollTopMax","getContentRect","bcr","borderLeft","clientLeft","borderTop","clientTop","getItemAutoScrollSettings","_drag","_getGrid","_settings","dragAutoScroll","computeThreshold","safeZone","itemSize","targetSize","ScrollRequest","ScrollAction","requestX","requestY","Pool","createItem","releaseItem","pool","getIntersectionScore","area","isEnding","maxValue","hasReachedEnd","FORWARD","computeCurrentScrollValue","AXIS_X","computeNextScrollValue","computeSpeed","tick","onStart","addRequest","removeRequest","computeScrollValues","scrollTo","pick","RECT_1","RECT_2","AutoScroller","_isTicking","_tickTime","_tickDeltaTime","_items","_actions","_requests","_requestOverlapCheck","_dragPositions","_dragDirections","_overlapCheckInterval","_requestPool","_actionPool","_readTick","_writeTick","AXIS_Y","BACKWARD","LEFT","RIGHT","UP","DOWN","smoothSpeed","maxSpeed","acceleration","deceleration","targetSpeed","currentSpeed","nextSpeed","pointerHandle","pointerSize","pX","pY","_updateRequests","_updateActions","_applyActions","_startTicking","_stopTicking","_getItemHandleRect","itemDrag","_dragMoveEvent","_dragStartEvent","_clientX","_clientY","_width","_height","_requestItemScroll","reqMap","_cancelItemScroll","_checkItemOverlap","checkX","checkY","settings","targets","dragDirections","dragDirectionX","dragDirectionY","testRect","testElement","testAxisX","testAxisY","testScore","testPriority","testThreshold","testDirection","testDistance","testMaxScrollX","testMaxScrollY","xElement","xPriority","xThreshold","xScore","xDirection","xDistance","xMaxScroll","yElement","yPriority","yThreshold","yScore","yDirection","yDistance","yMaxScroll","priority","_updateScrollRequest","scrollRequest","targetCount","testIsAxisX","testScroll","testMaxScroll","smoothStop","reqX","reqY","checkTime","needsCheck","requestsX","requestsY","_requestAction","isAxisX","requests","_prepareScroll","applyItemScrollSync","drag","_scrollDiffX","_scrollDiffY","_setTranslate","_left","_updateDragDirection","dragPositions","x1","y1","y2","addItem","updateItem","isItemScrollingX","isItemScrollingY","isItemScrolling","ElProto","matchesFn","matchesSelector","mozMatchesSelector","oMatchesSelector","elementMatches","addClass","tempArray","arrayInsert","normalizeArrayIndex","sizeOffset","maxIndex","arrayMove","toIndex","arraySwap","withIndex","indexA","indexB","transformProp","styleNameRegEx","prefixRegex","msPrefixRegex","getStyleName","styleName","transformStyle","getContainingBlock","isTransformed","offsetA","offsetB","offsetDiff","getOffset","offsetData","getOffsetDiff","elemA","elemB","compareContainingBlocks","isScrollableOverflow","getScrollableAncestors","getRootNode","DocumentFragment","translateValue","rxMat3d","rxMatTx","rxMat3dTx","rxNextItem","getTranslate","isMat3d","tX","tY","removeClass","IS_IOS","maxTouchPoints","SCROLL_LISTENER_OPTIONS","ItemDrag","getGrid","_gridId","_isMigrating","_startPredicate","dragStartPredicate","defaultStartPredicate","_startPredicateState","_startPredicateResult","_isSortNeeded","_sortTimer","_blockedSortIndex","_sortX1","_sortX2","_sortY1","_sortY2","_preStartCheck","_preEndCheck","_onScroll","_prepareStart","_applyStart","_prepareMove","_applyMove","_applyScroll","_handleSort","_handleSortDelayed","_handle","dragHandle","dragCssProps","getCurrentStyles","autoScroller","isTrusted","_finishStartPredicate","_startPredicateData","delayTimer","_resolveStartPredicate","_forceResolveStartPredicate","_resetStartPredicate","defaultSortPredicate","score","rootGrid","sortThreshold","sortAction","migrateAction","getTargetGrid","gridScore","grids","dragSort","bestScore","_updateBoundingRect","_bottom","isMigration","gridOffsetLeft","gridOffsetTop","matchScore","matchIndex","hasValidTargets","_gridX","_marginLeft","_gridY","_marginTop","_updateBorders","_borderLeft","_borderTop","_finishMigration","_cancelSort","_isStarted","_unbindScrollListeners","draggingClass","itemDraggingClass","force","_containingBlock","_dragPrevMoveEvent","_scrollEvent","_scrollers","_moveDiffX","_moveDiffY","_containerDiffX","_containerDiffY","_bindScrollListeners","gridScrollers","gridContainer","dragContainer","scrollers","isClick","openAnchorHref","_resetHeuristics","_checkHeuristics","dragSortHeuristics","minDist","minDragDistance","diffX","diffY","canCheckBounceBack","minBounceBackAngle","angle","atan2","prevAngle","cos","sortDuringScroll","shouldSort","sortInterval","_checkOverlap","_finishSort","needsFinalCheck","isSortEnabled","currentGrid","targetGrid","targetItem","dragSortPredicate","_hasListeners","fromGrid","toGrid","_sortData","layoutSender","layoutReceiver","translate","_dragRelease","targetGridElement","targetSettings","targetContainer","currentSettings","currentVisClass","itemVisibleClass","itemHiddenClass","nextVisClass","itemClass","_refreshDimensions","_visibility","setStyles","visibleStyles","hiddenStyles","isResolved","containingBlock","elementRect","hasDragContainer","migrate","_migrate","isPositioning","_layout","isReleasing","dragPlaceholder","_dragPlaceholder","dragAxis","nextEvent","prevEvent","moveDiffX","moveDiffY","scrollDiffX","scrollDiffY","unprefixRegEx","HAS_WEB_ANIMATIONS","HAS_NATIVE_WEB_ANIMATIONS","Animator","_animation","_duration","_easing","_callback","_values","_onFinish","createFrame","getUnprefixedPropName","getTranslateString","ItemDragPlaceholder","_className","_didMigrate","_resetAfterLayout","_transX","_transY","_nextTransX","_nextTransY","_setupAnimation","_startAnimation","_updateDimensions","_onLayoutStart","_onLayoutEnd","_onReleaseEnd","_onMigrate","_onHide","ItemDragRelease","_isPositioningStarted","ItemLayout","elementStyle","_isInterrupted","_currentStyles","_targetStyles","_nextLeft","_nextTop","_offsetLeft","_offsetTop","_skipNextAnimation","_animOptions","onFinish","_finish","ItemMigrate","ItemVisibility","childElement","_isHidden","_isHiding","_isShowing","_childElement","_currentStyleProps","_finishShow","_finishHide","propsFrom","propsTo","propName","propIndex","currentValues","cancelAnimation","onfinish","currentProps","isAnimating","isInstant","nextLeft","nextTop","currentLeft","currentTop","nextX","nextY","getElement","currentX","currentY","currentStyles","targetStyles","nextGrid","itemPlaceholderClass","onCreate","onRemove","updateDimensions","addPlaceholderResizeTick","itemReleasingClass","dragRelease","useDragContainer","_placeToGrid","_nextLayoutData","didReparent","isJustReleased","needsReflow","releasingClass","instant","gridSettings","animDuration","animEasing","animEnabled","_updateOffsets","processCallbackQueue","itemPositioningClass","_tX","_tY","xDiff","yDiff","containerDiff","targetElement","targetItems","gridElement","hide","currentStyleProps","_removeCurrentStyles","toVisible","showDuration","hideDuration","showEasing","hideEasing","_marginRight","_marginBottom","createPackerProcessor","isWorker","roundNumber","PackerProcessor","currentRects","nextRects","rectTarget","rectStore","slotSizes","rectId","slotIndex","slotData","sortRectsLeftTop","sortRectsTopLeft","computeLayout","bump","slotWidth","slotHeight","isPreProcessed","computeNextSlot","shards","ignoreCurrentRects","addRect","splitRect","purgeRects","hole","isRectAWithinRectB","rectA","rectB","rectIds","aId","bId","processor","Float32Array","getWidth","getHeight","getMargin","getPosition","isShowing","isHiding","isDragging","_refreshSortData","getters","sortData","_addToLayout","_removeFromLayout","_canSkipLayout","_destroy","removeElement","blobUrl","activeWorkers","Packer","numWorkers","_processor","_layoutQueue","_layouts","_layoutCallbacks","_layoutWorkers","_layoutWorkerData","_workers","_onWorkerMessage","setOptions","createWorkerProcessors","amount","workers","_sendToWorker","layoutId","_finalizeLayout","_grid","isHorizontal","isBorderBox","_boxSizing","_borderRight","_borderBottom","createLayout","PACKET_HEADER_SLOTS","cancelLayout","destroyWorkerProcessors","onmessageerror","debounceId","isNodeList","NUMBER_TYPE","STRING_TYPE","INSTANT_LAYOUT","Grid","composed","defaultSettings","mergeObjects","userSettings","normalizeStyles","_isLayoutFinished","_onLayoutDataReceived","containerClass","bindLayoutOnResize","durationMs","lastTime","isCanceled","_resizeHandler","refreshItems","addDebounceTick","layoutOnResize","getInitialGridElements","isSourceObject","docElemStyle","createIndexMap","compareIndexMap","indexMap","itemA","itemB","defaultPacker","opacity","touchAction","userSelect","userDrag","tapHighlightColor","touchCallout","contentZooming","getItems","hiddenItemStyles","visibility","refreshSortData","synchronize","unfinishedLayout","nextLayoutId","layoutItems","gridWidth","gridHeight","layoutSettings","newItems","needsLayout","allItems","removeElements","_setItemsVisibility","itemsToShow","itemsToHide","isPredicateString","isPredicateFn","syncWithLayout","tryFinishCounter","tryFinish","sortComparer","isDescending","origItems","defaultComparer","criteriaName","criteriaOrder","valA","valB","customComparer","isSwap","fromItem","toItem","layoutStyles","numItems","hasLayoutChanged","startEvent","completedItems","hiddenItems","triggerVisibilityChange","interrupted","heartbeatID","Peer","_trysteroProvider","_torrent","_trystero","LOG","LOBBY","stationID","connected","callbackUpdate","getArray","lab","STATION","provider","TrysteroProvider","appId","joinRoom","peerOpts","initSetup","_this_provider_room","onPeerLeave","removePeers","initPubSub","peerId","selfIds","peers","selfId","_this_provider_room_trysteroRoom_makeAction","trysteroRoom","makeAction","tx","withObserver","observeDeep","defaultRooms","roomIDs","newRoomID","decodedUint8Array","transactionId","initRooms","initChat","awaitTransact","transactFn","isTransactionDone","_protocols","_cryptoutils","_room","_messagesSend","_connectionMaps","_ref_appId","_ref_password","_ref_awareness","awarenessProtocol","Awareness","_ref_maxConns","maxConns","_ref_filterBcConns","filterBcConns","_ref_peerOpts","_ref_joinRoom","deriveKey","shouldConnect","Room","connect","emitStatus","_auth","_awareness","_sync","messagePermissionDenied","writePermissionDenied","readAuthMessage","permissionDeniedHandler","outdatedTimeout","removeAwarenessStates","encodeAwarenessUpdate","modifyAwarenessUpdate","applyAwarenessUpdate","_checkInterval","getLocalState","lastUpdated","setLocalState","currLocalMeta","prevState","filteredUpdated","field","curMeta","modifiedState","clientMeta","SyncMessageType","writeSyncStep1","writeSyncStep2","readSyncStep1","readSyncStep2","writeUpdate","readSyncMessage","encodedStateVector","messageType","encryptJson","decryptJson","secret","secretBuffer","importKey","keyMaterial","encryptedDataEncoder","dataEncoder","dataDecoder","decryptedValue","_broadcastchannel","_mutex","_types","_messagesRead","synced","bcConns","mux","createMutex","bcconnected","_this_trysteroRoom_makeAction","sendYjsMessage","getYjsMessage","readMessage","broadcastRoomMessage","trysteroConns","getPeers","onPeerJoin","MessageType","Sync","syncProtocol","sendTrysteroConn","awarenessStates","getStates","_callbackPeerJoin","trysteroPeers","bcPeers","checkIsSynced","_callbackPeerLeave","_bcSubscriber","reply","broadcastBcMessage","_docUpdateHandler","_origin","_awarenessUpdateHandler","changedClients","encoderAwareness","_beforeUnloadHandler","broadcastBcPeerId","encoderSync","encoderState","encoderAwarenessQuery","QueryAwareness","encoderAwarenessState","encoderPeerIdBc","BcPeerId","publish","_bufferJs","channels","LocalStoragePolyfill","_onChange","BC","getChannel","channel","unsubscribed","_messageType","sendReply","syncMessageType","Step2","Step1","peerName","peer","broadcastTrysteroConn","trysteroPeer","_nostrJs","getRelaySockets","_utilsJs","defaultRelayUrls","_secp256K1","_strategyJs","_strategyJsDefault","eventMsgType","privateKey","schnorr","randomPrivateKey","publicKey","toHex","getPublicKey","subIdToTopic","msgHandlers","topic","payload","_tmp1","_tmp2","pubkey","created_at","encodeBytes","toJson","sig","subId","kinds","since","getRelays","makeSocket","_msgHandlers_subId","_fromJson","fromJson","msgType","relayMsg","libName","rootTopic","selfTopic","onMessage","rootSubId","genId","selfSubId","peerTopic","signal","announce","socketGetter","encodeToCurve","hashToCurve","secp256k1","sha256_1","utils_1","_shortw_utils_js_1","hash_to_curve_js_1","modular_js_1","utils_js_1","weierstrass_js_1","secp256k1P","secp256k1N","_1n","_2n","divNearest","sqrtMod","_3n","_6n","_11n","_22n","_23n","_44n","_88n","b6","pow2","b9","b11","b44","b88","b176","b220","b223","Fp","eql","sqr","Field","createCurve","Gx","Gy","lowS","endo","beta","splitScalar","POW_2_128","k1","k1neg","k2neg","sha256","_0n","TAGGED_HASH_PREFIXES","taggedHash","tagP","tagH","concatBytes","pointToBytes","toRawBytes","numTo32b","numberToBytesBE","modP","modN","Point","ProjectivePoint","schnorrGetExtPubKey","priv","d_","normPrivateKeyToScalar","fromPrivateKey","hasEvenY","lift_x","aInRange","xx","assertValidity","bytesToNumberBE","challenge","schnorrVerify","signature","ensureBytes","pub","inRange","BASE","multiplyAndAddUnsafe","toAffine","auxRand","_schnorrGetExtPubKey","px","k_","_schnorrGetExtPubKey1","verify","isoMap","isogenyMap","mapSWU","mapToCurveSimpleSWU","B","htf","createHasher","scalars","_mapSWU","DST","encodeDST","ORDER","expand","sha224","_md_js_1","SHA256_K","SHA256_IV","SHA256_W","_md_js_1_HashMD","D","getUint32","W15","W2","rotr","T1","Chi","T2","Maj","HashMD","SHA224","outputLen","wrapConstructor","_assert_js_1","_utils_js_1_Hash","blockLen","padOffset","finished","createView","toBytes","take","dataView","roundClean","_32n","_u32_max","wh","wl","oview","outLen","digestInto","_to","Hash","isSafeInteger","isBytes","lengths","checkFinished","byteSwapIfBE","byteSwap","rotl","u32","u8","byteSwap32","bytesToHex","hexes","hexToBytes","hl","ai","asciiToBase16","asyncLoop","iters","_asyncLoop","arrays","checkOpts","toStr","hashCons","hashC","wrapConstructorWithOpts","wrapXOFConstructorWithOpts","bytesLength","crypto_1","asciis","_0","_9","_A","_F","ts","_cloneInto","getHash","curveDef","defHash","weierstrass","hmac_1","msgs","iHash","oHash","DER","weierstrassPoints","CURVE","curve_js_1","validateBasic","validateObject","bits2int","bits2int_modN","CURVE_ORDER","compressedLen","BYTES","uncompressedLen","invN","_weierstrassPoints","isCompressed","cat","abool","fromBytes","weierstrassEquation","sqrtError","neg","isWithinCurveOrder","numToNByteStr","nByteLength","slcNum","Signature","recovery","msgHash","rec","radj","fromHex","ir","u1","u2","Q","hasHighS","toDERHex","hexFromSig","toCompactHex","_exports_DER_toSig","toSig","isProbPub","nBitLength","ORDER_MASK","bitMask","int2octets","defaultSigOpts","prehash","defaultVerOpts","_setWindowSize","getSharedSecret","privateA","publicB","multiply","privKey","_prepSig","prepSig","ent","extraEntropy","validateSigVerOpts","h1int","seedArgs","k2sig","kBytes","ik","normS","isBiggerThanHalfOrder","drbg","createHmacDrbg","_Point_BASE_multiplyAndAddUnsafe","_sig","fromDER","derError","Err","fromCompact","sg","r1","isValidPrivateKey","getMinHashLength","mapHashToField","precompute","windowSize","SWUFpSqrtRatio","validateField","isValid","sqrtRatio","isOdd","tv1","tv2","tv3","ONE","tv4","cmov","tv6","tv5","_sqrtRatio","div","b2n","h2b","DERErr","_tlv","_exports_DER","dataLen","numberToHexUnpadded","lenLen","lengthBytes","tlv","abytes","_tlv_decode","seqBytes","seqLeftBytes","_tlv_decode1","rBytes","rLeftBytes","_tlv_decode2","sBytes","sLeftBytes","_4n","validatePointOpts","curve","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","clearCofactor","allowInfinityPoint","Fn","_isCompressed","x3","assertPrjPoint","other","toAffineMemo","memoized","iz","py","z","pz","is0","inv","ax","ay","zz","assertValidMemo","_p_toAffine","wnaf","setWindowSize","X1","Y1","Z1","X2","Y2","Z2","U1","U2","X3","Y3","Z3","t4","t5","negate","wNAFCached","normalizeZ","I","unsafeLadder","_endo_splitScalar","k1p","k2p","fake","_this_wNAF","wNAF","f1p","_this_wNAF1","f2p","constTimeNegate","_this_wNAF2","multiplyUnsafe","cofactor","points","toInv","invertBatch","fromAffine","pippenger","_bits","_2n_pow_c1_1","_2n_pow_c1","c7","isQR","tv51","tvv5","c11","c21","condition","validateW","windows","elm","precomputeWindow","_opts","precomputes","maxNumber","shiftBy","wbits","offset2","cond1","cond2","pointWindowSizes","pointPrecomputes","bitLen","MASK","buckets","lastBits","BITS","wbits1","resI","j1","sumI","j2","nLength","isNegativeLE","modulo","tonelliShanks","FpSqrt","FIELD_FIELDS","FpPow","FpInvertBatch","FpDiv","lhs","rhs","FpLegendre","FpIsSquare","legendre","_nLength","sqrtP","sqrN","addN","subN","mulN","lst","numberToBytesLE","bytesToNumberLE","FpSqrtOdd","FpSqrtEven","hashToPrivateScalar","groupOrder","hashLen","getFieldBytesLength","fieldOrder","fieldLen","reduced","_5n","_8n","gcd","legendreC","p1div4","Q1div2","ge","nv","nums","lastMultiplied","inverted","reduceRight","legendreConst","_nBitLength","bitLength","notImplemented","hexToNumber","numberToVarBytesBE","equalBytes","bitGet","bitSet","qByteLen","hmacFn","u8n","reseed","u8fr","sl","pred","validators","optValidators","checkField","fieldName","isOptional","checkVal","validatorFns","fieldName1","type1","isPosBig","bigint","stringOrUint8Array","expand_message_xmd","expand_message_xof","hash_to_field","COEFF","_COEFF_map","xNum","xDen","yNum","yDen","mapToCurve","u0","os2ip","i2osp","anum","lenInBytes","b_in_bytes","r_in_bytes","ell","DST_prime","Z_pad","l_i_b_str","b_0","strxor","pseudo_random_bytes","dkLen","prb","_DST","L","log2p","len_in_bytes","elm_offset","tv","_cryptoJs","_peerJs","_peerJsDefault","_roomJs","_roomJsDefault","initPromises","offerPool","offerCleanupTimer","occupiedRooms","didInit","roomId","onJoinError","_occupiedRooms_appId","pendingOffers","connectedPeers","rootTopicPlaintext","topicPath","rootTopicP","sha1","selfTopicP","genKey","withKey","sdp","toPlain","toCipher","makeOffer","rtcConfig","connectPeer","clientId","_pendingOffers_peerId","onPeerConnect","disconnectPeer","prunePendingOffer","offer","getOffers","_offerPool","offerPromise","handleJoinError","sdpType","handleMessage","signalPeer","_ref1","answer","_pendingOffers","_peerId","_ref__","peer1","offer1","_$topic","_pendingOffers_peerId1","peer2","plainOffer","_$topic1","answer1","plainAnswer","_pendingOffers_peerId2","peer3","_ref_","announceIntervals","setHandlers","myOffer","isDead","mkErr","firebaseApp","initRes","shouldLive","offerTtl","announceTimeouts","unsubFns","clientP","queueAnnounce","didSub","noOp","_occupiedRooms","strToSha1","buff","unpack","packed","_1","keyP","_2","_raw_split","decodeBytes","charSet","defaultN","relayUrls","relayRedundancy","socketRetryPeriods","socket","WebSocket","_socketRetryPeriods","onopen","clientMap","defaultIceServers","_simplePeer","_simplePeerDefault","dataEvent","signalEvent","initiator","iceServers","urls","trickle","onData","earlyDataBuffer","connection","_pc","_channel","sendData","handlers","addStream","stream","removeStream","addTrack","removeTrack","replaceTrack","oldTrack","newTrack","drainEarlyData","_possibleConstructorReturn","_liteJs","_liteJsDefault","_errCode","_errCodeDefault","Lite","streams","_senderMap","ontrack","_onTrack","_destroying","_debug","addTransceiver","_needsNegotiation","__destroy","transceiverRequest","getTracks","submap","sender","_sendersAwaitingStable","getTransceivers","transceiver","requested","eventStream","_remoteTracks","_remoteStreams","remoteStream","queueMicrotask","_debugDefault","_webrtcPolyfill","_streamx","_uint8Util","Debug","filterTrickle","Duplex","allowHalfOpen","__objectMode","objectMode","arr2hex","channelName","channelConfig","channelNegotiated","negotiated","offerOptions","answerOptions","sdpTransform","allowHalfTrickle","iceCompleteTimeout","remoteAddress","remoteFamily","remotePort","localAddress","localFamily","localPort","RTCPeerConnection","_pcReady","_channelReady","_iceComplete","_iceCompleteTimer","_pendingCandidates","_isNegotiating","_firstNegotiation","_batchedNegotiation","_queuedNegotiation","_closingInterval","_chunk","_interval","_isReactNativeWebrtc","_peerConnectionId","oniceconnectionstatechange","_onIceStateChange","onicegatheringstatechange","onconnectionstatechange","_onConnectionStateChange","onsignalingstatechange","_onSignalingStateChange","onicecandidate","_onIceCandidate","peerIdentity","_setupData","createDataChannel","ondatachannel","_onFinishBound","bufferedAmount","family","address","renegotiate","candidate","remoteDescription","_addIceCandidate","setRemoteDescription","RTCSessionDescription","_createAnswer","iceCandidateObj","RTCIceCandidate","addIceCandidate","chunk","negotiate","_createOffer","_readableState","binaryType","bufferedAmountLowThreshold","_onChannelMessage","onbufferedamountlow","_onChannelBufferedAmountLow","_onChannelOpen","_onChannelClose","lineno","colno","isClosing","destroySoon","createOffer","sendOffer","localDescription","setLocalDescription","createAnswer","sendAnswer","_this__requestMissingTransceivers","_requestMissingTransceivers","connectionState","iceConnectionState","iceGatheringState","_maybeReady","flattenValues","report","getStats","reports","_connecting","findCandidatePair","remoteCandidates","localCandidates","candidatePairs","foundSelectedCandidatePair","setSelectedCandidatePair","selectedCandidatePair","localCandidateId","ip","ipAddress","portNumber","googLocalAddress","remote","remoteCandidateId","googRemoteAddress","selectedCandidatePairId","googActiveConnection","_onInterval","signalingState","sdpMLineIndex","sdpMid","_startIceCompleteTimeout","text2arr","WEBRTC_SUPPORT","sdpSemantics","warned","formatArgs","useColors","humanize","lastC","namespaces","__nwjs","WebkitAppearance","firebug","localstorage","colors","formatters","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","coerce","logFn","selectColor","delimiter","newDebug","toNamespace","skips","plural","msAbs","isPlural","RTCIceTransport","RTCDataChannel","RTCSctpTransport","RTCDtlsTransport","RTCCertificate","MediaStream","MediaStreamTrack","MediaStreamTrackEvent","RTCPeerConnectionIceEvent","RTCDataChannelEvent","RTCTrackEvent","RTCError","RTCErrorEvent","RTCRtpTransceiver","RTCRtpReceiver","RTCRtpSender","_browserJs","mozRTCPeerConnection","webkitRTCPeerConnection","mozRTCSessionDescription","webkitRTCSessionDescription","mozRTCIceCandidate","webkitRTCIceCandidate","EventEmitter","STREAM_DESTROYED","PREMATURE_CLOSE","queueTick","FIFO","WritableState","_ref_highWaterMark","highWaterMark","_ref_map","mapWritable","byteLengthWritable","buffered","pipeline","drains","defaultByteLength","afterWrite","afterUpdateNextTick","updateWriteNT","_duplexState","WRITE_QUEUED","MAX","OPEN_STATUS","_writableState","DESTROY_STATUS","_writev","WRITE_ACTIVE","WRITE_PRIMARY","updateNonPrimary","continueUpdate","_final","afterFinal","DESTROYING","WRITE_NEXT_TICK","READ_ACTIVE","afterDestroy","_open","afterOpen","WRITE_UPDATING","updateNextTick","ReadableState","mapReadable","byteLengthReadable","readAhead","pipeTo","afterRead","updateReadNT","Pipeline","isStreamx","afterDrain","_$data","READ_RESUMED","drain","READ_EMIT_READABLE","READ_PRIMARY","READ_DONE","READ_UPDATING","TransformState","afterTransform","afterPipe","pipeToFinished","updateCallback","rs","tickDrains","writes","newListener","READ_EMIT_DATA","Stream","predestroy","_predestroy","WRITE_NON_PRIMARY","Readable","OPENING","eagerOpen","setEncoding","echo","pipe","promiseResolve","promiseReject","ondata","ite","readable","_fromAsyncIterator","Writable","writev","autoBatch","WRITE_UNDRAINED","isWritev","Transform","_transformState","_transform","_flush","transformAfterFlush","PassThrough","errorHandle","rd","wr","autoDestroy","isStream","isTypedArray","pipelinePromise","isEnded","isFinished","getStreamError","ReflectOwnKeys","ReflectApply","NumberIsNaN","errorListener","resolver","eventTargetAgnosticAddListener","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","originalListener","spliceOne","rawListeners","eventNames","FixedFIFO","FastFIFO","hwm","peek","btm","PassThroughDecoder","UTF8Decoder","normalizeEncoding","BrowserDecoder","ErrClass","arr2text","arr2base","base2arr","bin2hex","hex2bin","_utilJs","_base64Arraybuffer","_String1","hex2arr","webkitSubtle","formatMap","encodeLookup","decodeLookup","sizeof","chunks","arraybuffer","encoded1","encoded2","encoded3","encoded4","bufferLength","TypedArray","buffLowEvent","internalNs","onPeer","onSelfLeave","peerMap","actionsCache","pendingTransmissions","pendingPongs","pendingStreamMetas","pendingTrackMetas","onPeerStream","onPeerTrack","exitPeer","typeBytes","typeBytesPadded","onComplete","onProgress","setOnComplete","setOnProgress","dataType","isJson","isBlob","isBinary","metaEncoded","chunkTotal","arrayBuffer","isLast","isMeta","payloadIndex","progressIndex","chunkSize","nonceIndex","tagIndex","chunkN","_actionsCache","handleData","_pendingTransmissions_id","_pendingTransmissions_id_type","_buffer_subarray","_buffer_subarray1","progress","_buffer_subarray2","_pendingTransmissions","full","sendLeave","_makeAction","sendPing","getPing","_makeAction1","sendPong","getPong","_makeAction2","sendSignal","getSignal","_makeAction3","sendStreamMeta","getStreamMeta","_makeAction4","sendTrackMeta","getTrackMeta","_makeAction5","getLeave","_peer_drainEarlyData","_pendingPongs_id","_peerMap_id","ping","topicToInfoHash","infoHashToTopic","announceFns","trackerAnnounceMs","handledOffers","getInfoHash","info_hash","peer_id","didFail","rawUrl","rawData","_msgHandlers_url_topic","_msgHandlers_url","errMsg","warnMsg","offer_id","offers","peerAndOffer","to_peer_id","numwant","_announceFns","_announceIntervals","_component_Checks","_component_v_app_bar_nav_icon","_component_v_app_bar_title","_component_v_form","_component_Chat","_component_v_layout","_component_Settings","_component_v_dialog","temporary","nav","_$data_configuration_data","_$data_configuration","_$data_liveClassProxy","tile","onSubmit","onSendMessage","scrollable","persistent","onClose","onSaveClass","onDeleteClass","onUpdateClass","checkboxValue","_dateMjs","_defaultsMjs","_displayMjs","_gotoMjs","_iconsMjs","_localeMjs","_themeMjs","_indexMjs1","blueprint","mergeDeep","_options_aliases","_options_components","_options_directives","createDefaults","createDisplay","ssr","theme","createTheme","createIcons","locale","createLocale","createDate","goTo","createGoTo","aliasName","DefaultsSymbol","DisplaySymbol","ThemeSymbol","IconSymbol","LocaleSymbol","DateOptionsSymbol","DateAdapterSymbol","GoToSymbol","IN_BROWSER","$nuxt","vm","getUid","$vuetify","_vm_parent","_vm_vnode_appContext","_vm_parent_provides","_object_without_properties","_objectWithoutPropertiesLooseJs","_object_without_properties_loose","DateModule","useDate","getWeek","_vuetifyMjs","adapter","VuetifyDateAdapter","af","bg","ca","ckb","de","en","et","fa","fi","hu","he","ja","ko","lv","lt","nl","pl","pt","ro","ru","sk","srCyrl","srLatn","th","az","uk","vi","zhHans","zhHant","createInstance","_options_locale_locale_current_value","formats","_options_locale_value","useLocale","toJsDate","getFullYear","d1w1","diffDays","diffTime","provideLocale","RtlSymbol","createRtl","provideRtl","useRtl","i18n","createVuetifyAdapter","rtl","_options_rtl","es","fr","km","isRtl","_rtl_value_i18n_current_value","rtlClasses","_props_rtl","_proxiedModelMjs","_enMjs","_enMjsDefault","LANG_PREFIX","createTranslateFunction","shortKey","currentLocale","fallbackLocale","getObjectValueByPath","consoleWarn","consoleError","createNumberFunction","numberFormat","Intl","NumberFormat","useProvided","provided","_props_prop","_props_prop1","internal","useProxiedModel","_options_locale","_options_fallback","createProvideFunction","_toggleScopeMjs","transformIn","transformOut","kebabProp","toKebabCase","isControlled","checkKebab","_vm_vnode_props","_vm_vnode_props1","_vm_vnode_props2","_vm_vnode_props3","useToggleScope","externalValue","internalValue","_anchorMjs","_animationMjs","_bindPropsMjs","_colorUtilsMjs","_consoleMjs","_createSimpleFunctionalMjs","_defineComponentMjs","_domMjs","_easingMjs","_eventsMjs","_getCurrentInstanceMjs","_getScrollParentMjs","_globalsMjs","_helpersMjs","_injectSelfMjs","_isFixedPositionMjs","_propsFactoryMjs","_useRenderMjs","parseAnchor","toPhysical","flipSide","flipAlign","flipCorner","getAxis","_anchor_split","side","center","getNestedValue","getPropertyFromItem","getZIndex","Node","convertToUnit","refElement","keyCodes","keyValues","pickWithRest","omit","isComposingIgnoreKey","filterInputAttrs","arrayDiff","wrapInArray","defaultFilter","getDecimals","padEnd","chunkArray","humanReadableFileSize","arrayFn","flattenFragments","findChildrenWithProvide","CircularBuffer","getEventCoordinates","destructComputed","EventProp","hasEvent","callEvent","focusableChildren","getNextElement","focusChild","_focusable_","_focusable_1","_focusable_at","_focusable_location","focusable","focus","_el","eagerComputed","isClickInsideElement","templateRef","checkPrintable","_classPrivateFieldInitSpec","_checkPrivateRedeclaration","_classPrivateFieldGet","_assertClassBrand","value1","unit","home","backspace","pageup","pagedown","paths","onRE","bubblingEvents","compositionIgnoreKeys","isComposing","_pickWithRest","inputEvents","_pickWithRest1","rootAttrs","inputAttrs","throttling","trimmedStr","chunked","toFixed","kebab","_pointer","_len2","_key2","filterByTabIndex","_condition","inc","offsetParent","CSS","supports","targetDiv","mouseX","mouseY","divRect","divLeft","divTop","divRight","divBottom","isPrintableChar","noModifier","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","SUPPORTS_EYE_DROPPER","nullifyTransforms","_boxMjs","Box","sy","transformOrigin","keyframes","getOverflow","getTargetBox","bindProps","unbindProps","_v","_handler","isCssColor","isParsableColor","parseColor","RGBToInt","classToHex","HSVtoRGB","HSLtoRGB","RGBtoHSV","HSVtoHSL","HSLtoHSV","RGBtoCSS","HSVtoCSS","RGBtoHex","HexToRGB","HexToHSV","HSVtoHex","parseHex","parseGradient","lighten","darken","getLuma","getContrast","getForeground","_apcaMjs","_transformCIELABMjs","_transformSRGBMjs","cssColorRe","mappers","rgb","rgba","hsl","hsla","hsv","hsva","realValues","currentTheme","_color_toString_trim_replace_split","colorName","colorModifier","hexColor","_chunk_map","gradient","fromXYZ","toXYZ","light","blackContrast","APCAcontrast","whiteContrast","background","outputContrast","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","blkThrs","SAPC","SAPC1","deprecate","breaking","cielabForwardTransform","cbrt","cielabReverseTransform","xyz","transformedY","Ln","srgbForwardMatrix","srgbReverseMatrix","srgbReverseTransform","createSimpleFunctional","_componentMjs","genericComponent","makeComponentProps","_slots_default","propsFactory","isObjectDefinition","defineFunctionalComponent","_options__setup","_setup","_options_props","propKeys","filterProps","_as","_props__as","injectDefaults","_internalUseDefaults","internalUseDefaults","provideSubDefaults","setupBindings","exposeDefaults","provideDefaults","useDefaults","injectedDefaults","providedDefaults","newDefaults","scoped","componentDefaults","_defaults_value","_vnode_props","_vnode_props1","_componentDefaults_value","_componentDefaults_value1","_componentDefaults_value2","_defaults_value_global","_defaults_value_global1","_defaults_value1","_subcomponentDefaults","subComponents","_$_ref","injectSelf","_injected_value","getCurrentInstanceName","attachedRoot","standardEasing","deceleratedEasing","acceleratedEasing","getPrefixedEventHandlers","getData","getScrollParent","includeHidden","hasScrollbar","getScrollParents","stopAt","isFixedPosition","useRender","badge","dismiss","confirmEdit","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","divider","datePicker","itemsSelected","noDataText","carousel","calendar","moreEvents","today","prependAction","appendAction","otp","fileInput","counterSize","timePicker","am","pagination","page","currentPage","stepper","rating","loading","infiniteScroll","loadMore","firstDay","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","startOfMonth","getMonth","endOfMonth","_YYYMMDD","sundayJanuarySecond2000","isAfter","comparing","isEqual","startOfDay","_value_split_map","setMinutes","getMinutes","setHours","getHours","setDate","setMonth","firstDayOfWeek","getWeekArray","weeks","currentWeek","firstDayOfMonth","lastDayOfMonth","firstDayWeekIndex","getDay","lastDayWeekIndex","adjacentDay","adjacentDay1","startOfWeek","endOfWeek","_firstDay_locale_slice_toUpperCase","lastDay","formatString","_date","newDate","customFormat","weekday","DateTimeFormat","hour12","timeZone","timeZoneName","setFullYear","getDiff","daysFromSunday","breakpoints","makeDisplayProps","useDisplay","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","xl","xxl","parseDisplayOptions","getClientWidth","getClientHeight","getPlatform","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","_parseDisplayOptions","updateSize","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","displayClasses","useGoTo","genDefaults","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getTarget","totalOffset","_target","_scrollTo","_goTo_options","ease","targetLocation","layoutOffset","_container_property","startLocation","_getTarget","containerWidth","containerHeight","currentTime","timeElapsed","goToInstance","go","_go","IconValue","makeIconProps","VComponentIcon","VSvgIcon","VLigatureIcon","VClassIcon","useIcon","Icon","xmlns","viewBox","_options_defaultSet","svg","iconData","_icons_aliases","iconAlias","iconSetName","setName","iconName","iconSet","collapse","success","warning","checkboxOn","checkboxOff","checkboxIndeterminate","sortAsc","sortDesc","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","plus","minus","treeviewCollapse","treeviewExpand","eyeDropper","makeThemeProps","provideTheme","useTheme","defaultTheme","variations","themes","surface","primary","secondary","variables","parsedOptions","parseThemeOptions","_options_themes","_defaults_themes","_defaults_themes1","computedThemes","name1","_iter","variation","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","color1","onColor","colorVal","_current_value","createCssClass","genCssVariables","themeName","bgLines","fgLines","getHead","cspNonce","themeClasses","usehead","addHeadObjs","updateDOM","updateStyles","styleEl","_props_theme","newTheme","lightOverlay","darkOverlay","rgb1","_layoutMjs","useLayout","VuetifyLayoutKey","VuetifyLayoutItemKey","makeLayoutProps","makeLayoutItemProps","useLayoutItem","_resizeObserverMjs","overlaps","fullHeight","absolute","getLayoutItem","mainRect","mainStyles","_options_id","isKeptAlive","_layout_register","layoutItemStyles","layoutItemScrimStyles","unregister","layoutRect","generateLayers","layoutSizes","activeItems","previousLayer","layers","parentLayout","rootZIndex","registered","priorities","disabledTransitions","_useResizeObserver","useResizeObserver","resizeRef","contentRect","computedOverlaps","_props_overlaps","_overlap_split","topPosition","bottomPosition","topAmount","bottomAmount","uniquePriorities","_priorities_get","transitionsEnabled","rootVm","layoutSize","elementSize","disableTransitions","instanceIndex","instances","zIndex","_elementSize_value","isOppositeHorizontal","isOppositeVertical","layoutClasses","layoutRef","box","ResizeObserver","unobserve","_indexMjs2","_indexMjs3","_indexMjs4","_indexMjs5","_indexMjs6","_indexMjs7","_indexMjs8","_indexMjs9","_indexMjs10","_indexMjs11","_indexMjs12","_indexMjs13","_indexMjs14","_indexMjs15","_indexMjs16","_indexMjs17","_indexMjs18","_indexMjs19","_indexMjs20","_indexMjs21","_indexMjs22","_indexMjs23","_indexMjs24","_indexMjs25","_indexMjs26","_indexMjs27","_indexMjs28","_indexMjs29","_indexMjs30","_indexMjs31","_indexMjs32","_indexMjs33","_indexMjs34","_indexMjs35","_indexMjs36","_indexMjs37","_indexMjs38","_indexMjs39","_indexMjs40","_indexMjs41","_indexMjs42","_indexMjs43","_indexMjs44","_indexMjs45","_indexMjs46","_indexMjs47","_indexMjs48","_indexMjs49","_indexMjs50","_indexMjs51","_indexMjs52","_indexMjs53","_indexMjs54","_indexMjs55","_indexMjs56","_indexMjs57","_indexMjs58","_indexMjs59","_indexMjs60","_indexMjs61","_indexMjs62","_indexMjs63","_indexMjs64","_indexMjs65","_indexMjs66","_indexMjs67","_indexMjs68","_indexMjs69","_indexMjs70","_indexMjs71","_indexMjs72","_indexMjs73","_indexMjs74","_indexMjs75","_indexMjs76","_indexMjs77","_indexMjs78","_indexMjs79","_indexMjs80","_indexMjs81","_indexMjs82","_indexMjs83","_indexMjs84","_indexMjs85","_indexMjs86","_indexMjs87","_indexMjs88","_indexMjs89","_vappMjs","VApp","makeVAppProps","_createLayout","_vappBarMjs","VAppBar","_vappBarNavIconMjs","VAppBarNavIcon","_vappBarTitleMjs","VAppBarTitle","makeVAppBarProps","_vtoolbarMjs","_scrollMjs","_ssrBootMjs","scrollBehavior","validator","makeVToolbarProps","makeScrollProps","vToolbarRef","_props_scrollBehavior","_props_scrollBehavior_split","behavior","fullyHide","elevate","fadeImage","canScroll","_useScroll","useScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","canHide","isCollapsed","isFlat","_vToolbarRef_value","_vToolbarRef_value1","_vToolbarRef_value_contentHeight","_vToolbarRef_value_extensionHeight","contentHeight","extensionHeight","ssrBootStyles","useSsrBoot","toolbarProps","VToolbar","_vtoolbarTitleMjs","_borderMjs","_colorMjs","_elevationMjs","_roundedMjs","_tagMjs","allowedDensities","extended","floating","makeBorderProps","makeElevationProps","makeRoundedProps","makeTagProps","_slots_extension","_useBackgroundColor","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","borderClasses","useBorder","elevationClasses","useElevation","roundedClasses","useRounded","isExtended","VBtn","hasTitle","hasImage","VDefaultsProvider","VImg","VTabs","_slots_prepend","_slots_append","VToolbarTitle","VExpandTransition","makeVToolbarTitleProps","hasText","_dialogTransitionMjs","VDialogTransition","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandXTransition","_createTransitionMjs","_expandTransitionMjs","_expandTransitionMjsDefault","createCssTransition","createJavascriptTransition","makeTransitionProps","hideOnLeave","leaveAbsolute","functions","_transitionInitialStyles","_el__transitionInitialStyles","expandedParentClass","sizeProperty","offsetProperty","_initialStyle","initialStyle","resetStyles","makeVDialogTransitionProps","_getChildren","_getDimensions","getDimensions","getChildren","removeProperty","_el_querySelector","els","targetBox","elBox","_getComputedStyle_transformOrigin_split_map","originX","originY","_getComputedStyle_getPropertyValue_split","anchorSide","anchorOffset","offsetX","offsetY","tsy","maxs","asa","_vdefaultsProviderMjs","makeVDefaultsProviderProps","_toRefs","_vimgMjs","makeVImgProps","_vresponsiveMjs","_transitionMjs","eager","lazySrc","rootMargin","sizes","crossorigin","referrerpolicy","srcset","makeVResponsiveProps","intersect","loadstart","currentSrc","naturalWidth","naturalHeight","normalisedSrc","aspect","aspectRatio","lazyImg","Image","pollForSize","_image_value","getSrc","img","oldVal","poll","imgHeight","imgWidth","containClasses","__image","_slots_sources","objectPosition","MaybeTransition","__preloadImage","__placeholder","__error","__gradient","backgroundImage","isBooted","responsiveProps","VResponsive","additional","useAspectStyles","_dimensionsMjs","aspectStyles","ratio","paddingBottom","contentClass","makeDimensionProps","dimensionStyles","useDimension","_slots_additional","maxHeight","maxWidth","minHeight","minWidth","useColor","useTextColor","backgroundColor","textColor","caretColor","colorClasses","colorStyles","_useColor","textColorClasses","textColorStyles","rounded","_ref_component","customProps","_$_ref2","Intersect","_el__observe","_observe","quiet","border","scrollTarget","previousScroll","previousScrollHeight","savedScroll","currentThreshold","isScrollActive","onScroll","currentScrollHeight","Window","_target_value","newTarget","makeVAppBarNavIconProps","_vbtnMjs","makeVBtnProps","_vbtnToggleMjs","_densityMjs","_groupMjs","_loaderMjs","_locationMjs","_positionMjs","_routerMjs","_selectLinkMjs","_sizeMjs","_variantMjs","activeColor","baseColor","VBtnToggleSymbol","prependIcon","appendIcon","slim","stacked","ripple","makeDensityProps","makeGroupItemProps","makeLoaderProps","makeLocationProps","makePositionProps","makeRouterProps","makeSizeProps","makeVariantProps","densityClasses","useDensity","loaderClasses","useLoader","locationStyles","useLocation","positionClasses","usePosition","_useSize","useSize","sizeClasses","sizeStyles","useGroupItem","useLink","_link_isActive","isLink","isSelected","_props_activeColor","variantProps","_link_isActive1","_color_value","_useVariant","useVariant","variantClasses","isElevated","valueAttr","_link_navigate","navigate","toggle","useSelectLink","Tag","hasPrepend","hasAppend","hasIcon","tabindex","linkProps","_slots_loader","_slots_loader1","genOverlays","VIcon","_slots_default1","VProgressCircular","Ripple","makeVBtnToggleProps","VBtnToggle","_vbtnGroupMjs","makeVBtnGroupProps","makeGroupProps","_useGroup","useGroup","btnGroupProps","VBtnGroup","divided","allowedVariants","isClickable","_unref","mandatory","injectKey","getIds","itemIndex","groupVm","forceMandatoryValue","currentId","newItem","useIndexAsValue","unwrapped","isSelected1","getItemIndex","itemByIndex","_viconMjs","makeVIconProps","slotIcon","_useTextColor","_flattenFragments_filter_","hasClick","onClickOnce","fontSize","predefinedSizes","_vprogressCircularMjs","makeVProgressCircularProps","_intersectionObserverMjs","bgColor","rotate","CIRCUMFERENCE","PI","_useTextColor1","underlayColorClasses","underlayColorStyles","_useIntersectionObserver","useIntersectionObserver","intersectionRef","normalizedValue","diameter","MAGIC_RADIUS_CONSTANT","strokeWidth","strokeDashOffset","cx","cy","LoaderSlot","VProgressLinear","_vprogressLinearMjs","makeVProgressLinearProps","bgOpacity","bufferValue","bufferColor","bufferOpacity","clickable","striped","roundedBar","_window_matchMedia","_window","_useRtl","_useBackgroundColor1","bufferColorClasses","bufferColorStyles","_useBackgroundColor2","barColorClasses","barColorStyles","normalizedBuffer","isReversed","isForcedColorsModeActive","handleClick","_intersectionRef_value_getBoundingClientRect","bar","oppositeMap","opposite","_parseAnchor","positionValues","useRoute","useRouter","useBackButton","_vm_proxy","$route","_getCurrentInstance_proxy","_getCurrentInstance","$router","_link_value","_link_value1","RouterLink","routerLink","_link_value_isActive","_link_value_isExactActive","_link_value_isExactActive1","_link_value_isActive_value","_link_value_isExactActive_value","isExactActive","href1","inTransition","removeBefore","removeAfter","popped","onPopstate","_e_state","replaced","beforeEach","afterEach","stopSymbol","isTouchEvent","isKeyboardEvent","calculate","_el__ripple","localX","localY","radius","scale","_ripple","circle","centerX","centerY","ripples","_calculate","previousPosition","getElementsByClassName","_animation_parentNode","isRippleEnabled","rippleShow","touched","isTouch","centered","showTimerCommit","showTimer","_element__ripple","rippleStop","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","focusRippleHide","updateRipple","wasEnabled","removeListeners","_valertMjs","VAlert","_valertTitleMjs","VAlertTitle","makeVAlertProps","allowedTypes","borderColor","closable","closeIcon","closeLabel","prominent","_props_icon","_props_color","closeProps","hasClose","_slots_text","_slots_text1","_slots_title","_slots_title1","_slots_close","_vautocompleteMjs","VAutocomplete","makeVAutocompleteProps","_vselectMjs","_vtextFieldMjs","_useScrollingMjs","_filterMjs","_formMjs","_forwardRefsMjs","_listItemsMjs","autoSelectFirst","clearOnSelect","makeFilterProps","filterKeys","makeSelectProps","makeVTextFieldProps","focused","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","_vMenuRef_value","ΨopenChildren","selectionIndex","_vTextFieldRef_value","closeText","openText","_useItems","useItems","_transformed_","transformed","counterValue","form","useForm","_useFilter","useFilter","filteredItems","getMatches","displayItems","hideSelected","filteredItem","hasChips","chips","chip","hasSelectionSlot","selectedValues","highlightFirst","_displayItems_value_","selectFirst","menuDisabled","hideNoData","listRef","listEvents","useScrolling","onClear","openOnClear","onMousedownControl","onMousedownMenuIcon","onListKeydown","_listRef_value","originalSelectionIndex","_search_value","_search_value1","setSelectionRange","_vVirtualScrollRef_value","calculateVisibleItems","onFocusin","onFocusout","onUpdateModelValue","isSelecting","valueComparator","add1","_model_value_at","_model_value_at_props_title","scrollToIndex","hasList","textFieldProps","VTextField","validationValue","VMenu","openOnClick","closeOnContentClick","menuProps","_props_itemColor","VList","selectStrategy","onMousedown","itemColor","listProps","_slots_prependitem","_slots_nodata","_slots_appenditem","_slots_nodata1","VListItem","VVirtualScroll","renderless","_slots_item","_slots_item1","itemRef","itemProps","VCheckboxBtn","prependAvatar","VAvatar","_getMatches","_search_value_length","highlightResult","onChipClose","slotProps","hasSlot","slotContent","VChip","closableChips","_slots_appendinner1","menuIcon","forwardRefs","_vavatarMjs","makeVAvatarProps","_vcheckboxMjs","VCheckbox","_vcheckboxBtnMjs","makeVCheckboxProps","_vinputMjs","_focusMjs","makeVInputProps","makeVCheckboxBtnProps","_useFocus","useFocus","_filterInputAttrs","controlAttrs","inputProps","VInput","checkboxProps","messagesId","_vselectionControlMjs","indeterminateIcon","makeVSelectionControlProps","falseIcon","trueIcon","controlProps","VSelectionControl","useSelectionControl","_vselectionControlGroupMjs","trueValue","falseValue","makeSelectionControlGroupProps","VSelectionControlGroupSymbol","_useSelectionControl","isFocusVisible","isInteractive","onClickLabel","forceUpdate","onForceUpdate","_slots_input","_slots_input1","inputNode","VLabel","_vlabelMjs","makeVLabelProps","makeVSelectionControlGroupProps","VSelectionControlGroup","defaultsTarget","updateHandlers","_inputIconMjs","_vmessagesMjs","_validationMjs","centerAffix","hideDetails","hideSpinButtons","hint","persistentHint","makeValidationProps","InputIcon","useInputIcon","_useValidation","useValidation","errorMessages","isValidating","resetValidation","validationClasses","_props_errorMessages","_slots_details","hasMessages","hasDetails","details","VMessages","_props_label","localeKey","prependInner","appendInner","makeVMessagesProps","_tsValues","maxErrors","validateOn","makeFocusProps","validationModel","internalErrorMessages","_props_disabled","_props_readonly","_props_validateOn","_value_split","invalidInput","_props_name","_resetValidation","_validate","_props_maxErrors","unwatch","focusClasses","FormKey","makeFormProps","createForm","fastFail","valid","itemErrorMessages","invalid","_$validate","_$reset","_$resetValidation","_vchipMjs","makeVChipProps","_vchipGroupMjs","activeClass","appendAvatar","filterIcon","pill","VChipGroupSymbol","onKeyDown","hasAppendMedia","hasFilter","hasPrependMedia","hasColor","makeVChipGroupProps","VChipGroup","_vslideGroupMjs","makeVSlideGroupProps","slideGroupProps","VSlideGroup","VSlideGroupSymbol","centerActive","nextIcon","prevIcon","showArrows","_useDisplay","isOverflowing","scrollOffset","containerSize","contentSize","containerRef","_useResizeObserver1","contentRef","goToOptions","firstSelectedIndex","lastSelectedIndex","scrollToChildren","scrollToPosition","calculateCenteredTarget","containerElement","selectedElement","calculateUpdatedTarget","newPosition","offsetSize","getOffsetSize","scrollPosition","getScrollPosition","scrollSize","getScrollSize","_containerRef_el","_e_target","ignoreFocusEvent","_contentRef_el","relatedTarget","onFocusAffixes","toFocus","_contentRef_el_querySelector","_contentRef_el_querySelector1","preventScroll","offsetStep","hasAffixes","hasPrev","hasNext","scrollSizeMax","getClientSize","_slots_prev","_slots_next","_slots_prev1","_slots_next1","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","_vlistMjs","_vlistGroupMjs","VListGroup","_vlistImgMjs","VListImg","_vlistItemMjs","_vlistItemActionMjs","VListItemAction","_vlistItemMediaMjs","VListItemMedia","_vlistItemSubtitleMjs","VListItemSubtitle","_vlistItemTitleMjs","VListItemTitle","_vlistSubheaderMjs","VListSubheader","useListItems","makeVListProps","_vlistChildrenMjs","_nestedMjs","transformItems","transformItem","itemType","isPrimitive","itemTitle","itemValue","itemChildren","expandIcon","collapseIcon","makeNestedProps","openStrategy","makeItemsProps","_useNested","useNested","parents","getPath","lineClasses","createList","_contentRef_value","VListChildren","returnObject","makeVListChildrenProps","_props_items","_slots_divider","_slots_subheader","_slots_divider1","_slots_subheader1","VDivider","subheader","slotsWithItem","subtitle","_slots_subtitle","listGroupProps","activatorProps","listItemProps","makeVListGroupProps","VListGroupActivator","useNestedGroupActivator","_useNestedItem","useNestedItem","useList","toggleIcon","activatorDefaults","DepthKey","useDepth","ListKey","updateHasPrepend","VNestedSymbol","emptyNested","_activeStrategiesMjs","_openStrategiesMjs","_selectStrategiesMjs","openOnSelect","activatable","selectable","opened","activeStrategy","leafActiveStrategy","leafSingleActiveStrategy","independentActiveStrategy","independentSingleActiveStrategy","leafSingleSelectStrategy","leafSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","classicSelectStrategy","listOpenStrategy","singleOpenStrategy","multipleOpenStrategy","nodeIds","nested","parentId","isGroup","newPath","_children_value_get","newOpened","newSelected","newActivated","uidSymbol","computedId","isActivated","isIndeterminate","isLeaf","isGroupActivator","strategy","parentStrategy","singleSelected","childrenIds","everySelected","cid","noneSelected","_$_ref7","makeVListItemProps","roundedProps","MouseEvent","hasSubtitle","_slots_subtitle1","makeVListItemSubtitleProps","makeVListSubheaderProps","inset","_vdividerMjs","makeVDividerProps","thickness","dividerStyles","_props_title","hasNullItem","makeVListItemActionProps","makeVListItemMediaProps","_vmenuMjs","makeVMenuProps","_voverlayMjs","_scopeIdMjs","_sharedMjs","submenu","makeVOverlayProps","closeDelay","locationStrategy","openDelay","scrim","scrollStrategy","useScopeId","overlay","VMenuSymbol","openChildren","onFocusIn","_onFocusIn","_overlay_value","_overlay_value1","contentEl","globalTop","onClickOutside","closeParents","_overlay_value2","_overlay_value_activatorEl1","activatorEl","_overlay_value_activatorEl","HTMLTextAreaElement","HTMLInputElement","tabIndex","onActivatorKeydown","_props_location","overlayProps","VOverlay","_locationStrategiesMjs","_scrollStrategiesMjs","_useActivatorMjs","_hydrationMjs","_lazyMjs","_stackMjs","_teleportMjs","Scrim","attach","closeOnBack","contained","contentProps","noClickAnimation","makeActivatorProps","makeLazyProps","makeLocationStrategyProps","makeScrollStrategyProps","ClickOutside","_disableGlobalStack","afterEnter","scrimEl","_useLazy","useLazy","_onAfterLeave","scrimColor","_useStack","useStack","localTop","stackStyles","_useActivator","useActivator","isTop","activatorRef","targetRef","activatorEvents","contentEvents","scrimEvents","teleportTarget","useTeleport","_activatorEl_value","_vm_proxy_$el","ShadowRoot","useHydration","_useLocationStrategies","useLocationStrategies","contentStyles","updateLocation","animateClick","closeConditional","shadowTarget","_contentEl_value","useScrollStrategies","scrollParent","_slots_activator","_pointMjs","locationStrategies","static","_destructComputed","parsedAnchor","parsedOrigin","preferredAnchor","preferredOrigin","contentBox","scrollParents","viewport","scrollBox","viewportMargin","placement","available","flipped","resets","_checkOverflow","checkOverflow","_x","_y","overflows","hasOverflowX","hasOverflowY","newPlacement","flip","newOverflows","overflows1","pixelRound","pixelCeil","_placement","targetPoint","anchorToPoint","contentPoint","_getOffset","newContentEl","oldContentEl","onResize","_updateLocation_value","_props_locationStrategy","_locationStrategies_props_locationStrategy","elementToViewport","viewportToElement","align1","_requestNewFrameMjs","scrollStrategies","none","_data_targetEl_value","bindScroll","_data_root_value","scrollElements","scrollbarWidth","scrollableParent","reposition","slow","ric","requestNewFrame","_data_updateLocation_value","_data_updateLocation","_scrollStrategies_props_scrollStrategy","clean","frames","_delayMjs","openOnHover","openOnFocus","makeDelayProps","isHovered","firstEnter","_useDelay","useDelay","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onMouseenter","_e_sourceCapabilities","sourceCapabilities","firesTouchEvents","bindActivatorProps","getActivator","unbindActivatorProps","clearDelay","runDelay","isOpening","StackSymbol","globalStack","disableGlobalStack","createStackEntry","activeChildren","_zIndex","_globalStack_at","lastZIndex","_isTop","checkEvent","checkIsActive","handleShadow","_clickOutside","lastMousedownWasOutside","_el__clickOutside","_el__clickOutside_binding_instance_$_uid","Refs","getDescriptor","currentObj","_ref_value__","_getDescriptor","descriptor1","ref1","childRefs","descriptor2","childRefs1","makeVSelectProps","VSelect","ue","keyboardLookupLastTime","keyboardLookupPrefix","computedMenuProps","_props_menuProps","_listRef_value1","onModelUpdate","persistentPlaceholder","inputmode","_vcounterMjs","_vfieldMjs","activeTypes","autofocus","persistentCounter","makeVFieldProps","_model_value","isPlainOrUnderlined","onIntersect","_entries__target_focus","_entries__target","vInputRef","vFieldRef","inputRef","_inputRef_value","onControlMousedown","onControlClick","_props_modelModifiers","caretPosition","hasCounter","_VInput_filterProps","fieldProps","filterFieldProps","VField","fieldClass","_ref3_props","VCounter","makeVCounterProps","functional","_vfieldLabelMjs","appendInnerIcon","clearable","clearIcon","persistentClear","prependInnerIcon","singleLine","hasLabel","labelRef","floatingLabelRef","controlRef","targetWidth","targetStyle","onKeydownClear","_props_onClickclear","_slots_prependinner","_slots_appendinner","_props_centerAffix","isOutlined","hasClear","VFieldLabel","makeVFieldLabelProps","_vvirtualScrollMjs","makeVVirtualScrollProps","_vvirtualScrollItemMjs","_virtualMjs","makeVirtualProps","_useVirtual","useVirtual","markerRef","handleScroll","handleScrollend","handleItemResize","paddingTop","computedItems","handleListeners","_containerRef_value","_containerRef_value1","VVirtualScrollItem","onScrollPassive","onScrollend","makeVVirtualScrollItemProps","_contentRect_value","itemHeight","markerOffset","viewportHeight","hasInitialRender","offsets","updateTime","targetScrollIndex","updateOffsets","calculateOffset","lastScrollTop","scrollVelocity","lastScrollTime","_calculateVisibleItems","startPx","binaryClosest","endPx","calculateIndex","bufferOverflow","scrollTime","scrollDeltaT","prevHeight","prevMinHeight","high","low","textFieldRef","scrollTimeout","isScrolling","_finishScrolling","_onListKeydown","_textFieldRef_value","finishScrolling","filterItems","customFilter","customKeyFilter","filterMode","noFilter","_options_default","customFiltersLength","_options_customKeyFilter","loop","_wrapInArray","customMatches","defaultMatches","_options_customKeyFilter1","keyFilter","defaultMatchesLength","customMatchesLength","filteredMatches","transformedItems","_query","strQuery","originalItems","_filteredItems","_filteredMatches","_vbadgeMjs","VBadge","makeVBadgeProps","bordered","_props_offsetY","_props_offsetX","badgeAttrs","_ctx_slots_default","_ctx_slots","_ctx_slots_badge","_vbannerMjs","VBanner","_vbannerActionsMjs","VBannerActions","_vbannerTextMjs","VBannerText","makeVBannerProps","avatar","makeVBannerActionsProps","_vbottomNavigationMjs","VBottomNavigation","makeVBottomNavigationProps","grow","_vbottomSheetMjs","VBottomSheet","makeVBottomSheetProps","_vdialogMjs","makeVDialogProps","dialogProps","VDialog","fullscreen","retainFocus","firstElement","lastElement","_vbreadcrumbsMjs","VBreadcrumbs","_vbreadcrumbsItemMjs","VBreadcrumbsItem","_vbreadcrumbsDividerMjs","VBreadcrumbsDivider","makeVBreadcrumbsProps","makeVBreadcrumbsDividerProps","makeVBreadcrumbsItemProps","_slots_default2","_slots_default3","_vcardMjs","VCard","_vcardActionsMjs","VCardActions","_vcardItemMjs","VCardItem","_vcardSubtitleMjs","VCardSubtitle","_vcardTextMjs","VCardText","_vcardTitleMjs","VCardTitle","makeVCardProps","hover","hasCardItem","hasHeader","makeCardItemProps","makeVCardSubtitleProps","makeVCardTextProps","_vcarouselMjs","VCarousel","_vcarouselItemMjs","VCarouselItem","makeVCarouselProps","_vwindowMjs","delimiterIcon","hideDelimiters","hideDelimiterBackground","verticalDelimiters","makeVWindowProps","continuous","windowRef","slideTimeout","startTimeout","restartTimeout","windowProps","VWindow","_$props","VWindowSymbol","VWindowGroupSymbol","Touch","rootRef","isRtlReverse","transitionCount","transitionHeight","activeIndex","itemsLength","canMoveBack","canMoveForward","arrows","touchOptions","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","_binding_instance","_value_options","_target__touchHandlers","createHandlers","touchmoveX","touchmoveY","touchstart","_wrapper_start","touchend","_wrapper_end","touchmove","_wrapper_move","_touchHandlers","_binding_value","makeVCarouselItemProps","_vwindowItemMjs","makeVWindowItemProps","imgProps","windowItemProps","VWindowItem","reverseTransition","groupItem","isTransitioning","hasTransition","onAfterTransition","onBeforeTransition","_window_rootRef_value","onTransitionCancelled","onEnterTransition","VCode","_vcolorPickerMjs","VColorPicker","makeVColorPickerProps","_vcolorPickerCanvasMjs","_vcolorPickerEditMjs","_vcolorPickerPreviewMjs","_vcolorPickerSwatchesMjs","_vsheetMjs","canvasHeight","dotSize","hideCanvas","hideSliders","hideInputs","showSwatches","swatches","swatchesMaxHeight","makeVSheetProps","hue","extractColor","currentColor","_hue_value","externalChange","updateColor","VSlider","trackColor","trackFillColor","_currentColor_value","sheetProps","VSheet","nullColor","VColorPickerCanvas","VColorPickerPreview","hideAlpha","VColorPickerEdit","VColorPickerSwatches","makeVColorPickerCanvasProps","isInteracting","canvasRef","canvasWidth","_dotPosition","dotPosition","_props_color1","_props_color_h","_props_color_a","dotStyles","_dotPosition_value","_resizeRef_el","_entries__contentRect","handleMouseDown","handleMouseMove","handleMouseUp","coords","updateCanvas","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","onTouchstartPassive","makeVColorPickerEditProps","VColorPickerInput","enabledModes","_mode_inputs","getColor","_inputs_value","mi","_rgba_inputs","hasAlpha","converted","hexa","makeVColorPickerPreviewProps","abortController","AbortController","openEyeDropper","_openEyeDropper","colorHexValue","EyeDropper","sRGBHex","_props_color2","thumbSize","trackSize","_vsliderMjs","makeVSliderProps","_vsliderThumbMjs","_vsliderTrackMjs","_sliderMjs","makeSliderProps","thumbContainerRef","steps","useSteps","roundValue","_useSlider","useSlider","onSliderStart","onSliderEnd","roundedValue","onSliderMove","getActiveThumb","_thumbContainerRef_value","mousePressed","onSliderMousedown","onSliderTouchstart","trackContainerRef","hasLabels","trackStop","_slots_label","_slots_label1","VSliderTrack","VSliderThumb","makeVSliderThumbProps","slider","VSliderSymbol","thumbColor","thumbLabel","decimals","indexFromEnd","elevationProps","relevantKeys","multipliers","parseKeydown","increase","multiplier","direction1","positionPercentage","_slots_thumblabel","_slots_thumblabel1","showTicks","ticks","tickSize","clamped","parseMouseMove","_trackContainerRef_value","trackStart","trackLength","clickPos","clickOffset","startOffset","onMouseMove","numTicks","_props_thumbColor","_props_trackColor","_props_trackFillColor","activeThumbRef","handleStop","handleStart","moveListenerOptions","onSliderMouseUp","onSliderTouchend","percentage","parsedTicks","makeVSliderTrackProps","trackFillColorClasses","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","_slots_ticklabel","_slots_ticklabel1","directionValue","makeVColorPickerSwatchesProps","_colorsMjs","_colorsMjsDefault","darken4","darken3","darken2","darken1","lighten1","lighten2","lighten3","lighten4","lighten5","black","white","transparent","swatch","red","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","accent1","accent2","accent3","accent4","_vcomboboxMjs","VCombobox","makeVComboboxProps","_model_value_","_model_value__title","cleared","_search","_props_delimiters","_value_","_value__title","_vconfirmEditMjs","VConfirmEdit","makeVConfirmEditProps","cancelText","okText","internalModel","structuredClone","actionsUsed","_vdataIteratorMjs","VDataIterator","makeVDataIteratorProps","_expandMjs","_optionsMjs","_paginateMjs","_selectMjs","_sortMjs","_itemsMjs","makeDataIteratorItemsProps","makeDataTableSelectProps","makeDataTableSortProps","makeDataTablePaginateProps","itemsPerPage","makeDataTableExpandProps","makeDataTableGroupProps","groupBy","useDataIteratorItems","_createSort","createSort","multiSort","mustSort","_createPagination","createPagination","toggleSort","provideSort","_provideGroupBy","provideGroupBy","sortByWithGroups","extractRows","isGroupOpen","toggleGroup","sortedItems","useSortedItems","flatItems","useGroupedItems","_providePagination","providePagination","stopIndex","pageCount","setItemsPerPage","setPage","paginatedItems","usePaginatedItems","paginatedItemsWithoutGroups","_provideSelection","provideSelection","selectAll","toggleSelect","_provideExpanded","provideExpanded","isExpanded","toggleExpand","useOptions","groupedItems","_slots_header","_slots_footer","VDataTableExpandedKey","useExpanded","expandOnClick","showExpand","expanded","newExpanded","createGroupBy","useGroupBy","VDataTableGroupSymbol","disableSort","_val_order","dive","flattenItems","groupItems","groupItemsByProperty","oldOptions","usePagination","VDataTablePaginationSymbol","VDataTableSelectionSymbol","useSelection","singleSelectStrategy","showSelectAll","allSelected","_items_","pageSelectStrategy","allSelectStrategy","showSelect","_allItems_value_find","_allItems_value_find_value","allSelectable","currentPageSelectable","someSelected","isSomeSelected","useSort","sortItems","customKeySort","VDataTableSortSymbol","_sortBy_value_map","newSortBy","isSorted","_options_sortFunctions","_options_sortRawFunctions","sortFunctions","sortRawFunctions","sortByItems","stringCollator","Collator","sensitivity","usage","_sortByItems_i_order","hasCustomResult","sortKey","sortOrder","sortA","sortB","sortARaw","sortBRaw","customResult","customResult1","itemSelectable","_vdataTableMjs","VDataTable","_vdataTableHeadersMjs","VDataTableHeaders","_vdataTableFooterMjs","VDataTableFooter","_vdataTableRowsMjs","VDataTableRows","_vdataTableRowMjs","VDataTableRow","_vdataTableVirtualMjs","VDataTableVirtual","_vdataTableServerMjs","VDataTableServer","makeDataTableProps","makeVDataTableProps","_vtableMjs","_headersMjs","makeVDataTableRowsProps","hideDefaultBody","hideDefaultFooter","hideDefaultHeader","makeDataTableHeaderProps","makeDataTableItemsProps","makeVDataTableHeadersProps","makeVTableProps","makeVDataTableFooterProps","_createHeaders","createHeaders","headers","filterFunctions","useDataTableItems","internalItems","dataTableFooterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","VTable","_slots_top","_slots_colgroup","_slots_thead","_slots_bodyprepend","_slots_bodyappend","_slots_tbody","_slots_tfoot","colgroup","thead","tbody","tfoot","firstIcon","lastIcon","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","showCurrentPage","_usePagination","paginationProps","VPagination","_vpaginationMjs","makeVPaginationProps","_refsMjs","totalVisible","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","_useLocale","maxButtons","_entries_","firstItem","totalWidth","itemWidth","getMax","even","rangeLength","rangeStart","rangeLength1","rangeStart1","setValue","_useRefs","useRefs","updateRef","VPaginationBtn","controls","prevDisabled","nextDisabled","updateFocus","_refs_value_currentIndex","_vdataTableColumnMjs","sortAscIcon","sortDescIcon","headerProps","_useSort","_useSelection","_useHeaders","useHeaders","getSortIcon","headerCellClasses","VDataTableHeaderCell","_props_headerProps","_column_headerProps","noPadding","VDataTableColumn","fixed","getFixedStyles","fixedOffset","colspan","rowspan","nowrap","lastFixed","_slots_headerdatatableselect","_slots_headerdatatableselect1","columnSlotName","columnSlotProps","VDataTableMobileHeaderCell","showSelectColumn","_props_item_raw","row","_props_tag","VDataTableHeadersSymbol","defaultHeader","defaultActionHeader","extractLeaves","getDepth","_headers","_props_items_","extractKeys","_options_groupBy","_options_showSelect","_options_showExpand","internalHeaders","convertToInternalHeaders","_defaultItem_key","_defaultItem_value","_defaultItem_sortable","defaultItem","getDefaultItem","internalItem","parseFixedColumns","seenFixed","setFixed","parentFixed","setFixedOffset","maxDepth","currentDepth","priorityQueue","whole","dequeue","rowSize","_queue_dequeue","flatHeaders","sortRaw","_vdataTableGroupHeaderRowMjs","rowProps","cellProps","_useExpanded","_useGroupBy","_slots_loading","_slots_loading1","_slots_expandedrow","_item_key","VDataTableGroupHeaderRow","slotProps1","itemSlotProps","makeVDataTableGroupHeaderRowProps","_slots_datatablegroup","_slots_datatablegroup1","_slots_datatableselect","_slots_datatableselect1","selectGroup","makeVDataTableRowProps","onContextmenu","onDblclick","headerSlotName","columnCellProps","_slots_slotName","_slots_itemdatatableselect1","_slots_itemdatatableselect","_slots_itemdatatableexpand1","_slots_itemdatatableexpand","_slots_headerSlotName","_slots_slotName1","_slots_headerSlotName1","_slots_slotName2","displayValue","fixedHeader","fixedFooter","_slots_wrapper","_slots_bottom","itemColumns","makeVDataTableVirtualProps","makeVDataTableServerProps","itemsWithoutGroups","_vdatePickerMjs","VDatePicker","_vdatePickerControlsMjs","VDatePickerControls","_vdatePickerHeaderMjs","VDatePickerHeader","_vdatePickerMonthMjs","VDatePickerMonth","_vdatePickerMonthsMjs","VDatePickerMonths","_vdatePickerYearsMjs","VDatePickerYears","makeVDatePickerProps","_vpickerMjs","makeVDatePickerControlsProps","makeVDatePickerMonthProps","weeksInMonth","makeVDatePickerMonthsProps","makeVDatePickerYearsProps","makeVPickerProps","_props_month","_props_year","viewMode","getYear","startOfYear","isReversing","setYear","headerTransition","minDate","maxDate","addDays","date1","onClickNext","onUpdateYear","onUpdateMonth","onClickPrev","onClickDate","onClickMonth","onClickYear","arrBefore","arrAfter","newMonth","newYear","isBefore","pickerProps","VPicker","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","showWeek","modeIcon","disableMonth","disableYear","disablePrev","disableNext","VSpacer","_vcontainerMjs","VContainer","_vcolMjs","VCol","_vrowMjs","VRow","_vspacerMjs","makeVContainerProps","makeVColProps","breakpointProps","offsetProps","orderProps","propMap","col","ALIGN_SELF_VALUES","alignSelf","breakpointClass","breakpoint","hasColClasses","makeVRowProps","ALIGNMENT","SPACE","makeRowProps","ALIGN_VALUES","alignValidator","alignProps","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","alignContent","classMap","noGutters","makeVDatePickerHeaderProps","onClickAppend","_calendarMjs","hideWeekdays","makeCalendarProps","daysRef","_useCalendar","useCalendar","daysInMonth","weekNumbers","rangeStop","isReverse","atMax","onRangeClick","isSameDay","endOfDay","datesInRange","nextDate","onMultipleClick","week","_daysInMonth_value__date","getWeekdays","weekDay","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","isToday","localized","_slots_day","_slots_day1","allowedDates","weekdays","weekDays","_props_firstDayOfWeek","genDays","toISO","isSameMonth","isStart","isEnd","isSame","formatted","daysInWeek","months","getNextMonth","_slots_month","_slots_month1","btnProps","years","yearRef","_yearRef_el","scrollIntoView","_slots_year","_slots_year1","_vpickerTitleMjs","landscape","hideHeader","VPickerTitle","_vemptyStateMjs","VEmptyState","makeVEmptyStateProps","actionText","headline","textWidth","onClickAction","_slots_headline","_slots_headline1","hasActions","hasHeadline","hasMedia","media","_slots_actions","_slots_actions1","_vexpansionPanelsMjs","VExpansionPanels","_vexpansionPanelMjs","VExpansionPanel","_vexpansionPanelTextMjs","VExpansionPanelText","_vexpansionPanelTitleMjs","VExpansionPanelTitle","makeVExpansionPanelsProps","makeVExpansionPanelProps","VExpansionPanelSymbol","variantClass","hideActions","makeVExpansionPanelTitleProps","makeVExpansionPanelTextProps","selectedIndices","isBeforeSelected","isAfterSelected","expansionPanelTitleProps","expansionPanelTextProps","expansionPanel","_vfabMjs","VFab","makeVFabProps","hasPosition","_props_location_split_shift","orientation","_props_location_split_","vFabRef","_vfileInputMjs","VFileInput","makeVFileInputProps","counterSizeString","counterString","hideInput","showSize","files","totalBytes","_ref2_size","totalBytesReadable","fileNames","_file_name","_file_size","_model_value_length","fileCount","onClickPrepend","_ref4_props","_target_files","_vfooterMjs","VFooter","makeVFooterProps","autoHeight","_vformMjs","VForm","makeVFormProps","submit","formRef","onReset","_formRef_value","novalidate","_vhoverMjs","VHover","makeVHoverProps","isHovering","_vinfiniteScrollMjs","VInfiniteScroll","makeVInfiniteScrollProps","VInfiniteScrollIntersect","margin","loadMoreText","emptyText","startStatus","endStatus","setScrollAmount","setStatus","getContainerSize","previousScrollSize","handleIntersect","_isIntersecting","intersecting","getScrollAmount","renderSide","_slots_error","_slots_empty","_slots_empty1","_slots_loadmore","_slots_loading2","_slots_loadmore1","_slots_loading3","hasStartIntersect","hasEndIntersect","intersectMode","_vitemGroupMjs","VItemGroup","_vitemMjs","VItem","VItemGroupSymbol","makeVItemGroupProps","_useGroupItem","VKbd","_vlayoutMjs","VLayout","_vlayoutItemMjs","VLayoutItem","makeVLayoutProps","makeVLayoutItemProps","_vlazyMjs","VLazy","makeVLazyProps","_vlocaleProviderMjs","VLocaleProvider","makeVLocaleProviderProps","_vmainMjs","VMain","makeVMainProps","_vnavigationDrawerMjs","VNavigationDrawer","makeVNavigationDrawerProps","_stickyMjs","_touchMjs","locations","disableResizeWatcher","disableRouteWatcher","expandOnHover","rail","railWidth","touchless","isPersistent","isTemporary","isSticky","currentRoute","_useTouch","useTouch","dragProgress","_useLayoutItem","isStuck","_useSticky","useSticky","stickyStyles","scrimStyles","stuckPosition","_layoutItemStyles_value_top","scrollY","layoutTop","bodyScroll","onTouchstart","onTouchmove","onTouchend","_useVelocity","useVelocity","addMovement","endTouch","getVelocity","maybeDragging","oops","getProgress","touchX","touchY","inTouchZone","inElement","velocity","dragStyles","_el_value","_el_value1","_el_value_style_transform","_el_value_style_transition","_dragStyles_value","_dragStyles_value1","calculateImpulseVelocity","kineticEnergyToVelocity","work","samples","vprev","vcurr","_touches_touch_identifier","timeStamp","_touches_id","newest","absX","absY","_vnoSsrMjs","VNoSsr","_votpInputMjs","VOtpInput","makeVOtpInputProps","focusAll","finish","fields","focusIndex","isValidNumber","_inputRef_value_index","_inputRef_value_val","onPaste","_e_clipboardData","_e_clipboardData_getData_slice","clipboardText","clipboardData","_vparallaxMjs","VParallax","makeVParallaxProps","displayHeight","_root_value","Document","scrollPos","sizeScale","onLoadstart","_vradioMjs","VRadio","makeVRadioProps","_vradioGroupMjs","VRadioGroup","makeVRadioGroupProps","_vrangeSliderMjs","VRangeSlider","makeVRangeSliderProps","strict","startThumbRef","stopThumbRef","_startThumbRef_value","_stopThumbRef_value","_startThumbRef_value1","_activeThumbRef_value","stopOffset","_stopThumbRef_value1","_vratingMjs","VRating","makeVRatingProps","itemAriaLabel","emptyIcon","fullIcon","halfIncrements","itemLabels","itemLabelPosition","increments","hoverIndex","itemState","isFilled","isFullIcon","eventState","VRatingItem","_itemState_value_index","_itemState_value_index1","_ref2_showStar","showStar","_eventState_value_","createLabel","labelProps","_props_itemLabels","_props_itemLabels1","_vskeletonLoaderMjs","VSkeletonLoader","rootTypes","makeVSkeletonLoaderProps","article","card","ossein","sentences","genBones","bone","_bone_split","genStructure","mapBones","genBone","bones","boilerplate","isLoading","loadingProps","ariaLive","_vslideGroupItemMjs","VSlideGroupItem","slideGroupItem","_vsnackbarMjs","VSnackbar","makeVSnackbarProps","multiLine","countdown","useCountdown","milliseconds","elapsed","timerRef","startY","hasLayout","activeTimeout","onPointerenter","onPointerleave","locationClasses","loc","_vsparklineMjs","VSparkline","makeVSparklineProps","_vbarlineMjs","_vtrendlineMjs","makeVBarlineProps","makeVTrendlineProps","showLabels","labels","totalHeight","labelSize","VTrendline","VBarline","lineProps","_lineMjs","autoLineWidth","makeLineProps","autoDrawDuration","boundary","minX","maxX","minY","maxY","genBars","_Math1","totalValues","minValue","gridX","gridY","horizonY","parsedLabels","bars","gradientData","gradientUnits","gradientDirection","smooth","ry","autoDraw","dur","textAnchor","dominantBaseline","autoDrawEasing","_pathMjs","lastLength","genPoints","genPath","pathRef","getTotalLength","strokeDasharray","strokeDashoffset","_props_gradient","_parseFloat","stroke","isCollinear","checkCollinear","radiusForPoint","isTooCloseForRadius","moveTo","p0","vector","unitVector","_vspeedDialMjs","VSpeedDial","makeVSpeedDialProps","menuRef","_props_location_split","_vstepperMjs","VStepper","_vstepperActionsMjs","VStepperActions","_vstepperHeaderMjs","VStepperHeader","_vstepperItemMjs","VStepperItem","_vstepperWindowMjs","VStepperWindow","_vstepperWindowItemMjs","VStepperWindowItem","makeStepperProps","makeVStepperProps","altLabels","completeIcon","editIcon","editable","errorIcon","nonLinear","makeVStepperActionsProps","VStepperSymbol","prevText","nextText","hasWindow","_slots_","_slots_1","prevSlotProps","nextSlotProps","makeStepperItemProps","makeVStepperItemProps","_group_value_value","canEdit","hasCompleted","_slots_icon","_slots_icon1","makeVStepperWindowProps","_model","_group_items_value_find","makeVStepperWindowItemProps","_vswitchMjs","VSwitch","makeVSwitchProps","control","loaderColor","onTrackClick","_control_value_input","_control_value","thumb","_vsystemBarMjs","VSystemBar","makeVSystemBarProps","_props_height","_vtabMjs","VTab","_vtabsMjs","_vtabsWindowMjs","VTabsWindow","_vtabsWindowItemMjs","VTabsWindowItem","makeVTabProps","sliderColor","hideSlider","sliderColorClasses","sliderColorStyles","sliderEl","_rootEl_value_group","_rootEl_value","_rootEl_value_group_isSelected_value","updateSlider","_rootEl_value_$el_parentElement","prevEl","prevBox","nextBox","xy","XY","rightBottom","widthHeight","initialScale","VTabsSymbol","makeVTabsProps","alignTabs","fixedTabs","_slots_tab","_slots_tab1","_slots_window","makeVTabsWindowProps","makeVTabsWindowItemProps","_vtextareaMjs","VTextarea","makeVTextareaProps","autoGrow","noResize","maxRows","controlHeight","textareaRef","_textareaRef_value","sizerRef","calculateInputHeight","fieldStyle","lineHeight","newHeight","_vthemeProviderMjs","VThemeProvider","makeVThemeProviderProps","withBackground","_vtimelineMjs","VTimeline","_vtimelineItemMjs","VTimelineItem","makeVTimelineProps","lineThickness","lineColor","truncateLine","makeVTimelineItemProps","lineInset","VTimelineDivider","dotColor","fillDot","hideOpposite","iconColor","sideClasses","truncateClasses","_vtimelineDividerMjs","hideDot","dotRef","_newValue_$el_querySelector","_newValue_$el_querySelector_getBoundingClientRect_width","_slots_opposite","makeVTimelineDividerProps","lineColorClasses","lineColorStyles","_vtoolbarItemsMjs","VToolbarItems","makeVToolbarItemsProps","_vtooltipMjs","VTooltip","makeVTooltipProps","_vvalidationMjs","VValidation","validation","Mutate","Resize","Scroll","Tooltip","_el__mutate","_mutate","_modifierKeys_attr","_modifierKeys_char","_modifierKeys_child","_modifierKeys_sub","modifierKeys","characterData","subtree","_binding_modifiers","_binding_modifiers1","_onResize","_el__onResize","_el__onResize_binding_instance_$_uid","_ref_self","_el__onScroll","_el__onScroll_binding_instance_$_uid","_el__onScroll_binding_instance_$_uid_target","_directiveComponentMjs","useDirectiveComponent","_binding_arg","_findComponentParent","_vnode_ctx","_binding_value_text","findComponentParent","_child_component","_child_component1","Debug.debug","Debug.getErrorWithStack","safari14Workaround","_Dexie","Debug.setDebug","constants","removeAll","getConsole","arrayLikeToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","cachedFn","isReadOnly","isHtmlTag","isTransition","getComponentAttributes","createSortableOption","addContext","indexFirstDomListElement","getSlot","getRootInformation","computeComponentStructure","sendEvent","KEYCODE_ENTER","KEYCODE_TAB","KEYCODE_BACKSPACE","KEYCODE_Y","KEYCODE_Z","KEYCODE_M","KEYCODE_PARENS","KEYCODE_BRACKETS","KEYCODE_QUOTE","KEYCODE_BACK_QUOTE","KEYCODE_ESCAPE","HISTORY_LIMIT","HISTORY_TIME_GAP","totalLines","for","isLocaleInstance","delete","_classPrivateFieldSet","supportsSelector","CIELAB","sRGB","sprime","mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","srgbForwardTransform","class","_defineComponent","propIsDefined","isPotentiallyScrollable","parseLocalDate","parseISO","addMinutes","addHours","addWeeks","addMonths","getPreviousMonth","endOfYear","isWithinRange","isAfterDay","isSameYear","getContainer","clampTarget","_mergeProps","ROOT_ZINDEX","ExpandTransitionGenerator","_withDirectives","_Fragment","_resolveDirective","showColor","getValues","DELAY_RIPPLE","_createTextVNode","append-inner","_vShow","clientSize","in","nextElement","staticLocationStrategy","connectedLocationStrategy","getIntrinsicSize","activatorFixed","closeScrollStrategy","blockScrollStrategy","repositionScrollStrategy","defaultConditional","KEYBOARD_LOOKUP_THRESHOLD","BUFFER_PX","getSize","topOverflow","bottomOverflow","onListScroll","minDistance","updateDotPosition","stripAlpha","parseDefaultColors","minButtons","onClick:clear","onClick:append","click:year","click:month","click:prev","click:next","click:text","offsetKey","orderKey","prefixKey","click:append","hasModelReset","catch","finally","getStatus","touchZone","thresholdMet","HORIZON","HISTORY","sqrt2","_genPath","sigma","parseItems","_vModelText","concreteComponent"],"version":3,"file":"index.54261725.js.map"} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 750b296..da1578c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -Edrys - Lite \ No newline at end of file +Edrys - Lite \ No newline at end of file